gpt4 book ai didi

ios - 针对区域本地化 iPhone 应用程序

转载 作者:行者123 更新时间:2023-11-28 19:17:39 26 4
gpt4 key购买 nike

我有一个应用程序,无论语言如何,都以英语显示所有内容。在应用程序的产品部分中,产品内容基于 plist 显示。可供购买的产品取决于位置,并非所有产品在每个市场都有售。

在我的模拟器设置中,我将我的语言设置为英语,并将我的区域格式设置为新加坡

在我加载已本地化的 plist 之上,我首先做一个日志来检查我是否确实将 SG(新加坡)视为我的区域。

NSString *locale = [[NSLocale currentLocale] objectForKey: NSLocaleCountryCode];
NSLog(@"LOCALE: %@", locale);
if([locale isEqualToString:@"SG"]){
NSLog(@"singapore do something?");
productCategory = [[NSArray alloc] initWithContentsOfFile:[[NSBundle mainBundle]
pathForResource:@"Products" ofType:@"plist"]];
}

当前结果显示我的日志语句记录 LOCALE:SG,这是预期的,但是我的新加坡特定内容未加载。

我已经尝试清理项目,并从模拟器中删除应用程序。

这就是我的 plist 文件在我的项目导航器中的显示方式 Products.plist image

我做错了什么导致我的本地化 plist 无法显示?

最佳答案

本地化(从应用程序包中的相关语言文件夹加载翻译资源的过程)完全基于语言设置。所以pathForResource只关心语言设置,忽略区域格式设置。

区域格式设置会影响字符串和区域设置相关数据类型之间的转换(双向:解析输入和格式化输出)。例如,如果您将 NSDate 转换为字符串以供显示,根据区域格式设置,您可能会得到日期之前的月份(如美国)或相反日期(如英国)。

[NSLocale currentLocale] 指的是区域格式,所以你只是在调试时看错了东西。

这里有更多关于此的信息:https://developer.apple.com/library/mac/documentation/MacOSX/Conceptual/BPInternational/BPInternational.html#//apple_ref/doc/uid/10000171i

编辑请参阅下面的评论,这似乎更复杂。当语言设置为中性语言(例如“en”而不是“en-US”)时,看起来 Region 确实会影响本地化。

关于ios - 针对区域本地化 iPhone 应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11213808/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com