如何在Windows下转换JFileChooser列标题?

时间:2018-12-17 14:48:47

标签: java swing localization translation jfilechooser

我已经完成了JFileChooser对话框到荷兰语的翻译。通过这样做,我发现this resource非常有用。

在进行此翻译的测试期间,我遇到了一个无法解决的问题:在Windows(Windows 7 Professional Service Pack 1 64位)下,不会翻译详细视图中各列的标题。我使用的外观并没有关系。当我在Mac上测试时,标题已正确翻译。这是一些代码来演示该问题。切换到“详细信息”以查看列标题。我在上下文菜单中添加了Refresh到Verversen的翻译,以证明其他翻译也可以使用。

package translationjfilechooser;

import javax.swing.JFileChooser;
import javax.swing.UIManager;

public class TranslateColumnsJFileChooser {

    JFileChooser fc;

    public TranslateColumnsJFileChooser() {
        UIManager.put("FileChooser.fileNameHeaderText", "Naam");
        UIManager.put("FileChooser.fileSizeHeaderText", "Grootte");
        UIManager.put("FileChooser.fileTypeHeaderText", "Bestandstype");
        UIManager.put("FileChooser.fileDateHeaderText", "Gewijzigd op");
        UIManager.put("FileChooser.refreshActionLabelText", "Verversen");
        try {
            // It does not matter which Look & Feel you are using
            // UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
            UIManager.setLookAndFeel(UIManager.getCrossPlatformLookAndFeelClassName());
        } catch (Exception e) {
            System.err.println("Could not change look and feel");
            return;
        }
        fc = new JFileChooser();
        fc.setDialogTitle("This demonstrates that column headers are not translated under Windows");
        fc.showOpenDialog(fc);
        return;
    }

    public static void main(String[] args) {
        new TranslateColumnsJFileChooser();
    }
}

有人知道翻译这些标头的方法吗?或者至少是为什么它们无法翻译的原因?

为了分析问题,我试图在Java源代码中找到这些标头的转换键,但是找不到它们。我也找不到键FileChooser.refreshActionLabelText

1 个答案:

答案 0 :(得分:0)

我可以确认它在Java 11中已固定为注释中发布的VGR