Несколько способов создать многоязычную версию интернет-приложения:
- Создание полей для каждого языка. habr.com Для каждого поля и языка в таблице создаётся отдельная колонка. habr.com Такой подход требует изменения структуры базы данных (БД) при добавлении нового языка. habr.com
- Создание таблицы локализации. habr.com Для каждой сущности, требующей локализации, создаются две таблицы: основная, содержащая поля, которые не зависят от конкретного языка, и таблица с полями, требующими перевода. habr.com Также в БД создаётся таблица со списком доступных языков. habr.com
- Использование сериализованных данных сложной структуры. habr.com В каждое поле, требующее перевода, пишется информация в сериализованном виде, например в JSON, XML, binary. habr.com
- Отдельная запись в таблице для каждого языка. habr.com В каждой таблице, описывающей сущность, требующую локализации, создаётся поле с указанием языка, к которому относится запись. habr.com Также в БД создаётся таблица со списком доступных языков. habr.com
- Использование языковых версий на поддомене. spark.ru Поддомены (домены третьего уровня или субдомены) используют для создания отдельных версий сайта внутри основного проекта. spark.ru Языковая версия сайта отображается в адресной строке через точку слева от основного названия. spark.ru
Для создания многоязычных приложений также могут использоваться специальные инструменты, например Lingobit Localizer, TsiLang Components Suite. www.rsdn.org www.tsilang.ru