Architectural Overview
The LanguageSettings metadata type manages internationalization (i18n), Translation Workbench activation, and supported organizational languages in Salesforce. In multinational enterprises, global user bases operate across diverse native languages—such as Japanese, German, Spanish, French, and Simplified Chinese—requiring localized field labels, picklist values, and help text.
Architecturally, LanguageSettings is the foundational prerequisite for all translation and localization metadata. Enabling Translation Workbench through this setting unlocks the deployment of Translations, CustomObjectTranslation, and localized CustomLabel records. Without first applying LanguageSettings, any CI/CD pipeline attempting to deploy localized metadata will fail with TranslationWorkbenchNotEnabled errors.
Directory and File Conventions
In Salesforce DX source format, LanguageSettings is represented as a single XML file within the settings directory:
| Property | Value |
|---|---|
| Metadata Type Name | Settings (member: Language) |
| SFDX Source Folder | force-app/main/default/settings/ |
| File Name | Language.settings-meta.xml |
| Packaging / Manifest Type | Settings |
Key Metadata Fields
The XML schema for LanguageSettings controls Translation Workbench and data translation switches:
| Field Name | Type | Required | Description |
|---|---|---|---|
enableTranslationWorkbench |
boolean |
No | Master toggle that enables Translation Workbench in the Salesforce org. |
enableDataTranslation |
boolean |
No | Enables translation of data stored in custom fields on products and categories. |
enableEndUserLanguages |
boolean |
No | Enables tier-2 end-user languages in addition to fully supported platform languages. |
Note
Translation Workbench cannot be disabled once translations have been actively assigned to translators in an organization.
Declarative XML and Package Manifest Examples
Source XML (Language.settings-meta.xml)
<?xml version="1.0" encoding="UTF-8"?>
<LanguageSettings xmlns="http://soap.sforce.com/2006/04/metadata">
<enableTranslationWorkbench>true</enableTranslationWorkbench>
<enableDataTranslation>true</enableDataTranslation>
<enableEndUserLanguages>true</enableEndUserLanguages>
</LanguageSettings>Package Manifest (package.xml)
<?xml version="1.0" encoding="UTF-8"?>
<Package xmlns="http://soap.sforce.com/2006/04/metadata">
<types>
<members>Language</members>
<name>Settings</name>
</types>
<version>68.0</version>
</Package>Retrieval and Deployment
To retrieve LanguageSettings using the Salesforce CLI:
# Retrieve settings directly
sf project retrieve start --metadata Settings:Language
# Retrieve using manifest
sf project retrieve start --manifest manifest/package.xmlTo deploy LanguageSettings to a target environment:
# Deploy to designated org
sf project deploy start \
--metadata Settings:Language \
--target-org uat \
--wait 10Senior Architect Deployment Best Practices and Gotchas
Dependency Ordering in Global Deployments
Translation metadata has an uncompromising dependency on LanguageSettings. In continuous delivery pipelines:
- Phase 1: Deploy
Settings:Languageto activate Translation Workbench. - Phase 2: Deploy
CustomObject,CustomField, andGlobalValueSetmetadata. - Phase 3: Deploy
CustomObjectTranslationandTranslationslanguage files.
Warning
Attempting to deploy CustomObjectTranslation or language-specific translations in the same package transaction as Language.settings-meta.xml in an unconfigured org will trigger compilation errors stating that the language is not enabled for translation.
Scratch Org Configuration
For automated regression testing of multi-language implementations, enable Translation Workbench in project-scratch-def.json:
{
"orgName": "Global Multilingual Scratch Org",
"edition": "Enterprise",
"features": ["TranslationWorkbench"],
"settings": {
"languageSettings": {
"enableTranslationWorkbench": true,
"enableDataTranslation": true,
"enableEndUserLanguages": true
}
}
}Tip
After enabling LanguageSettings, ensure deployment automation provisions translators for each target locale so developers and CI pipelines can deploy translation files without permission errors.
Frequently asked questions
What does LanguageSettings control in Salesforce?
It configures Translation Workbench enablement, active organizational languages, and end-user multilingual capabilities.
Where is LanguageSettings stored in an SFDX project?
It is stored under force-app/main/default/settings as Language.settings-meta.xml and retrieved as Settings:Language.
Why is LanguageSettings required before deploying translations?
Translation Workbench must be enabled before custom label or field translations in specific locales can be deployed.
Can LanguageSettings be deployed to scratch orgs?
Yes, by adding TranslationWorkbench to features and defining languageSettings in project-scratch-def.json.
Comments
Questions, corrections and tips are welcome. Comments are GitHub Discussions, so you sign in with GitHub.