Avatar billede trp79 Nybegynder
13. oktober 2003 - 22:23 Der er 9 kommentarer og
1 løsning

Internationalizing - fatter ikke hvorfor det ikke funker

Hejsa
Jeg er ved at lege lidt med internationalisering (http://java.sun.com/docs/books/tutorial/i18n/intro/quick.html)men kan ikke rigtig får det til at virke. Jeg går denne fejl:

C:\j2sdk1.4.2_01\bin\javaw.exe -client -classpath D:\jdev903\jdev\mywork\Kundekartotek - JDev\Klient\classes;D:\jdev903\jdev\lib\jdev-rt.jar Kundekartotek.GuiMain
java.util.MissingResourceException: Can't find bundle for base name MessagesBundle, locale en_US

    at java.util.ResourceBundle.throwMissingResourceException(ResourceBundle.java:804)

    at java.util.ResourceBundle.getBundleImpl(ResourceBundle.java:773)

    at java.util.ResourceBundle.getBundle(ResourceBundle.java:538)

    at Kundekartotek.GuiMain.jbInit(GuiMain.java:63)

    at Kundekartotek.GuiMain.<init>(GuiMain.java:32)

    at Kundekartotek.GuiMain.main(GuiMain.java:96)

Process exited with exit code 0.



Jeg har følgende properties-filer:
MessagesBundle.properties
MessagesBundle_da_DK.properties
MessagesBundle_en_US.properties



Udklip fra koden:
    if(jCheckBoxMenuItem1.isSelected())
    {
      language = new String("da");
      country = new String("DK");
    }
    else
    {
      language = new String("en");
      country = new String("US");     
    }
    Locale currentLocale;
    ResourceBundle messages;
    currentLocale = new Locale(language, country);
    messages = ResourceBundle.getBundle("MessagesBundle", currentLocale);//Dette er linie 63

Jeg synes altså det burde virke - har jeg stiret mig blind på det?

mvh
Torben
Avatar billede arne_v Ekspert
13. oktober 2003 - 22:28 #1
Er properties filerne i classpath ?

Hvis jeg husker rigtigt skal de være i classpath og ikke i hverken
current directory eller directory med program (medmindre det er i
classpath også).
Avatar billede trp79 Nybegynder
13. oktober 2003 - 22:32 #2
Nej de er ikke i min classpath, de ligger bare i directory med program.
Men hvis de skal ligge i classpath, så er der ikke så meget ved det, hvis man nu har i sinde at distribuerer sit program...?
Avatar billede arne_v Ekspert
13. oktober 2003 - 22:34 #3
Jeg formoder at java også kan hente dem ud af en jar-fil !
Avatar billede trp79 Nybegynder
13. oktober 2003 - 22:38 #4
Jeg er ikke helt med på hvordan jeg skal gøre det så? Man er vel nød til at sætte classpathen på den pågældende pc, altså fx i winXP gå ind i miljøvariabler osv?
Avatar billede arne_v Ekspert
13. oktober 2003 - 22:38 #5
Det er faktisk det at de hentes fra classpath der gør det nemt at distribuere -
du pakker både class-filer og messages bundels i samme jar-fil.
Avatar billede trp79 Nybegynder
13. oktober 2003 - 22:39 #6
Nu har jeg tilføjet classpathen (til JDevs additional classpath) og så funker det fint :)
Avatar billede arne_v Ekspert
13. oktober 2003 - 22:47 #7
Så vil jeg tillade mig at ligge et svar.
Avatar billede trp79 Nybegynder
13. oktober 2003 - 22:58 #8
Det er bare iorden Arne. Men jeg kunne vel ikke få dig til at forklare mig om hvorvidt der er nødvendigt at tilføje stien til classpathen på de pågældende pc, der skal køre programmet? Altså miljøvariabler --> path på winXp osv...
Avatar billede arne_v Ekspert
13. oktober 2003 - 23:03 #9
Jeg formoder at du distribuerer en jar-fil.

Så pakker du dem bare med ned i jar-filen:

pakke/subpakke/Klasse1.class
pakke/subpakke/Klasse2.class
MessagesBundle_xx_yy.properties
MessagesBundle_zz_ww.properties

De skal alligevel have sat classpath til jar-filen (ellers kan de jo
ikke køre programmet) og så er resourcerne inkl. message bundles
jo i classpath automatisk.
Avatar billede trp79 Nybegynder
13. oktober 2003 - 23:18 #10
Ahh selvfølgelig.
Tak for forklaringen og hjælpen.

mvh
Torben
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester