Localization
Remnawave is available in multiple languages. We use Crowdin to manage translations.
Currenly the following languages are available:
- English
- Chinese
- Russian
- Persian
Please do not directly modify localization files in pull requests - they are meant to be edited only using Crowdin.
How to contribute
First of all you need to join our Telegram group: Join link.
Ping admins in the group and ask them to add you to the project.
You will need a Crowdin account with a valid email address to join the project. One of the maintainers will invite you to the Crowdin team.
After that you can start translating the text.
How to translate
There are two options when it comes to making translations. Lets take a look at both.
Option 1: Translate in the Crowdin website
This is the simplest way to translate the text - you don't even need a running Remnawave instance.
- Go to Crowdin and login/create an account with your email address.
- Select your target language.
- Translate the text.
- Click the "Save" button.
- Wait for the translation to be approved.
- Approved translations will be automatically deployed to the dev-branch.

Option 2: In-Context Translation
This one can be a little bit tricky.
You are going to need a running Remnawave dev-branch instance.
Check your docker-compose file to make sure you are using the dev branch image.
remnawave:
image: remnawave/backend:dev
container_name: "remnawave"
hostname: remnawave
restart: always
ports:
- "127.0.0.1:3000:3000"
env_file:
- .env
networks:
- remnawave-network
depends_on:
remnawave-db:
condition: service_healthy
remnawave-redis:
condition: service_healthy
Edit the .env
file and add the following line:
IS_CROWDIN_EDITOR_ENABLED=true
Before you start translating run "docker pull" to make sure you have the latest dev image.
This .env variable will work only with the dev-branch and it has no effect on the stable branch instances.
Restart the Remnawave container.
docker compose down && docker compose up -d && docker compose logs -f -t
Now open the panel in your browser and you will see something like this:

Select the language you want to translate into and login to your Crowdin account. You will be redirected back to the panel.

You might encounter this warning, skip it for now.
Login to Remnawave dashboard and in the language switcher select Crowdin.

Now you can translate the text in the comfort of your browser.

You can see borders on translated/untranslated text, click on it to edit.

Don't forget to click Save to save your translations.
Issues
Infinite loading screen

Sometimes you might encounter an infinite loading screen in the Crowdin iframe, as depicted above.
Currently there is no sure-fire way to fix this.
Possible workarounds:
- Try using a vanilla Chrome browser without any extensions
- Try to reload the page 5-10 times
- Try to open the panel in a new tab (a few times)
- Open Devtools (F12), navigate to the Network tab and check "Disable cache", then reload the page a couple of times