diff --git a/src/components/LanguageSwitcher.astro b/src/components/LanguageSwitcher.astro index aa88010..330af24 100644 --- a/src/components/LanguageSwitcher.astro +++ b/src/components/LanguageSwitcher.astro @@ -1,5 +1,9 @@ --- import { getLocalizedPathname, LANGUAGES } from "../i18n/utils"; +const flags = { + en: "🇬🇧", + fr: "🇫🇷", +} as const; interface Props { lang: string; } @@ -10,9 +14,7 @@ const otherLangs = Object.keys(LANGUAGES).filter((l) => l !== lang);
{ otherLangs.map((l) => ( - - {l.toUpperCase()} - + {flags[l]} )) }
diff --git a/src/content/config.ts b/src/content/config.ts index d9603b9..5437b13 100644 --- a/src/content/config.ts +++ b/src/content/config.ts @@ -10,9 +10,17 @@ const blog = defineCollection({ updatedDate: z.coerce.date().optional(), heroImage: z.string().optional(), heroGif: z.string().optional(), + slug: z.string().optional(), lang: z.string(), isVisible: z.boolean().default(false), }), + slug: ({ id, data }) => + data.slug ?? + id + .split("/") + .pop() + ?.replace(/\.mdx?$/, "") + ?.replace(/\.fr$/, "") ?? id, }); const projects = defineCollection({ @@ -25,9 +33,17 @@ const projects = defineCollection({ updatedDate: z.coerce.date().optional(), heroImage: z.string().optional(), heroGif: z.string().optional(), + slug: z.string().optional(), lang: z.string(), isVisible: z.boolean().default(false), }), + slug: ({ id, data }) => + data.slug ?? + id + .split("/") + .pop() + ?.replace(/\.mdx?$/, "") + ?.replace(/\.fr$/, "") ?? id, }); export const collections = { diff --git a/src/content/projects/NBodySimulation.fr.md b/src/content/projects/NBodySimulation.fr.md index 895977e..ad3488a 100644 --- a/src/content/projects/NBodySimulation.fr.md +++ b/src/content/projects/NBodySimulation.fr.md @@ -237,4 +237,3 @@ Une piste d'amélioration aurait été d'exploiter la symétrie de la force grav #### Tolérance aux pannes Grâce à l'implémentation C++ d'OpenMPI, il était possible de définir une gestion des erreurs avec `MPI_Comm_set_errhandler` pour lever une `MPI::Exception` en cas de défaillance. Cela aurait permis d'identifier un nœud inactif, de l'exclure puis de relancer l'étape précédente. Cette solution n'a pas été mise en œuvre par manque de temps. - diff --git a/src/content/projects/Steganography.fr.md b/src/content/projects/Steganography.fr.md index 881b1f2..aa035f7 100644 --- a/src/content/projects/Steganography.fr.md +++ b/src/content/projects/Steganography.fr.md @@ -184,16 +184,16 @@ remybarranco@MacBook-Pro-de-Remy Projet-Algo % **Benchmark pour 100 itérations :** -| Taille des données | Opération | Temps (s) | -| ---------------------------------- | --------- | --------- | -| 10 caractères (512×512) | Encodage | 1.520 | -| | Décodage | 0.020 | -| 100 caractères (512×512) | Encodage | 1.360 | -| | Décodage | 0.020 | -| 10 caractères (5184×3456) | Encodage | 1.920 | -| | Décodage | 0.020 | -| 100 caractères (5184×3456) | Encodage | 1.820 | -| | Décodage | 0.020 | +| Taille des données | Opération | Temps (s) | +| -------------------------- | --------- | --------- | +| 10 caractères (512×512) | Encodage | 1.520 | +| | Décodage | 0.020 | +| 100 caractères (512×512) | Encodage | 1.360 | +| | Décodage | 0.020 | +| 10 caractères (5184×3456) | Encodage | 1.920 | +| | Décodage | 0.020 | +| 100 caractères (5184×3456) | Encodage | 1.820 | +| | Décodage | 0.020 | _Tableau 1.1 : temps d'encodage et de décodage selon la taille des données_ diff --git a/src/i18n/ui.ts b/src/i18n/ui.ts index 1b635d7..0258125 100644 --- a/src/i18n/ui.ts +++ b/src/i18n/ui.ts @@ -109,34 +109,4 @@ export const ui = { "about.server.title": "Informations serveur", "about.server.text": "Ce site est hébergé sur pulseheberg et la dernière mise à jour réussie date du {0}.", }, - es: { - "site.title": "Astro Blog", - "site.description": "Bienvenido a mi sitio web!", - "nav.home": "Inicio", - "nav.about": "Quien soy", - "home.welcome": "Bienvenido a mi sitio web", - "about.title": "Sobre mi", - "about.description": "Soy un desarrollador web y me encanta Astro!", - "about.text": `Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut - labore et dolore magna aliqua. Vitae ultricies leo integer malesuada nunc vel risus commodo - viverra. Adipiscing enim eu turpis egestas pretium. Euismod elementum nisi quis eleifend quam - adipiscing. In hac habitasse platea dictumst vestibulum. Sagittis purus sit amet volutpat. Netus - et malesuada fames ac turpis egestas. Eget magna fermentum iaculis eu non diam phasellus - vestibulum lorem. Varius sit amet mattis vulputate enim. Habitasse platea dictumst quisque - sagittis. Integer quis auctor elit sed vulputate mi. Dictumst quisque sagittis purus sit amet.`, - "home.p1": `Bienvenido a la plantilla de inicio de blog oficial. Esta plantilla sirve como punto de partida ligero y con estilo mínimo para cualquiera que quiera construir un sitio web personal, un blog o un portafolio con Astro.`, - "home.p2": `Esta plantilla viene con algunas integraciones ya configuradas en su archivo astro.config.mjs. Puede personalizar su configuración con Astro Integrations para agregar herramientas como Tailwind, React o Vue a su proyecto.`, - "home.p3": - "Aquí hay algunas ideas sobre cómo comenzar con la plantilla:", - "home.p3.0": "Maneje las traducciones en", - "home.p3.1": "Edite esta página en", - "home.p3.2": "Editar páginas traducidas en", - "home.p3.3": "Edite los elementos de encabezado del sitio en", - "home.p3.4": "Agregue su nombre al pie de página en", - "home.p3.5": - "Consulte las publicaciones de blog incluidas en idiomas ES, EN y FR en", - "home.p3.6": "Personalice el diseño general del sitio en", - "home.p3.7": - "Personalice el diseño de la página de publicación del blog en", - }, } as const; diff --git a/src/i18n/utils.ts b/src/i18n/utils.ts index e9df155..08d51d5 100644 --- a/src/i18n/utils.ts +++ b/src/i18n/utils.ts @@ -3,7 +3,6 @@ import { ui } from "./ui"; export const LANGUAGES = { en: "English", fr: "Français", - es: "Español", }; export const DEFAULT_LANG = "en"; diff --git a/src/pages/[lang]/about.astro b/src/pages/[lang]/about.astro index 5bee905..501b573 100644 --- a/src/pages/[lang]/about.astro +++ b/src/pages/[lang]/about.astro @@ -27,17 +27,17 @@ const formattedDate: string = originalDate.toLocaleString("fr-FR", { heroImage="" >

{t("about.academic.title")}

-

+

{t("about.bts.title")}
-

+

{t("about.lp.title")}
-

+

{t("about.master.title")}
-

+

{t("about.server.title")}

-

+

diff --git a/src/pages/[lang]/blog/[...slug].astro b/src/pages/[lang]/blog/[...slug].astro index a9ebdef..da08191 100644 --- a/src/pages/[lang]/blog/[...slug].astro +++ b/src/pages/[lang]/blog/[...slug].astro @@ -5,7 +5,7 @@ import Post from "../../../layouts/Post.astro"; export async function getStaticPaths() { const posts = await getCollection("blog"); return posts.map((post) => ({ - params: { lang: post.data.lang, slug: post.data.slug }, + params: { lang: post.data.lang, slug: post.slug }, props: post, })); } diff --git a/src/pages/[lang]/blog/index.astro b/src/pages/[lang]/blog/index.astro index d8e622a..9a7bfa4 100644 --- a/src/pages/[lang]/blog/index.astro +++ b/src/pages/[lang]/blog/index.astro @@ -105,7 +105,7 @@ const posts = (await getCollection("blog")) { posts.map((post) => (

  • - + ({ - params: { lang: post.data.lang, slug: post.data.slug }, + params: { lang: post.data.lang, slug: post.slug }, props: post, })); } diff --git a/src/pages/[lang]/projects/index.astro b/src/pages/[lang]/projects/index.astro index 781a3c6..a270f69 100644 --- a/src/pages/[lang]/projects/index.astro +++ b/src/pages/[lang]/projects/index.astro @@ -104,7 +104,7 @@ const posts = (await getCollection("projects")) { posts.map((post) => (
  • - + + + + + Redirecting... + + +

    Redirecting to {redirectUrl}

    + + diff --git a/src/pages/rss.xml.js b/src/pages/rss.xml.js index c50ccbc..8f2a224 100644 --- a/src/pages/rss.xml.js +++ b/src/pages/rss.xml.js @@ -13,7 +13,7 @@ export async function GET(context) { site: context.site, items: posts.map((post) => ({ ...post.data, - link: `/${DEFAULT_LANG}/blog/${post.data.slug}/`, + link: `/${DEFAULT_LANG}/blog/${post.slug}/`, })), }); }