设置土耳其语和英语区域设置:将土耳其语字符转换为拉丁语等效字符

2022-09-02 02:25:59

我想将我的土耳其语字符串翻译成英语和土耳其语区域设置中的小写字母。我正在做这个:

String myString="YAŞAT BAYRI";
Locale trlocale= new Locale("tr-TR");
Locale enLocale = new Locale("en_US");

Log.v("mainlist", "en source: " +myString.toLowerCase(enLocale));
Log.v("mainlist", "tr source: " +myString.toLowerCase(trlocale));

输出为:

en source: yaşar bayri

tr source: yaşar bayri

但是我想要这样的输出:

en source: yasar bayri

tr source: yaşar bayrı

这在Java中可能吗?


答案 1

如果您使用的是构造函数,则可以并且必须将语言、国家/地区和变体设置为单独的参数:Locale

new Locale(language)
new Locale(language, country)
new Locale(language, country, variant)

因此,测试程序使用语言“tr-TR”和“en_US”创建区域设置。对于测试程序,可以使用 和 。new Locale("tr", "TR")new Locale("en", "US")

如果您使用的是 Java 1.7+,则还可以使用以下工具解析语言标记:Locale.forLanguageTag

String myString="YASAT BAYRI";
Locale trlocale= Locale.forLanguageTag("tr-TR");
Locale enLocale = Locale.forLanguageTag("en_US");

创建具有相应语言小写的字符串。


答案 2

我认为这就是问题所在:

Locale trlocale= new Locale("tr-TR");

请尝试以下操作:

Locale trlocale= new Locale("tr", "TR");

这是用于指定国家/地区和语言的构造函数。


推荐