Eduardo Florence

Doc pt-br: Incluída a seção de Internacionalização

Só existia na documentação em inglês
@@ -30,10 +30,11 @@ @@ -30,10 +30,11 @@
30 - [Mais detalhes sobre gerenciamento de dependências](#mais-detalhes-sobre-gerenciamento-de-dependências) 30 - [Mais detalhes sobre gerenciamento de dependências](#mais-detalhes-sobre-gerenciamento-de-dependências)
31 - [Como contribuir](#como-contribuir) 31 - [Como contribuir](#como-contribuir)
32 - [Utilidades](#utilidades) 32 - [Utilidades](#utilidades)
  33 + - [Internacionalização](#internacionalização)
33 - [Mudar tema (changeTheme)](#mudar-tema-changetheme) 34 - [Mudar tema (changeTheme)](#mudar-tema-changetheme)
34 - [Outras APIs avançadas](#outras-apis-avançadas) 35 - [Outras APIs avançadas](#outras-apis-avançadas)
35 - [Configurações Globais opcionais e configurações manuais](#configurações-globais-opcionais-e-configurações-manuais) 36 - [Configurações Globais opcionais e configurações manuais](#configurações-globais-opcionais-e-configurações-manuais)
36 - - [Video explanation of Other GetX Features](#video-explanation-of-other-getx-features) 37 + - [Video explanation of Other GetX Features](#explicação-em-vídeo-sobre-outras-features-do-getx)
37 - [Breaking Changes da versão 2 para 3](#breaking-changes-da-versão-2-para-3) 38 - [Breaking Changes da versão 2 para 3](#breaking-changes-da-versão-2-para-3)
38 - [Tipagem Rx](#tipagem-rx) 39 - [Tipagem Rx](#tipagem-rx)
39 - [RxController e GetBuilder se uniram](#rxcontroller-e-getbuilder-se-uniram) 40 - [RxController e GetBuilder se uniram](#rxcontroller-e-getbuilder-se-uniram)
@@ -299,6 +300,61 @@ Qualquer contribuição é bem-vinda! @@ -299,6 +300,61 @@ Qualquer contribuição é bem-vinda!
299 300
300 # Utilidades 301 # Utilidades
301 302
  303 +## Internacionalização
  304 +### Traduções
  305 +As traduções são mantidas num simples dictionary map de chave-valor.
  306 +Para adicionar traduções personalizadas, crie uma classe e estenda `Translations`.
  307 +```dart
  308 +import 'package:get/get.dart';
  309 +
  310 +class Messages extends Translations {
  311 + @override
  312 + Map<String, Map<String, String>> get keys => {
  313 + 'en_US': {
  314 + 'hello': 'Hello World',
  315 + },
  316 + 'de_DE': {
  317 + 'hello': 'Hallo Welt',
  318 + }
  319 + };
  320 +}
  321 +```
  322 +
  323 +#### Usando traduções
  324 +Basta anexar `.tr` a chave especificada e ela será traduzida, usando o valor atual de `Get.locale` e `Get.fallbackLocale`.
  325 +```dart
  326 +Text('hello'.tr);
  327 +```
  328 +
  329 +### Localidade
  330 +Passe parâmetros para `GetMaterialApp` definir a localidade e as traduções.
  331 +
  332 +```dart
  333 +return GetMaterialApp(
  334 + translations: Messages(), // suas traduções
  335 + locale: Locale('en', 'US'), // as traduções serão exibidas para esta localidade
  336 + fallbackLocale: Locale('en', 'UK'), // especifica uma localidade em caso de falha na localidade definida
  337 + supportedLocales: <Locale>[Locale('en', 'UK'), Locale('en', 'US'), Locale('de','DE')] // especifica as localidades suportados
  338 +);
  339 +```
  340 +
  341 +#### Alterar local
  342 +Use `Get.updateLocale(locale)` para atualizar a localidade. As traduções usarão automaticamente a nova localidade.
  343 +```dart
  344 +var locale = Locale('en', 'US');
  345 +Get.updateLocale(locale);
  346 +```
  347 +
  348 +#### Localidade do sistema operacional
  349 +Para ler a localidade do sistema operacional, você pode usar `window.locale`.
  350 +```dart
  351 +import 'dart:ui' as ui;
  352 +
  353 +return GetMaterialApp(
  354 + locale: ui.window.locale,
  355 +);
  356 +```
  357 +
302 ## Mudar tema (changeTheme) 358 ## Mudar tema (changeTheme)
303 359
304 Por favor não use widget acima do GetMaterialApp para atualizar o tema. Isso pode causar keys duplicadas. Várias pessoas estão acostumadas com o jeito normal de criar um Widget `ThemeProvider` só pra alterar o tema do app, mas isso definitivamente NÃO é necessário no Get. 360 Por favor não use widget acima do GetMaterialApp para atualizar o tema. Isso pode causar keys duplicadas. Várias pessoas estão acostumadas com o jeito normal de criar um Widget `ThemeProvider` só pra alterar o tema do app, mas isso definitivamente NÃO é necessário no Get.