IONIC2 - 如何翻译视图中的月份名称

IONIC2 - How to translate the names of months in the view

我在使用 ionic2 将月份名称从另一个国家/地区翻译成另一种语言时遇到问题。在我看来,我使用过滤日期来显示月份的全称。月份的名称以英语显示,我需要它们以巴西的葡萄牙语显示。

当我使用 ionic1 时,我刚刚访问了文件 'ionic.bundle.min.js' 并从那里更改了英文月份的名称。已经是ionic2了,还是不知道怎么改月份的语言。

谁能帮我解决这个问题?

您可以在 ion-datetime 标签上使用 monthShortNames and/or monthNames 属性

<ion-item>
  <ion-datetime displayFormat="DD/MMM/YYYY HH:mm" pickerFormat="DD MMM YYYY HH mm" monthShortNames='jan, fev, mar, abr, mai, jun, jul, ago, set, out, nov, dez' doneText="Ok" cancelText="Cancelar"></ion-datetime>
</ion-item>
<ion-item>
  <ion-datetime displayFormat="DD/MMMM/YYYY HH:mm" pickerFormat="DD MMMM YYYY HH mm" montNames='janeiro, fevereiro, março, abril, maio, junho, etc...' doneText="Ok" cancelText="Cancelar"></ion-datetime>
</ion-item>

如果您想显示短名称,您的选择器和显示格式必须是 MMM,对于长名称,它必须是 MMMM。

您可以同时使用两者,例如选择器中的 MMM 和用于显示的 MMMM。

dayNamesdayShortNames也是如此。

这仅用于显示目的,在您的 .ts 文件中,它们将采用 ISO 字符串格式,如果您想操纵它们以稍后以葡萄牙语显示,我建议使用 Moment.js 更改语言环境到 'pt-br' 并显示在您的视图中。 如果您也需要这方面的帮助,请发表评论,我将编辑显示如何执行此操作。

其他解决方案,打开您的 app.module.ts 文件,您必须这样完成 Imports 键:

imports: [
BrowserModule,
HttpModule,
IonicModule.forRoot(MyApp, {
  monthNames: ['janvier', 'février', 'mars', 'avril', 'mai', 'juin', 'juillet', 'aout', 'septembre', 'octobre', 'novembre', 'décembre' ],
  monthShortNames: ['jan', 'fev', 'mar', 'avr', 'mai', 'jui', 'jui', 'aou', 'sep', 'oct', 'nov', 'dec' ],
  dayNames:['dimanche','lundi','mardi','mercredi','jeudi','vendredi','samedi'],
 }),
IonicStorageModule.forRoot()
]

在您的 html 页面中,您的 ion-dateime 标签将这样使用:

<ion-datetime displayFormat="DDDD D MMMM YYYY" min="2017" max="2099-12-31" cancelText="Annuler" doneText="Valider" [(ngModel)]="DateDebut"></ion-datetime>

如果您像我一样使用短版本,请不要忘记为 dayShortNames 添加列表

imports: [
HttpModule,
BrowserModule,
IonicModule.forRoot(MyApp, {
    monthNames: ['janvier', 'février', 'mars', 'avril', 'mai', 'juin', 'juillet', 'aout', 'septembre', 'octobre', 'novembre', 'décembre' ],
    monthShortNames: ['jan', 'fev', 'mar', 'avr', 'mai', 'jui', 'jui', 'aou', 'sep', 'oct', 'nov', 'dec' ],
    dayNames:['dimanche','lundi','mardi','mercredi','jeudi','vendredi','samedi'],
    dayShortNames:['dim','lun','mar','mer','jeu','ven','sam'],
}),

as describe in the official description on Ionic

我用过momentjs。它支持多语言。

<ion-datetime formControlName="birthdate"  [(ngModel)]="birthdate" [monthNames]="monthNames" [monthShortNames]="monthShortNames"></ion-datetime>

在 .ts 文件中

import moment from 'moment';

.....

    this.monthNames = moment.months();
    this.monthShortNames = moment.monthsShort();

.....