这是我第一次使用翻译服务进行开发。
我实现了它,似乎可以正常工作,但是如何测试其他语言?
我可以在symfony项目中更改默认语言吗?
或者我可以更改通过浏览器传输到我的项目的语言吗? (我只找到了更改浏览器GUI语言的设置)
问候 n00n
答案 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'));
}