Este projeto é um aplicativo de exemplo Flutter que demonstra como implementar a internacionalização e localização (i18n e l10n) usando o pacote intl e os recursos de localização nativos do Flutter. Ele oferece suporte a múltiplos idiomas e formatação de dados específicos de cada localidade.
- Suporte a múltiplos idiomas: Alterne entre inglês, espanhol e português.
- Localização de strings: Demonstração de strings localizadas usando
AppLocalizations. - Plurals e gêneros: Exemplos de como lidar com pluralização e gênero em diferentes idiomas.
- Formatação de data e moeda: Utiliza o pacote
intlpara formatar datas e valores monetários de acordo com olocaleselecionado. - Troca de idioma em tempo de execução: Permite que o usuário mude o idioma do aplicativo dinamicamente.
Estas instruções ajudarão você a obter uma cópia do projeto em execução em sua máquina local para fins de desenvolvimento e teste.
Certifique-se de ter o Flutter SDK instalado e configurado em sua máquina. Para mais informações, consulte a documentação oficial do Flutter.
- Clone o repositório:
git clone https://github.com/elrick044/l10n cd l10n - Instale as dependências:
flutter pub get
- Gere os arquivos de localização:
Este projeto usa a geração automática de arquivos de localização. Se você alterar as definições de localização (
.arbfiles), você precisará executar:Este comando é ativado pela linhaflutter gen-l10n
generate: trueno seupubspec.yaml.
Para executar o aplicativo em um dispositivo ou emulador:
flutter runlib/main.dart: O ponto de entrada principal do aplicativo, configurando os delegados de localização e os idiomas suportados.lib/l10n/app_localizations.dart: Arquivo gerado que contém as classes de localização.lib/l10n/*.arb: Arquivos ARB (Application Resource Bundle) que contêm as traduções para cada idioma.
Se você quiser contribuir com este projeto, sinta-se à vontade para abrir um issue ou enviar um pull request.
Este projeto está licenciado sob a Licença MIT - veja o arquivo LICENSE para detalhes.
Se você tiver alguma dúvida ou sugestão, por favor, abra um issue no repositório do GitHub.