我正在测试一个网站的伪本地化.
我可以将Internet Explorer配置为具有自定义接受语言:
qps-ploc(即Pseudo(Base)语言环境)
现在,当Internet Explorer发出http请求时,接受语言将引导qpc-ploc:
GET https://stackoverflow.com/ HTTP/1.1
Accept: application/x-ms-application, image/jpeg, application/xaml+xml, image/gif, image/pjpeg, application/x-ms-xbap, */*
Accept-Language: qps-ploc,en-US;q=0.5
User-Agent: Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.1; WOW64; Trident/5.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; InfoPath.3; .NET4.0C; .NET4.0E)
Accept-Encoding: gzip, deflate
Connection: Keep-Alive
Host: stackoverflow.com
Run Code Online (Sandbox Code Playgroud)
如何对Chrome执行相同的更改?到Firefox?
更新
还应注意,Internet Explorer 尊重我的Windows首选项.我的Windows配置为使用 …
localization google-chrome internationalization pseudolocalization http-accept-language
请求中的accept-language标头通常是一个很长的复杂字符串 -
例如.
Accept-Language : en-ca,en;q=0.8,en-us;q=0.6,de-de;q=0.4,de;q=0.2
Run Code Online (Sandbox Code Playgroud)
有没有一种简单的方法在java中解析它?或者API可以帮助我做到这一点?
我目前正在尝试在Symfony 2.0中启用翻译器.Symfony忽略了Accept-Language Header变量,并使用default_locale(当没有定义回退时).
我的请求如下:
Accept-Language de-DE,de;q=0.8,en-us;q=0.5,en;q=0.3
Run Code Online (Sandbox Code Playgroud)
但$this->getRequest()->getLocale();得到我en同样的要求.
有人能告诉我可能有什么问题吗?
是的,我试图清除缓存并删除我的cookie(omnomnom):)
我想对浏览器发送到网站的Accept_Language作出反应.
有谁知道我在哪里可以获得浏览器可能发送到网站的所有可用Accept_Languages的可靠列表?
非常感谢你!
我需要检测用户所在的国家/地区,但我正在尝试避免整个外部服务调用以获取基于IP或内部数据库的位置.我需要使这项服务真正响应,查询任何外部服务几乎需要半秒钟,所以我试图避免这种情况.对于这种方法,任何对数据库的调用都是昂贵的.我需要页面在不到20ms的时间内响应.
我正在考虑根据Accept_language标题获取国家/地区语言环境.
我的问题是.有谁知道这有多准确?我知道国家并不总是存在,或者用户可能会更改默认语言或与其计算机出现在不同的国家/地区.
有没有人有过以前的经验或有任何文档(我找不到一个谷歌搜索或w3页面)指定使用这种方法的准确度或错误的百分比?
我刚刚意识到默认情况下fetch不发送Accept-Language标头,因此我计划添加它。但是,我还没有找到任何方法来获取浏览器应生成的字符串。
例如,在我的浏览器中,所有正常请求都有一个很好的 Accept-Language 值:
en-US,en;q=0.9,ja;q=0.8,vi;q=0.7,la;q=0.6
我的问题可以通过以下任一选项解决:
fetch?navigator.languages?目前我正在使用这种方法,但我自己做了,不确定它是否矫枉过正/不好。如果可能的话,我更愿意使用内置方式。var getAcceptLanguageValue = () => {
// Assume there are less than 10 languages
let q = 1;
return navigator.languages
.slice(0, 10)
.map(l => `${l};q=0.${10-q++}`)
.join(",");
};
Run Code Online (Sandbox Code Playgroud)
我得到的结果显然并不相同:
en-US;q=0.9,en;q=0.8,ja;q=0.7,vi;q=0.6,la;q=0.5
如何为cURL请求设置语言标题?例如,现在我在荷兰语中获得facebook.com的主页,可能是因为我的服务器是荷兰语/默认语言通过标题发送?
在这种情况下,我更喜欢荷兰语之前的英语,所以我尝试在curl中设置一个httpheader,但我没有意义?我做错了什么或我应该怎么做?
(zend表示法)
CURLOPT_HTTPHEADER => 'Accept-Language: en-US;q=0.6,en;q=0.4',
Run Code Online (Sandbox Code Playgroud)
提前致谢!
我是python的新手,并尝试使用请求库从IMDb获取一些信息.我的代码是以我的母语捕获所有数据(例如,电影标题),但我想用英语获取它们.如何在请求中更改接受语言?
我在PHP中编写了一个小脚本,用于检查浏览器的语言设置并将其重定向到站点的语言版本(WP多站点),
function redirect() {
$language = substr( $_SERVER["HTTP_ACCEPT_LANGUAGE"],0,2 );
switch( $language ) {
case 'sv':
header( 'Location: http://www.example.com/sv/' );
break;
case 'no':
header( 'Location: http://www.example.com/no/' );
break;
case 'da':
header( 'Location: http://www.example.com/da/' );
break;
default:
header( 'Location: http://www.example.com/' );
break;
}
}
if ( strlen($url) < 4 ) {
session_start();
if ( empty($_SESSION[ 'language' ]) ) {
$_SESSION[ 'language' ] = true;
redirect();
}
}
Run Code Online (Sandbox Code Playgroud)
使用Mobile Safari或Mobile Chrome进行测试时,重定向似乎不起作用.我需要考虑移动浏览器的接受语言是否有任何特殊输出?
更新:经过一些调试后我发现了这个:
我需要使用输入类型文件只接受pdf和doc文件.
<input type="file" id="test" name="test" accept="application/msword,text/plain, application/pdf"/>
Run Code Online (Sandbox Code Playgroud)
这是在Windows中工作,但在ubunthu中,它只接受pdf文件
localization ×2
curl ×1
geolocation ×1
html ×1
http ×1
http-headers ×1
java ×1
javascript ×1
locale ×1
php ×1
python ×1
redirect ×1
servlets ×1
symfony ×1
user-agent ×1