更改浏览器语言或项目语言以测试本地化

时间:2019-05-19 07:13:12

标签: symfony google-chrome browser

这是我第一次使用翻译服务进行开发。

我实现了它,似乎可以正常工作,但是如何测试其他语言?

我可以在symfony项目中更改默认语言吗?

或者我可以更改通过浏览器传输到我的项目的语言吗? (我只找到了更改浏览器GUI语言的设置)

问候 n00n

2 个答案:

答案 0 :(得分:1)

是的,您当然可以采用很少的翻译方法。

如果要将项目翻译数据保存在数据库中,则必须创建用于数据翻译的实体,然后可以使用全局sql过滤器选择每种语言的数据。

您可以阅读有关Symfony翻译组件的信息。

要更改项目语言,您可以编写侦听器。

喜欢

public function onKernelRequest(GetResponseEvent $event)
    {
        /** Set language parameter*/
        $lang = $event->getRequest()->query->get('lang', 'en'); //this is optional you can write another code for getting language.
        $event->getRequest()->setLocale($lang);
    }

如果要设置每种请求语言,此示例。 阅读symfony翻译组件文档中还有更多有用的东西。

答案 1 :(得分:1)

您也可以使用以下会话在控制器内部进行操作:

/**
 * Switch language
 *
 * @Route("/switchLanguage/{locale}/", name="switch_language")
 *
 * @param Request $request
 * @param string $locale
 *
 * @return RedirectResponse
 */
public function switchLanguageAction(Request $request, $locale): RedirectResponse
{
    $request->attributes->set('_locale', null);
    $this->get('session')->set('_locale', $locale);

    return $this->redirect($request->headers->get('referer'));
}