solosky / pixl.js

An emulator for Amiibo!
GNU General Public License v2.0
557 stars 109 forks source link

German Translation Update / Cross-platform Language File Generation script / Updated Translation Docs #238

Closed Schokobecher closed 3 months ago

Schokobecher commented 3 months ago

I've updated the German Translation of the firmware, making it more uniform in itself and in relation to the other languages. There was also a mix-up between the German and French column in one row. In addition, I added a German version of the web app.

The new font_data_gen.sh is now cross-platform compatible. I tested it on macOS using the pgrep and psed binaries, as the stock macOS ones are incompatible (missing arguments). Due to the changes, I also reworked the 05+5-translation.md for more clarity.

There's also now a section on how to translate the web app, though I might be a bit rough.

Feedback is welcome :)

Schokobecher commented 3 months ago

It seems German Umlauts are broken now.

Looks like rebuilding the font data does remove a lot of characters: https://github.com/solosky/pixl.js/pull/238/commits/a8f9c4cb65db5864936636dabd5a4eed6fc41c3f

Is there anything I've done wrong? I've restored the previous version for now, as that works.

solosky commented 3 months ago

It seems German Umlauts are broken now.

Looks like rebuilding the font data does remove a lot of characters: a8f9c4c

Is there anything I've done wrong? I've restored the previous version for now, as that works.

I tested your commited font_data_gen.sh, it's still broken in Macos and Linux, but still works for git bash. I do not recomend to re-work on this script but I think the best way is to re-write the script by pure python script.

The logic is very simple, convert all unique charaters in application/src/i18n/.c application/src/amiidb/.c to unicode (2 bytes) and saved to a map file, then call bdfconv convert to u8g2 font file.

If you are not avaliable to rewrite the script to python currently, I could merge your PR and mark the script is not working in macos and linux.

Schokobecher commented 3 months ago

I don't see how my rework would impact the function of bdfconv. All I added was some logic to check for bddfconv in PATH of you are on Linux/Darwin, and use that version instead of using the bundled .exe (plus pgrep/sped on Darwin, since the bundled versions have a different syntax) - maybe the self-compiled version differs from the bundled version? Alternatively the Git Bash bundles utilities differ, but I wouldn't think so.

I can definitely try reworking it with python today, as long as my self-compiled bdfconv is not the issue.

solosky commented 3 months ago

I don't see how my rework would impact the function of bdfconv. All I added was some logic to check for bddfconv in PATH of you are on Linux/Darwin, and use that version instead of using the bundled .exe (plus pgrep/sped on Darwin, since the bundled versions have a different syntax) - maybe the self-compiled version differs from the bundled version? Alternatively the Git Bash bundles utilities differ, but I wouldn't think so.

I can definitely try reworking it with python today, as long as my self-compiled bdfconv is not the issue.

I just do quick debug, the issue seems come from the sed command. Anyway, the original script is not tested in linux and macos, it's may broken for the origin version.

Schokobecher commented 3 months ago

I've made a Python3 version of the script. pixjs.txt looks different, but the final glyph count matches that of the shell script Built the LCD firmware with RELEASE=1 and German Umlauts look correct, but I didn't do an in-depth check.

Glyphs: 1553/30503

If you green-light it, I'll update the docs to reflect usage of this script version. We could also bundle the x86_64 version of bdfconv for Mac/Linux and an Apple Silicone one, but I'm not sure whether that's really necessary.

Also, sorry for the wild commits, should really have been separate PRs

solosky commented 3 months ago

Thanks for your hard work on the rework! I reviewed the script and no comments from my side. Please kindly proceed to update the docs. I aggreed to put a pre-build bdfconv binary to script path, it could make the develop life better.

Schokobecher commented 3 months ago

I reviewed the script and no comments from my side.

Actually, the output path for u8g2_font_wqy12_t_gb2312a.c was incorrect 😅 but it's fixed now.

I've updated the docs, and built bdfconv as universal (arm64/x86_64) binary for macOS, as well as a statically linked one for x86_64 Linux. font_data_gen.py works under Linux and macOS, but I had no chance to test the new paths on Windows yet.

solosky commented 3 months ago

I tested Macos/windows/linux, the new script works well. Thanks for your updates. may I know is there any update for your end? If no, I am going merge the PR to develop branch.

Schokobecher commented 3 months ago

No updates for this PR from my end