私はIOS AppsのローカライズXCode 5を見て始めました。そして、イタリア語ローカリゼーションを追加しようとしました。
Xcode 5は、Main.storyboardファイル内に配置した唯一のラベルに対して、単一のエントリを持つMain.stringsファイルを自動的に生成します。
/* Class = "IBUILabel"; text = "Label"; ObjectID = "PeT-4z-NSf"; */
"PeT-4z-NSf.text" = "Etichetta";
後でMain.storyboardファイルを変更して新しいボタンをビューに追加する場合、できればXcode 5に、欠落しているローカライズ文字列を- Main.strings file? Interface BuilderのObject IDフィールドを見て、手動で新しいエントリを追加する必要があります(動作しますが、これがどういう意味なのかわかりませんストーリーボードのローカライズを更新しますか?) Main.storyboardファイルでgenstringsのようなものを実行して、すべてのラベルのテキストを抽出し、新しいものをローカライズされたMain.stringsに追加できますか=ファイル?
チェックアウトBartyCrouch、それはあなたの問題を完全に解決します。また、オープンソース、積極的に保守され、プロジェクト内で簡単にインストールおよび統合。
InstallHomebrew を介したBartyCrouch
brew install bartycrouch
または、 Mint でインストールします:
mint install Flinesoft/BartyCrouch
Storyboards/XIBs Stringsファイルを段階的に更新します:
$ bartycrouch update
これはまさにあなたが探していたものです。
keepするために、Storyboards/XIBs Stringsファイルを更新しますIビルドスクリプトの追加を強くお勧めします(ビルドスクリプトの追加方法に関する指示 here ):
if which bartycrouch > /dev/null; then
bartycrouch update -x
bartycrouch lint -x
else
echo "warning: BartyCrouch not installed, download it from https://github.com/Flinesoft/BartyCrouch"
fi
Storyboards/XIBs Stringsファイルをインクリメンタルに更新することに加えて、これはLocalizable.strings
ファイルは、NSLocalizedString
を使用してコードに新しく追加されたキーで更新されたままであり、重複キーまたは空の値に関する警告を表示します。
追加情報については、 GitHub でBartyCrouchをチェックアウトしてください。
Xcodeが自動的に更新しないファイル(少なくとも5.xバージョンは更新しませんでした)は、アプリの_Localizable Strings
_です。次のように、_Main.storyboard
_から新しいファイルを作成できます。
プロジェクトナビゲーター(左端のペイン)で、_Main.storyboard
_ファイルをクリックします。 [ユーティリティ]ペイン(右端のペイン)で[ファイルインスペクターを表示]アイコンをクリックします。以下の画像の青色の一番左のアイコンです。
。
表示される右側のペインで、セクションの1つがLocalizationになります。
English (Localizable Strings)
行のチェックを外し、ポップアップするウィンドウでディスクからローカライズされたリソースファイルを削除するをチェックし、削除ボタンをクリックします(しない削除を確認する必要があります。その場合、Xcodeは次にビルドするときに、オーバーライドする許可を求めます。
次に、English (Localizable Strings)
をもう一度チェックして、ゼロから構築します。
Xcode 6を使用すると、次のことがうまくいきました:
SO h.orim投稿の質問 で提案されているように、言語のローカライズを "Localizable Strings"から "Interface Builder ..."に変更しました。ただし、設定は変更されませんでしたが、「ローカライズ可能な文字列」に設定されたままでした。次のステップは、それを再度行うことで、作成したストーリーボードを見つけ、使用するか置き換えるかを尋ねるプロンプトを表示します。 「置換」の代わりに「ファイルを使用」、そうでない場合は同じことが再び発生します。
これで、希望する言語のローカライズされたストーリーボードができました。 「ローカライズ可能な文字列」に切り替えた後、ストーリーボードで使用されているすべての現在の文字列を含むファイルが作成され、以前の翻訳はそのまま残ります。
これにはUpdatStoryboardStringsというスクリプトを使用できます!
こちらから入手: https://github.com/AppliedIS/iOSL10n
使用説明書: http://blog.appliedis.com/2013/05/22/localization-of-an-xcode-ios-app-part-2/
別の方法は、ストーリーボード上で翻訳するフィールドを選択して手動で行うことです。 「IDインスペクター」に移動し、オブジェクトID(HP8-op-SmXなど)をコピーします。
その後、ストーリーボードの言語ファイル(Main.strings、ほとんどの場合)を開き、オブジェクトIDを過ぎます。必要に応じて、.textまたは.placeholderを追加するだけです。
"HP8-op-SmX.placeholder" = "My translated placeholder text";
"HP9-op-VvD.text" = "My translated text";
保存、クリーニング、ビルド。少し苦痛ですが、翻訳する必要のあるものが少ない場合は、時間を大幅に節約できます。
Xcode 6以降では、開発者は文字列ファイルを手動で管理する必要はありません。 XLIFFエクスポートを使用して、開発言語の文字列を自動的に収集して翻訳者に送信し、XLIFFインポートを使用して文字列ファイルを翻訳で更新します。
別のオプションは、ibtool --export-strings-file
を直接使用することです。
https://developer.Apple.com/library/mac/documentation/Darwin/Reference/ManPages/man1/ibtool.1.html
次の2つのオプションがあります。
オプション1
Xcodeは、ファイルを[Interface Builder Cocoa Touch Storyboard]ファイルタイプまたは[Localizable Strings]ファイルタイプのいずれかに変換することにより、ファイルを「リロード」できます。
Project Navigatorからベースストーリーボードファイルを選択します。ファイルインスペクターの[ローカライズ]セクションを探します。ファイルが現在[ローカライズ可能な文字列]である場合は、[Interface Builder Cocoa Touch Storyboard]に変更します。 Xcodeは、古いローカライズの取り組みを維持しながら、ストーリーボードを現在のバージョンに変換する必要がありました。ここで、必要に応じてファイルを元のファイルタイプに戻すことができます。
オプション2
Ibtoolを使用して、ストーリーボードの文字列を抽出します。
ターミナルアプリケーションを開きます。Base.lprojディレクトリを見つけます。この行を使用して文字列を抽出します。
ibtool MainStoryboard.storyboard --generate-strings-file file_name.strings ibtoolが文字列をfile_name.stringsに抽出した後、元の.stringsファイルにコピーアンドペーストできます。