Umlaute statt Umschreibungen

Oberflaeche, Fehlermeldungen und Kommentare schrieben durchgehend ae, oe, ue
und ss. Dafuer gab es keinen Grund - die Anwendung ist deutschsprachig und
laeuft durchgehend in UTF-8.

Betroffen waren 55 Dateien, darunter alle sichtbaren Texte: Guthaben-Zaehler,
Import, Nutzerverwaltung, Passwortwechsel und die Zwei-Faktor-Einrichtung.

Der Name einer Migration bleibt im README-Beispiel bewusst bei ASCII, weil
daraus ein Verzeichnisname wird.
This commit is contained in:
2026-09-18 16:57:39 +02:00
parent b9364151b0
commit 724f68644b
49 changed files with 256 additions and 254 deletions
+12 -12
View File
@@ -81,7 +81,7 @@ describe('Anmeldung', () => {
assert.equal(response.statusCode, 401);
});
it('verraet nicht, ob es den Benutzernamen gibt', async () => {
it('verrät nicht, ob es den Benutzernamen gibt', async () => {
const unknownUser = await app.inject({
method: 'POST',
url: '/api/auth/login',
@@ -97,7 +97,7 @@ describe('Anmeldung', () => {
assert.equal(unknownUser.json().message, wrongPassword.json().message);
});
it('laesst ein gesperrtes Konto nicht herein', async () => {
it('lässt ein gesperrtes Konto nicht herein', async () => {
const response = await app.inject({
method: 'POST',
url: '/api/auth/login',
@@ -129,7 +129,7 @@ describe('CSRF-Schutz', () => {
assert.equal(response.json().error, 'FORBIDDEN');
});
it('blockt einen gefaelschten Token', async () => {
it('blockt einen gefälschten Token', async () => {
const credentials = await login('team');
const response = await app.inject({
@@ -142,7 +142,7 @@ describe('CSRF-Schutz', () => {
assert.equal(response.statusCode, 403);
});
it('laesst die Anfrage mit passendem Token durch', async () => {
it('lässt die Anfrage mit passendem Token durch', async () => {
const credentials = await login('team');
const response = await app.inject({
@@ -155,7 +155,7 @@ describe('CSRF-Schutz', () => {
assert.equal(response.statusCode, 201);
});
it('laesst lesende Anfragen ohne Token zu', async () => {
it('lässt lesende Anfragen ohne Token zu', async () => {
const credentials = await login('gast');
const response = await app.inject({
@@ -227,7 +227,7 @@ describe('Erstpasswort', () => {
method: 'POST',
url: '/api/players',
headers: authHeaders(credentials),
payload: { displayName: 'Zu frueh' },
payload: { displayName: 'Zu früh' },
});
assert.equal(response.statusCode, 403);
@@ -251,8 +251,8 @@ describe('Erstpasswort', () => {
});
});
describe('Guthaben ueber die API', () => {
it('ein CC-Paket schlaegt in beiden Toepfen auf', async () => {
describe('Guthaben über die API', () => {
it('ein CC-Paket schlägt in beiden Töpfen auf', async () => {
const credentials = await login('team');
const created = await app.inject({
@@ -287,11 +287,11 @@ describe('Guthaben ueber die API', () => {
});
});
describe('Auslieferung der Oberflaeche', () => {
describe('Auslieferung der Oberfläche', () => {
// Diese Header sind der Grund, warum ein Update beim Nutzer ankommt. Wird die
// index.html cachebar ausgeliefert, sieht er nach einem Deploy weiter die
// alte Oberflaeche - ohne dass irgendwo ein Fehler auftaucht.
it('laesst die index.html nicht zwischenspeichern', async () => {
// alte Oberfläche - ohne dass irgendwo ein Fehler auftaucht.
it('lässt die index.html nicht zwischenspeichern', async () => {
const response = await app.inject({ method: 'GET', url: '/' });
assert.equal(response.statusCode, 200);
@@ -309,7 +309,7 @@ describe('Auslieferung der Oberflaeche', () => {
assert.match(response.headers['cache-control'] as string, /no-cache/);
});
it('laesst gehashte Assets lange liegen', async () => {
it('lässt gehashte Assets lange liegen', async () => {
const page = await app.inject({ method: 'GET', url: '/' });
const asset = /\/assets\/[^"]+\.js/.exec(page.body)?.[0];
assert.ok(asset, 'die Seite verweist auf ein Asset');