Я хочу преобразовать строки в нижний или верхний регистр в JavaScript в нужной мне локали. Я думаю, что стандартные функции, такие как toUpperCase()
и toLocaleUpperCase()
, не удовлетворяют эту потребность. toLocale
функции работают не так, как должны.
Например, в Safari 4, Chrome 4 Beta, Firefox 3.5.x в моей системе неправильно конвертируются строки с турецкими символами. Браузеры отвечают на navigator.language как "en-US"
, "tr"
, "en-US"
соответственно. Но нет способа получить пользовательскую настройку Accept-Lang
в браузере, насколько я мог найти. Только Chrome дает мне "tr"
, хотя я настроил каждый браузер на турецкий язык. Я думаю, что эти настройки влияют только на заголовок HTTP, но мы не можем получить доступ к этим настройкам через JavaScript.
В документации Mozilla написано
Символы в строке преобразуются в ... при соблюдении текущей локали. Для большинства языков это будет возвращаться так же, как ...
Я думаю, что он действителен для турецкого языка, он не отличается, он настроен как en или tr. В турецком это должно преобразовать "DİNÇ"
в "dinç"
и "DINÇ"
в "dınç"
или наоборот.
Есть ли библиотека JavaScript, которая удовлетворяет эту потребность? Я думаю, что он должен не только правильно конвертировать в локали пользователя, но и поддерживать конвертацию через параметр локали. Потому что разработчики не могут получить доступ к настроенному пользователем языку.