Recentemente ho riscontrato un problema: in alcune parti della mia applicazione angolare devo mostrare la data nel seguente formato: MMMM yyyy
, anche in alcuni componenti del framework Angular UI Bootstrap.Come gestire l'inflessione dei nomi dei mesi - Localizzazione della data angolare
Il problema di base è che in alcune lingue il mese in caso nominativo e genitivo è scritto in modo diverso. Nel mio caso quello sarebbe polacco, ucraino e russo.
Come sembra di default MMMM
indica il nome del mese nel caso genitivo, che generalmente ha senso.
Anche se ho notato che nel file di localizzazione angolari per Russian e Polish lingua c'è una proprietà STANDALONEMONTH
che, come vedo, sta per nome del mese in nominativo. (sebbene il file per Ukrainian manchi quella parte)
Anche se non sono abbastanza sicuro su come utilizzarlo. Il mio suggerimento di base sarebbe quello di andare con un decoratore per il dateFilter
.
Quindi la domanda è - se ci sia un modo standard per nome del mese manipolazione in angolare inflessione, o di una soluzione che viene comunemente utilizzato, in modo che le librerie di terze parti che utilizzano la $locale
avrebbe utilizzato il nome proprio mese.
Esempio
date: '2016-01-20'
en-us:
'dd MMMM yyyy' -> '20 January 2016'
'MMMM yyyy' -> 'January 2016'
uk-ua:
'dd MMMM yyyy' -> '20 січня 2016' // genitive case - it is fine
'MMMM yyyy' -> 'січня 2016' // wrong: should be 'січень 2016'
pl-pl:
'dd MMMM yyyy' -> '20 stycznia 2016' // genitive case - it is fine
'MMMM yyyy' -> 'stycznia 2016' // wrong: should be 'styczeń 2016'
Come si vede - per l'ucraino e polacco il nome del mese dovrebbe avere un finale diverso in questi due casi. Come pure per il polacco e il russo c'è un nome per il mese nel caso specifico in file locali angolari (STANDALONEMONTH
). Anche se non sono abbastanza sicuro che siano usati ovunque, non sono stato in grado di trovare l'utilizzo, o forse mi manca qualcosa.
Non è davvero chiaro il motivo per cui se hai incluso le risorse '$ locale' corrette non vedi i valori corretti. Una demo potrebbe probabilmente aiutare – charlietfl
@charlietfl Sto ottenendo i valori corretti. In un certo modo, ovviamente. Hai ragione, aggiungerò degli esempi. Grazie. – danyloid
personalmente non conosco nemmeno queste sfumature linguistiche. Immagino che molti altri si siano imbattuti in questo. Hai controllato i problemi di github su questo? – charlietfl