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

分享一个独立开发者开发国际化项目提效的思路

  •  
  •   hamsterbase ·
    carytrivett · 7 天前 · 1315 次点击
    分享一下我所有项目都在用的工作流

    1. 以源码作为唯一的 i18n 配置源

    代码里所有的文案都是 localize('key','Default Message') 这种格式

    key 没有专门规范,想到什么用什么


    2. 使用脚本解析 ast ,自动生成默认的 en-US.json 和 (zh-CN.json ....)

    "highlight.action.EditNote": {
    "defaultMessage": "Edit Note",
    "content": "Edit Note"
    },


    "highlight.action.EditNote": {
    "defaultMessage": "Edit Note",
    "content": ""
    },


    未翻译的为空白字符串。


    3. 编写脚本,把所有未翻译的 json 都拆出来。 提交给 ai ,把所有 content :'' 为空的都翻译好




    按照这个思路,在开发的时候完全不需要管翻译,只需要无脑写代码就行了。
    在发布之前,跑一下脚本,就可以自动翻译好整个项目。




    我写了一个 vscode 插件给自己用,感兴趣的可以下载

    https://marketplace.visualstudio.com/items?itemName=hamsterbase.i18nease


    插件本书完全离线,自行配置 openai 的 key 就可以使用。



    如果是希望参考脚本, 我之前给一个 10000 多 star 多项目提了 PR 。 感兴趣可以参考

    https://github.com/caprover/caprover-frontend/blob/master/scripts/generate-locales.mjs
    2 条回复    2025-02-06 10:13:59 +08:00
    rm0gang0rf
        1
    rm0gang0rf  
       7 天前
    最近有这个需求, 最好是可以定义格式
    huangliu
        2
    huangliu  
       7 天前
    这样拆分的话,会不会它的翻译不够准确,或者同一个词在不同的短语里面被翻译成了不同的字面意思。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   3361 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 18ms · UTC 04:47 · PVG 12:47 · LAX 20:47 · JFK 23:47
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.