根据symfony文档,为了使翻译服务正常工作,你需要创建一个资源,并使用已知的有效扩展名来生成格式为domain.locale.extension的文件。Symfony代码会默认寻找'messages'域,如果你想更好地组织这些翻译内容,可以在函数trans()的第三个参数中指定新的域。
这里我有点困惑。我在某处(记不清在哪了)读到最好将翻译目录分成多个文件。
这将导致大量的文件,但对于性能来说不是有点恶心吗?我的意思是,把它组织成多个文件可能是个更好的做法,但Symfony将需要加载所有这些文件,这肯定会影响性能。但如果我只保留“消息”域并在其中添加每个翻译,是否会更好?
另一件事是trans()函数的语法。像这样调用它会更好:
- labels.en.xlf
- labels.ro.xlf
- options.en.xlf
- options.ro.xlf
- messages.en.xlf
- messages.ro.xlf
这将导致大量的文件,但对于性能来说不是有点恶心吗?我的意思是,把它组织成多个文件可能是个更好的做法,但Symfony将需要加载所有这些文件,这肯定会影响性能。但如果我只保留“消息”域并在其中添加每个翻译,是否会更好?
另一件事是trans()函数的语法。像这样调用它会更好:
$translator->trans('translation.id');
比这更好:
$translator->trans('translation.id', array(), 'theNewDomain');
你对这个有什么想法?
{% trans_default_domain 'whatever' %}
;在表单中,你可以在默认设置中设置它'translation_domain' => 'whatever'
;在服务/控制器中,你可以使用一个包装器自动设置域... - Rufinus