list of available languages can be set

this will reduce the languages in the language selector and also
shorten the time for loading all translations
This commit is contained in:
Uwe Steinmann 2016-11-17 11:31:58 +01:00
parent 0c4122b0f6
commit f0a6265b4a
4 changed files with 51 additions and 16 deletions

View File

@ -103,6 +103,8 @@ class Settings { /* {{{ */
var $_contentOffsetDir = "1048576"; var $_contentOffsetDir = "1048576";
// Maximum number of sub-directories per parent directory // Maximum number of sub-directories per parent directory
var $_maxDirID = 32700; var $_maxDirID = 32700;
// default available languages (list of languages shown in language selector)
var $_availablelanguages = array();
// default language (name of a subfolder in folder "languages") // default language (name of a subfolder in folder "languages")
var $_language = "en_GB"; var $_language = "en_GB";
// users are notified about document-changes that took place within the last $_updateNotifyTime seconds // users are notified about document-changes that took place within the last $_updateNotifyTime seconds
@ -376,6 +378,8 @@ class Settings { /* {{{ */
$this->_footNote = strval($tab["footNote"]); $this->_footNote = strval($tab["footNote"]);
$this->_printDisclaimer = Settings::boolVal($tab["printDisclaimer"]); $this->_printDisclaimer = Settings::boolVal($tab["printDisclaimer"]);
$this->_language = strval($tab["language"]); $this->_language = strval($tab["language"]);
if(trim(strval($tab["availablelanguages"])))
$this->_availablelanguages = explode(',',strval($tab["availablelanguages"]));
$this->_theme = strval($tab["theme"]); $this->_theme = strval($tab["theme"]);
if(isset($tab["previewWidthList"])) if(isset($tab["previewWidthList"]))
$this->_previewWidthList = intval($tab["previewWidthList"]); $this->_previewWidthList = intval($tab["previewWidthList"]);
@ -678,6 +682,7 @@ class Settings { /* {{{ */
$this->setXMLAttributValue($node, "footNote", $this->_footNote); $this->setXMLAttributValue($node, "footNote", $this->_footNote);
$this->setXMLAttributValue($node, "printDisclaimer", $this->_printDisclaimer); $this->setXMLAttributValue($node, "printDisclaimer", $this->_printDisclaimer);
$this->setXMLAttributValue($node, "language", $this->_language); $this->setXMLAttributValue($node, "language", $this->_language);
$this->setXMLAttributValue($node, "availablelanguages", implode(',', $this->_availablelanguages));
$this->setXMLAttributValue($node, "theme", $this->_theme); $this->setXMLAttributValue($node, "theme", $this->_theme);
$this->setXMLAttributValue($node, "previewWidthList", $this->_previewWidthList); $this->setXMLAttributValue($node, "previewWidthList", $this->_previewWidthList);
$this->setXMLAttributValue($node, "previewWidthDetail", $this->_previewWidthDetail); $this->setXMLAttributValue($node, "previewWidthDetail", $this->_previewWidthDetail);

View File

@ -20,7 +20,10 @@
$LANG = array(); $LANG = array();
$MISSING_LANG = array(); $MISSING_LANG = array();
foreach(getLanguages() as $_lang) { $__languages = getLanguages();
if(!in_array($settings->_language, $__languages))
$__languages[] = $settings->_language;
foreach($__languages as $_lang) {
if(file_exists($settings->_rootDir . "languages/" . $_lang . "/lang.inc")) { if(file_exists($settings->_rootDir . "languages/" . $_lang . "/lang.inc")) {
include $settings->_rootDir . "languages/" . $_lang . "/lang.inc"; include $settings->_rootDir . "languages/" . $_lang . "/lang.inc";
$LANG[$_lang] = $text; $LANG[$_lang] = $text;
@ -28,9 +31,8 @@ foreach(getLanguages() as $_lang) {
} }
unset($text); unset($text);
function getLanguages() function getAvailableLanguages() { /* {{{ */
{ global $settings;
GLOBAL $settings;
$languages = array(); $languages = array();
@ -48,7 +50,17 @@ function getLanguages()
asort($languages); asort($languages);
return $languages; return $languages;
} } /* }}} */
function getLanguages() { /* {{{ */
global $settings;
if($settings->_availablelanguages) {
return $settings->_availablelanguages;
}
return getAvailableLanguages();
} /* }}} */
/** /**
* Get translation * Get translation

View File

@ -57,6 +57,7 @@ if ($action == "saveSettings")
$settings->_footNote = $_POST["footNote"]; $settings->_footNote = $_POST["footNote"];
$settings->_printDisclaimer = getBoolValue("printDisclaimer"); $settings->_printDisclaimer = getBoolValue("printDisclaimer");
$settings->_language = $_POST["language"]; $settings->_language = $_POST["language"];
$settings->_availablelanguages = $_POST["availablelanguages"];
$settings->_theme = $_POST["theme"]; $settings->_theme = $_POST["theme"];
$settings->_previewWidthList = $_POST["previewWidthList"]; $settings->_previewWidthList = $_POST["previewWidthList"];
$settings->_previewWidthDetail = $_POST["previewWidthDetail"]; $settings->_previewWidthDetail = $_POST["previewWidthDetail"];

View File

@ -111,12 +111,29 @@ if(!is_writeable($settings->_configFilePath)) {
<td><?php printMLText("settings_printDisclaimer");?>:</td> <td><?php printMLText("settings_printDisclaimer");?>:</td>
<td><input name="printDisclaimer" type="checkbox" <?php if ($settings->_printDisclaimer) echo "checked" ?> /></td> <td><input name="printDisclaimer" type="checkbox" <?php if ($settings->_printDisclaimer) echo "checked" ?> /></td>
</tr> </tr>
<tr title="<?php printMLText("settings_available_languages_desc");?>">
<td><?php printMLText("settings_available_languages");?>:</td>
<td>
<select name="availablelanguages[]" multiple>
<?php
$languages = getAvailableLanguages();
foreach($languages as $language)
{
echo '<option value="' . $language . '" ';
if (in_array($language, $settings->_availablelanguages))
echo "selected";
echo '>' . getMLText($language) . '</option>';
}
?>
</select>
</td>
</tr>
<tr title="<?php printMLText("settings_language_desc");?>"> <tr title="<?php printMLText("settings_language_desc");?>">
<td><?php printMLText("settings_language");?>:</td> <td><?php printMLText("settings_language");?>:</td>
<td> <td>
<SELECT name="language"> <select name="language">
<?php <?php
$languages = getLanguages(); $languages = getAvailableLanguages();
foreach($languages as $language) foreach($languages as $language)
{ {
echo '<option value="' . $language . '" '; echo '<option value="' . $language . '" ';
@ -125,13 +142,13 @@ if(!is_writeable($settings->_configFilePath)) {
echo '>' . getMLText($language) . '</option>'; echo '>' . getMLText($language) . '</option>';
} }
?> ?>
</SELECT> </select>
</td> </td>
</tr> </tr>
<tr title="<?php printMLText("settings_theme_desc");?>"> <tr title="<?php printMLText("settings_theme_desc");?>">
<td><?php printMLText("settings_theme");?>:</td> <td><?php printMLText("settings_theme");?>:</td>
<td> <td>
<SELECT name="theme"> <select name="theme">
<?php <?php
$themes = UI::getStyles(); $themes = UI::getStyles();
foreach($themes as $theme) foreach($themes as $theme)
@ -142,7 +159,7 @@ if(!is_writeable($settings->_configFilePath)) {
echo '>' . $theme . '</option>'; echo '>' . $theme . '</option>';
} }
?> ?>
</SELECT> </select>
</td> </td>
</tr> </tr>
<tr title="<?php printMLText("settings_previewWidthList_desc");?>"> <tr title="<?php printMLText("settings_previewWidthList_desc");?>">