Вариант разработки мультиязычного сайта с разными регионами на 1С-Битрикс

При разработке интернациональных сайтов не всегда достаточно разработать просто мультиязычный сайт вида www.example.com/ru или www.example.com/en с контентом переведенным на разные языки.

Иногда требуется иметь несколько локаций, например Россия, Англия, Германия и переведенный по трем языкам контент. т.е www.example.com/ru-ru www.example.com/ru-en www.example.com/en-de и т.д.

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

Контент можно разделить по стандартной битриксовой многосайтовости на одном домене

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

Более сложный, но экономный вариант - хранить физически количество папок с контентом равным количеству локаций. т.е в корневой папке заложить папки /ru/ /en/ /de/ и иметь количество сайтов, равное числу локаций. Но сложность возникает в том как битрикс поймет какой язык применить для перевода языковых фраз ваших компонентов и прочего контента?
На уровне фронта (nginx) вы можете вычленить из урла идентификатор языка, отдать его параметром в приложение и потом где-то на уровне dbconn.php каким-то образом (скорее всего это выльется в кастомизацию той части которую трогать не рекомендуется) сказать битриксу какой используется язык. Но это звучит как плохо обновляемый, плохо поддерживаемый вариант. Так же, если кто-то решит что в /ru/ локации у вас для русского языка должно быть например 2 каких-то блока, а для английского 3, то это приведет к дальнейшей костылизации проекта

На мой взгляд самый очевидный и дефолтный для битрикса способ - сделать пару язык-локация сайтом со своей настройкой языка, даты и всего прочего что нам потребуется. Папок тоже придется разложить столько сколько пар язык-локация. например /ru-ru/ /en-en/ /ru-en/ /en-ru/ и так далее.
Один из неочевидных на первый взгляд бонусов - это то что мы легко можем управлять контентом там где он захочет варьироваться.
Например если для русской локации и двух языков и нас контент будет разный - то мы делаем две папки /ru-ru/ /ru-en/ и пишем какой требуется код для этих языков. А если для английской локации контент одинаковый, но меняется только язык, то нам достаточно сделать /en-en/ с кодом, а /en-ru/ сделать симлинком на /en-en/ а в управлении сайтам битрикса указать папку /en-ru/ как сайт с русским языком. В этом случае битрикс легко поймет какие региональные настройки надо подключить и использует уже написанный код без лишнего дублирования.

{{ message }}

{{ 'Comments are closed.' | trans }}