web-dev-qa-db-ja.com

Angularローカライズのjsサポート

複数の言語をサポートするためのドキュメントをAngularJSで見つけようとしましたが、成功しませんでした。ローカライズはサポートされていますか?

66
Chen Kinnrot

角度変換をご覧ください: https://github.com/angular-translate/angular-translate

すべてのDIYの人々:

角度のローカライズされたファイルを見つけることができます: here

これらのファイルは、組み込みのangularフィルター: datecurrency 、および number を支援します。 ... これまでのところ。

独自のテキストを使用する必要があります。必要なのは、angular.js依存性注入の力だけです。 「myTexts_en_us.js」のような新しいファイルを作成し、次のように$ provide.valueを使用します。

$provide.value("myTexts", {firstText : "This is my localized text"});

詳細については:
http://jsfiddle.net/4tRBY/24/

実際に使用するには、フィルターを追加する必要がありますhttp://jsfiddle.net/4tRBY/41/

ヒント:

  • 新しいローカリゼーションファイルを、手動でJSまたはServerを使用してhtmlに挿入してください。 (ここではサーバーが最良の選択です!)
  • angular-local files のいずれかを含める場合、アプリモジュールで設定する必要はありません。 (自動的に$ localeがあります-フィドルを参照)
  • $ provide-valueにidキーを追加し、ファイルで使用している言語コードに値を設定します-これはテストに役立ちます。
72
Thomas Deutsch

探しているのは $ locale です。

実際には angularjsホームページの途中 の例もあります。

例からの抜粋:

function BeerCounter($scope, $locale) {
  $scope.beers = [0, 1, 2, 3, 4, 5, 6];
  if ($locale.id == 'en-us') {
    $scope.beerForms = {
      0: 'no beers',
      one: '{} beer',
      other: '{} beers'
    };
  } else {
    $scope.beerForms = {
      0: 'žiadne pivo',
      one: '{} pivo',
      few: '{} pivá',
      other: '{} pív'
    };
  }
}

それが言うごとに「標準」であるかどうかはわかりません...しかしそれは始まりです。ローカリゼーションのlotがあった場合、コントローラーに挿入するサービスを作成すると思います...このような擬似コード:

app.service('myLocalization', ['$locale', function($locale) {
    var res = {
       'help' : { 
           'en-us': 'help',
           'es-mx': 'ayudame'
       },
       'beer' : {
            'en-us': 'beer',
            'es-mx': 'cerveza'
       }
    }

    return {
       getString: function(key) {
          return res[key][$locale.id];
       }
    }
});
17
Ben Lesh

ローカライズを目的としたモジュールを作成しました- https://github.com/4vanger/angular-l10n メッセージのローカライズ、パラメーターの置換、フライト中のロケールの変更をサポートし、多くの便利な方法を提供しますそれを使用する-フィルタ、ディレクティブなど.

7
4vanger

情報の完全性のために-AngularJS 1.4ストリーム内のどこかから始めて-コアのすぐ外に別のi18n実装があります。 https://github.com/angular/i18n をご覧ください

2
Yosh

国際化サポートをお探しの場合は、完全な多言語機能を備え、実装も簡単な以下のプロジェクトを参照できます。 githubプロジェクトをご覧ください

angularjs-localizationservice

0
kds

これも確認できます。

https://github.com/angular-ui/ui-utils/pull/17

現時点でangularで利用可能な他のi18nライブラリよりもパフォーマンスが優れています。

0
timothyswt