Flutter国际化清理插件translations_cleaner的使用

发布于 1周前 作者 phonegap100 来自 Flutter

Flutter国际化清理插件translations_cleaner的使用

简介

translations_cleaner 是一个Dart包,用于查找并删除所有语言的.arb文件中未使用的翻译。该插件主要为flutter_localizations包设计,它使用.arb文件进行所有翻译。

Package in action

使用方法

添加依赖

首先需要将translations_cleaner添加为开发依赖:

dart pub add --dev translations_cleaner

运行命令

然后可以通过以下两种方式运行命令:

dart run translations_cleaner <command> [arguments]
# 或者
flutter pub run translations_cleaner <command> [arguments]

可用命令

  • clean-translations:搜索所有的arb文件中的翻译,并删除未使用的翻译。
  • list-unused-terms:搜索所有的arb文件中的翻译,并打印或保存一份未使用翻译的列表。

可用选项

仅对list-unused-terms有效

  • -a, --[no-]abort-on-unused:如果找到未使用的翻译,则终止执行。这在CI中有帮助,如果你不希望在构建失败时继续。

对所有命令有效

  • -h, --help:打印此使用信息。
  • -o, --output-path:保存导出文件的路径,默认为文件夹的根路径。
  • -e, --[no-]export:将未使用的键作为.txt文件保存到提供的路径中。

为什么需要这个工具?

当应用程序开始扩展并且有很多翻译时,处理翻译可能是一个非常耗时的过程。因此,清理未使用的翻译是一个很好的实践。手动检查未使用的翻译很繁琐,所以有了这个插件。

工作原理

  • translations_cleaner会查找目录中所有的.arb文件,并获取所有语言的所有翻译。
  • 然后它会查找所有的.dart文件。
  • 所有的翻译术语都会在这些dart文件中查找。
  • 没有在dart文件中找到的翻译将从相应的.arb文件中移除,包括任何属性。

局限性

  • 目前,该插件只支持通过flutter_localizations实现的l10n,它使用.arb文件。
  • 其他使用.json.yaml保存翻译的l10n包目前不受支持。

示例代码

示例项目结构

假设你有一个Flutter项目的结构如下:

my_flutter_app/
├── lib/
│   └── main.dart
└── l10n/
    ├── app_en.arb
    └── app_zh.arb

清理翻译

为了清理未使用的翻译,你可以简单地运行以下命令:

flutter pub run translations_cleaner clean-translations

列出未使用的翻译

如果你想列出未使用的翻译而不删除它们,可以运行:

flutter pub run translations_cleaner list-unused-terms -o output.txt -e

这将会把未使用的翻译保存到output.txt文件中。

通过这些步骤,你可以轻松地管理和维护你的Flutter应用中的国际化资源,确保只有必要的翻译被保留,从而提高项目的整洁度和可维护性。


更多关于Flutter国际化清理插件translations_cleaner的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html

1 回复

更多关于Flutter国际化清理插件translations_cleaner的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html


当然,以下是如何在Flutter项目中使用translations_cleaner插件来清理国际化(i18n)文件的代码示例。translations_cleaner插件可以帮助你检测和删除未使用的翻译条目,从而保持你的arb文件整洁。

1. 安装插件

首先,你需要在你的pubspec.yaml文件中添加translations_cleaner依赖:

dependencies:
  flutter:
    sdk: flutter
  # 其他依赖...
  translations_cleaner: ^x.y.z  # 请替换为最新版本号

然后运行flutter pub get来安装依赖。

2. 配置插件

在你的Flutter项目中,确保你已经设置了国际化支持,并且拥有多个语言的.arb文件。例如,你可能会有en.arbes.arb文件。

3. 使用插件

你可以通过命令行工具或脚本使用translations_cleaner。以下是一个简单的命令行使用示例:

命令行使用

  1. 打开你的终端或命令行工具。
  2. 导航到你的Flutter项目的根目录。
  3. 运行以下命令来清理未使用的翻译条目:
flutter pub run translations_cleaner:clean --input-dir=lib/l10n --output-dir=lib/l10n --locale-files="*.arb"

在这个命令中:

  • --input-dir 是包含你的Flutter国际化文件的目录。
  • --output-dir 是清理后的文件将被保存的目录(通常与输入目录相同)。
  • --locale-files 是匹配你的.arb文件的模式。

4. 自动化清理(可选)

你可以将清理命令添加到你的Makefile或构建脚本中,以便在每次构建之前自动运行。以下是一个简单的Makefile示例:

# Makefile

clean-translations:
    flutter pub run translations_cleaner:clean --input-dir=lib/l10n --output-dir=lib/l10n --locale-files="*.arb"

build:
    make clean-translations
    flutter build apk

然后你可以通过运行make build来构建你的应用并自动清理未使用的翻译条目。

注意事项

  • 在运行清理命令之前,确保你的项目已经编译过,因为translations_cleaner需要分析你的代码来找出哪些翻译条目是实际使用的。
  • 备份你的.arb文件,以防万一清理过程中出现问题。

通过以上步骤,你应该能够成功地在Flutter项目中使用translations_cleaner插件来清理未使用的国际化翻译条目。

回到顶部