我在Symfony 2中遇到了一个奇怪的翻译问题.
这是我的config.yml
imports: - { resource: parameters.yml } - { resource: security.yml } - { resource: services.yml } # Put parameters here that don't need to change on each machine where the app is deployed # http://symfony.com/doc/current/best_practices/configuration.html#application-related-configuration framework: #esi: ~ translator: { fallbacks: ['%locale%'] } secret: "%secret%" router: resource: "%kernel.root_dir%/config/routing.yml" strict_requirements: ~ form: ~ csrf_protection: ~ validation: { enable_annotations: true } #serializer: { enable_annotations: true } templating: engines: ['twig'] #assets_version: SomeVersionScheme trusted_hosts: ~ trusted_proxies: ~ session: # handler_id set to null will use default session handler from php.ini handler_id: ~ fragments: ~ http_method_override: true # Twig Configuration twig: debug: "%kernel.debug%" strict_variables: "%kernel.debug%" # Assetic Configuration assetic: debug: "%kernel.debug%" use_controller: false bundles: [ ] #java: /usr/bin/java filters: cssrewrite: ~ #closure: # jar: "%kernel.root_dir%/Resources/java/compiler.jar" #yui_css: # jar: "%kernel.root_dir%/Resources/java/yuicompressor-2.4.7.jar" # Doctrine Configuration doctrine: dbal: driver: pdo_mysql host: "%database_host%" port: "%database_port%" dbname: "%database_name%" user: "%database_user%" password: "%database_password%" charset: UTF8 mapping_types: enum: string # if using pdo_sqlite as your database driver: # 1. add the path in parameters.yml # e.g. database_path: "%kernel.root_dir%/data/data.db3" # 2. Uncomment database_path in parameters.yml.dist # 3. Uncomment next line: # path: "%database_path%" orm: auto_generate_proxy_classes: "%kernel.debug%" naming_strategy: doctrine.orm.naming_strategy.underscore auto_mapping: true # Swiftmailer Configuration swiftmailer: transport: "%mailer_transport%" host: "%mailer_host%" username: "%mailer_user%" password: "%mailer_password%" spool: { type: memory } fos_user: db_driver: orm firewall_name: main user_class: AppBundle\Entity\User profile: form: type: app_user_profile
parameters.yml
... locale: ru
当然,我有messages.en.yml和messages.ru.yml.
即使locale设置为'ru',它也会显示英文文本,$ request-> getLocale()总是返回'en'.
可能是什么问题,如果没有在配置中它会在哪里溢出?en'?
如果所请求语言的翻译不可用locale
,则config.yml
文件中的参数只是后备.
调用$request->getLocale()
将返回HTTP-Request
发送的浏览器的语言配置.
如果您希望将翻译强制转换为另一种语言,请查看以下答案:https://stackoverflow.com/a/14331838/1173391