我正在开发一个可以翻译所有硬编码字符串的库。
在一些帮助下,我设法找到了与之相关的所有字符串,所以这是一个开始。但是,我注意到在尝试将文件重命名JFileChooser
为已使用的名称时,我收到一个错误对话框,说我不能这样做。
这是 Java,还是 Windows(运行程序的操作系统)?
如果是 Java,我想知道更多关于如何自定义这样的JDialog
.,如果是 Windows,我无能为力,特别是因为程序应该是跨平台的。
您可以在安装它的目录中找到 JDK 的源代码。
在 openJDK-7 实现中,您要查找的字符串在
package com.sun.swing.internal.plaf.basic.resources
和文件中定义basic.java
。此目录中的其他文件对应不同的翻译:
basic_de.java
, basic_es.java
, ... 等。
Swing 类使用了所有 String 常量。
其中:
{ "FileChooser.renameErrorFileExists.textAndMnemonic",
"Cannot rename {0}: A file with the name you specified already exists. Specify a different file name." },
因此,您必须找到一种方法来覆盖 AttributeFileChooser.renameErrorFileExists.textAndMnemonic
以更改此对话框。
如果您想翻译这些字符串,请参阅此答案。
不同的 Java 安装可能有不同的字符串,因为这些文件不是官方 Java API 的一部分。
据我所知,这些文件不包含在src.zip
Oracle 分发的文件中。