本地化macOS应用程序。

https://appfillip.com/important-tips-for-app-store-localization-help-to-increase-app-ranking-globally/

世界上有太多语言(超过6500种)。 但是,地球上的大多数人口(约60–70%)仅使用其中的50–60。 对我们有利,我们不需要将我们的应用程序转换为所有6500! 实际上,并非每个应用程序都需要本地化,它取决于客户群(大多数用户使用哪种语言)以及该应用程序的受欢迎程度。 此外,如果他们在理解内容时遇到困难,可以将本地化视为可以鼓励用户使用该应用程序的功能。

我一直在寻找一个有助于发展的项目,却发现了一个名为IINA的项目。

伊娜

IINA是适用于macOS的现代视频播放器。 它具有本机播放器(快速时间)不具备的许多功能,例如制作播放列表,添加字幕,缩略图预览等。 同时,它具有漂亮的用户界面,与“快速时间”非常相似。 IINA仍在发展中。

我打开了一个问题页面,找到了一些尚待解决的错误,然后发现要求对多种语言进行本地化。 我在应用程序本地化方面没有任何经验,因此认为这是学习如何进行的好机会。

在不同的网站上有很多关于如何本地化iOS / macOS应用程序的教程。 他们非常简单,并通过分步说明详细解释了所有内容。

本质上,本地化是通过将强类型文本( UILabelUIView等中的所有文本)移动到单独的文件中来完成的。 所有本地化的字符串都存储在扩展名为.string文件中。 内容很简单,由键值对组成。

在我刚开始的时候,INIA已经针对多种语言进行了本地化(对于某些语言仍然不完全适用)。 但是,如果您正在处理的项目没有任何本地化,则可以从添加一种新语言开始:在项目导航器的“信息”选项卡中有一个“本地化”部分。 只需单击+按钮即可添加新语言。 如果要将本地化添加到新项目中,我建议使用本教程。

由于已经为该项目设置了本地化,所以我决定检查俄罗斯和乌克兰的本地化。 要使用特定的本地化环境运行应用程序(更改应用程序语言),您需要在xCode中编辑方案,或者更改系统语言(老实说是个坏主意)。
导航到“产品”->“方案”->“编辑方案”,或单击活动方案(位于旁边的左上角
按住alt键的同时点击“ stop按钮)。

在这里,您可以选择一种语言,该语言将是使用xCode运行该应用程序时的默认语言。

因此,我以两种语言运行了IINA,发现它并没有完全本地化为乌克兰语。

我首先过滤所有文件以仅获取用于乌克兰语本地化的.string文件(例如uk.lproj / PrefGeneralViewController.strings或iina / uk.lproj / PrefCodecViewController.strings)。

这些文件与Localize.string文件不同,因为它们没有键的明确名称,而是包含UI元素的ObjectID (例如“ hWC-KJ-FuC.title”)。

因此,在Localize.string文件中添加缺少的翻译很容易。 为其他文件添加翻译要困难一些,因为几次我遇到缺少的ObjectID ,这意味着具有这些ID的对象将无法翻译。 为了修复它,我为相同的ViewController打开了本地化文件,并从那里复制了缺少的ObjectID 。 现在,我唯一需要做的就是翻译它们。

完成这些操作后,我再次运行该应用程序,并注意到整个菜单选项卡仍未翻译。 那是因为我只向缺少的.string文件添加了缺少的翻译。 很明显,该菜单选项卡的翻译文件不存在。

要为该视图添加本地化文件,我为PrefUtilsViewController打开了一个xib文件,并在“检查器”菜单中选中了缺少语言的复选框。

注意 :我不记得为什么,但是即使添加了文件,运行项目之前,翻译也无法工作,直到我删除了一个引用(仍然保留 .string 文件)并再次添加了它 。)

创建的文件为空,因此我从该ViewController的一个本地化文件中获取了所有ObjectID 。 现在,为这些元素添加翻译并不困难。

这是已更改或创建的所有文件的完整列表。


添加翻译时应考虑以下几点:

  1. 尝试定期运行项目以确保所有标签,按钮和下拉菜单均已翻译。
  2. 检查尽可能多的视图(设置,菜单等)
  3. 添加翻译时检查拼写! (使用在线词汇非常简单快捷)。