```eval_rst .. _patternpage-i18n: ``` # Internationalisation patterns ```eval_rst .. :: When you update this list, also update development/translation.md * :ref:`pattern-i18n-schema-design` * :ref:`pattern-i18n-links-schema` * :ref:`pattern-i18n-examples` ``` --- ```eval_rst .. _pattern-i18n-schema-design: ``` ## Schema design for a global audience ### Problem Data structures may be based on local cultural assumptions, or known falsehoods. ### Solution There are a number of [lists of 'falsehoods programmers believe'](https://github.com/kdeldycke/awesome-falsehood) that provide a useful corrective to assumptions that might otherwise make it tricky to use data structures to represent names, addresses, locations or other information from particular parts of the world. ````eval_rst .. todo:: .. markdown:: ### Method ### Example ### Related patterns ```eval_rst :ref:`pattern-slug`; :ref:`pattern-slug-2`; ``` ### Related components ```eval_rst :ref:`component-slug`; :ref:`component-slug-2`; ``` ```` --- ```eval_rst .. _pattern-i18n-links-schema: ``` ## Internationalise links in the schema ### Problem Links from within schema field descriptions may point to only the English docs. ### Solution When linking to documentation from within schema field descriptions, use `{lang}` tokens, and replace these when compiling schemas and documentation, so that users are always linked to their own language versions of the documentation. ````eval_rst .. todo:: .. markdown:: ### Method ### Example ### Related patterns ```eval_rst :ref:`pattern-slug`; :ref:`pattern-slug-2`; ``` ### Related components ```eval_rst :ref:`component-slug`; :ref:`component-slug-2`; ``` ```` --- ```eval_rst .. _pattern-i18n-examples: ``` ## Examples for a global audience ### Problem Examples may be less relevant outside of the context they were originally written in. ### Solution Consider the cultural relevance of the examples used in documentation, or explore whether examples can be generated using tools that support localisation. ````eval_rst .. todo:: .. markdown:: ### Method ### Example ### Related patterns ```eval_rst :ref:`pattern-slug`; :ref:`pattern-slug-2`; ``` ### Related components ```eval_rst :ref:`component-slug`; :ref:`component-slug-2`; ``` ````