Collapse icon indicating copy to clipboard operation
Collapse copied to clipboard

[Bug & Request]: Things I found while entirely revising fr-FR localization & more

Open Kiki79250CoC opened this issue 1 year ago • 16 comments

So, I want to report all things I found during the 3 days I spent to entirely revising the french localization. During this time I found several issues/quirks/bugs

1. Weird things I found

  • [x] [HI3-SETTINGS] The "Level of Details" option is the only one to be in a "highest to lowest" range, while all others are in a "lowest to highest" range.
    • I insist on that point : this is the only menu to have the options order in this configuration
All settings "Level of Details"
image-1 image

2. Localization issues noticed

2.1. Strings that are too long to fit

  • [x] [MAIN] Region Selector
    • This was discussed on Discord; as this controls must have a static size, a probable workaround is to fool UI rendering by adding arbitrary size value into language file.
    • If not, truncating strings is still an option image
  • [x] [MAIN] No news text width image
  • [x] [MAIN] Quick Settings elements needs wrapping image
  • [x] [APP-SETTINGS] Threads selectors
    • For French, I "fixed" the issue by \r\n'd the last word in "Threads d'extraction" → "Threads\r\nd'extraction" image
  • [x] [APP-SETTINGS] Discord buttons
  • [x] [APP-SETTINGS] File management buttons
  • [x] [APP-SETTINGS] Keyboard shortcuts infos
    • Fixed in my case by \r\n'd the string. image
  • [x] [GLOBAL] Update popup
    • I already fixed it on my side by truncate the text on both sections.
1.73.4 Revised localization
image image
  • [x] [HI3-SETTINGS] Voice over language image
  • [x] [GLOBAL] Loading regions can sometimes output non-localized strings

https://github.com/CollapseLauncher/Collapse/assets/54137141/1b567e15-fd82-49bc-ae93-a595167943ad

2.2. Missing ability to localize some strings

  • [x] [GAME-REPAIR] Some strings are hard-coded
    • The "Trying to xxxxxx" strings does not exist in the localization files
    • image

    Maintainer Edit: https://github.com/CollapseLauncher/Collapse/blob/efa3bef91d5b2d9df59cd1fed4c18622521d4136/CollapseLauncher/Classes/RepairManagement/Honkai/Fetch.cs#L355 https://github.com/CollapseLauncher/Collapse/blob/efa3bef91d5b2d9df59cd1fed4c18622521d4136/CollapseLauncher/Classes/RepairManagement/Honkai/Fetch.cs#L474

  • [ ] ~~[HI3-SETTINGS] Graphics Presets~~ No longer applicable as of 1.73.5
    • image
  • [x] [APP-SETTINGS] "MIT License"
    • Example: "Licence MIT" for French
  • [x] [APP-SETTINGS] System keys, like "Shift", "Tab", "Ctrl" and "Alt" in keyboard shortcuts
    • Some keys in certain keyboards are not named using their english name
    • For example in French, "Shift" is "Maj" and in German, "Ctrl" is "Strg"

And some optional things that are not important but that can be taken care about

  • [x] The "Byte" (B) unit can technically be localized (for example "octet" (o) in French and Romanian).

    • 1 GB → 1 Go
    • 37 MB/s → 37 Mo/s
  • [x] Localize file types text on open/save dialogs

    • I put this as optional because it's not the most important thing to do, but still better if you want to make something looking more professional.
    • In that case, "HI3Global to HI3SEA Cookbook" → "Fichier de recette HI3Global vers HI3SEA" image

    Maintainer Edit: https://github.com/CollapseLauncher/Collapse/blob/edeccdc04a0fff1039ac60da65861b27fba9b08b/CollapseLauncher/XAMLs/MainApp/Pages/Dialogs/InstallationConvert.xaml.cs#L298

  • [ ] Localize official community links

    • This is not needed for community-made tools, but at least doing it for Official ones would be better.

3. Suggestions

  • [x] [MAIN] Allow having a leading zero on the playtime counter
    • In some languages like French, people are generally writing leading zeros in certain areas like time or date, but it more specifically applies only for minutes and seconds for the latter.
    • For example, instead of writing "1d 2h 6m 4s", some people would write "1j 2h 06m 04s"

Also, I'm wondering how we can deal with the updated localization. I think I'll probably need to submit all modified strings to Transifex as I read that it's not that simple to update a bunch of lines from one shot.

In all case, I put the file here if someone want's to see what the localization looks before being put in a future update : fr_FR.json


That's it for me.

Kiki79250CoC avatar Mar 01 '24 12:03 Kiki79250CoC

Hi, it's me again (yes...)

I'm still improving and refining the localization and I found another megaton of things that can be improved/fixed (this issue thread is going to be very long, shame at me)

I think at the end we'll need to have a whole "to-do list" because there's so much things that it would be better to follow what is addressed/fixed or not.

I put the updated locale file if some people still want to try it out: Outdated link I also put another version of the file that include lines added in PR #416 & #417, also for testing: Outdated link


I. MOAR™ localization issues I noticed

  • [ ] 1. [GAME-REPAIR] [CACHE-UPDATE] · String is too long

    • In my case, I fixed that issue by getting rid of the second part of the string as it's not technically possible to truncate it to fit in one or other window mode.
    • Before:
    • Bug01
    • After:
    • Bug01_Fix™
  • [X] 2. [APP-SETTINGS] · This.

    • I updated the Copyright year for the French localization, I think all other languages need to do the same because we're in 2024 from 2 months now.

II. Other missing localization abilities

  • [x] [GAME-REPAIR] [CACHE-UPDATE] · Element type but different

    • This one is a bit bastard as it's the element name that displays while the repair/update action is running.
    • I say this one is "a bit bastard" because it cannot directly use the same localization lines that the previous point, especially because in this case, it would be incorrect.
      • For example in French:
        • "Downloading Event" → "Téléchargement évènement" is not correct, as a particle (de l') is required: "Téléchargement de l'évènement"
        • "Downloading Video" → "Téléchargement vidéo" is not correct, as a particle (de la) is required: "Téléchargement de la vidéo"
    • miss03
  • [ ] 2. [GENERAL] · Punctuation signs should take account locale particularities like non-breaking spaces

    • Some languages like French (at least the one written in France, I know that Québec have quite different rules) have non-breaking spaces around some punctuation signs such as !, ?, :, ;, «, » and %.
    • The idea is just to add a separate field in language files
      • For example something called PunctuationColumn which stores : in it, and every languages can apply their particularities around that punctuation sign. In that case French can add their non-breaking space ( :)
    • miss02
    • image

III. Other things

  • [ ] 1. [GAME-REPAIR] [CACHE-UPDATE] · Longs strings during repair should be cut out with ellipsis

    • Example 1: This string in I.-1.
    • As you can notice the string does not fit on the width and does it by getting cut instead of being stopped by an ellipsis.
    • Example 2:
    • image
    • This string is not long enough on big window mode, but can be cut the same way if you use small window mode.
  • [ ] 2. [Popups?] · Text is in justified in some dialogs, which can mess up the bullets alignment

    • Yep this is a last-minute addition
    • image

IV. Unrelated stuff that doesn't really worth opening a new bug report

  • [x] 1. [APP-SETTINGS] · Incorrect default value

    • In the popup about download/extraction threads, the default value mentioned for Download threads is 8, but I noticed this isn't the true default value as when I installed Collapse on my VM, the value I got is 4.
    • image
  • [x] 2. [GENERAL] · Reduce button... ?

    • Minimize

That's all for now.

If I found more things i will put them on a new reply, and then a recap would be made because that list starts to get very long haha!

Kiki79250CoC avatar Mar 04 '24 13:03 Kiki79250CoC

2.2. Missing ability to localize some strings

[HI3-SETTINGS] Graphics Presets

Since this one is tied into a separate JSON, it will not be easily localizable. Though, since the feature is being deprecated, we can probably dismiss this

The "Byte" (B) unit can technically be localized (for example "octet" (o) in French and Romanian).

After discussion with neon, this string came from Windows SDK itself. While its technically do-able per-se. It will be quite difficult and might incur some additional resource usage to replace all the strings at runtime

Localize official community links

Currently not possible due to the values tied into the JSON and tied into game region Ref https://github.com/CollapseLauncher/Collapse/blob/main/CollapseLauncher/Assets/Presets/CommunityTools.json


II.1. [GAME-REPAIR] [CACHE-UPDATE] · Element type

Repair element type here will not be localized because it comes from the game data itself. To avoid debugging confusion later, we probably not gonna change the behavior.

IV.2. [GENERAL] · Reduce button... ?

This one is separate issue, please make another ticket to avoid the issue being buried

bagusnl avatar Mar 05 '24 16:03 bagusnl

Also, I'm wondering how we can deal with the updated localization. I think I'll probably need to submit all modified strings to Transifex as I read that it's not that simple to update a bunch of lines from one shot.

You can upload your translated file using this window. You can access it by pressing View Resource instead of Translate then select the "Main branch" resource image

bagusnl avatar Mar 05 '24 16:03 bagusnl

You can upload your translated file using this window. You can access it by pressing View Resource instead of Translate then select the "Main branch" resource

OK I uploaded the file, I think the rest of the procedure is on your side. The revised localization updates 342 strings and also includes new ones from all PR (including the shortcuts one but they're probably not applied since the PR hasn't been merged yet)

From the UI I can't confirm they're going to be applied, so I'll start from the belief they will be. But in any case if they aren't, you have the last updated file here:

fr_FR.json Last updated: March 14, 2024 · 16:50 (UTC+1) · Added strings (PR #422 & #428 )


For the other issues like the reduce button i'll create the issue

Also for the Byte unit thing, you say that it comes from the Windows SDK. It's somewhat weird a general SDK like this one cannot provide localized strings. But here again I tagged it as "optional" from the beginning because I was already aware a such weird thing can probably happen, so I'll not go mad if this isn't possible, it's just my perfectionist side (sorry).

Last thing: I give my permission if you want to clear out entries that won't be addressed/fixed from the list, in order to keep it understandable among the things that will be.

Kiki79250CoC avatar Mar 05 '24 23:03 Kiki79250CoC

  1. [GENERAL] · Reduce button... ?

~~Known issue and failed to fix it. Just ignore it :D~~

Edit: @Kiki79250CoC Fixed in commit b759949.

shatyuka avatar Mar 06 '24 12:03 shatyuka

OK I uploaded the file, I think the rest of the procedure is on your side. The revised localization updates 342 strings and also includes new ones from all PR (including the shortcuts one but they're probably not applied since the PR hasn't been merged yet)

For French localization, I'll let @Cryotechnic verify and review all the strings on Transifex

bagusnl avatar Mar 07 '24 09:03 bagusnl

Hi @Kiki79250CoC.

We have done some adjustment regarding to some localization and overflowed text in the latest commit.

Artifact to test: https://github.com/CollapseLauncher/Collapse/actions/runs/8223399322/artifacts/1313019532

As the progress goes on, some implementation might cannot be done due to some backward compatibility with other languages a bit tricky to get implemented.

The "Byte" (B) unit can technically be localized (for example "octet" (o) in French and Romanian).

1 GB → 1 Go 37 MB/s → 37 Mo/s

For this, we have added a new entry to the localization called: SizePrefixes1000U. This entry consist of multiple Size Suffixes separated by | character. You can define the Size Suffixes like this example:

B|KB|MB|GB|TB|PB|EB|ZB|YB

Also, the entry is now available on Transifex to get translated.

neon-nyan avatar Mar 11 '24 05:03 neon-nyan

Hi!

We have done some adjustment regarding to some localization and overflowed text in the latest commit.

As I keep an eye on the issue, I was already testing it and noticing the changes when you posted your reply! I can already notice some great improvements, which is fine for the usability in general, which is (ngl) one of the main objectives of this issue report.

As the progress goes on, some implementation might cannot be done due to some backward compatibility with other languages a bit tricky to get implemented.

As I also have some projects on my side, I totally understand that, and we can agree on one thing: localization in general is always a huge pain in software development.

That's probably why I abandoned all efforts of making my projets completely localized apart from just having English and my native language (French). The first one because it's universal, and the latter because why not, and as French is somewhat close to English, it requires little to no language-specific adaptations.

[...] we have added a new entry to the localization called: SizePrefixes1000U. This entry consist of multiple Size Suffixes separated by | character. You can define the Size Suffixes like this example:

B|KB|MB|GB|TB|PB|EB|ZB|YB

Also, the entry is now available on Transifex to get translated.

Thanks for this addition. After bagusnl's message, I was more in a mindset of "this idea is definitely scrapped", but to my surprise, you did it, and I thank you for that sweet attention to details I wasn't really expected to see coming anymore.

image This can definitely ends as a funny sentence to torture out tongue haha! Okomogotopoeozoyo!


For the Transifex case, I will put the new strings on the board, and will wait for Cryo to approve the 350 other updated strings I've done on that revision. In the meantime, I'll continue to tweak strings and update the json file in my previous comment for anyone who wants to test out how the revised localization is supposed to look like when used in the software. The last revision includes the additions you've done in the commit and some little tweaking for better readability (and to satisfy my perfectionist "ThisSoftwareShouldHaveProfessionalLikeLocalization"-type impulses lol).

~~

Kiki79250CoC avatar Mar 11 '24 06:03 Kiki79250CoC

For the Transifex case, I will put the new strings on the board, and will wait for Cryo to approve the 350 other updated strings I've done on that revision. In the meantime, I'll continue to tweak strings and update the json file in my previous comment for anyone who wants to test out how the revised localization is supposed to look like when used in the software. The last revision includes the additions you've done in the commit and some little tweaking for better readability (and to satisfy my perfectionist "ThisSoftwareShouldHaveProfessionalLikeLocalization"-type impulses lol).

Heyo, just letting you know that your file was uploaded and I'll be reviewing the translations hopefully tomorrow. Assuming everything goes well, the next time Transifex syncs, your strings will be included as part of that process. I'll update this post whenever this is done, though the review process may take a bit of time because of IRL responsibilities.

Thanks again for contributing and helping to make Collapse accessible to a broader audience!

Cryotechnic avatar Mar 11 '24 07:03 Cryotechnic

Thanks again for contributing and helping to make Collapse accessible to a broader audience!

Oh, that's nothing. Really.

Btw @Cryotechnic, I performed a final checkup of the file to fix last quirks and to replace standard spaces with non-breaking spaces for punctuation signs and a new sync will be needed before reviewing the strings. This is the last "big" update for that file i'll perform outside of Transifex, so you can consider the last revision (from 3/11 9:37PM) as "gold", subsequent edits will be done directly on Transifex.

If you have some questions during the reviewing towards some strings changes and textual choices I made, feel free to ask them here, I will answer them.

Kiki79250CoC avatar Mar 11 '24 20:03 Kiki79250CoC

@Kiki79250CoC OK, hopefully all the approved strings today will match what you have sent me. I've downloaded the file in your previous reply and reviewed them on Transifex. You'll be able to check 3748429 to see the changes, which will hopefully ship in the next minor release.

Sorry for taking so long to approve the strings, IRL stuff keeps popping up.

Cryotechnic avatar Mar 25 '24 18:03 Cryotechnic

OK, hopefully all the approved strings today will match what you have sent me. I've downloaded the file in your previous reply and reviewed them on Transifex. You'll be able to check 3748429 to see the changes, which will hopefully ship in the next minor release.

I quickly checked the commit, and everything seems to be present (including the fix for the "forgotten one"). I'll wait the next release patiently to finally no longer having to manually replace the file to get the finalized revision job on my side.

Sorry for taking so long to approve the strings, IRL stuff keeps popping up.

No problem, everyone have their priorities. I also have to thank you for the attention you ported to this localization revision/rework, you and the others. Alone my efforts would probably be vain, so you also deserve a part of the credit.


The final step is fully on your side, to fix the last quirks that remains to do in the list, and finally close this issue. Take your time, the amount of work you allow to Collapse is huge and should be rewarded by the strongest respect.

~~

image

Collapse using the finalized localization, and the fr-FR.json file I worked on on the right side of the desktop.

Kiki79250CoC avatar Mar 25 '24 20:03 Kiki79250CoC

Next version is scheduled as of annpuncement in Discord, somewhere after HSR 2.1 is live

bagusnl avatar Mar 25 '24 20:03 bagusnl

Hi, it's me again

I found one more quirk that deserve a quick look for a potential fix that still have something to do with localization. I precise that it still occurs on the latest "artifact" auto-built binary.

Tested artifact: From Commit 1d047da on April 4, 2024 @ 11:23 (GMT)


  • [x] 1. The Systray icon bubble text is truncated, and does not render the end of the string
    • I suppose this is a character limit on the bubble or a word wrap that goes wrong.
    • image
    • image

Fixed as of 983d1b403d29db29bff50cb83e935fa977a40720


Also @Cryotechnic, when you will approve the strings I will add once #434 will be merged (those are already translated and ready to be added into Transifex once available), I did some tweaks to fix some typos & reformulate some strings. All of them are in the suggestions (don't worry, there's not 300 edits so it should be fine).

Kiki79250CoC avatar Apr 05 '24 22:04 Kiki79250CoC

  1. The Systray icon bubble text is truncated, and does not render the end of the string

about this, im not sure if it is MS or NotifyIcon (Tray Icon dependency) issue, but I'd have to remove some of the string, probably both the version and the branch indicator to make sure all language can fit on that

bagusnl avatar Apr 05 '24 22:04 bagusnl

  1. The Systray icon bubble text is truncated, and does not render the end of the string

about this, im not sure if it is MS or NotifyIcon (Tray Icon dependency) issue, but I'd have to remove some of the string, probably both the version and the branch indicator to make sure all language can fit on that

After searching on MS documentation, it seems to be an arbitrary limitation image

Kiki79250CoC avatar Apr 05 '24 22:04 Kiki79250CoC