32

これは理想的には私がやりたいことです:

  1. 英語の基本ローカリゼーションを使用して、Xcode でプロジェクトをセットアップします。最終的には英語が必要です。たとえば、私Localizable.stringsのストーリーボードとストーリーボードのオランダ語バージョンが必要です。
  2. NSLocalizedString形式のキーを使用し、fooViewController.barLabel勤勉で、すべてのキーに適切なコンテキスト コメントを追加して、コード内の文字列を外部化します。
  3. ストーリーボード ファイルにオランダ語のローカライズを追加する
  4. 実行時に設定され、翻訳を必要としないプレースホルダーとしてストーリーボードの特定のラベルをマークします
  5. 翻訳が必要なストーリーボードのラベルにコメントを追加します
  6. 「開発言語」xliffファイルをエクスポートします ([プロジェクト]、[エディタ]、[ローカリゼーション用にエクスポート...] の順にクリックし、[開発言語のみ] を選択します)。
  7. CounterpartsXliffieなどのツール、またはWeb ベースのツールで英語のxliffファイルを開きます。
  8. キーの横に実際の英語の翻訳を追加fooViewController.barLabelし、en.xliff を再保存します。
  9. nl.xliffオリジナルからファイルを作成し、en.xliffオランダ語の翻訳を追加する
  10. 両方のxliffファイルを Xcode にインポート.stringsし、コードで定義されたキーとストーリーボードで定義されたキーの両方について、オランダ語と英語の両方に適切なファイルを作成します。.strings新しいファイルをソース リポジトリにコミットする
  11. ソースとストーリーボードでキーが追加、削除、変更された後のある時点で、「開発言語」en.xliffを信頼できるソースとして再度エクスポートします
  12. en.xliffおよびnl.xliffファイルを現在の翻訳で更新し、追加または削除されたキーをツールで強調表示します。
  13. 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開発者が「開発言語」に対する最終的な編集制御を担当せず、リポジトリにチェックインされたファイルが信頼できる情報源である、実行可能なローカリゼーション ワークフローを構築できた人はいますか?

4

1 に答える 1