9

我想使用 JavaScript toLocaleUpperCase() 方法来确保土耳其语的大写正确。但是,我不能确定土耳其语是否会被设置为用户的语言环境。

如果我确定字符串是土耳其语,现代浏览器中是否有办法在运行时设置语言环境?

(我在考虑土耳其语时遇到了这个问题,但实际上它可以是任何其他语言。)

4

3 回答 3

1

那里实际上并没有什么东西,但我遇到了这个JavaScript setlocale 函数脚本,您可能会发现它很有用。

于 2013-04-12T05:59:47.540 回答
1

不幸的是,您无法在运行时设置语言环境。但是,所有的希望都不会丢失,npm 上有许多不错的库供您使用。例如,查看https://www.npmjs.com/package/upper-casehttps://www.npmjs.com/package/lower-case ,它也适用于许多其他语言。

如果这太多了,您可以推出自己的简单库:

var ALL_LETTERS_LOWERCASE = 'abcçdefgğhıijklmnoöprsştuüvyz';
var ALL_LETTERS_UPPERCASE = 'ABCÇDEFGĞHIİJKLMNOÖPRSŞTUÜVYZ';

function toLowerCaseLetter(letter) {
  letter_index = ALL_LETTERS_UPPERCASE.indexOf(letter);
  return ALL_LETTERS_LOWERCASE[letter_index];
}
    
function toLowerCase(my_str) {
  var lower_cased = ''
  for (letter of my_str) {
      lower_cased += toLowerCaseLetter(letter);
  }
  return lower_cased;
}

console.log(toLowerCase('ÇDEFGĞHIİJKLMNOÖPRSŞTUÜ'))

大写版本非常相似。

于 2017-02-22T14:48:35.073 回答
1

此选项在 2013 年可能不存在,但可能会帮助新访问者了解此主题:

根据 MDN(https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/toLocaleUpperCase),函数 toLocaleUpperCase 采用可选参数“locale”。

设置正确的语言标签本身就是一个主题(https://www.w3.org/International/articles/language-tags/)。最简单的例子看起来像这样

'selam dünya'.toLocaleUpperCase('tr'); // SELAM DÜNYA
于 2017-09-19T13:02:25.073 回答