【问题标题】:Populating Localizable.strings file with Terminal genstring command in SwiftUI在 SwiftUI 中使用 Terminal genstring 命令填充 Localizable.strings 文件
【发布时间】:2020-05-29 18:37:54
【问题描述】:

在尝试本地化 SwiftUI 应用时,我觉得事情变得简单多了。
我为两种支持的语言创建了Localizable.strings 文件,但我无法使用通常的终端 genstring 命令填充它们:genstrings -o en.lproj *.swift,即使我是从正确的目录启动此命令。

有谁知道 swiftUI 中的 genstring 是否损坏或是否有其他方法? 恨不得在我的应用程序中遍历一百个字符串...

我确实在网上找到了很多关于 SwiftUI 本地化的文章,但没有一个能清楚地解释它。

我的理解是,在 SwiftUI 中,我们可以简单的写成

Text("A text to be displayed")默认情况下会被理解为LocalizedStringKey

我错了吗?

在尝试@Asperi 的解决方案后添加了问题的屏幕截图:

【问题讨论】:

    标签: localization swiftui


    【解决方案1】:

    使用-SwiftUI 选项(如下面的变体,或任何其他使用)

    $ find ./ -name "*.swift" -print0 | xargs -0 genstrings -a -SwiftUI -o en.lproj
    

    了解详情

    $ man genstrings
    

    【讨论】:

    • 再次感谢 Asperi,生成了字符串,但它们是灰色的,而不是像往常一样的红色,并且构建失败并出现以下警告:无法使用指定的编码解码输入文件:Unicode (UTF-8)。我确实在 Xcode 中将文本编码设置为 UTF 8。屏幕截图添加到问题...
    • @Esowes,这可能是由于现有和新生成的 .strings 文件中的编码冲突。尝试将已存在的 Localizable.strings(如果存在)文件存储在某处并从头开始重新生成 without 选项 -a,然后使用 Xcode 复制粘贴旧内容 - 它会自动检测编码。
    • 好的,按照 Jerome here 的建议运行 pl < Localizable.strings 后,我发现问题只是缺少“;”...感谢您的帮助。
    猜你喜欢
    • 1970-01-01
    • 2019-12-23
    • 1970-01-01
    • 2022-09-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多