From 8547bf6ef4deeb0c97f7b855fac9715a89afa321 Mon Sep 17 00:00:00 2001 From: MarioYellowy Date: Wed, 11 Mar 2026 01:37:38 -0600 Subject: [PATCH 1/7] feat(i18n): add keys for 404 error page --- src/i18n/keys/en.keys.ts | 5 ++++- src/i18n/keys/es.keys.ts | 5 ++++- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/src/i18n/keys/en.keys.ts b/src/i18n/keys/en.keys.ts index c99a3f8..17cbed3 100644 --- a/src/i18n/keys/en.keys.ts +++ b/src/i18n/keys/en.keys.ts @@ -289,8 +289,11 @@ export const en_keys = { // 404 Page "404.title": "404 — Page not found", + "404.title_description": "OOPS! We had a memory leak", + "404.c_reference": "Just kidding, we aren't C", + "404.problem": "But we did have a problem finding this page", "404.image_alt": "404 - Page not found", - "404.back_home": "Home", + "404.back_home": "Back to home", // Login Page "login.title": "Sign in — RustLings", diff --git a/src/i18n/keys/es.keys.ts b/src/i18n/keys/es.keys.ts index 6c9b644..7070e6c 100644 --- a/src/i18n/keys/es.keys.ts +++ b/src/i18n/keys/es.keys.ts @@ -296,8 +296,11 @@ export const es_keys = { // 404 Page "404.title": "404 — Página no encontrada", + "404.title_description": "OOPS! Tuvimos un fallo de memoria", + "404.c_reference": "Es broma, no somos C", + "404.problem": "Pero sí tuvimos un problema en encontrar esta página", "404.image_alt": "404 - Página no encontrada", - "404.back_home": "Inicio", + "404.back_home": "Regresar a inicio", // Login Page "login.title": "Iniciar sesión — RustLings", From 2f9335e107021182e37702032be9ceb3245c1bbd Mon Sep 17 00:00:00 2001 From: MarioYellowy Date: Wed, 11 Mar 2026 01:39:56 -0600 Subject: [PATCH 2/7] fix(validation): change validations orders for 404 error page --- src/pages/[lang]/[slug].astro | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/src/pages/[lang]/[slug].astro b/src/pages/[lang]/[slug].astro index ae2cb8d..7df4651 100644 --- a/src/pages/[lang]/[slug].astro +++ b/src/pages/[lang]/[slug].astro @@ -15,11 +15,6 @@ import IconGripVertical from "~icons/tabler/grip-vertical" import IconTerminal from "~icons/tabler/terminal-2" const { lang, slug } = Astro.params - -if (!Astro.locals.user) { - return Astro.redirect(`/${lang}/login`) -} - const lessons = getLessonsByLang(lang ?? "es") const lessonIndex = lessons.findIndex((l) => l.meta.slug === slug) @@ -27,6 +22,10 @@ if (lessonIndex === -1) { return Astro.redirect(`/${lang}/404`) } +if (!Astro.locals.user) { + return Astro.redirect(`/${lang}/login`) +} + const lesson = lessons[lessonIndex] const previousLesson = lessons[lessonIndex - 1] const nextLesson = lessons[lessonIndex + 1] From 2358d7afe28123ada74af75e9a5c7f55d7f88642 Mon Sep 17 00:00:00 2001 From: MarioYellowy Date: Wed, 11 Mar 2026 01:41:48 -0600 Subject: [PATCH 3/7] feat(404): add 404 error page with i18n --- src/pages/404.astro | 30 ------------------ src/pages/[lang]/404.astro | 62 ++++++++++++++++++++++++++++++++++++++ 2 files changed, 62 insertions(+), 30 deletions(-) delete mode 100644 src/pages/404.astro create mode 100644 src/pages/[lang]/404.astro diff --git a/src/pages/404.astro b/src/pages/404.astro deleted file mode 100644 index fa9f3be..0000000 --- a/src/pages/404.astro +++ /dev/null @@ -1,30 +0,0 @@ ---- -import { getLangFromUrl, useTranslations } from "~/i18n/utils" -import Layout from "~/layouts/Layout.astro" -import IconLeft from "~icons/tabler/arrow-big-left-lines-filled" - -export const prerender = true - -const lang = getLangFromUrl(Astro.url) -const t = useTranslations(lang) ---- - - -
- - - - - {t("404.back_home")} - -
-
diff --git a/src/pages/[lang]/404.astro b/src/pages/[lang]/404.astro new file mode 100644 index 0000000..8669db0 --- /dev/null +++ b/src/pages/[lang]/404.astro @@ -0,0 +1,62 @@ +--- +import { getLangFromUrl, useTranslations } from "~/i18n/utils" +import Layout from "~/layouts/Layout.astro" +import IconLeft from "~icons/tabler/arrow-big-left-lines-filled" + +export { getStaticPaths } from "./index.astro" + +export const prerender = true + +const lang = getLangFromUrl(Astro.url) +const t = useTranslations(lang) +--- + + +
+ +
+
+ +
+ +
+
+ + {t("404.image_alt")} + +
+ +
+

+ 404 _ +

+ +

+ {t("404.title_description")} +

+ +
+

{t("404.c_reference")}

+

+ // {t("404.problem")} +

+
+
+ + + + {t("404.back_home")} + +
+ +
+
+
\ No newline at end of file From 32a92713e0447f72af671fdcfc3edbdac208ad01 Mon Sep 17 00:00:00 2001 From: MarioYellowy Date: Wed, 11 Mar 2026 01:43:51 -0600 Subject: [PATCH 4/7] feat(login): implement back to home btn on login --- src/pages/[lang]/login.astro | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/src/pages/[lang]/login.astro b/src/pages/[lang]/login.astro index 570f2e1..96499bc 100644 --- a/src/pages/[lang]/login.astro +++ b/src/pages/[lang]/login.astro @@ -2,6 +2,7 @@ import { getLangFromUrl, useTranslations } from "~/i18n/utils" import Layout from "~/layouts/Layout.astro" import JamGithub from "~icons/jam/github" +import IconLeft from "~icons/tabler/arrow-big-left-lines-filled" if (Astro.locals.user) { return Astro.redirect(`/${getLangFromUrl(Astro.url)}/aprender`) @@ -19,8 +20,13 @@ const errorMessages: Record = { --- -
-
+
+ + {t("404.back_home")} + +
From c18cfe506bf6b711d9358e38153a8f16dbd39cac Mon Sep 17 00:00:00 2001 From: ArturoAtomplay <64356325+ArturoAtomplay@users.noreply.github.com> Date: Wed, 11 Mar 2026 17:41:27 -0600 Subject: [PATCH 5/7] feat(aprender): enhance layout and styling for track cards --- src/pages/[lang]/aprender.astro | 91 +++++++++++++++++---------------- 1 file changed, 46 insertions(+), 45 deletions(-) diff --git a/src/pages/[lang]/aprender.astro b/src/pages/[lang]/aprender.astro index 5688371..cfd12c0 100644 --- a/src/pages/[lang]/aprender.astro +++ b/src/pages/[lang]/aprender.astro @@ -3,11 +3,9 @@ import { tracks } from "~/const/tracks" import Navbar from "~/features/content/components/Navbar.astro" import { getLangFromUrl, useTranslations } from "~/i18n/utils" import Layout from "~/layouts/Layout.astro" -import IconRight from "~icons/tabler/arrow-big-right-lines-filled" const lang = getLangFromUrl(Astro.url) const t = useTranslations(lang) -const user = Astro.locals.user --- -
- -
-

{t("learn.main_title")}

-

{t("learn.subtitle")}

+
+
+

{t("learn.main_title")}

+

{t("learn.subtitle")}

-
-
+
{tracks.map(track => ( track.disabled ? ( -
-
- - {t(track.badge)} - - - {t("learn.coming_soon")} - -
- -
- Rustlings +
+
+ Rustlings
+ +
+
+ {t(track.title)} +
+ + {t(track.badge)} + + + {t("learn.coming_soon")} + +
+
-
- {t(track.title)} -

{t(track.description)}

- {track.lessons} {t("learn.lessons")} +

{t(track.description)}

+ {track.lessons} {t("learn.lessons")}
) : ( @@ -55,40 +53,43 @@ const user = Astro.locals.user data-track-href={`/${lang}${track.href}`} data-track-lang={lang} data-track-slugs={JSON.stringify(track.slugs)} - class="group relative flex gap-3 sm:gap-6 items-start bg-light-bg border border-stroke-color rounded-2xl p-4 sm:p-6 hover:border-yellow transition-all duration-200 cursor-pointer" + class="group flex flex-col sm:flex-row gap-4 sm:gap-5 items-start bg-light-bg border border-stroke-color rounded-2xl p-4 sm:p-5 hover:border-yellow hover:shadow-lg hover:shadow-yellow/5 transition-all duration-300 cursor-pointer" > - - {t(track.badge)} - - -
- Rustlings +
+ Rustlings
-
- - {t(track.title)} - -

{t(track.description)}

+
+
+ + {t(track.title)} + +
+ + {t(track.badge)} + +
+
+ +

{t(track.description)}

- - - -
) ))} From cc32ff90dc7524be60e0c193c5b182ce1a7fe0ec Mon Sep 17 00:00:00 2001 From: Chiwa <74442646+gg0074x@users.noreply.github.com> Date: Thu, 12 Mar 2026 01:09:05 -0300 Subject: [PATCH 6/7] Clean up whitespace in login.astro Removed unnecessary whitespace around GitHub OAuth link. --- src/pages/[lang]/login.astro | 2 -- 1 file changed, 2 deletions(-) diff --git a/src/pages/[lang]/login.astro b/src/pages/[lang]/login.astro index 96499bc..0df7cf3 100644 --- a/src/pages/[lang]/login.astro +++ b/src/pages/[lang]/login.astro @@ -149,7 +149,6 @@ const errorMessages: Record = { --> - = { {t("login.github_button")} -
From 47904d4f26742ef8278f89b95205ae01be3744fe Mon Sep 17 00:00:00 2001 From: Chiwa <74442646+gg0074x@users.noreply.github.com> Date: Thu, 12 Mar 2026 01:15:58 -0300 Subject: [PATCH 7/7] test --- src/pages/[lang]/login.astro | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/pages/[lang]/login.astro b/src/pages/[lang]/login.astro index 0df7cf3..d7d878f 100644 --- a/src/pages/[lang]/login.astro +++ b/src/pages/[lang]/login.astro @@ -149,6 +149,7 @@ const errorMessages: Record = { --> + = { {t("login.github_button")} +