首页 > 解决方案 > 如何在多语言网站上缓存用户的首选语言?

问题描述

大家好!我目前正在为我的个人网站实现多语言。到目前为止,我已经创建了两个 php 文件,其中包含用于德语和英语翻译的数组,然后使用require_once("")-method 在我的网站上根据所选语言加载它们。在用户更改语言以使用正确的翻译重新加载内容后,我需要重新加载网站。但是在重新加载页面后,选择当然会被重置。我现在的问题是:如何缓存所选语言?

标签: phphtmlcsscaching

解决方案


您可以使用会话(或常规 cookie)并存储您的语言代码(或您在选择期间使用的任何标识符)。

$_SESSION['loc'] = 'en-us';

然后您可以检查该会话变量。

if(isset($_SESSION['loc']) && $_SESSION['loc'] === 'en-us'){
    //English
} else { 
//Other language, or language not selected
}

您可能也想获取基于浏览器的语言,您可以像这样缓存它:

$lang = strtolower(substr($_SERVER['HTTP_ACCEPT_LANGUAGE'], 0, 2));

$accepting = ['en', 'ge'];
$code = in_array($lang, $accepting) ? $lang : 'en';

$_SESSION['localization'] = $code; //Or a regular cookie

推荐阅读