【发布时间】:2015-12-17 14:24:33
【问题描述】:
我已经用谷歌搜索了几个小时,但没有找到针对以下问题的建议(使用 Swift)。
我在许多应用程序中看到了从应用程序内部选择语言的选项,如下所示:
(来源:unity3d.com)
我想实现类似的东西,但在实现它时遇到了麻烦。我已经本地化了我的应用程序并设置了我的 Localizable.strings 文件。我想它与存储在 NSUserDefaults 中选择的语言有关,但是一旦选择了语言,我怎样才能让应用程序使用适当的 Localizable.strings 文件?或者这是错误的处理方式?
其他人是如何在 Swift 中成功实现此功能的?
【问题讨论】:
-
维护一个包含所有这些语言的 plist 文件,因为您已经完成了本地化,只需使用用户选择的语言加载 plist。
-
感谢您的回复。你能再详细一点吗?例如,假设我有一个名为 languageChosen 的变量并将其设置为“French”,我将如何使用 plist 文件来调用正确的 Localizable.strings 文件?
-
只需加载 plist NSString *path = [[NSBundle mainBundle] bundlePath]; NSString *customPlistPath = [路径 stringByAppendingPathComponent:@"French.plist"]; NSDictionary *plistData = [NSDictionary dictionaryWithContentsOfFile:customPlistPath];
-
啊,我明白了,谢谢。不过,使用这种方法,我假设我不能直接使用情节提要在标签上设置文本。我必须使用相关的 plist 以编程方式设置每个标签的文本,对吗?
标签: ios swift localization localizable.strings