如何确定用户在浏览器中的区域设置?

2023-12-29

我有一个本地化为十几种语言的网站 (Flash),我想根据用户的浏览器设置自动定义默认值,以尽量减少访问内容的步骤。

仅供参考,由于代理限制,我无法使用服务器脚本,因此我想 JavaScript 或 ActionScript 适合解决该问题。

问题:

  1. “猜测”用户区域设置的最佳方法是什么?

  2. 是否有任何现有的简单类/函数可以帮助我(没有复杂的本地化包)?特别是以一种聪明的方式将所有可能的语言减少到更小的数量(我拥有的翻译)。

  3. 我在多大程度上可以信任这样的解决方案?

  4. 还有其他解决方法或建议吗?


正确的方法是查看HTTP接受语言 http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.4发送到服务器的标头。其中包含用户已将其浏览器配置为首选的语言的有序加权列表。

不幸的是,这个头文件无法在 JavaScript 中读取;你得到的只是navigator.language https://developer.mozilla.org/docs/Web/API/NavigatorLanguage/language,它告诉您安装的 Web 浏览器的本地化版本。这不一定与用户的首选语言相同。在 IE 上你会得到systemLanguage(操作系统安装的语言),browserLanguage(与...一样language) and userLanguage(用户配置的操作系统区域),这些都同样没有帮助。

如果我必须在这些属性之间进行选择,我会嗅探userLanguage首先,回到language并且只有在那之后(如果那些与任何可用语言不匹配)查看browserLanguage最后systemLanguage.

如果您可以将服务器端脚本放在网络上的其他位置,该脚本只需读取 Accept-Language 标头并将其作为 JavaScript 文件吐出,标头值位于字符串中,例如:

var acceptLanguage= 'en-gb,en;q=0.7,de;q=0.3';

那么您可以在 HTML 中包含一个指向该外部服务的

无论你最终做什么,你肯定需要用户覆盖,因为对于某些人来说它总是会猜错。通常,最简单的方法是将语言设置放在 URL 中(例如,http​://www.example.com/en/site 与 http​://www.example.com/de/site),然后让用户单击两者之间的联系。有时,您确实希望两种语言版本都使用一个 URL,在这种情况下,您必须将设置存储在 cookie 中,但这可能会使不支持 cookie 和搜索引擎的用户代理感到困惑。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何确定用户在浏览器中的区域设置? 的相关文章

  • 命名和配置jsfiddle

    对于任何知道答案的人来说 这听起来都是一个非常愚蠢的问题 当我创建 JSfiddle 时 它 会出现在我的列表页面上 如下所示 cGzCe Revision 8 然后我将其命名为 多创建节点 由于添加了修订号 因此该短语中没有空格 所以有额
  • Bootstrap 按钮的检查状态

    我想在 Bootstrap 3 0 2 中设置组复选框的选中状态 docs http getbootstrap com javascript buttons html div class btn group div
  • 嵌套 .ajax() 调用的 JavaScript/jQuery 变量作用域问题

    我很难传递变量postData这是一个嵌套子级的序列化 jQuery 数组对象 ajax call postData成功传递给第一个 ajax 打电话 但是当我尝试在第二次使用它时 ajax 调用时 它不会发布任何表单元素 因为变量在该级别
  • 如何在 contenteditable 中跟踪插入符/光标?

    我想在 contenteditable 中跟踪插入符 光标的移动 不过 我不确定最好的方法是什么 我目前正在监听点击 按下键盘 按下键盘的声音 当然 像箭头键或 ctrl x 这样的按键甚至不会触发 虽然 click 工作正常 但 keyd
  • Web Worker 中的 RequireJS

    我正在尝试在网络工作者中使用 RequireJS 问题是我在使用它时不断收到以下错误 Uncaught Error importScripts failed for underscore at lib underscore js 我已经测试
  • 使用 ng-if 内容短暂呈现然后消失

    我的页面上有一些内容包含在 ng if 中 如下所示 div class text danger p strong Message displayed to User strong p div 然后在我的 Angular js 控制器中我有
  • 与拉斐尔的路径位置

    我如何使用 raphael js 更改路径位置 很奇怪的是 明显的方法不起作用 var p paper path some path string p attr fill red p attr x 200 y 100 not working
  • 裁剪响应式全宽图像

    我必须剪辑跨越整个宽度的图像 以下事情对我不起作用 剪辑 这需要绝对位置 因此块元素不会堆叠在下面 背景位置 缩放时无法正确剪辑 放大时剪辑的部分会增加 反之亦然 包装器 包装器高度取决于浏览器宽度 因此其值应该是动态的 我使用了 seti
  • 由表达式文字生成的正则表达式是否共享单个实例?

    以下代码片段 来自 Crockford 的Javascript 好的部分 演示了由正则表达式文字创建的 RegExp 对象共享单个实例 function make a matcher return a gi var x make a mat
  • 如何使用 file:///F:/foldername 访问 ajax 中的本地文件夹?但它适用于 http://

    在这里 我使用以下代码使用 AJAX jQuery 动态创建文件名列表 window load function var fileExt csv document ready function ajax url file F foldern
  • 动画和过渡的组合无法正常工作

    我一直在尝试添加一些基本的 CSS3 动画 目标是在按钮的单击事件上切换类 并根据添加的类对 div 进行动画处理 该代码对于 Firefox 中切换的第一次迭代完美运行 但对于 Chrome 等其他浏览器以及 Firefox 中的下一次迭
  • 显示 div 内的用户名列表

    我是 jQuery 新手 在我的项目中 我创建了一个类User其中代码如下所示 static ConcurrentDictionary
  • YouTube 播放器 API:getDuration()、getCurrentTime()、getVideoData() 不起作用

    对于我的应用程序 我尝试使用 YouTube Iframe 播放器 API 来播放视频 并允许用户更改视频而无需重新加载页面 我通过使用来实现这一点player loadVideoById video id 方法 通过YouTube视频id
  • 如何在模态窗口中显示pdf? [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 我有一个模式窗口 其中包含锚文本 当我单击此链接时 它必须调用其他位置的 pdf 并将其显示在弹出窗口中 我怎样才能做到这一点 请帮忙
  • Chrome 本机消息传递 - 为什么我会收到“找不到指定的本机消息传递主机”错误?

    根据 Chrome Native Messaging 文档 成功调用 connectNative 会返回一个端口 您可以使用该端口将消息发布到本机应用程序 Mac 应用程序 在我的例子中 nativeConnect 确实返回了一个有效的端口
  • xhr 响应 for 循环不起作用

    我有 xhr 和 for 循环 它的工作非常罕见 for var i 0 i lt this files length i var xhr new XMLHttpRequest xhr upload onprogress function
  • 如何用 GreaseMonkey 替换 onclick 事件?

    该网站有一个图片库 每次我单击缩略图时 它都会在新选项卡中打开 URL 不是因为我将 Firefox 设置为在新选项卡中打开链接 我只想在同一窗口中打开 URL 缩略图的示例如下 span class thumb a href post i
  • 单击行内的按钮时防止触发表行 onclick 事件

    我有一个带有 ONCLICK 事件的表行 切换下面的附加数据 在其中一个行单元格内有一个按钮 单击时执行 AJAX 操作 当我单击按钮时 行的 onclick 事件也会触发 并且会发生附加数据在 AJAX 调用完成之前出现 这对我来说是一个
  • 如何在不接受焦点的元素上捕获键盘事件?

    我知道要处理输入字段中的键盘事件 您可以使用 input keyup function e var code e keyCode and 13 is the keyCode for Enter 但是 现在 我有一些div and li元素
  • 构造函数可以返回什么值来避免返回 this ?

    确切的情况是什么 returnJavascript 中的语句可以返回除this当使用构造函数调用时new关键词 Example function Foo return something var foo new Foo 如果我没记错的话 如

随机推荐

  • 将回归结果输出到 R 中的数据帧中

    我想知道是否有任何命令可以将 lm 模型的结果输出到 R 中的数据帧中 就像 SAS 中的 outest 一样 有任何想法吗 我正在运行多个模型 我希望结果如下所示 Model alpha Beta Rsquared F df model0
  • 为什么 BigQuery 加载作业统计信息会返回查询信息?

    我们有一些加载作业 可以从 GCS 中获取文件 并将它们加载到 BigQuery 中进行分析 我们使用JobConfigurationLoad class https developers google com resources api
  • Android:将sqlite数据库内容加载到webview

    我有一个sqlite我有一个要加载的内容的数据库webview 如我所愿从数据库中选择并在网页视图中显示 有什么办法可以做到吗 public class TataworatYawmeeh extends Activity WebView w
  • 共享内存与 Go 通道通信

    Go 的口号之一是不要通过共享内存进行通信 相反 通过通信来共享内存 http golang org doc effective go html concurrency 我想知道 Go 是否允许在同一台机器上运行的两个不同的 Go 编译的二
  • Jupyter python3笔记本无法识别pandas

    我正在使用 Jupyter 笔记本并选择了 Python 3 在单元格的第一行我输入 import pandas as pd 我从笔记本中得到的错误是 ImportError 没有名为 pandas 的模块 如何将pandas安装到jupy
  • 使用 matplotlib 设置网络中的动态节点形状

    第一次在这里发帖 请大家多多包涵 我正在尝试在 Networkx 中绘制不同类型的字符网络 并希望为每种类型设置不同的节点形状 例如 我希望角色是圆形 生物是三角形等 我已经尝试了几个小时来解决这个问题并进行了广泛的搜索 但我还没有找到一种
  • 如何验证自签名认证

    我会清楚地向您提供我的问题 以便您可以回答我 我有一个使用 SslStream 保护的客户端 服务器 套接字 连接 据我所知 使用 ssl 确保我的客户端只会连接到我的服务器 为此 我必须向客户端添加一个函数来验证服务器认证并确保服务器是真
  • ClassNotFoundException,在运行 Hadoop 示例作业时

    我已经开始做一些关于 hadoop 的事情了 它已设置并正常运行 现在我正在做一个单节点 独立集群 我正在尝试运行示例作业 如上面提到的http hadoop apache org common docs r0 18 3 mapred tu
  • 干预图片圆角上传

    我正在尝试将文件上传为圆圈 但无法使其工作 我看过一些有关对图像应用蒙版的主题 但是当我应用蒙版时 它需要很长时间并且服务器会关闭请求 我正在使用Intervention ImageLaravel 的库 我的代码如下 identifier
  • ANR keyDispatchingTimedOut 错误

    当我尝试使用 DOM 解析 RSS 时 我在我的应用程序中遇到了强制向下错误 但是 这并不总是强制向下问题 这是 logcat ANR keyDispatchingTimedOut DALVIK THREADS main prio 5 ti
  • iOS 中接收到 APNS 时打开视图控制器

    嘿 我是 iPhone 新手 我一直在尝试使用 Apple 推送通知 基本上 我想要做的是 当用户单击收到的推送通知消息时 我需要打开一个特定的视图控制器 我已将带有关键参数 type 的自定义数据添加到我的负载 JSON 中 因此代表通知
  • Dagger2 继承的子组件多重绑定

    希望经过日复一日的研究这个非常感兴趣的主题 继承的子组件 后在这里找到一些帮助multibindings你可以在这里找到继承的子组件多重绑定 https dagger dev multibindings这是该页面的最后一个主题 根据官方文档
  • Windows通用应用程序无需网络即可连续听写

    按照此处提供的示例 https github com Microsoft Windows universal samples https github com Microsoft Windows universal samples很好地概述
  • 使用钢筋时的常见测试覆盖报告

    我有一个使用 Rebar 的 Erlang 应用程序 并且有使用 Common Test 编写的测试 我想查看这些测试的测试覆盖率报告 因此我在我的rebar config file cover enabled true 然而 通用测试报告
  • 如何为 pytorch 图层指定名称?

    下列的上一个问题 https stackoverflow com questions 66137298 how to detect source of under fitting and vanishing gradients in pyt
  • 向 SQL Server 插入数据不起作用,但没有错误消息显示

    我正在使用 asp net 4 5 和 SQL Server 2008 Express 我想将表单的数据插入到我的数据库中 连接字符串正常并且可以在另一个页面中工作 但在此页面中 插入按钮似乎只是刷新页面并且没有发生插入 代码 protec
  • 什么准则适合确定何时将类成员实现为属性还是方法?

    The 已开始出现在 赞助者 区域中的信息似乎表明该属性仅适用于逻辑数据成员 请参阅文档的第 34 35 页 在以下情况下 方法被认为是适当的 该操作是一个转换 例如Object ToString 该操作的成本足够高 您希望告知用户他们应该
  • 强制 rvest 识别表(html_tag(x) == "table" 不是 TRUE)

    我似乎永远无法得到html table 上班 这是一个完美的例子 试图刮6场比赛 桌子 library rvest hockey lt html http www hockey reference com boxscores 2015 3
  • 汇编扩展寄存器不工作

    我对 Assembly 和 TASM 相当陌生 我有以下问题 我想使用寄存器的扩展版本 特别是 EBX 通过使用下面的代码 但没有 386 指令 它不起作用 说 未定义的符号 EBX 但有了它 它无法识别 INT 21h 指令 据我了解 该
  • 如何确定用户在浏览器中的区域设置?

    我有一个本地化为十几种语言的网站 Flash 我想根据用户的浏览器设置自动定义默认值 以尽量减少访问内容的步骤 仅供参考 由于代理限制 我无法使用服务器脚本 因此我想 JavaScript 或 ActionScript 适合解决该问题 问题