我正在创建一个应用程序,我需要将所有支持的语言从库列入tableview。因此,用户无需转到设置并更改语言。如果他愿意,他可以直接从app更改它。我搜索了很多,但不知道它是否可能。所以任何人都可以帮助我。
提前致谢
答案 0 :(得分:0)
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
NSArray *languages = [defaults objectForKey:@"AppleLanguages"];
这将为Apple提供首选语言。但我不知道支持的语言。可能这是您要搜索的列表
for (NSString *language in languages) {
NSLocale *locale = [[NSLocale alloc] initWithLocaleIdentifier:language] ;
displayname = [locale displayNameForKey:NSLocaleIdentifier value:language];
}
答案 1 :(得分:0)
您可以为应用程序生成不同语言的pList文件。
我正在向您解释本地化语言的示例代码。
NSDictionary *dictLang;
-(void)localization_language{
NSString *errorDesc = nil;
NSPropertyListFormat format;
NSString *rootPath;
if (lang == 1) {
rootPath = [[NSBundle mainBundle] pathForResource:@"FRA"
ofType:@"plist"];
}
else if(lang == 0){
rootPath = [[NSBundle mainBundle] pathForResource:@"ENG"
ofType:@"plist"];
}
NSData *plistXML = [[NSFileManager defaultManager] contentsAtPath:rootPath];
dictLang = (NSDictionary *)[NSPropertyListSerialization propertyListFromData:plistXML mutabilityOption:NSPropertyListMutableContainersAndLeaves format:&format errorDescription:&errorDesc];
NSLog(@"PLIST retrive:%@",plistXML);
if (!dictLang) {
NSLog(@"Error reading plist: %@, format: %d", errorDesc, format);
}
}
此代码根据lang变量查找pList文件。 0为法国& 1英语。
然后,从字典中设置值。
lbl1.text =[dictLang objectForKey:@"Key1"];
lbl2.text =[dictLang objectForKey:@"Key2"];
它将显示存储在pList文件中的值。
希望它能用于语言全球化。 感谢。
答案 2 :(得分:0)
创建一个Language.plist文件并制作语言词典,将默认文本保留为键
然后在Defines.h中定义这个宏
#define LocalizedString(key) [[[NSDictionary dictionaryWithContentsOfFile:[[NSBundle mainBundle] pathForResource:@"Language" ofType:@"plist"]] valueForKey:[NSString stringWithFormat:@"%d",LANGUAGE_ID]] valueForKey:key]
以编程方式设置您的语言ID并使用LocalizedString(@“Hi”)
根据lang Id选择翻译的关键值hi将显示。