есть ли способ перевести более длинный текст в yii с помощью i18n?
Я думаю, что это не лучший способ перевести более длинные тексты:
Yii::t('app','Longer text here...')
Кто-нибудь может мне помочь?
Если вы хотите перевести динамические тексты и получить его с помощью Yii::t()
вы можете использовать расширение TsTranslation (вы можете загрузить последнюю версию в GitHub). Это позволяет
Yii::t($model, 'attribute')
,DEMO и документация: http://tstranslation.sundevelop.com/
Вы можете перевести любой длинный текст, как вы хотите, с помощью Yii :: t().
Другой способ - это связанные таблицы с переводом их содержимого.
Например, вы хотите перевести блок новостей. Вы создаете таблицу новостей, в которой вы сохраняете общую информацию для всех языков, например изображений, category_id, url_name, creater_id, created_at и т.д.
Также вы создаете таблицу "news_lang" с одним или несколькими отношениями с таблицей "новости". В новой таблице "news_lang" вы должны иметь "news_id", "lang_id", "title", "body", "meta_keyword", "meta_description" и т.д. Все необходимые вам переводы. Столбец "news_id" связан со столбцом "id" таблицы новостей. И каждая строка таблицы "news_lang" соответствует соответствующему языку. "lang_id" также может быть статическим, и вы можете передавать значения с помощью скрытого значения формы, а лучший и гибкий способ - создать таблицу "lang" и связать ее с таблицами перевода.