如何在ios中为初学者本地化标签字符串

时间:2013-05-07 11:20:33

标签: ios localization label textfield

嗨,我非常关注ios上的本地化过程。

继承人我的理解,如何去项目资源管理器并为不同国家设置基本本地化,

如何制作字符串文件并将其设置为本地化为在基本本地化中选择的特定国家/地区之一

如简体中文

键值对以及如何对应单词     “HELLO WORLD”=“其他语言”; 与本地化的字符串文件

如果编译时编写hello world的简单标签的应用程序在中文模拟器中没有变为中文。

继承人,我认为我出错了。

我想我需要将屏幕上的字符串连接到我的本地化字符串文件中包含的字符串。

我为每种语言创建一个单独的字符串文件吗?

我希望制作一个非常简单的应用程序存根,其中只包含一些标签,这些标签被翻译成dif语言,因此我可以学习如何使其连接和工作,以便我可以在其他地方使用它。

有一个中文故事板,我必须做任何工作吗?还是留空?

经过几个小时的阅读文件,我似乎在圈子里走来走去,我对这个问题的苹果文档印象不深,认为它遗漏了一些东西,

2 个答案:

答案 0 :(得分:6)

对于本地化,您需要执行以下操作:

  1. 为每种语言添加不同的.strings文件
  2. 为每个语言文件添加Key值
  3. 使用:
  4. NSLocalizedString(yourKey, nil);

    [[NSBundle mainBundle] localizedStringForKey:(yourKey) value:@"" table:nil]
    

    获取传递密钥的本地化字符串。

    教程:

    1. Localization in iOS apps made simple
    2. iPhone Apps Localization Guide
    3. Preparing your iOS app for localization in Xcode

答案 1 :(得分:2)

做得很漂亮

对于Swift来说,有更好的解决方案可以让您的本地化更好 - 而不是那么混乱。您可以使用以下扩展名:

extension String {

    var localized: String {
        return NSLocalizedString(self, tableName: nil, bundle: NSBundle.mainBundle(), value: "", comment: "")
    }


    func localizedWithComment(comment:String) -> String {
        return NSLocalizedString(self, tableName: nil, bundle: NSBundle.mainBundle(), value: "", comment: comment)
    }
}

现在,只要您想要本地化的东西,您就可以将其作为字符串属性请求:

let text = "my-localization-key".localized

它将根据您当前的系统语言/区域设置获得本地化字符串。

很少提示

如果您有更大的项目,那么值得深入了解管理人员,为您处理本地化导出/添加新语言。例如我使用Crowdin - 但你可能会发现一些服务更具吸引力。很棒的是,您不必手动完成所有操作,只需插入键/翻译并为您完成导出,即可获得所有语言。

另外,请按照密钥的正确命名。基于我所见过的人/我的经验,我认为通过逻辑组件/模块命名密钥是明智的,例如:

"Profile.NavigationBar.Title" = "Profile";
"Profile.NavigationBar.Button.Edit" = "Edit;

通过这种方式,您可以立即看到您会找到它的位置和位置。

最后,由于您可以执行的错误数量,一般来说本地化是巨大的痛苦。有一个生成器可以从本地化创建实际代码,因此编译器会为您检查它。 You can get it on GitHub

祝你好运!