Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

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

Open
17 of 19 tasks
Kiki79250CoC opened this issue Mar 1, 2024 · 16 comments
Open
17 of 19 tasks
Assignees
Labels
Area: Translation Issue labeled for Translation that need to be working on Area: UI/UX Issue labeled for User Interface/eXperience related issue Enhancement New feature or request

Comments

@Kiki79250CoC
Copy link

Kiki79250CoC commented Mar 1, 2024

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

  • [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

  • [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
  • [MAIN] No news text width
    image
  • [MAIN] Quick Settings elements needs wrapping
    image
  • [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
  • [APP-SETTINGS] Discord buttons
  • [APP-SETTINGS] File management buttons
  • [APP-SETTINGS] Keyboard shortcuts infos
    • Fixed in my case by \r\n'd the string.
      image
  • [GLOBAL] Update popup
    • I already fixed it on my side by truncate the text on both sections.
1.73.4 Revised localization
image image
  • [HI3-SETTINGS] Voice over language
    image
  • [GLOBAL] Loading regions can sometimes output non-localized strings
b1-CLbug.mp4

2.2. Missing ability to localize some strings

  • [HI3-SETTINGS] Graphics Presets No longer applicable as of 1.73.5
    • image
  • [APP-SETTINGS] "MIT License"
    • Example: "Licence MIT" for French
  • [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

  • 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
  • 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:

    string FileName = string.Format("Cookbook_{0}_{1}_{2}_*_crc32.diff", SourceProfile.ProfileName, TargetProfile.ProfileName, GameVersion);

  • 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

  • [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 Kiki79250CoC added the Enhancement New feature or request label Mar 1, 2024
@neon-nyan neon-nyan added Area: Translation Issue labeled for Translation that need to be working on Area: UI/UX Issue labeled for User Interface/eXperience related issue labels Mar 1, 2024
@neon-nyan neon-nyan self-assigned this Mar 2, 2024
@Kiki79250CoC
Copy link
Author

Kiki79250CoC commented Mar 4, 2024

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™
  • 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

  • [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

  • 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
  • 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!

@bagusnl
Copy link
Member

bagusnl commented Mar 5, 2024

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
Copy link
Member

bagusnl commented Mar 5, 2024

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

@Kiki79250CoC
Copy link
Author

Kiki79250CoC commented Mar 5, 2024

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.

@shatyuka
Copy link
Contributor

shatyuka commented Mar 6, 2024

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

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

Edit:
@Kiki79250CoC Fixed in commit b759949.

@bagusnl
Copy link
Member

bagusnl commented Mar 7, 2024

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

neon-nyan added a commit that referenced this issue Mar 10, 2024
@neon-nyan
Copy link
Member

neon-nyan commented Mar 11, 2024

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.

@Kiki79250CoC
Copy link
Author

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).

~~

@Cryotechnic
Copy link
Collaborator

Cryotechnic commented Mar 11, 2024

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!

@Kiki79250CoC
Copy link
Author

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.

@Cryotechnic
Copy link
Collaborator

@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.

@Kiki79250CoC
Copy link
Author

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.

@bagusnl
Copy link
Member

bagusnl commented Mar 25, 2024

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

@Kiki79250CoC
Copy link
Author

Kiki79250CoC commented Apr 5, 2024

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)


  • 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 983d1b4


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).

@bagusnl
Copy link
Member

bagusnl commented Apr 5, 2024

  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

@Kiki79250CoC
Copy link
Author

  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

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Area: Translation Issue labeled for Translation that need to be working on Area: UI/UX Issue labeled for User Interface/eXperience related issue Enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

5 participants