🇧🇷Internacionalização com L10n

🌍 Configuração de Localização (L10n) no Flutter

Este guia mostra como configurar internacionalização (L10n) no seu projeto Flutter usando arquivos .arb e o comando flutter gen-l10n.


📦 1. Adicione dependências no pubspec.yaml

Inclua as seguintes dependências e habilite a geração de localizações:

dependencies:
  flutter:
    sdk: flutter
  flutter_localizations:  # Necessário para suporte a localizações
    sdk: flutter
  intl: ^0.17.0  # Use a versão mais adequada ao seu projeto

flutter:
  generate: true  # Ativa a geração automática de arquivos de localização

🔸 Observação: Se o seu app utiliza micro frontends, adicione essas configurações no pubspec.yaml do módulo compartilhado (base do app).


🧩 2. Configure o MaterialApp no main.dart

Adicione os delegates no MaterialApp para suportar múltiplos idiomas:

import 'package:flutter_localizations/flutter_localizations.dart';

BlocBuilder<LocaleCubit, Locale>(
  builder: (context, locale) {
    return MaterialApp(
      title: 'Localizations Sample App',
      locale: locale,
      localizationsDelegates: const [
        L10N.delegate,
        GlobalMaterialLocalizations.delegate,
        GlobalWidgetsLocalizations.delegate,
        GlobalCupertinoLocalizations.delegate,
      ],
      supportedLocales: L10N.supportedLocales,
      home: MyHomePage(),
    );
  },
)

🔸 Observação: L10N.delegate e L10N.supportedLocales darão erro até que os arquivos sejam gerados. Após a geração (ver passo 6), aceite o import sugerido.

🔸 Observação: Em projetos com micro frontends, essa configuração deve estar no main.dart do módulo principal, onde o MaterialApp é criado.


📁 3. Estrutura de pastas

Crie a seguinte estrutura de diretórios:

lib/
└── commons/
    └── utils/
        └── localization/
            └── l10n/
└── generated/

🔸 Observação: Essa estrutura é apenas um exemplo. Adapte conforme a organização do seu projeto. Em projetos modularizados, crie essas pastas no módulo compartilhado.


📝 4. Crie o arquivo base .arb

Dentro da pasta localization/l10n, crie o arquivo intl_pt.arb com o seguinte conteúdo:

{
  "helloWorld": "Olá mundo!",
  "@helloWorld": {
    "description": "The conventional newborn programmer greeting"
  }
}

⚙️ 5. Crie o arquivo l10n.yaml

Na raiz do módulo onde estão as pastas l10n e generated, crie o arquivo l10n.yaml com a seguinte configuração:

arb-dir: lib/commons/utils/localization/l10n
template-arb-file: intl_pt.arb
output-dir: lib/generated
output-localization-file: l10n.dart
output-class: L10N
preferred-supported-locales: [pt, en]
synthetic-package: false

🔸 Observação: Ajuste os caminhos de arb-dir e output-dir conforme a estrutura do seu projeto.


🛠️ 6. Gere os arquivos de localização

Execute o seguinte comando no terminal para gerar os arquivos necessários:

flutter gen-l10n --no-synthetic-package

Após isso, os arquivos serão gerados na pasta generated, e você poderá importar e utilizar a classe L10N no seu projeto normalmente.


✅ Pronto! Agora seu projeto está configurado para suportar internacionalização com o Flutter L10n.


Last updated