-
Bug
-
Resolution: Fixed
-
P3
-
8, 11, 17, 20, 21
-
b15
-
x86_64
-
windows
ADDITIONAL SYSTEM INFORMATION :
Operating System Details
System Windows 11 Pro, build 23486.1000
Java SE Version
Version "20.0.1"
A DESCRIPTION OF THE PROBLEM :
Detailed Description of the Problem
1) To see the result you must click above in the window, on the middle button.
2) Entering without any identification, we can change the country, simply "New Folder" remains constant.
3) Entering the identification "fr" we can still change the country; however the identification remains "Nouveau dossier".
STEPS TO FOLLOW TO REPRODUCE THE PROBLEM :
Steps to Reproduce
Run the application in source code
EXPECTED VERSUS ACTUAL BEHAVIOR :
EXPECTED -
Expected Result
The translation of "New Folder" may vary by country.
ACTUAL -
Actual Result
The translation of "New Folder" always remains constant.
---------- BEGIN SOURCE ----------
File "JFileChooserTest.java"
package fileChooser;
import java.awt.FlowLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ItemEvent;
import java.awt.event.ItemListener;
import java.util.Locale;
import java.util.ResourceBundle;
import javax.swing.AbstractAction;
import javax.swing.JButton;
import javax.swing.JComboBox;
import javax.swing.JFileChooser;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.UIManager;
public class JFileChooserTest extends JFrame implements ItemListener {
private static final long serialVersionUID = 1L;
private JComboBox<String> selectedString;
private ResourceBundle res;
public static void main(String[] args) throws Exception {
UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
new JFileChooserTest(args.length == 0 ? "" : args[0]);
}
private void onLocaleChange(String locale) {
res = ResourceBundle.getBundle("fileChooser.bundle", new Locale(locale));
UIManager.put("FileChooser.acceptAllFileFilterText", res.getString("accept_all"));
UIManager.put("FileChooser.directoryOpenButtonText", res.getString("open_text"));
UIManager.put("FileChooser.openButtonText", res.getString("open_text"));
UIManager.put("FileChooser.saveButtonText", res.getString("save_text"));
UIManager.put("FileChooser.cancelButtonText", res.getString("cancel_text"));
UIManager.put("FileChooser.lookInLabelText", res.getString("file_look"));
UIManager.put("FileChooser.saveInLabelText", res.getString("file_save"));
UIManager.put("FileChooser.fileNameLabelText", res.getString("file_name"));
UIManager.put("FileChooser.filesOfTypeLabelText", res.getString("file_type"));
UIManager.put("FileChooser.win32.newFolder", res.getString("new_folder"));
UIManager.put("FileChooser.win32.newFolder.subsequent", res.getString("new_folder") + " ({0})");
}
public JFileChooserTest(String selected) {
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setLayout(new FlowLayout());
onLocaleChange(selected);
add(new JLabel("Language:"));
add(selectedString = new JComboBox<String>(new String[] {"en", "fr"}));
selectedString.setSelectedIndex(selected.equals("fr") ? 1 : 0);
selectedString.addItemListener(this);
add(new JButton(new AbstractAction("Push me to open a file chooser") {
private static final long serialVersionUID = 1L;
@Override
public void actionPerformed(ActionEvent e) {
JFileChooser chooser = new JFileChooser();
chooser.setDialogTitle(res.getString("open_text"));
chooser.showOpenDialog(null);
}
}));
setSize(340, 240);
setVisible(true);
}
@Override
public void itemStateChanged(ItemEvent e) {
if (e.getSource() == selectedString) {
onLocaleChange((String)selectedString.getSelectedItem());
}
}
}
File "bundle_fr.properties"
accept_all = Tous les fichiers
accept_disk = Image disque
open_text = Ouvrir
save_text = Sauvegarder
cancel_text = Annuler
file_look = Regarder dans :
file_save = Sauver dans :
file_name = Nom du fichier :
file_type = Type :
new_folder = Nouveau dossier
File "bundle.properties"
accept_all = All Files
accept_disk = Disk Image
open_text = Open
save_text = Save
cancel_text = Cancel
file_look = Look in:
file_save = Save in:
file_name = File name:
file_type = Files of type:
new_folder = New Folder
---------- END SOURCE ----------
FREQUENCY : always
Operating System Details
System Windows 11 Pro, build 23486.1000
Java SE Version
Version "20.0.1"
A DESCRIPTION OF THE PROBLEM :
Detailed Description of the Problem
1) To see the result you must click above in the window, on the middle button.
2) Entering without any identification, we can change the country, simply "New Folder" remains constant.
3) Entering the identification "fr" we can still change the country; however the identification remains "Nouveau dossier".
STEPS TO FOLLOW TO REPRODUCE THE PROBLEM :
Steps to Reproduce
Run the application in source code
EXPECTED VERSUS ACTUAL BEHAVIOR :
EXPECTED -
Expected Result
The translation of "New Folder" may vary by country.
ACTUAL -
Actual Result
The translation of "New Folder" always remains constant.
---------- BEGIN SOURCE ----------
File "JFileChooserTest.java"
package fileChooser;
import java.awt.FlowLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ItemEvent;
import java.awt.event.ItemListener;
import java.util.Locale;
import java.util.ResourceBundle;
import javax.swing.AbstractAction;
import javax.swing.JButton;
import javax.swing.JComboBox;
import javax.swing.JFileChooser;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.UIManager;
public class JFileChooserTest extends JFrame implements ItemListener {
private static final long serialVersionUID = 1L;
private JComboBox<String> selectedString;
private ResourceBundle res;
public static void main(String[] args) throws Exception {
UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
new JFileChooserTest(args.length == 0 ? "" : args[0]);
}
private void onLocaleChange(String locale) {
res = ResourceBundle.getBundle("fileChooser.bundle", new Locale(locale));
UIManager.put("FileChooser.acceptAllFileFilterText", res.getString("accept_all"));
UIManager.put("FileChooser.directoryOpenButtonText", res.getString("open_text"));
UIManager.put("FileChooser.openButtonText", res.getString("open_text"));
UIManager.put("FileChooser.saveButtonText", res.getString("save_text"));
UIManager.put("FileChooser.cancelButtonText", res.getString("cancel_text"));
UIManager.put("FileChooser.lookInLabelText", res.getString("file_look"));
UIManager.put("FileChooser.saveInLabelText", res.getString("file_save"));
UIManager.put("FileChooser.fileNameLabelText", res.getString("file_name"));
UIManager.put("FileChooser.filesOfTypeLabelText", res.getString("file_type"));
UIManager.put("FileChooser.win32.newFolder", res.getString("new_folder"));
UIManager.put("FileChooser.win32.newFolder.subsequent", res.getString("new_folder") + " ({0})");
}
public JFileChooserTest(String selected) {
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setLayout(new FlowLayout());
onLocaleChange(selected);
add(new JLabel("Language:"));
add(selectedString = new JComboBox<String>(new String[] {"en", "fr"}));
selectedString.setSelectedIndex(selected.equals("fr") ? 1 : 0);
selectedString.addItemListener(this);
add(new JButton(new AbstractAction("Push me to open a file chooser") {
private static final long serialVersionUID = 1L;
@Override
public void actionPerformed(ActionEvent e) {
JFileChooser chooser = new JFileChooser();
chooser.setDialogTitle(res.getString("open_text"));
chooser.showOpenDialog(null);
}
}));
setSize(340, 240);
setVisible(true);
}
@Override
public void itemStateChanged(ItemEvent e) {
if (e.getSource() == selectedString) {
onLocaleChange((String)selectedString.getSelectedItem());
}
}
}
File "bundle_fr.properties"
accept_all = Tous les fichiers
accept_disk = Image disque
open_text = Ouvrir
save_text = Sauvegarder
cancel_text = Annuler
file_look = Regarder dans :
file_save = Sauver dans :
file_name = Nom du fichier :
file_type = Type :
new_folder = Nouveau dossier
File "bundle.properties"
accept_all = All Files
accept_disk = Disk Image
open_text = Open
save_text = Save
cancel_text = Cancel
file_look = Look in:
file_save = Save in:
file_name = File name:
file_type = Files of type:
new_folder = New Folder
---------- END SOURCE ----------
FREQUENCY : always