一个 Flutter 包,允许您访问翻译的字符串,而无需传递 context。
特点
之前
Text(AppLocalizations.of(context)!.appTitle);
之后
Text(S.current.appTitle);
当您需要在 Widget 构建树之外访问翻译时,例如控制器类、bloc 等,无需传递 context 会特别有用。
静态类型
与其他具有类似功能的软件包不同,您可以以静态类型的方式访问翻译键,就像属性一样,而不是像您必须复制的原始字符串。编译器将防止您犯任何可能在运行时才能发现的错误。
扩展而非替代
此软件包是原始 Flutter 本地化工具链的扩展,不替换其中的任何部分,也不需要使用专门的 IDE 扩展。
入门
-
请遵循官方指南 “本地化 Flutter 应用”。
-
在您的
pubspec.yaml中添加
dependencies:
current_context: ^0.0.1
用法
-
运行
flutter gen-l10n命令一次以验证本地化文件是否已生成。通常不需要此步骤。 -
导入生成的本地化文件
import 'package:flutter_gen/gen_l10n/app_localizations.dart';
- 使用
S.curent.xyz访问您翻译的消息。
附加信息
预热
此软件包将在首次运行时自动初始化。如果您想强制初始化,可以调用
S.preheat()
您可以在项目的 main 函数中执行此操作。
无需指定非可空 getter
无需设置 nullable-getter: false 以避免处理可空字符串。
自行承担风险使用
此软件包目前处于实验阶段,API 可能会发生变化。
由于可能出现潜在问题,请自行承担风险使用。
如果您发现任何问题,请提出 issue,甚至最好提交一个 PR 来修复它。