2010-09-07 4 views
0

В CakePHP book есть раздел по интернационализации & Локализация. Баскиально, что он говорит, Cake будет генерировать файл горшка, и мы должны создать .po для другого языкового файла из файла pot.Использование базы данных для интернационализации и локализации

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

Так как я могу хранить локализованный текст в базе данных?

ответ

1

a Behavior for that.

Лично я считаю, что TranslateBehavior является довольно негибким, поэтому я обычно просто перехожу с отдельной таблицей, связанной с основной моделью, посредством отношения belongsTo, которое содержит все переводы. Затем я выбираю тот, который будет отображаться в представлении.

+0

Звучит странно. Переводчик используется для данных модели. Поэтому я должен создать модель для хранения всех ярлыков, которые я использую в своих представлениях. Если я это сделаю, то я больше не смогу использовать что-то вроде This? – Sunny

+0

Да, если вы хотите сохранить редактируемые пользователем переводы в базе данных, вам нужно использовать модель. В этот момент ваши метки не просто «переводимые элементы представления», они - данные, как любые другие данные в базе данных. '__()' будет искать только переводы в .pot-файлах, так что да, вам нужно использовать что-то еще. – deceze

Смежные вопросы