i18n: decide the localization approach before extracting UI strings
I maintainer di solito rispondono entro 1 giorno
Nessuno ha ancora preso questa issue.
Valutazione
- Difficoltà
- 5/5
- Tempo stimato
- Più di una settimana
- Idoneità per principianti
- 35/100
- Tipo di issue
- Funzionalità
- Chiarezza
- Specificata chiaramente
- Stato di attività
- Attiva
- Stack tecnologico
- csharp
- Ambito
- desktop, documentation, internationalization
Direzione di ricerca
Read the existing placeholder-string precedent in src/LageBuch.Persistence/MasterData/MasterDataSet.cs:163 and inspect the German literals in src/ and the 23 .axaml files. Compare the listed localization mechanisms, scope, fallback, translator workflow, and migration options; the issue does not specify an implementation choice. Done means recording the decision in docs/ or this issue and converting one view end to end as a reference.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
The org profile says applications "can be translated into other languages". The
code cannot, yet. There is no localization infrastructure at all:
- zero
.resxfiles undersrc/ - no
ILocalizer, no localization service, no string keys inDynamicResource - German sits as literal
Text="…"andContent="…"in 23.axamlfiles, and
in German string literals inside view models and domain code
The one partial precedent is AnonymizedExampleData in
src/LageBuch.Persistence/MasterData/MasterDataSet.cs:163, which centralizes
placeholder strings as constants and is bound from XAML with {x:Static md:…}.
Ten view files already use it.
Why this is a design issue and not a chore
It is tempting to start extracting literals into constant classes view by view,
and that is exactly the trap. Constants are not translatable. Doing the
extraction first means doing it twice, and the second pass has to touch every
file the first one did.
So: decide the approach, then extract. That is why this issue exists and why the
per-view extraction tasks are not filed yet.
What needs deciding
- Mechanism.
.resxwith the standard .NETResourceManager, an Avalonia
DynamicResourcebased scheme so the language can change without a restart,
or a third-party library. Each has a different story for XAML binding, for
designer support, and for how a translator supplies a file. - Scope. UI strings only, or also the German wording that reaches the PDF
report and the ETB entries. The domain layer currently produces German text
directly, for exampleFormattingandCoMeasurementLabels. Some of that is
arguably domain vocabulary rather than UI copy. - Fallback and default. German stays the default. What happens for a missing
key in another language. - Translator workflow. A plain file in the repo, or a platform such as
Weblate. This decides whether a non-developer can contribute a translation,
which is the whole point. - Migration order. Which view goes first as the proof of concept.
Output
A short design note in docs/, or a decision recorded in this issue, plus one
view converted end to end as the reference implementation. The remaining views
then become genuine good-first-issues that all follow the same pattern.
Opinions from anyone who has localized an Avalonia app are very welcome.
New here?
Comment to claim this issue and it is yours. If no pull request appears within
seven days it goes back in the pool, no hard feelings.
Before you open the PR, please skim CONTRIBUTING.md:
commits need DCO sign-off (git commit -s) and a Conventional Commit subject.
Changes under src/ additionally need an entry under ## [Unreleased] in
CHANGELOG.md — CI fails the PR otherwise.
Questions are welcome right here or in
Discussions.
- Lingua principale
- C#
- Stelle
- 1
- Fork
- 3
- Merge medio
- 4h 15m
- PR unite (30g)
- 181
Preparare l'ambiente
- Nessun Dockerfile né file Docker Compose
- Ha un modello di pull request
- Leggi la guida per i contributori
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Altre issue di CodeForFire/lagebuch
-
Stammdaten: in the Checkliste editor the PFLICHT header is not aligned with its columnForse già presa @Saad-elnagar l’ha presa 2 giorni fa. Apertabug ux
Difficoltà 2/5 1-3 ore Idoneità per principianti 78/100
CodeForFire/lagebuch#714 · 1 commento ·
I maintainer di solito rispondono entro 1 giorno
-
Stammdaten: on a phone the Fahrzeuge editor squeezes Wache and Funkrufname to nothingForse già presa @Saad-elnagar l’ha presa 2 giorni fa. Apertabug ux
Difficoltà 2/5 1-3 ore Idoneità per principianti 75/100
CodeForFire/lagebuch#713 · 1 commento ·
I maintainer di solito rispondono entro 1 giorno
-
enhancement
Difficoltà 2/5 1-3 ore Idoneità per principianti 62/100
CodeForFire/lagebuch#405 ·
I maintainer di solito rispondono entro 1 giorno
-
documentation good first issue
Difficoltà 2/5 1-3 ore Idoneità per principianti 88/100
CodeForFire/lagebuch#349 ·
I maintainer di solito rispondono entro 1 giorno
-
documentation good first issue
Difficoltà 2/5 1-3 ore Idoneità per principianti 88/100
CodeForFire/lagebuch#348 ·
I maintainer di solito rispondono entro 1 giorno
Tutte le issue di CodeForFire/lagebuch
Issue simili
-
dev/release: verify-release-candidate.sh runs 0 Java tests with Debian's MavenForse già presa @kou l’ha presa oggi. ApertaType: bug
Difficoltà 2/5 1-3 ore Idoneità per principianti 72/100
apache/arrow-adbc#4947 ·
I maintainer di solito rispondono entro 1 giorno
-
:watch: Not Triaged CAC
Difficoltà 2/5 1-3 ore Idoneità per principianti 78/100
dotnet/AspNetCore.Docs#38001 ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 76/100
Nimblesite/SharpLsp#468 ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 88/100
elastic/ecs-dotnet#575 ·
-
alerts bug effort:S P2
Difficoltà 2/5 1-3 ore Idoneità per principianti 76/100
nightscout/nocturne#2511 ·
I maintainer di solito rispondono entro 1 giorno