/ Forside / Teknologi / Udvikling / Java / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
Java
#NavnPoint
molokyle 3688
Klaudi 855
strarup 740
Forvirret 660
gøgeungen 500
Teil 373
Stouenberg 360
vnc 360
pmbruun 341
10  mccracken 320
internationalisering
Fra : Thomas Bendsen


Dato : 06-11-05 10:52

Hej

Jeg er begyndt at kigge lidt på at internationalisere et af mine
programmer (java version 1.5).
Hvad gør man med eksempelvis en JFileChooser? Overskriften og
"approveknappen" er ikke noget problem, men hvordan får man dansk tekst
på "cancel"- og "open"-knapperne. Og hvis jeg skal stille store krav
hvad så med overskrifterne "name" og "date modified" i selve fil-vinduet?

Skal jeg blot leve med at disse ting stadig står på engelsk eller
overser jeg en eller anden mulighed?

Jeg har prøvet med:
fileChooser.setLocale(new Locale("da","DK))
men det gør tilsyneladende ikke nogen forskel (hvilket jeg egentlig
heller ikke havde regnet med).

Med venlig hilsen
Thomas Bendsen

 
 
Filip Larsen (06-11-2005)
Kommentar
Fra : Filip Larsen


Dato : 06-11-05 13:51

Thomas Bendsen skrev

> Jeg er begyndt at kigge lidt på at internationalisere et af mine
> programmer (java version 1.5).
> Hvad gør man med eksempelvis en JFileChooser?

I 1.4 (og dermed sikkert også i 1.5) kan man benytte

UIManager.getDefaults().addResourceBundle(String)

til at tilføje navnet på et bundle som JFileChooser så henter sine
strenge fra. Et kort eksempel:

=== usenet/I18NFileChooserTest.java ===
package usenet;

import java.awt.EventQueue;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.Locale;

import javax.swing.JButton;
import javax.swing.JFileChooser;
import javax.swing.JFrame;
import javax.swing.UIManager;

public class I18NFileChooserTest extends JFrame {

public static void main(String[] args) {
UIManager.getDefaults().addResourceBundle("usenet.i18n");
EventQueue.invokeLater(new Runnable() {
public void run() {
new I18NFileChooserTest();
}
});
}

public I18NFileChooserTest() {
setDefaultCloseOperation(EXIT_ON_CLOSE);
JButton button = new JButton("Open dialog");
button.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
JFileChooser chooser = new JFileChooser();
chooser.setLocale(new Locale("da","DK"));
chooser.showOpenDialog(I18NFileChooserTest.this);
}
});
getContentPane().add(button);
pack();
setVisible(true);
}
}
=== end of usenet/I18NFileChooserTest.java ===

og den tilhørende properties-fil

=== usenet/i18n_da_DK.properties ===
FileChooser.saveDialogTitleText=Gem
FileChooser.openDialogTitleText=Åben
FileChooser.saveButtonText=Gem
FileChooser.saveButtonMnemonic=0
FileChooser.saveButtonToolTipText=Gem i den valgte fil
FileChooser.openButtonText=Åben
FileChooser.openButtonMnemonic=0
FileChooser.openButtonToolTipText=Åben den valgte fil
FileChooser.cancelButtonText=Afbryd
FileChooser.cancelButtonMnemonic=0
FileChooser.cancelButtonToolTipText=Afbryd udvælgelse af fil
FileChooser.updateButtonText=Opdatér
FileChooser.updateButtonMnemonic=0
FileChooser.updateButtonToolTipText=Opdatér listen af filer
FileChooser.helpButtonText=Hjælp
FileChooser.helpButtonMnemonic=0
FileChooser.helpButtonToolTipText=Vis hjælp
FileChooser.directoryOpenButtonText=Åben
FileChooser.directoryOpenButtonMnemonic=1
FileChooser.directoryOpenButtonToolTipText=Åben det valgte katalog
=== usenet/i18n_da_DK.properties ===

Property-navnene for forskellige komponenter kan man finde ved at kigge
i koden for de forskellige UI implementeringer, fx. BasicFileChooserUI.
Jeg er ikke bekendt med en officiel liste over navne, så man skal
desværre selv grave dem frem. Bemærk, at Properties-filen ovenover er et
eksempel og kun indeholder en del af de properties der er nødvendige for
at få en fuldstændig lokaliseret JFileChooser dialog.


Mvh,
--
Filip Larsen



Thomas Bendsen (06-11-2005)
Kommentar
Fra : Thomas Bendsen


Dato : 06-11-05 20:15

Filip Larsen wrote:
> Thomas Bendsen skrev
>
>
>>Jeg er begyndt at kigge lidt på at internationalisere et af mine
>>programmer (java version 1.5).
>>Hvad gør man med eksempelvis en JFileChooser?
>
>
> I 1.4 (og dermed sikkert også i 1.5) kan man benytte
>
> UIManager.getDefaults().addResourceBundle(String)
>
> til at tilføje navnet på et bundle som JFileChooser så henter sine
> strenge fra. Et kort eksempel:
> Mvh,
> --
> Filip Larsen

Hej Filip

Jeg er naturligvis godt klar over at der er mange ting jeg ikke ved om
java, men du har i hvert fald ramt en af dem. Der er tilsyneladende en
del jeg skal i gang med at kigge på.

Under alle omstændigheder skal du have mange tak for et udførligt og
letlæseligt svar, som har løst mit problem (indtil der selvfølgelig
dukker et nyt op

MVH Thomas

Søg
Reklame
Statistik
Spørgsmål : 177549
Tips : 31968
Nyheder : 719565
Indlæg : 6408820
Brugere : 218887

Månedens bedste
Årets bedste
Sidste års bedste