依赖添加
在pubspec.yaml文件中dev_dependencies部分添加如下
dev_dependencies:
flutter_test:
sdk: flutter
flutter_lints: ^5.0.0
# 添加部分
build_runner:
YAML然后执行如下命令将intl添加进依赖:
flutter pub add intl
YAMLAndroid Studio插件
Flutter Intl
原介绍:
This i18n plugin creates a binding between your translations from .arb files and your Flutter app. It generates boilerplate code for official Dart Intl library and adds auto-complete for keys in Dart code.
翻译:
这个i18n插件在.arb文件的翻译和Flutter应用程序之间创建了一个绑定。它为Dart Intl官方库生成样板代码,并为Dart代码中的键添加自动补全功能。
作用:
一键初始化项目Intl本地化部分,并在修改arb文件后进行实时生成。
Flutter Arb Action
原介绍:
Intention to move string text to arb files On the first run, we should configure the plugin in Settings|Tools|Flutter Arb Action, where we need to provide a path to the import of the extension method, and the name of that method.
翻译:
将字符串文本移动到arb文件的意图在第一次运行时,我们应该在Settings | Tools | Flutter arb Action中配置插件,在那里我们需要提供扩展方法的导入路径和该方法的名称。
作用:
可以在编辑器中选择需要翻译的字符串右键一键添加生成arb中本地化键值对.
Flutter Intl Manager
受Flutter Arb Action 和 Flutter Intl Fold VV (一个折叠插件可以将showToast(getLanguage().xxxx_xxxxxxxx);展示为showToast(暂无数据);但由于其不支持Flutter Intl生成格式S.of(conent).xxx)启发所创,
作用:
添加类似原生Android本地化的可视化表格窗口。如下图:
类似Flutter Arb Action的添加本地化键值对(AI添加,输入值自动翻译成对应语言,支持本地ollama)
类似Flutter Intl Fold VV的折叠效果(实测可能有概率不显示),显示效果如下:
注:本插件仅为启发开发(也为我开发的第一个插件,有很多地方可能不好用,可能不会太过专注维护)
下载地址: https://github.com/YDHusky/Flutter-Intl-Manager/releases
使用教程
初始化项目
按照如上教程完成插件安装和依赖安装
在tools中按照上图点击Initalize for the Project就可以初始化本项目的Intl本地化
初始化完成后可以使用Add Locale进行添加语言,初始化介绍默认添加en语言支持。
语言文件编写
生成结束后,在lib/l10n中会生成arb文件(命名规则为intl_xx.arb)
arb文件格式大致为一个Map<String,String>类型
编辑几个键值对使用Ctrl+S进行保存,即可看到Messages部分有输出如下:
即已经生成,而其dart文件在lib/generated目录下
此时在项目中就可以通过S.cuttent.key(或S.of(content).key))进行本地化访问了
Flutter Intl Manager的使用
打开设置找到如下:
针对ollama的配置:
模型地址: http://localhost:11434/v1
apiKey: ollama本地没有apikey随意填一个就行
模型: 根据实际情况填写(实测qwen:7b稍微能正常使用,不建议使用推理模型如deepseek-r1)
默认语言: 折叠展示的本地化展示的来源