Skip to main content

The generate tool of iOS / Android localized strings.

Project description




The strgen can create iOS / Android strings file from CSV file.


The strgen can install using pip.

$ pip install strgen


1. Prepare input files

Prepare input files.

CSV file

The source file of multi language strings.

YAML file

The config file.

2. Run strgen

$ strgen strgen.yml 

Run with argument of YAML file path.
If not specified, strgen.yml in the current directory will be used.

The following files will be generated under the build folder.

  • build/
    • apple/
      • LocalizableStrings.swift
      • lproj/
        • en.lproj/Localizable.strings
        • ja-JP.lproj/Localizable.strings
        • ...
    • google/
      • values-en/strings.xml
      • values-ja-JP/strings.xml
      • ...

in apple folder(for iOS/macOS),
LocalizableStrings.swift that enumerated the key names is also generated.

import Foundation

class LocalizableStrings {

    enum Key: String {
        case yes = "yes"
        case no = "no"
        case cancel = "cancel"
        case next = "next"
        case close = "close"
        case escape_test = "escape_test"
        case parameter_google = "parameter_google"
        case parameter_apple = "parameter_apple"



There are sample that you can easily try.


  1. Clone project.
    $ git clone 
  2. Change the current directory to strgen/sample.
  3. Run
    $ strgen strgen.yml 
  4. Check build folder.

Input file format

CSV format

id en ja-JP zh-Hans zh-Hant ...
hello_world Hello world こんにちは世界 你好,世界 你好,世界 ...
yes Yes はい ...
no No いいえ 没有 沒有 ...
cancel Cancel キャンセル 取消 取消 ...
next Next キャンセル 下一个 下一個 ...
close Next キャンセル 下一个 下一個 ...
escape_test escape <'""&?@> test
parameter_google Parameter %1$s, %2$s.
parameter_apple Parameter %1$@, %2$@.


Start the header line with id.
Next, add the language (language and country code).


The id string will be the key to reference on iOS / Android.
Enter the localized string for each language.

You can leave the localized string blank.
In that case, no localized strings are generated for that language.

YAML format


  input_file_path: ./source.csv
  output_path: ./
  strings_file_name: strings.xml
  strings_file_name: Localizable.strings
  swift_file_name: LocalizableStrings.swift
  swift_class_name: LocalizableStrings


input_file_path (Required)

Input CSV file path.

output_path (Optional)

Output path.
Default directory is current directory


strings_file_name (Optional)

Generated strings file's name.
Default is strings.xml.


strings_file_name (Optional)

Generated strings file's name.
Default is Localizable.strings.

swift_file_name (Optional)

Generated swift file's name.
Default is LocalizableStrings.swift.

swift_class_name (Optional)

Generated swift class name.
Default is LocalizableStrings.

Project details

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Files for strgen, version 1.0.4
Filename, size File type Python version Upload date Hashes
Filename, size strgen-1.0.4.tar.gz (6.2 kB) File type Source Python version None Upload date Hashes View

Supported by

Pingdom Pingdom Monitoring Google Google Object Storage and Download Analytics Sentry Sentry Error logging AWS AWS Cloud computing DataDog DataDog Monitoring Fastly Fastly CDN DigiCert DigiCert EV certificate StatusPage StatusPage Status page