10.10. Internacionalização e localização em Flutter: Alteração dinâmica do idioma

Ouça em áudio

10.10. Internacionalização e Localização em Flutter: Alteração Dinâmica do Idioma

A internacionalização e a localização são partes essenciais do desenvolvimento de aplicativos em Flutter, especialmente se você deseja alcançar uma audiência global. A internacionalização refere-se ao processo de desenvolvimento de um aplicativo que suporta vários idiomas, enquanto a localização refere-se ao processo de tradução do aplicativo para um idioma específico.

Por que a Internacionalização e a Localização são importantes?

Imagine que você criou um aplicativo incrível que oferece uma ótima experiência ao usuário, mas está disponível apenas em um idioma. Isso limitaria significativamente o número de pessoas que podem usar seu aplicativo, especialmente em um mundo tão globalizado. Ao internacionalizar e localizar seu aplicativo, você pode alcançar um público muito mais amplo e oferecer uma experiência de usuário ainda melhor, pois os usuários podem interagir com o aplicativo em seu idioma nativo.

Como implementar a Internacionalização e a Localização em Flutter?

A primeira coisa que você precisa fazer é adicionar as dependências necessárias ao seu arquivo pubspec.yaml. Essas dependências incluem flutter_localizations e intl.

dependencies:
  flutter:
    sdk: flutter
  flutter_localizations:
    sdk: flutter
  intl: ^0.17.0

Em seguida, você precisa importar as bibliotecas necessárias em seu arquivo main.dart e adicionar os delegates de localização ao seu aplicativo.

import 'package:flutter_localizations/flutter_localizations.dart';
import 'package:intl/intl.dart';

void main() {
  runApp(MyApp());
}

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      supportedLocales: [
        Locale('en', 'US'),
        Locale('es', 'ES'),
      ],
      localizationsDelegates: [
        GlobalMaterialLocalizations.delegate,
        GlobalWidgetsLocalizations.delegate,
        GlobalCupertinoLocalizations.delegate,
      ],
      localeResolutionCallback: (locale, supportedLocales) {
        for (var supportedLocale in supportedLocales) {
          if (supportedLocale.languageCode == locale.languageCode &&
              supportedLocale.countryCode == locale.countryCode) {
            return supportedLocale;
          }
        }
        return supportedLocales.first;
      },
      home: MyHomePage(),
    );
  }
}

Este código define quais idiomas seu aplicativo suportará (neste caso, inglês e espanhol) e como o Flutter deve escolher o idioma apropriado com base nas configurações do dispositivo do usuário.

Como criar arquivos de localização?

Os arquivos de localização são onde você armazenará todas as suas strings traduzidas. Você pode criar um arquivo para cada idioma que seu aplicativo suporta. Por exemplo, você pode ter um arquivo en.dart para inglês e um arquivo es.dart para espanhol. Cada arquivo conterá um mapa de strings, onde a chave é o identificador da string e o valor é a tradução.

// en.dart
const Map enUS = {
  'hello': 'Hello',
};

// es.dart
const Map esES = {
  'hello': 'Hola',
};

Em seguida, você pode usar esses arquivos de localização em seu aplicativo para exibir as strings traduzidas.

Text(AppLocalizations.of(context).translate('hello'))

Alteração Dinâmica do Idioma

Em alguns casos, você pode querer permitir que os usuários alterem o idioma do aplicativo diretamente de dentro do aplicativo. Para isso, você pode criar uma função que atualiza o locale do aplicativo.

void changeLanguage(Locale locale) {
  MyApp.setLocale(context, locale);
}

Em seguida, você pode chamar essa função sempre que o usuário selecionar um novo idioma.

Conclusão

A internacionalização e a localização são partes essenciais do desenvolvimento de aplicativos em Flutter. Ao suportar vários idiomas, você pode alcançar um público mais amplo e oferecer uma experiência de usuário melhor. Felizmente, o Flutter torna relativamente fácil implementar a internacionalização e a localização com a ajuda das bibliotecas flutter_localizations e intl.

Agora responda o exercício sobre o conteúdo:

O que é internacionalização e localização em Flutter e por que é importante?

Você acertou! Parabéns, agora siga para a próxima página

Você errou! Tente novamente.

Imagem do artigo Internacionalização e localização em Flutter: Suporte a pluralização

Próxima página do Ebook Gratuito:

144Internacionalização e localização em Flutter: Suporte a pluralização

3 minutos

Ganhe seu Certificado deste Curso Gratuitamente! ao baixar o aplicativo Cursa e ler o ebook por lá. Disponível na Google Play ou App Store!

Disponível no Google Play Disponível no App Store

+ de 6,5 milhões
de alunos

Certificado Gratuito e
Válido em todo o Brasil

48 mil exercícios
gratuitos

4,8/5 classificação
nas lojas de apps

Cursos gratuitos em
vídeo, áudio e texto