web-dev-qa-db-ja.com

ローカリゼーションと国際化、違いは何ですか?

UIで複数の言語をサポートするデスクトップアプリケーションの準備について質問しました。

トピックに関する既存の質問の検索では、「国際」という言葉を考えていたので、国際化タグを選択し、いくつかの一致する質問を読みました。

最終的には、代わりにローカライズというタグの付いた質問を検討する必要があることに気付きました。しかし、これら2つの用語を混同するのは私だけではないようです。

それで、ローカリゼーションと国際化の重要な違いは何ですか?

また、それらの明確な区別は本当に重要ですか?

198
Ash
国際化(i18n)
1つの言語/ロケール/文化に固定されないようにソフトウェアを変更するプロセス。
ローカリゼーション(l10n)
特定の言語/ロケールがサポートされるように、適切なリソースをソフトウェアに追加するプロセス。 このウィキペディアのエントリ よりも範囲が広いですが、良いスタートです。


それらを区別することの価値は、(理論的には)プログラムがi18nプロセスを通過すると、必要に応じて多くのl10nプロセスを反復できることです。また、言語について正確であるのは素晴らしいことです。

222
Hank Gay

Apple によると:

国際化は、ローカライズを容易にするアプリケーションを設計および構築するプロセスです。 ローカリゼーションは、2つ以上の文化的に異なる市場への国際化アプリケーションの文化的および言語的適応です。

70
mouviciel

国際化準備アプリケーションのローカライズ。たとえば、データベースに保存されている文字をUnicode(utf8mb4 の代わりに latin1)、文字列をリソースファイルに移動、日付、時刻、通貨形式などの使用を有効化.

たとえば、アプリの中国語版を販売したい場合は、翻訳者を雇ってzh-CNリソースファイルを作成し、新しい日付/時刻/通貨形式を使用してローカライズします。

31
Mark Brackett

L10nは、i18nが失敗した場所を示す場合があります。たとえば、辞書には、名詞として使用されるWordの単一エントリと、別の言語の同じWordに翻訳されない英語の動詞、またはUI要素があります/ designは文化には不向きです(L/R指向)。

したがって、l10nはi18nの後に「一般的に」発生しますが、i18nにフィードバックしてさらに再設計する必要があるため、いくつかのローカライズが完了するまでアプリを完全に国際化することはできません。

13
Cade Roux

Wikipedia によると

国際化は、さまざまな言語と地域に適応できるようにソフトウェアアプリケーションを設計するプロセスですwithout engineering changes

ローカリゼーションは、ロケール固有のコンポーネントを追加してテキストを翻訳することによる、特定の地域または言語のadapting internationalized softwareのプロセスです。

Also、ローカリゼーション(ロケールごとに複数回実行される可能性があります)は、infrastructure or flexibility provided by internationalization(理想的には1回のみ、または進行中の開発の不可欠な部分)。

11
Asik

グローバリゼーション(G11n):多言語ソフトウェア製品を開発し、グローバル市場に販売するプロセスです。

現在、多言語ソフトウェアの開発には2つの段階があります。最初の段階は国際化で、2番目の段階はローカリゼーションです。

国際化(I18n):製品を一般化して、再設計(つまり、言語と文化の中立)を必要とせずに複数の言語と文化的慣習を処理できるようにするプロセスです。

ローカリゼーション(L10n):製品を使用し、製品を使用および販売するターゲットロケール(国/地域および言語)に言語的および文化的に適切なものにするプロセス(つまり、言語および文化に固有)。

7
Abufardeh

たくさんの答え、多くの正しい情報がありますが、私の答えは少し別の観点です。

国際化-開発者がコード内に特定の言語のダイレクトメッセージ/エラーメッセージ/ボタン名/ラベルキャプション/などを持っていないが、翻訳に渡されるkeyがある場合関数、および現在のユーザーのロケールに応じた翻訳関数は、英語/フランス/などの最終テキストを返します...
変換関数はストレージ(db/files /連想配列/など)で機能します。
ストレージにはkeysがあり、これはcoodeで使用され、valuesはアプリケーションがサポートする特定の言語のテキストです。

ローカリゼーション-開発者をこのプロセスに関与させることなく、ストレージにkeysに適した新しい言語(スペインなど)の新しい値を追加するプロセスです。

たとえば、ストレージがあります:

_key   | english    | italian           |
------+------------+-------------------+
title | Welcome    | Benvenuto         |
agree | I agree    | Sono d'accordo    |
thank | Thank you  | Grazie            |
_

confirm(t(agree));またはconfirm("I agree");の代わりにconfirm("Sono d'accordo");のようなコードで使用している国際化
ローカリゼーション-ストレージに新しいロケールを追加します。たとえば:

_key   | english    | italian           | spanish          |
------+------------+-------------------+------------------+
title | Welcome    | Benvenuto         | Bienvenido       |
agree | I agree    | Sono d'accordo    | Estoy de acuerdo |
thank | Thank you  | Grazie            | Gracias          |
_

そして、ここで開発者は更新コードを必要としません、翻訳機能は適切なテキストを正しく運びます。

5
Vladimir Kovpak

以下の定義に従えば非常に簡単です、

i18n(国際化)

アプリケーションの設計のプロセス。これにより、アプリケーションのプログラムによる変更に頼らずに別の言語に変更する機能が得られます。

l10n(ローカリゼーション)

作成のプロセス実際の言語固有のテキストとフォーマット

5
Prateek Joshi

ここには非常に良い答えがいくつかあるので、それらはリサイクルしません。ただし、通常、国際化テストとローカリゼーション言語テストの間のある時点で、国際化とローカリゼーションは重複する傾向があります。ある人は、国際化にフィードバックするローカライズについて言及していますが、高品質の国際化テストを行い、擬似ローカライズされたコンテンツを作成している場合、ローカライズ中の開発問題の繰り返しは例外ではなく、ルールである必要があります。インターフェイスのサイズ変更、特にアラビア語やヘブライ語などの双方向言語をサポートするためのページの調整も、ローカライズの問題と国際化エンジニアリングの両方を融合する傾向があります。

国際化には、要件に基づいて任意のロケールをサポートするためにソースを変更することが含まれます。国際化がうまくできていれば...

...ローカライズには、特定のターゲット市場(ロケール)のニーズに最適に対応するために、コンテンツといくつかのレベルのプレゼンテーション(太字タグなど)の適合が含まれます。

ここで参照できる多くの記事とホワイトペーパー: http://www.lingoport.com/software-internationalization-articles

3
Adam

国際化-i18n-特定の言語/文化からのアプリケーションの抽象化。

ローカライズ-l10n-特定の言語/文化/ロケールの具体的なサポートを上記のi18nフレームワークにプラグインします。

基本的にi18nを最初に実行することで、l10nのPITAを大幅に減らします。

対照的に、最初に具体的なロケールでアプリケーションを作成し、その後それを国際化しようとすると、大規模なPITAになります。 「Hello World」という具体的な英語の文字列をResource.Global.HelloWorldに置き換えるだけの簡単なことではありません。

異なる言語には、異なるスペース要件、レイアウト、強調、色などがあります。

thinkでも複数のロケールをサポートする必要がある場合に、上記の違いに対してロケール間の切り替えを簡単にサポートするには、i18nフレームワークをゼロから配置する必要があります。

後でアプリケーションに組み込むことは本当に難しいです。あなたはあなた(または他の誰か)が最初に行ったアーキテクチャ上の考慮事項と制約の全体を再検討する必要があります。

3
rism

ロケール最初に理解しましょう

locale-ユーザーの言語、地域、およびユーザーがユーザーインターフェイスで表示する特殊なバリアント設定を定義するパラメーターのセット。通常、ロケール識別子は、少なくとも言語識別子と地域識別子で構成されます。

i18n-複数のロケールをサポートするソフトウェアの設計と開発。

l10n-これは、ソフトウェアがi18nをサポートしている場合にのみ可能です。しかし、l10nは、言語、日付形式、通貨形式などが特定のロケールのコンテキストで表示されるようにします。

たとえば

#1。 1977年6月3日は、3 de junio de 1977としてスペイン語に翻訳されます。

#2。一部の国の通貨は「。」で区切られています対 '、'

#3。ロケールの国に基づいてそれぞれの通貨記号を表示する

#1、#2、#3はローカライズのユースケースです。

ソフトウェアが#1をサポートするように設計されている場合[〜#〜] or [〜#〜]#2 [〜#〜] or [〜#〜]#3ベースユーザーロケールでは、製品はl10n対応です。

複数のロケールをサポートする場合、そのi18nは有効になります。

2

類推的な視点:4x4インチのサイズの本を1枚しか受け取れないライブラリーの棚を想像してください。国際化は、あらゆる種類の本のサイズや形状を扱うことができる、あらゆる種類の異なるコンパートメントで棚を構築することです。ローカリゼーションでは、すべての書籍を適切なセクションに設定します。データベース、ビジネスロジック、UIを棚、さまざまな言語、通貨、テキストの向きを本と考えてください。

2
Izz

ローカリゼーションは国際化なしでも行けると思いますが、ローカライズを伴う国際化は行われるべきではありません...

2
Paresh

単に、

Internationalization(I18N)は、ソフトウェアをさまざまな言語、地域、文化に適応させるプロセスです。

Localization(L10N)は、ソフトウェアを複数の言語に翻訳するプロセスです。しかし、ソフトウェアをローカライズする前に、それを国際化します。

0
Sagar Thummar