我用 Compose 写了一个 i18n 多语言管理工具

1、背景

做过开发的人,大概率都体会过维护多语言词条的麻烦。比如改一个词条,就得同步修改多个语言文件;支持的语言越多,这种重复劳动带来的挫败感就越强。之前我因为不熟桌面程序 UI 框架,只能靠 Python 脚本减轻负担,但没有 GUI,用起来还是不够方便。现在学了 Compose,我打算用它开发一个桌面工具,彻底优化多语言维护的体验。

这个项目的名称叫 Easy I18n,表达的是"让多语言维护更加简单"的含义。那么就来看下我做了哪些提升开发体验的功能吧~

2、功能

1. 多项目、多目录和多平台

Easy I18n 可以用来管理你的各种项目的多语言词条。目前它支持的平台包括:

  • Android 多语言文件 strings.xml 的管理
  • iOS 两种多语言文件:*.strings 文件和 .xcstrings 文件的管理
  • Compose Multiplatform 多语言文件 strings.xml 的管理
  • Flutter 多语言文件 *.arb 的管理
  • Java 多语言文件 *.properties 的管理

第一个版本支持以上多语言文件管理,后续我还打算支持任意类型 json 和 yaml 等类型文件的管理。

当你创建了项目之后可以选择上述支持的任意平台,然后选择你的项目的根目录。Easy I18n 会自动深度扫描你的项目目录并识别可能的多语言路径。这大大减轻了使用的难度~

Easy I18n 在内部磨平了以上各种文件类型的差异,最终会以如下的形式呈现你的项目所有的多语言词条:

2. 便捷的编辑工具

当项目的多语言被加载完毕之后,你可以在应用内对多语言词条进行编辑。

和很多同类软件不一样的是,Easy I18n 会将一个词条在所有语言下的含义以一个对话框的形式展示出来。这样你可以更直观地查看这个词条在不同语言下的含义,更方便用户进行对比和修改。

在对话框下方,内置了比较常用的词条管理工具,比如自动化翻译该词条、首字母大写和删除等等。

除此之外,你还可以通过语言和词条的维度进行筛选,比如下面展示的是对关键字 "ai" 的查询,并仅展示它在默认语言和中文下的含义。

此外,你还可以对数据的列进行排序等等。这些便捷工具将大幅提升你编辑词条时的使用体验。

3. 自动化翻译

自动化翻译是必不可少的!

如下图所示,Easy I18n 内置了:

  • Google 翻译
  • 百度翻译
  • DeepL 翻译
  • Libre 翻译
  • 腾讯云翻译

等多种翻译方式。并且,我会借鉴了过往翻译器的使用经验结合各个平台特点对翻译结果进行了优化。

4. AI 翻译

使用过一般翻译工具的同学可能知道这些工具的弱点,那就是缺少背景支持,容易出现歧义。比方说,中文的时间单位 "天",有时候会被翻译成英语 "sky"。这样的翻译结果就是风马牛不相及了!所以,在各种翻译方式之上我增加了 AI 翻译。如下所示,它支持各种不同类型的 AI 平台:

为了进一步优化 AI 的翻译效果,我在多语言词条之外增加了一个"备注"的概念。这些信息会被存储到应用的数据库中,因而不会影响到你原始的多语言文件。你可以通过这些"备注"进一步描述这个词条的使用场景,以使 AI 的翻译更加准确。

最后

目前我暂时把软件放到了 Github 上面,不论你是想要一款多语言管理工具还是对 Compose 开发 Desktop 的效果感兴趣,你都可以到如下仓库进行下载:

github.com/Shouheng88/...

目前版本是该软件的第一个正式发行版本。后续,我会为该软件增加更多的功能~

该软件完全使用 Kotlin 和 Compose Multiplatform 开发,在随后我也会整理使用 Compose 开发 Desktop 过程中的各种问题。

关注我,获取更多有价值的信息~ ❤️

相关推荐
前端 贾公子12 小时前
v-if 与 v-for 的优先级对比
开发语言·前端·javascript
行百里er14 小时前
2026:一名码农的“不靠谱”年度规划
后端·程序员·架构
计算机程序设计小李同学16 小时前
基于SpringBoot的个性化穿搭推荐及交流平台
java·spring boot·后端
bug总结16 小时前
Vue3 实现后台管理系统跳转大屏自动登录功能
前端·javascript·vue.js
用户479492835691516 小时前
同事一个比喻,让我搞懂了Docker和k8s的核心概念
前端·后端
烛阴17 小时前
C# 正则表达式(5):前瞻/后顾(Lookaround)——零宽断言做“条件校验”和“精确提取”
前端·正则表达式·c#
C_心欲无痕17 小时前
浏览器缓存: IndexDB
前端·数据库·缓存·oracle
郑州光合科技余经理17 小时前
技术架构:上门服务APP海外版源码部署
java·大数据·开发语言·前端·架构·uni-app·php
云器科技17 小时前
告别Spark?大数据架构的十字路口与技术抉择
大数据·架构·spark·lakehouse·数据湖仓
GIS之路17 小时前
GDAL 实现数据属性查询
前端