【问题标题】:import all languages for numeral.js in es2016 for an Aurelia app为 Aurelia 应用程序在 es2016 中导入 numeric.js 的所有语言
【发布时间】:2016-02-22 14:28:27
【问题描述】:

我想使用像 aurelia.io documentation 中的 CurrencyValueConverter,但将结果本地化为荷兰语德语,但我不知道如何使所有语言都可用于数字。

我可以导入 Ducth 语言环境并显式加载它,如下所示:

import numeral from 'numeral';
import nl from "numeral/languages/nl-nl";

export class CurrencyValueConverter {
  toView(value, language = "nl-nl") {
    numeral.language(language, nl); // this line loads the nl language definition
    numeral.language(language);
    return numeral(value).format("$0,0.00");
  }
}

当然,这只适用于一种语言。 如何在避免类似的情况下加载多种语言

if(language === "nl-nl")
    numeral.language(language, nl);
else if(language === "de-de")
    // etc

【问题讨论】:

    标签: javascript ecmascript-6 aurelia es6-module-loader numeral.js


    【解决方案1】:

    Here's an example: https://gist.run?id=6af6cf41d4f8dc206aaa

    app.html

    <template>
      <require from="./currency-value-converter"></require>
    
      <label>
        Language:
        <select value.bind="selectedLanguage">
          <option repeat.for="language of languages" value.bind="language">${language}</option>
        </select>
      </label>
    
      <h1>${value | currency:selectedLanguage}</h1>
    </template>
    

    app.js

    export class App {
      value = 1234567.890123;
      selectedLanguage = 'nl-nl';
      languages = [
        'en-gb',
        'es',
        'et',
        'fi',
        'fr',
        'fr-CA',
        'fr-ch',
        'hu',
        'it',
        'ja',
        'nl-nl',
        'pl',
        'pt-br',
        'pt-pt',
        'ru',
        'ru-UA',
        'sk',
        'th',
        'tr',
        'uk-UA',
        'be-nl',
        'chs',
        'cs',
        'da-dk',
        'de',
        'de-ch'];
    }
    

    currency-value-converter.js

    import numeral from 'numeral';
    import 'numeral/min/languages.min';
    
    export class CurrencyValueConverter {
      toView(value, language = 'nl-nl') {
        numeral.language(language);
        return numeral(value).format('$0,0.00');
      }
    }
    

    【讨论】:

    • 我也尝试过这种方法,但我得到了一个Unhandled promise rejection Error: Unknown language : nl-nl(…),我真的不明白我的做法与你的例子有什么不同:(
    • 查看网络标签并过滤numeral/min/languages.min... 是否加载成功?也可以试试jspm uninstall numeral;jspm install numeral;
    • languages.min 已正确加载,重新安装 numerals 似乎没有帮助。
    • hmm...我的示例中的转换器代码与您的之间有什么区别吗?导入语句的顺序?
    • 没什么明显的,不。我实际上复制了您的确切转换器代码,但我不断收到相同的错误
    猜你喜欢
    • 2016-07-29
    • 2016-12-15
    • 1970-01-01
    • 2017-07-09
    • 2015-12-13
    • 2020-04-06
    • 1970-01-01
    • 2017-08-22
    • 1970-01-01
    相关资源
    最近更新 更多