mirror of
https://git.code.sf.net/p/seeddms/code
synced 2025-05-11 12:11:19 +00:00
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:
parent
0c4122b0f6
commit
f0a6265b4a
|
@ -103,6 +103,8 @@ class Settings { /* {{{ */
|
|||
var $_contentOffsetDir = "1048576";
|
||||
// Maximum number of sub-directories per parent directory
|
||||
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")
|
||||
var $_language = "en_GB";
|
||||
// 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->_printDisclaimer = Settings::boolVal($tab["printDisclaimer"]);
|
||||
$this->_language = strval($tab["language"]);
|
||||
if(trim(strval($tab["availablelanguages"])))
|
||||
$this->_availablelanguages = explode(',',strval($tab["availablelanguages"]));
|
||||
$this->_theme = strval($tab["theme"]);
|
||||
if(isset($tab["previewWidthList"]))
|
||||
$this->_previewWidthList = intval($tab["previewWidthList"]);
|
||||
|
@ -678,6 +682,7 @@ class Settings { /* {{{ */
|
|||
$this->setXMLAttributValue($node, "footNote", $this->_footNote);
|
||||
$this->setXMLAttributValue($node, "printDisclaimer", $this->_printDisclaimer);
|
||||
$this->setXMLAttributValue($node, "language", $this->_language);
|
||||
$this->setXMLAttributValue($node, "availablelanguages", implode(',', $this->_availablelanguages));
|
||||
$this->setXMLAttributValue($node, "theme", $this->_theme);
|
||||
$this->setXMLAttributValue($node, "previewWidthList", $this->_previewWidthList);
|
||||
$this->setXMLAttributValue($node, "previewWidthDetail", $this->_previewWidthDetail);
|
||||
|
|
|
@ -20,7 +20,10 @@
|
|||
|
||||
$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")) {
|
||||
include $settings->_rootDir . "languages/" . $_lang . "/lang.inc";
|
||||
$LANG[$_lang] = $text;
|
||||
|
@ -28,15 +31,14 @@ foreach(getLanguages() as $_lang) {
|
|||
}
|
||||
unset($text);
|
||||
|
||||
function getLanguages()
|
||||
{
|
||||
GLOBAL $settings;
|
||||
|
||||
function getAvailableLanguages() { /* {{{ */
|
||||
global $settings;
|
||||
|
||||
$languages = array();
|
||||
|
||||
|
||||
$path = $settings->_rootDir . "languages/";
|
||||
$handle = opendir($path);
|
||||
|
||||
|
||||
while ($entry = readdir($handle) )
|
||||
{
|
||||
if ($entry == ".." || $entry == ".")
|
||||
|
@ -48,7 +50,17 @@ function getLanguages()
|
|||
|
||||
asort($languages);
|
||||
return $languages;
|
||||
}
|
||||
} /* }}} */
|
||||
|
||||
function getLanguages() { /* {{{ */
|
||||
global $settings;
|
||||
|
||||
if($settings->_availablelanguages) {
|
||||
return $settings->_availablelanguages;
|
||||
}
|
||||
|
||||
return getAvailableLanguages();
|
||||
} /* }}} */
|
||||
|
||||
/**
|
||||
* Get translation
|
||||
|
@ -98,11 +110,11 @@ function getMLText($key, $replace = array(), $defaulttext = "", $lang="") { /* {
|
|||
*/
|
||||
if (count($replace) == 0)
|
||||
return $tmpText;
|
||||
|
||||
|
||||
$keys = array_keys($replace);
|
||||
foreach ($keys as $key)
|
||||
$tmpText = str_replace("[".$key."]", $replace[$key], $tmpText);
|
||||
|
||||
|
||||
return $tmpText;
|
||||
} /* }}} */
|
||||
|
||||
|
|
|
@ -57,6 +57,7 @@ if ($action == "saveSettings")
|
|||
$settings->_footNote = $_POST["footNote"];
|
||||
$settings->_printDisclaimer = getBoolValue("printDisclaimer");
|
||||
$settings->_language = $_POST["language"];
|
||||
$settings->_availablelanguages = $_POST["availablelanguages"];
|
||||
$settings->_theme = $_POST["theme"];
|
||||
$settings->_previewWidthList = $_POST["previewWidthList"];
|
||||
$settings->_previewWidthDetail = $_POST["previewWidthDetail"];
|
||||
|
|
|
@ -111,12 +111,29 @@ if(!is_writeable($settings->_configFilePath)) {
|
|||
<td><?php printMLText("settings_printDisclaimer");?>:</td>
|
||||
<td><input name="printDisclaimer" type="checkbox" <?php if ($settings->_printDisclaimer) echo "checked" ?> /></td>
|
||||
</tr>
|
||||
<tr title="<?php printMLText("settings_language_desc");?>">
|
||||
<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");?>">
|
||||
<td><?php printMLText("settings_language");?>:</td>
|
||||
<td>
|
||||
<SELECT name="language">
|
||||
<select name="language">
|
||||
<?php
|
||||
$languages = getLanguages();
|
||||
$languages = getAvailableLanguages();
|
||||
foreach($languages as $language)
|
||||
{
|
||||
echo '<option value="' . $language . '" ';
|
||||
|
@ -125,13 +142,13 @@ if(!is_writeable($settings->_configFilePath)) {
|
|||
echo '>' . getMLText($language) . '</option>';
|
||||
}
|
||||
?>
|
||||
</SELECT>
|
||||
</select>
|
||||
</td>
|
||||
</tr>
|
||||
<tr title="<?php printMLText("settings_theme_desc");?>">
|
||||
<td><?php printMLText("settings_theme");?>:</td>
|
||||
<td>
|
||||
<SELECT name="theme">
|
||||
<select name="theme">
|
||||
<?php
|
||||
$themes = UI::getStyles();
|
||||
foreach($themes as $theme)
|
||||
|
@ -142,7 +159,7 @@ if(!is_writeable($settings->_configFilePath)) {
|
|||
echo '>' . $theme . '</option>';
|
||||
}
|
||||
?>
|
||||
</SELECT>
|
||||
</select>
|
||||
</td>
|
||||
</tr>
|
||||
<tr title="<?php printMLText("settings_previewWidthList_desc");?>">
|
||||
|
|
Loading…
Reference in New Issue
Block a user