複数の言語が利用可能なソフトウェアでは、必然的に、特定のロケールで一部のテキストが利用できない場合があります。この状況を処理する最良の方法は何ですか?
検討してください:
私は、あなたがテキスト翻訳を100%カバーしていることが理想だと思いますが、それは私がここで求めていることではありません。時間のプレッシャーやリソースの不足(特にオープンソースの場合)は、100%カバレッジなしでリリースすることを意味します。カバレッジが100%だと思っていても、古い言語ファイルがドロップされないか、なんらかの理由でドロップされたり、他の何百ものエラーの1つが失敗する可能性は常にあります。私の質問は、それが起こったときに何が起こるかについてです。
自分の経験から言えば、不足しているi18nプロパティを、人口統計で最も多くのユーザーが認識できる言語から取得したプロパティで置き換えます。この場合は英語です。
英語の翻訳を使用すると、いくつかのi18n識別子を使用するよりも理にかなっています。
com.smarttrust.m2m.ui.admin.administration.view.CustomerRetryInheritedViewDescriptor.inheritedSlowRetryInterval.title
これはどのインターフェースでも見栄えがしません。
もちろん、これは依然として問題であり、最善の方法は、すべてのi18nファイルを最新の状態に保つことです。
完全であることを保証するデフォルトのi18nファイルにフォールバックできます
開発テストでは、各値を"!"+key+"!"
(切り捨てられている可能性がある)ので、欠落している箇所がすぐにわかります
リリースでは、ユーザーが理解すると想定できる言語でデフォルトを埋めることができます(英語が頭に浮かびます)
私は他の人に同意します。フォールバック言語を示すことは進むべき道であるということです。開発者や翻訳者以外は、i18nキーを表示しないでください。
ただし、過去に追加したことの1つは、フォールバックすると(私の場合は英語に)、英語がボタンまたはリンクになり、翻訳を提供できるインターフェイスに直接移動できることです。翻訳が入力されるとすぐに、システムはそれを使用し始めます。これはウェブでは簡単ですが、デスクトップアプリでは簡単ではありませんが、それでも可能です。
これは、各フレーズのコンテキストを翻訳者に説明するのが簡単になったためです。エンドユーザーと非常に強い関係がない限り、エンドユーザーに対してこれを行うことはお勧めしません。翻訳をすぐにアクティブにしたくないのではないでしょうか。
ただし、これは開発テストでは非常にうまく機能します。私はi18nファイルを直接編集する必要がなかった非技術的な翻訳者と一緒に作業していました(特に、他の言語はRTLであるアラビア語であり、混合ファイルの編集が非常に難しくなります)。そのため、代わりに簡単なインターフェースを提供しました。