Página 141 de 267
10.8. Internacionalização e localização em Flutter: Suporte a múltiplos idiomas
Ouça em áudio
Internacionalização e localização são aspectos críticos ao desenvolver um aplicativo em Flutter. Isso porque, para alcançar um público global, é vital que seu aplicativo possa ser usado em vários idiomas e formatos de data, hora e número. Este é o ponto em que a internacionalização e a localização entram em jogo. A internacionalização (i18n) é o processo de projetar e preparar seu aplicativo para ser usado em diferentes idiomas e regiões. A localização (l10n), por sua vez, é o processo de traduzir o aplicativo internacionalizado e adaptá-lo a uma região específica.
Para começar a internacionalizar seu aplicativo Flutter, você precisa adicionar as dependências `flutter_localizations` e `intl` em seu arquivo `pubspec.yaml`. A primeira é a biblioteca de localização do Flutter, enquanto a segunda é uma biblioteca Dart para internacionalização e localização.
dependencies: flutter: sdk: flutter flutter_localizations: sdk: flutter intl: ^0.17.0
Depois de adicionar as dependências, você precisa importá-las em seu arquivo principal e definir as localidades que seu aplicativo suportará. Isso pode ser feito no widget `MaterialApp` ou `CupertinoApp`.
import 'package:flutter_localizations/flutter_localizations.dart'; MaterialApp( localizationsDelegates: [ GlobalMaterialLocalizations.delegate, GlobalWidgetsLocalizations.delegate, GlobalCupertinoLocalizations.delegate, ], supportedLocales: [ const Locale('en', ''), // English const Locale('es', ''), // Spanish // Other locales... ], );
A propriedade `localizationsDelegates` lista os delegados que fornecerão localizações para o aplicativo. Os delegados de localização `GlobalMaterialLocalizations` e `GlobalWidgetsLocalizations` fornecem localizações padrão para o Material Design e os widgets do Flutter, respectivamente. O `GlobalCupertinoLocalizations` fornece localizações para widgets no estilo iOS.
A propriedade `supportedLocales` define as localidades que o aplicativo suporta. Cada localidade é representada por um objeto `Locale`, que tem um código de idioma (`en` para inglês, `es` para espanhol, etc.) e, opcionalmente, um código de país (para especificar variantes regionais do idioma).
Depois de definir as localidades suportadas, você pode usar o widget `Localizations` para acessar as localizações em seus widgets. Por exemplo, para exibir uma data formatada de acordo com a localidade atual, você pode fazer o seguinte:
Text( DateFormat.yMMMd().format(DateTime.now()), );
A classe `DateFormat` vem da biblioteca `intl` e fornece métodos para formatar datas de acordo com a localidade atual.
Para traduzir strings, você pode definir um delegado de localização personalizado que fornece uma classe de localização. A classe de localização contém métodos que retornam as strings traduzidas. Você pode gerar arquivos de localização a partir de arquivos de modelo usando a ferramenta `intl_translation`.
Em resumo, a internacionalização e a localização em Flutter são processos importantes para tornar seu aplicativo acessível a um público global. Embora possa parecer complexo no início, o Flutter fornece várias ferramentas e bibliotecas para facilitar a i18n e l10n.
Agora responda o exercício sobre o conteúdo:
Qual é a diferença entre internacionalização e localização no desenvolvimento de um aplicativo Flutter?
Você acertou! Parabéns, agora siga para a próxima página
Você errou! Tente novamente.
Próxima página do Ebook Gratuito: