Translations & Localization

Learn how to translate curriculum content into multiple languages while maintaining inheritance relationships.

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:

  1. Navigate to Settings β†’ Organization
  2. Find the Enabled Locales section
  3. Check the languages you want to support
  4. 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:

  1. Open the variant curriculum
  2. Select the content node
  3. Switch to the target locale
  4. Click Customize Translation
  5. Edit the translation
  6. 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:

  1. Open the overridden translation
  2. Click Revert to Inherited
  3. 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

  1. Click Translations in the main navigation
  2. Select a target locale from the dropdown
  3. 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

  1. Translate completely - Don't leave partial translations
  2. Match formatting - Preserve headings, lists, and emphasis
  3. Review context - Click parent breadcrumbs to understand placement
  4. Use the queue - Work through Needs Translation systematically
  5. 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:

  1. Open the tree filter panel
  2. 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:

  1. Use the Curriculum dropdown
  2. Select a specific curriculum
  3. 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

Was this page helpful? |