我在 App Store 中有一个本地化字符串文件的应用程序。问题是我只想用英文的字符串文件提交更新,但是当我从 xcode 安装应用程序时(只用英文的字符串文件)在已经安装了应用程序的设备中(来自 App Store)我可以看到除英语以外的其他语言的字符串。
如果我在没有安装应用程序的设备中安装应用程序,我只能看到英文字符串,而不管设备上选择的语言。
我知道一种选择是更改字符串文件的名称,但我想知道是否有更聪明的方法来做到这一点。
非常感谢
我在 App Store 中有一个本地化字符串文件的应用程序。问题是我只想用英文的字符串文件提交更新,但是当我从 xcode 安装应用程序时(只用英文的字符串文件)在已经安装了应用程序的设备中(来自 App Store)我可以看到除英语以外的其他语言的字符串。
如果我在没有安装应用程序的设备中安装应用程序,我只能看到英文字符串,而不管设备上选择的语言。
我知道一种选择是更改字符串文件的名称,但我想知道是否有更聪明的方法来做到这一点。
非常感谢
问题很可能是您的旧 localized.strings 文件仍在其他位置。当您使用本地化添加或更改语言时,字符串文件可能会移动到不同的文件夹。当增量更新发生时,它会获取新的字符串文件,但无法删除旧的,因为它位于不同的位置。但是,该位置位于搜索树的较高位置,因此当应用程序查找字符串时会首先找到该位置。
一种可能的解决方案(虽然不是一个好的解决方案)是将您的本地化.strings 文件重命名为不同的名称,然后在您之前使用本地化字符串的所有位置使用本地化字符串从表命令,将您的新文件命名为原始表。这不是一个很好的解决方案,但它应该可以工作。
如果您只需要一种语言,另一种可能的解决方案是确保字符串文件存储在与先前版本完全相同的捆绑位置中。
在调用 UIApplicationMain() 之前,我在 main.m 文件中解决了这一行的问题:
[[NSUserDefaults standardUserDefaults] setObject:[NSArray arrayWithObject:@"en"] forKey:@"AppleLanguages"];
基本上,它强制该应用程序仅以英语提供。