iOS & macOS Localisation

Enable Base Localisation in your Xcode project settings before adding any language. This creates a Base.lproj folder for storyboard and XIB interface files with separate .strings sidecar files per language, rather than duplicating entire interface files. Keep all user-facing strings in a single Localizable.strings file rather than spread across multiple .strings files — consolidation makes Translation Memory more effective and simplifies Language Monster's file mapping across your .lproj folders.

Use NSLocalizedString consistently for every user-visible string in Swift or Objective-C. Write a clear, specific comment as the second argument — this is extracted by the genstrings command-line tool into the .strings file as a translator note and surfaces in Language Monster during translation. Choose meaningful, stable key names rather than using the English text as the key — semantic keys survive copy changes without requiring renames. NSLocalizedStringWithDefaultValue lets you provide the default English string at the call site, making source code self-documenting without depending on the .strings file for the base value.

Use .stringsdict files for all plural-sensitive strings rather than writing separate singular and plural keys and choosing between them in code. A .stringsdict entry handles every plural category for every supported language — Arabic requires six plural forms, Polish requires four, Russian requires three. Hardcoded if-else pluralisation in Swift only works for English and a small number of similar languages.

Connect your GitHub or Bitbucket repository to Language Monster. Language Monster detects .strings and .stringsdict files across all .lproj folders automatically. New keys in en.lproj/Localizable.strings are queued for translation and completed translations are pushed back to the correct language folders. For agency handoffs or Xcode import and export workflows, Language Monster also supports Apple XLIFF — export from Xcode, translate via Language Monster, and import back using Xcode's Product menu.

Run genstrings as an Xcode build phase to extract strings from source and keep Localizable.strings in sync. Language Monster's quality controls validate placeholder integrity for percent-at, percent-d, and percent-f format specifiers, run spelling and grammar checks on every target-language string, and flag number format inconsistencies before translated files reach your repository.

Read More Apple Strings (.strings)

Read More Apple Xliff (xliff, xlf)

Read More File Formats

Read More Integrations