> For the complete documentation index, see [llms.txt](https://vitrina-blogerov.gitbook.io/bloggers-showcase/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://vitrina-blogerov.gitbook.io/bloggers-showcase/lokalizaciya/rabota-s-neskolkimi-yazykovymi-versiyami.md).

# Работа с несколькими языковыми версиями

Bloggers Bot Platform позволяет держать несколько языковых версий на одном сервере и одном домене. При этом каждая версия остается самостоятельной.

{% hint style="success" %}
Один сервер и один домен дают удобную инфраструктуру. Отдельные базы, боты, настройки и администраторы дают независимость для каждого рынка.
{% endhint %}

### Общая схема

```mermaid
flowchart TD
    A["Домен example.com"] --> B["Caddy edge"]
    B --> C["/bloggers/ru/"]
    B --> D["/bloggers/en/"]
    B --> E["/bloggers/zh/"]
    B --> F["/bloggers/ar/"]
    C --> C1["RU backend + bot + db"]
    D --> D1["EN backend + bot + db"]
    E --> E1["ZH backend + bot + db"]
    F --> F1["AR backend + bot + db"]
```

На сервере используется единая папка:

```
/opt/bloggers_platform/
```

Внутри нее общий edge-слой и отдельные приложения:

```
/opt/bloggers_platform/edge
/opt/bloggers_platform/apps/ru
/opt/bloggers_platform/apps/en
/opt/bloggers_platform/apps/zh
/opt/bloggers_platform/apps/ar
```

### Что общее, а что отдельное

{% tabs %}
{% tab title="Общее" %}
Общими являются домен, Caddy на портах `80` и `443`, страница выбора или автоматического определения языка, страницы ошибок, общая утилита управления контентом и общий uninstall-скрипт.
{% endtab %}

{% tab title="Отдельное" %}
Для каждой версии отдельно запускаются backend, Telegram-бот, PostgreSQL-база, Docker volume, `.env`, assets, контент, AI-настройки, администраторы, пользователи бота и настройки канала.
{% endtab %}
{% endtabs %}

### Установка новой версии

Одна установка добавляет или обновляет одну языковую версию.

Установщик спрашивает:

* язык версии;
* домен;
* логин и пароль первого администратора;
* Telegram bot token;
* токен установки.

После этого установщик скачивает нужный архив, создает `.env`, запускает контейнеры, инициализирует базу, создает администратора и настраивает кнопку Telegram-бота.

{% hint style="info" %}
Если на сервере уже есть другие языки, они остаются отдельными. Общий edge-конфиг обновляется, чтобы учитывать новую установленную версию.
{% endhint %}

### Ежедневная работа команды

Команда заходит в админ-панель нужной версии и работает только с ее данными.

Пример:

```
https://example.com/bloggers/en/admin
```

Из этой админ-панели команда управляет английской базой блогеров, английскими AI-промптами, английским Telegram-ботом и настройками английского рынка.

<details>

<summary>Как переключаться между рынками</summary>

Чтобы управлять другой версией, нужно открыть ее отдельный адрес. Например, `/bloggers/ru/admin` для русской версии или `/bloggers/ar/admin` для арабской.

Переход в другую админку означает работу с другой базой и другими настройками.

</details>

### Перенос контента между версиями

Для переноса используется команда:

```bash
sudo /opt/bloggers_platform/content.sh
```

Инструмент может экспортировать контент из одной версии и импортировать его в другую.

Перед импортом создаются временные резервные копии. Это снижает риск потери данных, если перенос выполнен ошибочно.

{% hint style="warning" %}
Перенос заменяет контентные таблицы целевой версии. Перед импортом важно убедиться, что выбран правильный источник и правильная целевая версия.
{% endhint %}

### Что переносится

При переносе контента копируются:

* категории;
* теги;
* блогеры;
* связи блогеров с тегами;
* социальные сети и показатели;
* настройки AI-поиска;
* безопасные настройки витрины и бота;
* связанные файлы из `assets`, если они используются в контенте.

Контент переносится без автоматического перевода.

### Что не переносится

Не копируются:

* администраторы;
* пользователи Telegram-бота;
* Telegram bot token;
* ID или ссылка канала;
* JWT-настройки;
* секреты базы данных;
* секретные AI API keys.

{% hint style="success" %}
Это защищает доступы и приватные данные каждой версии. Даже после переноса контента языковые версии остаются независимыми.
{% endhint %}

### Рекомендованный процесс для нового рынка

1. Установите новую языковую версию.
2. Проверьте, что она открывается по своему адресу.
3. Выберите сценарий наполнения: вручную, через перенос контента или через перенос основы каталога.
4. Адаптируйте тексты, цены, промпты и медиа под рынок.
5. Проверьте Telegram-бота, AI-подбор, канал и список администраторов.

<details>

<summary>Что проверить после переноса</summary>

Проверьте тексты карточек, категории, теги, цены, валютные ожидания рынка, AI-промпты, сообщения Telegram-бота, канал публикаций и список администраторов.

</details>

### Практический смысл

Несколько языковых версий позволяют вести международную платформу без смешивания данных.

Каждый рынок может развиваться своим темпом, со своей командой, своим ботом, своим каталогом и собственной коммуникацией.


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation by asking a question.

Perform an HTTP GET request on the following URL with the `ask` and `goal` query parameters:

```
GET https://vitrina-blogerov.gitbook.io/bloggers-showcase/lokalizaciya/rabota-s-neskolkimi-yazykovymi-versiyami.md?ask=<question>&goal=<user_goal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is what the user is ultimately trying to achieve, the reason they need the answer. Sharing it helps GitBook give you a better, more relevant answer. A goal is most helpful when it describes the outcome the user wants rather than restating the question. For example, with `ask=how do I create an API token`, a goal like `automate deployments from our CI pipeline` lets GitBook tailor the answer to that use case.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
