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