Symfony / Doctrine: откат к культуре по умолчанию для контента i18n - PullRequest
0 голосов
/ 12 августа 2011

Я создаю многоязычный веб-сайт с Symfon 1.4 / Doctrine, в котором английский язык определен как основной. Перевод контента на другие языки добавляется постепенно, и очень часто возникают ситуации, когда перевод запрошенного контента будет недоступен на запрашиваемом языке. Я хочу отобразить запрошенный контент на английском языке в этих случаях. Это достижимо на глобальном уровне, например, для всего контента i18n?

Как указал Грэд ван Хорк, по умолчанию это прекрасно работает для перевода интерфейса. Мне нужна та же функциональность для содержимого, хранящегося в БД (модели с поведением actAs i18n).

Ответы [ 2 ]

0 голосов
/ 26 января 2012

Можно установить культуру по умолчанию для sfDoctrineRecord (см. http://trac.symfony -project.org / ticket / 5458 )

sfDoctrineRecord::setDefaultCulture('nl'); // default = 'en'

Это изменяет откат i18n при переводе.недоступно в базе данных.

0 голосов
/ 12 августа 2011

Способ по умолчанию идеально подходит для этого. Просто убедитесь, что все ваши тексты на английском языке по умолчанию, и переведите их, где это необходимо. Так что просто сделайте <?php echo __('Hello'); ?>, а затем переведите его, если хотите. Если перевод не может быть найден, он просто возвращается к своему «оригиналу».

Чтобы сделать то же самое в вашей базе данных, вам, вероятно, лучше всего скопировать поведение i18n (Template / Listener) и добавить собственный кусочек логики, чтобы использовать английский.

...