# MutoPay теперь говорит на шести языках

> Страница оплаты и панель продавца доступны на английском, арабском, испанском, турецком, армянском и русском. Язык определяется автоматически, переключатель в подвале.

Source: https://mutopay.com/ru/blog/multilingual-checkout/
Language: ru
Date: 2026-04-30

---

Покупатель в Стамбуле открывает ссылку на оплату из мадридского магазина. Страница загружается на турецком. Он платит, продавец получает webhook, и в его панели в Мадриде платёж появляется на испанском. Никому не пришлось выбирать язык.

Это и есть то, что мы выкатили в этом месяце. Страница оплаты, видимая покупателю, страница ссылки «Pay Me» и вся панель продавца теперь переведены на шесть языков: английский, арабский, испанский, турецкий, армянский и русский. Маркетинговый сайт (включая этот блог) тоже на тех же шести.

## Что переведено

**Сторона покупателя:**
- Страница оплаты `/pay/:id`
- Страница ссылки «Pay Me» (`/pay/me/:slug`)
- Все тексты подключения кошелька: соединение, подпись, подтверждение, повтор, состояния ошибок
- Строки котировки и сравнения маршрутов
- Инструкции для ручной отправки, подписи QR-кода и подсказки по dust amount
- Уведомление о редиректе на KYC и редкое состояние «нужна ручная проверка»

**Сторона продавца:**
- Боковое меню панели и каждая страница под `/dashboard/*`
- Настройки: API-ключи, секрет webhook, каналы, master key, переопределение settlement
- Мастер первоначальной настройки
- Список платежей, фильтры, страница деталей, бейджи статусов
- Настройка ссылок «Pay Me»
- Все сообщения валидации форм и об ошибках

Админка (`/admin/*`) пока остаётся на английском. Она внутренняя и покупателю не показывается.

## Как выбирается язык

При первом визите язык браузера читается из `navigator.language`. Если он совпадает с одним из шести, интерфейс открывается на нём. Затем выбор сохраняется в `localStorage`, чтобы при следующем визите не повторять определение.

Переключатель языка стоит в подвале страницы оплаты, страницы «Pay Me» и в боковой панели дашборда. Выбор из переключателя перебивает автоопределение и сохраняется тем же способом.

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

## Справа налево для арабского

Арабский разворачивает всю раскладку. Текст выравнивается вправо, боковая панель уходит к правому краю, иконки и стрелки зеркалятся, а в полях суммы цифры остаются в естественном чтении слева направо. Контент-сайт на Astro (блог, changelog, главная) под `/ar/*` отображается так же.

Если вы читаете этот пост на арабском, его адрес `/ar/blog/multilingual-checkout`. Один и тот же slug существует во всех языках.

## Продавец на одном языке, покупатель на другом

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

Это важно для трансграничной торговли. Агентство из Еревана, продающее клиентам в Турции, России и Испании, не обязано вести три отдельные страницы оплаты. Одна ссылка, три языка, автоматически.

## Почему именно эти шесть

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

- **Английский** идёт по умолчанию и на нём написана документация API
- **Арабский** покрывает Залив и Северную Африку, где принятие стейблкоинов высокое
- **Испанский** оказался вторым по запросам языком в первые месяцы
- **Турецкий** обслуживает базу продавцов, которую волатильность лиры подталкивает к поддержке USDT в TRC-20
- **Армянский** это дом: MutoPay строится в Ереване
- **Русский** открывает постсоветскую диаспору и армянско-русское пересечение в нашей пользовательской базе

Если вашего рынка нет в списке и MutoPay вам пригодился бы при его наличии, напишите нам. Седьмой язык это файл переводов и пункт в переключателе, а не переписывание.

## Что изменилось под капотом

Для тех, кому интересны детали: React-приложение использует `react-i18next` с одним JSON-каталогом на язык. Контент-сайт на Astro использует встроенный `i18n` Astro вместе с отдельной картой `ui.ts` и коллекциями контента по языкам (`blog/en`, `blog/ar`, `blog/es` и так далее). Совпадающие slug-и между языками генерируют альтернативы `hreflang` в карте сайта, и поисковики понимают, что это переводы одних и тех же страниц.

Память переводов живёт в `content/src/i18n/ui.ts` и в каталогах React по страницам. Добавление строки где-либо требует одинакового ключа во всех шести файлах, и это проверяется на этапе сборки.

## Попробуйте

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

Если заметите перевод, который звучит не к месту (слишком буквальная строка, неподходящее под местный регистр слово, проскользнувший английский фрагмент) скажите нам. Каталоги достаточно маленькие, чтобы правки выкатывались на той же неделе.
