Skip to content

Instantly share code, notes, and snippets.

@RochaGabriell
Created April 17, 2024 12:54
Show Gist options
  • Save RochaGabriell/032e51f3a84c4c9443d9b7895e7e95b3 to your computer and use it in GitHub Desktop.
Save RochaGabriell/032e51f3a84c4c9443d9b7895e7e95b3 to your computer and use it in GitHub Desktop.
Internacionalizando aplicativos Flutter

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:

  1. Adicione o pacote Flutter Localizations ao seu projeto: Primeiro, você precisa adicionar o pacote flutter_localizations ao seu arquivo pubspec.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
  2. Adicione o pacote intl: Além do flutter_localizations, você também precisa adicionar o pacote intl para suporte a internacionalização.

    dependencies:
      flutter:
        sdk: flutter
      flutter_localizations:
        sdk: flutter
      intl: any
  3. Configure o MaterialApp ou CupertinoApp: No seu arquivo principal do Flutter (geralmente main.dart), você precisa configurar o MaterialApp ou CupertinoApp 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(),
    );
  4. Defina o locale do dispositivo: Para garantir que o aplicativo use o idioma do dispositivo do usuário, você pode definir um localeResolutionCallback no MaterialApp. 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;
      },
    );
  5. 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.

  6. 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

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment