benfry / processing4

Processing 4.x releases for Java 17
https://processing.org
Other
1.35k stars 237 forks source link

Cannot load any user language files for i18n #722

Closed yu-tang closed 1 year ago

yu-tang commented 1 year ago

Description

I read a translations wiki page.

https://github.com/processing/processing4/wiki/Translations#two-ways-to-get-started

So I attempted using a user language file but have no luck. My PDE simply ignores them.

Expected Behavior

The PDE uses user base/language files for i18n from my sketchbook folder if they are available.

Current Behavior

No user language files allowed. No errors, just treat them like they are invisible.

Steps to Reproduce

  1. Put the following modified files in your sketchbook folder.
    • languages/PDE.properties
    • languages/PDE_ja.properties I don't think it's a Japanese language specific, so feel free to replace above with your language file.
  2. Run PDE.
  3. See if your changes has been applied. (No, in my case)

Your Environment

Processing 4.2 + Windows 10

Possible Causes / Solutions

I quick look at a processing/app/Language.java.

Language.init() internally calls Base.getSketchbookFolder() via LanguageBundle for building a user language file path. But the Base.getSketchbookFolder() seems always returns null at that point because the Preferences class is not initialized yet.

trikaphundo commented 1 year ago

I observe the very same behaviour on my Ubuntu 22.04.2 with Processing 4.2. Processing does not take into account the .properties files under languages folder in the sketchbook.

A simple workaround is editing the PDE_ja.properties file directly in lib/languages. I recommend you backup the file before modifying it, though.

benfry commented 1 year ago

Sorry about that—as you found, the sketchbook isn't initialized yet so it's really tricky to get this right.

I've updated the instructions: https://github.com/processing/processing4/wiki/Translations#two-ways-to-get-started

Thanks for looking into a translation for us!