Translations in Frappe Framework v15
What Are Translations in Frappe Framework?
Translations in Frappe Framework v15 enable ERPNext and custom Frappe apps to support multiple languages by converting user-facing text into localized language equivalents. This allows the same ERP system to be used by users across different regions and languages without changing application logic.
Translations are a core part of Frappe’s internationalization (i18n) system.
Why Are Translations Important in ERPNext?
ERPNext is used globally. Translations ensure usability, adoption, and compliance in multilingual environments.
Key Benefits
- Multilingual user interface
- Improved user experience for non-English users
- Support for regional and global deployments
- Better adoption across countries and teams
- Translations make ERPNext accessible worldwide.
Who Uses Frappe Translations?
Target Audience
- ERPNext Implementers
- Frappe Framework Developers
- Localization & Support Teams
- Global Enterprises
Technical Prerequisites
- Frappe Framework v15
- Basic knowledge of apps and sites
- Understanding of DocTypes and UI labels
How Does the Translation System Work in Frappe v15?
Frappe translations work by mapping source text (English) to translated strings stored in language files.
Core Concepts
- Translatable strings are marked automatically
- Language files store translations
- User language preference controls UI display
Translations apply to:
- Form labels
- Field descriptions
- Messages and alerts
- Reports and menus
What Are Translation Files in Frappe?
Translations are stored in .csv files within an app’s translations directory.
Typical Location
my_app/translations/
Each file represents one language (e.g., fr.csv, de.csv).
CSV Structure
| Source Text | Translated Text |
| Customer | Client |
| Sales Order | Bon de commande |
How Are Translations Loaded in Frappe v15?
When a user logs in:
- User language preference is detected
- Frappe loads translation files for installed apps
- Translations are cached for performance
- UI text is rendered in the selected language
This process is automatic and transparent to users.
How to Add or Update Translations?
Step-by-Step Overview
- Add language file to the app’s translations folder
- Populate translated values
- Clear cache or reload translations
- Switch user language to verify changes
No code changes are required for most translations.
Translating Custom Apps and DocTypes
Custom DocTypes, fields, and messages are automatically included in the translation system.
What Gets Translated
- DocType names
- Field labels
- Section and tab names
- Custom messages
This ensures full localization of custom ERPNext solutions.
User Language Selection in ERPNext
Each user can choose their preferred language.
How It Works
- Language is stored in the User record
- UI reloads automatically in selected language
- No restart required
This enables mixed-language usage in the same ERP system.
Real-World ERPNext Use Cases for Translations
Industry Relevance
- Manufacturing companies with multi-country operations
- Global sales and distribution teams
- Regional ERP deployments with local staff
- SaaS ERP platforms serving international clients
Translations are essential for global scalability.
Best Practices for Managing Translations
- Always keep source text in English
- Avoid hardcoding text in scripts
- Use clear and consistent labels
- Maintain translation files per app
- Test translations after updates
Common Translation Issues and Troubleshooting
Translation Not Appearing
- Clear cache after adding translations
- Verify exact source text match
- Confirm correct language selection
Incomplete Translations
- Check custom fields and messages
- Ensure translation files are loaded
Advanced Topics: Translation Workflow
App-Level vs Site-Level Translations
| Scope | Description |
| App-Level | Shared across all sites |
| Site-Level | Site-specific overrides |
App-level translations are recommended for reuse and consistency.
Integration Patterns
Translations integrate with:
- Desk UI
- Print Formats
- Reports
- Web Pages
- Custom Scripts
This ensures consistent localization across the system.
Official References (Verified)
Translations Guide (v15):
https://docs.frappe.io/framework/user/en/guides/basics/translations
Frappe GitHub (v15):