Flutter国际化清理插件translations_cleaner的使用
Flutter国际化清理插件translations_cleaner的使用
简介
translations_cleaner
是一个Dart包,用于查找并删除所有语言的.arb
文件中未使用的翻译。该插件主要为flutter_localizations
包设计,它使用.arb
文件进行所有翻译。
使用方法
添加依赖
首先需要将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
更多关于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.arb
和es.arb
文件。
3. 使用插件
你可以通过命令行工具或脚本使用translations_cleaner
。以下是一个简单的命令行使用示例:
命令行使用
- 打开你的终端或命令行工具。
- 导航到你的Flutter项目的根目录。
- 运行以下命令来清理未使用的翻译条目:
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
插件来清理未使用的国际化翻译条目。