mirror of
https://github.com/remnawave/panel.git
synced 2026-04-12 17:24:16 +00:00
* Improve docs grammar * Update docs/features/oauth2-configuration.md Co-authored-by: greptile-apps[bot] <165735046+greptile-apps[bot]@users.noreply.github.com> --------- Co-authored-by: greptile-apps[bot] <165735046+greptile-apps[bot]@users.noreply.github.com>
139 lines
4.2 KiB
Markdown
139 lines
4.2 KiB
Markdown
---
|
|
sidebar_position: 1
|
|
title: Localization
|
|
---
|
|
|
|
Remnawave is available in multiple languages. We use [Crowdin](https://i18n.remna.st) to manage translations.
|
|
|
|
Currenly the following languages are available:
|
|
|
|
- English
|
|
- Chinese
|
|
- Russian
|
|
- Persian
|
|
|
|
:::warning
|
|
|
|
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](https://t.me/+cAFRGkqSWJcxNjE6).
|
|
|
|
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.
|
|
|
|
1. Go to [Crowdin](https://i18n.remna.st) and login/create an account with your email address.
|
|
2. Select your target language.
|
|
3. Translate the text.
|
|
4. Click the "Save" button.
|
|
5. Wait for the translation to be approved.
|
|
6. Approved translations will be automatically deployed to the dev-branch.
|
|
|
|
<img src={require('/contributing/i18n/i18n_1.webp').default} width="100%" style={{borderRadius: '8px'}} alt="First steps" />
|
|
|
|
### 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.
|
|
|
|
```yaml title="docker-compose.yml"
|
|
remnawave:
|
|
// highlight-next-line-green
|
|
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:
|
|
|
|
```bash title=".env"
|
|
IS_CROWDIN_EDITOR_ENABLED=true
|
|
```
|
|
|
|
:::warning
|
|
|
|
Before you start translating run "docker pull" to make sure you have the latest dev image.
|
|
|
|
:::
|
|
|
|
:::danger
|
|
|
|
This .env variable will work only with the dev-branch and it has no effect on the stable branch instances.
|
|
:::
|
|
|
|
Restart the Remnawave container.
|
|
|
|
```bash
|
|
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:
|
|
|
|
<img src={require('/contributing/i18n/i18n_2.webp').default} width="100%" style={{borderRadius: '8px'}} alt="First steps" />
|
|
|
|
Select the language you want to translate into and login to your Crowdin account. You will be redirected back to the panel.
|
|
|
|
<img src={require('/contributing/i18n/i18n_4.webp').default} width="100%" style={{borderRadius: '8px'}} alt="First steps" />
|
|
|
|
You might encounter this warning, skip it for now.
|
|
|
|
Login to Remnawave dashboard and in the language switcher select **Crowdin**.
|
|
|
|
<img src={require('/contributing/i18n/i18n_5.webp').default} width="100%" style={{borderRadius: '8px'}} alt="First steps" />
|
|
|
|
Now you can translate the text in the comfort of your browser.
|
|
|
|
<img src={require('/contributing/i18n/i18n_6.webp').default} width="100%" style={{borderRadius: '8px'}} alt="First steps" />
|
|
|
|
You can see borders on translated/untranslated text, click on it to edit.
|
|
|
|
<img src={require('/contributing/i18n/i18n_7.webp').default} width="100%" style={{borderRadius: '8px'}} alt="First steps" />
|
|
|
|
Don't forget to click **Save** to save your translations.
|
|
|
|
## Issues
|
|
|
|
### Infinite loading screen
|
|
|
|
<img src={require('/contributing/i18n/i18n_3.webp').default} width="100%" style={{borderRadius: '8px'}} alt="First steps" />
|
|
|
|
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
|