トップ «前の日記(2012-06-22) 最新 次の日記(2012-06-24)» 編集

Cocoa練習帳

iOS/iPhone/iPad/watchOS/tvOS/MacOSX/Android プログラミング, Objective-C, Cocoa, Swiftなど

2012|01|02|03|04|05|06|07|08|09|10|11|12|
2013|01|02|03|04|05|06|07|08|09|10|11|12|
2014|01|02|03|04|05|06|07|08|09|10|11|12|
2015|01|02|03|04|05|06|07|08|09|10|11|12|
2016|01|02|03|04|05|06|07|08|09|10|11|12|
2017|01|02|03|04|05|06|07|08|09|10|11|12|
2018|01|02|03|04|05|06|07|08|09|10|11|12|
2019|01|02|03|04|05|06|07|08|09|10|11|12|
2020|01|02|03|04|05|06|07|08|09|10|11|12|
2021|01|02|03|04|05|06|07|08|09|10|11|12|
2022|01|02|03|04|05|06|07|08|09|10|11|12|
2023|01|02|03|04|05|06|07|08|09|10|11|12|
2024|01|02|03|

2012-06-23 [iOS]多言語化(5)

今回はStoryboardではなく、ソースコード中に言語に依存する文字列を埋め込んでいる場合の多言語化に挑戦だ。

ソースコード中に@"文言"で文字列を埋め込んでいる箇所をNSLocalizedString(@"文言", nil)に置換する。ベースは英語版の前提で話を進めているので、文言に相当する文字列はASCIIだ。

cell.detailTextLabel.text = NSLocalizedString(@"Detail", nil);

前回、Storyboardから文言を抜き出すターゲットを用意したが、これにNSLocalizedString()で多国語化する文字列を埋め込んだソースから文言を抜き出すスクリプトを追加する。

日本語を抜き出す
genstrings Homepwner/MasterViewController.m -o Homepwner/en.lproj
cp -p Homepwner/en.lproj/Localizable.strings Homepwner/ja.lproj/

このターゲットを実行すると、Localizable.stringsというファイルが生成されるはずだ。

ここからが前回の反省点をふまえた手順だ。

resourcesというグループを作成して多国語化で使用する文言のファイルをここに格納する。Finderからドラッグ&ドロップで追加という事になるか、これで追加するのは、en.lproj配下のファイルのみ。

追加したLocalizable.stringsを選択して、LocalizationとしてJapaneseを追加する。

日本語を選択

すると、ja.lprojにコピーが生成され、Xcode上の表示も操作しやすくなると思う。この時、この操作の前にja.lproj配下のファイルを日本語化していたら、英語版ファイルで上書かれるので注意する事。

多国語化
日本語化

Localizable.stringsをカスタマイズ。

/* No comment provided by engineer. */
"Detail" = "詳細表示";

実行

実行

トップ «前の日記(2012-06-22) 最新 次の日記(2012-06-24)» 編集