{"title":"Localizing Django","version":"1.11","locale":"en","docname":"internals/contributing/localizing","url":"/en/1.11/internals/contributing/localizing/","canonical":"https://djangodocs.dev/en/1.11/internals/contributing/localizing/","summary":"Various parts of Django, such as the admin site and validation error messages, are internationalized. This means they display differently depending on each user’s…","html":"<h1>Localizing Django<a class=\"heading-anchor\" href=\"#localizing-django\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h1>\n<p>Various parts of Django, such as the admin site and validation error messages,\nare internationalized. This means they display differently depending on each\nuser’s language or country. For this, Django uses the same internationalization\nand localization infrastructure available to Django applications, described in\nthe <a class=\"reference internal\" href=\"/en/1.11/topics/i18n/\"><span class=\"doc\">i18n documentation</span></a>.</p>\n<section id=\"translations\">\n<h2>Translations<a class=\"heading-anchor\" href=\"#translations\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h2>\n<p>Translations are contributed by Django users worldwide. The translation work is\ncoordinated at <a class=\"reference external\" href=\"https://www.transifex.com/\">Transifex</a>.</p>\n<p>If you find an incorrect translation or want to discuss specific translations,\ngo to the <a class=\"reference external\" href=\"https://www.transifex.com/django/django/\">Django project page</a>. If you would like to help out with\ntranslating or add a language that isn’t yet translated, here’s what to do:</p>\n<ul>\n<li><p>Join the <a class=\"reference internal\" href=\"/en/1.11/internals/mailing-lists/#django-i18n-mailing-list\"><span class=\"std std-ref\">Django i18n mailing list</span></a> and\nintroduce yourself.</p></li>\n<li><p>Make sure you read the notes about <a class=\"reference internal\" href=\"/en/1.11/topics/i18n/translation/#specialties-of-django-i18n\"><span class=\"std std-ref\">Specialties of Django translation</span></a>.</p></li>\n<li><p>Sign up at <a class=\"reference external\" href=\"https://www.transifex.com/\">Transifex</a> and visit the <a class=\"reference external\" href=\"https://www.transifex.com/django/django/\">Django project page</a>.</p></li>\n<li><p>On the <a class=\"reference external\" href=\"https://www.transifex.com/django/django/\">Django project page</a>, choose the language you want to work on,\n<strong>or</strong> – in case the language doesn’t exist yet –\nrequest a new language team by clicking on the “Request language” link\nand selecting the appropriate language.</p></li>\n<li><p>Then, click the “Join this Team” button to become a member of this team.\nEvery team has at least one coordinator who is responsible to review\nyour membership request. You can of course also contact the team\ncoordinator to clarify procedural problems and handle the actual\ntranslation process.</p></li>\n<li><p>Once you are a member of a team choose the translation resource you\nwant to update on the team page. For example the “core” resource refers\nto the translation catalog that contains all non-contrib translations.\nEach of the contrib apps also have a resource (prefixed with “contrib”).</p>\n<aside class=\"admonition admonition-note\" role=\"note\">\n<p class=\"admonition-title\">Note</p>\n<p>For more information about how to use Transifex, read the\n<a class=\"reference external\" href=\"https://docs.transifex.com/\">Transifex User Guide</a>.</p>\n</aside>\n</li>\n</ul>\n<p>Translations from Transifex are only integrated into the Django repository at\nthe time of a new <a class=\"reference internal\" href=\"/en/1.11/internals/release-process/#term-Feature-release\"><span class=\"xref std std-term\">feature release</span></a>. We try to update them a second time\nduring one of the following <a class=\"reference internal\" href=\"/en/1.11/internals/release-process/#term-Patch-release\"><span class=\"xref std std-term\">patch release</span></a>s, but that depends on the\ntranslation manager’s availability. So don’t miss the string freeze period\n(between the release candidate and the feature release) to take the opportunity\nto complete and fix the translations for your language!</p>\n</section>\n<section id=\"formats\">\n<h2>Formats<a class=\"heading-anchor\" href=\"#formats\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h2>\n<p>You can also review <code class=\"docutils literal notranslate\"><span class=\"pre\">conf/locale/&lt;locale&gt;/formats.py</span></code>. This file describes\nthe date, time and numbers formatting particularities of your locale. See\n<a class=\"reference internal\" href=\"/en/1.11/topics/i18n/formatting/\"><span class=\"doc\">Format localization</span></a> for details.</p>\n<p>The format files aren’t managed by the use of Transifex. To change them, you\nmust <a class=\"reference internal\" href=\"/en/1.11/internals/contributing/writing-code/submitting-patches/\"><span class=\"doc\">create a patch</span></a> against the\nDjango source tree, as for any code change:</p>\n<ul class=\"simple\">\n<li><p>Create a diff against the current Git master branch.</p></li>\n<li><p>Open a ticket in Django’s ticket system, set its <code class=\"docutils literal notranslate\"><span class=\"pre\">Component</span></code> field to\n<code class=\"docutils literal notranslate\"><span class=\"pre\">Translations</span></code>, and attach the patch to it.</p></li>\n</ul>\n</section>\n<section id=\"documentation\">\n<span id=\"translating-documentation\"></span><h2>Documentation<a class=\"heading-anchor\" href=\"#documentation\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h2>\n<p>There is also an opportunity to translate the documentation, though this is a\nhuge undertaking to complete entirely (you have been warned!). We use the same\n<a class=\"reference external\" href=\"https://www.transifex.com/django/django-docs/\">Transifex tool</a>. The\ntranslations will appear at <code class=\"docutils literal notranslate\"><span class=\"pre\">https://docs.djangoproject.com/&lt;language_code&gt;/</span></code>\nwhen at least the <code class=\"docutils literal notranslate\"><span class=\"pre\">docs/intro/*</span></code> files are fully translated in your language.</p>\n</section>","rootId":"localizing-django","toc":[{"title":"Translations","anchor":"translations","children":[]},{"title":"Formats","anchor":"formats","children":[]},{"title":"Documentation","anchor":"documentation","children":[]}],"breadcrumbs":[{"docname":"internals/index","title":"Django internals","url":"/en/1.11/internals/"},{"docname":"internals/contributing/index","title":"Contributing to Django","url":"/en/1.11/internals/contributing/"}],"prev":{"docname":"internals/contributing/writing-documentation","title":"Writing documentation","url":"/en/1.11/internals/contributing/writing-documentation/"},"next":{"docname":"internals/contributing/committing-code","title":"Committing code","url":"/en/1.11/internals/contributing/committing-code/"},"formats":{"html":"/en/1.11/internals/contributing/localizing/","markdown":"/en/1.11/internals/contributing/localizing.md","json":"/en/1.11/internals/contributing/localizing.json"},"source":"https://github.com/django/django/blob/stable/1.11.x/docs/internals/contributing/localizing.txt","official":"https://docs.djangoproject.com/en/1.11/internals/contributing/localizing/","inVersions":["dev","6.1","6.0","5.2","5.1","5.0","4.2","4.1","4.0","3.2","3.1","3.0","2.2","2.1","2.0","1.11","1.10","1.9","1.8"],"inLocales":["en","fr","ja","id","pt-br","ko","es","el","pl"]}