Bug 56680 - use a xul <stringbundle/> instead of including the strres.js code (suite/common/pref/pref-languages*.* part). Patch by Serge Gautherie <sgautherie.bz@free.fr>, r=IanN, sr=Neil.

git-svn-id: svn://10.0.0.236/trunk@253112 18797224-902f-48f8-a5cc-f745e15eee43
This commit is contained in:
stefanh%inbox.com 2008-07-18 16:16:50 +00:00
parent 919eb0c520
commit 1debc0d24d
3 changed files with 38 additions and 76 deletions

View File

@ -49,8 +49,6 @@
style="width: 25em;height: 28em;">
<script type="application/x-javascript" src="pref-languages.js"/>
<!-- XXX: Replace strres.js when pref-languages is converted -->
<script type="application/x-javascript" src="chrome://global/content/strres.js"/>
<description>&languages.customize.prefAddLangDescript;</description>
<separator class="thin"/>

View File

@ -58,73 +58,43 @@ var pref_string = new String();
//Reg expression for splitting multiple pref values
var separatorRe = /\s*,\s*/;
function GetBundles()
function Startup()
{
if (!regionsBundle) regionsBundle = srGetStrBundle("chrome://global/locale/regionNames.properties");
if (!languagesBundle) languagesBundle = srGetStrBundle("chrome://global/locale/languageNames.properties");
if (!prefLangBundle) prefLangBundle = srGetStrBundle("chrome://communicator/locale/pref/pref-languages.properties");
if (!acceptedBundle) acceptedBundle = srGetStrBundle("resource://gre/res/language.properties");
// Load base window.
acceptedBundle = document.getElementById("acceptedBundle");
languagesBundle = document.getElementById("languagesBundle");
prefLangBundle = document.getElementById("prefLangBundle");
regionsBundle = document.getElementById("regionsBundle");
active_languages = document.getElementById("active_languages");
pref_string = active_languages.getAttribute("prefvalue");
ReadAvailableLanguages();
LoadActiveLanguages();
SelectLanguage();
}
function Init()
{
try {
GetBundles();
}
// Load available languages popup.
catch(ex) {
}
// Reuse the language panel's bundle and globals
prefLangBundle = opener.prefLangBundle;
availLanguageDict = opener.availLanguageDict;
pref_string = opener.pref_string;
active_languages = opener.active_languages;
ReadAvailableLanguages();
available_languages = document.getElementById("available_languages");
if (!("arguments" in window)) {
//no caller arguments - load base window
try {
active_languages = document.getElementById('active_languages');
} //try
catch(ex) {
} //catch
try {
parent.initPanel('chrome://communicator/content/pref/pref-languages.xul');
}
catch(ex) {
//pref service backup
} //catch
pref_string = active_languages.getAttribute("prefvalue");
LoadActiveLanguages();
SelectLanguage();
} else {
//load available languages popup
try {
//add language popup
available_languages = document.getElementById('available_languages');
active_languages = window.opener.document.getElementById('active_languages');
pref_string = window.opener.document.getElementById('intlAcceptLanguages').label;
} //try
catch(ex) {
} //catch
LoadAvailableLanguages();
}
LoadAvailableLanguages();
}
function AddLanguage()
{
//cludge: make pref string available from the popup
document.getElementById('intlAcceptLanguages').label = pref_string;
window.openDialog("chrome://communicator/content/pref/pref-languages-add.xul","_blank","modal,chrome,centerscreen,titlebar", "addlangwindow");
UpdateSavePrefString();
SelectLanguage();
@ -138,7 +108,7 @@ function ReadAvailableLanguages()
var str = new String();
var i =0;
var acceptedBundleEnum = acceptedBundle.getSimpleEnumeration();
const acceptedBundleEnum = acceptedBundle.stringBundle.getSimpleEnumeration();
var curItem;
var stringName;
@ -173,7 +143,7 @@ function ReadAvailableLanguages()
var use_region_format = false;
try {
language = languagesBundle.GetStringFromName(stringLangRegion[0]);
language = languagesBundle.getString(stringLangRegion[0]);
}
catch (ex) {
language = "";
@ -182,7 +152,7 @@ function ReadAvailableLanguages()
if (stringLangRegion.length > 1) {
try {
region = regionsBundle.GetStringFromName(stringLangRegion[1]);
region = regionsBundle.getString(stringLangRegion[1]);
use_region_format = true;
}
catch (ex) {
@ -190,11 +160,11 @@ function ReadAvailableLanguages()
}
if (use_region_format) {
tit = prefLangBundle.formatStringFromName("languageRegionCodeFormat",
[language, region, str], 3);
tit = prefLangBundle.getFormattedString("languageRegionCodeFormat",
[language, region, str]);
} else {
tit = prefLangBundle.formatStringFromName("languageCodeFormat",
[language, str], 2);
tit = prefLangBundle.getFormattedString("languageCodeFormat",
[language, str]);
}
} //if language
@ -401,13 +371,11 @@ function AddAvailableLanguage()
}
}
if (invalidLangs.length > 0) {
var errorMsg = prefLangBundle.GetStringFromName("illegalOtherLanguage") + " " +
invalidLangs.join(", ");
var errorTitle = prefLangBundle.GetStringFromName("illegalOtherLanguageTitle");
const errorMsg = prefLangBundle.getString("illegalOtherLanguage") + " " +
invalidLangs.join(", ");
const errorTitle = prefLangBundle.getString("illegalOtherLanguageTitle");
var prompter = Components.classes["@mozilla.org/embedcomp/prompt-service;1"]
.getService(Components.interfaces.nsIPromptService);
prompter.alert(this.window, errorTitle, errorMsg);
otherField.focus();
return false;

View File

@ -42,12 +42,10 @@
<!DOCTYPE page SYSTEM "chrome://communicator/locale/pref/pref-languages.dtd" >
<page xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"
onload="Init();"
onload="parent.initPanel(document.documentURI);"
headertitle="&languages.customize.lHeader;">
<script type="application/x-javascript" src="chrome://communicator/content/pref/pref-languages.js"/>
<!-- XXX: Replace strres.js when pref-languages.js is converted -->
<script type="application/x-javascript" src="chrome://global/content/strres.js"/>
<script type="application/x-javascript">
<![CDATA[
var _elementIDs = ["active_languages", "DefaultCharsetList", "spellcheckDefault"];
@ -56,13 +54,11 @@
]]>
</script>
<broadcaster id="intlAcceptLanguages"
value=""
preftype="localizedstring"
prefattribute="value"
prefstring="intl.accept_languages"/>
<stringbundle id="acceptedBundle" src="resource://gre/res/language.properties"/>
<stringbundle id="languagesBundle" src="chrome://global/locale/languageNames.properties"/>
<stringbundle id="regionsBundle" src="chrome://global/locale/regionNames.properties"/>
<stringbundle id="prefLangBundle" src="chrome://communicator/locale/pref/pref-languages.properties"/>
<groupbox flex="1">
<caption label="&langtitle.label;"/>