日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 综合教程 >内容正文

综合教程

iOS之多语言开发

發布時間:2024/9/5 综合教程 34 生活家
生活随笔 收集整理的這篇文章主要介紹了 iOS之多语言开发 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

前要:iOS多語言開發,可以分為兩種

系統設置,通過在手機設置中切換語言,進而改變app中語言;
app中手動切換,用戶在app中,手動選擇語言,進行切換。

一.添加需要的語言

不管使用哪種方法,都需要先添加語言,這一點是相同的。

在項目的project中添加語言

添加完成后是這樣的

創建Localizable.strings 文件

文件名是 Localizable,也可以更改其它名,后面會講到

上面都完成后,項目是這樣的

在每個語言的.string文件中,把項目中的所有需顯示的文字,按照key-value 的形式放進去。

至此,所有的前置工作都完成了。

二. 代碼部分

1.使用系統設置切換語言

使用系統設置切換語言,比較簡單,直接上代碼:

 1     NSArray *array = @[@"中文",@"英文",@"法語",@"韓語"];
 2     for (int i=0; i<4; i++) {
 3         UIButton *btn = [UIButton buttonWithType:UIButtonTypeCustom];
 4         btn.frame = CGRectMake(100, 200+70*i, 200, 40);
 5         btn.backgroundColor = [UIColor orangeColor];
 6         
 7         //第一種:使用系統設置語言
 8         [btn setTitle:NSLocalizedString(array[i], nil) forState:UIControlStateNormal];
 9         
10         [btn setTitleColor:[UIColor redColor] forState:UIControlStateNormal];
11         [btn addTarget:self action:@selector(btnClick:) forControlEvents:UIControlEventTouchUpInside];
12         btn.tag = i+10;
13         [self.view addSubview:btn];
14     }

直接使用NSLocalizedString(key, comment)方法,“key”就是Localizable.strings文件中的我們設置的key, “comment”寫niu即可

如此,只要在手機 設置-通用-語言與地區 中,切換語言,再打開app,app中文字就會切換成對應的語言。

2.app中手動切換語言

- (void)viewDidLoad {
    [super viewDidLoad];
    
    NSArray *array = @[@"中文",@"英文",@"法語",@"韓語"];
    for (int i=0; i<4; i++) {
        UIButton *btn = [UIButton buttonWithType:UIButtonTypeCustom];
        btn.frame = CGRectMake(100, 200+70*i, 200, 40);
        btn.backgroundColor = [UIColor orangeColor];
        
        //第一種:使用系統設置語言
        //[btn setTitle:NSLocalizedString(array[i], nil) forState:UIControlStateNormal];
        
        //第二種,app中手動選擇語言
        [btn setTitle:KLanguage(array[i]) forState:UIControlStateNormal];
        
        [btn setTitleColor:[UIColor redColor] forState:UIControlStateNormal];
        [btn addTarget:self action:@selector(btnClick:) forControlEvents:UIControlEventTouchUpInside];
        btn.tag = i+10;
        [self.view addSubview:btn];
    }
    
    
}

-(void)btnClick:(UIButton *)btn{
    
    
    
    NSInteger tag = btn.tag-10;
    if (tag==0) {
        [[NSUserDefaults standardUserDefaults] setObject:@"zh-Hans" forKey:@"appLanguage"];
    }else if(tag==1){
        [[NSUserDefaults standardUserDefaults] setObject:@"en" forKey:@"appLanguage"];
    }else if (tag==2){
        [[NSUserDefaults standardUserDefaults] setObject:@"fr" forKey:@"appLanguage"];
    }else{
        [[NSUserDefaults standardUserDefaults] setObject:@"ko" forKey:@"appLanguage"];
    }
    [[NSUserDefaults standardUserDefaults]synchronize];

    UIWindow *window = [UIApplication sharedApplication].delegate.window;
    [UIView animateWithDuration:0.4f animations:^{
        CGAffineTransform curent =  window.transform;
        CGAffineTransform scale = CGAffineTransformScale(curent, 0.0001,0.0001);
        [window setTransform:scale];
    } completion:^(BOOL finished) {
        exit(0);
    }];
    
}

每次選擇語言后,保存到本地

這里用了一個宏:

#define KLanguage(key)  [[NSBundle bundleWithPath:[[NSBundle mainBundle] pathForResource:[NSString stringWithFormat:@"%@",[[NSUserDefaults standardUserDefaults] objectForKey:@"appLanguage"]] ofType:@"lproj"]] localizedStringForKey:key value:nil table:@"Localizable"]

"appLanguage":將選擇的語言保存在本地,本地偏好設置保存用的key,

"Localizable":這就是我們創建的Localizable.strings文件名。也可以用其它名字,只要與宏里的保持一致即可。

每種語言對應的字符串:

首次進入app,使用系統默認的語言:

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
    //首次進入app,設置語言。自己根據實際情況,設置剛進入app的默認語言
    NSString *currentLanguage = [[NSUserDefaults standardUserDefaults]objectForKey:@"appLanguage"];
    if (!currentLanguage) {
        //獲得當前語言
        NSArray *languages = [NSLocale preferredLanguages];
        NSString *language = [languages objectAtIndex:0];
        if([language hasPrefix:@"en"]){
            [[NSUserDefaults standardUserDefaults] setObject:@"en" forKey:@"appLanguage"];
        }else if([language hasPrefix:@"zh-Hans"]){
            [[NSUserDefaults standardUserDefaults] setObject:@"zh-Hans" forKey:@"appLanguage"];
        }else{
            [[NSUserDefaults standardUserDefaults] setObject:@"en" forKey:@"appLanguage"];
        }
        [[NSUserDefaults standardUserDefaults]synchronize];
    }
    
    
    [self.window makeKeyAndVisible];
    
    return YES;
}

代碼演示:

進入app:

點擊英文,重新進入app:

點擊韓語:

總結

以上是生活随笔為你收集整理的iOS之多语言开发的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 国产免费一区二区 | 黄色免费在线播放 | 二区在线观看 | 国产精品第二页 | 波多野结衣高清电影 | 欧美日韩黑人 | 小辣椒福利视频导航 | 人妻系列一区 | 聚色屋| 在线不卡日本 | 99国产精| 黄色在线观看视频网站 | 黄色av高清 | 奇米激情 | 精品国产欧美一区二区三区成人 | 极品91尤物被啪到呻吟喷水 | 欧美三级欧美成人高清 | 国产网站精品 | 美女视频毛片 | 六月丁香在线视频 | 97干干干 | 国产三级自拍 | 综合精品在线 | 亚洲狼人社区 | 蜜臀av免费一区二区三区水牛 | 欧美精品在线看 | 日韩欧美aⅴ综合网站发布 国产成人一区二区三区小说 | 超碰在线观看91 | 免费成人深夜夜视频 | 日本黄页视频 | xxxxx在线视频| 高清成人免费视频 | 色哟哟免费 | 日韩av资源在线观看 | 国产三级在线播放 | 天堂av电影在线观看 | 98成人网| 国产99精品视频 | 黄色仓库av | 欧美aaaaaaa| 黄色特级毛片 | 自拍偷拍精品 | 日本熟妇一区二区三区四区 | www.呦呦 | 午夜成年视频 | 黑人专干日本人xxxx | 欧美日韩国产精品 | 精品三区视频 | 91福利社在线观看 | 亚洲男女在线观看 | 特级免费毛片 | 欧美成人猛片aaaaaaa | 69视频在线看 | 91美女免费看| 99久久久无码国产精品性 | 久久久老熟女一区二区三区91 | 成人毛片视频在线观看 | 伊人精品一区二区三区 | 97精品一区二区视频在线观看 | 中文字幕色网 | 久久调教 | 深夜的私人秘书 | 综合色视频| 亚洲va国产va天堂va久久 | 久久精品aaaaaa毛片 | 国产免费a级片 | 国产精品伦一区二区三区 | 欧美一区二区三区久久妖精 | 美女被猛网站 | 免费无遮挡在线观看视频网站 | 亚洲精品lv| 日韩欧美中文字幕在线观看 | 国产鲁鲁视频在线观看免费 | 成人av一区二区三区 | 国产欧美日韩三区 | 精品一区二区三区久久 | 操白虎逼 | 欧美日韩综合精品 | 美女视频黄频视频大全 | 成人亚洲电影 | jizz在线观看视频 | 污网站在线播放 | 亚洲中文字幕一区二区在线观看 | 男女搞鸡网站 | 国产av自拍一区 | 永久免费成人代码 | 亚洲精品在线视频 | 涩涩视频网站在线观看 | 夫妻毛片 | 国产情趣视频 | 女人下部全棵看视频 | 日本成人在线播放 | 麻豆视频91 | 国产91精品久久久 | 午夜爱爱免费视频 | 国产视频在线观看网站 | 17草在线 | 黄色片www| 国产在线无 |