回答:
それらを区別することの価値は、(理論的には)プログラムがi18nプロセスを通過すると、必要に応じて多くのl10nプロセスを反復できることです。また、言語について正確であることは素晴らしいことです。
ウィキペディアによると
国際化とは、さまざまな言語や地域に適応できるようにソフトウェアアプリケーションを設計するプロセスですwithout engineering changes
。
ローカリゼーションは、adapting internationalized software
ロケール固有のコンポーネントを追加してテキストを翻訳することにより、特定の地域または言語のプロセスです。
また、ローカリゼーション(異なるロケールに対して複数回実行される可能性があります)はinfrastructure or flexibility provided by internationalization
(理想的には1回だけ実行されるか、進行中の開発の不可欠な部分として実行されます)を使用します。
グローバリゼーション(G11n):多言語ソフトウェア製品を開発してグローバル市場に売り込むプロセスです。
多言語ソフトウェアの開発は現在2つの段階を経ています。最初の段階は国際化であり、2番目の段階はローカリゼーションです。
国際化(I18n):製品を一般化するプロセスであり、再設計(言語と文化に依存しない)を必要とせずに複数の言語と文化的慣習を処理できます。
ローカリゼーション(L10n):製品を取得し、それが使用および販売されるターゲットロケール(国/地域および言語)(言語および文化に固有)に言語的および文化的に適切にするプロセスです。
たくさんの答え、たくさんの正しい情報、しかし私の答えは少し別の見方です。
国際化 -開発者が特定の言語のコードに直接メッセージ/エラーメッセージ/ボタン名/ラベルキャプションなどを持たず、翻訳関数に渡されるキーがあり、現在のユーザーのロケールに応じた翻訳関数が最終テキストを返す場合英語/フランス/その他...
翻訳機能はストレージ(db / files /連想配列/ etc)で動作します。
ストレージにはキーが含まれていますは、coodeでれると、アプリケーションがサポートする特定の言語のテキストである値が。
ローカリゼーション - キーに適した新しい言語(スペインなど)で新しい値を追加するプロセス、開発者をこのプロセスに関与させることなくにをストレージプロセスです。
たとえば、次のストレージがあります。
key | english | italian |
------+------------+-------------------+
title | Welcome | Benvenuto |
agree | I agree | Sono d'accordo |
thank | Thank you | Grazie |
またはLocalizationの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 |
そして、ここで開発者は更新コードを必要としません、翻訳機能は適切なテキストを正しく運ぶでしょう。
ここには非常に良い答えがいくつかあるので、私はそれらをリサイクルしません。ただし、ある時点で、通常は国際化テストとローカリゼーション言語テストの間で、国際化とローカリゼーションが重複する傾向があります。ある人は国際化にフィードバックするl10nについて言及していますが、高品質のi18nテストを実行し、疑似ローカライズされたコンテンツを作成する場合、ローカライズ中の開発問題の反復は例外であり、規則ではありません。インターフェースのサイズ変更、特にアラビア語やヘブライ語のような双方向言語をサポートするためのページの適応も、ローカリゼーションの問題と国際化エンジニアリングの両方を融合させる傾向があります。
十分に言うと、国際化にはソースに変更を加えて、要件に基づいてロケールをサポートすることが含まれます。国際化がうまくできていれば...
...ローカリゼーションには、特定のターゲット市場(ロケール)のニーズに最適に対応できるように、コンテンツといくつかのレベルのプレゼンテーション(太字のタグなど)の調整が含まれます。
ここで参照できるたくさんの記事とホワイトペーパー:http : //www.lingoport.com/software-internationalization-articles
国際化-i18n-特定の言語/文化からのアプリケーションの抽象化。
ローカリゼーション-l10n-特定の言語/文化/ロケールの具体的なサポートを上記のi18nフレームワークにプラグインします。
基本的にi18nを最初に実行することで、l10nをPITAのはるかに少なくします。
対照的に、最初に具体的なロケールでアプリケーションを作成し、その後それを国際化しようとすると、大規模なPITAになります。具体的な英語の文字列を "Hello World"とResource.Global.HelloWorldに交換するという単純な問題ではありません。
言語が異なれば、必要なスペース、レイアウト、強調、色なども異なります。
複数のロケールをサポートする必要があると思われる場合でも、上記の違いに対してロケール間の切り替えを簡単にサポートするには、最初からi18nフレームワークが必要です。
後でアプリケーションに組み込むのは非常に困難です。あなた(または他の誰か)が最初に行ったアーキテクチャ上の考慮事項と制約の全体を再訪する必要があります。
ローカライゼーションは国際化なしで行くことができると思いますが、ローカライゼーションを伴う国際化は行われるべきではありません...
最初にロケールを理解しましょう
ロケール -ユーザーの言語、地域、およびユーザーがユーザーインターフェースで表示したい特別なバリアント設定を定義する一連のパラメーター。通常、ロケール識別子は、少なくとも言語識別子と地域識別子で構成されます。
i18n-複数のロケールをサポートするソフトウェアの設計と開発。
l10nこれは、ソフトウェアがi18nをサポートしている場合にのみ可能です。しかし、l10nは、言語、日付形式、通貨形式などが特定のロケールのコンテキストで表示されることを確認します。
例えば、
#1。1977年6月3日は、スペイン語に3977年6月3日として翻訳されます。
#2。一部の国の通貨は「。」で区切られています。対「、」
#3。ロケールの国に基づいてそれぞれの通貨記号を表示する
#1、#2、および#3は、ローカリゼーションのユースケースです。
ソフトウェアが#1 OR#2 ORをサポートするように設計されている場合ユーザーロケールに基づいて#3製品はl10n対応です。
複数のロケールをサポートしている場合は、i18nが有効になっています。
単に、
国際化(I18N)は、ソフトウェアをさまざまな言語、地域、文化に適応できるようにするプロセスです。
ローカリゼーション(L10N)は、ソフトウェアを複数の言語に翻訳するプロセスです。しかし、ソフトウェアをローカライズする前に、それを国際化します。