Угловая поддержка js для локализации [закрыто]



Я попытался найти документацию в AngularJS для поддержки нескольких языков, но безуспешно. Поддерживается ли локализация?

568   6  

6 ответов:

Взгляните на angular-translate: https://github.com/angular-translate/angular-translate

Для всех людей DIY:

Вы можете найти локализованные файлы для angular: здесь

Эти файлы помогут вам со встроенными угловыми фильтрами: Дата, валюта ичисло . Удивительный... пока что.

Теперь вы хотите использовать свои собственные тексты, чем все, что вам нужно, это сила angular.инъекция зависимости js. Создайте новый файл типа: - myTexts_en_us.js " и использовать $provide.значение типа этого:

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

Подробнее:
http://jsfiddle.net/4tRBY/24/

Для реального использования вы должны добавить фильтр : http://jsfiddle.net/4tRBY/41/

Советы:

  • убедитесь, что вы вставили новый файл локализации в свой html вручную, с помощью JS или сервера. (Сервер-лучший выбор здесь!)
  • если вы включаете один из угловых локальных файлов , вам не нужно настраивать его в ваш модуль приложения. (у вас будет $locale автоматически-смотрите скрипку)
  • добавьте id-ключ к вашему значению $provide-и установите значение в код языка, который вы используете в своем файле - это будет удобно для тестирования.

То, что вы ищете, - это $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'
    };
  }
}

Я не уверен, что это "стандарт", как говорят... но это только начало. Если бы у вас было Много локализации, я думаю, что просто создал бы сервис для внедрения в мои контроллеры... что-то вроде этого psuedo-кода:

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];
       }
    }
});

Я создал модуль специально для целей локализации - https://github.com/4vanger/angular-l10n Он поддерживает локализацию сообщений, замену параметров, изменение локали в полете и предоставляет ряд удобных способов ее использования - фильтры, директивы и т. д.

Просто для полноты информации-начиная где - то в потоке AngularJS 1.4-будет еще одна реализация i18n прямо из ядра. Пожалуйста, взгляните на https://github.com/angular/i18n

Вы также можете проверить это:

Https://github.com/angular-ui/ui-utils/pull/173

Производительность лучше, чем у любой другой библиотеки i18n, доступной для angular на данный момент.

Если вы ищете поддержку i18n, то вы можете обратиться к нижеприведенному проекту, который имеет полную многоязычную возможность, а также прост в реализации. Взгляните на проект github

Angularjs-localizationservice

Comments

    Ничего не найдено.