Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

RU language into the i18n #147

Open
wants to merge 1 commit into
base: master
Choose a base branch
from
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
161 changes: 125 additions & 36 deletions src/ru/guide/i18n.md
Original file line number Diff line number Diff line change
@@ -1,36 +1,125 @@
---
layout: home

hero:
name: оффициальная документация XMCL
text: Я надеюсь вы сможете найти ответы на любые вопросы касающийся
tagline: If you can't ...... you are more than welcome to send PR to improvement the documentation!
image:
src: /logo.png
alt: X Minecraft Launcher
actions:
- theme: brand
text: Installation guide
link: /en/guide/install
- theme: alt
text: GitHub address
link: https://github.com/voxelum/x-minecraft-launcher

features:
- icon: 📥
title: XMCL Appearance Guide
details: How to beautify XMCL interface?
link: /en/guide/appearance
- icon: ⚡️
title: P2P online protocols explained
details: The P2P protocols used by XMCL will be introduced in detail.
link: /en/protocol/p2p
- icon: 📚
title: Data format of XMCL
details: How does XMCL store data?
link: /en/guide/manage
- icon: 🌐
title: I18n
details: How to translate launcher to your language?
link: /en/guide/i18n
---

# Начало работы с локализацией

## Предварительные требования

- [Git](https://git-scm.com/). Вы **должны** установить git, чтобы начать работать.
- [VSCode](https://code.visualstudio.com/). Очень рекомендуемый редактор для переводчика. В него интегрирован инструмент UI, который поможет вам найти ключ к переводу.
- [Node.js](https://nodejs.org/). Если вы хотите протестировать свой перевод локально, вам понадобится это. Вы можете просто установить последнюю версию.
- [pnpm](https://pnpm.io/installation). Если вы хотите протестировать свой перевод локально, вам понадобится это. Для установки следуйте странице установки.

## Начало работы

### Форк & клонирование <Badge type="danger">Требуется</Badge>

Вам нужно форкнуть и клонировать проект с помощью git.

Предположим, вы уже форкнули проект на Github в свой репозиторий:

```bash
git clone --recurse-submodules https://github.com/your-id/x-minecraft-launcher
```

### Установка <Badge type="danger">Требуется</Badge>

Установите проект с помощью [pnpm](https://pnpm.io), или вы можете выполнить команду corepack для установки pnpm.

В папке, которую вы клонировали, например, `x-minecraft-launcher`, выполните команду

> Если вы используете `corepack`, вы можете запустить `corepack enable .` для установки pnpm

```
pnpm install
```

Если вы получаете ошибку типа cannot find module, убедитесь, что вы клонировали с опцией `--recurse-submodules`.

Если вы забыли добавить этот параметр, вы можете выполнить команду

```
git submodule update --init --recursive
```

а затем снова запустите `pnpm install`.

### Найдите файл локализации

Вам нужно найти соответствующий yaml-файл локализации в разделе

- xmcl-keystone-ui/locales
- xmcl-electron-app/main/locales

В имени файла указан код локали. Для выбора локали можно обратиться к [этому документу](http://man.hubwiz.com/docset/electron.docset/Contents/Resources/Documents/docs/api/locales.html).

Например, если я обнаружил, что некоторые переводы в `Chinese` не подходят. Мне нужно изменить перевод в файле `zh-CN.yaml`, поскольку `zh-CN` - это код локали для `упрощенного китайского`.

### Использование VSCode с расширением i18n <Badge type="tip">Рекомендуется</Badge> <Badge type="info">Optional</Badge>

Установите расширение i18n-ally (lokalise.i18n-ally). VSCode может подсказать вам установить рекомендуемые расширения, которые уже должны включать это расширение.

![Alt text](/assets/i18n-sidebar.png)

В этом расширении вы можете найти прогресс локализации на вкладке `PROGRESS`, где отображается количество ключей, которых не хватает языку.

![Alt text](/assets/i18n-edit.png)

Вы можете напрямую перевести ключ в правой части редактора для любого языка.

### Добавление нового языка <Badge type="info">Опционально</Badge>

Если вы добавляете новый язык, вам также нужно перейти к файлу `assets\locales.json` и добавить туда значение ключа нового языка.

Предположим, вы хотите добавить `французский язык` (`fr`), вы можете открыть файл `assets\locales.json`.

```json
{
"zh-CN": "简体中文",
"zh-TW": "繁體中文",
"en": "English",
"ru": "Русский язык",
"es-ES": "Español"
}
```

добавление новой строки в конец

```json {7}
{
"zh-CN": "简体中文",
"zh-TW": "繁體中文",
"en": "English",
"ru": "Русский язык",
"es-ES": "Español",
"fr": "French" // [!code focus]
}
```

Затем нужно создать файл **yaml** с кодом локали. В качестве примера можно использовать `fr`:

```diff
x-minecraft-launcher
└─📂xmcl-keystone-ui/locales
├─ 📜en.yaml
├─ 📜zh-CN.yaml
+ └─ 📜fr.yaml // [!code highlight]
└─📂xmcl-electron-app/main/locales
├─ 📜en.yaml
├─ 📜zh-CN.yaml
+ └─ 📜fr.yaml // [!code highlight]
```

Поместите ваш перевод в новый файл `fr.yaml`. Вы можете использовать `en.yaml` в качестве примера.

### Проверьте результат перевода <Badge type="tip">Рекомендуется</Badge> <Badge type="info">Опционально</Badge>

Сначала необходимо установить проект. См. [Установка](#установка-требуется) раздел выше.

В VSCode нажмите кнопку на боковой панели `Run and Debug`, выберите `Electron: Main (launch)` и нажмите кнопку play.

Или вы можете попробовать нажать `F5`, которая может быть горячей клавишей для этой операции.

Это должно запустить программу запуска. Для проверки вы можете переключиться на свой язык на странице настроек.

### Отправка Pull Requests

Пожалуйста, следуйте [github документации](https://docs.github.com/en/pull-requests/collaborating-with-pull-requests/proposing-changes-to-your-work-with-pull-requests/creating-a-pull-request) о том, как отправить pull requests.