【问题标题】:How to set locale in JavaScript, for example for toLocaleUpperCase()?如何在 JavaScript 中设置语言环境,例如 toLocaleUpperCase()?
【发布时间】:2013-01-10 23:20:54
【问题描述】:

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

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

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

【问题讨论】:

    标签: javascript string internationalization locale turkish


    【解决方案1】:

    实际上并没有什么东西,但我发现了这个 JavaScript setlocale function 脚本,您可能会觉得它有用。

    【讨论】:

      【解决方案2】:

      很遗憾,您无法在运行时设置语言环境。但是,所有的希望都不会丢失,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Ü'))

      大写版本非常相似。

      【讨论】:

      • 好主意。只需要一些错误检查,以避免为无法识别的字符返回“未定义”,例如空格、标点符号等。
      【解决方案3】:

      此选项在 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
      

      【讨论】:

        猜你喜欢
        • 2011-01-24
        • 1970-01-01
        • 1970-01-01
        • 2021-11-12
        • 2014-05-29
        • 2014-01-01
        • 2019-08-27
        • 2019-08-27
        • 1970-01-01
        相关资源
        最近更新 更多