1. 多語言切換範例程式碼
GitHub:
https://github.com/f40706/change_language_1/tree/main
2. 範例程式碼結果圖


範例程式碼中英文翻譯表
英文
“PressedEnglish" = “Pressed English";
“PressedChinese" = “Pressed Chinese";
中文
“PressedEnglish" = “點擊英文";
“PressedChinese" = “點擊中文";
2. 新增多語言方法
實際功能,可以下載GitHub範例








這樣就新增完成囉
3. 程式碼
核心程式碼
-(void) initLanguage: (NSString*) selectLanguage { NSString *localeLanguageCode = [[[NSBundle mainBundle] preferredLocalizations] firstObject]; NSLog(@"localeLanguageCode-> %@",localeLanguageCode); if([selectLanguage isEqual: @"en"]) { NSString *path = [[NSBundle mainBundle]pathForResource:@"en" ofType:@"lproj"]; bundle_language = [NSBundle bundleWithPath:path]; } else if([selectLanguage isEqual: @"zh"]) { NSString *path = [[NSBundle mainBundle]pathForResource:@"zh-Hant" ofType:@"lproj"]; bundle_language = [NSBundle bundleWithPath:path]; } } -(NSString*) getStringForKey:(NSString*)key withTable:(NSString*)table { NSString *string = @""; if(bundle_language) { string = NSLocalizedStringFromTableInBundle(key, table, bundle_language, @""); return string; } string = NSLocalizedStringFromTable(key, table, @""); return string; }
呼叫方式
- (IBAction)onEnglishPressed:(UIButton *)sender { [_context_label setText:[_delegate getStringForKey:@"PressedEnglish" withTable:@""]]; } - (IBAction)onChinesePressed:(UIButton *)sender { [_context_label setText:[_delegate getStringForKey:@"PressedChinese" withTable:@""]]; } - (IBAction)onLanguageChangePressed:(UIButton *)sender { if(_curLanguage == 1) { [_delegate initLanguage:@"en"]; _curLanguage = 0; [_curLanguageBtn setTitle:@"當前語言:英文" forState:UIControlStateNormal]; } else { [_delegate initLanguage:@"zh"]; _curLanguage = 1; [_curLanguageBtn setTitle:@"當前語言:中文" forState:UIControlStateNormal]; } } - (void)viewDidLoad { [super viewDidLoad]; _delegate = (AppDelegate *)[[UIApplication sharedApplication] delegate]; _curLanguage = 0; [_delegate initLanguage:@"en"]; }
Objective-C
訂閱Codeilin的旅程,若有最新消息會通知。
廣告
發表迴響