一个国家的 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 多语言应用程序。 (比利时案例)的主要内容,如果未能解决你的问题,请参考以下文章

多语言/国家网络项目

android国家化(多语言版本APP)

多语言的测试经验分享

多语言应用开发中本地化信息对照表

ios最简单的多语言设置

java:jsp: ResourceBundle国际化多语言