🇧🇷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
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
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
eL10N.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 oMaterialApp
é 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
.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
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
eoutput-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