2015-12-22 6 views
6

В моем приложении я использую angular-translateУгловой перевод и форматирование даты: как перевести название месяца?

https://github.com/angular-translate/angular-translate

для перевода моего содержания.

А также, на мой взгляд у меня есть такая дата форматировщик:

{{article.CreatedAt | date:'dd MMM yyyy':'UTC'}} 

но когда я установил польский, русский (или любой другой язык, не-английский) - мои названия месяцев по-прежнему на английском.

Как я могу перевести их (будет здорово, если это невозможно без импульса и других плагинов ...)?

+0

попробовать этот plunkr от аналогичной должности http://plnkr.co/edit/AFpj79M1C6vOewSWLX8J – Jared

+0

@Jared 'будет большим, если это невозможно без импульса и других плагинов ». секунда: у меня нет никакого календаря ui ... – brabertaser19

+0

Они используют i18n и ngLocale, я не думаю, что вам нужен импульс. Посмотрите файл ng-fr-ca.js. – Jared

ответ

4

Для динамического изменения языкового стандарта приложения вам необходимо angular-dynamic-locale, и вам также нужны другие файлы локали (английский идет с угловым) от ngLocale.

Работает plunker.

Вам нужно поймать трансляцию событий, поскольку мы хотим изменить языковой стандарт при изменении языка. Поэтому для этой цели я использовал событие $translateChangeSuccess, чтобы установить выбранный язык в качестве новой локали.

$rootScope.$on('$translateChangeSuccess', function (event, data) { 
    tmhDynamicLocale.set(data.language); 
}); 

Вот список всех $translate events.

1

Вам не нужна внешняя библиотека, в угловом, дата и формат числа пересчитываются с использованием углового-i18n: https://docs.angularjs.org/guide/i18n

Например, чтобы получить дату в России, просто включите файл локали после углового:

<script src="angular.js"></script> 
<script src="angular-locale_ru-ru.js"></script> 

Конечно, это не будет динамично, вы можете управлять им на стороне сервера или найти другой трюк.

, чтобы получить его от беседки, используйте

$ bower install angular-i18n 

см Where are the AngularJS I18n files?

+0

нет ... это плохая идея в моем случае (потому что мне нужно чтобы увидеть название месяца без точки, от заглавной буквы и т. д.) – brabertaser19

+0

Если это точка в формате, вы можете предоставить свои собственные: из документации: «'longDate': эквивалентно« MMMM d, y »для en_US locale (например, 3 сентября 2010 г.) », поэтому используйте« MMMM »для полного имени месяца. Возможно, я не понимаю ваших потребностей, и этого недостаточно, в этом случае вы можете создать свой собственный перевод, вдохновленный исходным кодом угловых библиотек: используйте $ reserve.value («$ locale», { «DATETIME_FORMATS», : { "AMPMS": [ "AM", "PM" ], "ДЕНЬ": [ "Dimanche", "Ланди", "Марди", "MERCREDI", "Jeudi" , "vendredi", "samedi" ... – pdem

Смежные вопросы