2 * Copyright (c) 2014 Samsung Electronics Co., Ltd.
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
8 * http://www.apache.org/licenses/LICENSE-2.0
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
19 #include <dali/internal/system/common/locale-utils.h>
31 struct LocaleDirectionInfo
35 Locale::Direction direction;
39 const LocaleDirectionInfo LOCALE_DIRECTION_LOOKUP_TABLE[] =
41 { "af", "Afrikaans", Locale::LEFT_TO_RIGHT },
42 { "am", "Amharic", Locale::LEFT_TO_RIGHT },
43 { "ar", "Arabic", Locale::RIGHT_TO_LEFT },
44 { "as", "Assamese", Locale::LEFT_TO_RIGHT },
45 { "az", "Azerbaijani", Locale::LEFT_TO_RIGHT },
46 { "be", "Belarusian", Locale::LEFT_TO_RIGHT },
47 { "bg", "Bulgarian", Locale::LEFT_TO_RIGHT },
48 { "bn", "Bengali", Locale::LEFT_TO_RIGHT },
49 { "bo", "Tibetan", Locale::LEFT_TO_RIGHT },
50 { "bs", "Bosnian", Locale::LEFT_TO_RIGHT },
51 { "ca", "Catalan", Locale::LEFT_TO_RIGHT },
52 { "ck", "Iraq", Locale::RIGHT_TO_LEFT },
53 { "cs", "Czech", Locale::LEFT_TO_RIGHT },
54 { "cy", "Welsh", Locale::LEFT_TO_RIGHT },
55 { "da", "Danish", Locale::LEFT_TO_RIGHT },
56 { "de", "German", Locale::LEFT_TO_RIGHT },
57 { "dv", "Divehi", Locale::RIGHT_TO_LEFT },
58 { "el", "Greek", Locale::LEFT_TO_RIGHT },
59 { "en", "English", Locale::LEFT_TO_RIGHT },
60 { "es", "Spanish", Locale::LEFT_TO_RIGHT },
61 { "et", "Estonian", Locale::LEFT_TO_RIGHT },
62 { "eu", "Basque", Locale::LEFT_TO_RIGHT },
63 { "fa", "Farsi", Locale::RIGHT_TO_LEFT },
64 { "fi", "Finnish", Locale::LEFT_TO_RIGHT },
65 { "fo", "Faroese", Locale::LEFT_TO_RIGHT },
66 { "fr", "French", Locale::LEFT_TO_RIGHT },
67 { "gd", "Gaelic", Locale::LEFT_TO_RIGHT },
68 { "gl", "Galician", Locale::LEFT_TO_RIGHT },
69 { "gn", "Guarani", Locale::LEFT_TO_RIGHT },
70 { "gu", "Gujarati", Locale::LEFT_TO_RIGHT },
71 { "ha", "Hausa", Locale::LEFT_TO_RIGHT },
72 { "he", "Hebrew", Locale::RIGHT_TO_LEFT },
73 { "hi", "Hindi", Locale::LEFT_TO_RIGHT },
74 { "hr", "Croatian", Locale::LEFT_TO_RIGHT },
75 { "hu", "Hungarian", Locale::LEFT_TO_RIGHT },
76 { "hy", "Armenian", Locale::LEFT_TO_RIGHT },
77 { "id", "Indonesian", Locale::LEFT_TO_RIGHT },
78 { "is", "Icelandic", Locale::LEFT_TO_RIGHT },
79 { "it", "Italian", Locale::LEFT_TO_RIGHT },
80 { "ja", "Japanese", Locale::LEFT_TO_RIGHT },
81 { "ka", "Georgian", Locale::LEFT_TO_RIGHT },
82 { "kk", "Kazakh", Locale::LEFT_TO_RIGHT },
83 { "km", "Khmer", Locale::LEFT_TO_RIGHT },
84 { "kn", "Kannada", Locale::LEFT_TO_RIGHT },
85 { "ko", "Korean", Locale::LEFT_TO_RIGHT },
86 { "ks", "Kashmiri", Locale::LEFT_TO_RIGHT },
87 { "la", "Latin", Locale::LEFT_TO_RIGHT },
88 { "lo", "Lao", Locale::LEFT_TO_RIGHT },
89 { "lt", "Lithuanian", Locale::LEFT_TO_RIGHT },
90 { "lv", "Latvian", Locale::LEFT_TO_RIGHT },
91 { "mi", "Maori", Locale::LEFT_TO_RIGHT },
92 { "mk", "FYRO Macedonia", Locale::LEFT_TO_RIGHT },
93 { "ml", "Malayalam", Locale::LEFT_TO_RIGHT },
94 { "mn", "Mongolian", Locale::LEFT_TO_RIGHT },
95 { "mr", "Marathi", Locale::LEFT_TO_RIGHT },
96 { "ms", "Malay", Locale::LEFT_TO_RIGHT },
97 { "mt", "Maltese", Locale::LEFT_TO_RIGHT },
98 { "my", "Burmese", Locale::LEFT_TO_RIGHT },
99 { "nb", "Norwegian: Bokml", Locale::LEFT_TO_RIGHT },
100 { "ne", "Nepali", Locale::LEFT_TO_RIGHT },
101 { "nl", "Dutch", Locale::LEFT_TO_RIGHT },
102 { "nn", "Norwegian: Nynorsk", Locale::LEFT_TO_RIGHT },
103 { "or", "Oriya", Locale::LEFT_TO_RIGHT },
104 { "pa", "Punjabi", Locale::LEFT_TO_RIGHT },
105 { "pl", "Polish", Locale::LEFT_TO_RIGHT },
106 { "pt", "Portuguese", Locale::LEFT_TO_RIGHT },
107 { "rm", "Raeto-Romance", Locale::LEFT_TO_RIGHT },
108 { "ro", "Romanian", Locale::LEFT_TO_RIGHT },
109 { "ru", "Russian", Locale::LEFT_TO_RIGHT },
110 { "sa", "Sanskrit", Locale::LEFT_TO_RIGHT },
111 { "sb", "Sorbian", Locale::LEFT_TO_RIGHT },
112 { "sd", "Sindhi", Locale::LEFT_TO_RIGHT },
113 { "si", "Sinhala", Locale::LEFT_TO_RIGHT },
114 { "sk", "Slovak", Locale::LEFT_TO_RIGHT },
115 { "sl", "Slovenian", Locale::LEFT_TO_RIGHT },
116 { "so", "Somali", Locale::LEFT_TO_RIGHT },
117 { "sq", "Albanian", Locale::LEFT_TO_RIGHT },
118 { "sr", "Serbian", Locale::LEFT_TO_RIGHT },
119 { "sv", "Swedish", Locale::LEFT_TO_RIGHT },
120 { "sw", "Swahili", Locale::LEFT_TO_RIGHT },
121 { "ta", "Tamil", Locale::LEFT_TO_RIGHT },
122 { "te", "Telugu", Locale::LEFT_TO_RIGHT },
123 { "tg", "Tajik", Locale::LEFT_TO_RIGHT },
124 { "th", "Thai", Locale::LEFT_TO_RIGHT },
125 { "tk", "Turkmen", Locale::LEFT_TO_RIGHT },
126 { "tn", "Setsuana", Locale::LEFT_TO_RIGHT },
127 { "tr", "Turkish", Locale::LEFT_TO_RIGHT },
128 { "ts", "Tsonga", Locale::LEFT_TO_RIGHT },
129 { "tt", "Tatar", Locale::LEFT_TO_RIGHT },
130 { "uk", "Ukrainian", Locale::LEFT_TO_RIGHT },
131 { "ur", "Urdu", Locale::RIGHT_TO_LEFT },
132 { "uz", "Uzbek", Locale::LEFT_TO_RIGHT },
133 { "vi", "Vietnamese", Locale::LEFT_TO_RIGHT },
134 { "xh", "Xhosa", Locale::LEFT_TO_RIGHT },
135 { "yi", "Yiddish", Locale::RIGHT_TO_LEFT },
136 { "zh", "Chinese", Locale::LEFT_TO_RIGHT },
137 { "zu", "Zulu", Locale::LEFT_TO_RIGHT },
139 { NULL, NULL, Locale::LEFT_TO_RIGHT }
143 } // unnamed namespace
145 Locale::Direction GetDirection(const std::string& locale)
147 Locale::Direction direction(Locale::LEFT_TO_RIGHT);
149 if(!locale.empty() && locale.size() > 2)
151 for(const LocaleDirectionInfo* iter = &LOCALE_DIRECTION_LOOKUP_TABLE[0]; iter->locale; ++iter)
153 if(!locale.compare(0, 2, iter->locale))
155 direction = iter->direction;
164 } // namespace Locale
166 } // namespace Adaptor
168 } // namespace Internal