Angular AM/PM 的德语瞬间翻译
Angular moment translation for AM/PM in german
我的网站是德语的,我使用 moment and angular-moment 进行翻译。除 AM/PM 外,一切正常。我的代码
<time>{{ messagedata.created*1000| amDateFormat: 'D, MMM YYYY, h:mm:ss A' }}</time>
结果:16, Febr. 2017, 5:30:00 AM
想要的结果:16, Febr. 2017, 5:30:00 Uhr
配置
app.run(function ($rootScope, $location, amMoment, moment) {
amMoment.changeLocale(LANGCODE);
moment.updateLocale('en', {
relativeTime : {
m: "1 Minute",
h: "an Hour",
d: "1 Day",
M: "1 Month",
y: "1 Year",
}
});
moment.updateLocale('de', {
relativeTime : {
m: "1 Minute",
d: "1 Tag",
M: "1 Monat",
y: "1 Jahr",
}
});
});
那么,我想把 AM/PM 改成德语,可以吗?怎么样?
德国时间 work/go 与 AM/PM 不同。德国时间采用 24 小时格式。此外,日期以 .
而不是 ,
结尾。最后正确的输出是:16. Febr. 2017, 17:30:00 Uhr
。这就是我们(德国人)所期望的正确日期格式:)
<time>{{ messagedata.created*1000| amDateFormat: 'D. MMM YYYY, HH:mm:ss' }} Uhr</time>
H, HH 24 hour time
h, or hh 12 hour time (use in conjunction with a or A)
24-hour time notation is used officially and for purposes that require
precision like announcements in the media. In colloquial speech, a
12-hour clock is used.
注意口语!=技术正确输出。
如果您仍想使用 A
占位符,您可以创建一个自己的 meridiem
替换,例如:
// From 2.8.1 to 2.11.2
moment.locale('de', {
meridiem : function () {
return 'Uhr';
}
});
这样,以下格式应该适合您:
<time>{{ messagedata.created*1000| amDateFormat: 'D. MMM YYYY, HH:mm:ss A' }}</time>
另一个解决方案可以用 angular-translate
来处理。只需在翻译文件中创建正确的 meridiem
翻译即可。这个解决方案看起来像:
<time>
{{ messagedata.created*1000| amDateFormat: 'D. MMM YYYY, HH:mm:ss' }}
<span translate="meridiem"></span>
</time>
您可能需要 meridiem
自定义:https://momentjs.com/docs/#/customization/am-pm/
再给de
加一个属性,应该是一个函数。函数总是可以 return 静态翻译 'Uhr' 所以你不需要函数签名中的参数 hour, minute, isLowercase
:
meridiem : function () {
return 'Uhr';
}
我的网站是德语的,我使用 moment and angular-moment 进行翻译。除 AM/PM 外,一切正常。我的代码
<time>{{ messagedata.created*1000| amDateFormat: 'D, MMM YYYY, h:mm:ss A' }}</time>
结果:16, Febr. 2017, 5:30:00 AM
想要的结果:16, Febr. 2017, 5:30:00 Uhr
配置
app.run(function ($rootScope, $location, amMoment, moment) {
amMoment.changeLocale(LANGCODE);
moment.updateLocale('en', {
relativeTime : {
m: "1 Minute",
h: "an Hour",
d: "1 Day",
M: "1 Month",
y: "1 Year",
}
});
moment.updateLocale('de', {
relativeTime : {
m: "1 Minute",
d: "1 Tag",
M: "1 Monat",
y: "1 Jahr",
}
});
});
那么,我想把 AM/PM 改成德语,可以吗?怎么样?
德国时间 work/go 与 AM/PM 不同。德国时间采用 24 小时格式。此外,日期以 .
而不是 ,
结尾。最后正确的输出是:16. Febr. 2017, 17:30:00 Uhr
。这就是我们(德国人)所期望的正确日期格式:)
<time>{{ messagedata.created*1000| amDateFormat: 'D. MMM YYYY, HH:mm:ss' }} Uhr</time>
H, HH 24 hour time
h, or hh 12 hour time (use in conjunction with a or A)
24-hour time notation is used officially and for purposes that require precision like announcements in the media. In colloquial speech, a 12-hour clock is used.
注意口语!=技术正确输出。
如果您仍想使用 A
占位符,您可以创建一个自己的 meridiem
替换,例如:
// From 2.8.1 to 2.11.2
moment.locale('de', {
meridiem : function () {
return 'Uhr';
}
});
这样,以下格式应该适合您:
<time>{{ messagedata.created*1000| amDateFormat: 'D. MMM YYYY, HH:mm:ss A' }}</time>
另一个解决方案可以用 angular-translate
来处理。只需在翻译文件中创建正确的 meridiem
翻译即可。这个解决方案看起来像:
<time>
{{ messagedata.created*1000| amDateFormat: 'D. MMM YYYY, HH:mm:ss' }}
<span translate="meridiem"></span>
</time>
您可能需要 meridiem
自定义:https://momentjs.com/docs/#/customization/am-pm/
再给de
加一个属性,应该是一个函数。函数总是可以 return 静态翻译 'Uhr' 所以你不需要函数签名中的参数 hour, minute, isLowercase
:
meridiem : function () {
return 'Uhr';
}