ios/translation/README.md
Follow these steps to add support for a new language in the Xcode project:
Open the Project Settings
In Xcode, select the project file (MullvadVPN.xcodeproj) in the Project Navigator, then select the project (not a target).
Go to the Localizations Section Under the Info tab, locate the Localizations section.
Add a New Language
Update Localizable.xcstrings
Add New Strings Through Code
NSLocalizedString("welcome_message", comment: "Shown on the home screen")
Text("welcome_message")
Xcode will detect that the key does not exist yet and will add it to Localizable.xcstrings automatically once the project is built.
Verify Build Settings Ensure the target’s Localizable.xcstrings list includes the new language.
Run the App
Add a new language on Crowdin under Settings → Translations → Target languages.
By default, the file structure is configured to produce folders using a two-letter language code (defined under Settings → Files → <FILE> → … → Settings).
If you want to add a dialect (e.g., pt-BR), you must provide a custom mapping to tell Crowdin to output Portuguese (Brazil) as pt-BR instead of pt.
To add a language mapping, go to Settings → General Settings → Language mapping (the three-faders icon on the left side of the “Translations” menu).
After updating the strings locally, upload them to Crowdin:
CROWDIN_API_KEY=$YOUR_CROWDIN_KEY ./scripts/ios-localization upload
Triggering translations in Crowdin must be done manually. Contact the project owner.
When translations are ready, download them by running:
CROWDIN_API_KEY=$YOUR_CROWDIN_KEY ./scripts/ios-localization download
All user-facing phrases and terms should be translated except for the following trademarks and technology names: