Чтобы разделить контент по странам, храните рынок отдельно от языка и заранее решите, какие блоки можно наследовать. Русский текст не определяет страну покупателя, а IP не подтверждает, какой рынок ему нужен. Начните с двух рынков и списка реальных различий: доступность услуг, контакты, условия и ответственный редактор.
Не клонируйте весь сайт, если различается только несколько разделов. Копии быстро расходятся: исправление инструкции попадает в одну, но забывается в другой. Вместо этого выделите общую основу и явные варианты. При этом коммерческие и договорные условия требуют отдельного согласования; приведённая схема описывает хранение, а не юридическую допустимость предложений.
Пять блоков, для которых нужен хозяин
| Блок | Возможная область | Кто подтверждает |
|---|---|---|
| Общая инструкция | Все рынки, несколько языков | Редактор продукта |
| Список услуг | Конкретный рынок | Ответственный за предложение |
| Контакты | Местное подразделение | Владелец подразделения |
| Условия обслуживания | Версия для рынка | Уполномоченный согласующий |
| Пояснение ошибки | Язык интерфейса | Редактор локализации |
Заполните таблицу для своих материалов, включая дату проверки и статус публикации. Если никто не отвечает за условия конкретного рынка, техническая возможность показать их не решает проблему. Лучше остановить выпуск спорного блока, чем автоматически подставить чужую версию и создать неверное ожидание у посетителя.
Язык описывает текст, а не географию предложения
В документации W3C атрибут lang задаёт язык содержимого страницы или фрагмента. Из этого не следует страна обслуживания или доступная услуга. Источник проверен 11 октября 2026 года. Поэтому рынок и язык в модели ниже разделены сознательно; это проектное решение, а не требование к названиям полей любой CMS.
Условный ключ версии материала:
content_id: delivery-info
market: market-a
locale: ru
revision: 4
state: approved
Общие сведения и местные условия могут иметь разные ключи.Пользователь может выбрать рынок A и английский интерфейс. Такой выбор не должен незаметно включать предложение рынка B лишь потому, что для него уже есть английский текст. Покажите выбранный рынок рядом с существенными условиями и предусмотрите ручное изменение. Географическая подсказка может предложить вариант, но не должна прятать альтернативы.
Не всякий отсутствующий перевод можно заменить
- Общую справку разрешается показать на резервном языке, если это явно обозначено и согласовано.
- Отсутствующие условия рынка нельзя подменять условиями другого рынка без решения ответственного.
- Недоступную услугу не следует делать доступной из-за наличия общего описания.
- Контакты местного подразделения не заменяются случайным адресом из соседней версии.
Правило замены задавайте по типу блока, а не одной цепочкой «язык → общий текст → первая найденная версия» на весь сайт. Для критичного блока допустимо сообщение о недоступности и безопасный способ уточнить условия. При этом страница должна отличать отсутствующий перевод от отсутствующего предложения: это разные причины и разные действия посетителя.
Редакционный выпуск проверяется матрицей
Составьте небольшой набор комбинаций рынок × язык × состояние материала. Проверьте утверждённую версию, черновик, отсутствующий перевод и отключённую услугу. Прямое открытие адреса должно давать тот же смысл, что и переход через переключатель. Для этого теста нужны служебные материалы и стенд, а не изменение действующих условий клиентов.
- Опубликовать тестовую общую инструкцию и два рыночных варианта.
- Изменить общую основу: оба рынка получают согласованное обновление.
- Сохранить местный черновик: публичная версия не меняется.
- Убрать тестовый перевод: срабатывает правило именно этого блока.
- Переключить рынок и убедиться, что заголовок, контакты и условия относятся к одной версии.
Для планирования разделения подготовьте таблицу спорных блоков, список поддерживаемых сочетаний и владельцев публикации. По ним можно выбрать минимальную модель без полного копирования сайта. Отдельная задача индексации языковых и региональных URL решается после этой карты: разметка не исправит смешанные условия внутри самой страницы.