mirror of
https://github.com/mozilla/gecko-dev.git
synced 2024-10-14 22:05:44 +00:00
32477 Accept-Language UI
This commit is contained in:
parent
2dc6942953
commit
09834afbcd
@ -26,14 +26,12 @@
|
|||||||
<window
|
<window
|
||||||
xmlns:html="http://www.w3.org/TR/REC-html40"
|
xmlns:html="http://www.w3.org/TR/REC-html40"
|
||||||
xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"
|
xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"
|
||||||
id="main-box"
|
id="addlang-box"
|
||||||
title="&languages.customize.add.title.label;"
|
title="&languages.customize.add.title.label;"
|
||||||
class="dialog"
|
class="color-dialog"
|
||||||
windowtype="sidebar:customize"
|
onload="Init();"
|
||||||
onload="InitAvailable();"
|
orient="vertical"
|
||||||
align="vertical"
|
width="340" height="379">
|
||||||
persist="width height"
|
|
||||||
width="340" height="383">
|
|
||||||
|
|
||||||
<html:script language="javascript" src="pref-languages.js"/>
|
<html:script language="javascript" src="pref-languages.js"/>
|
||||||
<html:script language="javascript" src="chrome://global/content/strres.js" />
|
<html:script language="javascript" src="chrome://global/content/strres.js" />
|
||||||
@ -52,16 +50,18 @@
|
|||||||
<!-- vert 1 -->
|
<!-- vert 1 -->
|
||||||
<box align="vertical" flex="1">
|
<box align="vertical" flex="1">
|
||||||
|
|
||||||
<html:div class="vertical-gap">
|
<separator/>
|
||||||
&languages.customize.prefAddLangDescript;
|
|
||||||
</html:div>
|
|
||||||
|
|
||||||
<html:div class="vertical-gap">
|
<html>
|
||||||
&languages.customize.current.label;
|
&languages.customize.prefAddLangDescript;
|
||||||
</html:div>
|
</html>
|
||||||
|
|
||||||
<spring style="height:8px"/>
|
<spring style="height:8px"/>
|
||||||
|
|
||||||
|
<html>
|
||||||
|
&languages.customize.available.label;
|
||||||
|
</html>
|
||||||
|
|
||||||
<!-- horz 2 -->
|
<!-- horz 2 -->
|
||||||
<box align="horizontal" class="box-group" flex="1">
|
<box align="horizontal" class="box-group" flex="1">
|
||||||
|
|
||||||
@ -82,20 +82,14 @@
|
|||||||
|
|
||||||
<spring style="height:16px"/>
|
<spring style="height:16px"/>
|
||||||
|
|
||||||
<!--
|
<box autostretch="never">
|
||||||
<html:table>
|
<text class="label" value="&languages.customize.others.label;" for="languages.other"/>
|
||||||
<html:tr>
|
<textfield id="languages.other" size="7" maxlength="5"/>
|
||||||
<html:td>
|
<text class="label" value="&languages.customize.others.examples;" for="languages.other"/>
|
||||||
<html:label>&languages.customize.others.label;</html:label>
|
</box>
|
||||||
</html:td>
|
|
||||||
<html:td>
|
<spring style="height:8px"/>
|
||||||
<html:input size="30" type="text" id="languages.other"/>
|
|
||||||
</html:td>
|
|
||||||
</html:tr>
|
|
||||||
</html:table>
|
|
||||||
|
|
||||||
<spring style="height:16px"/>
|
|
||||||
-->
|
|
||||||
</box>
|
</box>
|
||||||
<!-- vert 1 -->
|
<!-- vert 1 -->
|
||||||
|
|
||||||
@ -105,20 +99,26 @@
|
|||||||
</box>
|
</box>
|
||||||
<!-- horiz 1 -->
|
<!-- horiz 1 -->
|
||||||
|
|
||||||
|
<separator class="groove"/>
|
||||||
|
|
||||||
|
<spring style="width:1em"/>
|
||||||
|
|
||||||
<!-- The 'Save' and 'Cancel' buttons -->
|
<!-- The 'Save' and 'Cancel' buttons -->
|
||||||
<!-- horz 2 -->
|
<!-- horz 2 -->
|
||||||
<box align="horizontal">
|
<box align="horizontal">
|
||||||
<spring flex="48%"/>
|
<spring flex="48%"/>
|
||||||
<titledbutton id="save_button" onclick="AddAvailableLanguage()"
|
<button id="save_button" onclick="AddAvailableLanguage()"
|
||||||
class="dialog push"
|
class="dialog push"
|
||||||
value="&languages.customize.ok.label;"/>
|
value="&languages.customize.ok.label;"/>
|
||||||
<spring flex="4%"/>
|
<spring flex="4%"/>
|
||||||
<titledbutton onclick="window.close()"
|
<button onclick="window.close()"
|
||||||
class="dialog push"
|
class="dialog push"
|
||||||
value="&languages.customize.cancel.label;" />
|
value="&languages.customize.cancel.label;" />
|
||||||
<spring flex="48%"/>
|
<spring flex="48%"/>
|
||||||
</box>
|
</box>
|
||||||
<!-- horz 2 -->
|
<!-- horz 2 -->
|
||||||
|
|
||||||
|
<spring style="width:1em"/>
|
||||||
|
|
||||||
</window>
|
</window>
|
||||||
|
|
||||||
|
@ -1,128 +1,136 @@
|
|||||||
|
//GLOBALS
|
||||||
|
|
||||||
|
//pref service and pref string
|
||||||
var prefInt;
|
var prefInt;
|
||||||
|
|
||||||
|
//locale bundles
|
||||||
var regionsBundle;
|
var regionsBundle;
|
||||||
var languagesBundle;
|
var languagesBundle;
|
||||||
var acceptedBundle;
|
var acceptedBundle;
|
||||||
var activeLanguageList;
|
|
||||||
var availLanguageList;
|
|
||||||
var availLanguageDict;
|
|
||||||
var languages_pref_string;
|
|
||||||
|
|
||||||
|
//dictionary of all supported locales
|
||||||
|
var availLanguageDict;
|
||||||
|
|
||||||
|
//XUL tree handles
|
||||||
|
var available_languages;
|
||||||
|
var available_languages_treeroot;
|
||||||
|
|
||||||
|
//XUL tree handles
|
||||||
|
var active_languages;
|
||||||
|
var active_languages_treeroot;
|
||||||
|
|
||||||
|
//XUL window pref window interface object
|
||||||
|
var prefwindow_proxy_object;
|
||||||
|
|
||||||
function GetBundles()
|
function GetBundles()
|
||||||
{
|
{
|
||||||
if (!regionsBundle) regionsBundle = srGetStrBundle("chrome://global/locale/regionNames.properties");
|
if (!regionsBundle) regionsBundle = srGetStrBundle("chrome://global/locale/regionNames.properties");
|
||||||
if (!languagesBundle) languagesBundle = srGetStrBundle("chrome://global/locale/languageNames.properties");
|
if (!languagesBundle) languagesBundle = srGetStrBundle("chrome://global/locale/languageNames.properties");
|
||||||
if (!acceptedBundle) acceptedBundle = srGetStrBundle("resource:/res/language.properties");
|
if (!acceptedBundle) acceptedBundle = srGetStrBundle("resource:/res/language.properties");
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
function InitAvailable()
|
function Init()
|
||||||
{
|
{
|
||||||
|
dump("********** Init()\n");
|
||||||
|
|
||||||
dump("********** InitAvailable()\n");
|
try {
|
||||||
|
GetBundles()
|
||||||
|
ReadAvailableLanguages();
|
||||||
|
}
|
||||||
|
|
||||||
|
catch(ex) {
|
||||||
|
dump("*** Couldn't get string bundles\n");
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!window.arguments) {
|
||||||
|
|
||||||
|
try {
|
||||||
|
//base window
|
||||||
|
active_languages = document.getElementById('active_languages');
|
||||||
|
active_languages_treeroot = document.getElementById('active_languages_root');
|
||||||
|
prefwindow_proxy_object = document.getElementById('intlAcceptLanguages');
|
||||||
|
} //try
|
||||||
|
|
||||||
|
catch(ex) {
|
||||||
|
dump("*** Couldn't get XUL element handles\n");
|
||||||
|
} //catch
|
||||||
|
|
||||||
|
try {
|
||||||
|
parent.initPanel('chrome://communicator/content/pref/pref-languages2.xul');
|
||||||
|
}
|
||||||
|
|
||||||
|
catch(ex) {
|
||||||
|
|
||||||
|
dump("*** Couldn't initialize pref panel\n");
|
||||||
|
//pref service backup
|
||||||
|
|
||||||
|
} //catch
|
||||||
|
|
||||||
|
|
||||||
|
//get pref service as backup
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
if (!prefInt) {
|
if (!prefInt) {
|
||||||
|
|
||||||
languages_pref_string = new String();
|
|
||||||
prefInt = Components.classes["component://netscape/preferences"];
|
prefInt = Components.classes["component://netscape/preferences"];
|
||||||
|
|
||||||
if (prefInt) {
|
if (prefInt) {
|
||||||
prefInt = prefInt.getService();
|
prefInt = prefInt.getService();
|
||||||
prefInt = prefInt.QueryInterface(Components.interfaces.nsIPref);
|
prefInt = prefInt.QueryInterface(Components.interfaces.nsIPref);
|
||||||
languages_pref_string = prefInt.CopyCharPref("intl.accept_languages");
|
prefwindow_proxy_object.value = prefInt.CopyCharPref("intl.accept_languages");
|
||||||
dump("*** Language PrefString: " + languages_pref_string + "\n");
|
if (!prefwindow_proxy_object.value) prefwindow_proxy_object.value = "en";
|
||||||
|
} //if
|
||||||
}
|
} //if
|
||||||
}
|
} //try
|
||||||
}
|
|
||||||
|
|
||||||
catch(ex)
|
catch(ex)
|
||||||
{
|
{
|
||||||
dump("failed to get prefs or Language mgr. services!\n");
|
dump("failed to get pref service!\n");
|
||||||
prefInt = null;
|
prefInt = null;
|
||||||
}
|
}
|
||||||
|
|
||||||
GetBundles()
|
|
||||||
ReadAvailableLanguages();
|
|
||||||
LoadAvailableLanguages();
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
function InitActive2()
|
try {
|
||||||
{
|
dump("*** Language PrefString: " + prefwindow_proxy_object.value + "\n");
|
||||||
|
} //try
|
||||||
|
|
||||||
try
|
catch(ex) {
|
||||||
{
|
dump("*** Pref object doesn't exist\n");
|
||||||
if (!prefInt) {
|
} //catch
|
||||||
prefInt = Components.classes["component://netscape/preferences"];
|
|
||||||
}
|
|
||||||
|
|
||||||
if (prefInt) {
|
|
||||||
|
|
||||||
languages_pref_string = new String();
|
|
||||||
prefInt = prefInt.getService();
|
|
||||||
prefInt = prefInt.QueryInterface(Components.interfaces.nsIPref);
|
|
||||||
languages_pref_string = prefInt.CopyCharPref("intl.accept_languages");
|
|
||||||
dump("*** Language PrefString: " + languages_pref_string + "\n");
|
|
||||||
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
catch(ex)
|
|
||||||
{
|
|
||||||
dump("failed to get prefs or charset mgr. services!\n");
|
|
||||||
prefInt = null;
|
|
||||||
}
|
|
||||||
|
|
||||||
GetBundles()
|
|
||||||
ReadAvailableLanguages();
|
|
||||||
LoadActiveLanguages2();
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
function InitActive()
|
|
||||||
{
|
|
||||||
|
|
||||||
try
|
|
||||||
{
|
|
||||||
if (!prefInt) {
|
|
||||||
prefInt = Components.classes["component://netscape/preferences"];
|
|
||||||
}
|
|
||||||
|
|
||||||
if (prefInt) {
|
|
||||||
|
|
||||||
languages_pref_string = new String();
|
|
||||||
prefInt = prefInt.getService();
|
|
||||||
prefInt = prefInt.QueryInterface(Components.interfaces.nsIPref);
|
|
||||||
languages_pref_string = prefInt.CopyCharPref("intl.accept_languages");
|
|
||||||
dump("*** Language PrefString: " + languages_pref_string + "\n");
|
|
||||||
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
catch(ex)
|
|
||||||
{
|
|
||||||
dump("failed to get prefs or charset mgr. services!\n");
|
|
||||||
prefInt = null;
|
|
||||||
}
|
|
||||||
|
|
||||||
GetBundles()
|
|
||||||
ReadAvailableLanguages();
|
|
||||||
LoadActiveLanguages();
|
LoadActiveLanguages();
|
||||||
|
|
||||||
|
} else {
|
||||||
|
|
||||||
|
try {
|
||||||
|
|
||||||
|
//add language popup
|
||||||
|
available_languages = document.getElementById('available_languages');
|
||||||
|
available_languages_treeroot = document.getElementById('available_languages_root');
|
||||||
|
active_languages = window.opener.document.getElementById('active_languages');
|
||||||
|
active_languages_treeroot = window.opener.document.getElementById('active_languages_root');
|
||||||
|
prefwindow_proxy_object = window.opener.document.getElementById('intlAcceptLanguages');
|
||||||
|
|
||||||
|
} //try
|
||||||
|
|
||||||
|
catch(ex) {
|
||||||
|
dump("*** Couldn't get XUL element handles\n");
|
||||||
|
} //catch
|
||||||
|
|
||||||
|
LoadAvailableLanguages();
|
||||||
|
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
function AddLanguage()
|
function AddLanguage()
|
||||||
{
|
{
|
||||||
dump("********** AddLanguage()\n");
|
dump("********** AddLanguage()\n");
|
||||||
var SelArray = window.openDialog("chrome://communicator/content/pref/pref-languages-add.xul","","modal=yes,chrome,resizable=no");
|
window.openDialog("chrome://communicator/content/pref/pref-languages-add.xul","","modal=yes,chrome,resizable=no", "addlangwindow");
|
||||||
dump("********** addLanguage receiving " + SelArray.document + "\n");
|
UpdatePrefString();
|
||||||
dump("********** addLanguage receiving " + SelArray.returnValue + "\n");
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -130,13 +138,12 @@ function ReadAvailableLanguages()
|
|||||||
{
|
{
|
||||||
|
|
||||||
availLanguageDict = new Array();
|
availLanguageDict = new Array();
|
||||||
|
var visible = new String();
|
||||||
var str = new String();
|
var str = new String();
|
||||||
var i =0;
|
var i =0;
|
||||||
|
|
||||||
dump('ReadAvailableLanguages()\n');
|
|
||||||
acceptedBundleEnum = acceptedBundle.getSimpleEnumeration();
|
acceptedBundleEnum = acceptedBundle.getSimpleEnumeration();
|
||||||
|
|
||||||
|
|
||||||
while (acceptedBundleEnum.HasMoreElements()) {
|
while (acceptedBundleEnum.HasMoreElements()) {
|
||||||
|
|
||||||
//progress through the bundle
|
//progress through the bundle
|
||||||
@ -152,15 +159,23 @@ function ReadAvailableLanguages()
|
|||||||
if (stringNameProperty[1] == 'accept') {
|
if (stringNameProperty[1] == 'accept') {
|
||||||
|
|
||||||
//dump the UI string (value)
|
//dump the UI string (value)
|
||||||
var visible = curItem.getValue();
|
visible = curItem.getValue();
|
||||||
|
|
||||||
if (visible == 'true') {
|
//if (visible == 'true') {
|
||||||
|
|
||||||
str = stringNameProperty[0];
|
str = stringNameProperty[0];
|
||||||
stringLangRegion = stringNameProperty[0].split('-');
|
stringLangRegion = stringNameProperty[0].split('-');
|
||||||
|
|
||||||
if (stringLangRegion[0]) {
|
if (stringLangRegion[0]) {
|
||||||
|
|
||||||
|
try {
|
||||||
var tit = languagesBundle.GetStringFromName(stringLangRegion[0]);
|
var tit = languagesBundle.GetStringFromName(stringLangRegion[0]);
|
||||||
|
}
|
||||||
|
|
||||||
|
catch (ex) {
|
||||||
|
dump("No language string for:" + stringLangRegion[1] + "\n");
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
if (stringLangRegion[1]) {
|
if (stringLangRegion[1]) {
|
||||||
|
|
||||||
@ -171,23 +186,26 @@ function ReadAvailableLanguages()
|
|||||||
catch (ex) {
|
catch (ex) {
|
||||||
dump("No region string for:" + stringLangRegion[1] + "\n");
|
dump("No region string for:" + stringLangRegion[1] + "\n");
|
||||||
}
|
}
|
||||||
|
|
||||||
} //if region
|
} //if region
|
||||||
|
|
||||||
|
tit = tit + " [" + str + "]";
|
||||||
|
|
||||||
} //if language
|
} //if language
|
||||||
|
|
||||||
if (str) if (tit) {
|
if (str) if (tit) {
|
||||||
|
|
||||||
dump("Loading available language:" + str + " = " + tit + ", " + i + "\n");
|
|
||||||
availLanguageDict[i] = new Array(2);
|
availLanguageDict[i] = new Array(2);
|
||||||
availLanguageDict[i][0] = tit;
|
availLanguageDict[i][0] = tit;
|
||||||
availLanguageDict[i][1] = str;
|
availLanguageDict[i][1] = str;
|
||||||
availLanguageDict[i][2] = true;
|
availLanguageDict[i][2] = visible;
|
||||||
i++;
|
i++;
|
||||||
|
|
||||||
if (tit) {}
|
if (tit) {}
|
||||||
else dump('Not label for :' + str + ', ' + tit+'\n');
|
else dump('Not label for :' + str + ', ' + tit+'\n');
|
||||||
|
|
||||||
} // if str&tit
|
} // if str&tit
|
||||||
} //if visible
|
//} //if visible
|
||||||
} //if accepted
|
} //if accepted
|
||||||
} //while
|
} //while
|
||||||
|
|
||||||
@ -197,153 +215,28 @@ function ReadAvailableLanguages()
|
|||||||
|
|
||||||
function LoadAvailableLanguages()
|
function LoadAvailableLanguages()
|
||||||
{
|
{
|
||||||
availLanguageList = new Array();
|
|
||||||
var available_languages = document.getElementById('available_languages');
|
|
||||||
var available_languages_treeroot = document.getElementById('available_languages_root');
|
|
||||||
|
|
||||||
dump("Loading available languages!\n");
|
dump("Loading available languages!\n");
|
||||||
dump("Dict length: " + availLanguageDict.length + "\n");
|
|
||||||
|
|
||||||
if (availLanguageDict) for (i = 0; i < availLanguageDict.length; i++) {
|
if (availLanguageDict) for (i = 0; i < availLanguageDict.length; i++) {
|
||||||
|
|
||||||
try { //let's beef up our error handling for languages without label / title
|
if (availLanguageDict[i][2] == 'true') {
|
||||||
|
|
||||||
dump("*** Creating new row\n");
|
AddTreeItem(document, available_languages_treeroot, availLanguageDict[i][1], availLanguageDict[i][0]);
|
||||||
|
|
||||||
// Create a treerow for the new Language
|
} //if
|
||||||
var item = document.createElement('treeitem');
|
|
||||||
var row = document.createElement('treerow');
|
|
||||||
var cell = document.createElement('treecell');
|
|
||||||
|
|
||||||
tit = availLanguageDict[i][0];
|
|
||||||
str = availLanguageDict[i][1];
|
|
||||||
|
|
||||||
dump("*** Tit: " + tit + "\n");
|
|
||||||
dump("*** Str: " + str + "\n");
|
|
||||||
|
|
||||||
|
|
||||||
// Copy over the attributes
|
|
||||||
cell.setAttribute('value', tit);
|
|
||||||
cell.setAttribute('id', str);
|
|
||||||
|
|
||||||
// Add it to the active languages tree
|
|
||||||
dump("*** Append row \n");
|
|
||||||
item.appendChild(row);
|
|
||||||
dump("*** Append cell \n");
|
|
||||||
row.appendChild(cell);
|
|
||||||
|
|
||||||
dump("*** Append item \n");
|
|
||||||
available_languages_treeroot.appendChild(item);
|
|
||||||
|
|
||||||
dump("*** Tit: " + tit + "\n");
|
|
||||||
dump("*** Str: " + str + "\n");
|
|
||||||
|
|
||||||
// Select first item
|
|
||||||
if (i == 0) {
|
|
||||||
}
|
|
||||||
|
|
||||||
dump("*** Added Available Language: " + tit + "\n");
|
|
||||||
|
|
||||||
} //try
|
|
||||||
|
|
||||||
catch (ex) {
|
|
||||||
dump("*** Failed to add Avail. Language: " + tit + "\n");
|
|
||||||
} //catch
|
|
||||||
|
|
||||||
} //for
|
} //for
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
function GetLanguageTitle(id)
|
|
||||||
{
|
|
||||||
|
|
||||||
dump("looking up title for:" + id + "\n");
|
|
||||||
|
|
||||||
if (availLanguageDict) for (j = 0; j < availLanguageDict.length; j++) {
|
|
||||||
|
|
||||||
//dump("ID:" + availLanguageDict[j][1] + " ==> " + availLanguageDict[j][0] + "\n");
|
|
||||||
if ( availLanguageDict[j][1] == id) {
|
|
||||||
//title =
|
|
||||||
dump("found title for:" + id + " ==> " + availLanguageDict[j][0] + "\n");
|
|
||||||
return availLanguageDict[j][0];
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
return '';
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
function GetLanguageVisibility(id)
|
|
||||||
{
|
|
||||||
|
|
||||||
dump("looking up visibility for:" + id + "\n");
|
|
||||||
|
|
||||||
if (availLanguageDict) for (j = 0; j < availLanguageDict.length; j++) {
|
|
||||||
|
|
||||||
//dump("ID:" + availLanguageDict[j][1] + " ==> " + availLanguageDict[j][2] + "\n");
|
|
||||||
if ( availLanguageDict[j][1] == id) {
|
|
||||||
//title =
|
|
||||||
dump("found visibility for:" + id + " ==> " + availLanguageDict[j][2] + "\n");
|
|
||||||
return availLanguageDict[j][2];
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
function AddRemoveLatin1(action)
|
|
||||||
{
|
|
||||||
|
|
||||||
try {
|
|
||||||
arrayOfPrefs = languages_pref_string.split(', ');
|
|
||||||
}
|
|
||||||
|
|
||||||
catch (ex) {
|
|
||||||
dump("failed to split the preference string!\n");
|
|
||||||
}
|
|
||||||
|
|
||||||
if (arrayOfPrefs) for (i = 0; i < arrayOfPrefs.length; i++) {
|
|
||||||
|
|
||||||
str = arrayOfPrefs[i];
|
|
||||||
|
|
||||||
if (str == 'iso-8859-1') {
|
|
||||||
|
|
||||||
if (action == 'remove') {
|
|
||||||
arrayOfPrefs[i]=arrayOfPrefs[arrayOfPrefs.length-1];
|
|
||||||
arrayOfPrefs.length = arrayOfPrefs.length - 1;
|
|
||||||
}
|
|
||||||
|
|
||||||
languages_pref_string = arrayOfPrefs.join(', ');
|
|
||||||
return;
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
} //for
|
|
||||||
|
|
||||||
if (action == 'add') {
|
|
||||||
|
|
||||||
arrayOfPrefs[arrayOfPrefs.length]= 'iso-8859-1';
|
|
||||||
languages_pref_string = arrayOfPrefs.join(', ');
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
function LoadActiveLanguages()
|
function LoadActiveLanguages()
|
||||||
{
|
{
|
||||||
activeLanguageList = new Array();
|
|
||||||
var active_languages = document.getElementById('active_languages');
|
|
||||||
var active_languages_treeroot = document.getElementById('active_languages_root');
|
|
||||||
var visible;
|
|
||||||
|
|
||||||
dump("Loading: " + languages_pref_string + "!\n");
|
//dump("Loading: " + prefwindow_proxy_object.value + "!\n");
|
||||||
|
|
||||||
try {
|
try {
|
||||||
arrayOfPrefs = languages_pref_string.split(', ');
|
arrayOfPrefs = prefwindow_proxy_object.value.split(', ');
|
||||||
}
|
}
|
||||||
|
|
||||||
catch (ex) {
|
catch (ex) {
|
||||||
@ -356,221 +249,77 @@ function LoadActiveLanguages()
|
|||||||
tit = GetLanguageTitle(str);
|
tit = GetLanguageTitle(str);
|
||||||
|
|
||||||
if (str) if (tit) {
|
if (str) if (tit) {
|
||||||
dump("Adding Active Language: " + str + " ==> " + tit + "\n");
|
|
||||||
|
|
||||||
// Create a treerow for the new Language
|
AddTreeItem(document, active_languages_treeroot, str, tit);
|
||||||
var item = document.createElement('treeitem');
|
|
||||||
var row = document.createElement('treerow');
|
|
||||||
var cell = document.createElement('treecell');
|
|
||||||
|
|
||||||
// Copy over the attributes
|
|
||||||
cell.setAttribute('value', tit);
|
|
||||||
cell.setAttribute('id', str);
|
|
||||||
|
|
||||||
// Add it to the active languages tree
|
|
||||||
item.appendChild(row);
|
|
||||||
row.appendChild(cell);
|
|
||||||
active_languages_treeroot.appendChild(item);
|
|
||||||
|
|
||||||
dump("*** Added Active Language: " + tit + "\n");
|
|
||||||
|
|
||||||
} //if
|
} //if
|
||||||
|
|
||||||
} //for
|
} //for
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
function LoadActiveLanguages2()
|
function LangAlreadyActive(langId)
|
||||||
{
|
{
|
||||||
|
|
||||||
try {
|
try {
|
||||||
activeLanguageList = new Array();
|
if (prefwindow_proxy_object.value.indexOf(langId) != -1)
|
||||||
var active_languages = document.getElementById('available_languages');
|
return true;
|
||||||
var active_languages_treeroot = document.getElementById('available_languages_root');
|
else
|
||||||
var visible;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
catch(ex){
|
catch(ex){
|
||||||
dump("Failed to initialize variables\n");
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
dump("Loading: " + languages_pref_string + "!\n");
|
|
||||||
|
|
||||||
try {
|
|
||||||
arrayOfPrefs = languages_pref_string.split(', ');
|
|
||||||
}
|
|
||||||
|
|
||||||
catch (ex) {
|
|
||||||
dump("failed to split the preference string!\n");
|
|
||||||
}
|
|
||||||
|
|
||||||
if (arrayOfPrefs) for (i = 0; i < arrayOfPrefs.length; i++) {
|
|
||||||
|
|
||||||
str = arrayOfPrefs[i];
|
|
||||||
tit = GetLanguageTitle(str);
|
|
||||||
|
|
||||||
if (str) if (tit) {
|
|
||||||
dump("Adding Active Language: " + str + " ==> " + tit + "\n");
|
|
||||||
|
|
||||||
// Create a treerow for the new Language
|
|
||||||
var item = document.createElement('treeitem');
|
|
||||||
var row = document.createElement('treerow');
|
|
||||||
var cell = document.createElement('treecell');
|
|
||||||
|
|
||||||
// Copy over the attributes
|
|
||||||
cell.setAttribute('value', tit);
|
|
||||||
cell.setAttribute('id', str);
|
|
||||||
|
|
||||||
// Add it to the active languages tree
|
|
||||||
item.appendChild(row);
|
|
||||||
row.appendChild(cell);
|
|
||||||
active_languages_treeroot.appendChild(item);
|
|
||||||
|
|
||||||
dump("*** Added Active Language: " + tit + "\n");
|
|
||||||
|
|
||||||
} //if
|
|
||||||
|
|
||||||
} //for
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
function SelectAvailableLanguage()
|
|
||||||
{
|
|
||||||
//Remove the selection in the active languages list
|
|
||||||
var active_languages = document.getElementById('active_languages');
|
|
||||||
|
|
||||||
if (active_languages.selectedCells.length > 0)
|
|
||||||
active_languages.clearCellSelection();
|
|
||||||
|
|
||||||
if (active_languages.selectedItems.length > 0)
|
|
||||||
active_languages.clearItemSelection();
|
|
||||||
|
|
||||||
enable_add_button();
|
|
||||||
} //SelectAvailableLanguage
|
|
||||||
|
|
||||||
|
|
||||||
function enable_remove_button()
|
|
||||||
{
|
|
||||||
var remove_button = document.getElementById('remove_button');
|
|
||||||
|
|
||||||
remove_button.setAttribute('disabled','false');
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
function enable_save()
|
|
||||||
{
|
|
||||||
var save_button = document.getElementById('save_button');
|
|
||||||
|
|
||||||
save_button.setAttribute('disabled','false');
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
function enable_add_button()
|
|
||||||
{
|
|
||||||
var add_button = document.getElementById('add_button');
|
|
||||||
|
|
||||||
add_button.setAttribute('disabled','false');
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
function AddActiveLanguage(availSelected)
|
|
||||||
|
|
||||||
{
|
|
||||||
dump("!!!!!! AddActiveLanguage receiving: " + availSelected);
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
function AddAvailableLanguage()
|
function AddAvailableLanguage()
|
||||||
{
|
{
|
||||||
|
var Languagename = new String();
|
||||||
|
var Languageid = new String();
|
||||||
|
|
||||||
var active_languages = window.opener.document.getElementById('active_languages');
|
|
||||||
var active_languages_treeroot = window.opener.document.getElementById('active_languages_root');
|
|
||||||
var available_languages = document.getElementById('available_languages');
|
|
||||||
|
|
||||||
|
//selected languages
|
||||||
for (var nodeIndex=0; nodeIndex < available_languages.selectedItems.length; nodeIndex++) {
|
for (var nodeIndex=0; nodeIndex < available_languages.selectedItems.length; nodeIndex++) {
|
||||||
|
|
||||||
var selItem = available_languages.selectedItems[nodeIndex];
|
var selItem = available_languages.selectedItems[nodeIndex];
|
||||||
var selRow = selItem.firstChild;
|
var selRow = selItem.firstChild;
|
||||||
var selCell = selRow.firstChild;
|
var selCell = selRow.firstChild;
|
||||||
|
|
||||||
var Languagename = selCell.getAttribute('value');
|
Languagename = selCell.getAttribute('value');
|
||||||
var Languageid = selCell.getAttribute('id');
|
Languageid = selCell.getAttribute('id');
|
||||||
var already_active = false;
|
already_active = false;
|
||||||
|
|
||||||
|
if (!LangAlreadyActive(Languageid)) {
|
||||||
|
|
||||||
for (var item = active_languages_treeroot.firstChild; item != null; item = item.nextSibling) {
|
AddTreeItem(window.opener.document, active_languages_treeroot, Languageid, Languagename);
|
||||||
|
|
||||||
var row = item.firstChild;
|
}//if
|
||||||
var cell = row.firstChild;
|
|
||||||
var active_Languageid = cell.getAttribute('id');
|
|
||||||
|
|
||||||
if (active_Languageid == Languageid) {
|
|
||||||
already_active = true;
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if (already_active == false) {
|
|
||||||
|
|
||||||
// Create a treerow for the new Language
|
|
||||||
var item = document.createElement('treeitem');
|
|
||||||
var row = document.createElement('treerow');
|
|
||||||
var cell = document.createElement('treecell');
|
|
||||||
|
|
||||||
// Copy over the attributes
|
|
||||||
cell.setAttribute('value', Languagename);
|
|
||||||
cell.setAttribute('id', Languageid);
|
|
||||||
|
|
||||||
// Add it to the active languages tree
|
|
||||||
item.appendChild(row);
|
|
||||||
row.appendChild(cell);
|
|
||||||
active_languages_treeroot.appendChild(item);
|
|
||||||
|
|
||||||
// Select is only if the caller wants to.
|
|
||||||
active_languages.selectItem(item);
|
|
||||||
active_languages.ensureElementIsVisible(item);
|
|
||||||
|
|
||||||
}//add new item
|
|
||||||
|
|
||||||
} //loop selected languages
|
} //loop selected languages
|
||||||
|
|
||||||
available_languages.clearItemSelection();
|
|
||||||
window.close();
|
|
||||||
|
|
||||||
} //AddAvailableLanguage
|
//user-defined languages
|
||||||
|
var otherField = document.getElementById( "languages.other" );
|
||||||
|
|
||||||
|
if (otherField.value) {
|
||||||
|
|
||||||
function AddAvailableLanguageNew()
|
dump("Other field: " + otherField.value + "\n");
|
||||||
{
|
|
||||||
|
|
||||||
var available_languages = document.getElementById('available_languages');
|
Languageid = otherField.value;
|
||||||
var availSelected = new Array();
|
Languageid = Languageid.toLowerCase();
|
||||||
|
Languagename = GetLanguageTitle(Languageid);
|
||||||
|
already_active = false;
|
||||||
|
|
||||||
for (var nodeIndex=0; nodeIndex < available_languages.selectedItems.length; nodeIndex++) {
|
if (!LangAlreadyActive(Languageid)) {
|
||||||
|
|
||||||
var selItem = available_languages.selectedItems[nodeIndex];
|
AddTreeItem(window.opener.document, active_languages_treeroot, Languageid, Languagename);
|
||||||
var selRow = selItem.firstChild;
|
|
||||||
var selCell = selRow.firstChild;
|
|
||||||
|
|
||||||
var Languagename = selCell.getAttribute('value');
|
}//if
|
||||||
var Languageid = selCell.getAttribute('id');
|
}
|
||||||
|
|
||||||
availSelected[nodeIndex] = new Array(1);
|
|
||||||
availSelected[nodeIndex][0] = Languagename;
|
|
||||||
availSelected[nodeIndex][1] = Languageid;
|
|
||||||
|
|
||||||
} //loop selected languages
|
|
||||||
|
|
||||||
available_languages.clearItemSelection();
|
available_languages.clearItemSelection();
|
||||||
enable_save();
|
UpdatePrefString();
|
||||||
dump("********** AddAvailableLanguage returning "+availSelected+"\n");
|
|
||||||
window.returnValue = availSelected;
|
|
||||||
dump (window.opener);
|
|
||||||
window.close();
|
window.close();
|
||||||
return(availSelected);
|
|
||||||
|
|
||||||
} //AddAvailableLanguage
|
} //AddAvailableLanguage
|
||||||
|
|
||||||
@ -578,18 +327,17 @@ function AddAvailableLanguageNew()
|
|||||||
function RemoveActiveLanguage()
|
function RemoveActiveLanguage()
|
||||||
{
|
{
|
||||||
|
|
||||||
var active_languages_treeroot = document.getElementById('active_languages_root');
|
|
||||||
var tree = document.getElementById('active_languages');
|
|
||||||
var nextNode = null;
|
var nextNode = null;
|
||||||
var numSelected = tree.selectedItems.length;
|
var numSelected = active_languages.selectedItems.length;
|
||||||
var deleted_all = false;
|
var deleted_all = false;
|
||||||
|
|
||||||
while (tree.selectedItems.length > 0) {
|
while (active_languages.selectedItems.length > 0) {
|
||||||
|
|
||||||
var selectedNode = tree.selectedItems[0];
|
var selectedNode = active_languages.selectedItems[0];
|
||||||
nextNode = selectedNode.nextSibling;
|
nextNode = selectedNode.nextSibling;
|
||||||
|
|
||||||
if (!nextNode)
|
if (!nextNode)
|
||||||
|
|
||||||
if (selectedNode.previousSibling)
|
if (selectedNode.previousSibling)
|
||||||
nextNode = selectedNode.previousSibling;
|
nextNode = selectedNode.previousSibling;
|
||||||
|
|
||||||
@ -603,31 +351,65 @@ function RemoveActiveLanguage()
|
|||||||
} //while
|
} //while
|
||||||
|
|
||||||
if (nextNode) {
|
if (nextNode) {
|
||||||
tree.selectItem(nextNode)
|
active_languages.selectItem(nextNode)
|
||||||
} else {
|
} else {
|
||||||
//tree.clearItemSelection();
|
//active_languages.clearItemSelection();
|
||||||
}
|
}
|
||||||
|
|
||||||
enable_save();
|
UpdatePrefString();
|
||||||
|
|
||||||
} //RemoveActiveLanguage
|
} //RemoveActiveLanguage
|
||||||
|
|
||||||
|
|
||||||
function Save()
|
function GetLanguageTitle(id)
|
||||||
{
|
{
|
||||||
|
|
||||||
// Iterate through the 'active languages tree to collect the languages
|
if (availLanguageDict) for (j = 0; j < availLanguageDict.length; j++) {
|
||||||
// that the user has chosen.
|
|
||||||
|
|
||||||
dump('Entering Save() function.\n');
|
if ( availLanguageDict[j][1] == id) {
|
||||||
|
//title =
|
||||||
|
dump("found title for:" + id + " ==> " + availLanguageDict[j][0] + "\n");
|
||||||
|
return availLanguageDict[j][0];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return '';
|
||||||
|
}
|
||||||
|
|
||||||
var active_languages = document.getElementById('active_languages');
|
|
||||||
var active_languages_treeroot = document.getElementById('active_languages_root');
|
|
||||||
|
|
||||||
var row = null;
|
function AddTreeItem(doc, treeRoot, langID, langTitle)
|
||||||
var cell = null;
|
{
|
||||||
var languageid = new String();
|
try { //let's beef up our error handling for languages without label / title
|
||||||
|
|
||||||
|
// Create a treerow for the new Language
|
||||||
|
var item = doc.createElement('treeitem');
|
||||||
|
var row = doc.createElement('treerow');
|
||||||
|
var cell = doc.createElement('treecell');
|
||||||
|
|
||||||
|
// Copy over the attributes
|
||||||
|
cell.setAttribute('value', langTitle);
|
||||||
|
cell.setAttribute('id', langID);
|
||||||
|
|
||||||
|
// Add it to the active languages tree
|
||||||
|
item.appendChild(row);
|
||||||
|
row.appendChild(cell);
|
||||||
|
|
||||||
|
treeRoot.appendChild(item);
|
||||||
|
dump("*** Added tree item: " + langTitle + "\n");
|
||||||
|
|
||||||
|
} //try
|
||||||
|
|
||||||
|
catch (ex) {
|
||||||
|
dump("*** Failed to add item: " + langTitle + "\n");
|
||||||
|
} //catch
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
function UpdatePrefString()
|
||||||
|
{
|
||||||
var num_languages = 0;
|
var num_languages = 0;
|
||||||
languages_pref_string = '';
|
|
||||||
|
dump("*** UpdatePrefString()\n");
|
||||||
|
|
||||||
for (var item = active_languages_treeroot.firstChild; item != null; item = item.nextSibling) {
|
for (var item = active_languages_treeroot.firstChild; item != null; item = item.nextSibling) {
|
||||||
|
|
||||||
@ -641,61 +423,83 @@ function Save()
|
|||||||
|
|
||||||
//separate >1 languages by commas
|
//separate >1 languages by commas
|
||||||
if (num_languages > 1) {
|
if (num_languages > 1) {
|
||||||
languages_pref_string = languages_pref_string + "," + " " + languageid;
|
prefwindow_proxy_object.value = prefwindow_proxy_object.value + "," + " " + languageid;
|
||||||
} else {
|
} else {
|
||||||
languages_pref_string = languageid;
|
prefwindow_proxy_object.value = languageid;
|
||||||
}
|
} //if
|
||||||
|
} //if
|
||||||
|
}//for
|
||||||
|
|
||||||
|
dump("*** Pref string set to: " + prefwindow_proxy_object.value + "\n");
|
||||||
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function Save()
|
||||||
|
{
|
||||||
|
|
||||||
|
// Iterate through the 'active languages tree to collect the languages
|
||||||
|
// that the user has chosen.
|
||||||
|
|
||||||
|
dump('*** Save()\n');
|
||||||
|
|
||||||
|
var row = null;
|
||||||
|
var cell = null;
|
||||||
|
var languageid = new String();
|
||||||
|
|
||||||
|
UpdatePrefString();
|
||||||
|
|
||||||
|
//Save Prefs
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
|
|
||||||
|
if (!prefInt) {
|
||||||
|
|
||||||
|
prefInt = Components.classes["component://netscape/preferences"];
|
||||||
|
|
||||||
|
if (prefInt) {
|
||||||
|
prefInt = prefInt.getService();
|
||||||
|
prefInt = prefInt.QueryInterface(Components.interfaces.nsIPref);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
if (prefInt)
|
if (prefInt)
|
||||||
{
|
{
|
||||||
|
prefInt.SetCharPref("intl.accept_languages", prefwindow_proxy_object.value);
|
||||||
//AddRemoveLatin1('remove');
|
dump('*** saved pref: ' + prefwindow_proxy_object.value + '.\n');
|
||||||
prefInt.SetCharPref("intl.charset_menu.static", languages_pref_string);
|
|
||||||
//prefInt.SetCharPref("browser.startup.homepage", languages_pref_string);
|
|
||||||
//prefInt.CopyCharPref("intl.charset_menu.static", languages_pref_string);
|
|
||||||
//prefInt.SetCharPref("browser.startup.homepage", "www.betak.net");
|
|
||||||
|
|
||||||
confirm_text = document.getElementById('confirm_text');
|
|
||||||
dump('intl.charset_menu.static set to ' + languages_pref_string + '.\n');
|
|
||||||
window.close();
|
|
||||||
confirm(confirm_text.getAttribute('value'));
|
|
||||||
}
|
}
|
||||||
|
window.close();
|
||||||
}
|
}
|
||||||
|
|
||||||
catch(ex)
|
catch(ex)
|
||||||
{
|
{
|
||||||
confirm('exception' + ex);
|
dump("*** Couldn't save!\n");
|
||||||
//prefInt.SetDefaultCharPref("intl.charset_menu.static", "iso-8859-1, iso-2022-jp, shift_jis, euc-jp");
|
window.close();
|
||||||
}
|
}
|
||||||
|
|
||||||
} //Save
|
} //Save
|
||||||
|
|
||||||
|
|
||||||
function MoveUp() {
|
function MoveUp() {
|
||||||
var tree = document.getElementById('active_languages');
|
|
||||||
if (tree.selectedItems.length == 1) {
|
if (active_languages.selectedItems.length == 1) {
|
||||||
var selected = tree.selectedItems[0];
|
var selected = active_languages.selectedItems[0];
|
||||||
var before = selected.previousSibling
|
var before = selected.previousSibling
|
||||||
if (before) {
|
if (before) {
|
||||||
before.parentNode.insertBefore(selected, before);
|
before.parentNode.insertBefore(selected, before);
|
||||||
tree.selectItem(selected);
|
active_languages.selectItem(selected);
|
||||||
tree.ensureElementIsVisible(selected);
|
active_languages.ensureElementIsVisible(selected);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
enable_save();
|
UpdatePrefString();
|
||||||
|
|
||||||
} //MoveUp
|
} //MoveUp
|
||||||
|
|
||||||
|
|
||||||
function MoveDown() {
|
function MoveDown() {
|
||||||
var tree = document.getElementById('active_languages');
|
|
||||||
if (tree.selectedItems.length == 1) {
|
if (active_languages.selectedItems.length == 1) {
|
||||||
var selected = tree.selectedItems[0];
|
var selected = active_languages.selectedItems[0];
|
||||||
if (selected.nextSibling) {
|
if (selected.nextSibling) {
|
||||||
if (selected.nextSibling.nextSibling) {
|
if (selected.nextSibling.nextSibling) {
|
||||||
selected.parentNode.insertBefore(selected, selected.nextSibling.nextSibling);
|
selected.parentNode.insertBefore(selected, selected.nextSibling.nextSibling);
|
||||||
@ -703,9 +507,10 @@ function MoveDown() {
|
|||||||
else {
|
else {
|
||||||
selected.parentNode.appendChild(selected);
|
selected.parentNode.appendChild(selected);
|
||||||
}
|
}
|
||||||
tree.selectItem(selected);
|
active_languages.selectItem(selected);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
enable_save();
|
UpdatePrefString();
|
||||||
|
|
||||||
} //MoveDown
|
} //MoveDown
|
||||||
|
@ -19,52 +19,65 @@
|
|||||||
-->
|
-->
|
||||||
|
|
||||||
<?xml-stylesheet href="chrome://communicator/skin/" type="text/css"?>
|
<?xml-stylesheet href="chrome://communicator/skin/" type="text/css"?>
|
||||||
|
<?xml-stylesheet href="chrome://communicator/skin/sidebar/customize.css" type="text/css"?>
|
||||||
<?xul-overlay href="chrome://global/content/dialogOverlay.xul"?>
|
<?xul-overlay href="chrome://global/content/dialogOverlay.xul"?>
|
||||||
|
|
||||||
<!DOCTYPE window SYSTEM "chrome://communicator/locale/pref/pref-languages2.dtd" >
|
<!DOCTYPE window SYSTEM "chrome://communicator/locale/pref/pref-languages2.dtd" >
|
||||||
|
|
||||||
|
<window id="langPanel"
|
||||||
|
|
||||||
<window
|
|
||||||
xmlns:html="http://www.w3.org/TR/REC-html40"
|
xmlns:html="http://www.w3.org/TR/REC-html40"
|
||||||
xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"
|
xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"
|
||||||
id="main-box"
|
class="color-dialog"
|
||||||
title="&languages.customize.title.label;"
|
title="&languages.customize.window.title;"
|
||||||
class="dialog"
|
onload="Init();">
|
||||||
windowtype="sidebar:customize"
|
orient="vertical">
|
||||||
onload="InitActive();"
|
|
||||||
align="vertical"
|
|
||||||
persist="width height"
|
|
||||||
width="500" height="381">
|
|
||||||
|
|
||||||
<html:script language="javascript" src="pref-languages.js"/>
|
<script language="javascript" src="chrome://communicator/content/pref/pref-languages.js"></script>
|
||||||
<html:script language="javascript" src="chrome://global/content/strres.js"/>
|
<script language="javascript" src="chrome://global/content/strres.js"></script>
|
||||||
|
<script language="JavaScript">
|
||||||
|
<![CDATA[
|
||||||
|
_elementIDs = ["intlAcceptLanguages"];
|
||||||
|
]]>
|
||||||
|
</script>
|
||||||
|
|
||||||
<box type="smallheader"
|
<broadcaster id="intlAcceptLanguages"
|
||||||
title="&languages.customize.lHeader;"
|
value="" pref="true"
|
||||||
description="&languages.customize.rHeader;"/>
|
preftype="string"
|
||||||
id="confirm_text"
|
prefstring="intl.accept_languages"
|
||||||
value="&languages.customize.save.popup;"/>
|
prefattribute="value"
|
||||||
|
wsm_persist="true"/>
|
||||||
|
|
||||||
|
<!-- vert 0 -->
|
||||||
|
<box align="vertical" flex="100%">
|
||||||
|
|
||||||
|
<box class="box-smallheader" title="&languages.customize.lHeader;"/>
|
||||||
|
<!--
|
||||||
|
description="&languages.customize.rHeader;
|
||||||
|
-->
|
||||||
|
|
||||||
<!-- The main pane -->
|
<!-- The main pane -->
|
||||||
<!-- horz 1 -->
|
<!-- horz 1 -->
|
||||||
<box align="horizontal" flex="100%">
|
<box align="horizontal" flex="100%">
|
||||||
|
|
||||||
|
|
||||||
<!-- Spacing between the left window border and list box -->
|
<!-- Spacing between the left window border and list box -->
|
||||||
<spring style="width:2em"/>
|
<spring style="width:2em"/>
|
||||||
|
|
||||||
<!-- Active client languages:
|
|
||||||
list box, reorder, add and remove widgets -->
|
|
||||||
|
|
||||||
<!-- vert 1 -->
|
<!-- vert 1 -->
|
||||||
<box align="vertical" flex="1">
|
<box align="vertical" flex="1">
|
||||||
|
|
||||||
<html:div class="vertical-gap">
|
<spring style="height:4px"/>
|
||||||
&languages.customize.prefLangDescript;
|
|
||||||
</html:div>
|
|
||||||
|
|
||||||
<spring style="height:8px"/>
|
<box align="horizontal" flex="0">
|
||||||
|
<html class="label" style="width: 370px;">
|
||||||
|
&languages.customize.prefLangDescript;
|
||||||
|
</html>
|
||||||
|
</box>
|
||||||
|
|
||||||
|
<separator/>
|
||||||
|
|
||||||
|
<html>
|
||||||
|
&languages.customize.active.label;
|
||||||
|
</html>
|
||||||
|
|
||||||
<!-- horz 2 -->
|
<!-- horz 2 -->
|
||||||
<box align="horizontal" class="box-group" flex="1">
|
<box align="horizontal" class="box-group" flex="1">
|
||||||
@ -83,18 +96,26 @@
|
|||||||
</tree>
|
</tree>
|
||||||
|
|
||||||
<!-- Spacing between the right selector and "Reorder" -->
|
<!-- Spacing between the right selector and "Reorder" -->
|
||||||
<spring style="width:8px"/>
|
<spring style="width:4px"/>
|
||||||
|
|
||||||
<!-- The Reorder Buttons -->
|
<!-- The Reorder Buttons -->
|
||||||
<!-- vert 2 -->
|
<!-- vert 2 -->
|
||||||
<box align="vertical">
|
<box align="vertical">
|
||||||
<spring flex="50%"/>
|
<spring flex="50%"/>
|
||||||
<titledbutton onclick="MoveUp();" id="up" class="borderless up" />
|
<box autostretch="never">
|
||||||
<html:div>
|
<button onclick="MoveUp();" id="up" class="up small" />
|
||||||
|
</box>
|
||||||
|
|
||||||
|
<!--
|
||||||
|
<html>
|
||||||
&languages.customize.reorder.label;
|
&languages.customize.reorder.label;
|
||||||
</html:div>
|
</html>
|
||||||
<titledbutton onclick="MoveDown();" id="down"
|
-->
|
||||||
class="borderless down" />
|
|
||||||
|
<box autostretch="never">
|
||||||
|
<button onclick="MoveDown();" id="down" class="down small" />
|
||||||
|
</box>
|
||||||
|
|
||||||
<spring flex="50%"/>
|
<spring flex="50%"/>
|
||||||
</box>
|
</box>
|
||||||
<!-- vert 2 -->
|
<!-- vert 2 -->
|
||||||
@ -102,8 +123,10 @@
|
|||||||
<!-- The Add/Remove Buttons -->
|
<!-- The Add/Remove Buttons -->
|
||||||
<!-- vert 3 -->
|
<!-- vert 3 -->
|
||||||
<box align="vertical">
|
<box align="vertical">
|
||||||
<titledbutton class="dialog push" value="&languages.customize.addButton.label;" onclick="AddLanguage();"/>
|
<button class="dialog push" value="&languages.customize.addButton.label;" onclick="AddLanguage();"/>
|
||||||
<titledbutton class="dialog push" value="&languages.customize.deleteButton.label;" onclick="RemoveActiveLanguage();"/>
|
<button class="dialog push" value="&languages.customize.deleteButton.label;" onclick="RemoveActiveLanguage();"/>
|
||||||
|
<button class="dialog push" value="&languages.customize.save.label;" onclick="Save();"/>
|
||||||
|
<button class="dialog push" value="&languages.customize.cancel.label;" onclick="window.close();"/>
|
||||||
</box>
|
</box>
|
||||||
<!-- vert 3 -->
|
<!-- vert 3 -->
|
||||||
|
|
||||||
@ -118,24 +141,8 @@
|
|||||||
</box>
|
</box>
|
||||||
<!-- horiz 1 -->
|
<!-- horiz 1 -->
|
||||||
|
|
||||||
<html:div>
|
|
||||||
<html:hr />
|
|
||||||
</html:div>
|
|
||||||
|
|
||||||
<!-- The 'Save' and 'Cancel' buttons -->
|
|
||||||
<!-- horz 2 -->
|
|
||||||
<box align="horizontal">
|
|
||||||
<spring flex="48%"/>
|
|
||||||
<titledbutton id="save_button" onclick="Save();"
|
|
||||||
class="dialog push"
|
|
||||||
value="&languages.customize.save.label;"/>
|
|
||||||
<spring flex="4%"/>
|
|
||||||
<titledbutton onclick="window.close()"
|
|
||||||
class="dialog push"
|
|
||||||
value="&languages.customize.cancel.label;" />
|
|
||||||
<spring flex="48%"/>
|
|
||||||
</box>
|
</box>
|
||||||
<!-- horz 2 -->
|
<!-- vert 0 -->
|
||||||
|
|
||||||
</window>
|
</window>
|
||||||
|
|
||||||
|
@ -72,7 +72,7 @@
|
|||||||
<treechildren>
|
<treechildren>
|
||||||
<treeitem>
|
<treeitem>
|
||||||
<treerow>
|
<treerow>
|
||||||
<treecell class="treecell-indent" url="chrome://communicator/content/pref/pref-languages.xul" value="&languages.label;"/>
|
<treecell class="treecell-indent" url="chrome://communicator/content/pref/pref-languages2.xul" value="&languages.label;"/>
|
||||||
</treerow>
|
</treerow>
|
||||||
</treeitem>
|
</treeitem>
|
||||||
<treeitem>
|
<treeitem>
|
||||||
|
@ -1,12 +1,13 @@
|
|||||||
<!-- LOCALIZATION NOTE : FILE 'Languages' preferences dialog -->
|
<!-- LOCALIZATION NOTE : FILE 'Languages' preferences dialog -->
|
||||||
<!ENTITY languages.customize.prefLangDescript "Choose in order of preference the language(s)
|
<!ENTITY languages.customize.prefLangDescript "Choose in order of preference the language(s)
|
||||||
in which you prefer to view web pages. Web pages are sometimes
|
in which you prefer to view web pages. Web
|
||||||
available in several languages. Navigator presents pages in
|
pages are sometimes available in several
|
||||||
the available language you most prefer.">
|
languages. Navigator presents pages in the
|
||||||
|
available language you most prefer.">
|
||||||
<!ENTITY languages.customize.window.title "Languages">
|
<!ENTITY languages.customize.window.title "Languages">
|
||||||
<!ENTITY languages.customize.lHeader "Languages">
|
<!ENTITY languages.customize.lHeader "Languages">
|
||||||
<!ENTITY languages.customize.rHeader "Languages in which webpages are displayed">
|
<!ENTITY languages.customize.rHeader "Languages in which webpages are displayed">
|
||||||
<!ENTITY languages.customize.prefAddLangDescript "Select the languege you would like to add.">
|
<!ENTITY languages.customize.prefAddLangDescript "Select the language(s) you would like to add.">
|
||||||
<!ENTITY languages.customize.engOrder.label "1">
|
<!ENTITY languages.customize.engOrder.label "1">
|
||||||
<!ENTITY languages.customize.engOption.label "English">
|
<!ENTITY languages.customize.engOption.label "English">
|
||||||
<!ENTITY languages.customize.addButton.label "Add...">
|
<!ENTITY languages.customize.addButton.label "Add...">
|
||||||
@ -15,14 +16,20 @@
|
|||||||
<!ENTITY languages.customize.add.title.label "Add Languages">
|
<!ENTITY languages.customize.add.title.label "Add Languages">
|
||||||
<!ENTITY languages.customize.left.header "Character Coding">
|
<!ENTITY languages.customize.left.header "Character Coding">
|
||||||
<!ENTITY languages.customize.right.header "Select Supported Charsets">
|
<!ENTITY languages.customize.right.header "Select Supported Charsets">
|
||||||
<!ENTITY languages.customize.current.label "Languages:">
|
<!ENTITY languages.customize.available.label "Languages:">
|
||||||
|
<!ENTITY languages.customize.active.label "Languages in order of preference:">
|
||||||
<!ENTITY languages.customize.reorder.label "Reorder">
|
<!ENTITY languages.customize.reorder.label "Reorder">
|
||||||
<!ENTITY languages.customize.remove.label "Remove">
|
<!ENTITY languages.customize.remove.label "Remove">
|
||||||
<!ENTITY languages.customize.additional.label "Available Charactersets">
|
<!ENTITY languages.customize.additional.label "Available Charactersets">
|
||||||
<!ENTITY languages.customize.add.label "Add">
|
<!ENTITY languages.customize.add.label "Add">
|
||||||
<!ENTITY languages.customize.others.label "Others:">
|
<!ENTITY languages.customize.others.label "Others:">
|
||||||
|
<!-- LOCALIZATION NOTE Charset Coding Preferences Dialog: Do NOT localize the terms "en-bz, ar-jo" -->
|
||||||
|
<!ENTITY languages.customize.others.examples "e.g.: en-bz, ar-jo">
|
||||||
<!ENTITY languages.customize.cancel.label "Cancel">
|
<!ENTITY languages.customize.cancel.label "Cancel">
|
||||||
<!ENTITY languages.customize.save.label "Save">
|
<!ENTITY languages.customize.save.label "Save">
|
||||||
<!ENTITY languages.customize.ok.label "OK">
|
<!ENTITY languages.customize.ok.label "OK">
|
||||||
<!ENTITY languages.customize.save.popup "Please restart the browser for changes to take effect...">
|
<!ENTITY languages.customize.save.popup "Please restart the browser for changes to take effect...">
|
||||||
|
<!ENTITY languages.customize.moveUp.label "Up">
|
||||||
|
<!ENTITY languages.customize.moveUp.accesskey "u">
|
||||||
|
<!ENTITY languages.customize.moveDown.label "Down">
|
||||||
|
<!ENTITY languages.customize.moveDown.accesskey "d">
|
||||||
|
Loading…
Reference in New Issue
Block a user