Symfony / Doctrine:回退到i18n内容的默认文化

时间:2011-08-12 11:07:50

标签: symfony1 internationalization doctrine symfony-1.4

我正在使用Symfon 1.4 / Doctrine构建一个多语言网站,将英语定义为主要语言。 逐渐添加其他语言的内容翻译,并且经常会出现所请求内容的翻译在请求的语言中不可用的情况。在这些情况下,我想用英语显示所请求的内容。 这是否可以在全球范围内实现,例如对于所有的i18n内容?

正如Grad van Horck指出的那样,默认情况下,界面翻译工作正常。 我需要的是与DB中存储的内容相同的功能(具有“actAs i18n”行为的模型)。

2 个答案:

答案 0 :(得分:0)

默认方式可以完美地实现此目的。默认情况下,请确保所有文本均为英文,并在需要时进行翻译。所以只需<?php echo __('Hello'); ?>,然后根据需要进行翻译。如果找不到翻译,那么它就会回归到它的“原始”。

要在数据库中执行相同操作,您可能最好复制i18n行为(模板/侦听器)并添加您自己的逻辑以回溯到英语。

答案 1 :(得分:0)

可以在sfDoctrineRecord上设置默认文化(参见http://trac.symfony-project.org/ticket/5458

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

当数据库中没有翻译时,这会更改i18n回退。