A handout can carry more than one language. Translations live on the handout itself, next to the English, so there’s one handout to maintain rather than a separate copy for every language — and a block you haven’t translated yet simply shows its English text.
Translation in Forefront is written by people, not by a machine. Nothing is translated automatically: you type each translation yourself, or export the handout’s text, send it to a translator, and import their work back in.
Before you begin
Translating happens in the handout editor, so you need to be able to edit the handout. If it’s a handout Forefront or your district provided, clone it first — see How to Clone and Modify an Existing Handout.
Only text, heading, and list item blocks can be translated.
Translations appear when you read a handout in Forefront. Printed and downloaded handouts use the English text.
Switching to translate mode
The dropdown at the right edge of the editors ribbon shows the section you’re editing (Body, Header, or Footer) with the current mode underneath it. Click it, and under Mode choose Translate.
Translate mode is a different way to work than editing:
The canvas becomes read-only. You can’t add, delete, or restyle blocks, and the toolbar is replaced by the translation controls.
↑ and ↓ step from one translatable block to the next, skipping everything that can’t be translated.
All of your typing happens in the Translate Block panel on the right.
To go back, open the same menu and choose Editing. Forefront keeps you on the same block, so you can move between editing the English and translating it without losing your place.
Adding a language
A handout starts with no languages, and Translate mode offers you three ways in: New Language, Import CSV, or Export Template to send the English out for translation first.
Choosing New Language opens Add a Language:
Language — search 100 languages by name or by code, so both “Spanish” and
es-ESfind what you’d expect. Languages already on this handout still appear in the list, marked Already added to this handout, and languages you’ve used recently are offered as chips.
Seed content from — what the new language starts out holding:
Empty — no translations; fill blocks in as you go.
Copy English — pre-fill every block with its English text, so you translate over the top of it rather than working from a blank field.
Clone existing language — copy the translations from another language already on the handout. This is the quick way to build a regional variant: clone Spanish into Spanish (Mexico) and adjust only what differs.
English is never a choice here. It’s the source language every translation is written against, and it’s what a reader sees for any block you haven’t translated.
Translating block by block
Pick your language in the language selector, then click a block on the canvas. The Translate Block panel shows you what you’re working on and where you are:
The block’s type and its position in the handout — 3 / 47 — with Previous block and Next block buttons.
Context, when the block is nested somewhere — Inside table cell, for example — so a short scrap of text like “Total” is still identifiable.
English Source, with a button to copy it.
The translation field itself, with the block’s status.
Type your translation and Forefront marks the block in progress. Two buttons at the bottom of the panel record a decision about it:
Mark complete sets the block to translated, which is what the progress bar counts.
The lock marks the block as do not translate — the right answer for a phone number, a school name, or anything else that should stay as it is in every language.
Clearing the translation field completely removes the translation rather than leaving an empty one behind, so the block goes back to untranslated. Ctrl/Cmd+Z undoes your work in the panel, the same as in the editor.
Tracking progress
Every block carries one of five statuses:
Untranslated — nothing written yet.
In progress — has a translation, not yet marked complete.
Outdated — was complete, but the English has changed since.
Do not translate — deliberately left in English.
Translated — done.
The gutter down the left side of the canvas colors each block by its status. Blocks that contain other blocks summarize what’s inside them — 2 Untranslated, 1 Outdated of 5 — and clicking the gutter jumps the panel straight to the block that needs attention, which is much faster than hunting for it.
The progress bar counts only blocks marked translated, and it counts the whole handout — Body, Header, and Footer together — not just the section on screen. So does exporting and importing.
Keeping translations current
When you edit the English of a block that has already been translated, every translated entry on that block drops to outdated. Blocks that were in progress or do not translate are left alone.
Forefront never rewrites or removes a translation on your behalf — it only flags that the source has moved on, and leaves the judgement to you. Watch the gutter for outdated blocks after an editing pass, revisit the wording, and mark them complete again.
Sending text out to a translator
If someone else is doing the translating, work through a spreadsheet rather than giving them the editor:
Export the text. With no language chosen, Export Template gives you the English with an empty translation column. With a language chosen, the export includes whatever has been translated so far, so a second pass picks up where the first left off.
The file has four columns:
block_id,english,translation, andstatus. Your translator fills in translation and leaves the rest as it is —block_idis how each line finds its way back to the right block.statuscan be left blank.Import the finished file. Forefront shows you what it’s about to do before anything changes.
The import preview confirms which language you’re importing into — guessed from the file name, but always yours to change — and summarizes the file: how many rows are ok, how many are drifted, how many name a block not found, and how many are empty or malformed, with a note against each row explaining its case.
Two things worth knowing about how the import behaves:
Only rows that match a block are written. Rows for blocks that no longer exist, empty translations, and malformed lines are skipped rather than clearing what’s already on the handout, so a partial file is safe to import. Importing into a language that already has translations overwrites row by row, and says so first.
Drifted rows still import, as outdated. If the
englishcolumn no longer matches the handout — because the source text was edited after the export — the translation comes in flagged for review instead of being silently accepted or silently dropped.
Files saved as CSV or TSV both work, from Excel, Google Sheets, or anything else that writes a spreadsheet.
Reading a handout in another language
Once a handout has more than one language, a language selector appears in the top bar of the handout’s page. Pick a language and the whole handout switches to it, with any untranslated block showing its English. The preview you open from an assessment’s instructions works the same way.
What translation covers
Text, heading, and list item blocks can be translated, and that includes text sitting inside a table cell. Images, dividers, page breaks, links, QR codes, and number lines can’t be — there’s no prose in them to translate. Equations inside a translated block carry over as they are.
Two limits are worth understanding before you invest time in a translation:
Dynamic text keeps its English wording. A merge field carries into the translation and still resolves for each student, but the words a dynamic value turns into come from that expression’s Text Mapping, which every language shares. If a Spanish letter reads “Proficient”, that’s why. You can change the wording in the expression’s Text Mapping, but it changes for English too.
Printed, downloaded, and emailed handouts use the English text. Translations are for reading a handout in Forefront and for the export and import round-trip.
Removing a language
The trash button removes a language, and asks first, because it takes that language out of every block in every section of the handout — not just the section you’re looking at.
The list of languages on a handout is built from the translations themselves rather than kept as a separate setting, so a language exists exactly as long as some block still has a translation in it. Delete them all and the language stops appearing in the selectors.
