flutter 国际化方案

2023-11-13 14:04:57 +08:00
 laters
  1. intl

  2. easy_localization

  3. getx

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

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

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

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

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

实践下来,团队协作还是没问题的。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/991451

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX