[geany/geany-osx] 63d8c3: Improve locale detection by checking what locales we have available
Jiří Techet
git-noreply at xxxxx
Sat Oct 12 13:26:49 UTC 2019
Branch: refs/heads/master
Author: Jiří Techet <techet at gmail.com>
Committer: Jiří Techet <techet at gmail.com>
Date: Sat, 12 Oct 2019 13:26:49 UTC
Commit: 63d8c3deab74dc960994d6f5a55cb16b86afe058
https://github.com/geany/geany-osx/commit/63d8c3deab74dc960994d6f5a55cb16b86afe058
Log Message:
-----------
Improve locale detection by checking what locales we have available
Modified Paths:
--------------
LauncherGtk3/geany/geany/main.m
Modified: LauncherGtk3/geany/geany/main.m
50 lines changed, 43 insertions(+), 7 deletions(-)
===================================================================
@@ -1,23 +1,59 @@
#import <Foundation/Foundation.h>
+NSString *get_locale(NSString *bundle_data)
+{
+ NSString *fallback = @"en_US.UTF-8";
+
+ BOOL ignore_locale = [[NSFileManager defaultManager] fileExistsAtPath: [@"~/.config/geany/ignore_locale" stringByExpandingTildeInPath]];
+ if (ignore_locale)
+ {
+ return fallback;
+ }
+
+ NSArray<NSString *> *langs = [NSLocale preferredLanguages];
+ for (NSString *lng in langs)
+ {
+ BOOL found = NO;
+ NSString *lang;
+ NSArray<NSString *> *comps = [lng componentsSeparatedByString:@"-"];
+ if (comps.count > 1)
+ {
+ lang = [NSString stringWithFormat:@"%@_%@", comps[0], comps[1]];
+ NSString *path = [NSString stringWithFormat:@"%@/locale/%@", bundle_data, lang];
+ found = [[NSFileManager defaultManager] fileExistsAtPath:path];
+ }
+ if (!found && comps.count > 0)
+ {
+ NSString *lng = comps[0];
+ NSString *path = [NSString stringWithFormat:@"%@/locale/%@", bundle_data, lng];
+ found = [[NSFileManager defaultManager] fileExistsAtPath:path];
+ if (found && comps.count == 1)
+ {
+ lang = lng;
+ }
+ }
+ if (found)
+ {
+ return [lang stringByAppendingString:@".UTF-8"];
+ }
+ }
+
+ return fallback;
+}
+
+
int run_geany()
{
NSString *bundle_dir = [[NSBundle mainBundle] bundlePath];
NSString *bundle_contents = [bundle_dir stringByAppendingPathComponent: @"Contents"];
NSString *bundle_res = [bundle_contents stringByAppendingPathComponent: @"Resources"];
NSString *bundle_lib = [bundle_res stringByAppendingPathComponent: @"lib"];
- //NSString *bundle_bin = [bundle_res stringByAppendingPathComponent: @"bin"];
NSString *bundle_data = [bundle_res stringByAppendingPathComponent: @"share"];
NSString *bundle_etc = [bundle_res stringByAppendingPathComponent: @"etc"];
- NSString *lang = @"en_US.UTF-8";
- bool ignore_locale = [[NSFileManager defaultManager] fileExistsAtPath: [@"~/.config/geany/ignore_locale" stringByExpandingTildeInPath]];
- if (!ignore_locale)
- {
- lang = [[[NSLocale currentLocale] localeIdentifier] stringByAppendingString:@".UTF-8"];
- }
+ NSString *lang = get_locale(bundle_data);
//set environment variables
//see https://developer.gnome.org/gtk3/stable/gtk-running.html
--------------
This E-Mail was brought to you by github_commit_mail.py (Source: https://github.com/geany/infrastructure).
More information about the Commits
mailing list