flutter gen-l10n如何使用

我在Flutter项目中使用gen-l10n命令生成了本地化文件,但运行后没有生效。具体操作步骤如下:

  1. 在pubspec.yaml中添加flutter_localizations依赖
  2. 执行flutter gen-l10n命令
  3. 生成了arb文件和对应的dart文件

但App运行时仍然显示默认语言,请问还需要进行哪些配置才能让本地化正常工作?我是否漏掉了某些关键步骤?

2 回复

使用Flutter gen-l10n步骤:

  1. 在pubspec.yaml添加flutter_localizations依赖
  2. 创建l10n.yaml配置文件
  3. 在arb目录下创建翻译文件(如app_en.arb)
  4. 运行命令:flutter gen-l10n
  5. 在MaterialApp中配置localizationsDelegates和supportedLocales

自动生成本地化类,支持多语言。

更多关于flutter gen-l10n如何使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html


Flutter 的 gen-l10n 是用于生成本地化(国际化)代码的工具,它基于 arb 文件自动创建本地化类。以下是使用步骤:

  1. 配置 pubspec.yaml: 在 flutter 部分添加 generate: true 并指定 l10n.yaml 文件(可选)。

    flutter:
      generate: true
    
  2. 创建 l10n.yaml 文件(可选): 在项目根目录创建此文件以自定义设置,例如:

    arb-dir: lib/l10n
    template-arb-file: app_en.arb
    output-localization-file: app_localizations.dart
    
  3. 添加 arb 文件: 在指定目录(如 lib/l10n)创建 .arb 文件,例如:

    • app_en.arb(英语):
      {
        "hello": "Hello!",
        "@hello": {
          "description": "A simple greeting"
        }
      }
      
    • app_es.arb(西班牙语):
      {
        "hello": "¡Hola!"
      }
      
  4. 运行生成命令: 执行以下命令生成本地化代码:

    flutter gen-l10n
    

    或直接运行应用(Flutter 会自动生成)。

  5. 在应用中使用: 在 MaterialApp 中设置本地化委托:

    return MaterialApp(
      localizationsDelegates: AppLocalizations.localizationsDelegates,
      supportedLocales: AppLocalizations.supportedLocales,
      home: MyHomePage(),
    );
    

    在组件中调用:

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

注意

  • 默认情况下,生成的文件在 lib/generated/ 目录中。
  • 确保 pubspec.yaml 中已包含 flutter_localizations 依赖。
  • 如果修改了 arb 文件,重新运行 flutter gen-l10n 以更新代码。

通过以上步骤,即可快速实现应用的本地化。

回到顶部