RFR: 8288882: JFileChooser - empty (0 bytes) file is displayed as 1 KB

Prasanta Sadhukhan psadhukhan at openjdk.org
Thu Jun 30 04:08:39 UTC 2022


On Wed, 29 Jun 2022 19:08:12 GMT, Alexey Ivanov <aivanov at openjdk.org> wrote:

>> src/java.desktop/share/classes/sun/swing/FilePane.java line 1198:
>> 
>>> 1196:                     text = MessageFormat.format(kiloByteString, len + 1);
>>> 1197:                 } else if (len < 1024L) {
>>> 1198:                     text = (len == 0L) ? 0 + " bytes" : len + " bytes";
>> 
>> Is this necessary?
>> 0 + " bytes" -->  "0 bytes"
>> 
>> Also, will this code work correctly for non-English locales?
>
>> Also, will this code work correctly for non-English locales?
> 
> It won't.
> 
> It has to use `MessageFormat` and it has to add a new string to the resource bundle.

Dont think this len==0 check is needed...
One can use text = len + "bytes";

Also, this has i18n connection to it, so you need to use "byteString" similar to "kiloByteString", point it to 
UIManager.getString("FileChooser.fileSizeBytes", l); and add "FileChooser.fileSizeBytes" entry into 
share/classes/com/sun/swing/internal/plaf/basic/resources/basic.properties
share/classes/com/sun/swing/internal/plaf/basic/resources/basic_de.properties
share/classes/com/sun/swing/internal/plaf/basic/resources/basic_es.properties
share/classes/com/sun/swing/internal/plaf/basic/resources/basic_fr.properties
share/classes/com/sun/swing/internal/plaf/basic/resources/basic_it.properties
share/classes/com/sun/swing/internal/plaf/basic/resources/basic_ja.properties
share/classes/com/sun/swing/internal/plaf/basic/resources/basic_ko.properties
share/classes/com/sun/swing/internal/plaf/basic/resources/basic_pt_BR.properties
share/classes/com/sun/swing/internal/plaf/basic/resources/basic_sv.properties
share/classes/com/sun/swing/internal/plaf/basic/resources/basic_zh_CN.properties
share/classes/com/sun/swing/internal/plaf/basic/resources/basic_zh_TW.properties

I am not sure if need i18n team's intervention to update those resources as "bytes" can be translated to native in jp, zh
Maybe @naotoj can throw some light on that how to go about updating those resource file

-------------

PR: https://git.openjdk.org/jdk/pull/9327



More information about the client-libs-dev mailing list