From afe40c9ef8db97d854d027be6b9a4e2b40ee31b2 Mon Sep 17 00:00:00 2001 From: Max Richter Date: Thu, 30 Nov 2023 15:50:44 +0100 Subject: [PATCH] feat: improve translations --- messages/de.json | 2 +- messages/en.json | 2 +- messages/it.json | 52 +++++++++++++++++++++++++++++ project.inlang.json | 3 +- src/lib/components/Questions.svelte | 2 +- src/routes/+layout.server.ts | 27 --------------- src/routes/+layout.svelte | 45 +++++++++++++++++++++++++ 7 files changed, 102 insertions(+), 31 deletions(-) create mode 100644 messages/it.json diff --git a/messages/de.json b/messages/de.json index 6171b10..ecdaecb 100644 --- a/messages/de.json +++ b/messages/de.json @@ -8,7 +8,7 @@ "wantAlternativePersonality": "Möchtet Ihr, dass wir eine alternative Persönlichkeit für Euch erschaffen?", "wantNobleName": "Möchtet Ihr einen würdigen Adelsnamen für Euch in Erwägung ziehen?", "yourNobleName": "Euer Adelsname", - "nobleName":"Adelstitel", + "nobleName": "Adelstitel", "name": "Name", "titleTooLong": "Wir bitten um Entschuldigung, aber dieser Titel ist zu lang. (maximal 100 Zeichen)", "hundredChars": "/100 Zeichen", diff --git a/messages/en.json b/messages/en.json index dfc5e1f..a93ed44 100644 --- a/messages/en.json +++ b/messages/en.json @@ -8,7 +8,7 @@ "wantAlternativePersonality": "Would you like us to create an alternative personality for you?", "wantNobleName": "Would you like to consider a worthy noble name for yourself?", "yourNobleName": "Your noble name", - "nobleName":"Noble Title", + "nobleName": "Noble Title", "name": "Surname", "titleTooLong": "We apologize, but this title is too long. (maximum 100 characters)", "hundredChars": "/100 characters", diff --git a/messages/it.json b/messages/it.json new file mode 100644 index 0000000..923fa6e --- /dev/null +++ b/messages/it.json @@ -0,0 +1,52 @@ +{ + "$schema": "https://inlang.com/schema/inlang-message-format", + "invite": "Vi invitiamo cordialmente a partecipare alla nostra esclusiva festa di Capodanno, che quest'anno si svolgerà nella magica atmosfera di un ballo in maschera. Immergiti in una notte piena di mistero, eleganza e splendore festoso.", + "welcome": "Benvenuti al ballo in maschera", + "acceptInvite": "Accettare l'invito", + "nameTooLong": "Ci scusiamo, ma questo nome è troppo lungo. (massimo 100 caratteri)", + "createNameWith": "Disegneremo {name} con", + "wantAlternativePersonality": "Vorresti che creassimo una personalità alternativa per te?", + "wantNobleName": "Ti piacerebbe prendere in considerazione un degno nome nobile per te stesso?", + "yourNobleName": "Il tuo nobile nome", + "nobleName": "Titolo nobiliare", + "name": "Cognome", + "titleTooLong": "Ci scusiamo, ma il titolo è troppo lungo. (massimo 100 caratteri)", + "hundredChars": "/100 caratteri", + "accept": "accettare", + "newSuggestions": "nuovi suggerimenti", + "titleSuggestions": "Suggerimenti per nomi nobili", + "shouldCreatePortrait": "I nostri artisti di talento dovrebbero creare un tuo ritratto maestoso?", + "skinVeryBright": "molto più luminoso", + "skinBright": "più luminoso", + "skinMedium": "medio", + "skinDark": "più scuro", + "skinVeryDark": "molto più scuro", + "skinAnd": "pelle e", + "hairTypeStraight": "Dritto", + "hairTypeCurly": "riccio", + "hairTypeWavy": "ondulato", + "hairLengthLong": "lungo", + "hairLengthMedium": "medio-lungo", + "hairLengthShort": "corto", + "hairColorRed": "rosso", + "hairColorBlack": "nero", + "hairColorBlond": "biondo", + "hairColorBrown": "marrone", + "hairDrawing": "capelli", + "paintPortrait": "ritratto dipinto (~15 secondi)", + "portraitIsBeingDrawn": "Il tuo nobile volto sarà dipinto", + "acceptPortrait": "Accetta il ritratto", + "requestNewPortrait": "Richiedi un nuovo ritratto", + "invitationIsBeingSend": "L'invito è stato inviato", + "sendInvitation": "Spedire un invito", + "guestGallery": "Galleria degli ospiti", + "howSureAppearing": "Quanto possiamo essere sicuri del tuo aspetto brillante?", + "howName": "Quali sono i tuoi nomi e cognomi, nobile ospite?", + "saveName": "Salva nome", + "notAtAll": "Affatto", + "very": "molto", + "yes": "sì", + "no": "no", + "alreadyHaveOne": "Ne ho già uno", + "nobleTitlesAreWritten": "I nomi nobili sono scritti" +} diff --git a/project.inlang.json b/project.inlang.json index f476817..73f55cd 100644 --- a/project.inlang.json +++ b/project.inlang.json @@ -3,7 +3,8 @@ "sourceLanguageTag": "de", "languageTags": [ "en", - "de" + "de", + "it" ], "modules": [ "https://cdn.jsdelivr.net/npm/@inlang/message-lint-rule-empty-pattern@latest/dist/index.js", diff --git a/src/lib/components/Questions.svelte b/src/lib/components/Questions.svelte index 9d7f0de..5abae90 100644 --- a/src/lib/components/Questions.svelte +++ b/src/lib/components/Questions.svelte @@ -106,7 +106,7 @@
- + {#if $data.name.length > 99}

diff --git a/src/routes/+layout.server.ts b/src/routes/+layout.server.ts index baaab23..e69de29 100644 --- a/src/routes/+layout.server.ts +++ b/src/routes/+layout.server.ts @@ -1,27 +0,0 @@ -import type { LayoutServerLoad } from "./$types"; -import { availableLanguageTags } from "$paraglide/runtime"; -import { redirect } from "@sveltejs/kit"; - -type AvailableLanguages = typeof availableLanguageTags[number]; - -export const load: LayoutServerLoad = function ({ request, cookies }) { - - const url = new URL(request.url); - let language = cookies.get("lang") as unknown as AvailableLanguages; - const acceptLanguage = request.headers.get('accept-language')?.split(",")?.[0]?.split("-")?.[0] as AvailableLanguages; - - if (!language || !availableLanguageTags.includes(language)) { - if (availableLanguageTags.includes(acceptLanguage)) { - language = acceptLanguage; - cookies.set("lang", language); - } else { - language = "de" - } - } - - if (!url.pathname.startsWith("/" + language) && language !== "de") { - throw redirect(302, `/${language}/${url.pathname}`.replaceAll("//", "/")) - } - - return -} diff --git a/src/routes/+layout.svelte b/src/routes/+layout.svelte index 1cd0e93..1ace451 100644 --- a/src/routes/+layout.svelte +++ b/src/routes/+layout.svelte @@ -1,8 +1,53 @@ + + + {#each Object.entries(languages) as [key, value]} + setLanguageTag(key)} class:active={key === lang}>{value} + {/each} + + +