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:
parent
919eb0c520
commit
1debc0d24d
@ -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"/>
|
||||
|
||||
@ -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;
|
||||
|
||||
@ -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;"/>
|
||||
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user