Logo αναλογα με την γλώσσα, Language Switcher

Joomla! forum. Joomla! Questions and Answers.

Συντονιστές: WebDev Moderators, Super-Moderators, PHP Moderators

Απάντηση
Άβαταρ μέλους
DrJim
Δημοσιεύσεις: 459
Εγγραφή: 27 Ιαν 2006 13:30
Τοποθεσία: MY COSMOS

Logo αναλογα με την γλώσσα, Language Switcher

Δημοσίευση από DrJim » 26 Απρ 2012 15:17

Έχω φτιάξει το site σε δίγλωσσο μέσω του Language Switcher, και θα ήθελα να αλλάζω το logo ανάλογα την γλώσσα, λογικά κάποια παράμετρο θα πρέπει να βάλω στο κώδικα αλλά ποια είναι?
http://www.travelpassion.gr - Travel News Online

Άβαταρ μέλους
webdevgr
Δημοσιεύσεις: 697
Εγγραφή: 11 Δεκ 2010 17:25
Τοποθεσία: Ηράκλειο
Επικοινωνία:

Logo αναλογα με την γλώσσα, Language Switcher

Δημοσίευση από webdevgr » 26 Απρ 2012 16:24

Κώδικας: Επιλογή όλων

$lang =& JFactory::getLanguage();
$lang_tag = $lang->getTag;
if ($lang_tag == 'el-GR') {
Φόρτωσε το Ελληνικό Λογότυπο
}else if ($lang_tag == 'en-GB') {
Φόρτωσε το Αγγλικό Λογότυπο
}

Άβαταρ μέλους
DrJim
Δημοσιεύσεις: 459
Εγγραφή: 27 Ιαν 2006 13:30
Τοποθεσία: MY COSMOS

Logo αναλογα με την γλώσσα, Language Switcher

Δημοσίευση από DrJim » 26 Απρ 2012 16:40

gigenis έγραψε:

Κώδικας: Επιλογή όλων

$lang =& JFactory::getLanguage();
$lang_tag = $lang->getTag;
if ($lang_tag == 'el-GR') {
Φόρτωσε το Ελληνικό Λογότυπο
}else if ($lang_tag == 'en-GB') {
Φόρτωσε το Αγγλικό Λογότυπο
}
Που εισάγω τον κώδικα?

Τώρα έχει το παρακάτω:

Κώδικας: Επιλογή όλων

<div id="logo" class="png" style="height&#58;<?php echo $logo_height?>;width&#58;<?php echo $logo_out?>%;">
http://www.travelpassion.gr - Travel News Online

Άβαταρ μέλους
webdevgr
Δημοσιεύσεις: 697
Εγγραφή: 11 Δεκ 2010 17:25
Τοποθεσία: Ηράκλειο
Επικοινωνία:

Logo αναλογα με την γλώσσα, Language Switcher

Δημοσίευση από webdevgr » 26 Απρ 2012 16:46

Καταρχήν δες που φορτώνει την εικόνα. στο #logo ή στο .png; Αν και νομίζω στο .png

φτιάξε δύο κλάσεις png_gr και png_en που θα φορτώνουν την αντίστοιχη εικόνα.

Και μετά άλλαξε το με αυτό

Κώδικας: Επιλογή όλων


$lang =& JFactory&#58;&#58;getLanguage&#40;&#41;; 
$lang_tag = $lang->getTag; 
if &#40;$lang_tag == 'el-GR'&#41; &#123; 
echo '<div id="logo" class="png_gr" style="height&#58;'.$logo_height.';width&#58;'.$logo_out.'%;">';
&#125;else if &#40;$lang_tag == 'en-GB'&#41; &#123; 
echo '<div id="logo" class="png_en" style="height&#58;'.$logo_height.';width&#58;'.$logo_out.'%;">';
&#125;



Άβαταρ μέλους
DrJim
Δημοσιεύσεις: 459
Εγγραφή: 27 Ιαν 2006 13:30
Τοποθεσία: MY COSMOS

Logo αναλογα με την γλώσσα, Language Switcher

Δημοσίευση από DrJim » 26 Απρ 2012 16:59

gigenis έγραψε:Καταρχήν δες που φορτώνει την εικόνα. στο #logo ή στο .png; Αν και νομίζω στο .png

φτιάξε δύο κλάσεις png_gr και png_en που θα φορτώνουν την αντίστοιχη εικόνα.

Και μετά άλλαξε το με αυτό

Κώδικας: Επιλογή όλων


$lang =& JFactory&#58;&#58;getLanguage&#40;&#41;; 
$lang_tag = $lang->getTag; 
if &#40;$lang_tag == 'el-GR'&#41; &#123; 
echo '<div id="logo" class="png_gr" style="height&#58;'.$logo_height.';width&#58;'.$logo_out.'%;">';
&#125;else if &#40;$lang_tag == 'en-GB'&#41; &#123; 
echo '<div id="logo" class="png_en" style="height&#58;'.$logo_height.';width&#58;'.$logo_out.'%;">';
&#125;


Αυτό που υπάρχει είναι:

Κώδικας: Επιλογή όλων

<?php 
if &#40;$turn_header_block_off == 2 &#41;&#123; ?>
 <!--header-->
  <div id="header" style="height&#58;<?php echo $logo_height?>;">
  <?php if &#40;$turn_logo_off == 2 &#41;&#123; ?>
    <div id="logo" class="png" style="height&#58;<?php echo $logo_height?>;width&#58;<?php echo $logo_out?>%;">
     <?php if &#40;$turn_seo_off == 1 &#41;&#123; ?>
      <h1><a href="<?php echo $yj_base ?>" style="height&#58;<?php echo $logo_height?>;" title="<?php echo $tags?>"><?php echo $seo ?></a> </h1>
     <?php &#125;else&#123; ?>
      <a href="<?php echo $yj_base ?>" style="height&#58;<?php echo $logo_height?>;"></a>
      <?php &#125; ?>
    </div>
    <!-- end logo -->
   <?php &#125; ?>
<?php require&#40; TEMPLATEPATH.DS."layouts/grids/yjsg_header.php"&#41;;?>
  </div>
  <!-- end header -->
<?php &#125; ?>
θα γίνει έτσι?

Κώδικας: Επιλογή όλων

if &#40;$turn_header_block_off == 2 &#41;&#123; ?>
 <!--header-->
  <div id="header" style="height&#58;<?php echo $logo_height?>;">
  <?php if &#40;$turn_logo_off == 2 &#41;&#123; ?>
    <?php <$lang =& JFactory&#58;&#58;getLanguage&#40;&#41;; 
$lang_tag = $lang->getTag; 
if &#40;$lang_tag == 'el-GR'&#41; &#123; 
echo '<div id="logo" class="png_gr" style="height&#58;'.$logo_height.';width&#58;'.$logo_out.'%;">'; 
&#125;else if &#40;$lang_tag == 'en-GB'&#41; &#123; 
echo '<div id="logo" class="png_en" style="height&#58;'.$logo_height.';width&#58;'.$logo_out.'%;">'; 
&#125; > ?>
     <?php if &#40;$turn_seo_off == 1 &#41;&#123; ?>
      <h1><a href="<?php echo $yj_base ?>" style="height&#58;<?php echo $logo_height?>;" title="<?php echo $tags?>"><?php echo $seo ?></a> </h1>
     <?php &#125;else&#123; ?>
      <a href="<?php echo $yj_base ?>" style="height&#58;<?php echo $logo_height?>;"></a>
      <?php &#125; ?>
    </div>
    <!-- end logo -->
   <?php &#125; ?>
<?php require&#40; TEMPLATEPATH.DS."layouts/grids/yjsg_header.php"&#41;;?>
  </div>
  <!-- end header -->
<?php &#125; ?>
http://www.travelpassion.gr - Travel News Online

Άβαταρ μέλους
korgr
Honorary Member
Δημοσιεύσεις: 5067
Εγγραφή: 07 Οκτ 2008 18:30
Τοποθεσία: Corinth
Επικοινωνία:

Logo αναλογα με την γλώσσα, Language Switcher

Δημοσίευση από korgr » 26 Απρ 2012 18:04

Άσχετο, αλλά επειδή συχνά κατηγορήθηκα για εφεύρεση τροχών κλπ κλπ
Μια τελευταία περίπτωση που μπορεί να μας απασχολήσει στα πολύγλωσσα sites, είναι οι εικόνες που περιέχουν θέμα εξαρτώμενο από την επιλεγμένη γλώσσα. Για παράδειγμα μπορεί να είναι κάποιο slogan με χαρακτηριστική γραφή, λογότυπα που πλαισιώνονται από προσδιορισμούς κλπ.
Στην περίπτωση αυτή έχουμε πάντα στη διάθεσή μας την καθολική (global) μεταβλητή $urlExtension. Αυτή περιέχει πάντα την επέκταση της κάθε γλώσσας σε μορφή όπως η _en. Τις επεκτάσεις των γλωσσών μπορείτε να τις δείτε στο Admin Panel στην ενότητα «ΔΙΑΧΕΙΡΙΣΗ ΓΛΩΣΣΩΝ->ΕΠΕΞΕΡΓΑΣΙΑ». Για την default γλώσσα (πχ ελληνικά) δεν χρειάζεται να ορίσουμε κάποια επέκταση.
Ο λόγος που η επέκταση αρχίζει με underscore ( _ ) είναι για να μπορείτε να την προσαρτάτε στο τέλος του ονόματος κάθε πολυγλωσσικής εικόνας. Ας δούμε το παράδειγμα μιας εικόνας στο template μας, και συγκεκριμένα του logo. Αν υποθέσουμε πως χρειαζόμαστε εκδόσεις της εικόνας σε ελληνικά, αγγλικά και γερμανικά, τα ονόματα των αρχείων αντίστοιχα θα πρέπει να είναι:
για ελληνικά logo.png (χωρίς κάποια γλωσσική επέκταση η εξ ορισμού γλώσσα)
για αγγλικά logo_en.png
για γερμανικά logo_de.png

Αφού δημιουργήσουμε όλες τις απαραίτητες εκδόσεις του logo, μπορούμε να αναφερόμαστε σ' αυτό μέσα στον κώδικα του template μας με:

Κώδικας: Επιλογή όλων

<img src="<?php echo $p;?>images/logo<?php echo $urlExtension;?>.png" alt="logo">
Με τον τρόπο αυτό θα φορτώνεται κάθε φορά η κατάλληλη έκδοση της εικόνας ανάλογα την επιλεγμένη γλώσσα παρουσίασης.

Από το documentation του Odyssey
http://odyssey.webpage.gr/gr/articles/n ... eriexomeno

Άβαταρ μέλους
Pesoner
Δημοσιεύσεις: 378
Εγγραφή: 19 Μάιος 2010 20:27
Τοποθεσία: ΛΑΡΙΣΑ

Logo αναλογα με την γλώσσα, Language Switcher

Δημοσίευση από Pesoner » 26 Απρ 2012 21:58

Πολύ καλή λύση Νότη.
Εικόνα

alou
Script Master
Δημοσιεύσεις: 1374
Εγγραφή: 24 Αύγ 2007 19:52
Επικοινωνία:

Logo αναλογα με την γλώσσα, Language Switcher

Δημοσίευση από alou » 27 Απρ 2012 14:32

Μια χαρά είναι η λύση του url extension όμως στη συγκεκριμένη περίπτωση, η εικόνα αφορά CSS και δεν θα μπορούσε να λειτουργήσει εκτός αν το url extension χρησιμοποιηθεί στην αντίστοιχη κλάση.

DrJim πρέπει να δεις στο css σου αν το λογότυπο είναι φόντο στο #logo ή στο .png και αν μπορείς παραθέτεις ακριβώς εκείνο το κομμάτι του css για να πάρεις συγκεκριμένη απάντηση.

Άβαταρ μέλους
korgr
Honorary Member
Δημοσιεύσεις: 5067
Εγγραφή: 07 Οκτ 2008 18:30
Τοποθεσία: Corinth
Επικοινωνία:

Logo αναλογα με την γλώσσα, Language Switcher

Δημοσίευση από korgr » 27 Απρ 2012 15:22

alou έγραψε: DrJim πρέπει να δεις στο css σου αν το λογότυπο είναι φόντο στο #logo ή στο .png και αν μπορείς παραθέτεις ακριβώς εκείνο το κομμάτι του css για να πάρεις συγκεκριμένη απάντηση.
Σε private συζήτηση που είχαμε, του έστειλα κάποια δείγματα κώδικα που να καλύπτουν ή την μία ή την άλλη εκδοχή (id or class). Λογικά κάποια από αυτές τις λύσεις θα τον καλύψει...

Άβαταρ μέλους
DrJim
Δημοσιεύσεις: 459
Εγγραφή: 27 Ιαν 2006 13:30
Τοποθεσία: MY COSMOS

Logo αναλογα με την γλώσσα, Language Switcher

Δημοσίευση από DrJim » 28 Απρ 2012 19:03

Σας ευχαριστώ όλους παιδιά, το θέμα λύθηκε με το παρακάτω:

Κώδικας: Επιλογή όλων

<?php 
$lang =& JFactory&#58;&#58;getLanguage&#40;&#41;; 
$lang_tag = $lang->getTag&#40;&#41;; 
if &#40;$lang_tag == 'el-GR'&#41; &#123; 
   $logo_png='logo_gr'; 
&#125;else&#123; 
   $logo_png='logo_en'; 
&#125; 
?> 
    <div id="<?php echo $logo_png?>" class="png" style="height&#58;<?php echo $logo_height?>;width&#58;<?php echo $logo_out?>%;"> 
Το logo το φόρτωνε στο #logo
http://www.travelpassion.gr - Travel News Online

Απάντηση

Επιστροφή στο “Joomla! γενικά”

Μέλη σε σύνδεση

Μέλη σε αυτήν τη Δ. Συζήτηση: Δεν υπάρχουν εγγεγραμμένα μέλη και 0 επισκέπτες