【iOS开发】多语言国际化如何快速找到不同语言的key

2019-11-20  本文已影响0人  我是孙小白

app国际化配置技巧这里就不多做描述了, 一个比较全面的传送门: iOS开发技巧-国际化(Localization),只看一篇就够了

今天主要记录多语言配置时候key的获取。

通常我们处理app语言, 多是跟随系统语言,所以需要读取系统语言,判断匹配后根据语言文件的key,调用对应的语言。

#pragma mark - 语言处理

- (void)checkLanguages{
    
    NSArray *languages = [[NSUserDefaults standardUserDefaults] objectForKey:@"AppleLanguages"];
    NSString *language = [languages objectAtIndex:0];
    
    if ([language hasPrefix:@"zh"]){
       [[NSUserDefaults standardUserDefaults] setObject:@"zh-Hans" forKey:@"appLanguage"];
    }else if ([language hasPrefix:@"ru"]){
        [[NSUserDefaults standardUserDefaults] setObject:@"ru" forKey:@"appLanguage"];
    }else{
       [[NSUserDefaults standardUserDefaults] setObject:@"en" forKey:@"appLanguage"];
    }

    [[NSUserDefaults standardUserDefaults] synchronize];
} 
// 获取本地化语言
#define LocalString(key) [[NSBundle bundleWithPath:[[NSBundle mainBundle] pathForResource:[NSString stringWithFormat:@"%@",[[NSUserDefaults standardUserDefaults] objectForKey:@"appLanguage"]] ofType:@"lproj"]] localizedStringForKey:(key) value:nil table:@"Localizable"]

那这里就有一个问题, 对于一些不熟悉的语言, 如何知道localizedStringForKey的key值呢?

选中某一个语言:

打开右侧属性栏:

XX.lproj ,这里的XX就是我们要了解key, 拿到这个, 然后根据系统语言, 把这个key值存到NSUserDefaults里面就可以了。

上一篇 下一篇

猜你喜欢

热点阅读