我正在创建一个应用程序,我需要将所有支持的语言从库中列出到 tableview 中。这样用户就无需进入设置并更改语言。如果他愿意,他可以直接从应用程序更改它。我已经搜索了很多,但不知道它是否可能。所以请任何人都可以帮我解决这个问题。
提前致谢
我正在创建一个应用程序,我需要将所有支持的语言从库中列出到 tableview 中。这样用户就无需进入设置并更改语言。如果他愿意,他可以直接从应用程序更改它。我已经搜索了很多,但不知道它是否可能。所以请任何人都可以帮我解决这个问题。
提前致谢
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];
}
您可以为应用程序生成不同语言的 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 文件中的值。
希望它适用于语言全球化。谢谢。
制作一个 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 选择的翻译值将被显示。