V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
laters
V2EX  ›  Flutter

flutter 国际化方案

  •  
  •   laters · 2023-11-13 14:04:57 +08:00 · 1149 次点击
    这是一个创建于 375 天前的主题,其中的信息可能已经有所发展或是发生改变。
    1. intl

    2. easy_localization

    3. getx

    4. 官方的太麻烦了, 不能像别的一样 直接写 json 或者 yaml 文件翻译

    5. easy_localization 支持动态 http 和 资源文件,但无法热重载时候更新翻译,只能重启应用重新加载文件,而且好像无法跟随系统语言设置

    6. getx 简单,但不想太依赖于 getx

    有没有更好的方案或者解决方案,支持文件或动态翻译,热重载 跟随系统语言设定

    11 条回复    2023-11-13 16:54:40 +08:00
    GooMS
        1
    GooMS  
       2023-11-13 14:19:48 +08:00 via Android
    Intl 还好吧,想要 json 可以封装一下
    milukun
        2
    milukun  
       2023-11-13 14:23:10 +08:00
    用 GetX 又不代表要用它所有功能,各取所需就好了。
    我就只用 getx 导航、国际化和状态管理
    laters
        3
    laters  
    OP
       2023-11-13 14:25:11 +08:00
    @milukun 你 router 用的哪个 ?
    laters
        4
    laters  
    OP
       2023-11-13 14:25:23 +08:00
    @milukun 发错了。。 看到了
    laters
        5
    laters  
    OP
       2023-11-13 14:29:11 +08:00
    @milukun 是否用到了 bingings
    laters
        6
    laters  
    OP
       2023-11-13 14:31:14 +08:00
    @GooMS 要写的代码会变得很多, 不如别的国际化直接 { title: 标题} 就可以了
    milukun
        7
    milukun  
       2023-11-13 14:40:41 +08:00
    milukun
        8
    milukun  
       2023-11-13 14:41:31 +08:00
    @laters #5 这个项目里面是有国际化相关配置的 只不过没写错来
    laters
        9
    laters  
    OP
       2023-11-13 14:47:53 +08:00
    @milukun 用 getx 的路由没用 bingings ? 那你是怎么 init 的, 在每个 controller 第一次的时候 init ?
    milukun
        10
    milukun  
       2023-11-13 15:29:47 +08:00
    @laters #9 就是看具体需求呀,有些页面完全就是在 controller 页面里面用 getx 的 onInit 、onReady 就行,我觉得 binding 太麻烦咯,除非必要
    jifengg
        11
    jifengg  
       2023-11-13 16:54:40 +08:00
    我们目前用 intl ,写了一个前置脚本,支持编写无限嵌套 json ,然后转换成 intl 需要的 arb 文件。
    同时又写了另一个翻译脚本,读 json 给 chatgpt 进行翻译。

    实践下来,团队协作还是没问题的。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1037 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 23:00 · PVG 07:00 · LAX 15:00 · JFK 18:00
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.