CurryCMS supports translating your curriculum content into multiple languages while preserving the inheritance relationships between parent curricula and variants. This guide covers the complete translation workflow.
Overview
The translation system allows you to:
- Translate content into 9 supported languages
- Inherit translations from parent curricula (variants automatically get parent translations)
- Customize translations for specific variants when needed
- Track translation progress with status indicators
- Manage a translation queue with a dedicated dashboard
Supported Languages
CurryCMS currently supports the following locales:
| Language | Code | Notes |
|---|---|---|
| English | en |
Default language, always required |
| Spanish | es |
|
| French | fr |
|
| German | de |
|
| Portuguese | pt |
|
| Chinese (Simplified) | zh |
|
| Japanese | ja |
|
| Korean | ko |
|
| Arabic | ar |
Right-to-left support |
Note: English is always enabled and cannot be disabled. Other languages must be enabled by an administrator before translations can be created.
Translation Workflow
1. Enable Locales (Admin)
Before translating content, an administrator must enable the target locales for your account:
- Navigate to Settings β Organization
- Find the Enabled Locales section
- Check the languages you want to support
- Click Save
Once enabled, translators can create translations in those languages.
2. Access Content for Translation
There are two ways to translate content:
From the Content Tree:
1. Open a curriculum
2. Select a content node
3. Switch the locale selector to your target language
4. Click Add Translation or edit an existing translation
From the Translation Dashboard:
1. Navigate to Translations in the main navigation
2. Select a target locale
3. Work through the translation queue
3. Translation Statuses
Each translation progresses through these statuses:
| Status | Color | Description |
|---|---|---|
| Needs Translation | Yellow | No translation exists yet; shows English content as fallback |
| In Progress | Orange | Translation has been started but not completed |
| Translated | Green | Translation is complete and ready for use |
| Needs Review | Blue | Source English content has changed; translation may need updating |
Status transitions:
- When you first start translating, status automatically moves from Needs Translation to In Progress
- Click Mark as Translated when the translation is complete
- If the source English content changes, status moves to Needs Review
Translation Inheritance
One of CurryCMS's powerful features is translation inheritance. This works similarly to content inheritance in variants:
How It Works
Parent Curriculum (National)
βββ English: "Introduction to Fractions" β Source content
βββ Spanish: "IntroducciΓ³n a las Fracciones" β Source translation
Child Variant (Texas)
βββ English: [Inherited from National]
βββ Spanish: [Inherited from National] β Automatically available!
When you create a variant:
1. The variant automatically inherits all translations from its parent
2. Inherited translations appear with an asterisk: ES*
3. You can customize (override) any inherited translation
4. Parent translation updates flow to inherited translations
Translation Source Types
In the tree view, you'll see translation badges with indicators:
| Badge | Source Type | Description |
|---|---|---|
ES |
Source | Translation created on this curriculum |
ES* |
Inherited | Translation inherited from parent |
ES (green) |
Custom | Variant-specific translation (overridden) |
| No badge | Fallback | No translation; showing English |
Customizing Inherited Translations
To customize an inherited translation for a variant:
- Open the variant curriculum
- Select the content node
- Switch to the target locale
- Click Customize Translation
- Edit the translation
- Save your changes
The translation is now "overridden" for this variant and won't receive parent updates.
Reverting to Inherited
If you want to undo a customization and return to the inherited translation:
- Open the overridden translation
- Click Revert to Inherited
- Confirm the action
The variant will again inherit the parent's translation.
Translation Dashboard
The Translation Dashboard provides a focused view for managing translation work.
Accessing the Dashboard
- Click Translations in the main navigation
- Select a target locale from the dropdown
- Optionally filter by curriculum
Queue Sections
The dashboard organizes translations into queues:
Needs Translation
- Content nodes that have no translation yet
- Sorted by recently updated
- Shows up to 50 items
Needs Review
- Translations that may be outdated (source changed)
- Sorted by when source changed
- Shows up to 20 items
In Progress
- Translations you've started but not completed
- Sorted by recently updated
- Shows up to 20 items
Recently Completed
- Translations marked as complete
- Useful for reviewing recent work
- Shows up to 10 items
Queue Item Information
Each item in the queue shows:
- Content node title (in English)
- Node type icon
- Parent breadcrumb trail
- Current translation status
- Last updated timestamp
Click any item to open the translation editor.
Translating Content
The Translation Editor
When you open a content node for translation, you'll see:
Left side: English (source) content
Right side: Translation fields
The editor shows all translatable attributes side-by-side for easy reference.
Translatable Attributes
Most text-based attributes can be translated:
- Title
- Description
- Rich text content
- Custom text fields
Non-translatable attributes include:
- Duration (numbers)
- Images (use the same asset)
- Boolean flags
- Relationships
Best Practices
- Translate completely - Don't leave partial translations
- Match formatting - Preserve headings, lists, and emphasis
- Review context - Click parent breadcrumbs to understand placement
- Use the queue - Work through Needs Translation systematically
- Check reviews - Regularly address Needs Review items
Translation Status Indicators
Throughout the interface, you'll see translation status at multiple levels:
Tree View Badges
In the content tree, each node shows:
- Locale code (e.g., ES)
- Color indicating status
- Asterisk (*) for inherited translations
Curriculum-Level Summary
On the curriculum index and detail pages:
- Translation progress percentage
- Count of untranslated nodes
- Count of nodes needing review
Drift Indicators
When source content changes:
- A "needs review" indicator appears
- The translation dashboard highlights affected items
- You can compare current translation with updated source
Filtering and Navigation
Tree Filters
In the content tree, you can filter by translation status:
- Open the tree filter panel
- Under Translation, select:
- All
- Needs Translation
- In Progress
- Translated
- Needs Review
This helps focus on content at a specific stage.
Curriculum Filter
On the Translation Dashboard:
- Use the Curriculum dropdown
- Select a specific curriculum
- The queue updates to show only that curriculum's content
Common Questions
"Can I translate the same content differently in different variants?"
Yes! This is the power of translation inheritance with overrides. Each variant can customize any translation while still inheriting translations it doesn't customize.
"What happens when I update the English source?"
The translation status changes to Needs Review. The existing translation remains intactβyou'll see it in the dashboard queue to review and update as needed.
"Can I delete a translation?"
You cannot delete source translations (on the base curriculum). However, you can revert variant customizations to inherited. The translation status will reset appropriately.
"How do I know if all content is translated?"
Check the curriculum detail page for translation progress. The Translation Dashboard also shows queue counts for each status.
"Can translators see content they shouldn't translate?"
Translation access follows the same permissions as content editing. Translators need at least Author role to create translations.
Related Documentation:
- Translate Your Curriculum - Complete translation workflow guide
- Glossary Terms - Manage translated terminology
- Locale Configuration - Admin locale setup
- Working with Content - Content editing basics
- Using Variants - Variant inheritance system