javascript - 除了浏览器设置之外,还可以从弹出菜单更改 Chrome 扩展语言

标签 javascript google-chrome-extension

我使用 i18n 为我的公司创建了一个 Chrome 扩展程序/_locales/文件夹内有多种语言。它工作得很好,但由于语言系统是基于用户 chrome 浏览器上设置的语言,所以有人遇到一个问题。

该扩展程序会加载 URL 列表,以帮助版主回答公司论坛上的问题。美国的版主将使用美国 URL(使用 &lg=en)加载英语界面,俄罗斯的版主将使用俄语 URL(使用 &lg=ru)加载俄语界面,依此类推。问题是,由于该公司是全局性的,因此有些人在自己的国家/地区之外使用英语笔记本,但如果要加载德语或日语,则需要扩展。

如果我在弹出窗口上创建下拉菜单,是否可以从那里切换扩展语言?我读到的所有内容都是基于更改 chrome 浏览器设置,我确信很多人都会遇到问题,甚至是那些无权更改设置的人。

希望有一些想法来实现这一目标。

最佳答案

据我所知,i18n for extensions depends on Google Chrome's locale and extension's default_locale ,而扩展程序本身无法修改 Chrome 设置。

一种解决方法是自己维护显示语言,我的意思是,类似于:

{
    'en-us': {},
    'en-es': {},
    ...
}

或者通过XMLHttpRequest读取具体的messages.json .

当用户选择一个选项时,您可以根据上述数据结构更改显示语言,而不依赖于扩展程序现有的 i18n 框架。

关于javascript - 除了浏览器设置之外,还可以从弹出菜单更改 Chrome 扩展语言,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38489947/

相关文章:

JavaScript 多级 Promise 跳过了 .then()

Javascript 从回调中获取 Promise 结果

javascript - 通过 AJAX 和 Flask 传递值时没有响应

javascript - 如何重新加载 chrome 扩展程序中的某些选项卡

javascript - 使用扩展将按钮添加到文本字段 - 不可点击

javascript - 如何在 Chrome 扩展程序开发人员中获取已删除的标签页 Url

javascript - 如果行数不正确,则显示用户无法继续的信息消息

javascript - 更新 : USER ERROR - TYPO ! ! grunt-contrib-coffee 查找文件和写入目标时出错

javascript - 使用弹出 html 的 Chrome 扩展解决方法

javascript - Chrome 扩展程序将具有动态值的脚本注入(inject)到具有严格 CSP 的页面中