Jump to content
  • Checkout
  • Login
  • Get in touch

osCommerce

The e-commerce.

Correct name for selected language in Navbar


Recommended Posts

@, @@burt

@,

 

Another possibility:

includes/application_top.php line 279-281:

$language = $lng->language['directory'];
$languages_id = $lng->language['id'];
$languages_name = $lng->language['name'];

includes/modules/content/navigation/templates/navbar.php line 25:
 

<li class="text-center text-muted bg-primary"><?php echo sprintf(USER_LOCALIZATION, $languages_name, $currency); ?></li>

In Admin Language Name: Español, Français or whatever

 

A better solution without core file changes:

includes/modules/content/navigation/templates/navbar.php line 27-42:

                // languages
                if (!isset($lng) || (isset($lng) && !is_object($lng))) {
                 include(DIR_WS_CLASSES . 'language.php');
                  $lng = new language;
                }
                if (count($lng->catalog_languages) > 1) {
                  $language_output = '<li class="divider"></li>';
                  reset($lng->catalog_languages);
                  while (list($key, $value) = each($lng->catalog_languages)) {
                    if ($language == $value['directory']) {
                      $selectedLanguage = $value['name'];
                    }
                    $languageOutput .= '<li><a href="' . tep_href_link(basename($PHP_SELF), tep_get_all_get_params(array('language', 'currency')) . 'language=' . $key, $request_type) . '">' . tep_image(DIR_WS_LANGUAGES .  $value['directory'] . '/images/' . $value['image'], $value['name'], null, null, null, false) . ' ' . $value['name'] . '</a></li>';
                  }
                }
                echo '<li class="text-center text-muted bg-primary">' . sprintf(USER_LOCALIZATION, $selectedLanguage, $currency) . '</li>' . $languageOutput;
                
                // currencies

Link to comment
Share on other sites

A more extended version:

@burt, could that be interesting for the master or better to upload it as an alternative navbar in a separate Add-On:

 

- Site Settings show only if languages>1 or Currencies >1

- Selected Language shows only if languages >1

- Selected Currency shows only if Currencies >1

- Language name is used for Selected Language

- Currency title is used for Selected Currency

 

Changes:

includes/languages/english/modules/content/navigation/cm_navbar.php:

  define('USER_LANGUAGE', '<abbr title="Selected Language">L: </abbr>');
  define('USER_CURRENCY', '<abbr title="Selected Currency">C: </abbr>');

includes/modules/content/navigation/templates/navbar.php):

          if (substr(basename($PHP_SELF), 0, 8) != 'checkout' && ((count($lng->catalog_languages) > 1) || (count($currencies->currencies) > 1)) ) {
            ?>
            <li class="dropdown">
              <a class="dropdown-toggle" data-toggle="dropdown" href="#"><?php echo HEADER_SITE_SETTINGS; ?></a>
              <ul class="dropdown-menu">
                <?php
                // languages
                if (!isset($lng) || (isset($lng) && !is_object($lng))) {
                 include(DIR_WS_CLASSES . 'language.php');
                  $lng = new language;
                }
                if (count($lng->catalog_languages) > 1) {
                  $language_output = '<li class="divider"></li>';
                  reset($lng->catalog_languages);
                  while (list($key, $value) = each($lng->catalog_languages)) {
                    if ($language == $value['directory']) {
                      $selectedLanguage = $value['name'];
                    }
                    $languageOutput .= '<li><a href="' . tep_href_link(basename($PHP_SELF), tep_get_all_get_params(array('language', 'currency')) . 'language=' . $key, $request_type) . '">' . tep_image(DIR_WS_LANGUAGES .  $value['directory'] . '/images/' . $value['image'], $value['name'], null, null, null, false) . ' ' . $value['name'] . '</a></li>';
                  }
                }
                
                // currencies
                if (isset($currencies) && is_object($currencies) && (count($currencies->currencies) > 1)) {
                  $currencyOutput = '<li class="divider"></li>';
                  reset($currencies->currencies);
                  $currencies_array = array();
                  while (list($key, $value) = each($currencies->currencies)) {
 	 	    if ($currency == $key) {
                      $selectedCurrency = $value['title'];
                    }
                    $currencies_array[] = array('id' => $key, 'text' => $value['title']);
                    $currencyOutput .= '<li><a href="' . tep_href_link(basename($PHP_SELF), tep_get_all_get_params(array('language', 'currency')) . 'currency=' . $key, $request_type) . '">' . $value['title'] . '</a></li>';
                  }
                }
                echo '<li class="text-center text-muted bg-primary">' . ((count($lng->catalog_languages) > 1)? USER_LANGUAGE . $selectedLanguage:'') . ' ' . ((count($currencies->currencies) > 1)? USER_CURRENCY . $selectedCurrency :'') . '</li>' . $languageOutput . $currencyOutput;
Link to comment
Share on other sites

Archived

This topic is now archived and is closed to further replies.

×
×
  • Create New...