OnFlyLocalizer 1.0.6

OnFlyLocalizer 1.0.6

测试已测试
Lang语言 SwiftSwift
许可证 Apache 2
发布上次发布2017年7月
SwiftSwift 版本3.0
SPM支持 SPM

Ilia Kosynkin 维护。



  • Ilia Kosynkin

OnFlyLocalizer

遇到在移动环境中即时更改应用程序语言的开发者可能会知道,这通常不是一项简单任务,尤其是在项目开发过程中突然出现这样的需求时。这个库的主要目的是通过提供代码生成脚本、解析脚本和一些 Swift 类来简化语言更改过程。

安装

库可在 CocoaPods 中使用,只需将以下行添加到您的 pod 中

  pod 'OnFlyLocalizer'

然后运行

  pod update

下载完成后,在终端中导航到 Pods/OnFlyLocalizer/OnFlyLocalizer,并运行

  sudo chmod +x localizer.sh

遗憾的是,这是一步必要的步骤,如果您不这样做,则 xCode 不会执行此脚本。之后,将“Run Script”阶段添加到您的 xCode 项目中,并在其中添加以下行

  "$PODS_ROOT/OnFlyLocalizer/OnFlyLocalizer/localizer.sh" "YOUR TARGET NAME HERE"

生成项目,如果一切顺利,您应该会在目标顶级目录中获得 OnFlyLocalizer.conf 文件。

配置

如前所述,第一次构建将只提供配置文件。此文件用于配置脚本的工作。它基本上如下所示

TurnToCamelCharacters=.-
ChangeRSwiftStrings=false
PendingFilesFileName=PendingFiles.txt
LocalizationsTable=Localizable
GeneratedFolderName=LanguageOnFlyChange
ProcessedFileName=processed.txt
ProcessFiles=False
ParseStrings=true
EventBus=|\o/|+__+|/o\|
LocalizationsPath=Others

如您所见,这是一个简单的键值文件,您可以在其中配置脚本如何表现和工作。让我逐一介绍所有键并解释它们的确切功能。

TurnToCamelCharacters

您可以在这里提供所有将转换其后字母的大小写的字符。它用于将本地化文件中的字符串键转换为函数的名称。默认方案是“.-”,即如果您有如下内容

  "klappa.kappacino-inc.O_O" = "O_O";

在您的本地化字符串中,它将被转换为以下文件中的函数

  func klappaKappacinoIncO_O() -> String

您可以将任意字符传递到这个字段。

ChangeRSwiftStrings

基本上,如果你正在使用名为 R.swift 的优秀库,你可能会使用 R.string 来处理字符串。这种方法的缺点是 R.string 在现场本地化方面表现不佳,因此你可能想要更改它。如果此字段设置为“true”,脚本将替换项目中所有 R.string 的实例为生成的文件。请注意,在这种情况下,最好保持默认的 TurnToCamelCharacters 不变,因为这会导致字符串更改时出错。

挂起的文件名

包含您希望处理的文件列表(即添加本地化)的文件名称。默认情况下,库会处理名称中包含“View”或“Controller”的文件。如果您将您的 ViewController 命名为例“AwesomiumKlappaInternationalScreen”,库将不会将其识别为可能需要本地化的内容,并将其跳过。如果您有此类文件,请将它的名称(不是路径,只是带扩展名的名称)添加到挂起的文件中,并在新的一行中运行构建。

本地化表

您保存字符串的文件名称。我通常使用“Localizable.strings”,但您可能想要另一个名称。如果您这样选择,请将其放在此参数中。

生成的文件夹名

脚本将所有生成的文件扔入的文件夹。

已处理的文件名

已经处理过且不需要再处理或您不希望被处理的文件。如果您想排除某些文件的处理,请将该文件名添加至此字段指定的文件中。

处理文件

此字段指定脚本是否将遍历项目中的所有文件并处理它们。请注意,这是一个相当大的操作,脚本默认将该标志设置为“false”。请确保一切按您期望的方式配置,将此字段更改为“true”并运行构建。脚本完成后,它将再次将该属性设置为“false”,以避免在下一次构建时进行解析。

解析字符串

此字段指定您是否想要解析字符串并重新生成具有函数的文件。如果设置为“true”,则将重新生成文件。

事件总线

此字段指定脚本从何处获取 EventBus 实例以登记语言更改事件。默认值没有对编译进行更改,因此请提供正确的 EventBus 实例值。请注意,它应该是一个实例。您可能需要使用某种依赖注入或单例来实现,只需确保 EventBus 可以为文件访问。

本地化路径

可选项。您可以在此处指定带有本地化字符串文件夹的相对路径。如果您不指定它,脚本将自行查找并将其写入此处以加快工作速度。

贡献

如果您对该库有任何问题,请确保在存储库中创建一个问题。反馈非常受欢迎。