Skip to content

Translation

Translation for multilingual text.

Attributes:
source_text: Original text in default language (usually English)
translated_text: Translated text in target locale
locale: Target locale code (e.g., "fr", "es", "hi", "ta")
context: Optional context for disambiguation (e.g., "button", "label", "error")
Constraints:
Unique: (source_text, locale, context) - prevents duplicate translations
Example:
# Simple translation
t1 = Translation(
source_text="Save",
translated_text="Enregistrer",
locale="fr",
)
# Context-aware translation
t2 = Translation(
source_text="Save",
translated_text="Sauvegarder",
locale="fr",
context="button",
)

Source: translation.py

Field Type Required Description Validators
source_text str Original text in default language minLen: 1, maxLen: 1000
translated_text str Translated text in target locale minLen: 1, maxLen: 1000
locale str Target locale code (e.g., ‘fr’, ‘es’, ‘hi’) minLen: 2, maxLen: 10, pattern: ^[a-z]{2}(_[A-Z]{2})?$
context None Optional context for disambiguation maxLen: 100
namespace str Translation namespace (e.g., ‘common’, ‘desk’, ‘ui’) maxLen: 100
Role Create Delete Read Write
Admin
All
User
Setting Value
Submittable False
Track Changes True

Controller hooks are implemented in *_controller.py files. Available lifecycle hooks:

  • validate() - Called before save, raise exceptions for validation errors
  • before_insert() - Called before inserting a new document
  • after_insert() - Called after successfully inserting
  • before_save() - Called before saving (insert or update)
  • after_save() - Called after saving
  • before_delete() - Called before deleting
  • after_delete() - Called after deleting