Setting Turkish and English locale: translate Turkish characters to Latin equivalents
android, java, locale
Solution
If you are using the `Locale` constructor, you can and must set the language, country and variant as separate arguments:
new Locale(language)
new Locale(language, country)
new Locale(language, country, variant)
Therefore, your test program creates locales with the language "tr-TR" and "en_US". For your test program, you can use `new Locale("tr", "TR")` and `new Locale("en", "US")`.
If you are using Java 1.7+, then you can also parse a language tag using `Locale.forLanguageTag`:
String myString="YASAT BAYRI";
Locale trlocale= Locale.forLanguageTag("tr-TR");
Locale enLocale = Locale.forLanguageTag("en_US");
Creates strings that have the appropriate lower case for the language.
Problem
I want to translate my Turkish strings to lowercase in both English and Turkish locale. I'm doing this: ``` 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)); ``` The output is: ``` en source: yaşar bayri tr source: yaşar bayri ``` But I want to have an output like this: ``` en source: yasar bayri tr source: yaşar bayrı ``` Is this possible in Java?