Skip to content

[ci] CI-l10n doesn't cover the translation changes on the same fluent id (FUZZY) #692

@YuevUwU

Description

@YuevUwU

502a2d8 made a good tool to check l10n (by cargo test -- --nocapture)
but there is still some exceptions

For example

Multi Exporting Status

1156c38

-multi-exporting = Exporting
+multi-exporting = Exporting ({ $current } / { $total })

TOS UX Changes (v0.5.0 -> v0.5.1 -> v0.6.3)

The following translated strings varied depending on the operating way of TOS at the time.
Fortunately, this only involves supplementary information, and the subsequent description is reasonably reasonable.
However, if other UI operation instructions change but the previous instructions are not retained, it will confuse players.

Details

v0.5.0: 7a7427b

+tos-and-policy-desc = You must read and agree to our Terms of Service and Privacy Policy before using Phira online services provided by TeamFlos.

Interaction: You should click TOS and Privacy Policy one time individually

Terms of Service and Privacy Policy

You must read and agree to our Terms of Service and Privacy Policy before using Phira online services provided by TeamFlos.

[Cancel] [Terms of Service] [Privacy Policy]

v0.5.1: 4d4a003

-tos-and-policy-desc = You must read and agree to our Terms of Service and Privacy Policy before using Phira online services provided by TeamFlos.
+tos-and-policy-desc = You must read (by clicking here) and agree to our Terms of Service and Privacy Policy before using Phira online services provided by TeamFlos.

Interaction: Click [Accept] will jump to TOS webpage. I think at that time, we have written "In addition to TOS, you also need to ensure that you accept our privacy policy."

Terms of Service and Privacy

You must read (by clicking here) and agree to our Terms of Service and Privacy Policy before using Phira online services provided by TeamFlos.

[   Deny   ]  [   Accept   ]

v0.6.3: 93256c0

-tos-and-policy-desc = You must read (by clicking here) and agree to our Terms of Service and Privacy Policy before using Phira online services provided by TeamFlos.
+tos-and-policy-desc = You must read and agree to our Terms of Service and Privacy Policy before using Phira online services provided by TeamFlos.

Interaction: Click "Next" multiple times until all the page is read.

Terms of Service and Privacy Policy

You must read and agree to our Terms of Service and Privacy Policy before using Phira online services provided by TeamFlos.

1 Term of User
...

[   Deny   ]  [   Next   ]

#410 Refactor en-US Translation (v0.6.7)

en-US is the fallback language if missing, and also many translator refer to its changes.
If the proposed translation method changes, especially broadens (player don't need to care inner detailed implementationn),
it could lead to a situation where, after a UI update, current translations don't need modification,
but older translations have already silently become mismatched

Fluent v.s Gettext

Obviously, we don't have the "fuzzy" marking in Fluent.
Fuzzy attribute in Gettext will tell me the source text has been changed, and then
use source language to keep the consistent meaning if you don't confirms it.

We want to know

  • What different translations appeared in the commit history?
    • Is this difference insignificant?
  • Which revision did the translator likely base their work on?
    • Is it possible to trace back from the Merged Commit to the very first root commit (fork) of the translation?
    • If someone force-push to re-base, can we still know the root?
  • How can I store strings that have had fuzzy characters removed by the translator?

Implementation Selection

I think only by going through all the Git logs can this be done.
However, if we use Git to search our repo
for robustness, we must introduce a maintained crate to keep it consistent with the new Git interface,
instead of directly running git and parsing stdout, as both diff and human-readable formats may change.

Of course, learn git itself more is also needed.

Wonder if you would agree to adding a crate for this?

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions