Para mudar o idioma do seu aplicativo Flutter e garantir que as opções sejam exibidas no idioma desejado, você precisa seguir alguns passos para configurar a internacionalização (i18n) e a localização (l10n) do seu aplicativo. Aqui está um guia passo a passo:
-
Adicione o pacote Flutter Localizations ao seu projeto: Primeiro, você precisa adicionar o pacote
flutter_localizations
ao seu arquivopubspec.yaml
. Este pacote fornece um conjunto de traduções pré-construídas e widgets de localização que você pode usar para traduzir o conteúdo do seu aplicativo.dependencies: flutter: sdk: flutter flutter_localizations: sdk: flutter
-
Adicione o pacote intl: Além do
flutter_localizations
, você também precisa adicionar o pacoteintl
para suporte a internacionalização.dependencies: flutter: sdk: flutter flutter_localizations: sdk: flutter intl: any
-
Configure o MaterialApp ou CupertinoApp: No seu arquivo principal do Flutter (geralmente
main.dart
), você precisa configurar oMaterialApp
ouCupertinoApp
para usar as localizações do Flutter e especificar os idiomas suportados pelo seu aplicativo.import 'package:flutter_localizations/flutter_localizations.dart'; return MaterialApp( title: 'Seu Aplicativo', localizationsDelegates: [ GlobalMaterialLocalizations.delegate, GlobalWidgetsLocalizations.delegate, GlobalCupertinoLocalizations.delegate, ], supportedLocales: [ Locale('en', 'US'), // Inglês Locale('pt', 'BR'), // Português // Adicione outros idiomas suportados aqui ], home: SuaTelaInicial(), );
-
Defina o locale do dispositivo: Para garantir que o aplicativo use o idioma do dispositivo do usuário, você pode definir um
localeResolutionCallback
noMaterialApp
. Isso verifica se o idioma do dispositivo é suportado pelo aplicativo e, caso contrário, retorna o idioma padrão.MaterialApp( localeResolutionCallback: (deviceLocale, supportedLocales) { for (var locale in supportedLocales) { if (locale.languageCode == deviceLocale!.languageCode && locale.countryCode == deviceLocale.countryCode) { return deviceLocale; } } return supportedLocales.first; }, );
-
Adicione arquivos de tradução: Para cada idioma suportado, você precisa criar arquivos de tradução. Esses arquivos contêm as strings traduzidas que serão usadas pelo aplicativo. Você pode usar o pacote
intl
para gerar automaticamente esses arquivos a partir de um arquivo de mensagens. -
Use as traduções no seu aplicativo: Com os arquivos de tradução prontos, você pode usar a classe
AppLocalizations
para acessar as strings traduzidas no seu aplicativo.
Esses passos garantirão que o seu aplicativo Flutter suporte múltiplos idiomas e exiba as opções no idioma do dispositivo do usuário, se suportado, ou no idioma padrão especificado.
Citações:
[1] https://santhosh-adiga-u.medium.com/localization-in-flutter-26069d7c69aa
[2] https://docs.flutter.dev/ui/accessibility-and-internationalization/internationalization
[3] https://medium.com/go-with-flutter/internationalization-and-localization-in-flutter-647499b42789
[4] https://stackoverflow.com/questions/65307961/button-to-change-the-language-flutter
[5] https://phrase.com/blog/posts/flutter-localization/
[6] https://flutterjunction.com/how-to-change-app-language-in-flutter
[7] https://lokalise.com/blog/flutter-i18n/
[8] https://www.topcoder.com/thrive/articles/localize-your-flutter-app-part-one