Flutter_ditto
此包旨在提供与 Dittowords 本地化的一种简单集成,就像 React 中通过 ditto-react 完成的那样。
喜欢我的工作吗?
待办事项
- OTA 更新翻译
- 带复数的翻译
快速开始
要将 Ditto 集成到您的应用程序中,您只需将当前的 MaterialApp 替换为 DittoMaterialApp。
单独初始化
您可以像这样单独初始化 DittoStore,而不是从 DittoMaterialApp 初始化:
Future<void> main() async {
WidgetsFlutterBinding.ensureInitialized();
await DittoStore().initialize(
configs: DittoConfigData.base(
projectId: '<YOUR_PROJECT_ID>',
apiKey: '<YOUR_API_KEY>',
),
);
runApp(const MyApp());
}
// ...
class _MyAppState extends State<MyApp> {
@override
Widget build(BuildContext context) {
return DittoMaterialApp(
title: 'Ditto test',
fallbackLocale: const Locale('en'),
home: const MyHomePage(),
);
}
}
集成初始化
在这里,您可以通过提供 DittoConfigData 来让 DittoMaterialApp 组件处理 DittoStore 的初始化。
//...
class _MyAppState extends State<MyApp> {
@override
Widget build(BuildContext context) {
return DittoMaterialApp(
title: 'Ditto test',
fallbackLocale: const Locale('en'),
home: const MyHomePage(),
configData: DittoConfigData.base(
projectId: '<YOUR_PROJECT_ID>',
apiKey: '<YOUR_API_KEY>',
),
loadingPlaceholder: Container(
color: Theme.of(context).primaryColor,
child: const Center(
child: CircularProgressIndicator(color: Colors.white),
),
),
);
}
}
翻译
由于您已使用 DittoMaterialApp 包装了您的应用程序,因此现在可以通过使用 String.translate() 扩展来翻译您的文本。
/// For a simple translation
'simple_key'.translate()
/// For a translation with a variable
'variable_key'.translate({'var_name': 'var_value'})
