shi*_*jin 14 iphone performance internationalization
有没有办法在运行时更改应用程序语言?
因此,更改后NSLocalizedString
立即返回新语言的字符串.
我现在正在做的是使用以下代码更改语言:
- (void)onChangeLanguage: (id)sender
{
NSArray *lang = [NSArray arrayWithObjects:((InfoWhatever *)sender).language, nil];
[[NSUserDefaults standardUserDefaults] setObject:lang forKey:@"AppleLanguages"];
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
NSArray *languages = [defaults objectForKey:@"AppleLanguages"];
NSString *currentLanguage = [languages objectAtIndex:0];
NSLog(@"Current language: %@", currentLanguage);
}
Run Code Online (Sandbox Code Playgroud)
只有在重新启动应用程序后,语言才会更改.
小智 11
NSUserDefaults* userDefaults = [NSUserDefaults standardUserDefaults];
NSMutableArray* languages = [userDefaults objectForKey:@"AppleLanguages"];
[languages insertObject:@"de" atIndex:0]; // ISO639-1
[[NSUserDefaults standardUserDefaults] synchronize];
Run Code Online (Sandbox Code Playgroud)
从应用程序中选择特定语言的技巧是强制NSLocalizedString根据所选语言使用特定的语言,
这是我为此撰写的帖子http://learning-ios.blogspot.com/2011/04/advance-localization-in-ios-apps.html
这是一个示例应用程序的代码https://github.com/object2dot0/Advance-Localization-in-ios-apps
你能行的 .这是http://aggressive-mediocrity.blogspot.com/2010/03/custom-localization-system-for-your.html的方式
简介下载并向项目添加2个文件
http://dl.dropbox.com/u/2917666/LocalizationSystem/LocalizationSystem.h
http://dl.dropbox.com/u/2917666/LocalizationSystem/LocalizationSystem.m
2
#import "LocalizationSystem.h"
3
- (IBAction)btnEnglishClicked:(id)sender {
LocalizationSetLanguage(@"en");
}
Run Code Online (Sandbox Code Playgroud)
4设置上述语言后
AMLocalizedString(@"Key", nil)
Run Code Online (Sandbox Code Playgroud)
多数民众赞成.
我怀疑你能做到这一点,即使设置应用程序也无法做到这一点.
(当您在"设置"应用程序中更改语言时,屏幕变黑,并显示"设置语言..."和进度轮.经过漫长的等待,您回到了Springboard.它几乎看起来像手机重新启动.)
归档时间: |
|
查看次数: |
31428 次 |
最近记录: |