Иметь версии своего сайта на разных языках не отказался бы никто, но зачастую сложность реализации перевешивает возможные плюсы, а потому большинство не слишком крупных веб-проектов поддерживают всего один язык.
Реализовать многоязычность можно с помощью чистого PHP, но это — самый сложный вариант, требующий навыков программирования. Проще всего создавать интернациональные проекты на конструкторах сайтов — многие поддерживают выбор языка, однако не всем подходит сам конструктор из-за относительно узкой свободы действий.
Остаётся самый распространённый вариант, когда ресурс базируется на одной из популярных систем управления контентом. Здесь нет и ограничений, накладываемых конструкторами, и сложности от необходимости работать напрямую с PHP и MySQL. Рассмотрим методы превращения в мультиязычный сайта, который работает на одном из самых популярных движков.
Но прежде, чем начать, отмечу, что независимо от того, как и на чём работает ваш сайт, контент придётся переводить вручную, ведь обработка с помощью Google Translate вряд ли кому-нибудь придётся по душе. Да и вообще есть работающий на всех CMS способ. Рассмотрим его первым.
Универсальный способ
Универсальный же способ создания многоязычного сайта заключается в том, что для каждого языка вы создаёте отдельную папку (можно поддомен, можно даже домен), и работаете с ними параллельно. Перенаправлять пользователя на ту или иную версию можно автоматически, можно также разместить на сайте переключатель языков, чтобы посетитель сам смог выбрать нужный.
Иногда, например, как в случае с OpenCart или HostCMS, такой подход является самым простым способом реализовать двуязычный интернет-магазин.
WordPress
Некоторые не столкнувшиеся ещё пользователи ошибочно полагают, будто для многоязычности предназначен режим «Multisite», который, на самом деле, даёт возможность соединить несколько ресурсов между собой. Да, такой подход к мультиязычности тоже имеет право на жизнь: создать для каждого языка отдельный веб-ресурс и объединить их, но к режиму «Multisite» в таком случае всё равно понадобится установка дополнительных плагинов. Например, связать сайты на разных языках позволит популярный и простой Multisite Language Switcher или не менее интересный MultilingualPress.
Другой подход к организации контента на разных языках — для каждой из страниц создать версии на разных языках, а потом либо давать возможность посетителю переключаться между ними самостоятельно, либо позволять системе автоматически определять язык браузера и подгружать нужную версию.
Большинство плагинов используют именно такой подход. Самыми известными расширениями этой тематики сейчас считаются перечисленные ниже.
- Transposh Wordpress Translation;
- Polylang;
- WPML;
- Google Language Tranlator;
- Bogo.
Ещё можно просто размещать все версии перевода на одной странице, не используя плагинов вообще, но проблему мультиязычности интерфейса это не решит, а потому — не выход.
Кстати, узнать больше о работе с WordPress можете на соответствующем разделе данного сайта.
Joomla
В отличие от WordPress, эта система обладает всеми необходимыми возможностями сразу после установки, её достаточно всего лишь настроить. Не вдаваясь в подробности, опишу примерный алгоритм.
- Установите файлы локализации и включите язык.
- Не забудьте добавить языки контента.
- Опубликуйте модуль переключения языков (в менеджере создайте модуль типа «Переключение языков»).
- Включите и настройте фильтр языков.
- В меню создайте дубликаты категорий на разных языках, для каждой переведя описание и заголовок.
- Свяжите контент с языками.
- Под каждый язык создайте своё меню, дублируя пункты.
В принципе, это всё. Если вы хорошо знакомы с Joomla, то поняли, о чём речь, а если навыков работы с этой CMS нет, то вам в помощь уже написаны уроки.
Drupal
Drupal — невероятно гибкая, но при этом не самая простая система, реализовать многоязычность в которой можно так.
- Активируйте ядро
- Установите нужный перевод (найти их можно здесь).
- Дальше для перевода разных частей сайта вам понадобятся следующие модули: Internationalization, Menu Translation, Field Translation, Block Languages, Taxonomy Translation, String Translation, Multilangual content. И по желанию модули работы с системными переменными.
- Включите поддержку мультиязычности.
- Выберите параметры определения языка (admin/config/regional/language/configure).
- Переведите контент.