Угловая поддержка js для локализации [закрыто]
Я попытался найти документацию в AngularJS для поддержки нескольких языков без успеха. Поддерживается ли локализация?
6 ответов:
взгляните на angular-translate:https://github.com/angular-translate/angular-translate
для всех людей DIY:
вы можете найти локализованные файлы для 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-value - и установите значение в код языка, который вы используете в своем файле - это пригодится для тестирования.
то, что вы ищете-это $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' }; } }
Я не уверен, что это "стандарт" за сказать... но это только начало. Если бы у вас был много локализации, чтобы сделать, я думаю, что я бы просто создать сервис для внедрения в мои контроллеры... что-то вроде этого псевдо-код:
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 на данный момент.