app的国际化和本地化(九)——字符串文件的自我管理(一)


浏览:314 次

版本记录

版本号

时间

1.0版

2018.05.13

前言

许多APP都有国际版本,这是一些大公司的产品常见的版本,如Facebook、微信等。那么,我们需要对我们的APP进行哪些更改才能实现国际化?接下来的几篇文章将一起探讨APP的国际化和本地化。如果你感兴趣,可以阅读以上文章。

回顾

上一篇文章主要介绍了测试您的国际app。本文主要介绍了自己管理字符串文件。

自己管理字符串文件

如果要生成并翻译存储在项目文件夹中的字符串文件,请遵循本附录中的步骤。在这种情况下,您可以添加支持的语言,生成字符串文件,并使用AppleGlot词汇表或其他过程本地化字符串文件。当您更改用户界面或向代码中添加面向用户的文本时,您有责任更新字符串文件。

如果要管理自己的字符串文件,请首先将要支持的语言添加到项目中,如中所述。

重要提示:或者,Xcode会自动生成字符串文件并将其添加到项目中,例如导出本地化版本、编辑XLIFF文件(其中包含字符串文件)以及导入它们,如中所述。

在Finder中查看语言文件夹

导入本地化或添加语言后,可以在Finder中查看不同的语言文件夹。在项目导航器中按组显示的本地化资源位于项目文件夹中的单独语言文件夹中。当您导出和导入本地化时,Xcode会为您管理这些文件夹。要在Finder中查看语言文件夹,请按住Control键并单击项目导航器中的项目,然后从快捷菜单中选择“在Finder显示”。

项目文件夹应包含名为Base的文件夹。lproj和其他具有lproj扩展的特定于语言的文件夹。语言文件夹的前缀是语言ID,如中所述。

基地。lproj文件夹包含所有内容。故事板或。开发语言中的xib文件。添加到项目中的语言文件夹包含每个语言的字符串文件。故事板或。项目中的xib文件。开发语言文件夹不包含。故事板和Xib文件,因为它们不需要用开发语言翻译。所有语言文件夹都包含一个InfoPlist Strings文件,用于本地化包属性,如app名称。任何其他本地化资源,例如从代码生成并使用的字符串文件,都显示在这些语言文件夹中。

例如,对于使用英语作为开发语言的一般iOSapp,Base。lproj文件夹包含Main_ iPad。故事板和Main.iPhone。故事板,而en。lproj文件夹包含InfoPlist.strings。如果添加了德语,Xcode将创建一个InfoPlist。字符串,Main_IPad。字符串和Main_ de Lproj文件夹。de.lproj文件夹中的文件包含需要翻译成德语的占位符文本。

对于使用英语作为开发语言的Macapp,文件结构可能类似于:

为代码中面向用户的文本创建字符串文件

如中所述,用NSLocalizedString宏替换包含面向用户的文本的字符串后,可以创建并本地化相应的字符串文件。

为面向用户的文本创建字符串文件

使用genstrings脚本创建Localizable的开发语言版本。字符串文件。

在终端上运行以下命令:

cd[项目文件夹]

查找.-name\*。m | xargs发电机组-o。

对于源文件中的每个NSLocalizedString宏,脚本将向Localizable添加注释。字符串文件作为键值对(使用该值的占位符文本),例如

/*马拉松距离*/

“RunningDistance”=“跑步距离”;

如果在代码中使用NSLocalizedString宏,键的值默认为该键。如果需要不同的行为,请使用其他NSLocalizedString宏中的一个,其中包含《基础函数》参考中描述的更多参数。

添加本地化。字符串文件到所有语言文件夹。

将文件添加到Xcode项目中,如中所述。当对话框出现时,不要添加本地化。字符串到基本本地化。

注意:如果Xcode警告您可本地化如果字符串文件看起来像Unicode(UTF-16),您可以使用文件检查器将其转换为Unicode(UTF-8)。要将文件转换为UTF-8,请在项目导航器中选择该文件并打开文件检查器。在文本设置部分,从文本编码弹出菜单中选择Unicode(UTF-8)。在出现的对话框中,单击“转换”。

本地化本地化。每个语言文件夹中的字符串文件。

例如,在en-in-lproj/Localizable中。字符串文件,输入RunningDistance键的英文翻译:

/*距离

相关资讯:
农产品电子商务向企业个人农产品电子贸易方向发展的效益

农产品电子商务向企业个人农产品电子贸易方向发展的效益

查看
Web 3.0技术的基本方向

Web 3.0技术的基本方向

查看
认知

认知

查看
面向对象的

面向对象的

查看
2018-12-25

2018-12-25

查看