This discussion is archived
5 Replies Latest reply: Nov 4, 2009 10:34 PM by 843810 RSS

Internationalization for Hebrew language

843810 Newbie
Currently Being Moderated
hi,

I made an application, internationalized to be used with some different languages.
Til now I internationalized it only for languages that have Latin letters (ISO/IEC 10646-1)
and in this way it is working fine...

Recently I had a request to put it in Hebrew language, that doesn't use Latin characters.

Reading the documentation, I implemented the localization for the Hebrew language in the
follow way:
Someone wrote the words in Hebrew characters inside a property file (file_iw_IL.properties) ,
afterwards I transformed the Hebrew characters in the UTF-16 mode "\uxxxx", using the
native2ascii tool that come with jdk ....

But when the application for the Hebrew language run, it didn't work...

I should like to know if the procedure that I did for Hebrew
internationalization is right and, if is not, I would like to know what is the right precedure
to make internationalization for languages that don't have Latin characters.

thank you in advance for a kind help
regards

tonyMrsangelo
  • 1. Re: Internationalization for Hebrew language
    843810 Newbie
    Currently Being Moderated
    No one answer me so I try again for some help, explain better my problem.

    I use this class to get strings in different languages:
    public class SupplierOfInternationalizedStrings {
    
        Locale localUsedIt;
        Locale localUsedEn;
        Locale localUsedHe;
        //
        Locale localizedCurrencyFormat;
        //
        Locale localUsedHere;
        //
        public SupplierOfInternationalizedStrings() { // constructor
            localUsedIt = new Locale("it", "IT"); // specifica il file appartenente alla famiglia
            localUsedEn = new Locale("en", "US"); // specifica il file appartenente alla famiglia
            localUsedHe = new Locale("he", "HE"); // specifica il file appartenente alla famiglia
        } // constructor
    
        void setInternationalizationCountry(String langToUse) {
            if (langToUse.compareToIgnoreCase("Italiano") == 0) {
                localUsedHere = localUsedIt;
                localizedCurrencyFormat = new Locale("it", "IT");
            } else if (langToUse.compareToIgnoreCase("English")  == 0) {
                localUsedHere = localUsedEn;
                localizedCurrencyFormat = new Locale("iw", "IL");
            } else if (langToUse.compareToIgnoreCase("Hebrew")== 0) {
                localUsedHere = localUsedHe;
                localizedCurrencyFormat = new Locale("iw", "IL");
            }
           System.out.println("linguaggio impostato = " + localUsedHere);
        } // initializeInternationalization() 
    
        public String getInternationalString(String keyForTheWord) {
            ResourceBundle resourceBund = ResourceBundle.getBundle("properiesFile", // il nome del file .properties... la famiglia dei files
                    localUsedHere);
            String word = resourceBund.getString(keyForTheWord);
            return word;
        } // getStringForMedidentStartClass()
    } // class SupplierOfInternationalizedStrings
    Of course I have a file.property iw_IL - Hebrew (Israel) where for each key there is a value wrote with hebrew characters

    the hebrew file property look in this way:
    keyForLabel1= ה עברית מילה שתימ \n
    keyForLabel2=ספה עברית מילה שתימ 
    The class SupplierOfInternationalizedStrings works for the translation in english and in other languages that use latins letters ..,
    but when it is setted for be used with the Hebrew language ( localUsedHere = localUsedHe)
    the metod getInternationalString() don't return Hebrew words.

    This didn't worry me, because I read in the documentation that properies file cannot
    read characters that are different from latine... and I also learned that in this case it need to convert the letters
    in Unicode format...

    I made this work putting the hebrew words in an .rtf file and, using native2ascii utility
    with the command native2ascii -encoding UTF8 file.rtf textdoc.txt, I got the unicode format.

    Now the file property for Hebrew language looks in this way:
    keyForLabel1     =       \u00d4  \u00e2\u00d1\u00e8\u00d9\u00ea... 
     
    keyForLabel2     =       \u00e1\u00e4\u00d4  \u00e2\u00d1.....
    At this point I expected the translation in Hebrew comes good... but instead I still I cannot get the Hebrew words..

    I should like to know why the elaboration still doesn't works
    and I would have too some help in order to do the program works good.

    thank you

    regards

    tonyMrsangelo
  • 2. Re: Internationalization for Hebrew language
    DrClap Expert
    Currently Being Moderated
    You didn't say what "doesn't work" means in your first post and you didn't say what it means in your second post either. How about explaining what you expected to see, where you expected to see it, and what you saw instead? (Hint: you didn't say whether you were using a Java application or a web application or an applet or what.) And if you saw error messages, what were they? Just the general basic things that people would need to know.
  • 3. Re: Internationalization for Hebrew language
    843810 Newbie
    Currently Being Moderated
    thank you for answering me

    I precise better..

    - saying "it doesn't" work I simply mean that I don't get the Hebrew translation
    - I talk about a stand alone java application
    - after I wrote in the file property with the Unicode I expected to get strings translated in Hebrew character in the same way I get the string in the English language
    - I don't get error messages but when I set the class to use Hebrew language I get again English words...

    regards

    tonyMrsangelo
  • 4. Re: Internationalization for Hebrew language
    DrClap Expert
    Currently Being Moderated
    localUsedHe = new Locale("he", "HE");
    I don't think this is correct. Usually you pass a language code and a country code to the Locale constructor. There's no country whose abbreviation is "HE", is there?
  • 5. Re: Internationalization for Hebrew language
    843810 Newbie
    Currently Being Moderated
    I thank you very much for your good advice.

    You are right : the right format is:
     localUsedHe = new Locale("iw", "IL"); 
    now it works

    regards