# gt: General Translation CLI tool: .strings URL: https://generaltranslation.com/en-US/docs/cli/reference/formats/dot-strings-files.mdx --- title: .strings description: Translate .strings files with the General Translation CLI. API reference for the .strings file format. --- The CLI translates `.strings` files, the key/value text tables an app loads from one `.lproj` directory per locale. Translations keep each entry's key, escapes, and format specifiers, and the comment above an entry is passed to the translation engine as context. *Note: `.strings` and `.stringsdict` are the legacy Apple localization layout. Xcode's String Catalog migration folds the `.lproj` files into a single `.xcstrings` catalog and deletes them, so a project uses one layout or the other. String Catalogs (`.xcstrings`) are not supported.* ## Configuration [#config] Add a `dotStrings` entry under `files` with an `include` array of glob patterns. Put the `[locale]` placeholder in the `.lproj` directory name so the CLI can find source tables and save translations to the right path. ```json title="gt.config.json" { "defaultLocale": "en", "locales": ["es", "ja", "ar"], "files": { "dotStrings": { "include": [ "Resources/[locale].lproj/Localizable.strings", "Resources/[locale].lproj/InfoPlist.strings" ] } } } ``` With this config, the CLI reads the tables in `Resources/en.lproj/` and writes `Resources/es.lproj/`, `Resources/ja.lproj/`, and `Resources/ar.lproj/`. See the [configuration reference](/docs/cli/reference/config#files) for all file keys. The `dotStrings` key requires `gt` 2.18.1 or later. ## Multiple tables per locale [#tables] Most apps ship more than one table per locale, so a config that lists only `Localizable.strings` silently leaves the rest untranslated. The two common tables are: - `Localizable.strings` — interface text loaded through `NSLocalizedString` - `InfoPlist.strings` — the system-facing values in `Info.plist`, such as `CFBundleDisplayName` and the usage descriptions shown in permission prompts List each table in `include`, or match them all with a single glob: ```json title="gt.config.json" { "files": { "dotStrings": { "include": ["Resources/[locale].lproj/*.strings"] } } } ``` ## Plurals [#plurals] A `.strings` entry holds one string per key and cannot express plural forms. Apple keeps plural rules in a companion `.stringsdict` file in the same `.lproj` directory, which is a separate config key. See [`.stringsdict`](/docs/cli/reference/formats/dot-stringsdict-files) to translate them alongside your tables.