Kai Oswald
Committed by GitHub

Create internationalization.md

This is a very basic documentation to getting started with internationalization with getx.
  1 +## Translations
  2 +Translations are kept as a simple key-value dictionary map.
  3 +To add custom translations, create a class and extend `Translations`.
  4 +```dart
  5 +import 'package:get/get.dart';
  6 +
  7 +class Messages extends Translations {
  8 + @override
  9 + Map<String, Map<String, String>> get keys => {
  10 + 'en_US': {
  11 + 'hello': 'Hello World',
  12 + },
  13 + 'de_DE': {
  14 + 'hello': 'Hallo Welt',
  15 + }
  16 + };
  17 +}
  18 +```
  19 +
  20 +### Using translations
  21 +Just append `.tr` to the specified key and it will be translated, using the current value of `Get.locale` and `Get.fallbackLocale`.
  22 +```dart
  23 +Text('title'.tr);
  24 +```
  25 +
  26 +## Locales
  27 +Pass parameters to `GetMaterialApp` to define the locale and translations.
  28 +
  29 +```dart
  30 +return GetMaterialApp(
  31 + translations: Messages(), // your translations
  32 + locale: Locale('en_US'), // translations will be displayed in that locale
  33 + fallbackLocale: Locale('en_US'), // specify the fallback locale in case an invalid locale is selected.
  34 + supportedLocales: <Locale>[Locale('en_US'), Locale('de_DE')] // specify the supported locales
  35 +);
  36 +```
  37 +
  38 +### Change locale
  39 +Call `Get.updateLocale(locale)` to update the locale. Translations then automatically use the new locale.
  40 +```dart
  41 +var locale = Locale('en_US');
  42 +Get.updateLocale(locale);
  43 +```
  44 +
  45 +### System locale
  46 +To read the system locale, you could use `Platform.localeName`.
  47 +```dart
  48 +return GetMaterialApp(
  49 + locale: Locale(Platform.localeName),
  50 +);
  51 +```