开源可自托管的翻译管理平台,支持团队协作、多种本地化格式导入导出和 REST API。
slang-i18n/slang
面向 Dart 和 Flutter 的类型安全国际化库,可从 JSON、YAML、CSV 或 ARB 文件生成翻译访问代码。
- Star
- 619
- Fork
- 66
- 未关闭 Issue
- 41
- 最近提交
- 3个月前
这是什么?
Slang 是一个面向 Dart 和 Flutter 的国际化库。开发者用 JSON、YAML、CSV 或 ARB 文件编写翻译,它会生成 Dart 代码,让每条翻译都以类型安全的方法或属性形式调用。键名拼错或参数缺失会在编译阶段报错,而不是等到运行时才暴露。
生成的访问代码直接调用 Dart 方法,无需在运行时解析翻译文件。库支持带参数的字符串、复数规则、基于枚举的自定义上下文、翻译间的链接引用、RichText 富文本,以及依据语言环境的数字和日期格式化。通过命名空间可以把大型翻译文件拆分成小文件,纯 Dart 项目同样可以使用。
项目还提供命令行工具,可用于分析未使用或缺失的翻译、整理文件、移动或重命名键、将 ARB 迁移为 JSON,并更新 iOS 的语言配置。
核心功能
- 01生成带类型的 Dart 访问代码,拼写错误和缺失参数在编译时即可发现。
- 02支持从 JSON、YAML、CSV 或 ARB 文件读取翻译。
- 03支持复数、自定义上下文、带类型参数和 RichText。
- 04基于 intl 包按语言环境格式化数字和日期。
- 05提供命令行工具,用于分析、整理和迁移翻译文件。
适用场景
- 为 Flutter 应用添加多语言支持,并在编译时检查字符串。
- 为纯 Dart 命令行工具或服务端应用做本地化。
- 将基于 ARB 的 Flutter 项目迁移到 JSON 或 YAML 工作流。
- 在大型多语言项目中查找未使用或缺失的翻译。
快速上手
- 1
在 pubspec.yaml 中添加 slang 和 slang_flutter 依赖
- 2
在 lib/i18n 中创建 JSON 翻译文件,如 en.i18n.json
- 3
生成 Dart 翻译代码
dart run slang - 4
在 main() 中初始化语言环境并通过 t 使用翻译
使用前须知
- 需要 Dart 或 Flutter 项目,无法在其他语言中直接使用。
标签
常见问题
- slang 是什么?
- 面向 Dart 和 Flutter 的类型安全国际化库,可从 JSON、YAML、CSV 或 ARB 文件生成翻译访问代码。 Slang 是一个面向 Dart 和 Flutter 的国际化库。开发者用 JSON、YAML、CSV 或 ARB 文件编写翻译,它会生成 Dart 代码,让每条翻译都以类型安全的方法或属性形式调用。键名拼错或参数缺失会在编译阶段报错,而不是等到运行时才暴露。
- slang 可以免费使用吗?用的什么许可证?
- slang 以 MIT 许可证开源。用于商业产品前,请先确认许可证条款。
- slang 还在维护吗?
- 半年内有更新。slang 最近一次提交是在 2026年8月6日。
- slang 适合用来做什么?
- 为 Flutter 应用添加多语言支持,并在编译时检查字符串。 为纯 Dart 命令行工具或服务端应用做本地化。 将基于 ARB 的 Flutter 项目迁移到 JSON 或 YAML 工作流。 在大型多语言项目中查找未使用或缺失的翻译。
- slang 怎么安装和运行?
- 在 pubspec.yaml 中添加 slang 和 slang_flutter 依赖 在 lib/i18n 中创建 JSON 翻译文件,如 en.i18n.json 生成 Dart 翻译代码: dart run slang 在 main() 中初始化语言环境并通过 t 使用翻译
- 在哪里获取 slang?
- 源代码和安装说明在 GitHub 上:https://github.com/slang-i18n/slang
概要由 AI 根据项目 README 生成;GitHub 数据每日更新。
相关项目
基于 Angular 和 Firebase 构建的开源翻译管理与内容管理系统,支持借助 AI 辅助翻译。
把 GitHub 界面翻译成简体中文、繁体中文的浏览器扩展,翻译在本地完成。
从 JSON、JSON Schema、TypeScript 和 GraphQL 查询生成多种语言的强类型模型与序列化代码。
从 OpenAPI 3 规范生成 TypeScript 类型,并提供基于这些类型的类型安全请求客户端。