无法在Symfony 2中实现国际化

时间:2013-12-16 01:29:52

标签: php symfony internationalization

我正在关注Symfony的Translation document中的每一步。但我仍然无法在Symfony中进行国际化工作。而不是翻译的消息,我收到相同的消息。我做错了什么?这是我的设置:

1)app / config / config.yml

imports:
    - { resource: parameters.yml }
    - { resource: security.yml }

framework:
    #esi:             ~
    translator:      { fallback: fa }

2)app / parameters.yml

parameters:
    database_driver: pdo_mysql
    database_host: 127.0.0.1
    database_port: null
    database_user: root
    locale: fa

3)翻译文件位于src / App / AppBundle / Resources / translations / addproduct.fa.xliff

<?xml version="1.0"?>
<xliff version="1.2" xmlns="urn:oasis:names:tc:xliff:document:1.2">
    <file source-language="en" datatype="plaintext" original="file.ext">
        <body>
            <trans-unit id="1">
                <source>Title</source>
                <target>عنوان</target>
            </trans-unit>
        </body>
    </file>
</xliff>

4)控制器

/**
 * @Route("{_locale}/test")
 */
public function Test()
{
    $translated = $this->get('translator')->trans('Title');

    return new Response($translated);
}

1 个答案:

答案 0 :(得分:0)

  1. Number 3)应该是src/App/AppBundle/Resources/translations目录中的文件。文件名需要遵循domain.locale.loader概述的app.fa.xliff约定,例如app.fa.xliff

  2. 如果您将文件命名为'app',那么->trans就是您的域名。您需要使用$translated = $this->get('translator')->trans('Title', array(), 'app');方法引用此域:

  3. {{1}}