2015-12-22 11 views
6

Nella mia app sto usando angular-translateFormattatore di traduzione angolare e data: come tradurre il nome del mese?

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

per tradurre i miei contenuti.

E anche a mio avviso ho tale data formattatore:

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

ma quando ho impostato polacco, russo (o qualsiasi altra lingua, non in lingua inglese) - i miei nomi dei mesi sono ancora in inglese.

Come posso tradurli (sarà fantastico, se questo è donabile senza slancio e altri plugin ...)?

+0

provare questo plunkr da un post simile http://plnkr.co/edit/AFpj79M1C6vOewSWLX8J – Jared

+0

@Jared 'sarà grande, se questo è donabile senza slancio e altri plugin'. secondo: non ho alcun calendario ui ... – brabertaser19

+0

Stanno usando i18n e ngLocale, non penso che tu abbia bisogno di slancio. Guarda il file ng-fr-ca.js. – Jared

risposta

4

Per modificare dinamicamente la localizzazione dell'applicazione è necessario angular-dynamic-locale e sono necessari anche altri file locali (l'inglese viene fornito con angolazione) da ngLocale.

Qui funziona plunker.

È necessario catturare gli eventi di traduzione in quanto vogliamo cambiare la lingua quando la lingua viene cambiata. Quindi per questo scopo ho usato l'evento $translateChangeSuccess per impostare la lingua selezionata come nuova locale.

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

Ecco l'elenco di tutti $translate events.

1

Non hai bisogno di una libreria esterna, in angolare, la data e il formato numerico sono convertiti utilizzando angolare-i18n: https://docs.angularjs.org/guide/i18n

Ad esempio, per ottenere la data in russo, basta includere il file locale dopo angolare:

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

Naturalmente questo non sarà dinamico, potresti gestirlo lato server o trovare un altro trucco.

di ottenere da pergolato, utilizzare

$ bower install angular-i18n 

vedere Where are the AngularJS I18n files?

+0

no ... è una cattiva idea nel mio caso (perché ho bisogno per vedere il nome del mese senza punto, dalla lettera maiuscola ecc ...) – brabertaser19

+0

Se è un punto del formato, puoi fornire il tuo: dalla documentazione: "'longDate': equivalente a 'MMMM d, y' per en_US locale (ad esempio, 3 settembre 2010) "usa" MMMM "per avere il nome completo del mese. Forse non capisco le tue necessità e non è sufficiente, in tal caso, puoi creare la tua traduzione ispirata al codice sorgente delle librerie angolari: usa $ fornire.value ("$ locale", { "DATETIME_FORMATS" : { "AMPMS": [ "AM", "PM" ], "DAY": [ "dimanche", "lundi", "Martedì", "mercredi", "jeudi" , "vendredi", "samedi" ... – pdem

Problemi correlati