Navigator对象关于语言的属性

【摘要】在做国际化WEB项目的时候,遇到了一个根据用户浏览器所使用的自然语言切换默认语言版本的问题。于是,整理了这篇文章。

首先W3Cschool关于Navigator的各个属性值说的很明确了,这里不再赘述。

然后从各个浏览器的Navigator对象关于语言的属性上分析差异。

1.Google Chrome的navigator:

        可以看到,Google Chrome 有两个关于语言的属性: languagelanguages。前者是返回当前的浏览器语言,后者是浏览器的所有可使用语言版本(Google Chrome 在高级设置里面可以添加需要的语言也可以随意切换使用的语言。所以可以通过这种方式来测试多语言版自动默认设置当前语言版本的功能)。

2. Firefox的navigator:

        Firefox 也是有两个关于语言的属性: languagelanguages

3.IE8 和 IE9 的navigator:

(1) IE8及其以下版本:

        IE8 有两个属性:systemLanguageuserLanguage。前者是返回当前操作系统的缺省语言,后者是返回操作系统设定的自然语言。

再看看IE9及其以上版本:

        IE9有三个属性:systemLanguage:返回当前操作系统的缺省语言;userLanguage:返回操作系统设定的自然语言;browserLanguage:返回当前的浏览器语言。

【总结】各个浏览器对language相关属性的支持情况如下表:

属性IE8及其以下版本IE9及其以上版本Firefox / Chrome / SafariOpera
language××√  
userLanguage×  
systemLanguage××
browserLanguage××

可以使用下面的代码获取当前浏览器语言:

(navigator.language || navigator.browserLanguage).toLowerCase()

 

转载于:https://www.cnblogs.com/koto/p/7125414.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
杨教授工作室 精心创作的优秀程序员 职业提升必读系列资料 杨教授工作室,版权所有,盗版必究, 1/22 页 1.1 模拟实现 Windows 资源管理器的 GUI 界面(第 3 部分) 1.1.1 为主窗口添加工具条 1、在窗口的北部添加一个工具条面板——选择 Swing Containers 内的 Tool Bar 组件 (1)添加一个面板(Panel)组件并直接拖到窗口的北部(顶部) (2)设置面板的对象名 (3)设置该面板的大小 杨教授工作室 精心创作的优秀程序员 职业提升必读系列资料 杨教授工作室,版权所有,盗版必究, 2/22 页 (4)改变它的布局方式 (5)将布局设置为 2 行 1 列 2、在该北部面板中添加两个工具条 (1)拖放导航工具条组件到该面板中 杨教授工作室 精心创作的优秀程序员 职业提升必读系列资料 杨教授工作室,版权所有,盗版必究, 3/22 页 最好采用右击面板的对象名的方式实现,将会更简捷。 (2)改变该工具条的对象名为 oneNavigatorToolBar、设置工具条的大小等属性 (3)再添加另一个工具条 oneAddressInfoToolBar 作为地址栏工具条 3、分别在这两个工具条中添加工具按钮——选择 Swing Controls 内的 Button 组件 (1)在 oneNavigatorToolBar 工具条中添加各个工具按钮 杨教授工作室 精心创作的优秀程序员 职业提升必读系列资料 杨教授工作室,版权所有,盗版必究, 4/22 页 (2)分别设置这些按钮的属性(图标、tooltip 文字、对象名等) 可以选择"Image Within Project"方式,然后在 Package 栏中定位到目标图片所在的目录; 最后在 File 栏目中选择目标图片的文件名称。 也可以采用下面的代码形式 new ImageIcon(getClass().getResource("/images/mainframe/toolbar/navigator/back.jpg")) 杨教授工作室 精心创作的优秀程序员 职业提升必读系列资料 杨教授工作室,版权所有,盗版必究, 5/22 页 该按钮的图标将出现在按钮的界面中。 (3)如果设置为不画出按钮的边框线,从而将能够产生出 Windows XP 系统风格界面的工具 条 将按钮的"BorderPainted"属性设置为 false,并取消其对钩。 (4)将组合框组件改变为可编辑状态 杨教授工作室 精心创作的优秀程序员 职业提升必读系列资料 杨教授工作室,版权所有,盗版必究, 6/22 页 (5)为工具条中的按钮添加鼠标单击事件 事件类型与命令形式的菜单项目完全相同,也是 Action 类型的事件。 4、在另一个工具条中添加按钮——方法和思路同前面 5、为地址栏工具条中的 Label 标签组件添加简化键 (1)方法一:在该标签的"displayedMnemonic"成员属性中直接输入字符"D" 杨教授工作室 精心创作的优秀程序员 职业提升必读系列资料 杨教授工作室,版权所有,盗版必究, 7/22 页 (2)方法二:在该标签的"displayedMnemonic"成员属性中的"User Code"方式下输入字 符'D' 6、为工具条中的按钮添加"分隔条"从而产生出按钮相互分隔的效果 杨教授工作室 精心创作的优秀程序员 职业提升必读系列资料 杨教授工作室,版权所有,盗版必究, 8/22 页 1.1.2 设计和实现中间的分隔面板 1、在窗口中间添加一个分隔面板 (1)选择 Swing Containers 内的 Split Panel 组件 (2)改变该组件的对象名为 centerSplitPane (3)设置大小等属性 杨教授工作室 精心创作的优秀程序员 职业提升必读系列资料 杨教授工作室,版权所有,盗版必究, 9/22 页 最终产生出的属性设置的代码如下: centerSplitPane.setDividerSize(5); centerSplitPane.setDividerLocation(180); centerSplitPane.setEnabled(false); //分割条不可拖动 界面的设计结果如下图所示: 2、在分隔面板的左面和右面分别添加滚动面板组件 添加滚动面板组件的主要目的是能够为其中的树形组件和表格组件提供滚动条效果。 杨教授工作室 精心创作的优秀程序员 职业提升必读系列资料 杨教授工作室,版权所有,盗版必究, 10/22 页 并调整分隔条的粗细和初始摆放的位置。 3、在左面的滚动面板组件内添加树形组件 (1)添加树 (2)改变对象名称为 directoryTree 杨教授工作室 精心创作的优秀程序员 职业提升必读系列资料 杨教授工
内含: JavaScript语言参考手册.pdf (主要资源) 另外附上: MS-JScript.chm MS-script56-2006.chm MS-VBScript.chm // // ---- JavaScript语言参考手册 目录 ---- // 第一章 简介 这一章简单介绍了 JavaScript,Netscape 跨平台的基于对象的适用于客户和服务器应用程序的脚本语言。 客户端的 JavaScript 服务器端的 JavaScript JavaScript 对象 JavaScript 安全性 第二章 操作符 JavaScript 有赋值、比较、算术、位、逻辑、字符串和特殊操作符。本章描述了这些操作符,包含了关于操作符优先级的信息。 赋值操作符 比较操作符 算术操作符 % (求余数) ++ (自加) -- (自减) - (一元否定) 位操作符 位逻辑运算符 移位操作符 逻辑操作符 简化运算 字符串操作符 特殊操作符 ?: (条件操作符) , (逗号操作符) delete new this typeof void 第三章 语句 这一章描述了所有 JavaScript 的语句。JavaScript 语句是用特定的语法由关键词组成的。一个语句可以跨多行。多个语句可以出现在一行上,但各自中间应该用分号隔开。 break comment continue delete do...while export for for...in function if...else import labeled return switch var while with 第四章 核心 这一章包含了 JavaScript 的核心对象 Array,Boolean,Date,Function,Math,Number,Object 和 String。这些对象同时在客户端和服务器端的 JavaScript 中使用。 Array 属性 方法 Boolean 属性 方法 Date 属性 方法 Function 属性 方法 Math 属性 方法 Number 属性 方法 Object 属性 方法 String 属性 方法 RegExp 属性 方法 第五章 文档 这一章对应于文档及其关联对象 document,Layer,Link,Anchor,Area,Image 和 Applet。 document 属性 方法 Link 属性 方法 Area Anchor Image 属性 方法 Applet Layer 属性 方法 第六章 窗口 这一章对应于 Window 对象和客户端与之相关的对象:Frame,Location 和 History。 Window 属性 方法 Frame Location 属性 方法 History 属性 方法 screen 属性 第七章 表单 这一章对应于使用表单,表单是出现在文档中用于从用户获得输入的。 Form 属性 方法 Hidden 属性 Text 属性 方法 Textarea 属性 方法 Password 属性 方法 FileUpload 属性 方法 Button 属性 方法 Submit 属性 方法 Reset 属性 方法 Radio 属性 方法 Checkbox 属性 方法 Select 属性 方法 Option 属性 第八章 浏览器 这一章对应了浏览器及其关联的元素。 navigator 属性 方法 MimeType 属性 Plugin 属性 第九章 事件和事件句柄 这一章包含了在 JavaScript客户端用于激发某些特定动作的事件对象和事件句柄。另外,本章还包括了关于使用事件和事件句柄的常规信息。 关于事件常规信息 定义事件句柄 Navigator 4.0 中的事件 event onAbort onBlur onChange onClick onDblClick onDragDrop onError onFocus onKeyDown onKeyPress onKeyUp onLoad onMouseDown onMouseMove onMouseOut onMouseOver onMouseUp onMove onReset onResize onSelect onSubmit onUnload 第十章 LiveWire 数据库服务 本章包含了服务器端与 LiveWire 关联的对象:database,DbPool,Connection,Cursor,Stproc,Resultset 和 blob。 database 事务 属性 方法 DbPool 属性 方法 Connection 属性 方法 Cursor 属性 方法 Stproc 属性 方法 Resultset 属性 方法 blob 方法 第十一章 进程管理服务 本章包含了与管理进程相关的服务器端对象,其中有 request,client,project,server 和 Lock。 request 属性 client 属性 方法 project 属性 方法 server 属性 方法 Lock 方法 第十二章实用工具 本章包含了服务器端的对象 File 和 SendMail。 File 属性 方法 SendMail 属性 方法 第十三章 全程函数 本章包含了所有 JavaScript 中未与任何对象关联的函数。 addClient addResponseHeader blob callC debug deleteResponseHeader escape eval flush getOptionValue getOptionValueCount isNaN Number parseFloat parseInt redirect registerCFunction ssjs_generateClientID ssjs_getCGIVariable ssjs_getClientID String taint unescape untaint write 第十四章 LiveConnect 的 Java 包 netscape.javascript.JSObject 方法和静态方法 netscape.javascript.JSException 构造函数 netscape.plugin.Plugin 构造函数和方法 索引

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值