Guidelines for translating and localizing the Nova Code extension, including language-specific rules for German, Simplified Chinese, and Traditional Chinese.
Handle pluralization using i18next's built-in capabilities
Implement proper interpolation for variables using {{variable}} syntax
Don't include defaultValue. The en translations are the fallback
Always use apply_diff instead of write_to_file when editing existing translation files (much faster and more reliable)
When using apply_diff, carefully identify the exact JSON structure to edit to avoid syntax errors
Placeholders (like {{variable}}) must remain exactly identical to the English source to maintain code integration and prevent syntax errors
6. WORKFLOW AND APPROACH
First add or modify English strings, then ask for confirmation before translating to all other languages
Use this process for each localization task:
Identify where the string appears in the UI/codebase
Understand the context and purpose of the string
Update English translation first
Use the <search_files> tool to find JSON keys that are near new keys in English translations but do not yet exist in the other language files for <apply_diff> SEARCH context
Create appropriate translations for all other supported languages utilizing the search_files result using <apply_diff> without reading every file.
Do not output the translated text into the chat, just modify the files.
Validate your changes with the missing translations script
Flag or comment if an English source string is incomplete ("please see this...") to avoid truncated or unclear translations
For UI elements, distinguish between:
Button labels: Use short imperative commands ("Save", "Cancel")
Tooltip text: Can be slightly more descriptive
Preserve the original perspective: If text is a user command directed at the software, ensure the translation maintains this direction, avoiding language that makes it sound like an instruction from the system to the user
7. COMMON PITFALLS TO AVOID
Switching between formal and informal addressing styles - always stay informal ("du" not "Sie")
Translating or altering technical terms and brand names that should remain in English
Modifying or removing placeholders like {{variable}} - these must remain identical
Translating domain-specific terms that are commonly used in English in the target language
Changing the meaning or nuance of instructions or error messages
Forgetting to maintain consistent terminology throughout the translation
8. QUALITY ASSURANCE
Maintain consistent terminology across all translations
Respect the JSON structure of translation files
Watch for placeholders and preserve them in translations
Be mindful of text length in UI elements when translating to languages that might require more characters
Use context-aware translations when the same string has different meanings
Always validate your translation work by running the missing translations script:
node scripts/find-missing-translations.js
Address any missing translations identified by the script to ensure complete coverage across all locales
9. TRANSLATOR'S CHECKLIST
✓ Used informal tone consistently ("du" not "Sie")
✓ Preserved all placeholders exactly as in the English source
✓ Maintained consistent terminology with existing translations
✓ Kept technical terms and brand names unchanged where appropriate
✓ Preserved the original perspective (user→system vs system→user)
✓ Adapted the text appropriately for UI context (buttons vs tooltips)
Language-Specific Guidelines
German (de) Translation Guidelines
Key Rule: Always use informal speech ("du" form) in all German translations without exception.
Quick Reference
Category
Formal (Avoid)
Informal (Use)
Example
Pronouns
Sie
du
you
Possessives
Ihr/Ihre/Ihrem
dein/deine/deinem
your
Verbs
können Sie, müssen Sie
kannst du, musst du
you can, you must
Imperatives
Geben Sie ein, Wählen Sie
Gib ein, Wähle
Enter, Choose
Technical terms like "API", "token", "prompt" should not be translated.