我用 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 过程中的各种问题。

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

相关推荐
资深web全栈开发几秒前
Golang 最常用的库介绍
开发语言·后端·golang
源码获取_wx:Fegn08954 分钟前
基于springboot + vue考勤管理系统
java·开发语言·vue.js·spring boot·后端·spring·课程设计
Haooog7 分钟前
RabbitMQ面试题(不定时更新)
分布式·后端·面试·rabbitmq·消息中间件
音符犹如代码11 分钟前
Kafka 技术架构与核心原理深度解析
大数据·微服务·架构·kafka
m0_4711996311 分钟前
【vue】diff算法简介
前端·vue.js·算法
鹏多多12 分钟前
flutter使用package_info_plus库获取应用信息的教程
android·前端·flutter
冬男zdn16 分钟前
Vue 3 从基础到高阶全攻略
前端·javascript·vue.js
✿ ༺ ོIT技术༻20 分钟前
服务端高并发分布式结构演进之路
运维·服务器·redis·分布式·架构
亿元程序员20 分钟前
Cocos游戏开发中的箭头游戏效果
前端