Supports multiple languages in the web interface
Language Support
Nginx Proxy Manager supports multiple languages in the web interface. The interface will automatically detect your browser's language preference, or you can manually select your preferred language in the Settings page.
Available Languages
- English (en) - Default language
- 简体中文 (zh) - Simplified Chinese
- 繁體中文 (tw) - Traditional Chinese
- Français (fr) - French
- 日本語 (jp) - Japanese
- 한국어 (kr) - Korean
- Русский (ru) - Russian
- Português (pt) - Portuguese
Changing Language
- Log in to the admin interface
- Go to Settings in the main menu
- Find the Interface Language section
- Select your preferred language from the dropdown
- The interface will automatically reload with the new language
For technical details about translations and contributing new languages, see frontend/js/i18n/README.md.
Docker Image for build 3 is available on DockerHub:
nginxproxymanager/nginx-proxy-manager-dev:pr-4712
[!NOTE] Ensure you backup your NPM instance before testing this image! Especially if there are database changes. This is a different docker image namespace than the official image.
[!WARNING] Changes and additions to DNS Providers require verification by at least 2 members of the community!
I tested the image successfully
Great feature, hope to merge.
Great feature, hope to merge.
Love the effort you've put in here.
How did you come up with the translations, though? Which of the languages do you personally know?
My native language is Chinese, and English is my second language. I also studied Japanese and French to an intermediate level, and I know a little Korean and Russian. Learning languages has always been fascinating for me because it helps me connect with different cultures.
To improve my translations and understanding, I often use Google Translate as a tool. It’s very convenient for quickly checking words or phrases in unfamiliar languages. However, I also double-check the translations, especially for context, as Google Translate doesn’t always perfectly understand subtle meanings or idioms.
Awesome stuff. I wanted to make sure you didn't use AI to translate some things. I've found it to be very wrong in the past.
I'm in the process of converting to React frontend with proper i18n support. I'll definitely use some of your principles here.
In the mean time, can I ask some more people to review and verify the PR and translations?
Of course! I completely understand your concerns about using AI tools for translations since they can sometimes be inaccurate. It's always a good idea to review translations carefully to ensure quality. It's great that you're converting your frontend to React and adding proper i18n support. I'm glad that some of the principles I shared could be helpful for your process! As for your PR and translations, yes, it would be a good idea to have more people review and verify them. Having input from native speakers or those experienced in the languages you're working with can make the translations more accurate and reliable.
I could help with the translation to german if wanted :)
I could also help with the spanish translation.
Could you please let me know how I should modify it so that the commit can be built?
Awesome stuff. I wanted to make sure you didn't use AI to translate some things. I've found it to be very wrong in the past.
I'm in the process of converting to React frontend with proper i18n support. I'll definitely use some of your principles here.
In the mean time, can I ask some more people to review and verify the PR and translations?
Any news?
Ok, the react rewrite is now merged to develop. You can begin contributing to new translations!
It might be easier to create a new PR for each language.
Here's a readme with some basic instructions to help you develop.
Here's an example PR with a new Language. It shows you what files to touch/add.
The translations use wildcards and some magic to show diffrent strings for plural vs singular items. Please refer to the ICU documentation for more.
As mentioned in the react PR, @lastsamurai26 has volunteered to take on the German translation.
⚠️ Can I also ask that we don't go and add languages that you don't need, I don't want a big comprehensive list that I have to maintain when I add a new translation string.
@QiMa my work does not include the auto detecting language stuff.
:'( can't use the https://github.com/NginxProxyManager/nginx-proxy-manager/blob/develop/frontend/src/locale/README.md Dev because of S6 overlay
and i have some questions
"access-list.subtitle": "{users} {users, plural, one {User} other {Users}}, {rules} {rules, plural, one {Rule} other {Rules}} - Created: {date}",
which characters i should change ? I'm not sure about that right now.
when did you plan to release 2.13.0 :-D
@lastsamurai26 this syntax is the plural format of the document I linked earlier. You can use that site directly to test your changes and see the result:
@jc21 Got it, I’ll follow the README and example PR steps to work on the translation for my assigned language and keep each language in a separate PR. I won’t add languages that aren’t needed.