これは理想的には私がやりたいことです:
- 英語の基本ローカリゼーションを使用して、Xcode でプロジェクトをセットアップします。最終的には英語が必要です。たとえば、私
Localizable.strings
のストーリーボードとストーリーボードのオランダ語バージョンが必要です。 NSLocalizedString
形式のキーを使用し、fooViewController.barLabel
勤勉で、すべてのキーに適切なコンテキスト コメントを追加して、コード内の文字列を外部化します。- ストーリーボード ファイルにオランダ語のローカライズを追加する
- 実行時に設定され、翻訳を必要としないプレースホルダーとしてストーリーボードの特定のラベルをマークします
- 翻訳が必要なストーリーボードのラベルにコメントを追加します
- 「開発言語」
xliff
ファイルをエクスポートします ([プロジェクト]、[エディタ]、[ローカリゼーション用にエクスポート...] の順にクリックし、[開発言語のみ] を選択します)。 - CounterpartsやXliffieなどのツール、またはWeb ベースのツールで英語の
xliff
ファイルを開きます。 - キーの横に実際の英語の翻訳を追加
fooViewController.barLabel
し、en.xliff を再保存します。 nl.xliff
オリジナルからファイルを作成し、en.xliff
オランダ語の翻訳を追加する- 両方の
xliff
ファイルを Xcode にインポート.strings
し、コードで定義されたキーとストーリーボードで定義されたキーの両方について、オランダ語と英語の両方に適切なファイルを作成します。.strings
新しいファイルをソース リポジトリにコミットする - ソースとストーリーボードでキーが追加、削除、変更された後のある時点で、「開発言語」
en.xliff
を信頼できるソースとして再度エクスポートします en.xliff
およびnl.xliff
ファイルを現在の翻訳で更新し、追加または削除されたキーをツールで強調表示します。xliff
これらのファイルを Xcode にインポートしてファイルを更新.strings
し、ソース リポジトリにチェックインします。
これは理にかなっていますか?これはやりたいこととして合理的なことですか?と思うのですが、うまくいきません。
私が遭遇した問題は次のとおりです。
- Xcode はステップ 4 をサポートしていません。
xliff
形式はキーを としてマークできますがtranslate=no
、Xcode で注釈を付ける方法はありません (理想的には、Xcode はプレースホルダーとしてマークされたキーをまったくエクスポートしません)。 - Xcode はステップ 5 をサポートしていません。ラベルに翻訳者のコメントを設定する方法はありません。ストーリーボードのラベルに配置したプレースホルダー テキストとは別にキーを設定する方法さえありません。これは、ビューをレイアウトするときにLorem Ipsumでラベルを埋めることが役立つとわかった場合、非常に面倒です。
- 手順 10 に到達すると、Xcode は、ファイルにターゲット言語が指定されていないと文句を言い
en.xliff
ます。Counterpartsでターゲット言語を変更する (または、少なくとも、ターゲット言語を に設定した新しいファイルを作成するEN
) 方法はありますが、Xliffie でこれを行う方法が見つかりませんでした。 - 更新されたキーでファイルを再エクスポートしようとすると、Xcode は、見つかった文字の場所を
en.xliff
教えてくれました... アポストロフィ。ソースファイルにアポストロフィが含まれている場合、"Localization failed reading "[...]/Supporting Files/en.lproj/Localizable.strings, Please address the issue at file location 782"
Xcode はファイルをエクスポートできません。実際の F は… ?!xliff
.strings
- ステップ 12 と 13 がおかしくなり、何が起こっているのか理解できませんでした。Counterparts と Xliffie の両方が、元の
fooViewController.barLabel
キーを英語の翻訳に置き換えており、英語の翻訳がないことを伝えようとしているように見えました。バックをXcodeにインポートしようとするとen.xliff
、新しいキー以外のすべての翻訳がないことがわかり、先に進むと、en.lproj/Localization.strings
ファイルから既存の翻訳が消去されました.
これは混乱です。
キーを手動で設定したり、翻訳者のコメントを追加したり、特定のラベルを翻訳対象外のプレースホルダーとしてマークしたりせずに、ストーリーボードのラベルを翻訳することはできません。@IBOutlet
すべてのラベルを に接続し、その翻訳を で設定viewDidLoad()
することに頼りましたNSLocalizedString
。
.strings
アポストロフィの物乞いの信念を含むファイルをエクスポートしようとすると、Xcode が窒息します。
また、Xcode の「開発言語」が英語の場合、開発者が英語の翻訳を担当するという根本的な前提があるようです。これが真実である、個人のインディー開発者ショップ以外の状況は想像できません。
最後に、私が使用しようとしたツールがワークフローをどのように構築するかについて、何かが欠けているようです。誰かが私を啓発することができれば、私は非常に感謝しています.
.strings
開発者が「開発言語」に対する最終的な編集制御を担当せず、リポジトリにチェックインされたファイルが信頼できる情報源である、実行可能なローカリゼーション ワークフローを構築できた人はいますか?