Apple Strings (.strings)
Apple Strings (.strings) is the primary string resource format for iOS, macOS, watchOS, and tvOS applications. Each supported language has a Localizable.strings file stored in a language folder named with the locale code and .lproj suffix — en.lproj, fr.lproj, de.lproj. The format is a simple key-value structure: each entry is a quoted key, an equals sign, a quoted translated string, and a semicolon. C-style comments above each entry serve as translator notes.
Format specifiers for interpolated values use printf-style notation: percent-at for strings, percent-d for integers, percent-f for floats, and positional specifiers that allow argument reordering in languages where word order differs from English. The genstrings command-line tool extracts NSLocalizedString calls from Swift and Objective-C source files and writes them into the .strings file, including the developer comment as a translator note.
Best practice: enable Base Localisation in Xcode project settings so storyboard files live in Base.lproj with separate .strings sidecar files per language. Keep all user-facing strings in a single Localizable.strings file rather than multiple .strings files — consolidation makes Translation Memory more effective. Write a meaningful comment for every NSLocalizedString call; these comments are the context that translators rely on. Run genstrings as a build phase to keep strings in sync. Language Monster detects .strings files across all .lproj folders and preserves format specifiers through translation.
