*/
#include <fribidi.h>
+#include <FBaseSysLog.h>
+#include <FBaseUtil.h>
#include <FLclLocaleManager.h>
#include <FSysSettingInfo.h>
#include "FUi_BidiUtils.h"
using namespace Tizen::Base;
+using namespace Tizen::Base::Utility;
using namespace Tizen::Locales;
namespace Tizen { namespace Ui
return languageCode;
}
+Locale*
+_BidiUtils::GetLocaleLanguageN(void)
+{
+ result r = E_SUCCESS;
+ String localeLanguage;
+ String key(L"http://tizen.org/setting/locale.language");
+
+ r = Tizen::System::SettingInfo::GetValue(key, localeLanguage);
+ SysTryReturn(NID_UI, r == E_SUCCESS, null, r, "[%s] Propagating.", GetErrorMessage(r));
+
+ String delim(L"_");
+ StringTokenizer strTok(localeLanguage, delim);
+ int count = strTok.GetTokenCount(); // count == 2
+ SysTryReturn(NID_UI, count == 2, null, E_SYSTEM, "The locale is invalid.");
+
+ String language;
+ String country;
+ LanguageCode languageCode = LANGUAGE_INVALID;
+ CountryCode countryCode = COUNTRY_INVALID;
+ strTok.GetNextToken(language);
+ strTok.GetNextToken(country);
+
+ languageCode = Locale::StringToLanguageCode(language);
+ countryCode = Locale::StringToCountryCode(country);
+
+ Locale* pLocaleLanguage = new (std::nothrow) Locale(languageCode, countryCode);
+ SysTryReturn(NID_UI, pLocaleLanguage, null, E_OUT_OF_MEMORY, "Memory allocation failed.");
+
+ return pLocaleLanguage;
+}
+
+ByteBuffer*
+_BidiUtils::ConvertLanguageCountryCode2Utf8N(LanguageCode languageCode)
+{
+static const char* defaultLauguageCountryCodeArray[LANGUAGE_MAX] =
+{
+ "", //"aar", /**< "Afar" */
+ "", //"abk", /**< "Abkhazian" */
+ "", //"ace", /**< "Achinese" */
+ "", //"ach", /**< "Acoli" */
+ "", //"ada", /**< "Adangme" */
+ "", //"ady", /**< "Adyghe; Adygei" */
+ "", //"afa", /**< "Afro-Asiatic languages" */
+ "", //"afh", /**< "Afrihili" */
+ "", //"afr", /**< "Afrikaans" */
+ "", //"ain", /**< "Ainu" */
+ "", //"aka", /**< "Akan" */
+ "", //"akk", /**< "Akkadian" */
+ "AL", //"sqi", /**< "Albanian" */
+ "", //"ale", /**< "Aleut" */
+ "", //"alg", /**< "Algonquian languages" */
+ "", //"alt", /**< "Southern Altai" */
+ "", //"amh", /**< "Amharic" */
+ "", //"ang", /**< "English, Old (ca.450-1100)" */
+ "", //"anp", /**< "Angika" */
+ "", //"apa", /**< "Apache languages" */
+ "AE", //"ara", /**< "Arabic" */
+ "", //"arc", /**< "Official Aramaic (700-300 BCE); Imperial Aramaic (700-300 BCE)" */
+ "", //"arg", /**< "Aragonese" */
+ "", //"hye", /**< "Armenian" */
+ "", //"arn", /**< "Mapudungun; Mapuche" */
+ "", //"arp", /**< "Arapaho" */
+ "", //"art", /**< "Artificial languages" */
+ "", //"arw", /**< "Arawak" */
+ "IN", //"asm", /**< "Assamese" */
+ "", //"ast", /**< "Asturian; Bable; Leonese; Asturleonese" */
+ "", //"ath", /**< "Athapascan languages" */
+ "", //"aus", /**< "Australian languages" */
+ "", //"ava", /**< "Avaric" */
+ "", //"ave", /**< "Avestan" */
+ "", //"awa", /**< "Awadhi" */
+ "", //"aym", /**< "Aymara" */
+ "AZ", //"aze", /**< "Azerbaijani" */
+ "AZ", //"aze", /**< Azerbaijani (Arabic) */
+ "AZ", //"aze", /**< Azerbaijani (Cyrillic) */
+ "AZ", //"aze", /**< Azerbaijani (Latin) */
+ "", //"bad", /**< "Banda languages" */
+ "", //"bai", /**< "Bamileke languages" */
+ "", //"bak", /**< "Bashkir" */
+ "", //"bal", /**< "Baluchi" */
+ "", //"bam", /**< "Bambara" */
+ "", //"ban", /**< "Balinese" */
+ "ES", //"eus", /**< "Basque" */
+ "", //"bas", /**< "Basa" */
+ "", //"bat", /**< "Baltic languages" */
+ "", //"bej", /**< "Beja; Bedawiyet" */
+ "", //"bel", /**< "Belarusian" */
+ "", //"bem", /**< "Bemba" */
+ "IN", //"ben", /**< "Bengali" */
+ "", //"ber", /**< "Berber languages" */
+ "", //"bho", /**< "Bhojpuri" */
+ "", //"bih", /**< "Bihari" */
+ "", //"bik", /**< "Bikol" */
+ "", //"bin", /**< "Bini; Edo" */
+ "", //"bis", /**< "Bislama" */
+ "", //"bla", /**< "Siksika" */
+ "", //"bnt", /**< "Bantu (Other)" */
+ "", //"bos", /**< "Bosnian" */
+ "", //"bra", /**< "Braj" */
+ "", //"bre", /**< "Breton" */
+ "", //"btk", /**< "Batak languages" */
+ "", //"bua", /**< "Buriat" */
+ "", //"bug", /**< "Buginese" */
+ "BG", //"bul", /**< "Bulgarian" */
+ "", //"mya", /**< "Burmese" */
+ "", //"byn", /**< "Blin; Bilin" */
+ "", //"cad", /**< "Caddo" */
+ "", //"cai", /**< "Central American Indian languages" */
+ "", //"car", /**< "Galibi Carib" */
+ "ES", //"cat", /**< "Catalan; Valencian" */
+ "", //"cau", /**< "Caucasian languages" */
+ "", //"ceb", /**< "Cebuano" */
+ "", //"cel", /**< "Celtic languages" */
+ "", //"cha", /**< "Chamorro" */
+ "", //"chb", /**< "Chibcha" */
+ "", //"che", /**< "Chechen" */
+ "", //"chg", /**< "Chagatai" */
+ "CN,SG,HK,TW,CN", //"zho", /**< "Chinese" */
+ "SG", //"zho-hans", /**< "Chinese (Simplified)" */
+ "HK,TW,HK", //"zho-hant", /**< "Chinese (Traditional)" */
+ "", //"chk", /**< "Chuukese" */
+ "", //"chm", /**< "Mari" */
+ "", //"chn", /**< "Chinook jargon" */
+ "", //"cho", /**< "Choctaw" */
+ "", //"chp", /**< "Chipewyan; Dene Suline" */
+ "", //"chr", /**< "Cherokee" */
+ "", //"chu", /**< "Church Slavic; Old Slavonic; Church Slavonic; Old Bulgarian; Old Church Slavonic" */
+ "", //"chv", /**< "Chuvash" */
+ "", //"chy", /**< "Cheyenne" */
+ "", //"cmc", /**< "Chamic languages" */
+ "", //"cop", /**< "Coptic" */
+ "", //"cor", /**< "Cornish" */
+ "", //"cos", /**< "Corsican" */
+ "", //"cpe", /**< "Creoles and pidgins, English based" */
+ "", //"cpf", /**< "Creoles and pidgins, French-based " */
+ "", //"cpp", /**< "Creoles and pidgins, Portuguese-based " */
+ "", //"cre", /**< "Cree" */
+ "TR", //"crh", /**< "Crimean Tatar; Crimean Turkish" */
+ "", //"crp", /**< "Creoles and pidgins " */
+ "", //"csb", /**< "Kashubian" */
+ "", //"cus", /**< "Cushitic languages" */
+ "CZ", //"ces", /**< "Czech" */
+ "", //"dak", /**< "Dakota" */
+ "DK", //"dan", /**< "Danish" */
+ "", //"dar", /**< "Dargwa" */
+ "", //"day", /**< "Land Dayak languages" */
+ "", //"del", /**< "Delaware" */
+ "", //"den", /**< "Slave (Athapascan)" */
+ "", //"dgr", /**< "Dogrib" */
+ "", //"din", /**< "Dinka" */
+ "", //"div", /**< "Divehi; Dhivehi; Maldivian" */
+ "", //"doi", /**< "Dogri" */
+ "", //"dra", /**< "Dravidian languages" */
+ "", //"dsb", /**< "Lower Sorbian" */
+ "", //"dua", /**< "Duala" */
+ "", //"dum", /**< "Dutch, Middle (ca.1050-1350)" */
+ "NL", //"nld", /**< "Dutch; Flemish" */
+ "", //"dyu", /**< "Dyula" */
+ "", //"dzo", /**< "Dzongkha" */
+ "", //"efi", /**< "Efik" */
+ "", //"egy", /**< "Egyptian (Ancient)" */
+ "", //"eka", /**< "Ekajuk" */
+ "", //"elx", /**< "Elamite" */
+ "GB,US,AU,GB", //"eng", /**< "English" */
+ "", //"enm", /**< "English, Middle (1100-1500)" */
+ "", //"epo", /**< "Esperanto" */
+ "EE", //"est", /**< "Estonian" */
+ "", //"ewe", /**< "Ewe" */
+ "", //"ewo", /**< "Ewondo" */
+ "", //"fan", /**< "Fang" */
+ "", //"fao", /**< "Faroese" */
+ "", //"fat", /**< "Fanti" */
+ "", //"fij", /**< "Fijian" */
+ "", //"fil", /**< "Filipino; Pilipino" */
+ "FI", //"fin", /**< "Finnish" */
+ "", //"fiu", /**< "Finno-Ugrian languages" */
+ "", //"fon", /**< "Fon" */
+ "FR,CA,FR", //"fra", /**< "French" */
+ "FR", //"frm", /**< "French, Middle (ca.1400-1600)" */
+ "FR", //"fro", /**< "French, Old (842-ca.1400)" */
+ "", //"frr", /**< "Northern Frisian" */
+ "", //"frs", /**< "Eastern Frisian" */
+ "", //"fry", /**< "Western Frisian" */
+ "", //"ful", /**< "Fulah" */
+ "", //"fur", /**< "Friulian" */
+ "", //"gaa", /**< "Ga" */
+ "", //"gay", /**< "Gayo" */
+ "", //"gba", /**< "Gbaya" */
+ "DE", //"gem", /**< "Germanic languages" */
+ "GE", //"kat", /**< "Georgian" */
+ "DE", //"deu", /**< "German" */
+ "", //"gez", /**< "Geez" */
+ "", //"gil", /**< "Gilbertese" */
+ "", //"gla", /**< "Gaelic; Scottish Gaelic" */
+ "IE", //"gle", /**< "Irish" */
+ "ES", //"glg", /**< "Galician" */
+ "", //"glv", /**< "Manx" */
+ "DE", //"gmh", /**< "German, Middle High (ca.1050-1500)" */
+ "DE", //"goh", /**< "German, Old High (ca.750-1050)" */
+ "", //"gon", /**< "Gondi" */
+ "", //"gor", /**< "Gorontalo" */
+ "", //"got", /**< "Gothic" */
+ "", //"grb", /**< "Grebo" */
+ "GR", //"grc", /**< "Greek, Ancient (to 1453)" */
+ "GR", //"ell", /**< "Greek, Modern (1453-)" */
+ "", //"grn", /**< "Guarani" */
+ "CH", //"gsw", /**< "Swiss German; Alemannic; Alsatian" */
+ "IN", //"guj", /**< "Gujarati" */
+ "", //"gwi", /**< "Gwich'in" */
+ "", //"hai", /**< "Haida" */
+ "", //"hat", /**< "Haitian; Haitian Creole" */
+ "", //"hau", /**< "Hausa" */
+ "", //"hau-latn", /**< "Hausa (Latin)" */
+ "US", //"haw", /**< "Hawaiian" */
+ "IL", //"heb", /**< "Hebrew" */
+ "", //"her", /**< "Herero" */
+ "", //"hil", /**< "Hiligaynon" */
+ "", //"him", /**< "Himachali" */
+ "IN", //"hin", /**< "Hindi" */
+ "", //"hit", /**< "Hittite" */
+ "", //"hmn", /**< "Hmong" */
+ "", //"hmo", /**< "Hiri Motu" */
+ "HR", //"hrv", /**< "Croatian" */
+ "", //"hsb", /**< "Upper Sorbian" */
+ "HU", //"hun", /**< "Hungarian" */
+ "", //"hup", /**< "Hupa" */
+ "", //"iba", /**< "Iban" */
+ "", //"ibo", /**< "Igbo" */
+ "IS", //"isl", /**< "Icelandic" */
+ "", //"ido", /**< "Ido" */
+ "", //"iii", /**< "Sichuan Yi; Nuosu" */
+ "", //"ijo", /**< "Ijo languages" */
+ "", //"iku", /**< "Inuktitut" */
+ "", //"ile", /**< "Interlingue; Occidental" */
+ "", //"ilo", /**< "Iloko" */
+ "", //"ina", /**< "Interlingua (International Auxiliary Language Association)" */
+ "", //"inc", /**< "Indic languages" */
+ "ID", //"ind", /**< "Indonesian" */
+ "", //"ine", /**< "Indo-European languages" */
+ "", //"inh", /**< "Ingush" */
+ "", //"ipk", /**< "Inupiaq" */
+ "", //"ira", /**< "Iranian languages" */
+ "", //"iro", /**< "Iroquoian languages" */
+ "IT", //"ita", /**< "Italian" */
+ "", //"jav", /**< "Javanese" */
+ "", //"jbo", /**< "Lojban" */
+ "JP", //"jpn", /**< "Japanese" */
+ "", //"jpr", /**< "Judeo-Persian" */
+ "", //"jrb", /**< "Judeo-Arabic" */
+ "", //"kaa", /**< "Kara-Kalpak" */
+ "", //"kab", /**< "Kabyle" */
+ "", //"kac", /**< "Kachin; Jingpho" */
+ "", //"kal", /**< "Kalaallisut; Greenlandic" */
+ "", //"kam", /**< "Kamba" */
+ "IN", //"kan", /**< "Kannada" */
+ "", //"kar", /**< "Karen languages" */
+ "", //"kas", /**< "Kashmiri" */
+ "", //"kau", /**< "Kanuri" */
+ "", //"kaw", /**< "Kawi" */
+ "KZ", //"kaz", /**< "Kazakh" */
+ "KZ", //"kaz-cyrl", /**< "Kazakh (Cyrillic)" */
+ "", //"kbd", /**< "Kabardian" */
+ "", //"kha", /**< "Khasi" */
+ "", //"khi", /**< "Khoisan languages" */
+ "", //"khm", /**< "Central Khmer" */
+ "", //"kho", /**< "Khotanese; Sakan" */
+ "", //"kik", /**< "Kikuyu; Gikuyu" */
+ "", //"kin", /**< "Kinyarwanda" */
+ "", //"kir", /**< "Kirghiz; Kyrgyz" */
+ "", //"kmb", /**< "Kimbundu" */
+ "", //"kok", /**< "Konkani" */
+ "", //"kom", /**< "Komi" */
+ "", //"kon", /**< "Kongo" */
+ "KR", //"kor", /**< "Korean" */
+ "", //"kos", /**< "Kosraean" */
+ "", //"kpe", /**< "Kpelle" */
+ "", //"krc", /**< "Karachay-Balkar" */
+ "", //"krl", /**< "Karelian" */
+ "", //"kro", /**< "Kru languages" */
+ "", //"kru", /**< "Kurukh" */
+ "", //"kua", /**< "Kuanyama; Kwanyama" */
+ "", //"kum", /**< "Kumyk" */
+ "", //"kur", /**< "Kurdish" */
+ "", //"kut", /**< "Kutenai" */
+ "", //"lad", /**< "Ladino" */
+ "", //"lah", /**< "Lahnda" */
+ "", //"lam", /**< "Lamba" */
+ "", //"lao", /**< "Lao" */
+ "", //"lat", /**< "Latin" */
+ "LV", //"lav", /**< "Latvian" */
+ "", //"lez", /**< "Lezghian" */
+ "", //"lim", /**< "Limburgan; Limburger; Limburgish" */
+ "", //"lin", /**< "Lingala" */
+ "LT", //"lit", /**< "Lithuanian" */
+ "", //"lol", /**< "Mongo" */
+ "", //"loz", /**< "Lozi" */
+ "", //"ltz", /**< "Luxembourgish; Letzeburgesch" */
+ "", //"lua", /**< "Luba-Lulua" */
+ "", //"lub", /**< "Luba-Katanga" */
+ "", //"lug", /**< "Ganda" */
+ "", //"lui", /**< "Luiseno" */
+ "", //"lun", /**< "Lunda" */
+ "", //"luo", /**< "Luo (Kenya and Tanzania)" */
+ "", //"lus", /**< "Lushai" */
+ "MK", //"mkd", /**< "Macedonian" */
+ "", //"mad", /**< "Madurese" */
+ "", //"mag", /**< "Magahi" */
+ "", //"mah", /**< "Marshallese" */
+ "", //"mai", /**< "Maithili" */
+ "", //"mak", /**< "Makasar" */
+ "IN", //"mal", /**< "Malayalam" */
+ "", //"man", /**< "Mandingo" */
+ "", //"mri", /**< "Maori" */
+ "", //"map", /**< "Austronesian languages" */
+ "IN", //"mar", /**< "Marathi" */
+ "", //"mas", /**< "Masai" */
+ "MY", //"msa", /**< "Malay" */
+ "", //"mdf", /**< "Moksha" */
+ "", //"mdr", /**< "Mandar" */
+ "", //"men", /**< "Mende" */
+ "IE", //"mga", /**< "Irish, Middle (900-1200)" */
+ "", //"mic", /**< "Mi'kmaq; Micmac" */
+ "", //"min", /**< "Minangkabau" */
+ "", //"mis", /**< "Uncoded languages" */
+ "", //"mkh", /**< "Mon-Khmer languages" */
+ "", //"mlg", /**< "Malagasy" */
+ "", //"mlt", /**< "Maltese" */
+ "", //"mnc", /**< "Manchu" */
+ "", //"mni", /**< "Manipuri" */
+ "", //"mno", /**< "Manobo languages" */
+ "", //"moh", /**< "Mohawk" */
+ "", //"mon", /**< "Mongolian" */
+ "", //"mos", /**< "Mossi" */
+ "", //"mul", /**< "Multiple languages" */
+ "", //"mun", /**< "Munda languages" */
+ "", //"mus", /**< "Creek" */
+ "", //"mwl", /**< "Mirandese" */
+ "", //"mwr", /**< "Marwari" */
+ "", //"myn", /**< "Mayan languages" */
+ "", //"myv", /**< "Erzya" */
+ "", //"nah", /**< "Nahuatl languages" */
+ "US", //"nai", /**< "North American Indian languages" */
+ "", //"nap", /**< "Neapolitan" */
+ "", //"nau", /**< "Nauru" */
+ "", //"nav", /**< "Navajo; Navaho" */
+ "", //"nbl", /**< "Ndebele, South; South Ndebele" */
+ "", //"nde", /**< "Ndebele, North; North Ndebele" */
+ "", //"ndo", /**< "Ndonga" */
+ "DE", //"nds", /**< "Low German; Low Saxon; German, Low; Saxon, Low" */
+ "IN", //"nep", /**< "Nepali" */
+ "", //"new", /**< "Nepal Bhasa; Newari" */
+ "", //"nia", /**< "Nias" */
+ "", //"nic", /**< "Niger-Kordofanian languages" */
+ "", //"niu", /**< "Niuean" */
+ "", //"nno", /**< "Norwegian Nynorsk; Nynorsk, Norwegian" */
+ "", //"nob", /**< "Bokmal, Norwegian; Norwegian Bokmal" */
+ "", //"nog", /**< "Nogai" */
+ "", //"non", /**< "Norse, Old" */
+ "NO", //"nor", /**< "Norwegian" */
+ "", //"nqo", /**< "N'Ko" */
+ "", //"nso", /**< "Pedi; Sepedi; Northern Sotho" */
+ "", //"nub", /**< "Nubian languages" */
+ "", //"nwc", /**< "Classical Newari; Old Newari; Classical Nepal Bhasa" */
+ "", //"nya", /**< "Chichewa; Chewa; Nyanja" */
+ "", //"nym", /**< "Nyamwezi" */
+ "", //"nyn", /**< "Nyankole" */
+ "", //"nyo", /**< "Nyoro" */
+ "", //"nzi", /**< "Nzima" */
+ "", //"oci", /**< "Occitan (post 1500); Provencal" */
+ "", //"oji", /**< "Ojibwa" */
+ "IN", //"ori", /**< "Oriya" */
+ "", //"orm", /**< "Oromo" */
+ "", //"osa", /**< "Osage" */
+ "", //"oss", /**< "Ossetian; Ossetic" */
+ "TR", //"ota", /**< "Turkish, Ottoman (1500-1928)" */
+ "", //"oto", /**< "Otomian languages" */
+ "", //"paa", /**< "Papuan languages" */
+ "", //"pag", /**< "Pangasinan" */
+ "", //"pal", /**< "Pahlavi" */
+ "", //"pam", /**< "Pampanga; Kapampangan" */
+ "IN", //"pan", /**< "Panjabi; Punjabi" */
+ "IN", //"pan-arab", /**< "Panjabi; Punjabi (Arabic)" */
+ "IN", //"pan-guru", /**< "Panjabi; Punjabi (Gurmukhi)" */
+ "", //"pap", /**< "Papiamento" */
+ "", //"pau", /**< "Palauan" */
+ "IR", //"peo", /**< "Persian, Old (ca.600-400 B.C.)" */
+ "IR", //"fas", /**< "Persian" */
+ "PH", //"phi", /**< "Philippine languages" */
+ "", //"phn", /**< "Phoenician" */
+ "", //"pli", /**< "Pali" */
+ "PL", //"pol", /**< "Polish" */
+ "", //"pon", /**< "Pohnpeian" */
+ "PT,BR,PT", //"por", /**< "Portuguese" */
+ "", //"pra", /**< "Prakrit languages" */
+ "", //"pro", /**< "Provencal, Old (to 1500)" */
+ "", //"pus", /**< "Pushto; Pashto" */
+ "", //"qaa-qtz", /**< "Reserved for local use" */
+ "", //"que", /**< "Quechua" */
+ "", //"raj", /**< "Rajasthani" */
+ "", //"rap", /**< "Rapanui" */
+ "", //"rar", /**< "Rarotongan; Cook Islands Maori" */
+ "", //"roa", /**< "Romance languages" */
+ "", //"roh", /**< "Romansh" */
+ "", //"rom", /**< "Romany" */
+ "RO", //"ron", /**< "Romanian; Moldavian; Moldovan" */
+ "", //"run", /**< "Rundi" */
+ "", //"rup", /**< "Aromanian; Arumanian; Macedo-Romanian" */
+ "RU", //"rus", /**< "Russian" */
+ "", //"sad", /**< "Sandawe" */
+ "", //"sag", /**< "Sango" */
+ "", //"sah", /**< "Yakut" */
+ "", //"sai", /**< "South American Indian (Other)" */
+ "", //"sal", /**< "Salishan languages" */
+ "", //"sam", /**< "Samaritan Aramaic" */
+ "", //"san", /**< "Sanskrit" */
+ "", //"sas", /**< "Sasak" */
+ "", //"sat", /**< "Santali" */
+ "", //"scn", /**< "Sicilian" */
+ "", //"sco", /**< "Scots" */
+ "", //"sel", /**< "Selkup" */
+ "", //"sem", /**< "Semitic languages" */
+ "IE", //"sga", /**< "Irish, Old (to 900)" */
+ "", //"sgn", /**< "Sign Languages" */
+ "", //"shn", /**< "Shan" */
+ "", //"sid", /**< "Sidamo" */
+ "LK", //"sin", /**< "Sinhala; Sinhalese" */
+ "", //"sio", /**< "Siouan languages" */
+ "", //"sit", /**< "Sino-Tibetan languages" */
+ "", //"sla", /**< "Slavic languages" */
+ "SK", //"slk", /**< "Slovak" */
+ "SI", //"slv", /**< "Slovenian" */
+ "", //"sma", /**< "Southern Sami" */
+ "", //"sme", /**< "Northern Sami" */
+ "", //"smi", /**< "Sami languages" */
+ "", //"smj", /**< "Lule Sami" */
+ "", //"smn", /**< "Inari Sami" */
+ "", //"smo", /**< "Samoan" */
+ "", //"sms", /**< "Skolt Sami" */
+ "", //"sna", /**< "Shona" */
+ "", //"snd", /**< "Sindhi" */
+ "", //"snk", /**< "Soninke" */
+ "", //"sog", /**< "Sogdian" */
+ "", //"som", /**< "Somali" */
+ "", //"son", /**< "Songhai languages" */
+ "", //"sot", /**< "Sotho, Southern" */
+ "ES,US,ES", //"spa", /**< "Spanish; Castilian" */
+ "", //"srd", /**< "Sardinian" */
+ "", //"srn", /**< "Sranan Tongo" */
+ "RS", //"srp", /**< "Serbian" */
+ "RS", //"srp-cyrl", /**< "Serbian (Cyrillic)" */
+ "RS", //"srp-latn", /**< "Serbian (Latin)" */
+ "", //"srr", /**< "Serer" */
+ "", //"ssa", /**< "Nilo-Saharan languages" */
+ "", //"ssw", /**< "Swati" */
+ "", //"suk", /**< "Sukuma" */
+ "", //"sun", /**< "Sundanese" */
+ "", //"sus", /**< "Susu" */
+ "", //"sux", /**< "Sumerian" */
+ "", //"swa", /**< "Swahili" */
+ "SE", //"swe", /**< "Swedish" */
+ "", //"syc", /**< "Classical Syriac" */
+ "", //"syr", /**< "Syriac" */
+ "", //"tah", /**< "Tahitian" */
+ "", //"tai", /**< "Tai languages" */
+ "IN", //"tam", /**< "Tamil" */
+ "", //"tat", /**< "Tatar" */
+ "IN", //"tel", /**< "Telugu" */
+ "", //"tem", /**< "Timne" */
+ "", //"ter", /**< "Tereno" */
+ "", //"tet", /**< "Tetum" */
+ "", //"tgk", /**< "Tajik" */
+ "IN", //"tgl", /**< "Tagalog" */
+ "TH", //"tha", /**< "Thai" */
+ "", //"bod", /**< "Tibetan" */
+ "", //"tig", /**< "Tigre" */
+ "", //"tir", /**< "Tigrinya" */
+ "", //"tiv", /**< "Tiv" */
+ "", //"tkl", /**< "Tokelau" */
+ "", //"tlh", /**< "Klingon; tlhIngan-Hol" */
+ "", //"tli", /**< "Tlingit" */
+ "", //"tmh", /**< "Tamashek" */
+ "", //"tog", /**< "Tonga (Nyasa)" */
+ "", //"ton", /**< "Tonga (Tonga Islands)" */
+ "", //"tpi", /**< "Tok Pisin" */
+ "", //"tsi", /**< "Tsimshian" */
+ "", //"tsn", /**< "Tswana" */
+ "", //"tso", /**< "Tsonga" */
+ "", //"tuk", /**< "Turkmen" */
+ "", //"tuk-cyrl", /**< "Turkmen (Cyrillic)" */
+ "", //"tuk-latn", /**< "Turkmen (Latin)" */
+ "", //"tum", /**< "Tumbuka" */
+ "", //"tup", /**< "Tupi languages" */
+ "TR", //"tur", /**< "Turkish" */
+ "", //"tut", /**< "Altaic languages" */
+ "", //"tvl", /**< "Tuvalu" */
+ "", //"twi", /**< "Twi" */
+ "", //"tyv", /**< "Tuvinian" */
+ "", //"udm", /**< "Udmurt" */
+ "", //"uga", /**< "Ugaritic" */
+ "", //"uig", /**< "Uighur; Uyghur" */
+ "UA", //"ukr", /**< "Ukrainian" */
+ "", //"umb", /**< "Umbundu" */
+ "", //"und", /**< "Undetermined" */
+ "PK", //"urd", /**< "Urdu" */
+ "UZ", //"uzb", /**< "Uzbek" */
+ "UZ", //"uzb-arabic", /**< Uzbek (Arabic) */
+ "UZ", //"uzb-cyrl", /**< "Uzbek (Cyrillic)" */
+ "UZ", //"uzb-latn", /**< "Uzbek (Latin)" */
+ "", //"vai", /**< "Vai" */
+ "", //"ven", /**< "Venda" */
+ "VN", //"vie", /**< "Vietnamese" */
+ "", //"vls", /**< "Vlaams; Flemish" */
+ "", //"vol", /**< "Volapuk" */
+ "", //"vot", /**< "Votic" */
+ "", //"wak", /**< "Wakashan languages" */
+ "", //"wal", /**< "Walamo" */
+ "", //"war", /**< "Waray" */
+ "", //"was", /**< "Washo" */
+ "GB", //"cym", /**< "Welsh" */
+ "", //"wen", /**< "Sorbian languages" */
+ "", //"wln", /**< "Walloon" */
+ "", //"wol", /**< "Wolof" */
+ "", //"xal", /**< "Kalmyk; Oirat" */
+ "", //"xho", /**< "Xhosa" */
+ "", //"yao", /**< "Yao" */
+ "", //"yap", /**< "Yapese" */
+ "", //"yid", /**< "Yiddish" */
+ "", //"yor", /**< "Yoruba" */
+ "", //"ypk", /**< "Yupik languages" */
+ "", //"zap", /**< "Zapotec" */
+ "", //"zbl", /**< "Blissymbols; Blissymbolics; Bliss" */
+ "", //"zen", /**< "Zenaga" */
+ "", //"zha", /**< "Zhuang; Chuang" */
+ "", //"znd", /**< "Zande languages" */
+ "", //"zul", /**< "Zulu" */
+ "", //"zun", /**< "Zuni" */
+ "", //"zxx", /**< "No linguistic content; Not applicable" */
+ "", //"zza", /**< "Zaza; Dimili; Dimli; Kirdki; Kirmanjki; Zazaki" */
+};
+
+ String languageCodeString(L"LANG:");
+ String countryCodeString;
+ ByteBuffer* pCountry = null;
+
+ languageCodeString.Append(Locale::LanguageCodeToTwoLetterLanguageCodeString(languageCode));
+ const char* pCountryCode = (languageCode < LANGUAGE_MAX) ? defaultLauguageCountryCodeArray[languageCode] : "";
+
+ int len = strlen(pCountryCode);
+ if (len == 0)
+ {
+ return null;
+ }
+ if (len == 2)
+ {
+ languageCodeString.Append(L"_");
+ StringUtil::Utf8ToString(defaultLauguageCountryCodeArray[languageCode], countryCodeString);
+ languageCodeString.Append(countryCodeString);
+ }
+ else
+ {
+ Locale* pLocaleLanguage = GetLocaleLanguageN();
+
+ if (!pLocaleLanguage)
+ {
+ return null;
+ }
+
+ const String displayCountry = pLocaleLanguage->GetCountryCodeString();
+ String delim(L",");
+ String countries;
+ StringUtil::Utf8ToString(defaultLauguageCountryCodeArray[languageCode], countries);
+ StringTokenizer strTok(countries, delim);
+
+ while (strTok.HasMoreTokens())
+ {
+ strTok.GetNextToken(countryCodeString);
+ if (countryCodeString == displayCountry)
+ {
+ break;
+ }
+ }
+ delete pLocaleLanguage;
+ languageCodeString.Append(L"_");
+ languageCodeString.Append(countryCodeString);
+ }
+
+ pCountry = StringUtil::StringToUtf8N(languageCodeString);
+
+ return pCountry;
+}
+
}} // Tizen::Ui