Javascript 如何在meteor.js中本地化(i18n)moment.js?

Javascript 如何在meteor.js中本地化(i18n)moment.js?,javascript,internationalization,meteor,momentjs,Javascript,Internationalization,Meteor,Momentjs,如何告知meteor.js应用程序中使用的矩.js使用英语以外的其他语言?js(作为mrt软件包安装)可以很好地使用默认的英语语言 使用moment.js docs中的demo调用始终生成“en”。我注意到meteor_project/packages/moment/lib/moment/lang/de.js中有一个德语文件,但似乎没有使用 要指定:在我尝试的模板辅助对象中: 瞬间。朗(‘德’); return moment.lang()//将导致“en” 这里提到的其他选项:只是不要使用Met

如何告知meteor.js应用程序中使用的矩.js使用英语以外的其他语言?js(作为mrt软件包安装)可以很好地使用默认的英语语言

使用moment.js docs中的demo调用始终生成“en”。我注意到meteor_project/packages/moment/lib/moment/lang/de.js中有一个德语文件,但似乎没有使用

要指定:在我尝试的模板辅助对象中: 瞬间。朗(‘德’); return moment.lang()//将导致“en”


这里提到的其他选项:

只是不要使用Meteorite软件包。包括Moment.js客户端以及您需要的任何语言文件

  • mrt移除力矩
  • 在项目中创建文件夹
    client/compatibility/moment
  • 保存到
    客户端/compatibility/moment

  • 就这样。您不需要添加任何
    标记,什么都不需要。由于Moment.js位于
    client/compatibility
    子文件夹中,因此从
    client
    client
    的任何其他子文件夹加载的任何客户端代码都将在Moment.js加载后运行。

    如果您将
    Moment
    安装为

    mrt添加时刻

    那么您已经获得了语言,但是您必须手动包含它们。在
    packages\moment\lib\lang
    找到它们。要包含它们,请转到
    package.js
    文件,在所有其他文件之后添加您选择的语言

    api.add_文件('lib/moment/lang/de.js','client')

    就这样


    如果你今天还使用官方的“meteor AddMomentJS:moment”,那么他们的momentum.js似乎仍然只是安装的momentum.js,没有翻译。 我的解决方法:只需打开并Str-F您想要的语言(在我的例子中是德语),然后复制并通过:

    // moment.js locale configuration
    // locale : german (de)
    // author : lluchs : 
    // author: Menelion Elensúle: 
    
    (function (factory) {
        ...
    }`
    
    在momentum.js文件中,例如client/lib文件夹中。重新加载和他们的you with moment.locale('de')。。。自从.lang('de')被弃用以来。

    至于今天(2015年7月),我已经做到了:

    从Moment.js github存储库下载,并将其放在应用程序的客户端文件夹中

    我选择了
    client/lib/moment/locales.min.js

    然后,您可以设置任何您喜欢的语言环境(js拥有的语言环境),并根据用户帐户设置进行更改

    moment.locale('en')
    // or
    moment.locale('ru')
    
    我不喜欢的是所有语言都合并在一个文件中。即使它不是太大,仍然有一些工作要做(ajax调用或类似的东西,以便只获取您需要的语言环境文件)


    顺便说一下。如果您不需要所有支持的语言,您可以获取。
    我相信meteor.js会在您投入生产时自动缩小此文件

    您可以使用的软件包

    这些包使用官方momentjs:MomentMeteor包

    地区:

    添加特定区域设置用户的步骤

    meteor add rzymek:moment locale pl

    可通过以下方式获得完整的地区列表:

    流星搜索rzymek:moment locale-.*

    要添加所有区域设置,请使用:

    meteor add rzymek:moment locales


    我做了以下的翻译

    您必须安装“momentjs:moment”

    之后,您必须为要添加的每种语言使用以下行。我把它放在main.js文件中

    //瞬间JS的法语翻译
    力矩.区域设置('fr'{
    月份:“janvier_février_mars_avril_mai_juin_juillet_aot_septbre_octobre_novenbre_décembre”。拆分(“),
    monthsShort:“1月1日、10月1日、10月1日、11月1日、9月1日、10月1日、11月1日、9月1日、10月1日、10月1日、10月1日、10月1日、10月1日、10月1日、10月1日、10日、11月1日、7日、7、7、7、7、7、7、7、7、7、7、7、7、7,
    工作日:“dimanche_lundi_mardi_mercredi_jeudi_vendredi_samedi”。拆分(“"”),
    工作日短:“昏暗、黑暗、黑暗、黑暗、黑暗、黑暗、黑暗、黑暗、黑暗、黑暗、黑暗、黑暗、黑暗”,
    工作日的口号:“迪鲁·马·梅·杰夫·萨”。拆分(“),
    longDateFormat:{
    LT:“HH:mm”,
    LTS:“HH:mm:ss”,
    L:“日/月/年”,
    LH:“嗯,嗯,YYYY”,
    LLL:“D MMMM YYYY LT”,
    LLLL:“dddd D MMMM YYYY LT”
    },
    日历:{
    萨米代:“[Aujourd'huiáLT”,
    下一天:“[DemaináLT”,
    下一节:'dddd[a]LT',
    最后一天:“[Hierá]LT”,
    上周:“dddd[dernieráLT”,
    萨米尔斯:“我
    },
    相对时间:{
    未来:“dans%s”,
    过去:“我是%s”,
    s:“第二个问题”,
    m:“一分钟”,
    mm:“%d分钟”,
    h:“你是谁”,
    hh:“%d heures”,
    d:“联合国日”,
    dd:“%d日”,
    M:“联合国备忘录”,
    MM:“%d MOI”,
    y:“你是安尼”,
    yy:“%d安尼斯”
    },
    序数分析:/\d{1,2}(er|ème)/,,
    序号:函数(数字){
    返回数字+(数字===1?'er':'ème');
    },
    美国公司:/PD | MD/,
    isPM:功能(输入){
    返回输入。字符(0)='M';
    },
    //如果meridiem装置未在12左右分开,则执行以下操作:
    //此函数(以locale/id.js为例)
    //梅里迪姆小时:功能(小时,梅里迪姆){
    //返回/*0-23小时,给定meridiem代币和1-12小时*/
    // },
    梅里迪姆:功能(小时、分钟、岛屿){
    返回时间<12小时?'PD':'MD';
    },
    周:{
    道琼斯指数:1,//星期一是一周的第一天。
    doy:4//包含1月4日的一周是一年中的第一周。
    }
    
    });
    你是否在langs.js中加入了
    时刻?我不知道捷运包…不,我只包括与捷运添加流星流星流星流星流星。菲尼克斯在他的anwser中添加了缺失的信息,现在它可以工作了。太棒了!我想知道为什么这些信息没有包含在Meteor 1.0.3.2中,或者我错过了它?这在Meteor 1.0.3.2中不起作用。结构不一样。我正在四处寻找如何修复它。也许你知道吗?那个链接断了,我似乎无法通过谷歌找到它引用的文件。我认为当前的等效文件是。谢谢