Commit 2b5f3a43 authored by David Fuhrmann's avatar David Fuhrmann

macosx: Force right to left interface if RTL language was selected

Enable RTL interface if RTL language was explicitly selected in
preferences.
parent 48087f5c
......@@ -44,133 +44,73 @@
#import <Sparkle/Sparkle.h> //for o_intf_last_updateLabel
#endif
static const char *const ppsz_language[] =
{
"auto",
"en",
"ar",
"bn",
"pt_BR",
"en_GB",
"el",
"bg",
"ca",
"zh_TW",
"cs",
"cy",
"da",
"nl",
"fi",
"et",
"eu",
"fr",
"ga",
"gd",
"gl",
"ka",
"de",
"he",
"hr",
"hu",
"hy",
"is",
"id",
"it",
"ja",
"ko",
"lt",
"mn",
"ms",
"nb",
"nn",
"kk",
"km",
"ne",
"oc",
"fa",
"pl",
"pt_PT",
"pa",
"ro",
"ru",
"zh_CN",
"si",
"sr",
"sk",
"sl",
"ckb",
"es",
"sv",
"te",
"tr",
"uk",
"vi",
"wa",
NULL,
};
static const char *const ppsz_language_text[] =
{
N_("Auto"),
"American English",
"عربي",
"বাংলা",
"Português Brasileiro",
"British English",
"Νέα Ελληνικά",
"български език",
"Català",
"正體中文",
"Čeština",
"Cymraeg",
"Dansk",
"Nederlands",
"Suomi",
"eesti keel",
"Euskara",
"Français",
"Gaeilge",
"Gàidhlig",
"Galego",
"ქართული",
"Deutsch",
"עברית",
"hrvatski",
"Magyar",
"հայերեն",
"íslenska",
"Bahasa Indonesia",
"Italiano",
"日本語",
"한국어",
"lietuvių",
"Монгол хэл",
"Melayu",
"Bokmål",
"Nynorsk",
"Қазақ тілі",
"ភាសាខ្មែរ",
"नेपाली",
"Occitan",
"فارسی",
"Polski",
"Português",
"ਪੰਜਾਬੀ",
"Română",
"Русский",
"简体中文",
"සිංහල",
"српски",
"Slovensky",
"slovenščina",
"کوردیی سۆرانی",
"Español",
"Svenska",
"తెలుగు",
"Türkçe",
"украї́нська мо́ва",
"tiếng Việt",
"Walon",
static struct {
const char iso[6];
const char name[34];
BOOL isRightToLeft;
} const language_map[] = {
{ "auto", N_("Auto"), NO },
{ "en", "American English", NO },
{ "ar", "عربي", YES },
{ "bn", "বাংলা", NO },
{ "pt_BR", "Português Brasileiro", NO },
{ "en_GB", "British English", NO },
{ "el", "Νέα Ελληνικά", NO },
{ "bg", "български език", NO },
{ "ca", "Català", NO },
{ "zh_TW", "正體中文", NO },
{ "cs", "Čeština", NO },
{ "cy", "Cymraeg", NO },
{ "da", "Dansk", NO },
{ "nl", "Nederlands", NO },
{ "fi", "Suomi", NO },
{ "et", "eesti keel", NO },
{ "eu", "Euskara", NO },
{ "fr", "Français", NO },
{ "ga", "Gaeilge", NO },
{ "gd", "Gàidhlig", NO },
{ "gl", "Galego", NO },
{ "ka", "ქართული", NO },
{ "de", "Deutsch", NO },
{ "he", "עברית", YES },
{ "hr", "hrvatski", NO },
{ "hu", "Magyar", NO },
{ "hy", "հայերեն", NO },
{ "is", "íslenska", NO },
{ "id", "Bahasa Indonesia", NO },
{ "it", "Italiano", NO },
{ "ja", "日本語", NO },
{ "ko", "한국어", NO },
{ "lt", "lietuvių", NO },
{ "mn", "Монгол хэл", NO },
{ "ms", "Melayu", NO },
{ "nb", "Bokmål", NO },
{ "nn", "Nynorsk", NO },
{ "kk", "Қазақ тілі", NO },
{ "km", "ភាសាខ្មែរ", NO },
{ "ne", "नेपाली", NO },
{ "oc", "Occitan", NO },
{ "fa", "فارسی", YES },
{ "pl", "Polski", NO },
{ "pt_PT", "Português", NO },
{ "pa", "ਪੰਜਾਬੀ", NO },
{ "ro", "Română", NO },
{ "ru", "Русский", NO },
{ "zh_CN", "简体中文", NO },
{ "si", "සිංහල", NO },
{ "sr", "српски", NO },
{ "sk", "Slovensky", NO },
{ "sl", "slovenščina", NO },
{ "ckb", "کوردیی سۆرانی", YES },
{ "es", "Español", NO },
{ "sv", "Svenska", NO },
{ "te", "తెలుగు", NO },
{ "tr", "Türkçe", NO },
{ "uk", "украї́нська мо́ва", NO },
{ "vi", "tiếng Việt", NO },
{ "wa", "Walon", NO }
};
static NSString* VLCSPrefsToolbarIdentifier = @"Our Simple Preferences Toolbar Identifier";
......@@ -562,10 +502,10 @@ static inline const char * __config_GetLabel(vlc_object_t *p_this, const char *p
NSUInteger sel = 0;
const char *pref = NULL;
pref = [[[NSUserDefaults standardUserDefaults] objectForKey:@"language"] UTF8String];
for (int x = 0; ppsz_language[x] != NULL; x++) {
[_intf_languagePopup addItemWithTitle:toNSStr(ppsz_language_text[x])];
for (int x = 0; x < ARRAY_SIZE(language_map); x++) {
[_intf_languagePopup addItemWithTitle:toNSStr(language_map[x].name)];
if (pref) {
if (!strcmp(ppsz_language[x], pref))
if (!strcmp(language_map[x].iso, pref))
sel = x;
}
}
......@@ -914,7 +854,15 @@ static inline void save_string_list(intf_thread_t * p_intf, id object, const cha
if (_intfSettingChanged) {
NSUInteger index = [_intf_languagePopup indexOfSelectedItem];
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
[defaults setObject:toNSStr(ppsz_language[index]) forKey:@"language"];
[defaults setObject:toNSStr(language_map[index].iso) forKey:@"language"];
if (index == 0) { // Automatic handling of right to left
[defaults removeObjectForKey:@"NSForceRightToLeftWritingDirection"];
[defaults removeObjectForKey:@"AppleTextDirection"];
} else {
[defaults setBool:language_map[index].isRightToLeft forKey:@"NSForceRightToLeftWritingDirection"];
[defaults setBool:language_map[index].isRightToLeft forKey:@"AppleTextDirection"];
}
[defaults synchronize];
config_PutInt(p_intf, "metadata-network-access", [_intf_artCheckbox state]);
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment