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

String.toLocaleUpperCase(): Set locale on Node.js

JavaScript 字符串 toLocaleUpperCase() 方法应该考虑不同区域设置的大小写映射,例如土耳其语(i 不是映射到无点 I,而是映射到土耳其语中的带点 İ)。

但是,区域设置似乎仅从 OS 捕获:我看不到设置区域设置的方法。因此,如果我使用的是 en-US OS 并且想要 toLocaleUpperCase() "tr" 中的土耳其字符串,它将 return en-US 版本(无点 I,不带点İ).

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

现在这不是一个完整的答案。但是 ECMA-402 现在指定了(从规范的第 2 版开始)String.prototype.toLocaleUpperCase 的行为。 ECMA-402 将函数更改为采用 locale 参数(undefined、字符串或类似语言环境的数组)——类似于 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" 的单词,并且我 假设 语言环境-sensitive uppercasing 以我期望的方式工作,就上面的例子而言。)