Translation Commands
Create, edit, and manage translation keys directly from the command line.
List Translation Keys
langctl keys list mobile-app
Translation Keys (1,850):
┌──────────────────────────┬────────────┬───────────┬────────────┐
│ Key │ Module │ Languages │ Published │
├──────────────────────────┼────────────┼───────────┼────────────┤
│ auth.login.title │ auth │ 5/5 │ ✓ │
│ auth.login.subtitle │ auth │ 5/5 │ ✓ │
│ auth.signup.button │ auth │ 4/5 │ ✗ │
│ dashboard.welcome │ dashboard │ 5/5 │ ✓ │
└──────────────────────────┴────────────┴───────────┴────────────┘
langctl keys list mobile-app --module auth
langctl keys list mobile-app --drafts
langctl keys list mobile-app --published
langctl keys list mobile-app --missing es langctl keys create mobile-app home.welcome \
--value-en "Welcome!" \
--value-es "¡Bienvenido!" \
--value-fr "Bienvenue!"
✓ Created key: home.welcome
✓ Added translations: en, es, fr
langctl keys create mobile-app auth.login.title \
--module auth \
--value-en "Sign In" \
--description "Login page title"
langctl keys create mobile-app dashboard.title \
--value-en "Dashboard" \
--publish langctl keys get mobile-app home.welcome
Key: home.welcome
Module: home
Description: Main welcome message
Published: Yes
Created: March 15, 2024
Updated: April 10, 2024
Translations:
en: "Welcome, {{username}}!"
es: "¡Bienvenido, {{username}}!"
fr: "Bienvenue, {{username}}!"
de: "Willkommen, {{username}}!"
ja: "ようこそ、{{username}}!"
Parameters: username
History (last 3 changes):
Apr 10, 2024 - Updated es value ([email protected])
Apr 5, 2024 - Added ja translation ([email protected])
Mar 15, 2024 - Created key ([email protected]) langctl keys update mobile-app home.welcome \
--value-es "¡Bienvenido a nuestra aplicación!"
✓ Updated home.welcome (es)
langctl keys update mobile-app home.welcome \
--value-es "¡Bienvenido!" \
--value-fr "Bienvenue!" \
--value-de "Willkommen!"
langctl keys update mobile-app home.welcome \
--description "Updated welcome message"
langctl keys update mobile-app home.welcome --module landing langctl keys delete mobile-app old.unused.key
⚠ Warning: This will delete all translations for this key
? Continue? Yes
✓ Deleted key: old.unused.key
langctl keys delete mobile-app key1 key2 key3 --force
langctl keys delete mobile-app --pattern "test.*" --force
✓ Deleted 15 keys matching pattern: test.* langctl keys publish mobile-app home.welcome
✓ Published: home.welcome
langctl keys publish mobile-app auth.login.* dashboard.welcome
✓ Published 12 keys
langctl keys publish mobile-app --module auth --all-drafts
✓ Published 8 draft keys in auth module
langctl keys unpublish mobile-app beta.feature.title
✓ Unpublished: beta.feature.title langctl keys search mobile-app "login"
Found 8 keys:
- auth.login.title
- auth.login.subtitle
- auth.login.button
- auth.login.forgot_password
- auth.login.remember_me
- auth.login.error.invalid
- auth.login.error.network
- auth.login.success
langctl keys search mobile-app --value "Welcome" --lang en
Found 3 keys with "Welcome" in English:
- home.welcome
- onboarding.welcome
- dashboard.welcome
langctl keys search mobile-app "error" --module auth --unpublished langctl keys bulk-create mobile-app < keys.json
[
{
"key": "auth.login.title",
"module": "auth",
"translations": {
"en": "Sign In",
"es": "Iniciar sesión"
}
},
{
"key": "auth.signup.title",
"module": "auth",
"translations": {
"en": "Sign Up",
"es": "Registrarse"
}
}
]
✓ Created 2 keys langctl keys bulk-update mobile-app < updates.csv
key,language,value
home.welcome,es,"¡Bienvenido actualizado!"
home.subtitle,es,"Nuevo subtítulo"
auth.login.title,fr,"Se connecter"
✓ Updated 3 translations langctl keys bulk-publish mobile-app --module auth
✓ Published 42 keys in auth module
langctl keys bulk-publish mobile-app --pattern "dashboard.*"
✓ Published 87 keys matching dashboard.* langctl keys missing mobile-app --lang es
Missing Spanish translations (277 keys):
By Module:
auth: 23 missing (7%)
dashboard: 145 missing (25%)
settings: 67 missing (29%)
profile: 42 missing (21%)
Sample keys:
- auth.new_feature.title
- dashboard.reports.advanced
- settings.integrations.webhook
...
langctl keys missing mobile-app --lang es --export > missing-es.json langctl keys copy mobile-app --from en --to pt
✓ Copied 1,850 translations from en to pt
langctl keys copy mobile-app --from en --to pt --module auth
✓ Copied 342 translations from en to pt (auth module)
langctl keys copy mobile-app home.welcome --from en --to de
✓ Copied home.welcome: en -> de langctl keys translate mobile-app home.welcome --to es,fr,de
Translating home.welcome to 3 languages...
✓ es: "¡Bienvenido, {{username}}!"
✓ fr: "Bienvenue, {{username}}!"
✓ de: "Willkommen, {{username}}!"
langctl keys translate mobile-app --lang es --missing
Translating 277 missing keys to Spanish...
Progress: [████████████████████] 100% (277/277)
✓ Translated 277 keys
langctl keys translate mobile-app --module settings --to ja
Translating settings module to Japanese...
✓ Translated 234 keys langctl keys validate mobile-app
Validation Results:
✓ 1,723 keys passed
⚠ 5 warnings
✗ 2 errors
Warnings:
- home.welcome: Parameter {{username}} used but not in all languages
- auth.error: Translation too long for mobile UI (es)
- dashboard.title: Inconsistent punctuation across languages
Errors:
- settings.api.key: Missing required translation (en)
- profile.bio: Invalid parameter syntax: {username} (should be {{username}})
langctl keys validate mobile-app --module auth
langctl keys validate mobile-app --fix langctl keys compare mobile-app --from en --to es
Comparison: English vs Spanish
Complete: 1,573 keys (85%)
Missing: 277 keys (15%)
Length difference: Avg +12% longer in Spanish
Keys with significant differences:
- auth.terms: en=45 chars, es=127 chars (+182%)
- home.welcome: en=20 chars, es=45 chars (+125%)
langctl keys compare mobile-app web-app --key home.welcome
mobile-app (home.welcome):
en: "Welcome, {{username}}!"
es: "¡Bienvenido, {{username}}!"
web-app (home.welcome):
en: "Welcome back, {{username}}!"
es: "¡Bienvenido de nuevo, {{username}}!" Next Steps
- Export & Import - Export translations for your app
- Translation Management - Web interface guide
- AI Translation - Learn about AI features
- Module Organization - Organize translations