diff --git a/src/mibew/libs/classes/Mibew/Style/ChatStyle.php b/src/mibew/libs/classes/Mibew/Style/ChatStyle.php index 6fa1028d..4bf4f283 100644 --- a/src/mibew/libs/classes/Mibew/Style/ChatStyle.php +++ b/src/mibew/libs/classes/Mibew/Style/ChatStyle.php @@ -83,7 +83,11 @@ class ChatStyle extends AbstractStyle implements StyleInterface $data['mibewRoot'] = MIBEW_WEB_ROOT; $data['mibewVersion'] = MIBEW_VERSION; $data['currentLocale'] = CURRENT_LOCALE; - $data['rtl'] = (getlocal("localedirection") == 'rtl'); + + $locales = get_locales(); + $data['rtl'] = isset($locales[CURRENT_LOCALE]) + && $locales[CURRENT_LOCALE]['rtl']; + $data['stylePath'] = MIBEW_WEB_ROOT . '/' . $this->getFilesPath(); $data['styleName'] = $this->getName(); diff --git a/src/mibew/libs/classes/Mibew/Style/PageStyle.php b/src/mibew/libs/classes/Mibew/Style/PageStyle.php index d4c3066c..e7c471c2 100644 --- a/src/mibew/libs/classes/Mibew/Style/PageStyle.php +++ b/src/mibew/libs/classes/Mibew/Style/PageStyle.php @@ -83,7 +83,11 @@ class PageStyle extends AbstractStyle implements StyleInterface $data['mibewRoot'] = MIBEW_WEB_ROOT; $data['mibewVersion'] = MIBEW_VERSION; $data['currentLocale'] = CURRENT_LOCALE; - $data['rtl'] = (getlocal("localedirection") == 'rtl'); + + $locales = get_locales(); + $data['rtl'] = isset($locales[CURRENT_LOCALE]) + && $locales[CURRENT_LOCALE]['rtl']; + $data['stylePath'] = MIBEW_WEB_ROOT . '/' . $this->getFilesPath(); $data['styleName'] = $this->getName(); diff --git a/src/mibew/libs/common/locale.php b/src/mibew/libs/common/locale.php index 3d2a165c..d34286b8 100644 --- a/src/mibew/libs/common/locale.php +++ b/src/mibew/libs/common/locale.php @@ -158,51 +158,205 @@ function get_locale_links() * @return array */ function get_locale_names() +{ + static $names = false; + + if ($names === false) { + $locales = get_locales(); + $names = array(); + foreach ($locales as $code => $info) { + $names[$code] = $info['name']; + } + } + + return $names; +} + +/** + * Returns meta data for all known locales. + * + * @return array Associative arrays which keys are locale codes and the values + * are locales info. Locale info itself is an associative array with the + * following keys: + * - name: string, human readable locale name. + * - rtl: boolean, indicates with the locale uses right-to-left + * writing mode. + */ +function get_locales() { return array( - 'ar' => 'العربية', - 'be' => 'Беларуская', - 'bg' => 'Български', - 'ca' => 'Català', - 'cs' => 'Česky', - 'da' => 'Dansk', - 'de' => 'Deutsch', - 'el' => 'Ελληνικά', - 'en' => 'English', - 'es' => 'Español', - 'et' => 'Eesti', - 'fa' => 'فارسی', - 'fi' => 'Suomi', - 'fr' => 'Français', - 'he' => 'עברית', - 'hr' => 'Hrvatski', - 'hu' => 'Magyar', - 'id' => 'Bahasa Indonesia', - 'it' => 'Italiano', - 'ja' => '日本語', - 'ka' => 'ქართული', - 'kk' => 'Қазақша', - 'ko' => '한국어', - 'ky' => 'Кыргызча', - 'lt' => 'Lietuvių', - 'lv' => 'Latviešu', - 'nl' => 'Nederlands', - 'nn' => 'Norsk nynorsk', - 'no' => 'Norsk bokmål', - 'pl' => 'Polski', - 'pt-pt' => 'Português', - 'pt-br' => 'Português Brasil', - 'ro' => 'Română', - 'ru' => 'Русский', - 'sk' => 'Slovenčina', - 'sl' => 'Slovenščina', - 'sr' => 'Српски', - 'sv' => 'Svenska', - 'th' => 'ไทย', - 'tr' => 'Türkçe', - 'ua' => 'Українська', - 'zh-cn' => '中文', - 'zh-tw' => '文言', + 'ar' => array( + 'name' => 'العربية', + 'rtl' => true, + ), + 'be' => array( + 'name' => 'Беларуская', + 'rtl' => false, + ), + 'bg' => array( + 'name' => 'Български', + 'rtl' => false, + ), + 'ca' => array( + 'name' => 'Català', + 'rtl' => false, + ), + 'cs' => array( + 'name' => 'Česky', + 'rtl' => false, + ), + 'da' => array( + 'name' => 'Dansk', + 'rtl' => false, + ), + 'de' => array( + 'name' => 'Deutsch', + 'rtl' => false, + ), + 'el' => array( + 'name' => 'Ελληνικά', + 'rtl' => false, + ), + 'en' => array( + 'name' => 'English', + 'rtl' => false, + ), + 'es' => array( + 'name' => 'Español', + 'rtl' => false, + ), + 'et' => array( + 'name' => 'Eesti', + 'rtl' => false, + ), + 'fa' => array( + 'name' => 'فارسی', + 'rtl' => true, + ), + 'fi' => array( + 'name' => 'Suomi', + 'rtl' => false, + ), + 'fr' => array( + 'name' => 'Français', + 'rtl' => false, + ), + 'he' => array( + 'name' => 'עברית', + 'rtl' => true, + ), + 'hr' => array( + 'name' => 'Hrvatski', + 'rtl' => false, + ), + 'hu' => array( + 'name' => 'Magyar', + 'rtl' => false, + ), + 'id' => array( + 'name' => 'Bahasa Indonesia', + 'rtl' => false, + ), + 'it' => array( + 'name' => 'Italiano', + 'rtl' => false, + ), + 'ja' => array( + 'name' => '日本語', + 'rtl' => false, + ), + 'ka' => array( + 'name' => 'ქართული', + 'rtl' => false, + ), + 'kk' => array( + 'name' => 'Қазақша', + 'rtl' => false, + ), + 'ko' => array( + 'name' => '한국어', + 'rtl' => false, + ), + 'ky' => array( + 'name' => 'Кыргызча', + 'rtl' => false, + ), + 'lt' => array( + 'name' => 'Lietuvių', + 'rtl' => false, + ), + 'lv' => array( + 'name' => 'Latviešu', + 'rtl' => false, + ), + 'nl' => array( + 'name' => 'Nederlands', + 'rtl' => false, + ), + 'nn' => array( + 'name' => 'Norsk nynorsk', + 'rtl' => false, + ), + 'no' => array( + 'name' => 'Norsk bokmål', + 'rtl' => false, + ), + 'pl' => array( + 'name' => 'Polski', + 'rtl' => false, + ), + 'pt-pt' => array( + 'name' => 'Português', + 'rtl' => false, + ), + 'pt-br' => array( + 'name' => 'Português Brasil', + 'rtl' => false, + ), + 'ro' => array( + 'name' => 'Română', + 'rtl' => false, + ), + 'ru' => array( + 'name' => 'Русский', + 'rtl' => false, + ), + 'sk' => array( + 'name' => 'Slovenčina', + 'rtl' => false, + ), + 'sl' => array( + 'name' => 'Slovenščina', + 'rtl' => false, + ), + 'sr' => array( + 'name' => 'Српски', + 'rtl' => false, + ), + 'sv' => array( + 'name' => 'Svenska', + 'rtl' => false, + ), + 'th' => array( + 'name' => 'ไทย', + 'rtl' => false, + ), + 'tr' => array( + 'name' => 'Türkçe', + 'rtl' => false, + ), + 'ua' => array( + 'name' => 'Українська', + 'rtl' => false, + ), + 'zh-cn' => array( + 'name' => '中文', + 'rtl' => false, + ), + 'zh-tw' => array( + 'name' => '文言', + 'rtl' => false, + ), ); } diff --git a/src/mibew/locales/en/translation.po b/src/mibew/locales/en/translation.po index e0bbbf4c..06347a68 100644 --- a/src/mibew/locales/en/translation.po +++ b/src/mibew/locales/en/translation.po @@ -458,8 +458,6 @@ msgid "leftMenu.client_settings" msgstr "Settings" msgid "license.title" msgstr "License" -msgid "localedirection" -msgstr "ltr" msgid "mail_template.actions" msgstr "Modify" msgid "mail_template.actions.edit" diff --git a/src/mibew/styles/pages/default/templates_src/server_side/_layout.handlebars b/src/mibew/styles/pages/default/templates_src/server_side/_layout.handlebars index 6b1fdd3e..855d49ae 100644 --- a/src/mibew/styles/pages/default/templates_src/server_side/_layout.handlebars +++ b/src/mibew/styles/pages/default/templates_src/server_side/_layout.handlebars @@ -14,7 +14,7 @@
-