【问题标题】:Angular-translate and date formatter: how to translate month name?角度翻译和日期格式化程序:如何翻译月份名称?
【发布时间】:2016-03-29 05:41:07
【问题描述】:

在我的应用中,我使用的是angular-translate

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

用于翻译我的内容。

在我看来,我也有这样的日期格式化程序:

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

但是当我设置波兰语、俄语(或任何其他语言,非英语)时 - 我的月份名称仍然是英语。

我该如何翻译它们(如果没有动量和其他插件可以做到这一点,那就太好了......)?

【问题讨论】:

  • 从类似的帖子plnkr.co/edit/AFpj79M1C6vOewSWLX8J试试这个plunkr
  • @Jared will be great, if this is doneable without momentum and other plugins。第二:我没有任何ui日历...
  • 他们使用 i18n 和 ngLocale,我认为你不需要动力。查看 ng-fr-ca.js 文件。
  • 您是否为您使用的语言加载了区域设置?这些包含您正在寻找的翻译。 github.com/angular/angular.js/tree/master/src/ngLocale
  • FWIW angular-translate 不会翻译任何日期或时间设置,您必须使用 ngLocale 或 angular-dynamic-locale 来执行此操作。在您的情况下,您必须使用后者 angular-dynamic-locale 来实现您的目标。据我所知,没有其他办法。链接:github.com/lgalfaso/angular-dynamic-locale

标签: javascript angularjs date angular-translate


【解决方案1】:

您不需要外部库,使用 angular-i18n 转换角度、日期和数字格式: https://docs.angularjs.org/guide/i18n

例如,要获取俄语日期,只需在 angular 之后包含语言环境文件:

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

当然这不会是动态的,你可以在服务器端管理它,或者找到其他技巧。

要从凉亭获取,请使用

$ bower install angular-i18n

Where are the AngularJS I18n files?

【讨论】:

  • 不...在我的情况下这是一个坏主意(因为我需要查看不带点的月份名称,从大写字母等...)
  • 如果它是格式中的点,您可以提供自己的:来自文档:“'longDate': 相当于 en_US 区域设置的 'MMMM d, y'(例如,2010 年 9 月 3 日) " 所以使用 'MMMM' 来获得完整的月份名称。也许我不理解您的需求,这还不够,在这种情况下,您可以根据 Angular 库的源代码创建自己的翻译:使用 $provide.value("$locale", { "DATETIME_FORMATS": {“AMPMS”:[“AM”,“PM”],“DAY”:[“dimanche”,“lundi”,“mardi”,“mercredi”,“jeudi”,“vendredi”,“samedi”......
【解决方案2】:

要动态更改应用程序区域设置,您需要 angular-dynamic-locale 并且还需要来自 ngLocale 的其他区域设置文件(英语附带 angular)。

这里正在工作plunker

您需要捕获翻译事件,因为我们希望在更改语言时更改语言环境。因此,为此我使用$translateChangeSuccess 事件将所选语言设置为新语言环境。

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

这里是所有$translate events的列表。

【讨论】:

    猜你喜欢
    • 2016-05-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多