Εμφάνιση 1-10 από 10
  1. #1
    Εγγραφή
    07-10-2006
    Μηνύματα
    333
    Downloads
    1
    Uploads
    0
    Τύπος
    ADSL2+
    Ταχύτητα
    13310/916
    Router
    Speedport Entry 2i
    SNR / Attn
    8.4(dB) / 13.5(dB)
    Path Level
    Interleaved
    Σ' ένα site που φτιάχνω θέλω να έχω δυνατότητα εναλλαγής μεταξύ Αγγλικών-Ελληνικών.
    Ένα ωραίο tutorial που βρήκα είναι εδώ και κάνει χρήση JQuery (με μία function η οποία κάνει ένα AJAX call) και XML για να το πετύχει.

    Το πρόβλημά μου είναι ότι ενώ βάζω αυτή τη function στο <head> section και δουλεύει μια χαρά η μετάφραση για την homepage, επανέρχεται στην "default" γλώσσα όταν πατάω κάποιο link από το μενού και μεταβαίνω σε άλλη σελίδα.
    Δεν ξέρω αν βοηθάει αλλά το site είναι χτισμένο πάνω σε Wordpress και προφανώς το header που περιέχει το script είναι κοινό για όλες τις σελίδες.

    Καμιά ιδέα;

    Υ.Γ.1 Δοκίμασα και το qtranslate αλλά απ' ό,τι είδα μπορεί να μεταφράσει μόνο τα default "fields" του Wordpress (posts, post titles, κλπ), κάτι που και να μη γίνει καθόλου δε με πειράζει.
    Υ.Γ.2 Αυτό που θέλω είναι να μεταφράζει τα customizations που έχω κάνει που είναι κυρίως hardcoded κείμενο μέσα στα php αρχεία του theme του wordpress. Επομένως θα ήθελα γενικώς να αποφύγω τις έτοιμες λύσεις γιατί δε βλέπω να κάνουν για την περίπτωσή μου.

  2. #2
    Εγγραφή
    19-03-2007
    Μηνύματα
    1.559
    Downloads
    1
    Uploads
    0
    Τύπος
    ADSL
    Ταχύτητα
    2048/512
    ISP
    OTEnet
    Router
    USR9108
    SNR / Attn
    30(dB) / 28(dB)
    δεν διατηρείς πουθενά το state και γιαυτό το λόγο γίνεται αυτό.
    θα πρέπει να γράψεις λίγο php κώδικα που να διατηρεί την επιλογή γλώσσας στο session ώστε να παραμένει ίδια από τη μια σελίδα στην άλλη.

    hints εδώ
    http://www.w3schools.com/php/php_sessions.asp

  3. #3
    Εγγραφή
    07-10-2006
    Μηνύματα
    333
    Downloads
    1
    Uploads
    0
    Τύπος
    ADSL2+
    Ταχύτητα
    13310/916
    Router
    Speedport Entry 2i
    SNR / Attn
    8.4(dB) / 13.5(dB)
    Path Level
    Interleaved
    Αν το είχα full dynamically functional μπορώ να καταλάβω την αναγκαιότητα του session.
    Εδώ όμως που έχω hardcoded περασμένη τη γλώσσα στην javascript νομίζω δεν απαιτείται. Κάνω λάθος; Η jquery function μου δεν εκτελείται από την αρχή της σε κάθε άνοιγμα σελίδας που κάνω;
    Παραθέτω και τον κώδικα του script:
    Κώδικας:
    <script type="text/javascript">
    jQuery(function() {
        var language = 'greek';
    	
        jQuery.ajax({
            url: 'languages.xml',
            success: function(xml) {
                jQuery(xml).find('translation').each(function(){
                    var id = jQuery(this).attr('id');
                    var text = jQuery(this).find(language).text();
                    jQuery("." + id).html(text);
                    jQuery("." + id).addClass(id + '_' + language);
                });
            }
        });
    });
    </script>
    Αυτό που παρατηρώ με τον firebug είναι ότι η τελεταία δήλωση του addClass() δεν εφαρμόζεται. Με βάση αυτά τα class γίνεται το tagging προκειμένου να αναγνωριστούν τα κομμάτια της σελίδας που είναι προς μετάφραση.
    Επιπλέον έβαλα για debugging κάποια alert() στον ajax κώδικα τα οποία δεν τυπώθηκαν. Δείχνει σαν να μην εκτελείται ποτέ αυτός ο κώδικας όταν αλλάζω σελίδα...

  4. #4
    Εγγραφή
    20-05-2003
    Περιοχή
    Στο καζάνι που βράζουμε όλοι..
    Μηνύματα
    1.297
    Downloads
    41
    Uploads
    0
    Τύπος
    ADSL2+
    Ταχύτητα
    24576/1024
    ISP
    Forthnet
    DSLAM
    Forthnet - ΑΚΡΟΠΟΛΗ
    Router
    Technicolor TD5136V2
    SNR / Attn
    6.1(dB) / 8.5(dB)
    Ωραίο εφέ αλλά δυστυχώς έχει βασικά προβλήματα SEO. Που για παράδειγμα είναι το μοναδικό url για την ιταλική έκδοση; Ή αλλιώς όταν αλλάζεις γλώσσα ΔΕΝ αλλάζει αντίστοιχα το url...

    Παράθεση Αρχικό μήνυμα από Lucky Luke Εμφάνιση μηνυμάτων
    Αν το είχα full dynamically functional μπορώ να καταλάβω την αναγκαιότητα του session.
    Όπως είπε και ο atrias κάπως ή κάπου πρέπει να "αποθηκεύσεις" την επιλογή γλώσσας που έκανε ο χρήστης. Αλλιώς πρέπει να επιλέγει γλώσσα σε κάθε νέα σελίδα.

    Μια ιδέα είναι τα sessions, μια άλλη τα cookies.

    Αν δεν θέλεις να μπλέξεις με php δοκίμασε με cookies μέσα από jquery. Χρειάζεσαι το cookie plugin (για το jquery). Δες εδώ.
    Τελευταία επεξεργασία από το μέλος odd : 20-07-12 στις 17:56.
    * Όταν ακούς «τάξη» ανθρώπινο κρέας μυρίζει.
    * Μες την έρμη κι άδεια πολιτεία μένει, το χέρι που μονάχα, με μπογιά θα γράψει στους μεγάλους τοίχους, ΨΩΜΙ ΚΙ ΕΛΕΥΘΕΡΙΑ.

    Οδυσσέας Ελύτης

    οδηγός δικαιωμάτων μισθωτών εκπαιδευτικών

  5. #5
    Εγγραφή
    07-10-2006
    Μηνύματα
    333
    Downloads
    1
    Uploads
    0
    Τύπος
    ADSL2+
    Ταχύτητα
    13310/916
    Router
    Speedport Entry 2i
    SNR / Attn
    8.4(dB) / 13.5(dB)
    Path Level
    Interleaved
    Το SEO πάντως δεν είναι κάτι που με απασχολεί λόγω της φύσης του site, που στην ουσία θα λέω εγώ σε όσους θέλω να μπαίνουν να βλέπουν demo από κάποια projects. Το searchability από μηχανές αναζήτησης δεν είναι ένας από τους στόχους μου, καθώς δεν είναι κάτι το άμεσα εμπορικό.

    Έχω καταλάβει την αναγκαιότητα των sessions γενικώς αλλά σε αυτό το στάδιο που είμαι και δοκιμάζω με τον συγκεκριμένο τρόπο δεν είναι απαραίτητα. Το συγκεκριμένο script γίνεται import στο header της σελίδας, το οποίο προφανώς είναι κοινό για όλες τις σελίδες του site.
    Στην ουσία κάνει αυτό που λες odd: "επιλέγει γλώσσα σε κάθε νέα σελίδα", αφού είναι hardcoded περασμένη η γλώσσα για κάθε νέα σελίδα που φορτώνεται.

    Αυτό μάλιστα το βλέπω από κάποια class που προσθέτω εκτός της ajax κλήσης, τα οποία τα προσθέτει κανονικά και περιέχουν το όνομα της τρέχουσας γλώσσας. Γι' αυτό υποπτεύομαι ότι κάτι έχει να κάνει με το ajax...

    Παράθεση Αρχικό μήνυμα από odd Εμφάνιση μηνυμάτων
    όταν αλλάζεις γλώσσα ΔΕΝ αλλάζει αντίστοιχα το url...
    Αυτό πώς μπορεί να γίνει χωρίς να φτιάξεις νέα σελίδα/php αρχείο για κάθε γλώσσα;

    Υ.Γ. Προτιμώ PHP διαχείριση παρά JQuery. Αυτό για τα sessions/cookies και τη διαχείρισή τους όοοταν το χρειαστώ.
    Τελευταία επεξεργασία από το μέλος Lucky Luke : 21-07-12 στις 00:40.

  6. #6
    Εγγραφή
    08-07-2006
    Μηνύματα
    3.212
    Downloads
    17
    Uploads
    0
    Τύπος
    ADSL2+
    ολα αυτα ειναι λαθος...

    Η γλωσσα πρεπει να ειναι στο url.
    πχ mpagatses.com/gala και mpougatses.com/milk
    jquery/sessions/cookies ειναι εντελως λαθος

  7. #7
    Εγγραφή
    01-04-2006
    Περιοχή
    Cambridge, UK
    Μηνύματα
    1.405
    Downloads
    6
    Uploads
    0
    Τύπος
    FTTH
    Ταχύτητα
    400 Mbps ⇋ 400 Mbps
    ISP
    Cambridge Fibre
    Router
    Linksys MR8300
    Χρησιμοποιώ το plugin Transposh WordPress Translation για Wordpress.
    Η μετάφραση της σελίδα γίνεται αυτόματα από το Google translate και οι σελίδες έχουν τη μορφή:
    www.site.com/?lang=en
    www.site.com/?lang=fr

    όταν διαλέγεις την αντίστοιχη γλώσσα μετάφρασης.

    Δες το κώδικά του μήπως σε βοηθήσει σε αυτό που θες να κάνεις.

  8. #8
    Εγγραφή
    02-04-2005
    Περιοχή
    Κλωζάνη
    Ηλικία
    41
    Μηνύματα
    3.552
    Downloads
    8
    Uploads
    0
    ISP
    Μπάμπης νετ
    DSLAM
    ΟΤΕ - ΠΕΥΚΟΧΩΡΙ
    Παράθεση Αρχικό μήνυμα από mpetou Εμφάνιση μηνυμάτων
    ολα αυτα ειναι λαθος...

    Η γλωσσα πρεπει να ειναι στο url.
    πχ mpagatses.com/gala και mpougatses.com/milk
    jquery/sessions/cookies ειναι εντελως λαθος
    γιατί είναι λάθος;
    μια άλλη ιδέα είναι να αποθηκεύεται και ως variable στο url στο στυλ που λέει ο Tsene:
    www.site.com/?lang=en
    www.site.com/?lang=fr
    Τώρα πως γίνεται αυτό με jquery είναι άλλη ιστορία αλλά δεν πρέπει να είναι δύσκολο.
    Υδραυλικός, φωτογράφος, εραστής και ποιητής...
    http://www.flickr.com/photos/120411235@N06/

  9. #9
    Εγγραφή
    07-10-2006
    Μηνύματα
    333
    Downloads
    1
    Uploads
    0
    Τύπος
    ADSL2+
    Ταχύτητα
    13310/916
    Router
    Speedport Entry 2i
    SNR / Attn
    8.4(dB) / 13.5(dB)
    Path Level
    Interleaved
    Ευχαριστώ για τις απαντήσεις παιδιά!
    Θα το ψάξω παραπάνω και ενδεχομένως να επανέλθω. Ελπίζω με λύση την επόμενη φορά...

  10. #10
    Εγγραφή
    07-10-2006
    Μηνύματα
    333
    Downloads
    1
    Uploads
    0
    Τύπος
    ADSL2+
    Ταχύτητα
    13310/916
    Router
    Speedport Entry 2i
    SNR / Attn
    8.4(dB) / 13.5(dB)
    Path Level
    Interleaved
    Αυτό τελικά που έκανα ήταν να εγκαταστήσω multisite wordpress (1 site ανά γλώσσα) και το Multisite Language Switcher plugin. Δυστυχώς το κακό με αυτή τη λύση ήταν ότι έπρεπε να κάνω στην ουσία duplicate τα posts και να ξανανεβάσω όλα τα media (εικόνες) καθώς είναι σαν να υπάρχουν 2 ξεχωριστά sites. Από την άλλη όμως με το plugin (δουλεύει μόνο με multisites) έχεις τη δυνατότητα να "συνδέσεις" τα αντίστοιχα posts και κάθε φορά που πατάς τη σημαιούλα της γλώσσας να σε πηγαίνει στο αντίστοιχο post στην άλλη γλώσσα.

    Δεν κατάφερα να βρω κάποια καλύτερη λύση. Αλλά αν πρόκειται για site που αλλάζει συχνά περιεχόμενο (ευτυχώς δεν είναι τέτοιο το δικό μου) τότε θα είναι καπως επίπονη η διαδικασία του ίδιου περιεχομένου και σε χρόνο αλλά και σε χώρο...

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

Bookmarks

Bookmarks

Δικαιώματα - Επιλογές

  • Δεν μπορείτε να δημοσιεύσετε νέα θέματα
  • Δεν μπορείτε να δημοσιεύσετε νέα μηνύματα
  • Δεν μπορείτε να αναρτήσετε συνημμένα
  • Δεν μπορείτε να επεξεργαστείτε τα μηνύματα σας
  •  
  • Τα BB code είναι σε λειτουργία
  • Τα Smilies είναι σε λειτουργία
  • Το [IMG] είναι σε λειτουργία
  • Το [VIDEO] είναι σε λειτουργία
  • Το HTML είναι εκτός λειτουργίας