一个 Flutter 包,允许您访问翻译的字符串,而无需传递 context。

特点

之前

Text(AppLocalizations.of(context)!.appTitle);

之后

Text(S.current.appTitle);

当您需要在 Widget 构建树之外访问翻译时,例如控制器类、bloc 等,无需传递 context 会特别有用。

静态类型

与其他具有类似功能的软件包不同,您可以以静态类型的方式访问翻译键,就像属性一样,而不是像您必须复制的原始字符串。编译器将防止您犯任何可能在运行时才能发现的错误。

扩展而非替代

此软件包是原始 Flutter 本地化工具链的扩展,不替换其中的任何部分,也不需要使用专门的 IDE 扩展。

入门

  1. 请遵循官方指南 “本地化 Flutter 应用”

  2. 在您的 pubspec.yaml 中添加

dependencies:
  current_context: ^0.0.1

用法

  1. 运行 flutter gen-l10n 命令一次以验证本地化文件是否已生成。通常不需要此步骤。

  2. 导入生成的本地化文件

import 'package:flutter_gen/gen_l10n/app_localizations.dart';
  1. 使用 S.curent.xyz 访问您翻译的消息。

附加信息

预热

此软件包将在首次运行时自动初始化。如果您想强制初始化,可以调用

S.preheat()

您可以在项目的 main 函数中执行此操作。

无需指定非可空 getter

无需设置 nullable-getter: false 以避免处理可空字符串。

自行承担风险使用

此软件包目前处于实验阶段,API 可能会发生变化。

由于可能出现潜在问题,请自行承担风险使用。

如果您发现任何问题,请提出 issue,甚至最好提交一个 PR 来修复它。

GitHub

查看 Github