Dali 3D User Interface Engine
locale-utils.cpp
Go to the documentation of this file.
1 /*
2  * Copyright (c) 2014 Samsung Electronics Co., Ltd.
3  *
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
7  *
8  * http://www.apache.org/licenses/LICENSE-2.0
9  *
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.
15  *
16  */
17 
18 // CLASS HEADER
19 #include "locale-utils.h"
20 
21 namespace Dali
22 {
23 
24 namespace Internal
25 {
26 
27 namespace Adaptor
28 {
29 
30 namespace Locale
31 {
32 
33 using Dali::VirtualKeyboard::TextDirection;
34 using Dali::VirtualKeyboard::LeftToRight;
35 using Dali::VirtualKeyboard::RightToLeft;
36 
37 namespace
38 {
39 
41 {
42  const char * locale;
43  const char * name;
44  TextDirection direction;
45 };
46 
48 {
49  { "af", "Afrikaans", LeftToRight },
50  { "am", "Amharic", LeftToRight },
51  { "ar", "Arabic", RightToLeft },
52  { "as", "Assamese", LeftToRight },
53  { "az", "Azeri", LeftToRight },
54  { "be", "Belarusian", LeftToRight },
55  { "bg", "Bulgarian", LeftToRight },
56  { "bn", "Bengali", LeftToRight },
57  { "bo", "Tibetan", LeftToRight },
58  { "bs", "Bosnian", LeftToRight },
59  { "ca", "Catalan", LeftToRight },
60  { "cs", "Czech", LeftToRight },
61  { "cy", "Welsh", LeftToRight },
62  { "da", "Danish", LeftToRight },
63  { "de", "German", LeftToRight },
64  { "dv", "Divehi", RightToLeft },
65  { "el", "Greek", LeftToRight },
66  { "en", "English", LeftToRight },
67  { "es", "Spanish", LeftToRight },
68  { "et", "Estonian", LeftToRight },
69  { "eu", "Basque", LeftToRight },
70  { "fa", "Farsi", RightToLeft },
71  { "fi", "Finnish", LeftToRight },
72  { "fo", "Faroese", LeftToRight },
73  { "fr", "French", LeftToRight },
74  { "gd", "Gaelic", LeftToRight },
75  { "gl", "Galician", LeftToRight },
76  { "gn", "Guarani", LeftToRight },
77  { "gu", "Gujarati", LeftToRight },
78  { "he", "Hebrew", RightToLeft },
79  { "hi", "Hindi", LeftToRight },
80  { "hr", "Croatian", LeftToRight },
81  { "hu", "Hungarian", LeftToRight },
82  { "hy", "Armenian", LeftToRight },
83  { "id", "Indonesian", LeftToRight },
84  { "is", "Icelandic", LeftToRight },
85  { "it", "Italian", LeftToRight },
86  { "ja", "Japanese", LeftToRight },
87  { "ka", "Georgian", LeftToRight },
88  { "kk", "Kazakh", RightToLeft },
89  { "km", "Khmer", LeftToRight },
90  { "kn", "Kannada", LeftToRight },
91  { "ko", "Korean", LeftToRight },
92  { "ks", "Kashmiri", RightToLeft },
93  { "la", "Latin", LeftToRight },
94  { "lo", "Lao", LeftToRight },
95  { "lt", "Lithuanian", LeftToRight },
96  { "lv", "Latvian", LeftToRight },
97  { "mi", "Maori", LeftToRight },
98  { "mk", "FYRO Macedonia", LeftToRight },
99  { "ml", "Malayalam", LeftToRight },
100  { "mn", "Mongolian", LeftToRight },
101  { "mr", "Marathi", LeftToRight },
102  { "ms", "Malay", LeftToRight },
103  { "mt", "Maltese", LeftToRight },
104  { "my", "Burmese", LeftToRight },
105  { "nb", "Norwegian: Bokml", LeftToRight },
106  { "ne", "Nepali", LeftToRight },
107  { "nl", "Dutch", LeftToRight },
108  { "nn", "Norwegian: Nynorsk", LeftToRight },
109  { "or", "Oriya", LeftToRight },
110  { "pa", "Punjabi", LeftToRight },
111  { "pl", "Polish", LeftToRight },
112  { "pt", "Portuguese", LeftToRight },
113  { "rm", "Raeto-Romance", LeftToRight },
114  { "ro", "Romanian", LeftToRight },
115  { "ru", "Russian", LeftToRight },
116  { "sa", "Sanskrit", LeftToRight },
117  { "sb", "Sorbian", LeftToRight },
118  { "sd", "Sindhi", LeftToRight },
119  { "si", "Sinhala", LeftToRight },
120  { "sk", "Slovak", LeftToRight },
121  { "sl", "Slovenian", LeftToRight },
122  { "so", "Somali", LeftToRight },
123  { "sq", "Albanian", LeftToRight },
124  { "sr", "Serbian", LeftToRight },
125  { "sv", "Swedish", LeftToRight },
126  { "sw", "Swahili", LeftToRight },
127  { "ta", "Tamil", LeftToRight },
128  { "te", "Telugu", LeftToRight },
129  { "tg", "Tajik", RightToLeft },
130  { "th", "Thai", LeftToRight },
131  { "tk", "Turkmen", LeftToRight },
132  { "tn", "Setsuana", LeftToRight },
133  { "tr", "Turkish", LeftToRight },
134  { "ts", "Tsonga", LeftToRight },
135  { "tt", "Tatar", LeftToRight },
136  { "uk", "Ukrainian", LeftToRight },
137  { "ur", "Urdu", RightToLeft },
138  { "uz", "Uzbek", LeftToRight },
139  { "vi", "Vietnamese", LeftToRight },
140  { "xh", "Xhosa", LeftToRight },
141  { "yi", "Yiddish", RightToLeft },
142  { "zh", "Chinese", LeftToRight },
143  { "zu", "Zulu", LeftToRight },
144 
145  { NULL, NULL, LeftToRight }
146 };
147 
148 } // unnamed namespace
149 
150 TextDirection GetTextDirection( std::string locale )
151 {
152  TextDirection direction( LeftToRight );
153 
154  if ( !locale.empty() && locale.size() > 2 )
155  {
156  // We're only interested in the first two characters
157  locale.resize(2);
158 
159  for ( const LocaleDirection* iter = &LOCALE_DIRECTION_LOOKUP_TABLE[0]; iter->locale; ++iter )
160  {
161  if ( !locale.compare( iter->locale ) )
162  {
163  direction = iter->direction;
164  break;
165  }
166  }
167  }
168 
169  return direction;
170 }
171 
172 } // namespace Locale
173 
174 } // namespace Adaptor
175 
176 } // namespace Internal
177 
178 } // namespace Dali
Dali Docs Home
Read more about Dali