mirror of
https://github.com/immich-app/immich
synced 2025-11-14 17:36:12 +00:00
fix(web): translations (#10021)
This commit is contained in:
parent
f2148ddf03
commit
c8f2d994c6
16 changed files with 73 additions and 36 deletions
36
web/src/lib/i18n.spec.ts
Normal file
36
web/src/lib/i18n.spec.ts
Normal file
|
|
@ -0,0 +1,36 @@
|
|||
import messages from '$lib/i18n/en.json';
|
||||
import { exec as execCallback } from 'node:child_process';
|
||||
import { promisify } from 'node:util';
|
||||
import { init } from 'svelte-i18n';
|
||||
|
||||
type Messages = { [key: string]: string | Messages };
|
||||
|
||||
const exec = promisify(execCallback);
|
||||
|
||||
function setEmptyMessages(messages: Messages) {
|
||||
const copy = { ...messages };
|
||||
|
||||
for (const key in copy) {
|
||||
const message = copy[key];
|
||||
if (typeof message === 'string') {
|
||||
copy[key] = '';
|
||||
} else if (typeof message === 'object') {
|
||||
setEmptyMessages(message);
|
||||
}
|
||||
}
|
||||
|
||||
return copy;
|
||||
}
|
||||
|
||||
describe('i18n', () => {
|
||||
beforeEach(() => init({ fallbackLocale: 'dev' }));
|
||||
|
||||
test('no missing messages', async () => {
|
||||
const { stdout } = await exec('npx svelte-i18n extract -c svelte.config.js "src/**/*"');
|
||||
const extractedMessages: Messages = JSON.parse(stdout);
|
||||
const existingMessages = setEmptyMessages(messages);
|
||||
|
||||
// Only translations directly using the store seem to get extracted
|
||||
expect({ ...extractedMessages, ...existingMessages }).toEqual(existingMessages);
|
||||
});
|
||||
});
|
||||
Loading…
Add table
Add a link
Reference in a new issue