strgen は Android / iOS の多言語ファイルを CSV ファイルから作成できます。
https://pypi.org/project/strgen/
pip
を使ってインストールできます。
$ pip install strgen
入力用ファイルの準備。
多言語ファイルのソースファイルです。
設定ファイルです。
$ strgen --config strgen.yml
YAML ファイルを引数にして、実行します。
もし、指定がない場合、カレントディレクトリにある strgen.yml
を使用することになります。
以下のファイルが build
フォルダ以下に生成されます。
- build/
- apple/
- LocalizableStrings.swift
- lproj/
- en.lproj/Localizable.strings
- ja-JP.lproj/Localizable.strings
- ...
- google/
- values-en/strings.xml
- values-ja-JP/strings.xml
- ...
- apple/
apple
フォルダ(iOS/macOS 用)の中には、 キーが列挙された LocalizableStrings.swift
も生成されます。
import Foundation
class LocalizableStrings {
enum Key: String {
case yes
case no
case cancel
case next
case close
case escape_test
case parameter_google
case parameter_apple
}
}
簡単に試せるサンプルがあります。
strgen
をインストールします。$ pip install strgen
- プロジェクトを clone します。
$ git clone https://github.com/daisuke-t-jp/strgen
- カレントディレクトリを
strgen/sample
フォルダに変更します。 - 以下のコマンドを実行。
$ strgen --config strgen.yml
build
フォルダを確認します。
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$@. |
ヘッダ行は id
で開始します。
次に、言語(言語と国コード)を追加します。
id
の文字列が iOS / Android 参照用のキーになります。
各言語のローカライズされた文字列を入力します。
ローカライズ文字列を未入力にすることもできます。
その場合は、その言語に対してのローカライズ文字列は生成されません。
strgen.yml
general:
input_file_path: ./source.csv
output_path: ./
google:
enabled: true
strings_file_name: strings.xml
apple:
enabled: true
strings_file_name: Localizable.strings
swift_file_name: LocalizableStrings.swift
swift_class_name: LocalizableStrings
入力用 CSV ファイルのパス。
出力先パス。
デフォルトは、YAML ファイルと同じディレクトリになります。
出力ファイルを生成するかどうかのフラグ。
デフォルトは true
です。
生成された多言語ファイルの名前。
デフォルトは strings.xml
です。
出力ファイルを生成するかどうかのフラグ。
デフォルトは true
です。
生成された多言語ファイルの名前。
デフォルトは Localizable.strings
です。
生成された Swift ファイルの名前。
デフォルトは LocalizableStrings.swift
です。
生成された Swift クラス名。
デフォルトは LocalizableStrings
です。