我在网站上使用 Silex 和 Twig,我希望允许用户更改网站的语言。
现在,如果我更改 URL 中的区域设置,它就可以工作:
/my-account:我的页面内容是英文(默认_locale)
/fr/my-account:我的页面内容是法语
/en/my-account: 我的页面内容是英文的
我如何通过单击 html 元素来执行相同的操作?
我正在寻找一些想法来解决我的问题,并寻找一些好的实践,以便在可能的情况下以“正确的方式”做到这一点。
这是我用来管理多语言的 Silex 组件:
// TRANSLATION
$app->register(new Silex\Provider\LocaleServiceProvider());
$app->register(new Silex\Provider\TranslationServiceProvider());
$app->register(new \Pmaxs\Silex\Locale\Provider\LocaleServiceProvider(), [
'locale.locales' => ['en', 'fr'],
'locale.default_locale' => 'en',
'locale.resolve_by_host' => false,
'locale.exclude_routes' => ['^_']
]);
$app->extend('translator', function($translator, $app) {
$translator->addLoader('yaml', new YamlFileLoader());
$translator->addResource('yaml', __DIR__.'/../src/locales/en.yml', 'en');
$translator->addResource('yaml', __DIR__.'/../src/locales/fr.yml', 'fr');
return $translator;
});
Run Code Online (Sandbox Code Playgroud)
这是我的 html,供用户更改语言:
<li id="drop-langue" data-lg="en">
<span id="current-lg">EN</span> // My current langue
<div class="drop-langue">
// The list of langage …Run Code Online (Sandbox Code Playgroud)