Tal*_*leb 13 localization internationalization flutter bloc cubit
我正在 Flutter 中开发一个多语言应用程序。
我使用flutter_localizations包进行本地化,使用 intl包进行国际化。
以 Widgets 内的正常方式,我可以在Context的帮助下使用它。
但问题是当我想在存储库或除 UI 层之外的其他层中使用国际化时。
除了 UI(我们无法访问Context)之外的其他层中进行国际化的最佳实践是什么,例如在 Api、Repository、Bloc 或 Cubit 中使用国际化?
注意:我正在寻找一种在应用程序的 BLOC(业务逻辑)内部使用国际化的方法,而不是 UI!
一般来说,最好避免在 UI 层之外使用本地化。如果您使用 BLoC 库,则可以在 BlocListener 中显示对话框、小吃栏和类似的小部件。您还可以为您的状态编写扩展来处理 UI 层中的本地化。
但是,有一些方法可以在没有 BuildContext 的情况下使用本地化。例如:
简短的例子:
import 'package:get_it/get_it.dart';
GetIt getIt= GetIt.instance;
void setupServiceLocator() {
getIt.registerLazySingleton(() => AppLocalizations());
}
Run Code Online (Sandbox Code Playgroud)
AppLocalizations i10n = await AppLocalizations.delegate.load(Locale('en'));
| 归档时间: |
|
| 查看次数: |
2798 次 |
| 最近记录: |