🇧🇷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:

🔸 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:

🔸 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:


⚙️ 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:

🔸 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:


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