相关疑难解决方法(0)

Silex:允许用户通过单击 html 元素并保持干净的 URL 来更改语言

我在网站上使用 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)

php ajax symfony silex

5
推荐指数
1
解决办法
585
查看次数

在 symfony 4 中手动切换 _locale

我绝对无法找到_locale在 Symfony 4 中手动切换变量的解决方案。

我遵循了这些步骤,但现在我完全不知道如何在导航部分制作一个简单的开关按钮。我也看了一下这个问题,但这似乎是一个较旧的 Symfony 版本..

谁能帮我爬出这个黑洞并向我解释如何集成一个简单的_locale开关按钮,或者至少给我指明正确的方向?

php locale symfony twig

1
推荐指数
1
解决办法
2056
查看次数

标签 统计

php ×2

symfony ×2

ajax ×1

locale ×1

silex ×1

twig ×1