generated from knso/webklar-preview-template
App: Sprachen von 9 auf 27 erweitert + RTL-Darstellung repariert
Neue Zielsprachen fuer die groessten Sprachgemeinschaften in Deutschland, u. a. Kurdisch (Kurmanci), Bulgarisch, Kroatisch/Serbisch/Bosnisch, Albanisch, Italienisch, Griechisch, Spanisch, Vietnamesisch, Hindi, Urdu, Paschtu, Tigrinya, Somali, Chinesisch. Liste nach Groesse der Gemeinschaft in Deutschland sortiert. Ausserdem: Sprache bekommt ein rtl-Flag. Arabisch und Farsi wurden bisher linksbuendig dargestellt, was bei diesen Schriften falsch ist — jetzt laufen Kernaussage, Erklaerung, To-dos und Fachbegriff-Erklaerungen bei ar/fa/ur/ps von rechts nach links (der deutsche Fachbegriff bleibt links). Neuer Test sprachen.test.ts schuetzt vor doppelten Codes (die wuerden den Uebersetzungs-Cache ueberschreiben). 35 Tests gruen. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
1 parent
8dc9074691
commit
464e9b109f
3 files changed
+77
-10
No files matched your search
@@ -0,0 +1,37 @@
|
||||
/**
|
||||
* Schützt die Sprachliste vor stillen Fehlern. Besonders wichtig: doppelte
|
||||
* Codes — Übersetzungen werden pro Code gecacht (brief.uebersetzungen[code]),
|
||||
* zwei gleiche Codes würden sich gegenseitig überschreiben.
|
||||
*/
|
||||
import { SPRACHEN } from '../../types';
|
||||
|
||||
describe('SPRACHEN', () => {
|
||||
it('hat keine doppelten Sprachcodes', () => {
|
||||
const codes = SPRACHEN.map((s) => s.code);
|
||||
expect(new Set(codes).size).toBe(codes.length);
|
||||
});
|
||||
|
||||
it('enthält kein Deutsch (das ist die Ausgangssprache, nicht Zielsprache)', () => {
|
||||
expect(SPRACHEN.some((s) => s.code === 'de')).toBe(false);
|
||||
});
|
||||
|
||||
it('hat für jede Sprache Code, Name und Eigenname', () => {
|
||||
for (const s of SPRACHEN) {
|
||||
expect(s.code).toMatch(/^[a-z]{2,3}$/);
|
||||
expect(s.name.trim().length).toBeGreaterThan(0);
|
||||
expect(s.eigenname.trim().length).toBeGreaterThan(0);
|
||||
}
|
||||
});
|
||||
|
||||
it('markiert genau die Rechts-nach-links-Sprachen', () => {
|
||||
const rtl = SPRACHEN.filter((s) => s.rtl).map((s) => s.code).sort();
|
||||
expect(rtl).toEqual(['ar', 'fa', 'ps', 'ur']);
|
||||
});
|
||||
|
||||
it('bietet die für Deutschland wichtigsten Sprachen an', () => {
|
||||
const codes = SPRACHEN.map((s) => s.code);
|
||||
for (const pflicht of ['tr', 'ar', 'ru', 'uk', 'pl', 'ro', 'en', 'fa']) {
|
||||
expect(codes).toContain(pflicht);
|
||||
}
|
||||
});
|
||||
});
|
||||
Reference in new issue
Block a user