Yii: многоязычный веб-сайт - лучшие практики

Я нахожу Yii большой платформой, и веб-сайт в качестве примера, созданный с оболочкой yiic, является положительной стороной для запуска... однако это не затрагивает тему многоязычных веб-сайтов, к сожалению. Документы затрагивают тему перевода коротких сообщений, но не хранения многоязычного содержания...

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

Я должен постараться не копировать то свободное городское население... до сих пор я раньше имел массив массивов, содержащих тексты (обычно не больше, чем 1-2 коротких абзаца), затем файл представления просто представлял текст от массива.

Теперь я хотел бы постараться не сохранять его в массивах (который требует некоторого внимания при помещении двойных цитат "" и неудобен в общем...).

Так, что лучший способ состоит в том, чтобы сохранить теми короткими абзацами? Я должен сохранить их в DB как (идентификатор | message_id | язык | содержание) и затем выбрать их message_id и языком? Это все еще требует, чтобы я создал некоторый message_id и встроил их в файл представления...

Там кому-либо рекомендуют парадигму, для которой Yii имеет некоторые решения?

Спасибо, m.

23
задан davidsleeps 8 November 2010 в 21:50
поделиться

2 ответа

Приложение Yii по умолчанию использует метод yii :: t () для перевода текста сообщений и существует 3 различных типа источников сообщений:

  1. CPhpMessageSource : переводы хранятся в виде пар ключ-значение в массиве PHP.
  2. CGettextMessageSource : переводы хранятся в виде файлов GNU Gettext. (Файлы PO)
  3. CDbMessageSource : переводы сообщений хранятся в таблицах базы данных.

Если я правильно понял, вы используете классические массивы для переводов. Я рекомендую вам использовать GetText и PO файлы с Yii для операций перевода.

Вы можете найти много информации о переводе и i18n с yii на этой странице официальной документации .

17
ответ дан 29 November 2019 в 02:16
поделиться

Ну я думаю, что здесь речь идет о том, как перевести статический текст/сообщения на странице и Yii решает это довольно хорошо, используя Yii:t() и ответ Edigu.

Я просмотрел пост на FlexicaCMS о переводе динамического контента в базе данных, что ж, в конечном счете, это будет следующим после решения проблемы статического текста/сообщения, и это действительно хороший подход, использующий поведение Yii. Не уверен, что авторы FlexicaCMS слишком амбициозны в поддержке перевода таким образом, ведь это сделает перевод контента без проблем - действительно здорово.

Одна вещь, о которой они не упоминают, - это url переведенной страницы. Например, your.site.com/fr/translated_article_title.html. Я имею в виду, что в url должна быть часть /language_id/, чтобы это могло помочь в SEO.

1
ответ дан 29 November 2019 в 02:16
поделиться
Другие вопросы по тегам:

Похожие вопросы: