31
30

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

Xcode6でいろいろローカライズしよう

Last updated at Posted at 2015-03-26

社内のiOS勉強会でTips共有したときのメモ
TODO: そのうち清書する(多分しない)

iOSアプリのローカライズについて

いろいろやり方あるけど自分はデフォルト厨なので、できるだけ自作ぽいことはせず、Apple様に提供して頂いている機能をなるべく使ってローカライズがんばる。 ペロペロ(靴をなめる音)

Export/Import for Localization

  • .stringsを手作業で編集するのはなにかと辛いですよね・・
  • 最近のxcodeでは以下のワークフローで翻訳作業できる
    • 開発者が、言語リソースを XIFF 形式 (XML Localization Interchange File Format)で出力
    • 翻訳者が編集
    • 開発者が翻訳済みのXLIFFをインポートすると、.stringsに変更が反映される

XLIFFエディタで翻訳

便利なところ

  • コード中の NSLocalizedString と既存のstringsをマージして XLIFF を吐いてくれるのでstringsは直接触らないくてよい
  • 手作業で更新した内容も反映される
  • Storyboard / xib の言語リソースも一緒にexportされるので、単一のXLIFF で翻訳をすべてまかなえる

面倒なところ

  • 言語ごとにimportが必要で面倒
  • テストターゲットに追加しているm/h内の言語が同一キーで重複する
    • <file original=“XXXTests/Localizable.strings” ..>の行で見分ければ良いがエディタ上で判別出来ないと辛い
    • Counterparts Lite ではキーを一覧しているだけなので辛い
    • xliffieだと、ローカライズ対象ごとに分けて表示してくれるのでオススメ

Storyboard / xib のローカライズ

  • Assistant Editor でプレビューできて便利ですよねー
  • なので、UILabelをOutletでつないで翻訳・・ではなくなるべくStoryboard / Xib自体をローカライズする方向で

2種類のローカライズ手段

  • Localizable.stringsとしてローカライズ
    • Storyboard/Xibから文字列抜き出してstringsを生成してくれる
    • ビューの構造が変わっても(なんとか)追従してくれる
    • Storyboard/Xib を編集 => 一旦"Storyboard/Xib自体をローカライズ”にconvert => 「Localizable.stringsとしてローカライズ」に戻す
  • Storyboard/Xib自体をローカライズ
    • Storyboard/Xibが言語ごとに複数作られる感じ
    • 初回設定時にオリジナルをcopyして、以降は変更は同期しない(!)
    • よっぽど言語ごとにレイアウト変わるとかじゃない限り使えなさげ => xcode6.2から?一旦stringsにconvertすれば変更は追従するようになってた
  • お好きな方で

詳細は以下を参考

Storyboardで消耗しないためのTips
http://qiita.com/kenmaz/items/5e749f37e7095e0d54f2

Attributed Stringのローカライズ

  • IB上で定義したAttributed Stringはローカライズ対象外 (stringsに吐かれない)
  • UILabelだけのxibを作ってローカライズ?
    • strings / XLIFF にはエクスポートされないので個別管理になってしまう

ロック

  • 他の人がstoryboardをいじらないようにロックできる(!)
  • どうなの・・・

コマンドラインからのexport/import

  • exportはこう
xcodebuild -exportLocalizations -localizationPath xliffs -project LocalizeSample4.xcodeproj -exportLanguage ja -exportLanguage en
  • でもimportはできない!
  • どーなの
  • importもできます
xcodebuild -importLocalizations -localizationPath ~/ja.xliff -project LocalizeSample4.xcodeproj

画像などのリソースのローカライズ

  • 画像ファイルなどローカライズ可能
  • だがxcassets管理下の画像はローカライズ不可能
  • どーなの

テスト

  • IB + Assistant Editor で確認できてうれしい
  • Edit Scheme -> Options > Application Languageで言語選択してsimulator実行

まとめ

31
30
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
31
30

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?