PHP - 语言切换 - MVC 框架 - 基于会话或 Javascript(i18next 库)?什么更好?

PHP - Language Switch - MVC Framework - Session or Javascript (i18next library) based? Whats better?

我真的不能决定什么对切换方式有更好的优势 我的应用程序中的语言在我自己的 mvc 框架内完成。

基于会话

GET 变量 "lang" 将会话参数 "LANGUAGE_FILE" 设置为所需的语言 并将通过控制器加载语言文件 $this->language->load(Session::get("LANGUAGE_FILE")); 稍后在代码中用作 <p><?=$lang["page_title"]?></p>

Javascript 基于(使用 i18next 库)

单击按钮设置 Cookie 并通过 Javascript 从 json 文件加载所需的语言。

i18n.init({
    resGetPath: 'assets/locales/__lng__.json',
    load: 'unspecific',
    debug: true,
    useCookie: true,
    fallbackLng : false
}, function () {
    $('body').i18n();
});

后面的代码可以使用如下

<p data-i18n="page.main.title"></p>

我能看到的唯一区别是,使用 Session 需要重新加载页面,使用 javascript 它将直接翻译。

我该用什么?

就我个人而言,我会将语言包含在 URL 中。 示例:

www.yourdomain.com/de/yourpage

其中 "de" 代表德语。 如果您切换语言,只需重定向到不同的 URL。这样做的好处是每个点击此 url 的人都可以看到相同的语言。包括Google,这对SEO很重要