一个国家的 iPhone 多语言应用程序。 (比利时案例)
Posted
技术标签:
【中文标题】一个国家的 iPhone 多语言应用程序。 (比利时案例)【英文标题】:iPhone multilingual App in a single Country. (belgium case) 【发布时间】:2011-03-02 11:11:01 【问题描述】:关于应用商店部署的问题,
在比利时(以及许多其他国家/地区),使用 3 种语言(法语、荷兰语、德语)。 为此,我们开发了这 3 种语言的可本地化应用,并制作了 3 个描述页面。
这 3 个描述页面在 iTunes 中的显示效果取决于操作系统语言。 (太好了!)
但在 Internet 上,我们必须在 3 个不同的国家(法国、德国、荷兰)部署应用程序,并访问正确的国家应用商店才能看到良好语言的描述。 因此,比利时人必须去他们语言国家的应用商店(不是比利时应用商店)才能理解描述。
有没有办法在一个独特的比利时应用商店中提供 3 种语言? (以查看系统语言为例,或在应用页面提出3个描述)
希望我的英语说得够清楚!
更多: 当我去 Mac Store 时,URL 显示 /be-fr/ 表示法语,/be-nl/ 表示荷兰语,因此 MacBook 描述的语言会发生变化。 但是当我看appstore URL时,我只能看到/be/
更多: 取决于我在应用商店中来自哪里,我得到了具有相同 URL“/be/”的“屏幕截图”或“Captures d'écran”(意思相同),因此可以检测到该语言!我想要为讲荷兰语的比利时人展示良好的描述。
谢谢
【问题讨论】:
【参考方案1】:不。每个国家/地区只有一种语言。
为什么不在同一页上写所有的文本?制作 3 个部分。
【讨论】:
【参考方案2】:用户在设备中选择她/他的首选语言。
所以你可以这样做:
static NSString *const kFrenchLocaleIdentifier = @"fr_FR";
static NSString *const kEnglishLocaleIdentifier = @"en_US";
static NSString *const kDeutschLocaleIdentifier = @"de_DE";
static const NSString *localizedDictionaryPrefix = @"StringLocalizable-";
if ([[[NSLocale preferredLanguages] firstObject] isEqualToString:@"de"])
self.currentLocaleIdentifier = [[NSString alloc] initWithString:kDeutschLocaleIdentifier];
else if ([[[NSLocale preferredLanguages] firstObject] isEqualToString:@"fr"])
self.currentLocaleIdentifier = [[NSString alloc] initWithString:kFrenchLocaleIdentifier];
else//en
self.currentLocaleIdentifier = [[NSString alloc] initWithString:kEnglishLocaleIdentifier];
那么您可以继续对您的位置文件使用这种本地化方法。
_localizedDictionary = [[NSDictionary alloc] initWithContentsOfFile:[[NSBundle mainBundle] pathForResource:[NSString stringWithFormat:@"%@%@", localizedDictionaryPrefix, currentLocaleIdentifier] ofType:@"plist"]];
您可以创建 StringLocalizable-fr_FR.plist、StringLocalizable-de_DE.plist、StringLocalizable-en_US.plist 文件来保存翻译的单词。
【讨论】:
以上是关于一个国家的 iPhone 多语言应用程序。 (比利时案例)的主要内容,如果未能解决你的问题,请参考以下文章