Localization
Build multi-language applications with Appivo
Localization Guide
Appivo provides built-in support for multi-language applications. Learn how to create applications that work in multiple languages.
Supported Languages
Appivo supports 8 languages out-of-the-box:
| Language | Code | Coverage |
|---|---|---|
| English | en | Complete (default) |
| Swedish | sv | Full translation |
| Danish | da | Partial |
| Norwegian | no | Partial |
| German | de | Available |
| French | fr | Available |
| Finnish | fi | Available |
| Spanish | es | Available |
Enabling Multi-Language Support
Step 1: Configure Languages
- Navigate to Application Settings
- Go to Localization
- Select the languages you want to support
- Set the default language
- Save your settings
Step 2: Translate Content
Translate these elements:
| Element | Example |
|---|---|
| Model Names | Customer → Kund (Swedish) |
| Attribute Labels | Name → Namn |
| Validation Messages | "Required" → "Obligatoriskt" |
| UI Text | Button labels, menu items |
| Email Templates | Create language-specific versions |
Translation Keys
Instead of hardcoding text, use translation keys.
Using Keys in UI
Original: "Welcome to our application"
With key: {{string "welcome.message"}}
Benefits
- Change text without modifying UI
- Easily add new languages
- Consistent terminology
- Professional translations
Date and Number Formatting
Appivo automatically handles locale-specific formatting:
Date Formats
| Locale | Format | Example |
|---|---|---|
| US English | MM/DD/YYYY | 01/15/2024 |
| Swedish | YYYY-MM-DD | 2024-01-15 |
| German | DD.MM.YYYY | 15.01.2024 |
| UK English | DD/MM/YYYY | 15/01/2024 |
Number Formats
| Locale | Format | Example |
|---|---|---|
| US English | 1,234.56 | $1,234.56 |
| Swedish | 1 234,56 | 1 234,56 kr |
| German | 1.234,56 | 1.234,56 € |
| French | 1 234,56 | 1 234,56 € |
Time Formats
| Locale | Format | Example |
|---|---|---|
| US English | 12-hour | 2:30 PM |
| European | 24-hour | 14:30 |
Translation Management
Translation UI
Use the Translation Management interface to:
- View translation progress
- See missing translations
- Edit translations directly
- Track completion percentage
Export/Import
For large translation projects:
- Export translations to Excel
- Send to professional translators
- Import completed translations
- Review and publish
Example Workflow
1. Develop application in default language
2. Export translation file
3. Send to translators
4. Import translations
5. Test each language
6. Deploy multi-language app
Best Practices
Plan for Localization Early
- Use translation keys from the start
- Don't hardcode text in code or templates
- Consider text length (translations vary)
- Design flexible layouts
Text Considerations
Translations may be significantly longer or shorter:
| English | German | Length Difference |
|---|---|---|
| "Save" | "Speichern" | +60% |
| "Settings" | "Einstellungen" | +55% |
| "Cancel" | "Abbrechen" | +80% |
Design UI to accommodate:
- Flexible button widths
- Expandable containers
- Wrapping text areas
Cultural Considerations
Beyond translation, consider:
- Date formats
- Number formats
- Currency symbols
- Reading direction
- Color meanings
- Icons and symbols
Testing
Test thoroughly in all languages:
- Check all UI text displays correctly
- Verify date/number formatting
- Test form validation messages
- Check email templates
- Verify PDF exports
Language Switching
User Preference
Users can set their preferred language:
- User accesses Settings
- Selects preferred language
- Application reloads in selected language
- Preference is saved
Automatic Detection
Appivo can detect language from:
- Browser settings
- User profile
- Tenant configuration
- URL parameter
Per-Tenant Language
Configure default language per tenant:
Tenant: Swedish Company AB
Default Language: Swedish
Available Languages: Swedish, English
Translating Dynamic Content
Model Data
For user-entered content, consider:
- Separate fields per language
- Translation tables
- Default fallback language
Example: Product Names
Model: Product
Attributes:
- name_en (Text) - English name
- name_sv (Text) - Swedish name
- name_de (Text) - German name
Computed Display
Display:
If user language is Swedish and name_sv exists:
Show name_sv
Else:
Show name_en (fallback)
Email and Notification Templates
Language-Specific Templates
Create separate templates per language:
Templates:
- welcome_email_en
- welcome_email_sv
- welcome_email_de
Dynamic Template Selection
Rule: Send Welcome Email
Action: SENDMAIL
Template: welcome_email_{{user.language}}
Common Patterns
Language Selector Widget
Select: Language
Options:
- English (en)
- Svenska (sv)
- Deutsch (de)
onChange: Save preference and reload
Fallback Chain
1. Try user's preferred language
2. Fall back to tenant default
3. Fall back to application default (English)
Translation Status Dashboard
Track completion:
Translation Progress:
- English: 100%
- Swedish: 95%
- German: 80%
- French: 60%
Missing translations: 47
Next Steps
- User Interfaces - Build localized UI
- Mobile Development - Mobile localization
- Rules and Actions - Localized notifications