V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
爱意满满的作品展示区。
AllNewDesign
V2EX  ›  分享创造

令人兴奋 -- 一键翻译(支持 ChatGPT) ,瞬间让你的 APP 支持多语言

  •  2
     
  •   AllNewDesign · 2023-03-13 09:49:45 +08:00 · 3045 次点击
    这是一个创建于 622 天前的主题,其中的信息可能已经有所发展或是发生改变。

    前言

    之前已经介绍过了软件的剪切板功能 - 当前所有的永久会员限时优惠

    介绍

    软件名称:Super Coder

    软件官网: https://supercoder.lessimore.cn/features/local

    它是一款纯原生 Mac 软件,包含了四大功能。

    接下来我想为大家介绍这个每次开发和使用都令我十分兴奋的功能 - 本地化

    本地化

    为什么你需要一款本地化功能的软件?

    假设此时你需要为自己的 APP 支持多语言,你会这么做:

    1. 先针对主要语言(比如中文)编写一份键值对文件,里面会包含所有 APP 中需要翻译的文本。
    2. 然后假设你想支持英文,那么你会复制中文的文件内容到英文文件中,然后一个个的进行翻译。
    3. 随着 APP 的迭代,你需要增加新的需要翻译的内容到中文文件中,然后你再次将中文文件中的新增内容复制到英文当中,一个个的进行翻译。
    4. 随着迭代,你可能需要增加对其他语言的支持,比如日语、韩语等。
    5. 你重复上面的步骤,不同的是,你需要在多个语言文件里来回的切换进行翻译。

    这有什么问题?

    1. 手动编写文件很容易遇到格式问题,比如在 Localizable.strings 文件中你会忘记加末尾的分号(;)
    2. 你会经常遇到字符串的转译问题,导致项目无法正确编译
    3. 你需要一个个的翻译,工作量非常大
    4. 你会有遗漏,比如在英文里添加了,但忘了在日语里添加
    5. 你必须使用字符串硬编码调用(后续会讲到)

    如果你体会过开发多语言的痛苦,你自然会需要这样一款软件,它让你的 APP 瞬间支持多种语言,只需简单的点击。

    1.加载本地化文件

    加载

    软件可以自动加载项目中的 Localizable.strings 文件和 Main.storyboard 文件,展示样式如上图,包含各个语言的键值对,哪些翻译了,哪些没翻译,一目了然,不会有翻译遗漏。

    你可以同时支持多个项目,比如上图中我支持了 Super Coder 、Example 、ChatGPT三个项目。

    2.添加键值对

    添加

    添加后会立即回显到对应的 Localizable.strings 文件中

    回显

    3.编辑键值对

    编辑

    同样会立即回显到 Localizable.strings 文件中,不再演示。

    4.翻译

    翻译 value (动图演示)

    单独翻译某个值

    应用场景:比如某个语言的值忘记翻译的时候。

    翻译 Value

    翻译 key (动图演示)

    直接翻译这个 key 对应的值为所有目标语言

    应用场景:比如随着项目的迭代,你需要新增键值对的时候。

    翻译 key

    翻译某个语言(动图演示)

    批量翻译为某个语言 应用场景:比如你需要新增一门语言的时候

    翻译语言

    一键翻译(动图演示)

    点击顶部的按钮即可一键翻译所有语言,已经存在的不会再次翻译,同时对并发做了处理

    应对场景:项目首次需要支持多种语言、避免翻译遗漏等场景。

    当然,所有的翻译都会立即回显到项目 Localizable.strings 文件中。

    翻译全部

    翻译接口

    当前支持选择 Google 、Baidu 、ChatGPT

    调用

    你可以这么调用代码来显示国际化文本,这是字符串硬编码调用的方式( translate_all )

    let translateAll = NSLocalizedString("translate_all", comment: "翻译全部")
    

    但是我推荐你这么调用,这是代码生成器的功能,具备代码提示和编译提醒,本节不过多介绍此功能

    R.Text.translateAll
    

    代码生成器:每当你新增了 key value 他都会为你自动生成代码。

    最后

    Super Coder 本身支持超过 10 种语言,即是使用 Super Coder 本身的这些功能开发。

    规划:

    1. 当前只支持了 iOS/MacOS 项目的国际化,后续会考虑逐渐增加对其他语言的支持。
    2. 回馈开源:计划为开源项目免费提供此功能。

    如果你喜欢它,请到App Store给它一个好评,或者写下你的意见。

    Hope you enjoy it.

    7 条回复    2023-04-21 21:23:37 +08:00
    7gugu
        1
    7gugu  
       2023-03-13 11:13:50 +08:00
    帅欸,这个很棒
    missdeer
        2
    missdeer  
       2023-03-13 11:44:27 +08:00
    好主意诶
    AllNewDesign
        3
    AllNewDesign  
    OP
       2023-03-13 12:08:53 +08:00
    @missdeer
    @7gugu 感谢支持
    Themyth
        4
    Themyth  
       2023-03-16 12:49:48 +08:00
    我现在其实最痛苦的是使用 app 时(在 iOS 下),大量的日语 APP 没有多语言,真是完全看不懂……
    AllNewDesign
        5
    AllNewDesign  
    OP
       2023-03-16 12:58:54 +08:00
    @Themyth 额,你把这个软件推荐给对应 APP 的开发者,让他适配中文😁
    Yunhao
        6
    Yunhao  
       2023-04-20 19:59:20 +08:00 via iPhone
    不错呀,ChatGPT 对上下文的理解很适合做 app 多语言翻译。有个疑问:使用 ChatGPT 翻译的时候,会将 comment 也提供给它吗?
    AllNewDesign
        7
    AllNewDesign  
    OP
       2023-04-21 21:23:37 +08:00
    @Yunhao 那倒是没有,只是单独的翻译了 value
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2666 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 27ms · UTC 05:13 · PVG 13:13 · LAX 21:13 · JFK 00:13
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.