获取其他渠道的本地化名称

时间:2015-02-24 23:17:52

标签: firefox-addon

我从applications.ini获取firefox的版本号。

然后我硬编码了日期####和#### v35之间的版本。所以现在基于这个以及来自applications.ini的当前日期和版本,我找出了其他构建的渠道。

但现在我想获得频道的本地化名称。

所以例如我正在使用beta频道,并且从这个版本中我希望在chineese中获得本地化的名称“Nightly”,因此它具有中文字符,并且在中文中用于夜间。这也可以从applications.ini获得吗? [App] -> Name是否已在applications.ini?

中进行了本地化

这是applications.ini方法:https://ask.mozilla.org/question/705/detect-if-auroranightlybetanormal-and-get-paths/(归功于@paa)

修改

我发现了这个文件:OS.Path.join(Services.dirsvc.get('XREExeF', Ci.nsIFile).parent.path, 'defaults', 'pref', 'channel-prefs.js')

其内容如下:

//@line 2 "c:\builds\moz2_slave\rel-m-beta-w32_bld-00000000000\build\browser\app\profile\channel-prefs.js"
/* This Source Code Form is subject to the terms of the Mozilla Public
 * License, v. 2.0. If a copy of the MPL was not distributed with this
 * file, You can obtain one at http://mozilla.org/MPL/2.0/. */

pref("app.update.channel", "beta");

这是可靠的检查吗?安装后,所有版本是否都存在此channel-prefs.js文件?

1 个答案:

答案 0 :(得分:2)

  

这是可靠的检查吗?

不是真的。曾经有频道切换器附件,理论上用户可以改变这个优先级(虽然目前这还不足以真正切换我认为的频道)。

  

这些channel-prefs.js文件是否在安装后立即存在于所有版本中?

是的,暂时。但这是一个实现细节。无法保证以后不会移动或重命名文件,也不能保证与其他文件合并。

  

这也可以从applications.ini获得吗?

本地化名称?我甚至不知道有一个......我以为它被称为例如所有语言环境中的“夜间”都是(产品)名称。但是,理论上可以将该字符串本地化。但是,它不能从ini文件中获得。

无论如何我不会在application.ini中戳,而只是使用Services.appinfo.defaultUpdateChannel

  

但现在我想获得频道的本地化名称。

由于您已经在运行的Firefox实例中(从您的OS.File代码判断),您应该使用字符串包服务加载chrome://branding/locale/brand.properties并获取brandShortName或{{ 1}}来自那里的字符串。