--- title: "Localization" description: "Configure interface languages and contribute translations to Gogs" icon: "language" --- Gogs has supported multiple languages since release `v0.5.0`. Users can change the interface language instantly with a single click from their settings page. ## Configuration Available languages are configured in `custom/conf/app.ini` under the `[i18n]` section. All supported languages are enabled by default: ```ini [i18n] LANGS = en-US,zh-CN,zh-HK,de-DE,fr-FR,nl-NL,lv-LV,ru-RU,ja-JP,es-ES,pt-BR,pl-PL,bg-BG,it-IT NAMES = English,简体中文,繁體中文,Deutsch,Français,Nederlands,Latviešu,Русский,日本語,Español,Português do Brasil,Polski,български,Italiano ``` | Option | Description | |---|---| | `LANGS` | A comma-separated list of locale codes to enable. Each entry corresponds to a locale file. | | `NAMES` | A comma-separated list of display names for each language, in the same order as `LANGS`. | To restrict the available languages, simply remove entries from both `LANGS` and `NAMES`. Make sure the two lists remain in the same order and have the same number of entries. ## Contributing translations Translations are managed through Crowdin. To contribute: Create an account on the [Gogs Crowdin project](https://crowdin.gogs.io/). Browse the available strings and fill in untranslated entries for your language. Review existing translations and suggest improvements where needed. When translating, focus on conveying the meaning rather than producing a literal word-for-word translation. It is more important that the translation reads naturally in your language than that it matches the exact words of the English version. ### Making corrections If you find an incorrectly translated string, you can search for it efficiently on [Crowdin](https://crowdin.gogs.io/) by using its **key name** rather than the translated text. For example: - To fix the translation for "Home", search for the key `home` instead of searching for the word "Home". - For keys under a section, search using the format `section:key_name`, such as `home:uname_holder`. ### Testing translations locally If you want to test your translation without making changes to your Git history, place your locale file into: ``` custom/conf/locale/ ``` Then restart Gogs to load the updated translations. ## Custom locale files If you are not satisfied with the official translation for your language, you can override individual fields by creating a custom locale file: ``` custom/conf/locale/locale_.ini ``` For example, to override specific English strings, create `custom/conf/locale/locale_en-US.ini` and add only the keys you want to change. Restart Gogs to apply the changes. Custom locale files only need to contain the keys you want to override, not the entire locale file. Unspecified keys will fall back to the official translation.