Repolode
slang-i18n

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. 1

    在 pubspec.yaml 中添加 slang 和 slang_flutter 依赖

  2. 2

    在 lib/i18n 中创建 JSON 翻译文件,如 en.i18n.json

  3. 3

    生成 Dart 翻译代码

    dart run slang
  4. 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 数据每日更新。

相关项目