しばらく経っているので、これは包括的ではありません。
文字セット
Unicode は優れていますが、他の文字セットを無視することはできません。Windows XP (英語) のデフォルトの文字セットは Cp1252 です。Web では、ブラウザーが何を送信するかわかりません (ただし、コンテナーがこのほとんどを処理できることを願っています)。また、使用している実装にバグがあっても驚かないでください。文字セットは、マシン間を移動するときにファイル名と興味深い相互作用をすることがあります。
文字列の翻訳
一般的に言えば、翻訳者はコーダーではありません。ソースファイルを翻訳者に送ると、翻訳者はそれを壊します。文字列はリソース ファイル (Java のプロパティ ファイルや Visual C++ のリソース DLL など) に抽出する必要があります。翻訳者には、破損しにくいファイルと、破損させないツールを提供する必要があります。
翻訳者は、文字列が製品のどこから来たのかを知りません。文脈なしに文字列を翻訳するのは困難です。ガイダンスを提供しないと、翻訳の品質が低下します。
文脈上、同じ文字列「foo」が何度も出てきて、UI 内のすべてのインスタンスが同じリソースを指している方が効率的だと思うかもしれません。これは悪い考えです。一部の言語では、単語が非常に文脈依存的である場合があります。
文字列の翻訳にはお金がかかります。製品の新しいバージョンをリリースする場合、古いバージョンを復元することは理にかなっています。古いリソース ファイルから文字列を復元するツールを用意します。
文字列の連結と文字列の手動操作は最小限に抑える必要があります。該当する場合は、フォーマット関数を使用してください。
翻訳者はホットキーを変更できる必要があります。Ctrl+Pは英語で印刷されます。ドイツ人はCtrl+を使用しますD。
いつでも誰かが手動で文字列をカット アンド ペーストする必要がある翻訳プロセスがある場合は、問題が発生しています。
日付、時刻、カレンダー、通貨、数値形式、タイム ゾーン
これらはすべて国によって異なります。小数点以下の桁数を示すためにカンマを使用できます。時刻は 24 時間表記の場合があります。誰もがグレゴリオ暦を使用しているわけではありません。あなたも明確にする必要があります。Web サイトで日付を米国の場合は MM/DD/YYYY、英国の場合は DD/MM/YYYY で表示するように注意すると、ユーザーがそれを行ったことを認識しない限り、日付があいまいになります。
特に通貨
クラス ライブラリで提供されている Locale 関数は現地通貨記号を提供しますが、ドルで価格を示す値の前にポンド (スターリング) またはユーロ記号を付けることはできません。
ユーザー インターフェイス
レイアウトは動的でなければなりません。翻訳時に文字列の長さが 2 倍になる可能性があるだけでなく、コントロールが右から左に実行されるように、UI 全体を反転 (ヘブライ語、アラビア語) する必要がある場合があります。それはアジアに行く前の話です。
翻訳前のテスト
- コードの静的分析を使用して問題を特定します。最低限、IDE に組み込まれているツールを活用してください。(Eclipse ユーザーは、[ウィンドウ] > [設定] > [Java] > [コンパイラ] > [エラー/警告] に移動して、外部化されていない文字列を確認できます。)
- 翻訳をシミュレートすることによるスモーク テスト。リソース ファイルを解析し、文字列を、長さを 2 倍にしてファンキーな文字を挿入する疑似翻訳バージョンに置き換えることは難しくありません。外国のオペレーティング システムを使用するために言語を話す必要はありません。最新のシステムでは、翻訳された文字列と外国のロケールを使用して、外国のユーザーとしてログインできます。OS に精通している場合は、言語の単語を知らなくても、何が何をするのかを理解できます。
- キーボード マップと文字セットのリファレンスは非常に便利です。
- ここでは、仮想化が非常に役立ちます。
非技術的な問題
場合によっては、文化の違いに敏感になる必要があります (不快感や理解不能が生じる可能性があります)。よく見かける間違いは、ウェブサイトの言語や地域を選択する視覚的な合図としてフラグを使用することです。あなたのソフトウェアがグローバルな政治への支持を宣言したいのでない限り、これは悪い考えです。あなたがフランス人で、セント ジョージズ フラグ (イングランドの国旗は白地に赤十字) で英語のオプションを提供した場合、これは多くの英語話者にとって混乱を招く可能性があります - 同様の問題が外国語や外国で発生すると想定してください。 . アイコンは、文化的な関連性について吟味する必要があります。サムズアップまたは緑色のチェックマークは何を意味しますか? 言葉遣いは比較的中立的なものにする必要があります。特定の方法でユーザーに話しかけることは、ある地域では許容されますが、別の地域では失礼と見なされる場合があります。
資力
C++ および Java プログラマーは、ICU の Web サイト ( http://www.icu-project.org/ ) が役立つ場合があります。