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>
36 struct LocaleDirectionInfo
40 Locale::Direction direction;
43 const LocaleDirectionInfo LOCALE_DIRECTION_LOOKUP_TABLE[] =
45 { "af", "Afrikaans", Locale::LEFT_TO_RIGHT },
46 { "am", "Amharic", Locale::LEFT_TO_RIGHT },
47 { "ar", "Arabic", Locale::RIGHT_TO_LEFT },
48 { "as", "Assamese", Locale::LEFT_TO_RIGHT },
49 { "az", "Azerbaijani", Locale::LEFT_TO_RIGHT },
50 { "be", "Belarusian", Locale::LEFT_TO_RIGHT },
51 { "bg", "Bulgarian", Locale::LEFT_TO_RIGHT },
52 { "bn", "Bengali", Locale::LEFT_TO_RIGHT },
53 { "bo", "Tibetan", Locale::LEFT_TO_RIGHT },
54 { "bs", "Bosnian", Locale::LEFT_TO_RIGHT },
55 { "ca", "Catalan", Locale::LEFT_TO_RIGHT },
56 { "ck", "Iraq", Locale::RIGHT_TO_LEFT },
57 { "cs", "Czech", Locale::LEFT_TO_RIGHT },
58 { "cy", "Welsh", Locale::LEFT_TO_RIGHT },
59 { "da", "Danish", Locale::LEFT_TO_RIGHT },
60 { "de", "German", Locale::LEFT_TO_RIGHT },
61 { "dv", "Divehi", Locale::RIGHT_TO_LEFT },
62 { "el", "Greek", Locale::LEFT_TO_RIGHT },
63 { "en", "English", Locale::LEFT_TO_RIGHT },
64 { "es", "Spanish", Locale::LEFT_TO_RIGHT },
65 { "et", "Estonian", Locale::LEFT_TO_RIGHT },
66 { "eu", "Basque", Locale::LEFT_TO_RIGHT },
67 { "fa", "Farsi", Locale::RIGHT_TO_LEFT },
68 { "fi", "Finnish", Locale::LEFT_TO_RIGHT },
69 { "fo", "Faroese", Locale::LEFT_TO_RIGHT },
70 { "fr", "French", Locale::LEFT_TO_RIGHT },
71 { "gd", "Gaelic", Locale::LEFT_TO_RIGHT },
72 { "gl", "Galician", Locale::LEFT_TO_RIGHT },
73 { "gn", "Guarani", Locale::LEFT_TO_RIGHT },
74 { "gu", "Gujarati", Locale::LEFT_TO_RIGHT },
75 { "ha", "Hausa", Locale::LEFT_TO_RIGHT },
76 { "he", "Hebrew", Locale::RIGHT_TO_LEFT },
77 { "hi", "Hindi", Locale::LEFT_TO_RIGHT },
78 { "hr", "Croatian", Locale::LEFT_TO_RIGHT },
79 { "hu", "Hungarian", Locale::LEFT_TO_RIGHT },
80 { "hy", "Armenian", Locale::LEFT_TO_RIGHT },
81 { "id", "Indonesian", Locale::LEFT_TO_RIGHT },
82 { "is", "Icelandic", Locale::LEFT_TO_RIGHT },
83 { "it", "Italian", Locale::LEFT_TO_RIGHT },
84 { "ja", "Japanese", Locale::LEFT_TO_RIGHT },
85 { "ka", "Georgian", Locale::LEFT_TO_RIGHT },
86 { "kk", "Kazakh", Locale::LEFT_TO_RIGHT },
87 { "km", "Khmer", Locale::LEFT_TO_RIGHT },
88 { "kn", "Kannada", Locale::LEFT_TO_RIGHT },
89 { "ko", "Korean", Locale::LEFT_TO_RIGHT },
90 { "ks", "Kashmiri", Locale::LEFT_TO_RIGHT },
91 { "la", "Latin", Locale::LEFT_TO_RIGHT },
92 { "lo", "Lao", Locale::LEFT_TO_RIGHT },
93 { "lt", "Lithuanian", Locale::LEFT_TO_RIGHT },
94 { "lv", "Latvian", Locale::LEFT_TO_RIGHT },
95 { "mi", "Maori", Locale::LEFT_TO_RIGHT },
96 { "mk", "FYRO Macedonia", Locale::LEFT_TO_RIGHT },
97 { "ml", "Malayalam", Locale::LEFT_TO_RIGHT },
98 { "mn", "Mongolian", Locale::LEFT_TO_RIGHT },
99 { "mr", "Marathi", Locale::LEFT_TO_RIGHT },
100 { "ms", "Malay", Locale::LEFT_TO_RIGHT },
101 { "mt", "Maltese", Locale::LEFT_TO_RIGHT },
102 { "my", "Burmese", Locale::LEFT_TO_RIGHT },
103 { "nb", "Norwegian: Bokml", Locale::LEFT_TO_RIGHT },
104 { "ne", "Nepali", Locale::LEFT_TO_RIGHT },
105 { "nl", "Dutch", Locale::LEFT_TO_RIGHT },
106 { "nn", "Norwegian: Nynorsk", Locale::LEFT_TO_RIGHT },
107 { "or", "Oriya", Locale::LEFT_TO_RIGHT },
108 { "pa", "Punjabi", Locale::LEFT_TO_RIGHT },
109 { "pl", "Polish", Locale::LEFT_TO_RIGHT },
110 { "pt", "Portuguese", Locale::LEFT_TO_RIGHT },
111 { "rm", "Raeto-Romance", Locale::LEFT_TO_RIGHT },
112 { "ro", "Romanian", Locale::LEFT_TO_RIGHT },
113 { "ru", "Russian", Locale::LEFT_TO_RIGHT },
114 { "sa", "Sanskrit", Locale::LEFT_TO_RIGHT },
115 { "sb", "Sorbian", Locale::LEFT_TO_RIGHT },
116 { "sd", "Sindhi", Locale::LEFT_TO_RIGHT },
117 { "si", "Sinhala", Locale::LEFT_TO_RIGHT },
118 { "sk", "Slovak", Locale::LEFT_TO_RIGHT },
119 { "sl", "Slovenian", Locale::LEFT_TO_RIGHT },
120 { "so", "Somali", Locale::LEFT_TO_RIGHT },
121 { "sq", "Albanian", Locale::LEFT_TO_RIGHT },
122 { "sr", "Serbian", Locale::LEFT_TO_RIGHT },
123 { "sv", "Swedish", Locale::LEFT_TO_RIGHT },
124 { "sw", "Swahili", Locale::LEFT_TO_RIGHT },
125 { "ta", "Tamil", Locale::LEFT_TO_RIGHT },
126 { "te", "Telugu", Locale::LEFT_TO_RIGHT },
127 { "tg", "Tajik", Locale::LEFT_TO_RIGHT },
128 { "th", "Thai", Locale::LEFT_TO_RIGHT },
129 { "tk", "Turkmen", Locale::LEFT_TO_RIGHT },
130 { "tn", "Setsuana", Locale::LEFT_TO_RIGHT },
131 { "tr", "Turkish", Locale::LEFT_TO_RIGHT },
132 { "ts", "Tsonga", Locale::LEFT_TO_RIGHT },
133 { "tt", "Tatar", Locale::LEFT_TO_RIGHT },
134 { "uk", "Ukrainian", Locale::LEFT_TO_RIGHT },
135 { "ur", "Urdu", Locale::RIGHT_TO_LEFT },
136 { "uz", "Uzbek", Locale::LEFT_TO_RIGHT },
137 { "vi", "Vietnamese", Locale::LEFT_TO_RIGHT },
138 { "xh", "Xhosa", Locale::LEFT_TO_RIGHT },
139 { "yi", "Yiddish", Locale::RIGHT_TO_LEFT },
140 { "zh", "Chinese", Locale::LEFT_TO_RIGHT },
141 { "zu", "Zulu", Locale::LEFT_TO_RIGHT },
143 { NULL, NULL, Locale::LEFT_TO_RIGHT }
146 } // unnamed namespace
148 Locale::Direction GetDirection( const std::string& locale )
150 Locale::Direction direction( Locale::LEFT_TO_RIGHT );
152 if ( !locale.empty() && locale.size() > 2 )
154 for ( const LocaleDirectionInfo* iter = &LOCALE_DIRECTION_LOOKUP_TABLE[0]; iter->locale; ++iter )
156 if ( !locale.compare( 0, 2, iter->locale ) )
158 direction = iter->direction;
167 } // namespace Locale
169 } // namespace Adaptor
171 } // namespace Internal