获取Windows用户语言设置值


Get the Windows User Language Settings Value

有办法知道客户端机器的语言设置吗?特别是选定的列表分隔符(分隔符)。因为,在我的项目网站(使用PHP, Javascript, Jquery开发)中,客户端可以导出csv格式的报表。目前,我们正在使用"逗号"作为分隔符创建这个csv。但是对于我们的一些客户,当他们打开这个CSV时,数据显示在一列中,用逗号分隔。

我理解这是因为在操作系统控制面板配置中选择的默认列表分隔符可能是与逗号不同的分隔符。但是,我们不想告诉每个客户端都要更改他们的操作系统配置。是否有其他解决方案?如果我生成xls文件而不是csv,同样的问题将在未来出现,对吗?

试试这个函数

function getUserLanguage() {
  $langs = array();
  if (isset($_SERVER['HTTP_ACCEPT_LANGUAGE'])) {
 // break up string into pieces (languages and q factors)
 preg_match_all('/([a-z]{1,8}(-[a-z]{1,8})?)'s*(;'s*q's*='s*(1|0'.[0-9]+))?/i',
$_SERVER['HTTP_ACCEPT_LANGUAGE'], $lang_parse);
if (count($lang_parse[1])) {
// create a list like â??enâ?? => 0.8
$langs = array_combine($lang_parse[1], $lang_parse[4]);
// set default to 1 for any without q factor
foreach ($langs as $lang => $val) {
if ($val === '') $langs[$lang] = 1;
}
// sort list based on value
arsort($langs, SORT_NUMERIC);
 }
}
//extract most important (first)
foreach ($langs as $lang => $val) { break; }
//if complex language simplify it
if (stristr($lang,"-")) {$tmp = explode("-",$lang); $lang = $tmp[0]; }
return $lang;
}