Skip to content
This repository has been archived by the owner on Feb 26, 2025. It is now read-only.

Commit

Permalink
Merge pull request coral-erm#630 from biblibre/Fix_Lang_Dropdown
Browse files Browse the repository at this point in the history
Fix & refactor the language selection dropdown list
  • Loading branch information
veggiematts authored Feb 21, 2020
2 parents 3b145f3 + 2003086 commit 7679021
Show file tree
Hide file tree
Showing 11 changed files with 57 additions and 415 deletions.
43 changes: 41 additions & 2 deletions LangCodes.php
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ public function getLanguage($code){
'de_DE'=>'de_DE',
'tr_TR'=>'tr_TR'
);
return array_key_exists($code, $all_lang) ? $all_lang[$code] : "en_US";
return array_key_exists($code, $all_lang) ? $all_lang[$code] : null;
}
public function getNameLang($code_lang){
$name_lang=array(
Expand All @@ -26,11 +26,50 @@ public function getNameLang($code_lang){
'de_DE'=>'Deutsch',
'tr_TR'=>'Türkçe'
);
return array_key_exists($code_lang, $name_lang) ? $name_lang[$code_lang] : "English";
return array_key_exists($code_lang, $name_lang) ? $name_lang[$code_lang] : null;
}

public function getBrowserLanguage() {
return str_replace('-', '_', substr($_SERVER["HTTP_ACCEPT_LANGUAGE"],0,5));
}

public function getLanguageSelector() {
echo '<span id="setLanguage"><select name="lang" id="lang" class="dropDownLang">';
$route='locale';
$lang[]="en_US"; // add default language
if (is_dir($route)) {
if ($dh = opendir($route)) {
while (($file = readdir($dh)) !== false) {
if (is_dir("$route/$file") && $file!="." && $file!=".." && $this->getLanguage($file) != null){
$lang[]=$file;
}
}
closedir($dh);
}
}else {
echo "<br>"._("Invalid translation route!");
}
// Get language of navigator
$defLang = $this->getBrowserLanguage();

// Show an ordered list
sort($lang);
for($i=0; $i<count($lang); $i++){
if(isset($_COOKIE["lang"])){
if($_COOKIE["lang"]==$lang[$i]){
echo "<option value='".$lang[$i]."' selected='selected'>".$this->getNameLang($lang[$i])."</option>";
}else{
echo "<option value='".$lang[$i]."'>".$this->getNameLang($lang[$i])."</option>";
}
}else{
if($defLang==substr($lang[$i],0,5)){
echo "<option value='".$lang[$i]."' selected='selected'>".$this->getNameLang($lang[$i])."</option>";
}else{
echo "<option value='".$lang[$i]."'>".$this->getNameLang($lang[$i])."</option>";
}
}
}
echo '</select></span>';
}
}
?>
40 changes: 1 addition & 39 deletions auth/admin.php
Original file line number Diff line number Diff line change
Expand Up @@ -91,45 +91,7 @@
</div>
<div class='boxRight'>
<p class="fontText"><?php echo _("Change language:");?></p>
<select name="lang" id="lang" class="dropDownLang">
<?php
// Get all translations on the 'locale' folder
$route='locale';
$lang[]="en_US"; // add default language
if (is_dir($route)) {
if ($dh = opendir($route)) {
while (($file = readdir($dh)) !== false) {
if (is_dir("$route/$file") && $file!="." && $file!=".."){
$lang[]=$file;
}
}
closedir($dh);
}
}else {
echo "<br>"._("Invalid translation route!");
}
// Get language of navigator
$defLang = $lang_name->getBrowserLanguage();

// Show an ordered list
sort($lang);
for($i=0; $i<count($lang); $i++){
if(isset($_COOKIE["lang"])){
if($_COOKIE["lang"]==$lang[$i]){
echo "<option value='".$lang[$i]."' selected='selected'>".$lang_name->getNameLang(substr($lang[$i],0,5))."</option>";
}else{
echo "<option value='".$lang[$i]."'>".$lang_name->getNameLang(substr($lang[$i],0,5))."</option>";
}
}else{
if($defLang==substr($lang[$i],0,5)){
echo "<option value='".$lang[$i]."' selected='selected'>".$lang_name->getNameLang(substr($lang[$i],0,5))."</option>";
}else{
echo "<option value='".$lang[$i]."'>".$lang_name->getNameLang(substr($lang[$i],0,5))."</option>";
}
}
}
?>
</select>
<?php $lang_name->getLanguageSelector(); ?>
</div>
<div class='smallerText' style='text-align:center; margin-top:13px;'><a href='index.php' id='login-link'><?php echo _("Login page")?></a></div>
<?php include '../templates/footer.php'; ?>
Expand Down
40 changes: 1 addition & 39 deletions auth/index.php
Original file line number Diff line number Diff line change
Expand Up @@ -224,45 +224,7 @@
</div>
<div class='boxRight'>
<p class="fontText"><?php echo _("Change language:");?></p>
<select name="lang" id="lang" class="dropDownLang">
<?php
// Get all translations on the 'locale' folder
$route='locale';
$lang[]="en_US"; // add default language
if (is_dir($route)) {
if ($dh = opendir($route)) {
while (($file = readdir($dh)) !== false) {
if (is_dir("$route/$file") && $file!="." && $file!=".."){
$lang[]=$file;
}
}
closedir($dh);
}
}else {
echo "<br>"._("Invalid translation route!");
}
// Get language of navigator
$defLang = $lang_name->getBrowserLanguage();

// Show an ordered list
sort($lang);
for($i=0; $i<count($lang); $i++){
if(isset($_COOKIE["lang"])){
if($_COOKIE["lang"]==$lang[$i]){
echo "<option value='".$lang[$i]."' selected='selected'>".$lang_name->getNameLang($lang[$i])."</option>";
}else{
echo "<option value='".$lang[$i]."'>".$lang_name->getNameLang($lang[$i])."</option>";
}
}else{
if($defLang==substr($lang[$i],0,5)){
echo "<option value='".$lang[$i]."' selected='selected'>".$lang_name->getNameLang($lang[$i])."</option>";
}else{
echo "<option value='".$lang[$i]."'>".$lang_name->getNameLang($lang[$i])."</option>";
}
}
}
?>
</select>
<?php $lang_name->getLanguageSelector(); ?>
</div>
<div class='smallerText' style='text-align:center; margin-top:13px;'><a href='admin.php' title="<?php echo _("Admin page")?>"><?php echo _("Admin page")?></a></div>

Expand Down
43 changes: 2 additions & 41 deletions index.php
Original file line number Diff line number Diff line change
Expand Up @@ -52,47 +52,8 @@

<header>
<div class="title-main"><strong><?php echo _("eRM");?></strong> &bullet; <?php echo _("eResource Management");?></div>
<nav class="language-select"><?php echo _("Change language:");?>
<select name="lang" id="lang" class="dropDownLang">
<?php
// Get all translations on the 'locale' folder
$route='locale';
$lang[]="en_US"; // add default language
if (is_dir($route)) {
if ($dh = opendir($route)) {
while (($file = readdir($dh)) !== false) {
if (is_dir("$route/$file") && $file!="." && $file!=".."){
$lang[]=$file;
}
}
closedir($dh);
}
}else {
echo "<br>"._("Invalid translation route!");
}
// Get language of navigator
$defLang = $lang_name->getBrowserLanguage();

// Show an ordered list
sort($lang);
for($i=0; $i<count($lang); $i++){
if(isset($_COOKIE["lang"])){
if($_COOKIE["lang"]==$lang[$i]){
echo "<option value='".$lang[$i]."' selected='selected'>".$lang_name->getNameLang($lang[$i])."</option>";
}else{
echo "<option value='".$lang[$i]."'>".$lang_name->getNameLang($lang[$i])."</option>";
}
}else{
if($defLang==substr($lang[$i],0,5)){
echo "<option value='".$lang[$i]."' selected='selected'>".$lang_name->getNameLang($lang[$i])."</option>";
}else{
echo "<option value='".$lang[$i]."'>".$lang_name->getNameLang($lang[$i])."</option>";
}
}
}
?>
</select>
</nav>
<nav class="language-select"><?php echo _("Change language:");?></nav>
<?php $lang_name->getLanguageSelector(); ?>
</header>

<section class="icons">
Expand Down
44 changes: 2 additions & 42 deletions licensing/templates/header.php
Original file line number Diff line number Diff line change
Expand Up @@ -131,48 +131,8 @@

<?php if($config->settings->authModule == 'Y'){ echo "<a href='" . $coralURL . "auth/?logout' id='logout'>" . _("logout") . "</a><span id='divider'> | </span><a href='http://docs.coral-erm.org/' id='help' target='_blank'>" . _("Help") . "</a><span id='divider'> | </span>"; } ?>

<span id="setLanguage">
<select name="lang" id="lang" class="dropDownLang">
<?php
// Get all translations on the 'locale' folder
$route='locale';
$lang[]="en_US"; // add default language
if (is_dir($route)) {
if ($dh = opendir($route)) {
while (($file = readdir($dh)) !== false) {
if (is_dir("$route/$file") && $file!="." && $file!=".."){
$lang[]=$file;
}
}
closedir($dh);
}
}else {
echo "<br>"._("Invalid translation route!");
}
// Get language of navigator
$defLang = $lang_name->getBrowserLanguage();

// Show an ordered list
sort($lang);
for($i=0; $i<count($lang); $i++){
if(isset($_COOKIE["lang"])){
if($_COOKIE["lang"]==$lang[$i]){
echo "<option value='".$lang[$i]."' selected='selected'>".$lang_name->getNameLang($lang[$i])."</option>";
}else{
echo "<option value='".$lang[$i]."'>".$lang_name->getNameLang($lang[$i])."</option>";
}
}else{
if($defLang==substr($lang[$i],0,5)){
echo "<option value='".$lang[$i]."' selected='selected'>".$lang_name->getNameLang($lang[$i])."</option>";
}else{
echo "<option value='".$lang[$i]."'>".$lang_name->getNameLang($lang[$i])."</option>";
}
}
}
?>

</select>
</span>
<?php $lang_name->getLanguageSelector(); ?>

</div>

</td>
Expand Down
44 changes: 2 additions & 42 deletions management/templates/header.php
Original file line number Diff line number Diff line change
Expand Up @@ -125,48 +125,8 @@

<?php if($config->settings->authModule == 'Y'){ echo "<a href='" . $coralURL . "auth/?logout' id='logout'>" . _("logout") . "</a><span id='divider'> | </span><a href='http://docs.coral-erm.org/' id='help' target='_blank'>" . _("Help") . "</a><span id='divider'> | </span>"; } ?>

<span id="setLanguage">
<select name="lang" id="lang" class="dropDownLang">
<?php
// Get all translations on the 'locale' folder
$route='locale';
$lang[]="en_US"; // add default language
if (is_dir($route)) {
if ($dh = opendir($route)) {
while (($file = readdir($dh)) !== false) {
if (is_dir("$route/$file") && $file!="." && $file!=".."){
$lang[]=$file;
}
}
closedir($dh);
}
}else {
echo "<br>"._("Invalid translation route!");
}
// Get language of navigator
$defLang = $lang_name->getBrowserLanguage();

// Show an ordered list
sort($lang);
for($i=0; $i<count($lang); $i++){
if(isset($_COOKIE["lang"])){
if($_COOKIE["lang"]==$lang[$i]){
echo "<option value='".$lang[$i]."' selected='selected'>".$lang_name->getNameLang($lang[$i])."</option>";
}else{
echo "<option value='".$lang[$i]."'>".$lang_name->getNameLang($lang[$i])."</option>";
}
}else{
if($defLang==substr($lang[$i],0,5)){
echo "<option value='".$lang[$i]."' selected='selected'>".$lang_name->getNameLang($lang[$i])."</option>";
}else{
echo "<option value='".$lang[$i]."'>".$lang_name->getNameLang($lang[$i])."</option>";
}
}
}
?>

</select>
</span>
<?php $lang_name->getLanguageSelector(); ?>

</div>

</td>
Expand Down
44 changes: 2 additions & 42 deletions organizations/templates/header.php
Original file line number Diff line number Diff line change
Expand Up @@ -119,48 +119,8 @@

<?php if($config->settings->authModule == 'Y'){ echo "<a href='" . $coralURL . "auth/?logout' id='logout'>" . _("logout") . "</a><span id='divider'> | </span><a href='http://docs.coral-erm.org/' id='help' target='_blank'>" . _("Help") . "</a><span id='divider'> | </span>"; } ?>

<span id="setLanguage">
<select name="lang" id="lang" class="dropDownLang">
<?php
// Get all translations on the 'locale' folder
$route='locale';
$lang[]="en_US"; // add default language
if (is_dir($route)) {
if ($dh = opendir($route)) {
while (($file = readdir($dh)) !== false) {
if (is_dir("$route/$file") && $file!="." && $file!=".."){
$lang[]=$file;
}
}
closedir($dh);
}
}else {
echo "<br>"._("Invalid translation route!");
}
// Get language of navigator
$defLang = $lang_name->getBrowserLanguage();

// Show an ordered list
sort($lang);
for($i=0; $i<count($lang); $i++){
if(isset($_COOKIE["lang"])){
if($_COOKIE["lang"]==$lang[$i]){
echo "<option value='".$lang[$i]."' selected='selected'>".$lang_name->getNameLang($lang[$i])."</option>";
}else{
echo "<option value='".$lang[$i]."'>".$lang_name->getNameLang($lang[$i])."</option>";
}
}else{
if($defLang==substr($lang[$i],0,5)){
echo "<option value='".$lang[$i]."' selected='selected'>".$lang_name->getNameLang($lang[$i])."</option>";
}else{
echo "<option value='".$lang[$i]."'>".$lang_name->getNameLang($lang[$i])."</option>";
}
}
}
?>

</select>
</span>
<?php $lang_name->getLanguageSelector(); ?>

</div>

</td>
Expand Down
Loading

0 comments on commit 7679021

Please sign in to comment.