зеркало из https://github.com/mozilla/pjs.git
port bug 181541 (Add UI to set default languages for web pages, r=mconnor) to the trunk
This commit is contained in:
Родитель
0c874c941c
Коммит
281ad399dd
|
@ -0,0 +1,447 @@
|
||||||
|
/* ***** BEGIN LICENSE BLOCK *****
|
||||||
|
* Version: MPL 1.1/GPL 2.0/LGPL 2.1
|
||||||
|
*
|
||||||
|
* The contents of this file are subject to the Mozilla Public License Version
|
||||||
|
* 1.1 (the "License"); you may not use this file except in compliance with
|
||||||
|
* the License. You may obtain a copy of the License at
|
||||||
|
* http://www.mozilla.org/MPL/
|
||||||
|
*
|
||||||
|
* Software distributed under the License is distributed on an "AS IS" basis,
|
||||||
|
* WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
|
||||||
|
* for the specific language governing rights and limitations under the
|
||||||
|
* License.
|
||||||
|
*
|
||||||
|
* The Original Code is mozilla.org code.
|
||||||
|
*
|
||||||
|
* The Initial Developer of the Original Code is
|
||||||
|
* Netscape Communications Corporation.
|
||||||
|
* Portions created by the Initial Developer are Copyright (C) 2000
|
||||||
|
* the Initial Developer. All Rights Reserved.
|
||||||
|
*
|
||||||
|
* Contributor(s):
|
||||||
|
* Adrian Havill <havill@redhat.com>
|
||||||
|
* Steffen Wilberg <steffen.wilberg@web.de>
|
||||||
|
*
|
||||||
|
* Alternatively, the contents of this file may be used under the terms of
|
||||||
|
* either the GNU General Public License Version 2 or later (the "GPL"), or
|
||||||
|
* the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
|
||||||
|
* in which case the provisions of the GPL or the LGPL are applicable instead
|
||||||
|
* of those above. If you wish to allow use of your version of this file only
|
||||||
|
* under the terms of either the GPL or the LGPL, and not to allow others to
|
||||||
|
* use your version of this file under the terms of the MPL, indicate your
|
||||||
|
* decision by deleting the provisions above and replace them with the notice
|
||||||
|
* and other provisions required by the GPL or the LGPL. If you do not delete
|
||||||
|
* the provisions above, a recipient may use your version of this file under
|
||||||
|
* the terms of any one of the MPL, the GPL or the LGPL.
|
||||||
|
*
|
||||||
|
* ***** END LICENSE BLOCK ***** */
|
||||||
|
|
||||||
|
//GLOBALS
|
||||||
|
|
||||||
|
//locale bundles
|
||||||
|
var gRegionsBundle;
|
||||||
|
var gLanguagesBundle;
|
||||||
|
var gAcceptedBundle;
|
||||||
|
var gPrefLangBundle;
|
||||||
|
|
||||||
|
//dictionary of all supported locales
|
||||||
|
var gAvailLanguageDict;
|
||||||
|
|
||||||
|
//XUL listbox handles
|
||||||
|
var gAvailableLanguages;
|
||||||
|
var gActiveLanguages;
|
||||||
|
|
||||||
|
// label and accesskey of the available_languages menulist
|
||||||
|
var gSelectLabel;
|
||||||
|
var gSelectAccesskey;
|
||||||
|
|
||||||
|
//XUL window pref window interface object
|
||||||
|
var gPrefString = new String();
|
||||||
|
|
||||||
|
//Reg expression for splitting multiple pref values
|
||||||
|
var gSeparatorRe = /\s*,\s*/;
|
||||||
|
|
||||||
|
// PrefWindow
|
||||||
|
var gPrefWindow;
|
||||||
|
|
||||||
|
|
||||||
|
function Init()
|
||||||
|
{
|
||||||
|
gRegionsBundle = document.getElementById("bundle_regions");
|
||||||
|
gLanguagesBundle = document.getElementById("bundle_languages");
|
||||||
|
gPrefLangBundle = document.getElementById("bundle_prefLang");
|
||||||
|
gAcceptedBundle = document.getElementById("bundle_accepted");
|
||||||
|
ReadAvailableLanguages();
|
||||||
|
|
||||||
|
try {
|
||||||
|
window.opener.top.initPanel(window.location.href, window);
|
||||||
|
}
|
||||||
|
catch(ex) { } //pref service backup
|
||||||
|
|
||||||
|
gActiveLanguages = document.getElementById("active_languages");
|
||||||
|
gPrefString = gActiveLanguages.getAttribute("prefvalue");
|
||||||
|
LoadActiveLanguages();
|
||||||
|
|
||||||
|
gPrefWindow = window.opener.parent.hPrefWindow;
|
||||||
|
gAvailableLanguages = document.getElementById("available_languages");
|
||||||
|
SelectLanguage();
|
||||||
|
|
||||||
|
LoadAvailableLanguages();
|
||||||
|
gSelectLabel = gAvailableLanguages.getAttribute("label");
|
||||||
|
gSelectAccesskey = gAvailableLanguages.getAttribute("accesskey");
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
function onLanguagesDialogOK()
|
||||||
|
{
|
||||||
|
gPrefWindow.wsm.savePageData(window.location.href, window);
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
function ReadAvailableLanguages()
|
||||||
|
{
|
||||||
|
gAvailLanguageDict = new Array();
|
||||||
|
var visible = new String();
|
||||||
|
var str = new String();
|
||||||
|
var i =0;
|
||||||
|
|
||||||
|
var gAcceptedBundleEnum = gAcceptedBundle.stringBundle.getSimpleEnumeration();
|
||||||
|
|
||||||
|
var curItem;
|
||||||
|
var stringName;
|
||||||
|
var stringNameProperty;
|
||||||
|
|
||||||
|
while (gAcceptedBundleEnum.hasMoreElements()) {
|
||||||
|
|
||||||
|
//progress through the bundle
|
||||||
|
curItem = gAcceptedBundleEnum.getNext();
|
||||||
|
|
||||||
|
//"unpack" the item, nsIPropertyElement is now partially scriptable
|
||||||
|
curItem = curItem.QueryInterface(Components.interfaces.nsIPropertyElement);
|
||||||
|
|
||||||
|
//dump string name (key)
|
||||||
|
stringName = curItem.key;
|
||||||
|
stringNameProperty = stringName.split(".");
|
||||||
|
|
||||||
|
if (stringNameProperty[1] == "accept") {
|
||||||
|
|
||||||
|
//dump the UI string (value)
|
||||||
|
visible = curItem.value;
|
||||||
|
|
||||||
|
//if (visible == "true") {
|
||||||
|
|
||||||
|
str = stringNameProperty[0];
|
||||||
|
var stringLangRegion = stringNameProperty[0].split("-");
|
||||||
|
|
||||||
|
if (stringLangRegion[0]) {
|
||||||
|
var tit;
|
||||||
|
var language;
|
||||||
|
var region;
|
||||||
|
var use_region_format = false;
|
||||||
|
|
||||||
|
try {
|
||||||
|
language = gLanguagesBundle.getString(stringLangRegion[0]);
|
||||||
|
}
|
||||||
|
catch (ex) {
|
||||||
|
language = "";
|
||||||
|
}
|
||||||
|
|
||||||
|
if (stringLangRegion.length > 1) {
|
||||||
|
|
||||||
|
try {
|
||||||
|
region = gRegionsBundle.getString(stringLangRegion[1]);
|
||||||
|
use_region_format = true;
|
||||||
|
}
|
||||||
|
catch (ex) { }
|
||||||
|
}
|
||||||
|
|
||||||
|
if (use_region_format) {
|
||||||
|
tit = gPrefLangBundle.stringBundle.formatStringFromName("languageRegionCodeFormat",
|
||||||
|
[language, region, str], 3);
|
||||||
|
} else {
|
||||||
|
tit = gPrefLangBundle.stringBundle.formatStringFromName("languageCodeFormat",
|
||||||
|
[language, str], 2);
|
||||||
|
}
|
||||||
|
|
||||||
|
} //if language
|
||||||
|
|
||||||
|
if (str && tit) {
|
||||||
|
|
||||||
|
gAvailLanguageDict[i] = new Array(3);
|
||||||
|
gAvailLanguageDict[i][0] = tit;
|
||||||
|
gAvailLanguageDict[i][1] = str;
|
||||||
|
gAvailLanguageDict[i][2] = visible;
|
||||||
|
i++;
|
||||||
|
|
||||||
|
} // if str && tit
|
||||||
|
//} //if visible
|
||||||
|
} //if accepted
|
||||||
|
} //while
|
||||||
|
gAvailLanguageDict.sort( // sort on first element
|
||||||
|
function (a, b) {
|
||||||
|
if (a[0] < b[0]) return -1;
|
||||||
|
if (a[0] > b[0]) return 1;
|
||||||
|
return 0;
|
||||||
|
});
|
||||||
|
} //ReadAvailableLanguages
|
||||||
|
|
||||||
|
|
||||||
|
function LoadAvailableLanguages()
|
||||||
|
{
|
||||||
|
if (gAvailLanguageDict)
|
||||||
|
for (var i = 0; i < gAvailLanguageDict.length; i++)
|
||||||
|
if (gAvailLanguageDict[i][2] == "true")
|
||||||
|
AddMenuOrListItem(document, gAvailableLanguages.menupopup, "menuitem", gAvailLanguageDict[i][1], gAvailLanguageDict[i][0]);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
function LoadActiveLanguages()
|
||||||
|
{
|
||||||
|
if (gPrefString) {
|
||||||
|
var arrayOfPrefs = gPrefString.split(gSeparatorRe);
|
||||||
|
|
||||||
|
for (var i = 0; i < arrayOfPrefs.length; i++) {
|
||||||
|
var str = arrayOfPrefs[i];
|
||||||
|
var tit = GetLanguageTitle(str);
|
||||||
|
|
||||||
|
if (str) {
|
||||||
|
if (!tit)
|
||||||
|
tit = "[" + str + "]";
|
||||||
|
AddMenuOrListItem(document, gActiveLanguages, "listitem", str, tit);
|
||||||
|
} //if
|
||||||
|
} //for
|
||||||
|
} //if
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
function LangAlreadyActive(langId)
|
||||||
|
{
|
||||||
|
var found = false;
|
||||||
|
try {
|
||||||
|
var arrayOfPrefs = gPrefString.split(gSeparatorRe);
|
||||||
|
|
||||||
|
if (arrayOfPrefs)
|
||||||
|
for (var i = 0; i < arrayOfPrefs.length; i++) {
|
||||||
|
if (arrayOfPrefs[i] == langId) {
|
||||||
|
found = true;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return found;
|
||||||
|
}
|
||||||
|
|
||||||
|
catch(ex){
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
} //LangAlreadyActive
|
||||||
|
|
||||||
|
|
||||||
|
function SelectAvailableLanguage()
|
||||||
|
{
|
||||||
|
var selItem = gAvailableLanguages.selectedItem;
|
||||||
|
var languageId = selItem.getAttribute("id");
|
||||||
|
var addButton = document.getElementById("add");
|
||||||
|
|
||||||
|
// since we're not displaying "select" anymore, don't underline some random "s"
|
||||||
|
gAvailableLanguages.removeAttribute("accesskey");
|
||||||
|
|
||||||
|
// if the langauge is not already active, activate the "add" button
|
||||||
|
if (!LangAlreadyActive(languageId))
|
||||||
|
addButton.disabled = false;
|
||||||
|
else
|
||||||
|
addButton.disabled = true;
|
||||||
|
}
|
||||||
|
|
||||||
|
function AddAvailableLanguage()
|
||||||
|
{
|
||||||
|
var selItem = gAvailableLanguages.selectedItem;
|
||||||
|
var languageId = selItem.getAttribute("id");
|
||||||
|
var languageName = selItem.getAttribute("label");
|
||||||
|
var addButton = document.getElementById("add");
|
||||||
|
|
||||||
|
if (!LangAlreadyActive(languageId))
|
||||||
|
AddMenuOrListItem(document, gActiveLanguages, "listitem", languageId, languageName);
|
||||||
|
|
||||||
|
// restore the "select" label and accesskey, disable the "add" button again
|
||||||
|
gAvailableLanguages.setAttribute("label", gSelectLabel);
|
||||||
|
gAvailableLanguages.setAttribute("accesskey", gSelectAccesskey);
|
||||||
|
addButton.disabled = true;
|
||||||
|
|
||||||
|
// select the item we just added in the active_languages listbox
|
||||||
|
var lastItem = gActiveLanguages.lastChild;
|
||||||
|
gActiveLanguages.selectItem(lastItem);
|
||||||
|
gActiveLanguages.ensureElementIsVisible(lastItem);
|
||||||
|
|
||||||
|
UpdateSavePrefString();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
function RemoveActiveLanguage()
|
||||||
|
{
|
||||||
|
var nextNode = null;
|
||||||
|
var numSelected = gActiveLanguages.selectedItems.length;
|
||||||
|
var deleted_all = false;
|
||||||
|
|
||||||
|
while (gActiveLanguages.selectedItems.length > 0) {
|
||||||
|
var selectedNode = gActiveLanguages.selectedItems[0];
|
||||||
|
|
||||||
|
nextNode = selectedNode.nextSibling;
|
||||||
|
if (!nextNode && selectedNode.previousSibling)
|
||||||
|
nextNode = selectedNode.previousSibling;
|
||||||
|
|
||||||
|
gActiveLanguages.removeChild(selectedNode);
|
||||||
|
} //while
|
||||||
|
|
||||||
|
if (nextNode)
|
||||||
|
gActiveLanguages.selectItem(nextNode)
|
||||||
|
|
||||||
|
UpdateSavePrefString();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
function GetLanguageTitle(id)
|
||||||
|
{
|
||||||
|
|
||||||
|
if (gAvailLanguageDict)
|
||||||
|
for (var j = 0; j < gAvailLanguageDict.length; j++) {
|
||||||
|
|
||||||
|
if ( gAvailLanguageDict[j][1] == id) {
|
||||||
|
//title =
|
||||||
|
return gAvailLanguageDict[j][0];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return "";
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
function AddMenuOrListItem(doc, listbox, type, langID, langTitle)
|
||||||
|
{
|
||||||
|
try { //let's beef up our error handling for languages without label / title
|
||||||
|
|
||||||
|
// Create a listitem for the new Language
|
||||||
|
var item = doc.createElement(type);
|
||||||
|
|
||||||
|
// Copy over the attributes
|
||||||
|
item.setAttribute("label", langTitle);
|
||||||
|
item.setAttribute("id", langID);
|
||||||
|
listbox.appendChild(item);
|
||||||
|
|
||||||
|
}
|
||||||
|
catch (ex) { }
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
function UpdateSavePrefString()
|
||||||
|
{
|
||||||
|
var num_languages = 0;
|
||||||
|
gPrefString = "";
|
||||||
|
|
||||||
|
for (var item = gActiveLanguages.firstChild; item != null; item = item.nextSibling) {
|
||||||
|
|
||||||
|
var languageId = item.getAttribute("id");
|
||||||
|
|
||||||
|
if (languageId.length > 1) {
|
||||||
|
num_languages++;
|
||||||
|
|
||||||
|
//separate >1 languages by commas
|
||||||
|
if (num_languages > 1) {
|
||||||
|
gPrefString = gPrefString + "," + " " + languageId;
|
||||||
|
} else {
|
||||||
|
gPrefString = languageId;
|
||||||
|
} //if
|
||||||
|
} //if
|
||||||
|
}//for
|
||||||
|
|
||||||
|
gActiveLanguages.setAttribute("prefvalue", gPrefString);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
function MoveUp() {
|
||||||
|
|
||||||
|
if (gActiveLanguages.selectedItems.length == 1) {
|
||||||
|
var selected = gActiveLanguages.selectedItems[0];
|
||||||
|
var before = selected.previousSibling
|
||||||
|
if (before) {
|
||||||
|
before.parentNode.insertBefore(selected, before);
|
||||||
|
gActiveLanguages.selectItem(selected);
|
||||||
|
gActiveLanguages.ensureElementIsVisible(selected);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (gActiveLanguages.selectedIndex == 0)
|
||||||
|
{
|
||||||
|
// selected item is first
|
||||||
|
var moveUp = document.getElementById("up");
|
||||||
|
moveUp.disabled = true;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (gActiveLanguages.childNodes.length > 1)
|
||||||
|
{
|
||||||
|
// more than one item so we can move selected item back down
|
||||||
|
var moveDown = document.getElementById("down");
|
||||||
|
moveDown.disabled = false;
|
||||||
|
}
|
||||||
|
|
||||||
|
UpdateSavePrefString();
|
||||||
|
} //MoveUp
|
||||||
|
|
||||||
|
|
||||||
|
function MoveDown() {
|
||||||
|
|
||||||
|
if (gActiveLanguages.selectedItems.length == 1) {
|
||||||
|
var selected = gActiveLanguages.selectedItems[0];
|
||||||
|
if (selected.nextSibling) {
|
||||||
|
if (selected.nextSibling.nextSibling) {
|
||||||
|
gActiveLanguages.insertBefore(selected, selected.nextSibling.nextSibling);
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
gActiveLanguages.appendChild(selected);
|
||||||
|
}
|
||||||
|
gActiveLanguages.selectItem(selected);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (gActiveLanguages.selectedIndex == gActiveLanguages.childNodes.length - 1)
|
||||||
|
{
|
||||||
|
// selected item is last
|
||||||
|
var moveDown = document.getElementById("down");
|
||||||
|
moveDown.disabled = true;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (gActiveLanguages.childNodes.length > 1)
|
||||||
|
{
|
||||||
|
// more than one item so we can move selected item back up
|
||||||
|
var moveUp = document.getElementById("up");
|
||||||
|
moveUp.disabled = false;
|
||||||
|
}
|
||||||
|
|
||||||
|
UpdateSavePrefString();
|
||||||
|
|
||||||
|
} //MoveDown
|
||||||
|
|
||||||
|
|
||||||
|
function SelectLanguage() {
|
||||||
|
if (gActiveLanguages.selectedItems.length) {
|
||||||
|
document.getElementById("remove").disabled = false;
|
||||||
|
|
||||||
|
var selected = gActiveLanguages.selectedItems[0];
|
||||||
|
document.getElementById("down").disabled = !selected.nextSibling;
|
||||||
|
document.getElementById("up").disabled = !selected.previousSibling;
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
document.getElementById("remove").disabled = true;
|
||||||
|
document.getElementById("down").disabled = true;
|
||||||
|
document.getElementById("up").disabled = true;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (gPrefWindow.getPrefIsLocked(document.getElementById("up").getAttribute("prefstring")))
|
||||||
|
document.getElementById("up").disabled = true;
|
||||||
|
if (gPrefWindow.getPrefIsLocked(document.getElementById("down").getAttribute("prefstring")))
|
||||||
|
document.getElementById("down").disabled = true;
|
||||||
|
if (gPrefWindow.getPrefIsLocked(document.getElementById("remove").getAttribute("prefstring")))
|
||||||
|
document.getElementById("remove").disabled = true;
|
||||||
|
if (gPrefWindow.getPrefIsLocked(gAvailableLanguages.getAttribute("prefstring")))
|
||||||
|
gAvailableLanguages.disabled = true; // the "add" button just stays disabled
|
||||||
|
} // SelectLanguage
|
|
@ -242,3 +242,8 @@ function checkNow()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
function showLanguages()
|
||||||
|
{
|
||||||
|
openDialog("chrome://browser/content/pref/pref-languages.xul", "", "modal,centerscreen,resizable");
|
||||||
|
}
|
||||||
|
|
|
@ -86,14 +86,24 @@
|
||||||
</groupbox>
|
</groupbox>
|
||||||
|
|
||||||
<groupbox>
|
<groupbox>
|
||||||
<caption label="&fonts.label;"/>
|
<caption label="&fonts.caption;"/>
|
||||||
<hbox align="center">
|
<hbox align="center">
|
||||||
<description flex="1">&fontsInfo.label;</description>
|
<description flex="1">&fontsInfo.label;</description>
|
||||||
<button label="&showFontsAndColors.label;"
|
<button label="&showFontsAndColors.label;"
|
||||||
accesskey="&showFontsAndColors.accesskey;"
|
accesskey="&showFontsAndColors.accesskey;"
|
||||||
oncommand="showFontsAndColors();"/>
|
oncommand="showFontsAndColors();"/>
|
||||||
</hbox>
|
</hbox>
|
||||||
</groupbox>
|
</groupbox>
|
||||||
|
|
||||||
|
<groupbox>
|
||||||
|
<caption label="&languages.caption;"/>
|
||||||
|
<hbox align="center">
|
||||||
|
<description flex="1">&languagesInfo.label;</description>
|
||||||
|
<button label="&showLanguages.label;"
|
||||||
|
accesskey="&showLanguages.accesskey;"
|
||||||
|
oncommand="showLanguages();"/>
|
||||||
|
</hbox>
|
||||||
|
</groupbox>
|
||||||
|
|
||||||
#ifdef HAVE_SHELL_SERVICE
|
#ifdef HAVE_SHELL_SERVICE
|
||||||
<groupbox orient="horizontal" id="defaultBrowserPrefs">
|
<groupbox orient="horizontal" id="defaultBrowserPrefs">
|
||||||
|
|
|
@ -12,6 +12,8 @@ browser.jar:
|
||||||
* content/browser/pref/pref-features.js (content/pref-features.js)
|
* content/browser/pref/pref-features.js (content/pref-features.js)
|
||||||
* content/browser/pref/pref-fonts.xul (content/pref-fonts.xul)
|
* content/browser/pref/pref-fonts.xul (content/pref-fonts.xul)
|
||||||
* content/browser/pref/pref-fonts.js (content/pref-fonts.js)
|
* content/browser/pref/pref-fonts.js (content/pref-fonts.js)
|
||||||
|
* content/browser/pref/pref-languages.xul (content/pref-languages.xul)
|
||||||
|
* content/browser/pref/pref-languages.js (content/pref-languages.js)
|
||||||
* content/browser/pref/pref-navigator.js (content/pref-navigator.js)
|
* content/browser/pref/pref-navigator.js (content/pref-navigator.js)
|
||||||
* content/browser/pref/pref-calibrate-screen.xul (content/pref-calibrate-screen.xul)
|
* content/browser/pref/pref-calibrate-screen.xul (content/pref-calibrate-screen.xul)
|
||||||
* content/browser/pref/pref-navigator.xul (content/pref-navigator.xul)
|
* content/browser/pref/pref-navigator.xul (content/pref-navigator.xul)
|
||||||
|
|
|
@ -1,38 +0,0 @@
|
||||||
<!ENTITY lHeader "General">
|
|
||||||
|
|
||||||
<!ENTITY header2.label "Home Page">
|
|
||||||
<!ENTITY location.label "Location(s):">
|
|
||||||
<!ENTITY location.accesskey "a">
|
|
||||||
<!ENTITY useCurrent.label "Use Current Page">
|
|
||||||
<!ENTITY useCurrent.accesskey "C">
|
|
||||||
<!ENTITY useCurrentMultiple.label "Use Current Pages">
|
|
||||||
<!ENTITY useBookmark.label "Use Bookmark...">
|
|
||||||
<!ENTITY useBookmark.accesskey "U">
|
|
||||||
<!ENTITY useBlank.label "Use Blank Page">
|
|
||||||
<!ENTITY useBlank.accesskey "B">
|
|
||||||
|
|
||||||
<!ENTITY defaultBrowserGroup.label "Default Browser">
|
|
||||||
<!ENTITY defaultBrowserButton.label "Set Default Browser">
|
|
||||||
<!ENTITY makeDefaultText "Set &brandShortName; as your default browser.">
|
|
||||||
|
|
||||||
<!-- XXXben oh please, can we do better than this text-wise? -->
|
|
||||||
<!ENTITY showConnections.label "Connection Settings...">
|
|
||||||
<!ENTITY showConnections.accesskey "o">
|
|
||||||
|
|
||||||
<!ENTITY proxiesInfo.label "Set up Proxies for accessing the internet.">
|
|
||||||
<!ENTITY connectionsInfo.caption "Connection">
|
|
||||||
|
|
||||||
<!-- XXXben can we do better than this text-wise? -->
|
|
||||||
<!ENTITY fonts.label "Fonts & Colors">
|
|
||||||
<!ENTITY fontsInfo.caption "Fonts & Colors Settings">
|
|
||||||
<!ENTITY fontsInfo.label "Select default Fonts and Colors used when displaying pages.">
|
|
||||||
|
|
||||||
<!ENTITY showFontsAndColors.label "Fonts & Colors...">
|
|
||||||
<!ENTITY showFontsAndColors.accesskey "f">
|
|
||||||
|
|
||||||
|
|
||||||
<!ENTITY checkForDefault.label "&brandShortName; should check to see if it is the default browser when starting.">
|
|
||||||
<!ENTITY checkForDefault.accesskey "d">
|
|
||||||
<!ENTITY checkNow.label "Check Now">
|
|
||||||
<!ENTITY checkNow.accesskey "N">
|
|
||||||
|
|
|
@ -38,6 +38,8 @@
|
||||||
locale/browser/pref/pref-features.dtd (@AB_CD@/chrome/browser/pref/pref-features.dtd)
|
locale/browser/pref/pref-features.dtd (@AB_CD@/chrome/browser/pref/pref-features.dtd)
|
||||||
locale/browser/pref/pref-features-images.dtd (@AB_CD@/chrome/browser/pref/pref-features-images.dtd)
|
locale/browser/pref/pref-features-images.dtd (@AB_CD@/chrome/browser/pref/pref-features-images.dtd)
|
||||||
locale/browser/pref/pref-fonts.dtd (@AB_CD@/chrome/browser/pref/pref-fonts.dtd)
|
locale/browser/pref/pref-fonts.dtd (@AB_CD@/chrome/browser/pref/pref-fonts.dtd)
|
||||||
|
locale/browser/pref/pref-languages.dtd (@AB_CD@/chrome/browser/pref/pref-languages.dtd)
|
||||||
|
locale/browser/pref/pref-languages.properties (@AB_CD@/chrome/browser/pref/pref-languages.properties)
|
||||||
locale/browser/pref/pref-navigator.dtd (@AB_CD@/chrome/browser/pref/pref-navigator.dtd)
|
locale/browser/pref/pref-navigator.dtd (@AB_CD@/chrome/browser/pref/pref-navigator.dtd)
|
||||||
locale/browser/pref/pref-privacy.dtd (@AB_CD@/chrome/browser/pref/pref-privacy.dtd)
|
locale/browser/pref/pref-privacy.dtd (@AB_CD@/chrome/browser/pref/pref-privacy.dtd)
|
||||||
locale/browser/pref/pref-themes.dtd (@AB_CD@/chrome/browser/pref/pref-themes.dtd)
|
locale/browser/pref/pref-themes.dtd (@AB_CD@/chrome/browser/pref/pref-themes.dtd)
|
||||||
|
|
Загрузка…
Ссылка в новой задаче