mirror of
https://github.com/bookorbit/bookorbit.git
synced 2026-11-03 00:11:37 -06:00
fix(client): remove Hungarian and Korean locales
Both catalogs held nothing but English fallback values, so selecting either language produced a fully English interface that reads as broken rather than untranslated. Crowdin Translate covers only 24 languages and includes neither, so neither locale had any machine translation route, and no human translations existed yet. Drop them from the shared locale list, the Crowdin export configuration, the pull request allowlist, the catalogs, and the tests, leaving fifteen target languages. Remove both from the Crowdin project as well, after confirming each export was byte-identical to the English source so no translation work was discarded. Re-adding either is cheap once a translation route exists, whether that is a machine translation engine that supports them or a volunteer translator. Give the locale tests the same fallback semantics the application runs with. Production always loads the English catalog and points `fallbackLocale` at it, so a key a target catalog does not carry renders English. The test instances omitted both, which resolves a missing key to its own name, and several assertions compared a translated label against the English one without checking that the language actually translates that key. Both patterns pass only while every catalog is complete, and would fail confusingly the first time a language lags behind a new key. Delete the Crowdin service branch automatically once its pull request closes or merges. Crowdin appends every export to the same branch and never rebases it, so a branch that outlives its pull request keeps its original merge base and each later export diverges further from main until every catalog conflicts. Deleting it forces Crowdin to recreate the branch from the current main. Ref #576
This commit is contained in:
@@ -13,9 +13,7 @@ BookOrbit uses Vue I18n catalogs under `client/src/locales/`. English is the sou
|
||||
| Spanish | `es-ES` | `es.json` |
|
||||
| Finnish | `fi` | `fi.json` |
|
||||
| French | `fr` | `fr.json` |
|
||||
| Hungarian | `hu` | `hu.json` |
|
||||
| Italian | `it` | `it.json` |
|
||||
| Korean | `ko` | `ko.json` |
|
||||
| Dutch | `nl` | `nl.json` |
|
||||
| Polish | `pl` | `pl.json` |
|
||||
| Brazilian Portuguese | `pt-BR` | `pt.json` |
|
||||
@@ -89,9 +87,11 @@ After an English source change reaches `main`:
|
||||
2. Translators update target strings in Crowdin.
|
||||
3. Crowdin exports the target catalogs to `l10n_main`.
|
||||
4. Crowdin opens a pull request to `main`.
|
||||
5. CI verifies that the pull request changes only the seventeen target catalogs and runs the normal client checks.
|
||||
5. CI verifies that the pull request changes only the fifteen target catalogs and runs the normal client checks.
|
||||
6. A maintainer reviews and squash-merges the pull request.
|
||||
7. The `l10n_main` service branch is deleted. Crowdin recreates it for the next export.
|
||||
7. The `.github/workflows/crowdin-branch-cleanup.yml` workflow deletes the `l10n_main` service branch. Crowdin recreates it from the current `main` for the next export.
|
||||
|
||||
Deleting that branch is required, not tidiness. Crowdin appends every export to the same service branch and never rebases it, so a branch that outlives its pull request keeps its original merge base. Each later export then diverges further from `main` and eventually conflicts on every catalog. The workflow runs when a pull request from `l10n_main` is closed as well as merged, because Crowdin reuses the branch either way.
|
||||
|
||||
Crowdin pull requests must retain the configured `i18n(client)` title and commit format. The `i18n` commit type produces a patch release and an Internationalization release-note section. Crowdin's default `[ci skip]` commit suffix is disabled so pull-request validation runs before merge.
|
||||
|
||||
|
||||
Reference in New Issue
Block a user