wakatime

Flutter_ditto

此包旨在提供与 Dittowords 本地化的一种简单集成,就像 React 中通过 ditto-react 完成的那样。

喜欢我的工作吗?

"Buy Me A Coffee"

待办事项

  • 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'})

GitHub

查看 Github