From ff827560f64ab78a004c4294b04455ad40f93080 Mon Sep 17 00:00:00 2001 From: jycouet Date: Thu, 11 Dec 2025 20:59:03 +0100 Subject: [PATCH 1/3] add failing tests --- .../create-with-all-addons/project.inlang/.gitignore | 1 + .../create-with-all-addons/src/routes/+layout.svelte | 12 ++++++++++++ 2 files changed, 13 insertions(+) create mode 100644 packages/sv/lib/cli/tests/snapshots/create-with-all-addons/project.inlang/.gitignore diff --git a/packages/sv/lib/cli/tests/snapshots/create-with-all-addons/project.inlang/.gitignore b/packages/sv/lib/cli/tests/snapshots/create-with-all-addons/project.inlang/.gitignore new file mode 100644 index 00000000..e934adfd --- /dev/null +++ b/packages/sv/lib/cli/tests/snapshots/create-with-all-addons/project.inlang/.gitignore @@ -0,0 +1 @@ +cache/ diff --git a/packages/sv/lib/cli/tests/snapshots/create-with-all-addons/src/routes/+layout.svelte b/packages/sv/lib/cli/tests/snapshots/create-with-all-addons/src/routes/+layout.svelte index 0d8eb030..1e3c2f01 100644 --- a/packages/sv/lib/cli/tests/snapshots/create-with-all-addons/src/routes/+layout.svelte +++ b/packages/sv/lib/cli/tests/snapshots/create-with-all-addons/src/routes/+layout.svelte @@ -1,4 +1,6 @@ + {@render children()} +
+ {#each locales as locale} + + {locale} + + {/each} +
From f202e42167524aff4aa4988fbca6ae070643b6f5 Mon Sep 17 00:00:00 2001 From: jycouet Date: Thu, 11 Dec 2025 20:59:06 +0100 Subject: [PATCH 2/3] implem --- packages/sv/lib/addons/paraglide/index.ts | 57 ++++++++++++++++------- 1 file changed, 40 insertions(+), 17 deletions(-) diff --git a/packages/sv/lib/addons/paraglide/index.ts b/packages/sv/lib/addons/paraglide/index.ts index 70e659d6..2a3102b3 100644 --- a/packages/sv/lib/addons/paraglide/index.ts +++ b/packages/sv/lib/addons/paraglide/index.ts @@ -70,23 +70,6 @@ export default defineAddon({ sv.devDependency('@inlang/paraglide-js', '^2.6.0'); - sv.file('project.inlang/settings.json', (content) => { - if (content) return content; - - const { data, generateCode } = parseJson(content); - - for (const key in DEFAULT_INLANG_PROJECT) { - data[key] = DEFAULT_INLANG_PROJECT[key as keyof typeof DEFAULT_INLANG_PROJECT]; - } - const { validLanguageTags } = parseLanguageTagInput(options.languageTags); - const baseLocale = validLanguageTags[0]; - - data.baseLocale = baseLocale; - data.locales = validLanguageTags; - - return generateCode(); - }); - // add the vite plugin sv.file(files.viteConfig, (content) => { const { ast, generateCode } = parseScript(content); @@ -183,6 +166,46 @@ export default defineAddon({ return content; }); + sv.file('project.inlang/settings.json', (content) => { + if (content) return content; + + const { data, generateCode } = parseJson(content); + + for (const key in DEFAULT_INLANG_PROJECT) { + data[key] = DEFAULT_INLANG_PROJECT[key as keyof typeof DEFAULT_INLANG_PROJECT]; + } + const { validLanguageTags } = parseLanguageTagInput(options.languageTags); + const baseLocale = validLanguageTags[0]; + + data.baseLocale = baseLocale; + data.locales = validLanguageTags; + + return generateCode(); + }); + + sv.file('project.inlang/.gitignore', (content) => { + if (content) return content; + return `cache/`; + }); + + sv.file(`${kit.routesDirectory}/+layout.svelte`, (content) => { + const { ast, generateCode } = parseSvelte(content); + const scriptAst = svelte.ensureScript(ast); + imports.addNamed(scriptAst, { + imports: ['locales', 'localizeHref'], + from: '$lib/paraglide/runtime' + }); + imports.addNamed(scriptAst, { imports: ['page'], from: '$app/state' }); + ast.fragment.nodes.push( + ...svelte.toFragment(`
+ {#each locales as locale} + {locale} + {/each} +
`) + ); + return generateCode(); + }); + if (options.demo) { sv.file(`${kit.routesDirectory}/demo/+page.svelte`, (content) => { return addToDemoPage(content, 'paraglide', typescript); From 52d48f2b2fa8ed7f519e0b2f9ebce37a5629825f Mon Sep 17 00:00:00 2001 From: jycouet Date: Thu, 11 Dec 2025 21:10:18 +0100 Subject: [PATCH 3/3] changeset --- .changeset/lovely-onions-boil.md | 5 +++++ .changeset/thick-vans-smash.md | 5 +++++ packages/sv/lib/addons/paraglide/index.ts | 7 +------ .../cli/tests/snapshots/create-with-all-addons/.gitignore | 1 + .../create-with-all-addons/project.inlang/.gitignore | 1 - 5 files changed, 12 insertions(+), 7 deletions(-) create mode 100644 .changeset/lovely-onions-boil.md create mode 100644 .changeset/thick-vans-smash.md delete mode 100644 packages/sv/lib/cli/tests/snapshots/create-with-all-addons/project.inlang/.gitignore diff --git a/.changeset/lovely-onions-boil.md b/.changeset/lovely-onions-boil.md new file mode 100644 index 00000000..ba839211 --- /dev/null +++ b/.changeset/lovely-onions-boil.md @@ -0,0 +1,5 @@ +--- +'sv': patch +--- + +fix(paraglide): git ignore cache of inlang project diff --git a/.changeset/thick-vans-smash.md b/.changeset/thick-vans-smash.md new file mode 100644 index 00000000..5bd69bd5 --- /dev/null +++ b/.changeset/thick-vans-smash.md @@ -0,0 +1,5 @@ +--- +'sv': patch +--- + +fix(paraglide): multi language when prerendering is now working by default diff --git a/packages/sv/lib/addons/paraglide/index.ts b/packages/sv/lib/addons/paraglide/index.ts index 2a3102b3..a37784dc 100644 --- a/packages/sv/lib/addons/paraglide/index.ts +++ b/packages/sv/lib/addons/paraglide/index.ts @@ -161,7 +161,7 @@ export default defineAddon({ if (!content) return content; if (!content.includes(`\n${paraglideOutDir}`)) { - content = content.trimEnd() + `\n\n# Paraglide\n${paraglideOutDir}`; + content = content.trimEnd() + `\n\n# Paraglide\n${paraglideOutDir}\nproject.inlang/cache/`; } return content; }); @@ -183,11 +183,6 @@ export default defineAddon({ return generateCode(); }); - sv.file('project.inlang/.gitignore', (content) => { - if (content) return content; - return `cache/`; - }); - sv.file(`${kit.routesDirectory}/+layout.svelte`, (content) => { const { ast, generateCode } = parseSvelte(content); const scriptAst = svelte.ensureScript(ast); diff --git a/packages/sv/lib/cli/tests/snapshots/create-with-all-addons/.gitignore b/packages/sv/lib/cli/tests/snapshots/create-with-all-addons/.gitignore index 4a4252ab..9175665b 100644 --- a/packages/sv/lib/cli/tests/snapshots/create-with-all-addons/.gitignore +++ b/packages/sv/lib/cli/tests/snapshots/create-with-all-addons/.gitignore @@ -25,6 +25,7 @@ vite.config.ts.timestamp-* # Paraglide src/lib/paraglide +project.inlang/cache/ # SQLite *.db diff --git a/packages/sv/lib/cli/tests/snapshots/create-with-all-addons/project.inlang/.gitignore b/packages/sv/lib/cli/tests/snapshots/create-with-all-addons/project.inlang/.gitignore deleted file mode 100644 index e934adfd..00000000 --- a/packages/sv/lib/cli/tests/snapshots/create-with-all-addons/project.inlang/.gitignore +++ /dev/null @@ -1 +0,0 @@ -cache/