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

 

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

Localization ενός control

Îåêßíçóå áðü ôï ìÝëïò Ioannis P. Τελευταία δημοσίευση από το μέλος Ioannis P στις 28-02-2007, 20:14. Υπάρχουν 6 απαντήσεις.
Ταξινόμηση Δημοσιεύσεων: Προηγούμενο Επόμενο
  •  24-02-2007, 22:47 25413

    Localization ενός control

    Σε ένα παράθυρο μιας εφαρμογής γραμμένης σε VB.NET 2005 έχω τοποθετήσει το printpreview control της ComponentOne. Το πρόβλημα μου είναι ότι δεν μπορώ να μεταφράσω τα tooltips του. Κάνω τα εξής:

    1. Στη φόρμα που περιέχει το control αλλάζω το property Localizable σε True.
    2. Στο property της φόρμας αλλάζω το Language σε Greek.
    3. Επιλέγω το localize από το μενού του control και στο παράθυρο που εμφανίζεται βλέπω όλα τα tooltips και τα μηνύματα του control.
    4. Κάνω add cultrure και επιλέγω Greek.
    5. Γράφω στα Ελληνικά μερικά tooltips και πατάω save.
    6. Στο φάκελο C1LocalizedResources που δημιουργείται στο project δημιουργείται το αρχείο C1.Win.C1Preview.2.resx

    Κανονικά δεν θα έπρεπε να είναι όλα εντάξει μετά τα παραπάνω; Εξακολουθώ να βλέπω όμως Αγγλικά στο control. Κατόπιν αναζήτησης στο google εντόπισα μερικά σχετικά άρθρα αλλά δεν μου έλυσαν το πρόβλημα.


    Καμιά ιδέα για το τι δεν κάνω σωστά;

  •  26-02-2007, 23:03 25486 σε απάντηση της 25413

    Απ: Localization ενός control

    Επειδή απ' ότι φαίνεται δεν έχει ασχοληθεί κανείς με το συγκεκριμένο control, θα μπορούσε να μου πεί κάποιος αν τα βήματα που ακολουθώ συμβαδίζουν με την λογική του Localization της VB.NET 2005;
  •  27-02-2007, 12:03 25511 σε απάντηση της 25486

    Απ: Localization ενός control

    Ορίζεις το CultureInfo ότι θα είναι Ελληνικά όταν ξεκινάει η εφαρμογή;
  •  27-02-2007, 14:49 25521 σε απάντηση της 25486

    Απ: Localization ενός control

    Έτσι ακριβώς δουλεύει το Localization στο .NET, όχι μόνο στη VB. Από εκεί και πέρα, η γλώσσα που θα χρησιμοποιηθεί εξαρτάται από την τιμή του CurrentUICulture του Thread της εφαρμογής σου, του οποίου η αρχική τιμή εξαρτάται από τη γλώσσα του λειτουργικού σου. Αν δηλαδή έχεις ελληνικά Windows, θα είναι ελληνικά. Αν έχεις αγγλικά Windows, θα είναι αγγλικά. Υπάρχει και το CurrentCulture το οποίο παίρνει σαν αρχική τιμή το user locale, αν δηλαδή έχεις ορίσει locale την Ελλάδα, θα είναι ελληνικά.

    Τα defaults αυτά έχουν τη λογική τους, καθώς τα μηνύματα των Windows και του .ΝΕΤ αναγκαστικά χρησιμοποιούν τη γλώσσα του λειτουργικού. Μπορείς άνετα όμως να θέσεις το CurrentUiCulture ίσο με το CurrentCulture, π.χ.:
       Thread.CurrentThread.CurrentUICulture=Thread.CurrentThread.CurrentCulture

    Αυτό που πρέπει να αποφεύγεις γενικά είναι να "καρφώνεις" τα Locale. Παρότι μπορείς να γράψεις 
       Thread.CurrentThread.CurrentUICulture = new CultureInfo("el-GR")
    θα πρέπει να προσέχεις. Οι μετατροπές ημερομηνιών και αριθμών, αλλά και οι μετατροπές όταν επικοινωνείς με κάποια βάση δεδομένων, γίνονται χρησιμοποιώντας το CurrentLocale, όχι το CurrentUILocale. Θα πρέπει να προσέξεις να μην τα μπερδέψεις, γιατί διαφορετικά θα αρχίσουν να γίνονται πολλά περίεργα με τις μετατροπές.


    Παναγιώτης Καναβός, Freelancer
    Twitter: http://www.twitter.com/pkanavos
  •  28-02-2007, 17:01 25624 σε απάντηση της 25521

    Απ: Localization ενός control

    Σας ευχαριστώ πολύ. Έκανα μερικές δοκιμές αλλά δεν κατάφερα κάτι.Sad
  •  28-02-2007, 17:32 25626 σε απάντηση της 25624

    Απ: Localization ενός control

    Αν αλλάζεις το culture με κώδικα στην εφαρμογή σου πρέπει να προσέξεις να το αλλάξεις πριν ανοίξει η φόρμα που ενδεχομένως έχει κάτι που θέλεις να ακολουθεί το νέο culture. Αυτό σημαίνει ότι πρέπει να γίνει πριν ακόμα και από το Load event της φόρμας. Οπότε πρώτο αλλάζεις το culture και μετά αρχικοποιείς την φόρμα σου και την εμφανίζεις.

    Dimitris Papadimitriou
    Software Development Professional
    dotNETZone.gr News

    Οι απαντήσεις παρέχονται για συγκεκριμένες ερωτήσεις και χωρίς καμιά εγγύηση. Διαβάστε επίσης τους όρους χρήσης.
  •  28-02-2007, 20:14 25648 σε απάντηση της 25626

    Απ: Localization ενός control

    Βασικά με ενδιαφέρει το Localization σε μια μόνο form που έχει ένα control για print preview. Στις δοκιμές που έκανα την αλλαγή του cultrureUI την έκανα στην Load. Έκανα και μια δοκιμή βάζοντας την Thread.CurrentThread.CurrentUICulture = New System.Globalization.CultureInfo("el-GR") στην New πριν την InitializeComponent() και δεν άλλαξε τίποτα.

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