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

 

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

[Enterprise Library] To String Resource Tool είναι διαθέσιμο

Îåêßíçóå áðü ôï ìÝëïò George J. Capnias. Τελευταία δημοσίευση από το μέλος George J. Capnias στις 14-07-2005, 01:26. Υπάρχουν 9 απαντήσεις.
Ταξινόμηση Δημοσιεύσεων: Προηγούμενο Επόμενο
  •  08-07-2005, 19:31 3397

    [Enterprise Library] To String Resource Tool είναι διαθέσιμο

    Το πολύ-αναμενόμενο String Resource Tool είναι τώρα διαθέσιμο στο τμήμα των Downloads. Το εργαλείο παράγει τα απαραίτητα αρχεία Resource από τα αρχεία SR.strings, και μπορεί να χρησιμοποιηθεί με την Enterprise Library ή τις δικές σας εφαρμογές.

    Διαβάστε Περισσότερα: Enterprise Library Workspace

    Για όσους δεν το έχουν δει ακόμα: Το καινούργιο site της Enterprise Library στο GotDotNet

    George J.


    George J. Capnias: Χειροπρακτικός Υπολογιστών, Ύψιστος Γκουράρχης της Κουμπουτερολογίας
    w: capnias.org, t: @gcapnias, l: gr.linkedin.com/in/gcapnias
    dotNETZone.gr News
  •  08-07-2005, 20:05 3398 σε απάντηση της 3397

    Re: [Enterprise Library] To String Resource Tool είναι διαθέσιμο

    ΑΑΑ! Πολύ ωραία!
    Ακόμα και αν δεν σκοπεύετε να χρησιμοποιήσετε το Enterprise Library, το SR Tool είναι ένα καλό εργαλείο τόσο για να παρέχετε globalization (sic) features.
    Αν πάλι γράφετε "καρφωτά" τα strings αξίζει να σκεφτήτε το εξής σενάριο:
    Την ώρα του development χρειάζεται να εισάγετε διάφορα strings για message boxes, κλπ. Δύο τεχνικές έχετε: Βάζετε πρόχειρα strings και αργότερα τα γυρίζετε όλα σε επίσημα με κίνδυνο να ξεχάσετε κανένα και αντί να δει ο χρήστης "Παρακαλώ συνδεθείτε στο internet", να δεί "internet ρε!". H δεύτερη τεχνική είναι να βάζετε εκ των προτέρων τα επίσημα strings πράγμα που σημαίνει ότι κάνετε shift από το πρόβλημα του κώδικα που γράφετε, στο τι θα γράψετε μέσα στα quotes.
    Με το SR tool έχετε ένα centralized μέρος για όλα τα strings και έτσι βάζετε πρόχειρα κατά το development και αργότερα είστε σίγουροι ότι θα τα αλλάξε όλα.


    Vir prudens non contra ventum mingit
  •  12-07-2005, 11:51 3430 σε απάντηση της 3398

    Re: [Enterprise Library] To String Resource Tool είναι διαθέσιμο

    Άν και οφείλω να ομολογήσω οτι δεν έχει δεί ακόμα το String Resource Tool, ποιά η διαφορά του απο το να φτιάξεις κατευθείαν τα Resource Files μόνος σου, και να κάνεις derive τις φόρμες σου (web ή windows) απο μία η οποία στο page load καλεί μια μέθοδο σαν αυτή παρακάτω:

    /// <summary>

                       /// Internationalizes the text of controls, recursively scanning any

                       /// possible child controls as well

                       /// </summary>

                       /// <param name="ctrl">The original control</param>

                       private void HandleControl(System.Web.UI.Control ctrl){

                                 if(ctrl.HasControls()){

                                          foreach(System.Web.UI.Control c in ctrl.Controls)

                                                    HandleControl(c);

                                 }else{

                                          if(ctrl is System.Web.UI.WebControls.Label){

                                                    Label lbl = (Label)ctrl;

                                                    // Log the label into a text file for easier translation

                                                    //this.Logger.Log(lbl.ID+","+lbl.Text);

     

                                                    string strLabelStr = UIUtils.GetFriendlyName(lbl.ID);

                                                    if(strLabelStr!=null)

                                                              lbl.Text = strLabelStr;

                                          }else

                                                    if(ctrl is System.Web.UI.WebControls.Button){

                                                    Button btn = (Button)ctrl;

                                                    // Log the label into a text file for easier translation

                                                    //this.Logger.Log(btn.ID+","+btn.Text);

     

                                                    string strLabelStr = UIUtils.GetFriendlyName(btn.ID);

                                                    if(strLabelStr!=null)

                                                              btn.Text = strLabelStr;

                                          }        

                                          else

                                                    if(ctrl is System.Web.UI.HtmlControls.HtmlButton){

                                                    System.Web.UI.HtmlControls.HtmlButton btn = (System.Web.UI.HtmlControls.HtmlButton)ctrl;

                                                    // Log the label into a text file for easier translation

                                                    //this.Logger.Log(btn.ID+","+btn.Attributes["value"]);

     

                                                    string strLabelStr = UIUtils.GetFriendlyName(btn.ID);

                                                    if(strLabelStr!=null)

                                                              btn.Attributes["value"] = strLabelStr;

                                          }

                                          else

                                                    if(ctrl is System.Web.UI.WebControls.BaseValidator){

                                                    System.Web.UI.WebControls.BaseValidator vld = (System.Web.UI.WebControls.BaseValidator)ctrl;

                                                    // Log the label into a text file for easier translation

                                                    //this.Logger.Log(vld.ID+","+vld.ErrorMessage);

     

                                                    string strLabelStr = UIUtils.GetFriendlyName(vld.ID);

                                                    if(strLabelStr!=null)

                                                              vld.ErrorMessage = strLabelStr;

                                          }        

                                 }

                       }


    Προσωπικά αυτό κάνω, κι έχω σχεδόν ξεχάσει πλέον το όλο θέμα, όπως και οι υπόλοιποι εδώ γύρω ... όσον αφορά το actual handling  του resource string, η μέθοδος
    που καλείται είναι η GetFriendlyName(string strItem) , και το μόνο που κάνει είναι κάτι τέτοιο:

    /// <summary>Returns the friendly name of a UI Component control. This name is retrieved from the friendly names file.

                       /// </summary>

                       /// <param name="strUIComponent">The name of the UI Component to which the control belongs.</param>

                       /// <param name="strUIItem">The name of the control (Item) for which the friendly name will be retrieved.</param>

                       /// <returns>Returns a string value.</returns>

                       public static string GetFriendlyName(string strItem)

                       {

                                 System.Resources.ResourceManager rm = new System.Resources.ResourceManager("ESTIA.Components.Helper.EstiaFriendlyNames", typeof(clsConfig).Assembly);

                                 return rm.GetString(strItem);

                       }

    Για να είμαι και πιο ακριβής, ο ResourceManager είναι static μεταβλητή, απλώς το έγραψα έτσι για να είναι προφανές Smile


    Angel
    O:]
  •  12-07-2005, 14:32 3434 σε απάντηση της 3397

    Angry [:@] Re: [Enterprise Library] To String Resource Tool είναι διαθέσιμο

    Έλεος.... εγώ γιατί δεν το βλέπω στα downloads; μου φαίνεται ότι το forum με μισεί...


    Χρήστος Γεωργακόπουλος
  •  12-07-2005, 15:03 3435 σε απάντηση της 3430

    Re: [Enterprise Library] To String Resource Tool είναι διαθέσιμο

     anjelinio wrote:
    Άν και οφείλω να ομολογήσω οτι δεν έχει δεί ακόμα το String Resource Tool, ποιά η διαφορά του απο το να φτιάξεις κατευθείαν τα Resource Files μόνος σου, και να κάνεις derive τις φόρμες σου (web ή windows) απο μία η οποία στο page load καλεί μια μέθοδο ...

    ... [clipped] ... 

    η μέθοδος που καλείται είναι η GetFriendlyName(string strItem) , και το μόνο που κάνει είναι κάτι τέτοιο ...


    Το Resource Tool έχει διαφορετική λογική. Ουσιαστικά είναι code generator ο οποίος παράγει μια κλάση, properties της οποίας είναι τα διάφορα strings. Κατόπιν, μπορείς να πεις ας πούμε μέσα στον κώδικά σου:

    messagebox.show(SR.FileNotFound)

    Το πλεονέκτημα αυτής της λύσης είναι type safe και σε βοηθάει το intellisense ώστε να μην κινδυνεύεις να βάλεις ως παράμετρο του Resource Manager (ή του custom wrapper που έχεις φτιάξει) ένα string που δεν υπάρχει πχ GetFriendlyName("FileNorFound")  - και μάλιστα κάτι τέτοιο θα φανεί μόνο στο run-time. Βέβαια αν κάνεις unit tests θα το πιάσεις αυτό το bug αλλά (λέμε τώρα, αν τύχει βρε αδερφέ) και δεν κάνεις, τότε...
    Vir prudens non contra ventum mingit
  •  12-07-2005, 15:59 3437 σε απάντηση της 3435

    Re: [Enterprise Library] To String Resource Tool είναι διαθέσιμο

    οκ ... το 'πιασα Smile

    Angel
    O:]
  •  12-07-2005, 23:03 3446 σε απάντηση της 3434

    Re: [Enterprise Library] To String Resource Tool είναι διαθέσιμο

     cgeo wrote:

    Έλεος.... εγώ γιατί δεν το βλέπω στα downloads; μου φαίνεται ότι το forum με μισεί...



    Τι δεν βλέπεις στα Downloads; Τι εννοείς;


    George J.

    George J. Capnias: Χειροπρακτικός Υπολογιστών, Ύψιστος Γκουράρχης της Κουμπουτερολογίας
    w: capnias.org, t: @gcapnias, l: gr.linkedin.com/in/gcapnias
    dotNETZone.gr News
  •  13-07-2005, 08:55 3452 σε απάντηση της 3397

    Re: [Enterprise Library] To String Resource Tool είναι διαθέσιμο

     gcapnias wrote:

    Το πολύ-αναμενόμενο String Resource Tool είναι τώρα διαθέσιμο στο τμήμα των Downloads.



    Αυτό δεν βλέπω. Έχει μπει στα downloads; μήπως δεν κοιτάω στο σωστό σημείο;
    Χρήστος Γεωργακόπουλος
  •  13-07-2005, 10:28 3453 σε απάντηση της 3452

    Re: [Enterprise Library] To String Resource Tool είναι διαθέσιμο

    Εμμμ ... νομίζω οτι θα το βρείς στα downloads του .. . Enterprise Library Big Smile, γιατί το κείμενο του πρώτου post σε αυτο το thread είναι απλώς μετάφραση του κειμένου στο home page του Enterprise Library :P ... ακολούθησε το link στο πρώτο post.

    ( Με λίγα λόγια ... δεν είναι στα downloads του dotNetZone το tool Smile )

    Πολύ καλή μέρα μας

    Angel
    O:]
  •  14-07-2005, 01:26 3460 σε απάντηση της 3452

    Re: [Enterprise Library] To String Resource Tool είναι διαθέσιμο

     cgeo wrote:

    Αυτό δεν βλέπω. Έχει μπει στα downloads; μήπως δεν κοιτάω στο σωστό σημείο;


    Συγνώμη για το μπέξιμο που δημιούργησα! Embarrassed

    Πολύ θα το ήθελα να το έβαζα στο Download section, αλλά δυστηχώς δεν γίνεται. Όχι λόγω χώρου στο server, αλλά λόγω δικαιωμάτων διανομής...


    George J.

    George J. Capnias: Χειροπρακτικός Υπολογιστών, Ύψιστος Γκουράρχης της Κουμπουτερολογίας
    w: capnias.org, t: @gcapnias, l: gr.linkedin.com/in/gcapnias
    dotNETZone.gr News
Προβολή Τροφοδοσίας RSS με μορφή XML
Με χρήση του Community Server (Commercial Edition), από την Telligent Systems