帮酷LOGO
  • 显示原文与译文双语对照的内容
文章标签:JAVA  Javascript  Laravel    
Localization library written in JavaScript highly inspired on Laravel's Lang.

  • 源代码名称:Lang.js
  • 源代码网址:http://www.github.com/rmariuzzo/Lang.js
  • Lang.js源代码文档
  • Lang.js源代码下载
  • Git URL:
    git://www.github.com/rmariuzzo/Lang.js.git
  • Git Clone代码到本地:
    git clone http://www.github.com/rmariuzzo/Lang.js
  • Subversion代码到本地:
    $ svn co --depth empty http://www.github.com/rmariuzzo/Lang.js
    Checked out revision 1.
    $ cd repo
    $ svn up trunk
  • Lang.js – Localization library written in JavaScript highly inspired on Laravel's Lang.

    Build StatusLaravel 5.5Laravel 5.0NPM Montly DownloadsGitHub license

    安装

    不同的安装方法:

    文档

    初始化

    var lang =newLang({
     messages: source,
     locale:'fr',
     fallback:'zn'});

    要使用 Lang.js,我们需要至少指定消息源。 这可以在实例化过程中完成,如前面的代码或者稍后使用 setMessages() 方法所示。

    消息源格式

    消息的源格式如下所示:

    {
     "locale1.name": {
     "key1":"value1",
     "key2":"value2",
     //.. . and more key-value pairs. },
     "locale2.name": {
     "key1":"value1",
     "key2":"value2",
     //.. . and more key-value pairs. },
     //.. . and more locales.}

    请参见位于以下位置的测试中使用的示例: test/fixture/messages.json

    方法

    setMessages

    设置消息源。检查消息的源格式

    var lang =newLang();lang.setMessages(source);
    getLocale

    获取当前区域设置,如果没有设置,将返回默认区域设置( ( en ) ) 。

    var lang =newLang();lang.getLocale();//>"en"lang.setLocale('fr');lang.getLocale();//>"fr"
    setLocale

    设置当前区域设置。

    var lang =newLang();lang.setLocale('ht');lang.getLocale();//>"ht"
    getFallback

    获取回退区域设置。

    var lang =newLang();lang.getFallback();//> undefinedlang.setFallback('de');lang.getFallback();//>"de"
    setFallback

    在指定区域设置中检索未定义的消息( 使用 get() 或者 has() ) 时,将尝试查找带有回退区域设置的消息。

    var lang =newLang({
     messages: {
     'en.greetings': {
     'hi':'Hi',
     'hello':'Hello' },
     'it.greetings': {
     'hi':'Salve' }
     }
    });lang.setLocale('it');lang.get('greetings.hello');//>"greetings.hello"lang.setFallback('en');lang.get('greetings.hello');//>"Hello"
    has

    指示是否在消息源上定义了给定的键。 如果在消息源上定义了键,则返回 true,否则为 false 。 如果没有找到,这里方法将尝试获取指定的区域设置,如果没有找到,则返回 false

    var lang =newLang({
     messages: {
     'en.greetings': {
     'hi':'Hi' },
     'es.greetings': {
     'hi':'Hola' }
     }
    });lang.has('greetings.hi');//> truelang.has('greetings.hi', 'es');//> truelang.has('greetings.hello');//> false
    get

    如果找到翻译消息,则获取翻译消息,否则返回给定的密钥。 如果没有找到,这里方法将尝试获取指定的区域设置,如果未找到,则返回回复区域。

    var lang =newLang({
     messages: {
     'en.greetings': {
     'hi':'Hi' },
     'es.greetings': {
     'hi':'Hola' }
     }
    });lang.get('greetings.hi');//>"Hi"lang.get('greetings.hi', {}, 'es');//>"Hola"lang.get('greetings.hello');//>"greetings.hello"

    从嵌套目录中获取翻译文件

    Lang.get('forum/thread.hello');//>"Hello"Lang.get('forum/thread.hello', {}, 'es');//>"Hola"
    trans

    这里方法充当 get()的别名。

    choice

    获取基于整数值指定的消息的复数形式或者单数形式。

    var lang =newLang({
     messages: {
     'en.fruits': {
     'apple':'apple|apples' },
     'es.greetings': {
     'apple':'manzana|manzanas' }
     }
    });lang.choice('fruits.apple', 1);//>"apple"lang.choice('fruits.apple', 4);//>"apples"lang.choice('fruits.apple', 4, {}, 'es');//>"manzanas"

    你甚至可以创建更复杂的复数规则,用于为多个数字范围指定翻译字符串:

    var lang =newLang({
     messages: {
     'en.fruits': {
     'apple':'{0} There are none|[1,19] There are some|[20,*] There are many' }
     }
    });lang.choice('fruits.apple', 0); //>"There are none"lang.choice('fruits.apple', 1); //>"There are some"lang.choice('fruits.apple', 3); //>"There are some"lang.choice('fruits.apple', 20); //>"There are many"lang.choice('fruits.apple', 22); //>"There are many
    transChoice

    这里方法充当 choice()的别名。

    插件开发

    • fork 这里存储库并克隆它。
    • 从开发中创建分支: git checkout -b feature/xxxxxxx
    • 提交要合并到开发分支的PR 。

    获得帮助

    测试

    要运行测试,请使用以下命令:

    • 单一运行:npm run test
    • 在更改上运行:npm run test:watch


    文章标签:JAVA  Javascript    Laravel  

    Copyright © 2011 HelpLib All rights reserved.    知识分享协议 京ICP备05059198号-3  |  如果智培  |  酷兔英语