tree: 58836b2fea73190ed63e4ed212942c99eb3374d2 [path history] [tgz]
  1. gallery_localizations.dart
  2. gallery_localizations_af.dart
  3. gallery_localizations_am.dart
  4. gallery_localizations_ar.dart
  5. gallery_localizations_as.dart
  6. gallery_localizations_az.dart
  7. gallery_localizations_be.dart
  8. gallery_localizations_bg.dart
  9. gallery_localizations_bn.dart
  10. gallery_localizations_bs.dart
  11. gallery_localizations_ca.dart
  12. gallery_localizations_cs.dart
  13. gallery_localizations_da.dart
  14. gallery_localizations_de.dart
  15. gallery_localizations_el.dart
  16. gallery_localizations_en.dart
  17. gallery_localizations_es.dart.REMOVED.git-id
  18. gallery_localizations_et.dart
  19. gallery_localizations_eu.dart
  20. gallery_localizations_fa.dart
  21. gallery_localizations_fi.dart
  22. gallery_localizations_fil.dart
  23. gallery_localizations_fr.dart
  24. gallery_localizations_gl.dart
  25. gallery_localizations_gsw.dart
  26. gallery_localizations_gu.dart
  27. gallery_localizations_he.dart
  28. gallery_localizations_hi.dart
  29. gallery_localizations_hr.dart
  30. gallery_localizations_hu.dart
  31. gallery_localizations_hy.dart
  32. gallery_localizations_id.dart
  33. gallery_localizations_is.dart
  34. gallery_localizations_it.dart
  35. gallery_localizations_ja.dart
  36. gallery_localizations_ka.dart
  37. gallery_localizations_kk.dart
  38. gallery_localizations_km.dart
  39. gallery_localizations_kn.dart
  40. gallery_localizations_ko.dart
  41. gallery_localizations_ky.dart
  42. gallery_localizations_lo.dart
  43. gallery_localizations_lt.dart
  44. gallery_localizations_lv.dart
  45. gallery_localizations_mk.dart
  46. gallery_localizations_ml.dart
  47. gallery_localizations_mn.dart
  48. gallery_localizations_mr.dart
  49. gallery_localizations_ms.dart
  50. gallery_localizations_my.dart
  51. gallery_localizations_nb.dart
  52. gallery_localizations_ne.dart
  53. gallery_localizations_nl.dart
  54. gallery_localizations_or.dart
  55. gallery_localizations_pa.dart
  56. gallery_localizations_pl.dart
  57. gallery_localizations_pt.dart
  58. gallery_localizations_ro.dart
  59. gallery_localizations_ru.dart
  60. gallery_localizations_si.dart
  61. gallery_localizations_sk.dart
  62. gallery_localizations_sl.dart
  63. gallery_localizations_sq.dart
  64. gallery_localizations_sr.dart
  65. gallery_localizations_sv.dart
  66. gallery_localizations_sw.dart
  67. gallery_localizations_ta.dart
  68. gallery_localizations_te.dart
  69. gallery_localizations_th.dart
  70. gallery_localizations_tl.dart
  71. gallery_localizations_tr.dart
  72. gallery_localizations_uk.dart
  73. gallery_localizations_ur.dart
  74. gallery_localizations_uz.dart
  75. gallery_localizations_vi.dart
  76. gallery_localizations_zh.dart
  77. gallery_localizations_zu.dart
  78. intl_af.arb
  79. intl_am.arb
  80. intl_ar.arb
  81. intl_ar_EG.arb
  82. intl_ar_JO.arb
  83. intl_ar_MA.arb
  84. intl_ar_SA.arb
  85. intl_as.arb
  86. intl_az.arb
  87. intl_be.arb
  88. intl_bg.arb
  89. intl_bn.arb
  90. intl_bs.arb
  91. intl_ca.arb
  92. intl_cs.arb
  93. intl_da.arb
  94. intl_de.arb
  95. intl_de_AT.arb
  96. intl_de_CH.arb
  97. intl_el.arb
  98. intl_en.arb
  99. intl_en_AU.arb
  100. intl_en_CA.arb
  101. intl_en_GB.arb
  102. intl_en_IE.arb
  103. intl_en_IN.arb
  104. intl_en_NZ.arb
  105. intl_en_SG.arb
  106. intl_en_US.xml
  107. intl_en_ZA.arb
  108. intl_es.arb
  109. intl_es_419.arb
  110. intl_es_AR.arb
  111. intl_es_BO.arb
  112. intl_es_CL.arb
  113. intl_es_CO.arb
  114. intl_es_CR.arb
  115. intl_es_DO.arb
  116. intl_es_EC.arb
  117. intl_es_GT.arb
  118. intl_es_HN.arb
  119. intl_es_MX.arb
  120. intl_es_NI.arb
  121. intl_es_PA.arb
  122. intl_es_PE.arb
  123. intl_es_PR.arb
  124. intl_es_PY.arb
  125. intl_es_SV.arb
  126. intl_es_US.arb
  127. intl_es_UY.arb
  128. intl_es_VE.arb
  129. intl_et.arb
  130. intl_eu.arb
  131. intl_fa.arb
  132. intl_fi.arb
  133. intl_fil.arb
  134. intl_fr.arb
  135. intl_fr_CA.arb
  136. intl_fr_CH.arb
  137. intl_gl.arb
  138. intl_gsw.arb
  139. intl_gu.arb
  140. intl_he.arb
  141. intl_hi.arb
  142. intl_hr.arb
  143. intl_hu.arb
  144. intl_hy.arb
  145. intl_id.arb
  146. intl_is.arb
  147. intl_it.arb
  148. intl_ja.arb
  149. intl_ka.arb
  150. intl_kk.arb
  151. intl_km.arb
  152. intl_kn.arb
  153. intl_ko.arb
  154. intl_ky.arb
  155. intl_lo.arb
  156. intl_lt.arb
  157. intl_lv.arb
  158. intl_mk.arb
  159. intl_ml.arb
  160. intl_mn.arb
  161. intl_mr.arb
  162. intl_ms.arb
  163. intl_my.arb
  164. intl_nb.arb
  165. intl_ne.arb
  166. intl_nl.arb
  167. intl_or.arb
  168. intl_pa.arb
  169. intl_pl.arb
  170. intl_pt.arb
  171. intl_pt_BR.arb
  172. intl_pt_PT.arb
  173. intl_ro.arb
  174. intl_ru.arb
  175. intl_si.arb
  176. intl_sk.arb
  177. intl_sl.arb
  178. intl_sq.arb
  179. intl_sr.arb
  180. intl_sr_Latn.arb
  181. intl_sv.arb
  182. intl_sw.arb
  183. intl_ta.arb
  184. intl_te.arb
  185. intl_th.arb
  186. intl_tl.arb
  187. intl_tr.arb
  188. intl_uk.arb
  189. intl_ur.arb
  190. intl_uz.arb
  191. intl_vi.arb
  192. intl_zh.arb
  193. intl_zh_CN.arb
  194. intl_zh_HK.arb
  195. intl_zh_TW.arb
  196. intl_zu.arb
  197. README.md
lib/l10n/README.md

Localization

Creating New Locale Messages

When adding new strings to be localized, update intl_en.arb, which is used by this project as the template. When creating new entries, they have to be in the following format:

  "dartGetterVariableName": "english translation of the message",
  "@dartGetterVariableName": {
    "description": "description that the localizations delegate will use."
  },

In this example, dartGetterVariableName should be the Dart method/property name that you will be using in your localizations delegate.

After adding the new message in intl_en.arb, it can be used in the app by regenerating the GalleryLocalizations delegate. This allows use of the English message through your localizations delegate in the application code immediately without having to wait for the translations to be completed.

Generating GalleryLocalizations

Note that using grinder is simplest and that, under the hood, it runs the l10n scripts.

With Grinder

  1. Make sure you have grinder installed by running flutter pub get.
  2. Then run flutter pub run grinder l10n to generate GalleryLocalizations.

For more details on what flutter pub run grinder l10n does, see the next section With l10n scripts.

With l10n scripts

From the root directory, run:

dart ${YOUR_FLUTTER_PATH}/dev/tools/localization/bin/gen_l10n.dart \
    --template-arb-file=intl_en.arb \
    --output-localization-file=gallery_localizations.dart \
    --output-class=GalleryLocalizations

From the root directory, run dart tool/l10n_cli/main.dart, which will generate intl_en_US.xml. This will be used by the internal translation console to generate messages in the different locales.

Note that the filename for intl_en_US.xml is used by the internal translation console and changing the filename may require manually updating already translated messages to point to the new file. Therefore, avoid doing so unless necessary.

Run the formatter to make the Flutter analyzer happy:

flutter format .

Importing translations (for Flutter org members)

Once the translations are ready:

  1. Use the internal tool (push_l10n) to push the updated intl_<locale>.arb files to this repo. For more information, see /third_party/dart/flutter_gallery/README.md
  2. Generate GalleryLocalizations with the updated .arb files by running flutter pub run grinder l10n.