Bug 1347825 - Transition Fennec to use the new Localization API.
MozReview-Commit-ID: BVHQO7lbphm
new file mode 100644
--- /dev/null
+++ b/mobile/android/branding/nightly/locales/en-US/brand.ftl
@@ -0,0 +1,1 @@
+brandShortName = Nightly
--- a/mobile/android/branding/nightly/locales/jar.mn
+++ b/mobile/android/branding/nightly/locales/jar.mn
@@ -1,11 +1,13 @@
#filter substitution
# 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/.
+[localization] @AB_CD@.jar:
+ mobile (en-US/*.ftl)
@AB_CD@.jar:
% locale branding @AB_CD@ %locale/branding/
# Nightly branding only exists in en-US
locale/branding/brand.dtd (en-US/brand.dtd)
locale/branding/brand.properties (en-US/brand.properties)
new file mode 100644
--- /dev/null
+++ b/mobile/android/branding/unofficial/locales/en-US/brand.ftl
@@ -0,0 +1,1 @@
+brandShortName = Fennec
--- a/mobile/android/branding/unofficial/locales/jar.mn
+++ b/mobile/android/branding/unofficial/locales/jar.mn
@@ -1,11 +1,13 @@
#filter substitution
# 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/.
+[localization] @AB_CD@.jar:
+ mobile (en-US/*.ftl)
@AB_CD@.jar:
% locale branding @AB_CD@ %locale/branding/
# Nightly branding only exists in en-US
locale/branding/brand.dtd (en-US/brand.dtd)
locale/branding/brand.properties (en-US/brand.properties)
--- a/mobile/android/chrome/content/aboutAddons.js
+++ b/mobile/android/chrome/content/aboutAddons.js
@@ -9,18 +9,16 @@
var Ci = Components.interfaces, Cc = Components.classes, Cu = Components.utils;
Cu.import("resource://gre/modules/Services.jsm")
Cu.import("resource://gre/modules/AddonManager.jsm");
Cu.import("resource://gre/modules/XPCOMUtils.jsm");
const AMO_ICON = "chrome://browser/skin/images/amo-logo.png";
-var gStringBundle = Services.strings.createBundle("chrome://browser/locale/aboutAddons.properties");
-
XPCOMUtils.defineLazyGetter(window, "gChromeWin", function() {
return window.QueryInterface(Ci.nsIInterfaceRequestor)
.getInterface(Ci.nsIWebNavigation)
.QueryInterface(Ci.nsIDocShellTreeItem)
.rootTreeItem
.QueryInterface(Ci.nsIInterfaceRequestor)
.getInterface(Ci.nsIDOMWindow)
.QueryInterface(Ci.nsIDOMChromeWindow);
@@ -207,17 +205,17 @@ var Addons = {
outer.appendChild(img);
let inner = document.createElement("div");
inner.className = "inner";
let title = document.createElement("div");
title.id = "browse-title";
title.className = "title";
- title.textContent = gStringBundle.GetStringFromName("addons.browseAll");
+ title.setAttribute('data-l10n-id', 'ui-browseAll');
inner.appendChild(title);
outer.appendChild(inner);
return outer;
},
_createItemForAddon: function _createItemForAddon(aAddon) {
let appManaged = (aAddon.scope == AddonManager.SCOPE_APPLICATION);
@@ -336,18 +334,21 @@ var Addons = {
let addon = detailItem.addon = aListItem.addon;
let favicon = document.querySelector("#addons-details > .addon-item .icon");
favicon.setAttribute("src", addon.iconURL || AMO_ICON);
detailItem.querySelector(".title").textContent = addon.name;
detailItem.querySelector(".version").textContent = addon.version;
detailItem.querySelector(".description-full").textContent = addon.description;
- detailItem.querySelector(".status-uninstalled").textContent =
- gStringBundle.formatStringFromName("addonStatus.uninstalled", [addon.name], 1);
+ document.l10n.setAttributes(
+ detailItem.querySelector(".status-uninstalled"),
+ 'ui-uninstalled',
+ {name: addon.name}
+ );
let enableBtn = document.getElementById("enable-btn");
if (addon.appDisabled) {
enableBtn.setAttribute("disabled", "true");
} else {
enableBtn.removeAttribute("disabled");
}
--- a/mobile/android/chrome/content/aboutAddons.xhtml
+++ b/mobile/android/chrome/content/aboutAddons.xhtml
@@ -1,63 +1,59 @@
<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
- "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd" [
-<!ENTITY % brandDTD SYSTEM "chrome://branding/locale/brand.dtd" >
-%brandDTD;
-<!ENTITY % globalDTD SYSTEM "chrome://global/locale/global.dtd" >
-%globalDTD;
-<!ENTITY % aboutDTD SYSTEM "chrome://browser/locale/aboutAddons.dtd" >
-%aboutDTD;
-]>
-
<!-- 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/. -->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
- <title>&aboutAddons.title2;</title>
+ <title data-l10n-id="ui-title"></title>
<meta name="viewport" content="width=device-width; user-scalable=0" />
<link rel="icon" type="image/png" sizes="64x64" href="chrome://branding/content/favicon64.png" />
<link rel="stylesheet" href="chrome://browser/skin/aboutBase.css" type="text/css"/>
<link rel="stylesheet" href="chrome://browser/skin/aboutAddons.css" type="text/css"/>
+
+ <link rel="localization" href="mobile/brand.ftl"/>
+ <link rel="localization" href="mobile/aboutAddons.ftl"/>
+ <script type="text/javascript" src="chrome://global/content/l20n.js"></script>
</head>
-<body dir="&locale.dir;">
+<body>
<menu type="context" id="addonmenu">
- <menuitem id="contextmenu-enable" label="&addonAction.enable;"></menuitem>
- <menuitem id="contextmenu-disable" label="&addonAction.disable;" ></menuitem>
- <menuitem id="contextmenu-uninstall" label="&addonAction.uninstall;" ></menuitem>
+ <menuitem id="contextmenu-enable" data-l10n-id="menu-enable"></menuitem>
+ <menuitem id="contextmenu-disable" data-l10n-id="menu-disable" ></menuitem>
+ <menuitem id="contextmenu-uninstall" data-l10n-id="menu-uninstall" ></menuitem>
</menu>
<div id="addons-header" class="header">
- <div>&aboutAddons.header2;</div>
+ <div data-l10n-id="ui-header"></div>
</div>
<div id="addons-list" class="list">
</div>
<div id="addons-details" class="list">
<div class="addon-item list-item">
<img class="icon"/>
<div class="inner">
<div class="details">
<div class="title"></div><div class="version"></div>
</div>
<div class="description-full"></div>
- <div class="options-header">&aboutAddons.options;</div>
+ <div class="options-header" data-l10n-id="ui-options"></div>
<div class="options-box"></div>
</div>
- <div class="warn-unsigned">&addonUnsigned.message; <a id="unsigned-learn-more">&addonUnsigned.learnMore;</a></div>
+ <div class="warn-unsigned" data-l10n-id="ui-unsigned-message">
+ <a id="unsigned-learn-more"></a>
+ </div>
<div class="status status-uninstalled show-on-uninstall"></div>
<div class="buttons">
- <button id="enable-btn" class="show-on-disable hide-on-enable hide-on-uninstall" >&addonAction.enable;</button>
- <button id="disable-btn" class="show-on-enable hide-on-disable hide-on-uninstall" >&addonAction.disable;</button>
- <button id="uninstall-btn" class="hide-on-uninstall" >&addonAction.uninstall;</button>
- <button id="cancel-btn" class="show-on-uninstall" >&addonAction.undo;</button>
+ <button id="enable-btn" class="show-on-disable hide-on-enable hide-on-uninstall" data-l10n-id="action-enable"></button>
+ <button id="disable-btn" class="show-on-enable hide-on-disable hide-on-uninstall" data-l10n-id="action-disable"></button>
+ <button id="uninstall-btn" class="hide-on-uninstall" data-l10n-id="action-uninstall"></button>
+ <button id="cancel-btn" class="show-on-uninstall" data-l10n-id="action-undo"></button>
</div>
</div>
</div>
<script type="application/javascript" src="chrome://browser/content/aboutAddons.js"></script>
</body>
</html>
--- a/mobile/android/installer/package-manifest.in
+++ b/mobile/android/installer/package-manifest.in
@@ -19,16 +19,17 @@
@BINPATH@/chrome/@AB_CD@.manifest
@BINPATH@/@PREF_DIR@/mobile-l10n.js
@BINPATH@/update.locale
#ifdef MOZ_UPDATER
@BINPATH@/updater.ini
#endif
@BINPATH@/dictionaries/*
@BINPATH@/hyphenation/*
+@BINPATH@/localization/*
[assets destdir="assets/@ANDROID_CPU_ARCH@"]
#ifndef MOZ_STATIC_JS
@BINPATH@/@DLL_PREFIX@mozjs@DLL_SUFFIX@
#endif
#ifdef MOZ_DMD
@BINPATH@/@DLL_PREFIX@dmd@DLL_SUFFIX@
#endif
new file mode 100644
--- /dev/null
+++ b/mobile/android/locales/en-US/mobile/aboutAddons.ftl
@@ -0,0 +1,28 @@
+[[ User Interface ]]
+
+ui-title = Add-ons
+ui-header = Your Add-ons
+ui-options = Options
+ui-browseAll = Browse all Firefox Add-ons
+
+ui-unsigned-message =
+ This add-on could not be verified by { brandShortName }
+ <a>Learn more</a>
+
+ui-uninstalled = { $name } will be uninstalled after restart.
+
+[[ Menu ]]
+
+menu-enable
+ .label = Enable
+menu-disable
+ .label = Disable
+menu-uninstall
+ .label = Uninstall
+
+[[ Actions ]]
+
+action-enable = Enable
+action-disable = Disable
+action-uninstall = Uninstall
+action-undo = Undo
--- a/mobile/android/locales/jar.mn
+++ b/mobile/android/locales/jar.mn
@@ -1,13 +1,16 @@
#filter substitution
# 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/.
+[localization] @AB_CD@.jar:
+ mobile (%mobile/**/*.ftl)
+
@AB_CD@.jar:
% locale browser @AB_CD@ %locale/@AB_CD@/browser/
locale/@AB_CD@/browser/about.dtd (%chrome/about.dtd)
locale/@AB_CD@/browser/aboutAccounts.dtd (%chrome/aboutAccounts.dtd)
locale/@AB_CD@/browser/aboutAccounts.properties (%chrome/aboutAccounts.properties)
locale/@AB_CD@/browser/aboutAddons.dtd (%chrome/aboutAddons.dtd)
locale/@AB_CD@/browser/aboutAddons.properties (%chrome/aboutAddons.properties)