节点INTL区域设置排序规则

时间:2016-01-23 02:32:52

标签: node.js sorting internationalization collation icu

我正在开展一个涉及日语和泰语字符串排序的辅助项目。当我在客户端Javascript中测试排序时,我能够使用a.localeCompare(b, "languageCode")。当我在Node中尝试相同的逻辑时,它不起作用,因为Node INTL object仅限于英语作为默认值。

我想按照上面的链接自定义我的节点构建,并且遇到ICU4C-data Node Module,我了解其中包含一整套ICU数据。我一直在使用不同的构建标志,就像(稀疏)README:--icu-data-dir=node_modules/icu4c-data指定的那样,无济于事 - 无论我设置哪个标志,我都无法让INTL Collator's compare function给出预期成绩。是否有一个我错过的明显旗帜,或者我错误的关键假设?

以下是一些重要的注释/资源:

  • 最终目标是泰国&日语整理 - 如果有另一种方法使用Node来实现这一点,我愿意接受建议。
  • 整理必须在Node
  • 中完成
  • 我将依赖Array.prototype.sort() - 主要是寻找比较器
  • 使用节点0.12,ECMA support
  • 我第一次自定义节点构建(约1个月的体验)

1 个答案:

答案 0 :(得分:1)

改为安装full-icu包。它将提供有关如何加载其余数据的说明。

另请注意,未来的节点版本不需要任何配置来获取新数据,如果感兴趣,您可以看到#3460

我需要修复icu4c-data的自述文件以反映这一点。