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很重要
我真的不能决定什么对切换方式有更好的优势 我的应用程序中的语言在我自己的 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很重要