From f86da0ee23666d49c1e23d0af94ae677e848536f Mon Sep 17 00:00:00 2001 From: Dillon Fagan Date: Thu, 12 Jan 2023 08:01:05 -0500 Subject: [PATCH 01/14] Add translations.ts --- src/lib/translations.ts | 10 ++++++++++ 1 file changed, 10 insertions(+) create mode 100644 src/lib/translations.ts diff --git a/src/lib/translations.ts b/src/lib/translations.ts new file mode 100644 index 0000000..c558eca --- /dev/null +++ b/src/lib/translations.ts @@ -0,0 +1,10 @@ +export default { + english: { + "Button.Home": "Home", + "Button.Donate": "Donate", + "Button.WishList": "Wish List", + "Input.Search": "Search...", + "Thing.Tags.Available": "Available" + }, + spanish: {} +} \ No newline at end of file From 2ea662fd6cb37f9efd6aec686b3599ebfd404749 Mon Sep 17 00:00:00 2001 From: Dillon Fagan Date: Thu, 12 Jan 2023 08:12:05 -0500 Subject: [PATCH 02/14] Add translate.ts --- src/lib/language/translate.ts | 31 ++++++++++++++++++++++++++ src/lib/{ => language}/translations.ts | 0 2 files changed, 31 insertions(+) create mode 100644 src/lib/language/translate.ts rename src/lib/{ => language}/translations.ts (100%) diff --git a/src/lib/language/translate.ts b/src/lib/language/translate.ts new file mode 100644 index 0000000..1e78e19 --- /dev/null +++ b/src/lib/language/translate.ts @@ -0,0 +1,31 @@ +// Code unapologetically copied from: https://dev.to/danawoodman/svelte-quick-tip-adding-basic-internationalization-i18n-to-you-app-2lm + +import { derived, writable } from "svelte/store"; +import translations from "./translations"; + +export const locale = writable("en"); +export const locales = Object.keys(translations); + +function translate(locale, key, vars) { + // Let's throw some errors if we're trying to use keys/locales that don't exist. + // We could improve this by using Typescript and/or fallback values. + if (!key) throw new Error("no key provided to $t()"); + if (!locale) throw new Error(`no translation for key "${key}"`); + + // Grab the translation from the translations object. + let text = translations[locale][key]; + + if (!text) throw new Error(`no translation found for ${locale}.${key}`); + + // Replace any passed in variables in the translation string. + Object.keys(vars).map((k) => { + const regex = new RegExp(`{{${k}}}`, "g"); + text = text.replace(regex, vars[k]); + }); + + return text; +} + +export const t = derived(locale, ($locale) => (key, vars = {}) => + translate($locale, key, vars) +); \ No newline at end of file diff --git a/src/lib/translations.ts b/src/lib/language/translations.ts similarity index 100% rename from src/lib/translations.ts rename to src/lib/language/translations.ts From 20ff0833561dafb20b39cd587d3b372f9ffb9cfd Mon Sep 17 00:00:00 2001 From: Chris Milkaitis Date: Thu, 12 Jan 2023 08:59:23 -0500 Subject: [PATCH 03/14] Add en translations to static text --- src/lib/language/translations.ts | 7 ++++--- src/lib/layout/Footer.svelte | 3 ++- src/lib/layout/Header.svelte | 6 +++++- src/lib/things/Thing.svelte | 5 +++-- src/routes/+page.svelte | 7 ++++--- 5 files changed, 18 insertions(+), 10 deletions(-) diff --git a/src/lib/language/translations.ts b/src/lib/language/translations.ts index c558eca..427d97a 100644 --- a/src/lib/language/translations.ts +++ b/src/lib/language/translations.ts @@ -1,10 +1,11 @@ export default { - english: { + en: { "Button.Home": "Home", "Button.Donate": "Donate", "Button.WishList": "Wish List", "Input.Search": "Search...", - "Thing.Tags.Available": "Available" + "Thing.Tags.Available": "Available", + "A project by": "A project by" }, - spanish: {} + es: {} } \ No newline at end of file diff --git a/src/lib/layout/Footer.svelte b/src/lib/layout/Footer.svelte index 40ed9ec..a9b528e 100644 --- a/src/lib/layout/Footer.svelte +++ b/src/lib/layout/Footer.svelte @@ -1,5 +1,6 @@
@@ -42,7 +43,7 @@ - A project by Starboard Co-op + {$t("A project by")} Starboard Co-op
\ No newline at end of file diff --git a/src/lib/layout/Header.svelte b/src/lib/layout/Header.svelte index 5132870..d036fc2 100644 --- a/src/lib/layout/Header.svelte +++ b/src/lib/layout/Header.svelte @@ -1,3 +1,7 @@ + +
@@ -7,7 +11,7 @@ -
HOME
+
{$t("Button.Home")}
diff --git a/src/lib/things/Thing.svelte b/src/lib/things/Thing.svelte index e3ba325..9f88107 100644 --- a/src/lib/things/Thing.svelte +++ b/src/lib/things/Thing.svelte @@ -1,5 +1,6 @@
@@ -20,7 +20,16 @@ PVD Things -
+
+ {#each locales as localeKey} + + {/each} +

PVD Things

\ No newline at end of file From cf7cd12231ec4383c753bcf2c3b0b2c7d60b4955 Mon Sep 17 00:00:00 2001 From: Dillon Fagan Date: Wed, 18 Jan 2023 21:59:35 -0500 Subject: [PATCH 06/14] refactor: select first category as default --- src/routes/+page.svelte | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/routes/+page.svelte b/src/routes/+page.svelte index e5df1ea..060bdcd 100644 --- a/src/routes/+page.svelte +++ b/src/routes/+page.svelte @@ -13,7 +13,7 @@ export let data; let shownThings = data.things; - let shownCategory = "DIY"; + let shownCategory = data.categories[0]; let searchText = ""; let showingOnlyWishList = false; From 533b175be62caeb3491b22efaf2c51e688dda600 Mon Sep 17 00:00:00 2001 From: Dillon Fagan Date: Wed, 18 Jan 2023 22:32:30 -0500 Subject: [PATCH 07/14] Add 'No Results' indicator --- src/lib/language/translations.ts | 6 ++++-- src/routes/+page.svelte | 6 +++++- 2 files changed, 9 insertions(+), 3 deletions(-) diff --git a/src/lib/language/translations.ts b/src/lib/language/translations.ts index 826bb56..5da1d2c 100644 --- a/src/lib/language/translations.ts +++ b/src/lib/language/translations.ts @@ -6,7 +6,8 @@ export default { "Chooser.CategoryPrompt": "Choose a category:", "Input.Search": "Search...", "Thing.Tags.Available": "Available", - "A project by": "A project by" + "A project by": "A project by", + "No Results": "No Results" }, es: { "Button.Home": "Inicio", @@ -15,6 +16,7 @@ export default { "Chooser.CategoryPrompt": "Elija una categoría:", "Input.Search": "Buscar...", "Thing.Tags.Available": "Disponible", - "A project by": "Un proyecto de" + "A project by": "Un proyecto de", + "No Results": "No hay resultados" } } \ No newline at end of file diff --git a/src/routes/+page.svelte b/src/routes/+page.svelte index 060bdcd..f81e4e4 100644 --- a/src/routes/+page.svelte +++ b/src/routes/+page.svelte @@ -64,7 +64,11 @@ />
- + {#if shownThings.length > 0} + + {:else} +
{$t("No Results")}
+ {/if}
{/if} \ No newline at end of file From f74061622eb700914fc24a17e5b0136c2eb7d450 Mon Sep 17 00:00:00 2001 From: Dillon Fagan Date: Tue, 10 Jan 2023 19:06:40 -0500 Subject: [PATCH 08/14] Fix thing card aspect ratio --- src/lib/Foundation.svelte | 1 - src/lib/foundation/Card.svelte | 10 ++-------- src/lib/foundation/Image.svelte | 9 --------- src/lib/things/Thing.svelte | 4 ++-- 4 files changed, 4 insertions(+), 20 deletions(-) delete mode 100644 src/lib/foundation/Image.svelte diff --git a/src/lib/Foundation.svelte b/src/lib/Foundation.svelte index a0f0d9a..fc6cac9 100644 --- a/src/lib/Foundation.svelte +++ b/src/lib/Foundation.svelte @@ -2,7 +2,6 @@ export { default as Button } from "./foundation/Button.svelte"; export { default as Card } from "./foundation/Card.svelte"; export { default as Column } from "./foundation/Column.svelte"; - export { default as Image } from "./foundation/Image.svelte"; export { default as Link } from "./foundation/Link.svelte"; export { default as Row } from "./foundation/Row.svelte"; export { default as Text } from "./foundation/Text.svelte"; diff --git a/src/lib/foundation/Card.svelte b/src/lib/foundation/Card.svelte index b4670b5..f047573 100644 --- a/src/lib/foundation/Card.svelte +++ b/src/lib/foundation/Card.svelte @@ -1,9 +1,3 @@ - - -
-
- -
+
+
\ No newline at end of file diff --git a/src/lib/foundation/Image.svelte b/src/lib/foundation/Image.svelte deleted file mode 100644 index ca0e19f..0000000 --- a/src/lib/foundation/Image.svelte +++ /dev/null @@ -1,9 +0,0 @@ - - - \ No newline at end of file diff --git a/src/lib/things/Thing.svelte b/src/lib/things/Thing.svelte index 9f88107..af5195b 100644 --- a/src/lib/things/Thing.svelte +++ b/src/lib/things/Thing.svelte @@ -1,5 +1,5 @@