namespace Locale
{
-using Dali::VirtualKeyboard::TextDirection;
-using Dali::VirtualKeyboard::LeftToRight;
-using Dali::VirtualKeyboard::RightToLeft;
-
namespace
{
-struct LocaleDirection
+struct LocaleDirectionInfo
{
const char * locale;
const char * name;
- TextDirection direction;
+ Locale::Direction direction;
};
-const LocaleDirection LOCALE_DIRECTION_LOOKUP_TABLE[] =
+const LocaleDirectionInfo LOCALE_DIRECTION_LOOKUP_TABLE[] =
{
- { "af", "Afrikaans", LeftToRight },
- { "am", "Amharic", LeftToRight },
- { "ar", "Arabic", RightToLeft },
- { "as", "Assamese", LeftToRight },
- { "az", "Azeri", LeftToRight },
- { "be", "Belarusian", LeftToRight },
- { "bg", "Bulgarian", LeftToRight },
- { "bn", "Bengali", LeftToRight },
- { "bo", "Tibetan", LeftToRight },
- { "bs", "Bosnian", LeftToRight },
- { "ca", "Catalan", LeftToRight },
- { "cs", "Czech", LeftToRight },
- { "cy", "Welsh", LeftToRight },
- { "da", "Danish", LeftToRight },
- { "de", "German", LeftToRight },
- { "dv", "Divehi", RightToLeft },
- { "el", "Greek", LeftToRight },
- { "en", "English", LeftToRight },
- { "es", "Spanish", LeftToRight },
- { "et", "Estonian", LeftToRight },
- { "eu", "Basque", LeftToRight },
- { "fa", "Farsi", RightToLeft },
- { "fi", "Finnish", LeftToRight },
- { "fo", "Faroese", LeftToRight },
- { "fr", "French", LeftToRight },
- { "gd", "Gaelic", LeftToRight },
- { "gl", "Galician", LeftToRight },
- { "gn", "Guarani", LeftToRight },
- { "gu", "Gujarati", LeftToRight },
- { "he", "Hebrew", RightToLeft },
- { "hi", "Hindi", LeftToRight },
- { "hr", "Croatian", LeftToRight },
- { "hu", "Hungarian", LeftToRight },
- { "hy", "Armenian", LeftToRight },
- { "id", "Indonesian", LeftToRight },
- { "is", "Icelandic", LeftToRight },
- { "it", "Italian", LeftToRight },
- { "ja", "Japanese", LeftToRight },
- { "ka", "Georgian", LeftToRight },
- { "kk", "Kazakh", RightToLeft },
- { "km", "Khmer", LeftToRight },
- { "kn", "Kannada", LeftToRight },
- { "ko", "Korean", LeftToRight },
- { "ks", "Kashmiri", RightToLeft },
- { "la", "Latin", LeftToRight },
- { "lo", "Lao", LeftToRight },
- { "lt", "Lithuanian", LeftToRight },
- { "lv", "Latvian", LeftToRight },
- { "mi", "Maori", LeftToRight },
- { "mk", "FYRO Macedonia", LeftToRight },
- { "ml", "Malayalam", LeftToRight },
- { "mn", "Mongolian", LeftToRight },
- { "mr", "Marathi", LeftToRight },
- { "ms", "Malay", LeftToRight },
- { "mt", "Maltese", LeftToRight },
- { "my", "Burmese", LeftToRight },
- { "nb", "Norwegian: Bokml", LeftToRight },
- { "ne", "Nepali", LeftToRight },
- { "nl", "Dutch", LeftToRight },
- { "nn", "Norwegian: Nynorsk", LeftToRight },
- { "or", "Oriya", LeftToRight },
- { "pa", "Punjabi", LeftToRight },
- { "pl", "Polish", LeftToRight },
- { "pt", "Portuguese", LeftToRight },
- { "rm", "Raeto-Romance", LeftToRight },
- { "ro", "Romanian", LeftToRight },
- { "ru", "Russian", LeftToRight },
- { "sa", "Sanskrit", LeftToRight },
- { "sb", "Sorbian", LeftToRight },
- { "sd", "Sindhi", LeftToRight },
- { "si", "Sinhala", LeftToRight },
- { "sk", "Slovak", LeftToRight },
- { "sl", "Slovenian", LeftToRight },
- { "so", "Somali", LeftToRight },
- { "sq", "Albanian", LeftToRight },
- { "sr", "Serbian", LeftToRight },
- { "sv", "Swedish", LeftToRight },
- { "sw", "Swahili", LeftToRight },
- { "ta", "Tamil", LeftToRight },
- { "te", "Telugu", LeftToRight },
- { "tg", "Tajik", RightToLeft },
- { "th", "Thai", LeftToRight },
- { "tk", "Turkmen", LeftToRight },
- { "tn", "Setsuana", LeftToRight },
- { "tr", "Turkish", LeftToRight },
- { "ts", "Tsonga", LeftToRight },
- { "tt", "Tatar", LeftToRight },
- { "uk", "Ukrainian", LeftToRight },
- { "ur", "Urdu", RightToLeft },
- { "uz", "Uzbek", LeftToRight },
- { "vi", "Vietnamese", LeftToRight },
- { "xh", "Xhosa", LeftToRight },
- { "yi", "Yiddish", RightToLeft },
- { "zh", "Chinese", LeftToRight },
- { "zu", "Zulu", LeftToRight },
-
- { NULL, NULL, LeftToRight }
+ { "af", "Afrikaans", Locale::LeftToRight },
+ { "am", "Amharic", Locale::LeftToRight },
+ { "ar", "Arabic", Locale::RightToLeft },
+ { "as", "Assamese", Locale::LeftToRight },
+ { "az", "Azerbaijani", Locale::RightToLeft },
+ { "be", "Belarusian", Locale::LeftToRight },
+ { "bg", "Bulgarian", Locale::LeftToRight },
+ { "bn", "Bengali", Locale::LeftToRight },
+ { "bo", "Tibetan", Locale::LeftToRight },
+ { "bs", "Bosnian", Locale::LeftToRight },
+ { "ca", "Catalan", Locale::LeftToRight },
+ { "cs", "Czech", Locale::LeftToRight },
+ { "cy", "Welsh", Locale::LeftToRight },
+ { "da", "Danish", Locale::LeftToRight },
+ { "de", "German", Locale::LeftToRight },
+ { "dv", "Divehi", Locale::RightToLeft },
+ { "el", "Greek", Locale::LeftToRight },
+ { "en", "English", Locale::LeftToRight },
+ { "es", "Spanish", Locale::LeftToRight },
+ { "et", "Estonian", Locale::LeftToRight },
+ { "eu", "Basque", Locale::LeftToRight },
+ { "fa", "Farsi", Locale::RightToLeft },
+ { "fi", "Finnish", Locale::LeftToRight },
+ { "fo", "Faroese", Locale::LeftToRight },
+ { "fr", "French", Locale::LeftToRight },
+ { "gd", "Gaelic", Locale::LeftToRight },
+ { "gl", "Galician", Locale::LeftToRight },
+ { "gn", "Guarani", Locale::LeftToRight },
+ { "gu", "Gujarati", Locale::LeftToRight },
+ { "he", "Hebrew", Locale::RightToLeft },
+ { "hi", "Hindi", Locale::LeftToRight },
+ { "hr", "Croatian", Locale::LeftToRight },
+ { "hu", "Hungarian", Locale::LeftToRight },
+ { "hy", "Armenian", Locale::LeftToRight },
+ { "id", "Indonesian", Locale::LeftToRight },
+ { "is", "Icelandic", Locale::LeftToRight },
+ { "it", "Italian", Locale::LeftToRight },
+ { "ja", "Japanese", Locale::LeftToRight },
+ { "ka", "Georgian", Locale::LeftToRight },
+ { "kk", "Kazakh", Locale::RightToLeft },
+ { "km", "Khmer", Locale::LeftToRight },
+ { "kn", "Kannada", Locale::LeftToRight },
+ { "ko", "Korean", Locale::LeftToRight },
+ { "ks", "Kashmiri", Locale::RightToLeft },
+ { "la", "Latin", Locale::LeftToRight },
+ { "lo", "Lao", Locale::LeftToRight },
+ { "lt", "Lithuanian", Locale::LeftToRight },
+ { "lv", "Latvian", Locale::LeftToRight },
+ { "mi", "Maori", Locale::LeftToRight },
+ { "mk", "FYRO Macedonia", Locale::LeftToRight },
+ { "ml", "Malayalam", Locale::LeftToRight },
+ { "mn", "Mongolian", Locale::LeftToRight },
+ { "mr", "Marathi", Locale::LeftToRight },
+ { "ms", "Malay", Locale::LeftToRight },
+ { "mt", "Maltese", Locale::LeftToRight },
+ { "my", "Burmese", Locale::LeftToRight },
+ { "nb", "Norwegian: Bokml", Locale::LeftToRight },
+ { "ne", "Nepali", Locale::LeftToRight },
+ { "nl", "Dutch", Locale::LeftToRight },
+ { "nn", "Norwegian: Nynorsk", Locale::LeftToRight },
+ { "or", "Oriya", Locale::LeftToRight },
+ { "pa", "Punjabi", Locale::LeftToRight },
+ { "pl", "Polish", Locale::LeftToRight },
+ { "pt", "Portuguese", Locale::LeftToRight },
+ { "rm", "Raeto-Romance", Locale::LeftToRight },
+ { "ro", "Romanian", Locale::LeftToRight },
+ { "ru", "Russian", Locale::LeftToRight },
+ { "sa", "Sanskrit", Locale::LeftToRight },
+ { "sb", "Sorbian", Locale::LeftToRight },
+ { "sd", "Sindhi", Locale::LeftToRight },
+ { "si", "Sinhala", Locale::LeftToRight },
+ { "sk", "Slovak", Locale::LeftToRight },
+ { "sl", "Slovenian", Locale::LeftToRight },
+ { "so", "Somali", Locale::LeftToRight },
+ { "sq", "Albanian", Locale::LeftToRight },
+ { "sr", "Serbian", Locale::LeftToRight },
+ { "sv", "Swedish", Locale::LeftToRight },
+ { "sw", "Swahili", Locale::LeftToRight },
+ { "ta", "Tamil", Locale::LeftToRight },
+ { "te", "Telugu", Locale::LeftToRight },
+ { "tg", "Tajik", Locale::RightToLeft },
+ { "th", "Thai", Locale::LeftToRight },
+ { "tk", "Turkmen", Locale::LeftToRight },
+ { "tn", "Setsuana", Locale::LeftToRight },
+ { "tr", "Turkish", Locale::LeftToRight },
+ { "ts", "Tsonga", Locale::LeftToRight },
+ { "tt", "Tatar", Locale::LeftToRight },
+ { "uk", "Ukrainian", Locale::LeftToRight },
+ { "ur", "Urdu", Locale::RightToLeft },
+ { "uz", "Uzbek", Locale::LeftToRight },
+ { "vi", "Vietnamese", Locale::LeftToRight },
+ { "xh", "Xhosa", Locale::LeftToRight },
+ { "yi", "Yiddish", Locale::RightToLeft },
+ { "zh", "Chinese", Locale::LeftToRight },
+ { "zu", "Zulu", Locale::LeftToRight },
+
+ { NULL, NULL, Locale::LeftToRight }
};
} // unnamed namespace
-TextDirection GetTextDirection( std::string locale )
+Locale::Direction GetDirection( const std::string& locale )
{
- TextDirection direction( LeftToRight );
+ Locale::Direction direction( Locale::LeftToRight );
if ( !locale.empty() && locale.size() > 2 )
{
- // We're only interested in the first two characters
- locale.resize(2);
-
- for ( const LocaleDirection* iter = &LOCALE_DIRECTION_LOOKUP_TABLE[0]; iter->locale; ++iter )
+ for ( const LocaleDirectionInfo* iter = &LOCALE_DIRECTION_LOOKUP_TABLE[0]; iter->locale; ++iter )
{
- if ( !locale.compare( iter->locale ) )
+ if ( !locale.compare( 0, 2, iter->locale ) )
{
direction = iter->direction;
break;