10.6. Internacionalização e localização em Flutter: Formato de moedas

Ouça em áudio

Internacionalização e localização são aspectos cruciais do desenvolvimento de aplicativos que muitas vezes são negligenciados. No entanto, eles são vitais para alcançar uma audiência global. Neste contexto, o Flutter e o Dart oferecem uma série de ferramentas e recursos para facilitar esse processo. Um dos aspectos mais importantes da localização é o formato da moeda. Neste capítulo, vamos explorar como podemos implementar a internacionalização e a localização em Flutter, com foco no formato da moeda.

Para começar, precisamos entender o que é internacionalização e localização. A internacionalização, ou i18n, é o processo de desenvolvimento de produtos de software que podem ser facilmente adaptados para vários idiomas e regiões sem modificações de engenharia. Por outro lado, a localização, ou l10n, é o processo de adaptação de um produto internacionalizado para uma região ou idioma específico.

No Flutter, a internacionalização é facilitada pela classe `WidgetsApp`, que usa o idioma do sistema do dispositivo para determinar as configurações de localização. Para adicionar suporte para idiomas adicionais, você pode estender a classe `LocalizationsDelegate`.

Quando se trata de formatar moedas, o pacote `intl` do Dart é extremamente útil. Este pacote fornece muitas funções para formatar números, datas e moedas. Para usar o pacote `intl`, você precisa adicioná-lo ao seu arquivo `pubspec.yaml` e importá-lo em seu arquivo Dart.

dependencies:
  flutter:
    sdk: flutter
  intl: ^0.17.0

Depois de importar o pacote `intl`, você pode usar a classe `NumberFormat` para formatar moedas. A classe `NumberFormat` tem um método `currency` que pode ser usado para formatar números como moedas. O método `currency` aceita três argumentos: `locale`, `name` e `symbol`. O argumento `locale` é uma string que representa o código do idioma do idioma que você deseja usar para formatar a moeda. O argumento `name` é uma string que representa o nome da moeda que você deseja formatar. Por fim, o argumento `symbol` é uma string que representa o símbolo da moeda que você deseja usar.

var format = NumberFormat.currency(locale: 'en_US', name: 'USD', symbol: '\$');
print(format.format(123456789.987654321)); // Output: \$123,456,789.99

Como você pode ver no exemplo acima, o método `currency` formata o número como uma moeda em dólares americanos, incluindo o símbolo do dólar e duas casas decimais.

É importante notar que o pacote `intl` suporta muitos idiomas e moedas diferentes. Para ver a lista completa de idiomas e moedas suportados, você pode consultar a documentação oficial do Dart.

Além disso, o Flutter também suporta a localização de texto em seu aplicativo. Para localizar o texto em seu aplicativo, você pode usar a classe `Intl` do pacote `intl`. A classe `Intl` tem um método `message` que pode ser usado para definir mensagens que podem ser traduzidas para diferentes idiomas. Para usar o método `message`, você precisa definir um mapa de mensagens para cada idioma que seu aplicativo suporta. Cada mapa de mensagens é um mapa de strings para strings, onde a chave é a mensagem original em inglês e o valor é a tradução da mensagem para o idioma correspondente.

var messages = {
  'en': {
    'hello': 'Hello',
  },
  'es': {
    'hello': 'Hola',
  },
};

print(Intl.message(
  'hello',
  name: 'hello',
  locale: 'es',
  defaultMessage: 'Hello',
  messages: messages,
)); // Output: Hola

Como você pode ver no exemplo acima, o método `message` traduz a mensagem "hello" para espanhol, porque o `locale` é definido como 'es'.

Em resumo, a internacionalização e a localização são aspectos importantes do desenvolvimento de aplicativos que podem ajudar você a alcançar uma audiência global. O Flutter e o Dart facilitam a implementação da internacionalização e da localização, especialmente quando se trata de formatar moedas. Com o pacote `intl`, você pode facilmente formatar números como moedas em muitos idiomas e moedas diferentes. Além disso, você também pode localizar o texto em seu aplicativo usando a classe `Intl`.

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

Qual é a diferença entre internacionalização e localização no contexto de desenvolvimento de aplicativos?

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: Formato de medidas

Próxima página do Ebook Gratuito:

140Internacionalização e localização em Flutter: Formato de medidas

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