Καλώς ορίσατε στο dotNETZone.gr - Σύνδεση | Εγγραφή | Βοήθεια
σε

 

Αρχική σελίδα Ιστολόγια Συζητήσεις Εκθέσεις Φωτογραφιών Αρχειοθήκες

Localizing

Îåêßíçóå áðü ôï ìÝëïò thanosk. Τελευταία δημοσίευση από το μέλος thanosk στις 20-10-2009, 10:00. Υπάρχουν 7 απαντήσεις.
Ταξινόμηση Δημοσιεύσεων: Προηγούμενο Επόμενο
  •  13-10-2009, 11:15 54422

    Localizing

    Καλημέρα σε όλους.

    Έχω μια γρήγορη ερώτηση.
    Έχω ένα site που έχει Master Page και στο Content Place Holder ανοίγουν διάφορες σελίδες.
    Πως μπορώ να αλλάγω την γλώσσα με ένα Drop Down list που θα είναι στην Master Page και να αλλάξει συγχρόνως και στo Contect Place Holder (π.χ. σε μια σελίδα Company.aspx)??


    Ευχαριστώ
    Δημοσίευση στην κατηγορία:
  •  13-10-2009, 11:48 54432 σε απάντηση της 54422

    Απ: Localizing

    Δες λίγο αυτό εδώ το video για να καταλάβεις Localisation+asp.net.

    και στην συνέχεια να προχωρήσεις στο Ιmplementation αυτού που θες.

    Νικόλαος Καντζέλης
    BSc, MSc, MCAS, MCPD, MCITP, MCTS,MCP, MCT
    http://www.nksolutions.gr
    http://dotnetstories.wordpress.com
    http://weblogs.asp.net/dotnetstories
    http://forum.dotnetnuke.gr
  •  13-10-2009, 12:12 54433 σε απάντηση της 54432

    Απ: Localizing

    Δεν χρειάζεται video για να αλλάξεις τη γλώσσα ενός site! Εξάλλου το έχουμε συζητήσει τόσες φορές και μάλιστα τις τελευταίες εβδομάδες.

    Όπως κάθε εφαρμογή .NET, είτε WinForms είτε ASP.NET η γλώσσα ελέγχεται από το CurrentCulture του thread. Δεν έχει σημασία αν βρίσκεσαι σε placeholder ή όχι, από τη στιγμή που αλλάζεις τη γλώσσα στο ίδιο το thread.  Η αλλαγή της γλώσσας είναι τόσο απλή όσο το παρακάτω:

    string Lang = "el-GR";   // Greek
    System.Threading.Thread.CurrentThread.CurrentCulture =  new System.Globalization.CultureInfo(Lang);

    Επειδή όμως δεν μπορείς να ζητάς από το χρήστη σε κάθε σελίδα να διαλέξει τη γλώσσα που θέλει, μπορείς είτε να προσθέσεις την αρχική του επιλογή σε ένα cookie, ή ακόμα καλύτερα να προσθέσεις την επιθυμητή γλώσσα στο User Profile του. Τέλος, μπορείς να δεις ποιές γλώσσες έχει δηλώσει ο χρήστης στα languages του browser του και να χρησιμοποιήσεις μία από αυτές ως default επιλογή. Τις γλώσσες αυτές τις παίρνεις από το Request.UserLanguages collection.

    Από εκεί και πέρα, πρέπει να ξέρεις πως δουλεύει το localization για να δημιουργήσεις τα κατάλληλα resources για κάθε γλώσσα. Αν δεν τα έχεις φτιάξει ήδη, το video που δίνει ο Νίκος μπορεί να βοηθήσει


    Παναγιώτης Καναβός, Freelancer
    Twitter: http://www.twitter.com/pkanavos
  •  13-10-2009, 17:25 54447 σε απάντηση της 54433

    Απ: Localizing

    Φίλε Παναγιώτη,

    Για το δεύτερο κομμάτι που αναφέρεις (coockies, localization) είμαι ΟΚ.

    Έβαλα λοιπόν 2 ωραίες σημαιούλες στην Master Page όπου με το click σε κάθε μία από αυτή είχα γράψει το κώδικα που παρέθεσες..... Όμως δεν μου δουλεύει...
    Σίγουρα κάπου έχω κάνει βλακεία, αλλά δεν μπορώ να καταλάβω που.

    Ο κώδικας είναι ο παρακάτω :

    Protected Sub IBEng_Click(ByVal sender As Object, ByVal e As System.Web.UI.ImageClickEventArgs) Handles IBEng.Click
            Dim Lang As String = "en-US"
            Thread.CurrentThread.CurrentCulture = New Globalization.CultureInfo(Lang)
    End Sub



    P.S.
    nikolaosk ότι το εχω δεί το video και ήταν αρκετά διαφωτιστικό. Thanks anyway!!!


    Updated 19:21

    Τα κατάφερα να αλλάζει η localize, αλλά έχω ένα δεύτερο πρόβλημα (σιγά να μην είχα Stick out tongueStick out tongue)
    Δημιούργησα ένα DropDownList για την επιλογή της γλώσσας το οποίο είναι AutoPostBakc=True. Όταν αλλάζει το SelectedIndexChanged καταχωρώ σε ένα Coockie το Culture και ξαναγίνεται Load η σελίδα. Το πρόβλημα ότι δεν αλλάζει το Culture.

    Δηλάδη: έχω Ελληνικά, επιλέγω Αγγλικά. Όταν κάνει IntializeCulture, βλέπω ότι στο Coockie έχει ακόμα el-GR

    Το δοκίμασα και με Session αλλά είχα το ίδιο αποτέλεσμα...
  •  13-10-2009, 22:25 54462 σε απάντηση της 54447

    Απ: Localizing

    Ξανακάνεις load τη σελίδα με Response.Redirect; Αν ναι, τότε η λύση σου με το session λειτουργεί σίγουρα...


    Νατάσα Μανουσοπούλου
  •  19-10-2009, 12:12 54598 σε απάντηση της 54462

    Απ: Localizing

    Δεν κάνω την σελίδα load με Response.Redirect

    Αυτό που παρατήρησα ότι όταν κάνω refresh την σελίδα αλλάζει κανονικά το Culture !!!
  •  19-10-2009, 22:29 54608 σε απάντηση της 54598

    Απ: Localizing

    Αυτό συμβαίνει γιατί το InitializeCulture καλείται στην PreInit της σελίδας. Όταν λοιπόν τρέχει ο event handler σου και αλλάζεις το culture, η InitializeCulture έχει ήδη τρέξει και δεν έχει ευκαιρία να εκτελεστεί ξανά με τη νέα γλώσσα. Το Response.Redirect θα κάνει τη σελίδα να τρέξει από την αρχή και μπορεί να δώσει λύση στο πρόβλημά σου.
    Νατάσα Μανουσοπούλου
  •  20-10-2009, 10:00 54613 σε απάντηση της 54608

    Απ: Localizing

    Ευχαριστώ!
Προβολή Τροφοδοσίας RSS με μορφή XML
Με χρήση του Community Server (Commercial Edition), από την Telligent Systems