String.toLocaleUpperCase():在Node.js上设置语言环境

时间:2016-01-21 16:54:31

标签: javascript node.js internationalization ecmascript-intl

JavaScript字符串toLocaleUpperCase()方法应该考虑不同语言环境中的案例映射,例如土耳其语(我不是映射到无点我,而是用土耳其语中的点缀İ)。

但是,似乎只从操作系统中捕获了语言环境:我没有看到设置语言环境的方法。因此,如果我使用的是en-US操作系统,并希望在“tr”中toLocaleUpperCase()土耳其语字符串,它将返回en-US版本(无点我,不是点缀İ)。

假设我使用的是使用INTL(https://github.com/nodejs/node/wiki/Intl)编译的Node.js,我如何将语言环境定义为toLocaleUpperCase()

1 个答案:

答案 0 :(得分:4)

现在这还不是一个很好的答案。但ECMA-402现在指定(截至规范的第2版)String.prototype.toLocaleUpperCase的行为。 ECMA-402将函数更改为采用locale参数(undefined,字符串或区域设置的arraylike) - 类似于Number.prototype.toLocaleString以及ECMA中的各种其他区域设置敏感函数 - 262由ECMA-402修改时 - 并且与该区域设置一致。一旦Node实现了(it doesn't right now),您就可以简单地更改

var str = "bira";
str.toLocaleUpperCase(); // "BIRA"

var str = "bira";
str.toLocaleUpperCase("tr-TR"); // BİRA

并准备好了。

(免责声明:我根本不懂土耳其语,我只是选了一个含有" i"土耳其单词列表的单词,而我假设出于上述示例的目的,区域设置敏感的大写字母按我期望的方式工作。)