我想从使用Ionic3,Cordova和Angular4开发的应用程序中获取Android设备语言.
我怎么才能得到它?
我想在我的网站上加入谷歌网站翻译.我想使用自动内容,因此如果您的浏览器语言与页面语言不同,则会显示该栏.每次我选择自动显示模式时,它给我的代码是'tabbed'.任何人都可以告诉我我做错了什么或提供正确的代码吗?
提前致谢.
编辑:
<div id="google_translate_element"></div>
<script type="text/javascript">
function googleTranslateElementInit() {
new google.translate.TranslateElement({pageLanguage: 'en', layout: google.translate.TranslateElement.FloatPosition.TOP_LEFT}, 'google_translate_element');
}
</script>
<script type="text/javascript" src="//translate.google.com/translate_a/element.js?cb=googleTranslateElementInit"></script>
Run Code Online (Sandbox Code Playgroud) 我已经找到了上一个问题,但它使用C.有没有办法通过JQuery或JavaScript来做到这一点?
我在我的网站上使用此脚本进行翻译
<div id="google_translate_element" align="center"></div>
<script type="text/javascript">
function googleTranslateElementInit() {
new google.translate.TranslateElement({
pageLanguage: 'auto',
autoDisplay: false,
layout: google.translate.TranslateElement.InlineLayout.SIMPLE
}, 'google_translate_element');
}
</script>
<script src="//translate.google.com/translate_a/element.js?cb=googleTranslateElementInit"></script>
Run Code Online (Sandbox Code Playgroud)
它工作得很好:)但有没有办法检测用户IP和自动翻译当用户进入我的网站?
我检测到这样的浏览器语言:
var language = window.navigator.userLanguage || window.navigator.language
Run Code Online (Sandbox Code Playgroud)
然后我通过AJAX调用将此值发送到我的网络服务器.
当我检查结果时,我看到了一个奇怪的事情.例如,浏览器的用户代理说当前的语言环境是tr-tr,但是当我检查时,window.navigator.language我得到结果为en.
所有这些浏览器都说他们的语言是en:
Mozilla/5.0 (Linux; U; Android 2.2.2; tr-tr; GM FOX Build/HuaweiU8350) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1,
Mozilla/5.0 (Linux; U; Android 2.2.2; tr-tr; LG-P503 Build/FRG83) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1 MMS/LG-Android-MMS-V1.0/1.2
Mozilla/5.0 (Linux; U; Android 2.3.4; tr-tr; GT-S5670 Build/GINGERBREAD) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1
Mozilla/5.0 (Linux; U; Android 2.3.6; tr-tr; GT-S5360 Build/GINGERBREAD) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1 …Run Code Online (Sandbox Code Playgroud) 我需要在我的Angular2应用程序中检测浏览器语言.基于这种语言,我需要发送请求(到后端的REST API),我的变量的本地化和ID,我需要翻译.之后我收到了翻译变量的回复.
因此,应用程序工作流程是检测浏览器语言,例如,确定en-US后,我将向后端发送请求,为en-US提供ID为1,2,3,4,5的变量.回应是{{id:1, var:pay}, {id:1, var:title}}等等
那么如何使用Angular2(使用typescript开发)浏览器语言进行检测?
我需要一种方法来根据用户的区域设置自动格式化Date和Number对象.
到目前为止,我一直在使用toLocaleString()日期功能.对于数字,toLocaleString()也可以使用,但正如您在我准备的jsFiddle中所看到的,浏览器之间的结果差异很大.在我的Windows机器上使用英语(美国)语言环境,我得到了这个:
在Chrome中,似乎toLocaleString()对数字根本不起作用.除了这种方法,我还尝试过:
localeFormat()函数,但无论我在PC上设置哪个区域(通过使用"区域和语言"对话框),日期和数字仍然以美国格式编码.因此,总结一下:如何自动设置数字和日期格式以尊重用户浏览网页的区域设置,以适用于所有主流浏览器(IE,Firefox,Chrome)的方式?
我将通过javascript检测用户的键盘语言.我得到了一个输入(文本类型),应该用波斯语字符填充.因此,如果用户的语言不是波斯语,我需要提醒用户更改键盘语言.
我发现的是:
window.navigator.language;
Run Code Online (Sandbox Code Playgroud)
它检测浏览器的语言,它始终是En-us.
我怎么能解决这个问题?
如何在JavaScript中获取并解析Accept Header以将语言作为两个字符=> en,tr,ar,fr等?
编辑:当我使用
navigator.language
或类似的东西它给了我一种语言.但是我在Firefox,Quick Locale上使用插件,它改变了本地.当我将它从英语改为阿拉伯语时,仍然是navigator.language说我使用的是英语.但是,当我使用Quick Locale更改区域设置后,当我连接到www.google.com时,Google的主页将以阿拉伯语开启.我想像那样检测用户的语言.在我检测到像Google这样的语言后,我将加载HTML文件的语言属性.
EDIT2: 我的目的有一个代码: 接受标题脚本
但是它会调用该URL:http://ajaxhttpheaders.appspot.com
如何获取该URL的源代码?
编辑方式3: 我可以在服务器端编写类似于该代码的东西(通过REST与我的HTML端进行通信 - 这是我的最后一个解决方案)吗?
有没有办法更改或编辑我发送到我的API的接受语言标题?在javascript Jquery或Angular中有没有办法?我不想发送默认的,但我的Cookie有!