Ελληνικό Forum > Γλώσσες - Πολυγλωσσία

Ερώτηση για "επιλεκτική" Πολυγλωσσία

(1/2) > >>

thanasis:
Καλησπέρα,
Υπάρχει η δυνατότητα στην έκδοση 4. να εμφανίζονται κάποια από τα αντικείμενα περιεχομένου (και αντικείμενα μενού) σε 1 μόνο γλώσσα και κάποια άλλα σε περισσότερες;

thanasis:
Να υποθέσω πως όχι ;

datahell:
Κανονικά όχι, αλλά και ναι ;D
Στο elxis 4.x έχουμε μεταφράσεις, όταν για ένα αντικείμενο δεν υπάρχει μετάφραση χρησιμοποιείται η κύρια γλώσσα. Οπότε για τις διάφορες γλώσσες έχουμε ίδιες δομές περιεχομένου, μενού, κλπ. Ωστόσο μπορείς να εμφανίσεις διαφορετικά πράγματα ανάλογα με την τρέχουσα γλώσσα είτε δημιουργώντας δικά σου module που δουλεύουν όπως θέλεις εσύ είτε επεξεργαζόμενος τα υπάρχοντα. Ο βασικός έλεγχος που απαιτείται είναι να βρούμε την τρέχουσα γλώσσα και κατόπιν με if statements να αλλάξουμε την εμφάνιση ανάλογα με την γλώσσα.

Τρέχουσα γλώσσα (en, el, de, fr, it, κλπ):
$lng = eFactory::getLang()->currentLang();

Ανάλογα με την γλώσσα κάνε διαφορετικά πράγματα (στο module ή στο index.php του template):

if ($lng == 'de') {
    //εμφάνισε το γερμανικό μενού
} else if ($lng == 'el') {
    //εμφάνισε το ελληνικό μενού
} else {
    //εμφάνισε το γενικό μενού
}

Μία ιδέα (υπάρχουν πολλές διαφορετικές λύσεις) του πως να εμφανίσουμε διαφορετικά μενού ανάλογα με την γλώσσα.

Φτιάξτε για κάθε γλώσσα που θέλετε να έχει διαφορετικό μενού ένα μενού στο elxis και βάλτε το σε αντίστοιχες μοναδικές θέσεις module.
Για παράδειγμα φτιάξτε το μενού "greekmenu" και βάλτε το στη θέλει "greekmenu", φτιάξτε το μενού "italianmenu" και βάλτε το στη θέλει "italianmenu", κλπ.
Τώρα, στο index.php του template εκεί που φορτώνεται το module του menu βάλτε αυτόν τον έλεγχο που εγραψα παραπάνω και φορτώστε άλλο module μενού ανάλογα με την γλώσσα.

Παράδειγμα (template Delta)


--- Code: ---<div class="delta_menu">
<?php 
switch ($eLang->currentLang()) {
     case &#39;el&#39;: $eDoc->modules(&#39;greekmenu&#39;, &#39;none&#39;); break;
     case &#39;it&#39;: $eDoc->modules(&#39;italianmenu&#39;, &#39;none&#39;); break;
     default: $eDoc->modules(&#39;menu&#39;, &#39;none&#39;); break;
}
?>
</div>
--- End code ---

thanasis:
Τέλεια... ευχαριστώ πολύ datahell !

thanasis:
Έστω ότι έχουμε δύο δημοσιευμένες γλώσσες στο site (el / en)
και
έχουμε Άρθρο-Α μόνο el και Άρθρο-Β el / en

Το component sitemap δημιουργεί αντίστοιχα 2 χάρτες:

/sitemap/sitemap.html
Άρθρο-Α
Άρθρο-Β


/en/sitemap/sitemap.html
Άρθρο-Α  <------- Γίνεται να μην εμφανίσει αυτό?
Article-B

Navigation

[0] Message Index

[#] Next page

Go to full version