From 5f65dc0689a22e3911028cfea019b9fc3d8bcb08 Mon Sep 17 00:00:00 2001
From: Facundo Martin Gordillo
Date: Sat, 28 Jan 2023 21:50:00 +0100
Subject: [PATCH 1/4] feat(wip): added new locales + required packages
---
README.md | 55 +-
astro-i18next.config.mjs | 5 +
astro.config.mjs | 8 +-
package-lock.json | 861 ++++++++++++++++++++++++++++-
package.json | 4 +-
public/locales/en/translation.json | 19 +
public/locales/es/translation.json | 19 +
src/layouts/Layout.astro | 8 +-
src/pages/es/index.astro | 209 +++++++
src/pages/index.astro | 370 +++++++------
10 files changed, 1316 insertions(+), 242 deletions(-)
create mode 100644 astro-i18next.config.mjs
create mode 100644 public/locales/en/translation.json
create mode 100644 public/locales/es/translation.json
create mode 100644 src/pages/es/index.astro
diff --git a/README.md b/README.md
index ff315ba..17f70fc 100644
--- a/README.md
+++ b/README.md
@@ -1,54 +1 @@
-# Astro Starter Kit: Basics
-
-```
-npm create astro@latest -- --template basics
-```
-
-[![Open in StackBlitz](https://developer.stackblitz.com/img/open_in_stackblitz.svg)](https://stackblitz.com/github/withastro/astro/tree/latest/examples/basics)
-[![Open with CodeSandbox](https://assets.codesandbox.io/github/button-edit-lime.svg)](https://codesandbox.io/s/github/withastro/astro/tree/latest/examples/basics)
-
-> 🧑‍🚀 **Seasoned astronaut?** Delete this file. Have fun!
-
-![basics](https://user-images.githubusercontent.com/4677417/186188965-73453154-fdec-4d6b-9c34-cb35c248ae5b.png)
-
-
-## 🚀 Project Structure
-
-Inside of your Astro project, you'll see the following folders and files:
-
-```
-/
-├── public/
-│ └── favicon.svg
-├── src/
-│ ├── components/
-│ │ └── Card.astro
-│ ├── layouts/
-│ │ └── Layout.astro
-│ └── pages/
-│ └── index.astro
-└── package.json
-```
-
-Astro looks for `.astro` or `.md` files in the `src/pages/` directory. Each page is exposed as a route based on its file name.
-
-There's nothing special about `src/components/`, but that's where we like to put any Astro/React/Vue/Svelte/Preact components.
-
-Any static assets, like images, can be placed in the `public/` directory.
-
-## 🧞 Commands
-
-All commands are run from the root of the project, from a terminal:
-
-| Command | Action |
-| :--------------------- | :----------------------------------------------- |
-| `npm install` | Installs dependencies |
-| `npm run dev` | Starts local dev server at `localhost:3000` |
-| `npm run build` | Build your production site to `./dist/` |
-| `npm run preview` | Preview your build locally, before deploying |
-| `npm run astro ...` | Run CLI commands like `astro add`, `astro check` |
-| `npm run astro --help` | Get help using the Astro CLI |
-
-## đź‘€ Want to learn more?
-
-Feel free to check [our documentation](https://docs.astro.build) or jump into our [Discord server](https://astro.build/chat).
+# FMGordillo's website
\ No newline at end of file
diff --git a/astro-i18next.config.mjs b/astro-i18next.config.mjs
new file mode 100644
index 0000000..df59e2f
--- /dev/null
+++ b/astro-i18next.config.mjs
@@ -0,0 +1,5 @@
+/** @type {import('astro-i18next').AstroI18nextConfig} */
+export default {
+ defaultLocale: "en",
+ locales: ["en", "es"],
+};
diff --git a/astro.config.mjs b/astro.config.mjs
index 882e651..8106ede 100644
--- a/astro.config.mjs
+++ b/astro.config.mjs
@@ -1,4 +1,6 @@
-import { defineConfig } from 'astro/config';
+import { defineConfig } from "astro/config";
+import astroI18next from "astro-i18next";
-// https://astro.build/config
-export default defineConfig({});
+export default defineConfig({
+ integrations: [astroI18next()],
+});
diff --git a/package-lock.json b/package-lock.json
index 26f19df..3c09e76 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -1,14 +1,15 @@
{
- "name": "@example/basics",
+ "name": "homepage",
"version": "0.0.1",
"lockfileVersion": 2,
"requires": true,
"packages": {
"": {
- "name": "@example/basics",
+ "name": "homepage",
"version": "0.0.1",
"dependencies": {
- "astro": "^2.0.2"
+ "astro": "^2.0.2",
+ "astro-i18next": "1.0.0-beta.17"
}
},
"node_modules/@ampproject/remapping": {
@@ -417,6 +418,17 @@
"@babel/core": "^7.0.0-0"
}
},
+ "node_modules/@babel/runtime": {
+ "version": "7.20.13",
+ "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.20.13.tgz",
+ "integrity": "sha512-gt3PKXs0DBoL9xCvOIIZ2NEqAGZqHjAnmVbfQtB620V0uReIQutpel14KcneZuer7UioY8ALKZ7iocavvzTNFA==",
+ "dependencies": {
+ "regenerator-runtime": "^0.13.11"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
"node_modules/@babel/template": {
"version": "7.20.7",
"resolved": "https://registry.npmjs.org/@babel/template/-/template-7.20.7.tgz",
@@ -912,6 +924,26 @@
"url": "https://opencollective.com/unts"
}
},
+ "node_modules/@proload/core": {
+ "version": "0.3.3",
+ "resolved": "https://registry.npmjs.org/@proload/core/-/core-0.3.3.tgz",
+ "integrity": "sha512-7dAFWsIK84C90AMl24+N/ProHKm4iw0akcnoKjRvbfHifJZBLhaDsDus1QJmhG12lXj4e/uB/8mB/0aduCW+NQ==",
+ "dependencies": {
+ "deepmerge": "^4.2.2",
+ "escalade": "^3.1.1"
+ }
+ },
+ "node_modules/@proload/plugin-tsm": {
+ "version": "0.2.1",
+ "resolved": "https://registry.npmjs.org/@proload/plugin-tsm/-/plugin-tsm-0.2.1.tgz",
+ "integrity": "sha512-Ex1sL2BxU+g8MHdAdq9SZKz+pU34o8Zcl9PHWo2WaG9hrnlZme607PU6gnpoAYsDBpHX327+eu60wWUk+d/b+A==",
+ "dependencies": {
+ "tsm": "^2.1.4"
+ },
+ "peerDependencies": {
+ "@proload/core": "^0.3.2"
+ }
+ },
"node_modules/@types/babel__core": {
"version": "7.20.0",
"resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.20.0.tgz",
@@ -1199,6 +1231,28 @@
"npm": ">=6.14.0"
}
},
+ "node_modules/astro-i18next": {
+ "version": "1.0.0-beta.17",
+ "resolved": "https://registry.npmjs.org/astro-i18next/-/astro-i18next-1.0.0-beta.17.tgz",
+ "integrity": "sha512-EyVhwLuNcQoQnte4Gn/2Mj9SuTS7lmWPZFDRF+rrONcBSm/Il3wQv78PaOUWfdE3QjHznYfg8o6RvLuvu6RM4Q==",
+ "dependencies": {
+ "@proload/core": "^0.3.3",
+ "@proload/plugin-tsm": "^0.2.1",
+ "i18next": "^22.4.9",
+ "i18next-browser-languagedetector": "^7.0.1",
+ "i18next-fs-backend": "^2.1.1",
+ "i18next-http-backend": "^2.1.1",
+ "iso-639-1": "^2.1.15",
+ "locale-emoji": "^0.3.0",
+ "pathe": "^1.1.0"
+ },
+ "bin": {
+ "astro-i18next": "dist/cli/index.js"
+ },
+ "peerDependencies": {
+ "astro": ">=1.0.0"
+ }
+ },
"node_modules/bail": {
"version": "2.0.2",
"resolved": "https://registry.npmjs.org/bail/-/bail-2.0.2.tgz",
@@ -1567,6 +1621,14 @@
"node": ">= 0.6"
}
},
+ "node_modules/cross-fetch": {
+ "version": "3.1.5",
+ "resolved": "https://registry.npmjs.org/cross-fetch/-/cross-fetch-3.1.5.tgz",
+ "integrity": "sha512-lvb1SBsI0Z7GDwmuid+mU3kWVBwTVUbe7S0H52yaaAdQOXq2YktTCZdlAcNKFzE6QtRz0snpw9bNiPeOIkkQvw==",
+ "dependencies": {
+ "node-fetch": "2.6.7"
+ }
+ },
"node_modules/cross-spawn": {
"version": "7.0.3",
"resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz",
@@ -1608,6 +1670,14 @@
"url": "https://github.com/sponsors/wooorm"
}
},
+ "node_modules/deepmerge": {
+ "version": "4.2.2",
+ "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.2.2.tgz",
+ "integrity": "sha512-FJ3UgI4gIl+PHZm53knsuSFpE+nESMr7M4v9QcgB7S63Kj/6WqMiFQJpBBYz1Pt+66bZpP3Q7Lye0Oo9MPKEdg==",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
"node_modules/deepmerge-ts": {
"version": "4.2.2",
"resolved": "https://registry.npmjs.org/deepmerge-ts/-/deepmerge-ts-4.2.2.tgz",
@@ -1734,6 +1804,306 @@
"@esbuild/win32-x64": "0.16.17"
}
},
+ "node_modules/esbuild-android-64": {
+ "version": "0.15.18",
+ "resolved": "https://registry.npmjs.org/esbuild-android-64/-/esbuild-android-64-0.15.18.tgz",
+ "integrity": "sha512-wnpt3OXRhcjfIDSZu9bnzT4/TNTDsOUvip0foZOUBG7QbSt//w3QV4FInVJxNhKc/ErhUxc5z4QjHtMi7/TbgA==",
+ "cpu": [
+ "x64"
+ ],
+ "optional": true,
+ "os": [
+ "android"
+ ],
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/esbuild-android-arm64": {
+ "version": "0.15.18",
+ "resolved": "https://registry.npmjs.org/esbuild-android-arm64/-/esbuild-android-arm64-0.15.18.tgz",
+ "integrity": "sha512-G4xu89B8FCzav9XU8EjsXacCKSG2FT7wW9J6hOc18soEHJdtWu03L3TQDGf0geNxfLTtxENKBzMSq9LlbjS8OQ==",
+ "cpu": [
+ "arm64"
+ ],
+ "optional": true,
+ "os": [
+ "android"
+ ],
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/esbuild-darwin-64": {
+ "version": "0.15.18",
+ "resolved": "https://registry.npmjs.org/esbuild-darwin-64/-/esbuild-darwin-64-0.15.18.tgz",
+ "integrity": "sha512-2WAvs95uPnVJPuYKP0Eqx+Dl/jaYseZEUUT1sjg97TJa4oBtbAKnPnl3b5M9l51/nbx7+QAEtuummJZW0sBEmg==",
+ "cpu": [
+ "x64"
+ ],
+ "optional": true,
+ "os": [
+ "darwin"
+ ],
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/esbuild-darwin-arm64": {
+ "version": "0.15.18",
+ "resolved": "https://registry.npmjs.org/esbuild-darwin-arm64/-/esbuild-darwin-arm64-0.15.18.tgz",
+ "integrity": "sha512-tKPSxcTJ5OmNb1btVikATJ8NftlyNlc8BVNtyT/UAr62JFOhwHlnoPrhYWz09akBLHI9nElFVfWSTSRsrZiDUA==",
+ "cpu": [
+ "arm64"
+ ],
+ "optional": true,
+ "os": [
+ "darwin"
+ ],
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/esbuild-freebsd-64": {
+ "version": "0.15.18",
+ "resolved": "https://registry.npmjs.org/esbuild-freebsd-64/-/esbuild-freebsd-64-0.15.18.tgz",
+ "integrity": "sha512-TT3uBUxkteAjR1QbsmvSsjpKjOX6UkCstr8nMr+q7zi3NuZ1oIpa8U41Y8I8dJH2fJgdC3Dj3CXO5biLQpfdZA==",
+ "cpu": [
+ "x64"
+ ],
+ "optional": true,
+ "os": [
+ "freebsd"
+ ],
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/esbuild-freebsd-arm64": {
+ "version": "0.15.18",
+ "resolved": "https://registry.npmjs.org/esbuild-freebsd-arm64/-/esbuild-freebsd-arm64-0.15.18.tgz",
+ "integrity": "sha512-R/oVr+X3Tkh+S0+tL41wRMbdWtpWB8hEAMsOXDumSSa6qJR89U0S/PpLXrGF7Wk/JykfpWNokERUpCeHDl47wA==",
+ "cpu": [
+ "arm64"
+ ],
+ "optional": true,
+ "os": [
+ "freebsd"
+ ],
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/esbuild-linux-32": {
+ "version": "0.15.18",
+ "resolved": "https://registry.npmjs.org/esbuild-linux-32/-/esbuild-linux-32-0.15.18.tgz",
+ "integrity": "sha512-lphF3HiCSYtaa9p1DtXndiQEeQDKPl9eN/XNoBf2amEghugNuqXNZA/ZovthNE2aa4EN43WroO0B85xVSjYkbg==",
+ "cpu": [
+ "ia32"
+ ],
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/esbuild-linux-64": {
+ "version": "0.15.18",
+ "resolved": "https://registry.npmjs.org/esbuild-linux-64/-/esbuild-linux-64-0.15.18.tgz",
+ "integrity": "sha512-hNSeP97IviD7oxLKFuii5sDPJ+QHeiFTFLoLm7NZQligur8poNOWGIgpQ7Qf8Balb69hptMZzyOBIPtY09GZYw==",
+ "cpu": [
+ "x64"
+ ],
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/esbuild-linux-arm": {
+ "version": "0.15.18",
+ "resolved": "https://registry.npmjs.org/esbuild-linux-arm/-/esbuild-linux-arm-0.15.18.tgz",
+ "integrity": "sha512-UH779gstRblS4aoS2qpMl3wjg7U0j+ygu3GjIeTonCcN79ZvpPee12Qun3vcdxX+37O5LFxz39XeW2I9bybMVA==",
+ "cpu": [
+ "arm"
+ ],
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/esbuild-linux-arm64": {
+ "version": "0.15.18",
+ "resolved": "https://registry.npmjs.org/esbuild-linux-arm64/-/esbuild-linux-arm64-0.15.18.tgz",
+ "integrity": "sha512-54qr8kg/6ilcxd+0V3h9rjT4qmjc0CccMVWrjOEM/pEcUzt8X62HfBSeZfT2ECpM7104mk4yfQXkosY8Quptug==",
+ "cpu": [
+ "arm64"
+ ],
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/esbuild-linux-mips64le": {
+ "version": "0.15.18",
+ "resolved": "https://registry.npmjs.org/esbuild-linux-mips64le/-/esbuild-linux-mips64le-0.15.18.tgz",
+ "integrity": "sha512-Mk6Ppwzzz3YbMl/ZZL2P0q1tnYqh/trYZ1VfNP47C31yT0K8t9s7Z077QrDA/guU60tGNp2GOwCQnp+DYv7bxQ==",
+ "cpu": [
+ "mips64el"
+ ],
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/esbuild-linux-ppc64le": {
+ "version": "0.15.18",
+ "resolved": "https://registry.npmjs.org/esbuild-linux-ppc64le/-/esbuild-linux-ppc64le-0.15.18.tgz",
+ "integrity": "sha512-b0XkN4pL9WUulPTa/VKHx2wLCgvIAbgwABGnKMY19WhKZPT+8BxhZdqz6EgkqCLld7X5qiCY2F/bfpUUlnFZ9w==",
+ "cpu": [
+ "ppc64"
+ ],
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/esbuild-linux-riscv64": {
+ "version": "0.15.18",
+ "resolved": "https://registry.npmjs.org/esbuild-linux-riscv64/-/esbuild-linux-riscv64-0.15.18.tgz",
+ "integrity": "sha512-ba2COaoF5wL6VLZWn04k+ACZjZ6NYniMSQStodFKH/Pu6RxzQqzsmjR1t9QC89VYJxBeyVPTaHuBMCejl3O/xg==",
+ "cpu": [
+ "riscv64"
+ ],
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/esbuild-linux-s390x": {
+ "version": "0.15.18",
+ "resolved": "https://registry.npmjs.org/esbuild-linux-s390x/-/esbuild-linux-s390x-0.15.18.tgz",
+ "integrity": "sha512-VbpGuXEl5FCs1wDVp93O8UIzl3ZrglgnSQ+Hu79g7hZu6te6/YHgVJxCM2SqfIila0J3k0csfnf8VD2W7u2kzQ==",
+ "cpu": [
+ "s390x"
+ ],
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/esbuild-netbsd-64": {
+ "version": "0.15.18",
+ "resolved": "https://registry.npmjs.org/esbuild-netbsd-64/-/esbuild-netbsd-64-0.15.18.tgz",
+ "integrity": "sha512-98ukeCdvdX7wr1vUYQzKo4kQ0N2p27H7I11maINv73fVEXt2kyh4K4m9f35U1K43Xc2QGXlzAw0K9yoU7JUjOg==",
+ "cpu": [
+ "x64"
+ ],
+ "optional": true,
+ "os": [
+ "netbsd"
+ ],
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/esbuild-openbsd-64": {
+ "version": "0.15.18",
+ "resolved": "https://registry.npmjs.org/esbuild-openbsd-64/-/esbuild-openbsd-64-0.15.18.tgz",
+ "integrity": "sha512-yK5NCcH31Uae076AyQAXeJzt/vxIo9+omZRKj1pauhk3ITuADzuOx5N2fdHrAKPxN+zH3w96uFKlY7yIn490xQ==",
+ "cpu": [
+ "x64"
+ ],
+ "optional": true,
+ "os": [
+ "openbsd"
+ ],
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/esbuild-sunos-64": {
+ "version": "0.15.18",
+ "resolved": "https://registry.npmjs.org/esbuild-sunos-64/-/esbuild-sunos-64-0.15.18.tgz",
+ "integrity": "sha512-On22LLFlBeLNj/YF3FT+cXcyKPEI263nflYlAhz5crxtp3yRG1Ugfr7ITyxmCmjm4vbN/dGrb/B7w7U8yJR9yw==",
+ "cpu": [
+ "x64"
+ ],
+ "optional": true,
+ "os": [
+ "sunos"
+ ],
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/esbuild-windows-32": {
+ "version": "0.15.18",
+ "resolved": "https://registry.npmjs.org/esbuild-windows-32/-/esbuild-windows-32-0.15.18.tgz",
+ "integrity": "sha512-o+eyLu2MjVny/nt+E0uPnBxYuJHBvho8vWsC2lV61A7wwTWC3jkN2w36jtA+yv1UgYkHRihPuQsL23hsCYGcOQ==",
+ "cpu": [
+ "ia32"
+ ],
+ "optional": true,
+ "os": [
+ "win32"
+ ],
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/esbuild-windows-64": {
+ "version": "0.15.18",
+ "resolved": "https://registry.npmjs.org/esbuild-windows-64/-/esbuild-windows-64-0.15.18.tgz",
+ "integrity": "sha512-qinug1iTTaIIrCorAUjR0fcBk24fjzEedFYhhispP8Oc7SFvs+XeW3YpAKiKp8dRpizl4YYAhxMjlftAMJiaUw==",
+ "cpu": [
+ "x64"
+ ],
+ "optional": true,
+ "os": [
+ "win32"
+ ],
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/esbuild-windows-arm64": {
+ "version": "0.15.18",
+ "resolved": "https://registry.npmjs.org/esbuild-windows-arm64/-/esbuild-windows-arm64-0.15.18.tgz",
+ "integrity": "sha512-q9bsYzegpZcLziq0zgUi5KqGVtfhjxGbnksaBFYmWLxeV/S1fK4OLdq2DFYnXcLMjlZw2L0jLsk1eGoB522WXQ==",
+ "cpu": [
+ "arm64"
+ ],
+ "optional": true,
+ "os": [
+ "win32"
+ ],
+ "engines": {
+ "node": ">=12"
+ }
+ },
"node_modules/escalade": {
"version": "3.1.1",
"resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz",
@@ -2132,6 +2502,49 @@
"node": ">=12.20.0"
}
},
+ "node_modules/i18next": {
+ "version": "22.4.9",
+ "resolved": "https://registry.npmjs.org/i18next/-/i18next-22.4.9.tgz",
+ "integrity": "sha512-8gWMmUz460KJDQp/ob3MNUX84cVuDRY9PLFPnV8d+Qezz/6dkjxwOaH70xjrCNDO+JrUL25iXfAIN9wUkInNZw==",
+ "funding": [
+ {
+ "type": "individual",
+ "url": "https://locize.com"
+ },
+ {
+ "type": "individual",
+ "url": "https://locize.com/i18next.html"
+ },
+ {
+ "type": "individual",
+ "url": "https://www.i18next.com/how-to/faq#i18next-is-awesome.-how-can-i-support-the-project"
+ }
+ ],
+ "dependencies": {
+ "@babel/runtime": "^7.20.6"
+ }
+ },
+ "node_modules/i18next-browser-languagedetector": {
+ "version": "7.0.1",
+ "resolved": "https://registry.npmjs.org/i18next-browser-languagedetector/-/i18next-browser-languagedetector-7.0.1.tgz",
+ "integrity": "sha512-Pa5kFwaczXJAeHE56CHG2aWzFBMJNUNghf0Pm4SwSrEMps/PTKqW90EYWlIvhuYStf3Sn1K0vw+gH3+TLdkH1g==",
+ "dependencies": {
+ "@babel/runtime": "^7.19.4"
+ }
+ },
+ "node_modules/i18next-fs-backend": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/i18next-fs-backend/-/i18next-fs-backend-2.1.1.tgz",
+ "integrity": "sha512-FTnj+UmNgT3YRml5ruRv0jMZDG7odOL/OP5PF5mOqvXud2vHrPOOs68Zdk6iqzL47cnnM0ZVkK2BAvpFeDJToA=="
+ },
+ "node_modules/i18next-http-backend": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/i18next-http-backend/-/i18next-http-backend-2.1.1.tgz",
+ "integrity": "sha512-jByfUCDVgQ8+/Wens7queQhYYvMcGTW/lR4IJJNEDDXnmqjLrwi8ubXKpmp76/JIWEZHffNdWqnxFJcTVGeaOw==",
+ "dependencies": {
+ "cross-fetch": "3.1.5"
+ }
+ },
"node_modules/ieee754": {
"version": "1.2.1",
"resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz",
@@ -2329,6 +2742,14 @@
"resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz",
"integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw=="
},
+ "node_modules/iso-639-1": {
+ "version": "2.1.15",
+ "resolved": "https://registry.npmjs.org/iso-639-1/-/iso-639-1-2.1.15.tgz",
+ "integrity": "sha512-7c7mBznZu2ktfvyT582E2msM+Udc1EjOyhVRE/0ZsjD9LBtWSm23h3PtiRh2a35XoUsTQQjJXaJzuLjXsOdFDg==",
+ "engines": {
+ "node": ">=6.0"
+ }
+ },
"node_modules/js-tokens": {
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz",
@@ -2411,6 +2832,11 @@
"node": ">=4"
}
},
+ "node_modules/locale-emoji": {
+ "version": "0.3.0",
+ "resolved": "https://registry.npmjs.org/locale-emoji/-/locale-emoji-0.3.0.tgz",
+ "integrity": "sha512-JGm8+naU49CBDnH1jksS3LecPdfWQLxFgkLN6ZhYONKa850pJ0Xt8DPGJnYK0ZuJI8jTuiDDPCDtSL3nyacXwg=="
+ },
"node_modules/locate-path": {
"version": "6.0.0",
"resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz",
@@ -3323,6 +3749,25 @@
"url": "https://opencollective.com/unified"
}
},
+ "node_modules/node-fetch": {
+ "version": "2.6.7",
+ "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.7.tgz",
+ "integrity": "sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ==",
+ "dependencies": {
+ "whatwg-url": "^5.0.0"
+ },
+ "engines": {
+ "node": "4.x || >=6.0.0"
+ },
+ "peerDependencies": {
+ "encoding": "^0.1.0"
+ },
+ "peerDependenciesMeta": {
+ "encoding": {
+ "optional": true
+ }
+ }
+ },
"node_modules/node-releases": {
"version": "2.0.8",
"resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.8.tgz",
@@ -3511,6 +3956,11 @@
"resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-6.2.1.tgz",
"integrity": "sha512-JLyh7xT1kizaEvcaXOQwOc2/Yhw6KZOvPf1S8401UyLk86CU79LN3vl7ztXGm/pZ+YjoyAJ4rxmHwbkBXJX+yw=="
},
+ "node_modules/pathe": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/pathe/-/pathe-1.1.0.tgz",
+ "integrity": "sha512-ODbEPR0KKHqECXW1GoxdDb+AZvULmXjVPy4rt+pGo2+TnjJTIPJQSVS6N63n8T2Ip+syHhbn52OewKicV0373w=="
+ },
"node_modules/picocolors": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz",
@@ -3734,6 +4184,11 @@
"node": ">= 6"
}
},
+ "node_modules/regenerator-runtime": {
+ "version": "0.13.11",
+ "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.11.tgz",
+ "integrity": "sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg=="
+ },
"node_modules/rehype": {
"version": "12.0.1",
"resolved": "https://registry.npmjs.org/rehype/-/rehype-12.0.1.tgz",
@@ -4349,6 +4804,11 @@
"node": ">=8.0"
}
},
+ "node_modules/tr46": {
+ "version": "0.0.3",
+ "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz",
+ "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw=="
+ },
"node_modules/trim-lines": {
"version": "3.0.1",
"resolved": "https://registry.npmjs.org/trim-lines/-/trim-lines-3.0.1.tgz",
@@ -4399,6 +4859,86 @@
"resolved": "https://registry.npmjs.org/tslib/-/tslib-2.5.0.tgz",
"integrity": "sha512-336iVw3rtn2BUK7ORdIAHTyxHGRIHVReokCR3XjbckJMK7ms8FysBfhLR8IXnAgy7T0PTPNBWKiH514FOW/WSg=="
},
+ "node_modules/tsm": {
+ "version": "2.3.0",
+ "resolved": "https://registry.npmjs.org/tsm/-/tsm-2.3.0.tgz",
+ "integrity": "sha512-++0HFnmmR+gMpDtKTnW3XJ4yv9kVGi20n+NfyQWB9qwJvTaIWY9kBmzek2YUQK5APTQ/1DTrXmm4QtFPmW9Rzw==",
+ "dependencies": {
+ "esbuild": "^0.15.16"
+ },
+ "bin": {
+ "tsm": "bin.js"
+ },
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/tsm/node_modules/@esbuild/android-arm": {
+ "version": "0.15.18",
+ "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.15.18.tgz",
+ "integrity": "sha512-5GT+kcs2WVGjVs7+boataCkO5Fg0y4kCjzkB5bAip7H4jfnOS3dA6KPiww9W1OEKTKeAcUVhdZGvgI65OXmUnw==",
+ "cpu": [
+ "arm"
+ ],
+ "optional": true,
+ "os": [
+ "android"
+ ],
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/tsm/node_modules/@esbuild/linux-loong64": {
+ "version": "0.15.18",
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.15.18.tgz",
+ "integrity": "sha512-L4jVKS82XVhw2nvzLg/19ClLWg0y27ulRwuP7lcyL6AbUWB5aPglXY3M21mauDQMDfRLs8cQmeT03r/+X3cZYQ==",
+ "cpu": [
+ "loong64"
+ ],
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/tsm/node_modules/esbuild": {
+ "version": "0.15.18",
+ "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.15.18.tgz",
+ "integrity": "sha512-x/R72SmW3sSFRm5zrrIjAhCeQSAWoni3CmHEqfQrZIQTM3lVCdehdwuIqaOtfC2slvpdlLa62GYoN8SxT23m6Q==",
+ "hasInstallScript": true,
+ "bin": {
+ "esbuild": "bin/esbuild"
+ },
+ "engines": {
+ "node": ">=12"
+ },
+ "optionalDependencies": {
+ "@esbuild/android-arm": "0.15.18",
+ "@esbuild/linux-loong64": "0.15.18",
+ "esbuild-android-64": "0.15.18",
+ "esbuild-android-arm64": "0.15.18",
+ "esbuild-darwin-64": "0.15.18",
+ "esbuild-darwin-arm64": "0.15.18",
+ "esbuild-freebsd-64": "0.15.18",
+ "esbuild-freebsd-arm64": "0.15.18",
+ "esbuild-linux-32": "0.15.18",
+ "esbuild-linux-64": "0.15.18",
+ "esbuild-linux-arm": "0.15.18",
+ "esbuild-linux-arm64": "0.15.18",
+ "esbuild-linux-mips64le": "0.15.18",
+ "esbuild-linux-ppc64le": "0.15.18",
+ "esbuild-linux-riscv64": "0.15.18",
+ "esbuild-linux-s390x": "0.15.18",
+ "esbuild-netbsd-64": "0.15.18",
+ "esbuild-openbsd-64": "0.15.18",
+ "esbuild-sunos-64": "0.15.18",
+ "esbuild-windows-32": "0.15.18",
+ "esbuild-windows-64": "0.15.18",
+ "esbuild-windows-arm64": "0.15.18"
+ }
+ },
"node_modules/type-fest": {
"version": "2.19.0",
"resolved": "https://registry.npmjs.org/type-fest/-/type-fest-2.19.0.tgz",
@@ -4807,6 +5347,20 @@
"url": "https://github.com/sponsors/wooorm"
}
},
+ "node_modules/webidl-conversions": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz",
+ "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ=="
+ },
+ "node_modules/whatwg-url": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz",
+ "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==",
+ "dependencies": {
+ "tr46": "~0.0.3",
+ "webidl-conversions": "^3.0.0"
+ }
+ },
"node_modules/which": {
"version": "2.0.2",
"resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz",
@@ -5233,6 +5787,14 @@
"@babel/types": "^7.20.7"
}
},
+ "@babel/runtime": {
+ "version": "7.20.13",
+ "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.20.13.tgz",
+ "integrity": "sha512-gt3PKXs0DBoL9xCvOIIZ2NEqAGZqHjAnmVbfQtB620V0uReIQutpel14KcneZuer7UioY8ALKZ7iocavvzTNFA==",
+ "requires": {
+ "regenerator-runtime": "^0.13.11"
+ }
+ },
"@babel/template": {
"version": "7.20.7",
"resolved": "https://registry.npmjs.org/@babel/template/-/template-7.20.7.tgz",
@@ -5497,6 +6059,23 @@
"tslib": "^2.4.0"
}
},
+ "@proload/core": {
+ "version": "0.3.3",
+ "resolved": "https://registry.npmjs.org/@proload/core/-/core-0.3.3.tgz",
+ "integrity": "sha512-7dAFWsIK84C90AMl24+N/ProHKm4iw0akcnoKjRvbfHifJZBLhaDsDus1QJmhG12lXj4e/uB/8mB/0aduCW+NQ==",
+ "requires": {
+ "deepmerge": "^4.2.2",
+ "escalade": "^3.1.1"
+ }
+ },
+ "@proload/plugin-tsm": {
+ "version": "0.2.1",
+ "resolved": "https://registry.npmjs.org/@proload/plugin-tsm/-/plugin-tsm-0.2.1.tgz",
+ "integrity": "sha512-Ex1sL2BxU+g8MHdAdq9SZKz+pU34o8Zcl9PHWo2WaG9hrnlZme607PU6gnpoAYsDBpHX327+eu60wWUk+d/b+A==",
+ "requires": {
+ "tsm": "^2.1.4"
+ }
+ },
"@types/babel__core": {
"version": "7.20.0",
"resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.20.0.tgz",
@@ -5753,6 +6332,22 @@
"zod": "^3.17.3"
}
},
+ "astro-i18next": {
+ "version": "1.0.0-beta.17",
+ "resolved": "https://registry.npmjs.org/astro-i18next/-/astro-i18next-1.0.0-beta.17.tgz",
+ "integrity": "sha512-EyVhwLuNcQoQnte4Gn/2Mj9SuTS7lmWPZFDRF+rrONcBSm/Il3wQv78PaOUWfdE3QjHznYfg8o6RvLuvu6RM4Q==",
+ "requires": {
+ "@proload/core": "^0.3.3",
+ "@proload/plugin-tsm": "^0.2.1",
+ "i18next": "^22.4.9",
+ "i18next-browser-languagedetector": "^7.0.1",
+ "i18next-fs-backend": "^2.1.1",
+ "i18next-http-backend": "^2.1.1",
+ "iso-639-1": "^2.1.15",
+ "locale-emoji": "^0.3.0",
+ "pathe": "^1.1.0"
+ }
+ },
"bail": {
"version": "2.0.2",
"resolved": "https://registry.npmjs.org/bail/-/bail-2.0.2.tgz",
@@ -5970,6 +6565,14 @@
"resolved": "https://registry.npmjs.org/cookie/-/cookie-0.5.0.tgz",
"integrity": "sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw=="
},
+ "cross-fetch": {
+ "version": "3.1.5",
+ "resolved": "https://registry.npmjs.org/cross-fetch/-/cross-fetch-3.1.5.tgz",
+ "integrity": "sha512-lvb1SBsI0Z7GDwmuid+mU3kWVBwTVUbe7S0H52yaaAdQOXq2YktTCZdlAcNKFzE6QtRz0snpw9bNiPeOIkkQvw==",
+ "requires": {
+ "node-fetch": "2.6.7"
+ }
+ },
"cross-spawn": {
"version": "7.0.3",
"resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz",
@@ -5996,6 +6599,11 @@
"character-entities": "^2.0.0"
}
},
+ "deepmerge": {
+ "version": "4.2.2",
+ "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.2.2.tgz",
+ "integrity": "sha512-FJ3UgI4gIl+PHZm53knsuSFpE+nESMr7M4v9QcgB7S63Kj/6WqMiFQJpBBYz1Pt+66bZpP3Q7Lye0Oo9MPKEdg=="
+ },
"deepmerge-ts": {
"version": "4.2.2",
"resolved": "https://registry.npmjs.org/deepmerge-ts/-/deepmerge-ts-4.2.2.tgz",
@@ -6097,6 +6705,126 @@
"@esbuild/win32-x64": "0.16.17"
}
},
+ "esbuild-android-64": {
+ "version": "0.15.18",
+ "resolved": "https://registry.npmjs.org/esbuild-android-64/-/esbuild-android-64-0.15.18.tgz",
+ "integrity": "sha512-wnpt3OXRhcjfIDSZu9bnzT4/TNTDsOUvip0foZOUBG7QbSt//w3QV4FInVJxNhKc/ErhUxc5z4QjHtMi7/TbgA==",
+ "optional": true
+ },
+ "esbuild-android-arm64": {
+ "version": "0.15.18",
+ "resolved": "https://registry.npmjs.org/esbuild-android-arm64/-/esbuild-android-arm64-0.15.18.tgz",
+ "integrity": "sha512-G4xu89B8FCzav9XU8EjsXacCKSG2FT7wW9J6hOc18soEHJdtWu03L3TQDGf0geNxfLTtxENKBzMSq9LlbjS8OQ==",
+ "optional": true
+ },
+ "esbuild-darwin-64": {
+ "version": "0.15.18",
+ "resolved": "https://registry.npmjs.org/esbuild-darwin-64/-/esbuild-darwin-64-0.15.18.tgz",
+ "integrity": "sha512-2WAvs95uPnVJPuYKP0Eqx+Dl/jaYseZEUUT1sjg97TJa4oBtbAKnPnl3b5M9l51/nbx7+QAEtuummJZW0sBEmg==",
+ "optional": true
+ },
+ "esbuild-darwin-arm64": {
+ "version": "0.15.18",
+ "resolved": "https://registry.npmjs.org/esbuild-darwin-arm64/-/esbuild-darwin-arm64-0.15.18.tgz",
+ "integrity": "sha512-tKPSxcTJ5OmNb1btVikATJ8NftlyNlc8BVNtyT/UAr62JFOhwHlnoPrhYWz09akBLHI9nElFVfWSTSRsrZiDUA==",
+ "optional": true
+ },
+ "esbuild-freebsd-64": {
+ "version": "0.15.18",
+ "resolved": "https://registry.npmjs.org/esbuild-freebsd-64/-/esbuild-freebsd-64-0.15.18.tgz",
+ "integrity": "sha512-TT3uBUxkteAjR1QbsmvSsjpKjOX6UkCstr8nMr+q7zi3NuZ1oIpa8U41Y8I8dJH2fJgdC3Dj3CXO5biLQpfdZA==",
+ "optional": true
+ },
+ "esbuild-freebsd-arm64": {
+ "version": "0.15.18",
+ "resolved": "https://registry.npmjs.org/esbuild-freebsd-arm64/-/esbuild-freebsd-arm64-0.15.18.tgz",
+ "integrity": "sha512-R/oVr+X3Tkh+S0+tL41wRMbdWtpWB8hEAMsOXDumSSa6qJR89U0S/PpLXrGF7Wk/JykfpWNokERUpCeHDl47wA==",
+ "optional": true
+ },
+ "esbuild-linux-32": {
+ "version": "0.15.18",
+ "resolved": "https://registry.npmjs.org/esbuild-linux-32/-/esbuild-linux-32-0.15.18.tgz",
+ "integrity": "sha512-lphF3HiCSYtaa9p1DtXndiQEeQDKPl9eN/XNoBf2amEghugNuqXNZA/ZovthNE2aa4EN43WroO0B85xVSjYkbg==",
+ "optional": true
+ },
+ "esbuild-linux-64": {
+ "version": "0.15.18",
+ "resolved": "https://registry.npmjs.org/esbuild-linux-64/-/esbuild-linux-64-0.15.18.tgz",
+ "integrity": "sha512-hNSeP97IviD7oxLKFuii5sDPJ+QHeiFTFLoLm7NZQligur8poNOWGIgpQ7Qf8Balb69hptMZzyOBIPtY09GZYw==",
+ "optional": true
+ },
+ "esbuild-linux-arm": {
+ "version": "0.15.18",
+ "resolved": "https://registry.npmjs.org/esbuild-linux-arm/-/esbuild-linux-arm-0.15.18.tgz",
+ "integrity": "sha512-UH779gstRblS4aoS2qpMl3wjg7U0j+ygu3GjIeTonCcN79ZvpPee12Qun3vcdxX+37O5LFxz39XeW2I9bybMVA==",
+ "optional": true
+ },
+ "esbuild-linux-arm64": {
+ "version": "0.15.18",
+ "resolved": "https://registry.npmjs.org/esbuild-linux-arm64/-/esbuild-linux-arm64-0.15.18.tgz",
+ "integrity": "sha512-54qr8kg/6ilcxd+0V3h9rjT4qmjc0CccMVWrjOEM/pEcUzt8X62HfBSeZfT2ECpM7104mk4yfQXkosY8Quptug==",
+ "optional": true
+ },
+ "esbuild-linux-mips64le": {
+ "version": "0.15.18",
+ "resolved": "https://registry.npmjs.org/esbuild-linux-mips64le/-/esbuild-linux-mips64le-0.15.18.tgz",
+ "integrity": "sha512-Mk6Ppwzzz3YbMl/ZZL2P0q1tnYqh/trYZ1VfNP47C31yT0K8t9s7Z077QrDA/guU60tGNp2GOwCQnp+DYv7bxQ==",
+ "optional": true
+ },
+ "esbuild-linux-ppc64le": {
+ "version": "0.15.18",
+ "resolved": "https://registry.npmjs.org/esbuild-linux-ppc64le/-/esbuild-linux-ppc64le-0.15.18.tgz",
+ "integrity": "sha512-b0XkN4pL9WUulPTa/VKHx2wLCgvIAbgwABGnKMY19WhKZPT+8BxhZdqz6EgkqCLld7X5qiCY2F/bfpUUlnFZ9w==",
+ "optional": true
+ },
+ "esbuild-linux-riscv64": {
+ "version": "0.15.18",
+ "resolved": "https://registry.npmjs.org/esbuild-linux-riscv64/-/esbuild-linux-riscv64-0.15.18.tgz",
+ "integrity": "sha512-ba2COaoF5wL6VLZWn04k+ACZjZ6NYniMSQStodFKH/Pu6RxzQqzsmjR1t9QC89VYJxBeyVPTaHuBMCejl3O/xg==",
+ "optional": true
+ },
+ "esbuild-linux-s390x": {
+ "version": "0.15.18",
+ "resolved": "https://registry.npmjs.org/esbuild-linux-s390x/-/esbuild-linux-s390x-0.15.18.tgz",
+ "integrity": "sha512-VbpGuXEl5FCs1wDVp93O8UIzl3ZrglgnSQ+Hu79g7hZu6te6/YHgVJxCM2SqfIila0J3k0csfnf8VD2W7u2kzQ==",
+ "optional": true
+ },
+ "esbuild-netbsd-64": {
+ "version": "0.15.18",
+ "resolved": "https://registry.npmjs.org/esbuild-netbsd-64/-/esbuild-netbsd-64-0.15.18.tgz",
+ "integrity": "sha512-98ukeCdvdX7wr1vUYQzKo4kQ0N2p27H7I11maINv73fVEXt2kyh4K4m9f35U1K43Xc2QGXlzAw0K9yoU7JUjOg==",
+ "optional": true
+ },
+ "esbuild-openbsd-64": {
+ "version": "0.15.18",
+ "resolved": "https://registry.npmjs.org/esbuild-openbsd-64/-/esbuild-openbsd-64-0.15.18.tgz",
+ "integrity": "sha512-yK5NCcH31Uae076AyQAXeJzt/vxIo9+omZRKj1pauhk3ITuADzuOx5N2fdHrAKPxN+zH3w96uFKlY7yIn490xQ==",
+ "optional": true
+ },
+ "esbuild-sunos-64": {
+ "version": "0.15.18",
+ "resolved": "https://registry.npmjs.org/esbuild-sunos-64/-/esbuild-sunos-64-0.15.18.tgz",
+ "integrity": "sha512-On22LLFlBeLNj/YF3FT+cXcyKPEI263nflYlAhz5crxtp3yRG1Ugfr7ITyxmCmjm4vbN/dGrb/B7w7U8yJR9yw==",
+ "optional": true
+ },
+ "esbuild-windows-32": {
+ "version": "0.15.18",
+ "resolved": "https://registry.npmjs.org/esbuild-windows-32/-/esbuild-windows-32-0.15.18.tgz",
+ "integrity": "sha512-o+eyLu2MjVny/nt+E0uPnBxYuJHBvho8vWsC2lV61A7wwTWC3jkN2w36jtA+yv1UgYkHRihPuQsL23hsCYGcOQ==",
+ "optional": true
+ },
+ "esbuild-windows-64": {
+ "version": "0.15.18",
+ "resolved": "https://registry.npmjs.org/esbuild-windows-64/-/esbuild-windows-64-0.15.18.tgz",
+ "integrity": "sha512-qinug1iTTaIIrCorAUjR0fcBk24fjzEedFYhhispP8Oc7SFvs+XeW3YpAKiKp8dRpizl4YYAhxMjlftAMJiaUw==",
+ "optional": true
+ },
+ "esbuild-windows-arm64": {
+ "version": "0.15.18",
+ "resolved": "https://registry.npmjs.org/esbuild-windows-arm64/-/esbuild-windows-arm64-0.15.18.tgz",
+ "integrity": "sha512-q9bsYzegpZcLziq0zgUi5KqGVtfhjxGbnksaBFYmWLxeV/S1fK4OLdq2DFYnXcLMjlZw2L0jLsk1eGoB522WXQ==",
+ "optional": true
+ },
"escalade": {
"version": "3.1.1",
"resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz",
@@ -6389,6 +7117,35 @@
"resolved": "https://registry.npmjs.org/human-signals/-/human-signals-3.0.1.tgz",
"integrity": "sha512-rQLskxnM/5OCldHo+wNXbpVgDn5A17CUoKX+7Sokwaknlq7CdSnphy0W39GU8dw59XiCXmFXDg4fRuckQRKewQ=="
},
+ "i18next": {
+ "version": "22.4.9",
+ "resolved": "https://registry.npmjs.org/i18next/-/i18next-22.4.9.tgz",
+ "integrity": "sha512-8gWMmUz460KJDQp/ob3MNUX84cVuDRY9PLFPnV8d+Qezz/6dkjxwOaH70xjrCNDO+JrUL25iXfAIN9wUkInNZw==",
+ "requires": {
+ "@babel/runtime": "^7.20.6"
+ }
+ },
+ "i18next-browser-languagedetector": {
+ "version": "7.0.1",
+ "resolved": "https://registry.npmjs.org/i18next-browser-languagedetector/-/i18next-browser-languagedetector-7.0.1.tgz",
+ "integrity": "sha512-Pa5kFwaczXJAeHE56CHG2aWzFBMJNUNghf0Pm4SwSrEMps/PTKqW90EYWlIvhuYStf3Sn1K0vw+gH3+TLdkH1g==",
+ "requires": {
+ "@babel/runtime": "^7.19.4"
+ }
+ },
+ "i18next-fs-backend": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/i18next-fs-backend/-/i18next-fs-backend-2.1.1.tgz",
+ "integrity": "sha512-FTnj+UmNgT3YRml5ruRv0jMZDG7odOL/OP5PF5mOqvXud2vHrPOOs68Zdk6iqzL47cnnM0ZVkK2BAvpFeDJToA=="
+ },
+ "i18next-http-backend": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/i18next-http-backend/-/i18next-http-backend-2.1.1.tgz",
+ "integrity": "sha512-jByfUCDVgQ8+/Wens7queQhYYvMcGTW/lR4IJJNEDDXnmqjLrwi8ubXKpmp76/JIWEZHffNdWqnxFJcTVGeaOw==",
+ "requires": {
+ "cross-fetch": "3.1.5"
+ }
+ },
"ieee754": {
"version": "1.2.1",
"resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz",
@@ -6490,6 +7247,11 @@
"resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz",
"integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw=="
},
+ "iso-639-1": {
+ "version": "2.1.15",
+ "resolved": "https://registry.npmjs.org/iso-639-1/-/iso-639-1-2.1.15.tgz",
+ "integrity": "sha512-7c7mBznZu2ktfvyT582E2msM+Udc1EjOyhVRE/0ZsjD9LBtWSm23h3PtiRh2a35XoUsTQQjJXaJzuLjXsOdFDg=="
+ },
"js-tokens": {
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz",
@@ -6547,6 +7309,11 @@
}
}
},
+ "locale-emoji": {
+ "version": "0.3.0",
+ "resolved": "https://registry.npmjs.org/locale-emoji/-/locale-emoji-0.3.0.tgz",
+ "integrity": "sha512-JGm8+naU49CBDnH1jksS3LecPdfWQLxFgkLN6ZhYONKa850pJ0Xt8DPGJnYK0ZuJI8jTuiDDPCDtSL3nyacXwg=="
+ },
"locate-path": {
"version": "6.0.0",
"resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz",
@@ -7107,6 +7874,14 @@
"@types/nlcst": "^1.0.0"
}
},
+ "node-fetch": {
+ "version": "2.6.7",
+ "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.7.tgz",
+ "integrity": "sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ==",
+ "requires": {
+ "whatwg-url": "^5.0.0"
+ }
+ },
"node-releases": {
"version": "2.0.8",
"resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.8.tgz",
@@ -7231,6 +8006,11 @@
"resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-6.2.1.tgz",
"integrity": "sha512-JLyh7xT1kizaEvcaXOQwOc2/Yhw6KZOvPf1S8401UyLk86CU79LN3vl7ztXGm/pZ+YjoyAJ4rxmHwbkBXJX+yw=="
},
+ "pathe": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/pathe/-/pathe-1.1.0.tgz",
+ "integrity": "sha512-ODbEPR0KKHqECXW1GoxdDb+AZvULmXjVPy4rt+pGo2+TnjJTIPJQSVS6N63n8T2Ip+syHhbn52OewKicV0373w=="
+ },
"picocolors": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz",
@@ -7374,6 +8154,11 @@
"util-deprecate": "^1.0.1"
}
},
+ "regenerator-runtime": {
+ "version": "0.13.11",
+ "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.11.tgz",
+ "integrity": "sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg=="
+ },
"rehype": {
"version": "12.0.1",
"resolved": "https://registry.npmjs.org/rehype/-/rehype-12.0.1.tgz",
@@ -7799,6 +8584,11 @@
"is-number": "^7.0.0"
}
},
+ "tr46": {
+ "version": "0.0.3",
+ "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz",
+ "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw=="
+ },
"trim-lines": {
"version": "3.0.1",
"resolved": "https://registry.npmjs.org/trim-lines/-/trim-lines-3.0.1.tgz",
@@ -7834,6 +8624,57 @@
"resolved": "https://registry.npmjs.org/tslib/-/tslib-2.5.0.tgz",
"integrity": "sha512-336iVw3rtn2BUK7ORdIAHTyxHGRIHVReokCR3XjbckJMK7ms8FysBfhLR8IXnAgy7T0PTPNBWKiH514FOW/WSg=="
},
+ "tsm": {
+ "version": "2.3.0",
+ "resolved": "https://registry.npmjs.org/tsm/-/tsm-2.3.0.tgz",
+ "integrity": "sha512-++0HFnmmR+gMpDtKTnW3XJ4yv9kVGi20n+NfyQWB9qwJvTaIWY9kBmzek2YUQK5APTQ/1DTrXmm4QtFPmW9Rzw==",
+ "requires": {
+ "esbuild": "^0.15.16"
+ },
+ "dependencies": {
+ "@esbuild/android-arm": {
+ "version": "0.15.18",
+ "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.15.18.tgz",
+ "integrity": "sha512-5GT+kcs2WVGjVs7+boataCkO5Fg0y4kCjzkB5bAip7H4jfnOS3dA6KPiww9W1OEKTKeAcUVhdZGvgI65OXmUnw==",
+ "optional": true
+ },
+ "@esbuild/linux-loong64": {
+ "version": "0.15.18",
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.15.18.tgz",
+ "integrity": "sha512-L4jVKS82XVhw2nvzLg/19ClLWg0y27ulRwuP7lcyL6AbUWB5aPglXY3M21mauDQMDfRLs8cQmeT03r/+X3cZYQ==",
+ "optional": true
+ },
+ "esbuild": {
+ "version": "0.15.18",
+ "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.15.18.tgz",
+ "integrity": "sha512-x/R72SmW3sSFRm5zrrIjAhCeQSAWoni3CmHEqfQrZIQTM3lVCdehdwuIqaOtfC2slvpdlLa62GYoN8SxT23m6Q==",
+ "requires": {
+ "@esbuild/android-arm": "0.15.18",
+ "@esbuild/linux-loong64": "0.15.18",
+ "esbuild-android-64": "0.15.18",
+ "esbuild-android-arm64": "0.15.18",
+ "esbuild-darwin-64": "0.15.18",
+ "esbuild-darwin-arm64": "0.15.18",
+ "esbuild-freebsd-64": "0.15.18",
+ "esbuild-freebsd-arm64": "0.15.18",
+ "esbuild-linux-32": "0.15.18",
+ "esbuild-linux-64": "0.15.18",
+ "esbuild-linux-arm": "0.15.18",
+ "esbuild-linux-arm64": "0.15.18",
+ "esbuild-linux-mips64le": "0.15.18",
+ "esbuild-linux-ppc64le": "0.15.18",
+ "esbuild-linux-riscv64": "0.15.18",
+ "esbuild-linux-s390x": "0.15.18",
+ "esbuild-netbsd-64": "0.15.18",
+ "esbuild-openbsd-64": "0.15.18",
+ "esbuild-sunos-64": "0.15.18",
+ "esbuild-windows-32": "0.15.18",
+ "esbuild-windows-64": "0.15.18",
+ "esbuild-windows-arm64": "0.15.18"
+ }
+ }
+ }
+ },
"type-fest": {
"version": "2.19.0",
"resolved": "https://registry.npmjs.org/type-fest/-/type-fest-2.19.0.tgz",
@@ -8095,6 +8936,20 @@
"resolved": "https://registry.npmjs.org/web-namespaces/-/web-namespaces-2.0.1.tgz",
"integrity": "sha512-bKr1DkiNa2krS7qxNtdrtHAmzuYGFQLiQ13TsorsdT6ULTkPLKuu5+GsFpDlg6JFjUTwX2DyhMPG2be8uPrqsQ=="
},
+ "webidl-conversions": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz",
+ "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ=="
+ },
+ "whatwg-url": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz",
+ "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==",
+ "requires": {
+ "tr46": "~0.0.3",
+ "webidl-conversions": "^3.0.0"
+ }
+ },
"which": {
"version": "2.0.2",
"resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz",
diff --git a/package.json b/package.json
index 2a49169..6b2b916 100644
--- a/package.json
+++ b/package.json
@@ -8,9 +8,11 @@
"start": "astro dev",
"build": "astro build",
"preview": "astro preview",
+ "i18n-gen": "npx astro-i18next generate",
"astro": "astro"
},
"dependencies": {
- "astro": "^2.0.2"
+ "astro": "^2.0.2",
+ "astro-i18next": "1.0.0-beta.17"
}
}
diff --git a/public/locales/en/translation.json b/public/locales/en/translation.json
new file mode 100644
index 0000000..3fa1778
--- /dev/null
+++ b/public/locales/en/translation.json
@@ -0,0 +1,19 @@
+{
+ "homepage": {
+ "head": {
+ "title": "Facu's website"
+ },
+ "title": "Hi, stalker!",
+ "description-1": "Mi nombre es Facundo Martin Gordillo, y te doy la bienvenida a mi... portafolio...",
+ "description-2": "Si, ya se, no me digas, es un poco feo... Pero bueno, es mejor que nada, Âżno?",
+ "projects": {
+ "title": "Mis proyectos favoritos",
+ "reduxProject": {
+ "title": "A simple Redux project"
+ },
+ "favforme-project": {},
+ "ibm-project": {}
+ },
+ "faq": {}
+ }
+}
diff --git a/public/locales/es/translation.json b/public/locales/es/translation.json
new file mode 100644
index 0000000..3c8ad6d
--- /dev/null
+++ b/public/locales/es/translation.json
@@ -0,0 +1,19 @@
+{
+ "homepage": {
+ "head": {
+ "title": "La página de Facu"
+ },
+ "title": "¡Hola, extraño/a!",
+ "description-1": "Mi nombre es Facundo Martin Gordillo, y te doy la bienvenida a mi... portafolio...",
+ "description-2": "Si, ya se, no me digas, es un poco feo... Pero bueno, es mejor que nada, Âżno?",
+ "projects": {
+ "title": "Mis proyectos favoritos",
+ "reduxProject": {
+ "title": "Un projecto simple de Redux"
+ },
+ "favforme-project": {},
+ "ibm-project": {}
+ },
+ "faq": {}
+ }
+}
diff --git a/src/layouts/Layout.astro b/src/layouts/Layout.astro
index 4759d9d..9e2bb47 100644
--- a/src/layouts/Layout.astro
+++ b/src/layouts/Layout.astro
@@ -1,18 +1,22 @@
---
+import i18next, { t } from "i18next";
+
export interface Props {
+ description?: string;
title: string;
}
-const { title } = Astro.props;
+const { description, title } = Astro.props;
---
-
+
+
{title}
diff --git a/src/pages/es/index.astro b/src/pages/es/index.astro
new file mode 100644
index 0000000..473a0e4
--- /dev/null
+++ b/src/pages/es/index.astro
@@ -0,0 +1,209 @@
+---
+import Layout from "../../layouts/Layout.astro";
+import i18next, { t, changeLanguage } from "i18next";
+import { Trans, LanguageSelector } from "astro-i18next/components";
+
+changeLanguage("es");
+---
+
+
+
+
+ {t("homepage.title")}
+ My name is Facundo Martin Gordillo, and welcome to my... portfolio.
+
+ Yeah I know, you don't have to tell me, it is awful... But hey,
+ betterjustify
+
+ {t("homepage.projects.title")}
+
+ {t("homepage.projects.reduxProject.title")}
+ A user listing which shows all articles created by that user
+
+ Keywords: nextjs
, redux-toolkit
, redux-thunk
, typescript
+
+
+
+
+ FavForMe (discontinued )
+
+ I've worked in a startup called FavForMe, and this is the landing
+ page. It had more features, but I disabled them
+
+
+ FavForMe was a non-profit social crowdfunding company focused on
+ helping to those who help. It had authentication, payments and
+ databases
+
+
+ Keywords: nextjs
, typescript
, prisma
, mercadopago
, sentry
+
+
+
+
+ IBM Public Internet Form User Registration (unofficial )
+
+ Basic form and CSV
generator
+ for an internal IBM tool, allowing them to access the internet
+
+
+ Keywords: react
, material-ui
, formik
+
+
+
+
+
+ FAQ
+
+ Who are you?
+ I've just told you in the top of th-... just kidding
+
+ Facundo Martin Gordillo, Software Engineer since 2019, born and
+ raised in Buenos Aires, Argentina. Currently located in Barcelona,
+ Spain
+
+
+ I list to J-pop, Dalkom Cafe vibes , a lot of Joji stuff, but everything else it's just random stuff. I love to cut my
+ own hair, even if I suck at it
+
+
+ Oh, and if you've haven't noticed, I really love to use emojis to
+ emphasizes an idea
+
+
+ In a near future I'd love to have my own studio to play piano,
+ guitar and try to sing
+
+
+
+ Why this website has no... well, colors or styling?
+
+ TBH, I've been delaying this porfolio for like several years, and I
+ have to start somewhere.
+
+
+ Something that I want to do though, show a small animation of a project
+
+
+ In a near future I will improve it to show my CSS skills, but don't
+ hold your breath
+
+
+
+ Where can I find you?
+ Okey, if you insist...
+
+ You can reach me out via email or Linkedin
+
+
+
+
+
+
+
+
diff --git a/src/pages/index.astro b/src/pages/index.astro
index 03a081f..3428b99 100644
--- a/src/pages/index.astro
+++ b/src/pages/index.astro
@@ -1,197 +1,209 @@
---
import Layout from "../layouts/Layout.astro";
+import { t, changeLanguage } from "i18next";
+import { Trans, LanguageSelector } from "astro-i18next/components";
+
+changeLanguage("en");
---
-
+
- Hi, stalker!
+
+ {t("homepage.title")}
My name is Facundo Martin Gordillo, and welcome to my... portfolio.
- Yeah I know, you don't have to tell me, it is awful... But hey, better
- that nothing, right?
-
-
- My favorite projects
-
- A simple Redux project
- A user listing which shows all articles created by that user
-
- Keywords: nextjs
, redux-toolkit
, redux-thunk
, typescript
-
-
-
- See source code
-
-
- Try it out
+ {t("homepage.projects.title")}
+
+ {t("homepage.projects.reduxProject.title")}
+ A user listing which shows all articles created by that user
+
+ Keywords: nextjs
, redux-toolkit
, redux-thunk
, typescript
+
+
+
+
+ FavForMe (discontinued )
+
+ I've worked in a startup called FavForMe, and this is the landing
+ page. It had more features, but I disabled them
+
+
+ FavForMe was a non-profit social crowdfunding company focused on
+ helping to those who help. It had authentication, payments and
+ databases
+
+
+ Keywords: nextjs
, typescript
, prisma
, mercadopago
, sentry
+
+
+
+
+ IBM Public Internet Form User Registration (unofficial )
+
+ Basic form and CSV
generator
+ for an internal IBM tool, allowing them to access the internet
+
+
+ Keywords: react
, material-ui
, formik
-
-
-
-
- FavForMe (discontinued )
-
- I've worked in a startup called FavForMe, and this is the landing
- page. It had more features, but I disabled them
-
-
- FavForMe was a non-profit social crowdfunding company focused on
- helping to those who help. It had authentication, payments and
- databases
-
-
- Keywords: nextjs
, typescript
, prisma
, mercadopago
, sentry
-
-
+
+
+ FAQ
+
+ Who are you?
+ I've just told you in the top of th-... just kidding
+
+ Facundo Martin Gordillo, Software Engineer since 2019, born and
+ raised in Buenos Aires, Argentina. Currently located in Barcelona,
+ Spain
+
+
+ I list to J-pop, See source code
-
-
- Dalkom Cafe vibes , a lot of Try it out Joji stuff, but everything else it's just random stuff. I love to cut my
+ own hair, even if I suck at it
+
+
+ Oh, and if you've haven't noticed, I really love to use emojis to
+ emphasizes an idea
+
+
+ In a near future I'd love to have my own studio to play piano,
+ guitar and try to sing
+
+
+
+ Why this website has no... well, colors or styling?
+
+ TBH, I've been delaying this porfolio for like several years, and I
+ have to start somewhere.
+
+
+ Something that I want to do though, show a small animation of a project
-
-
-
-
- IBM Public Internet Form User Registration (unofficial )
-
- Basic form and CSV
generator
- for an internal IBM tool, allowing them to access the internet
-
-
- Keywords: react
, material-ui
, formik
-
-
+
+ Where can I find you?
+ Okey, if you insist...
+
+ You can reach me out via See source code
-
-
- email or Try it out Linkedin
-
-
-
-
-
- FAQ
-
- Who are you?
- I've just told you in the top of th-... just kidding
-
- Facundo Martin Gordillo, Software Engineer since 2019, born and raised
- in Buenos Aires, Argentina. Currently located in Barcelona, Spain
-
-
- I list to J-pop, Dalkom Cafe vibes , a lot of Joji stuff, but everything else it's just random stuff. I love to cut my own
- hair, even if I suck at it
-
-
- Oh, and if you've haven't noticed, I really love to use emojis to
- emphasizes an idea
-
-
- In a near future I'd love to have my own studio to play piano, guitar
- and try to sing
-
-
-
- Why this website has no... well, colors or styling?
-
- TBH, I've been delaying this porfolio for like several years, and I
- have to start somewhere.
-
-
- Something that I want to do though, show a small animation of a project
-
-
- In a near future I will improve it to show my CSS skills, but don't
- hold your breath
-
-
-
- Where can I find you?
- Okey, if you insist...
-
- You can reach me out via email or Linkedin
-
-
-
+
+
+
+
-
-
+ .project__gif {
+ width: 100%;
+ }
+
+
From 5a3e7a099aa2eedc19b540dd03acac8c3aaf2e82 Mon Sep 17 00:00:00 2001
From: Facundo Martin Gordillo
Date: Sun, 29 Jan 2023 01:39:38 +0100
Subject: [PATCH 2/4] wip: added more locales
---
public/locales/en/translation.json | 21 +-
public/locales/es/translation.json | 19 +-
src/pages/es/index.astro | 370 +++++++++++++++--------------
src/pages/index.astro | 368 ++++++++++++++--------------
4 files changed, 408 insertions(+), 370 deletions(-)
diff --git a/public/locales/en/translation.json b/public/locales/en/translation.json
index 3fa1778..079d947 100644
--- a/public/locales/en/translation.json
+++ b/public/locales/en/translation.json
@@ -4,15 +4,24 @@
"title": "Facu's website"
},
"title": "Hi, stalker!",
- "description-1": "Mi nombre es Facundo Martin Gordillo, y te doy la bienvenida a mi... portafolio...",
- "description-2": "Si, ya se, no me digas, es un poco feo... Pero bueno, es mejor que nada, Âżno?",
+ "description": "<0>My name is Facundo Martin Gordillo, and welcome to my... portfolio. Yeah I know, you don't have to tell me, it is awful... But hey better than nothing, right?0>",
+ "keywords": "Keywords",
+ "sourceCode": "See source code",
+ "tryItOut": "Try it out",
"projects": {
- "title": "Mis proyectos favoritos",
+ "title": "My favorite projects",
"reduxProject": {
- "title": "A simple Redux project"
+ "title": "A simple Redux project",
+ "description": "A user listing web which shows all articles created by that user"
},
- "favforme-project": {},
- "ibm-project": {}
+ "favformeProject": {
+ "title": "FavForMe (<0>discontinued0>)",
+ "description": "<0>I've worked in a startup called FavForMe, and this is the landing page0><1>FavForMe was a non-profit social crowdfunding organization focused on helping to those who help1>"
+ },
+ "ibmProject": {
+ "title": "IBM Public Internet Form User Registration (<0>unofficial0>)",
+ "description": "Basic form and <0>CSV0> generator for an internal IBM tool, allowing them to access the internet inside IBM"
+ }
},
"faq": {}
}
diff --git a/public/locales/es/translation.json b/public/locales/es/translation.json
index 3c8ad6d..d8fc7b9 100644
--- a/public/locales/es/translation.json
+++ b/public/locales/es/translation.json
@@ -4,15 +4,24 @@
"title": "La página de Facu"
},
"title": "¡Hola, extraño/a!",
- "description-1": "Mi nombre es Facundo Martin Gordillo, y te doy la bienvenida a mi... portafolio...",
- "description-2": "Si, ya se, no me digas, es un poco feo... Pero bueno, es mejor que nada, Âżno?",
+ "description": "<0>Mi nombre es Facundo Martin Gordillo, y te doy la bienvenida a mi... portafolio... Si, ya se, no me digas, es un poco feo... Pero bueno, es mejor que nada, Âżno?0>",
+ "keywords": "Palabras clave",
+ "sourceCode": "Ver cĂłdigo fuente",
+ "tryItOut": "Ver demo",
"projects": {
"title": "Mis proyectos favoritos",
"reduxProject": {
- "title": "Un projecto simple de Redux"
+ "title": "Un projecto simple de Redux",
+ "description": "Página web que lista todos los usuarios con artĂculos creados"
},
- "favforme-project": {},
- "ibm-project": {}
+ "favformeProject": {
+ "title": "FavForMe (<0>descontinuo0>)",
+ "description": "<0>Trabajé en una startup llamada FavForMe, y esta es su landing page0><1>FavForMe era una organización de crowdfunding social enfocada en ayudar a quienes ayudan1>"
+ },
+ "ibmProject": {
+ "title": "Registro de Usuarios para Internet PĂşblica en IBM (<0>no oficial0>)",
+ "description": "Formulario básico y generador de <0>CSV0>s para una herramienta internal de IBM, que permite otorgar acceso a internet dentro del edificio IBM"
+ }
},
"faq": {}
}
diff --git a/src/pages/es/index.astro b/src/pages/es/index.astro
index 473a0e4..933eebc 100644
--- a/src/pages/es/index.astro
+++ b/src/pages/es/index.astro
@@ -1,6 +1,6 @@
---
import Layout from "../../layouts/Layout.astro";
-import i18next, { t, changeLanguage } from "i18next";
+import { t, changeLanguage } from "i18next";
import { Trans, LanguageSelector } from "astro-i18next/components";
changeLanguage("es");
@@ -9,40 +9,48 @@ changeLanguage("es");
- {t("homepage.title")}
- My name is Facundo Martin Gordillo, and welcome to my... portfolio.
-
- Yeah I know, you don't have to tell me, it is awful... But hey,
- betterjustify
-
- {t("homepage.projects.title")}
-
- {t("homepage.projects.reduxProject.title")}
- A user listing which shows all articles created by that user
-
- Keywords: nextjs
, redux-toolkit
, redux-thunk
, typescript
-
-
-
-
- FavForMe (discontinued )
+ {t("homepage.title")} 🥺
+
+
+ My name is Facundo Martin Gordillo, and welcome to my... portfolio.
+ Yeah, I know, you don't have to tell me, it is awful... But hey better
+ than nothing, right?
+
+
+
+ {t("homepage.projects.title")}
+
+ {t("homepage.projects.reduxProject.title")}
+ {t("homepage.projects.reduxProject.description")}
+
+ {t("homepage.keywords")}: nextjs
, redux-toolkit
, redux-thunk
, typescript
+
+
+
+
+
+
+ FavForMe (discontinued )
+
+
+
I've worked in a startup called FavForMe, and this is the landing
page. It had more features, but I disabled them
@@ -52,158 +60,160 @@ changeLanguage("es");
helping to those who help. It had authentication, payments and
databases
-
- Keywords: nextjs
, typescript
, prisma
, mercadopago
, sentry
-
-
-
-
- IBM Public Internet Form User Registration (unofficial )
-
- Basic form and CSV
generator
- for an internal IBM tool, allowing them to access the internet
-
-
- Keywords: react
, material-ui
, formik
-
-
-
-
-
- FAQ
-
- Who are you?
- I've just told you in the top of th-... just kidding
-
- Facundo Martin Gordillo, Software Engineer since 2019, born and
- raised in Buenos Aires, Argentina. Currently located in Barcelona,
- Spain
-
-
- I list to J-pop,
+
+ {t("homepage.keywords")}: nextjs
, typescript
, prisma
, mercadopago
, sentry
+
+
-
- Oh, and if you've haven't noticed, I really love to use emojis to
- emphasizes an idea
-
-
- In a near future I'd love to have my own studio to play piano,
- guitar and try to sing
-
-
-
- Why this website has no... well, colors or styling?
-
- TBH, I've been delaying this porfolio for like several years, and I
- have to start somewhere.
-
-
- Something that I want to do though, show a small animation of a project {t("homepage.tryItOut")}
-
-
- In a near future I will improve it to show my CSS skills, but don't
- hold your breath
-
-
-
- Where can I find you?
- Okey, if you insist...
-
- You can reach me out via
+
+
+
+
+
+ IBM Public Internet Form User Registration (unofficial )
+
+
+
+
+ Basic form and CSV
generator
+ for an internal IBM tool, allowing them to access the internet
+
+
+
+ {t("homepage.keywords")}: react
, material-ui
, formik
+
+
-
-
-
+
+
+
+
+
+ FAQ
+
+ Who are you?
+ I've just told you in the top of th-... just kidding
+
+ Facundo Martin Gordillo, Software Engineer since 2019, born and raised
+ in Buenos Aires, Argentina. Currently located in Barcelona, Spain
+
+
+ I list to J-pop, Dalkom Cafe vibes , a lot of Joji stuff, but everything else it's just random stuff. I love to cut my own
+ hair, even if I suck at it
+
+
+ Oh, and if you've haven't noticed, I really love to use emojis to
+ emphasizes an idea
+
+
+ In a near future I'd love to have my own studio to play piano, guitar
+ and try to sing
+
+
+
+ Why this website has no... well, colors or styling?
+
+ TBH, I've been delaying this porfolio for like several years, and I
+ have to start somewhere.
+
+
+ Something that I want to do though, show a small animation of a project
+
+
+ In a near future I will improve it to show my CSS skills, but don't
+ hold your breath
+
+
+
+ Where can I find you?
+ Okey, if you insist...
+
+ You can reach me out via email or Linkedin
+
+
+
+
-
-
+ details {
+ border: 1px solid #000;
+ padding: 8px 16px;
+ }
+ details > summary {
+ user-select: none;
+ }
+ details > summary:hover {
+ cursor: pointer;
+ }
+
+ section {
+ display: flex;
+ flex-direction: column;
+ gap: 8px;
+ }
+
+ .project__gif {
+ width: 100%;
+ }
+
diff --git a/src/pages/index.astro b/src/pages/index.astro
index 3428b99..f45a3c8 100644
--- a/src/pages/index.astro
+++ b/src/pages/index.astro
@@ -9,40 +9,48 @@ changeLanguage("en");
- {t("homepage.title")}
- My name is Facundo Martin Gordillo, and welcome to my... portfolio.
-
- Yeah I know, you don't have to tell me, it is awful... But hey,
- betterjustify
-
- {t("homepage.projects.title")}
-
- {t("homepage.projects.reduxProject.title")}
- A user listing which shows all articles created by that user
-
- Keywords: nextjs
, redux-toolkit
, redux-thunk
, typescript
-
-
-
-
- FavForMe (discontinued )
+ {t("homepage.title")} 🥺
+
+
+ My name is Facundo Martin Gordillo, and welcome to my... portfolio.
+ Yeah, I know, you don't have to tell me, it is awful... But hey better
+ than nothing, right?
+
+
+
+ {t("homepage.projects.title")}
+
+ {t("homepage.projects.reduxProject.title")}
+ {t("homepage.projects.reduxProject.description")}
+
+ {t("homepage.keywords")}: nextjs
, redux-toolkit
, redux-thunk
, typescript
+
+
+
+
+
+
+ FavForMe (discontinued )
+
+
+
I've worked in a startup called FavForMe, and this is the landing
page. It had more features, but I disabled them
@@ -52,158 +60,160 @@ changeLanguage("en");
helping to those who help. It had authentication, payments and
databases
-
- Keywords: nextjs
, typescript
, prisma
, mercadopago
, sentry
-
-
-
-
- IBM Public Internet Form User Registration (unofficial )
-
- Basic form and CSV
generator
- for an internal IBM tool, allowing them to access the internet
-
-
- Keywords: react
, material-ui
, formik
-
-
-
-
-
- FAQ
-
- Who are you?
- I've just told you in the top of th-... just kidding
-
- Facundo Martin Gordillo, Software Engineer since 2019, born and
- raised in Buenos Aires, Argentina. Currently located in Barcelona,
- Spain
-
-
- I list to J-pop,
+
+ {t("homepage.keywords")}: nextjs
, typescript
, prisma
, mercadopago
, sentry
+
+
-
- Oh, and if you've haven't noticed, I really love to use emojis to
- emphasizes an idea
-
-
- In a near future I'd love to have my own studio to play piano,
- guitar and try to sing
-
-
-
- Why this website has no... well, colors or styling?
-
- TBH, I've been delaying this porfolio for like several years, and I
- have to start somewhere.
-
-
- Something that I want to do though, show a small animation of a project {t("homepage.tryItOut")}
-
-
- In a near future I will improve it to show my CSS skills, but don't
- hold your breath
-
-
-
- Where can I find you?
- Okey, if you insist...
-
- You can reach me out via
+
+
+
+
+
+ IBM Public Internet Form User Registration (unofficial )
+
+
+
+
+ Basic form and CSV
generator
+ for an internal IBM tool, allowing them to access the internet
+
+
+
+ {t("homepage.keywords")}: react
, material-ui
, formik
+
+
-
-
-
+
+
+
+
+
+ FAQ
+
+ Who are you?
+ I've just told you in the top of th-... just kidding
+
+ Facundo Martin Gordillo, Software Engineer since 2019, born and raised
+ in Buenos Aires, Argentina. Currently located in Barcelona, Spain
+
+
+ I list to J-pop, Dalkom Cafe vibes , a lot of Joji stuff, but everything else it's just random stuff. I love to cut my own
+ hair, even if I suck at it
+
+
+ Oh, and if you've haven't noticed, I really love to use emojis to
+ emphasizes an idea
+
+
+ In a near future I'd love to have my own studio to play piano, guitar
+ and try to sing
+
+
+
+ Why this website has no... well, colors or styling?
+
+ TBH, I've been delaying this porfolio for like several years, and I
+ have to start somewhere.
+
+
+ Something that I want to do though, show a small animation of a project
+
+
+ In a near future I will improve it to show my CSS skills, but don't
+ hold your breath
+
+
+
+ Where can I find you?
+ Okey, if you insist...
+
+ You can reach me out via email or Linkedin
+
+
+
+
-
-
+ details {
+ border: 1px solid #000;
+ padding: 8px 16px;
+ }
+ details > summary {
+ user-select: none;
+ }
+ details > summary:hover {
+ cursor: pointer;
+ }
+
+ section {
+ display: flex;
+ flex-direction: column;
+ gap: 8px;
+ }
+
+ .project__gif {
+ width: 100%;
+ }
+
From c6adc9da8592b5f8ed38a8188253dcce17885a42 Mon Sep 17 00:00:00 2001
From: Facundo Martin Gordillo
Date: Sun, 29 Jan 2023 01:45:12 +0100
Subject: [PATCH 3/4] feat: added husky with translate generator
---
.husky/pre-commit | 4 ++++
package-lock.json | 24 ++++++++++++++++++++++++
package.json | 6 +++++-
3 files changed, 33 insertions(+), 1 deletion(-)
create mode 100755 .husky/pre-commit
diff --git a/.husky/pre-commit b/.husky/pre-commit
new file mode 100755
index 0000000..1b30dc3
--- /dev/null
+++ b/.husky/pre-commit
@@ -0,0 +1,4 @@
+#!/usr/bin/env sh
+. "$(dirname -- "$0")/_/husky.sh"
+
+npm run gen
diff --git a/package-lock.json b/package-lock.json
index 3c09e76..e9aeb7f 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -10,6 +10,9 @@
"dependencies": {
"astro": "^2.0.2",
"astro-i18next": "1.0.0-beta.17"
+ },
+ "devDependencies": {
+ "husky": "8.0.3"
}
},
"node_modules/@ampproject/remapping": {
@@ -2502,6 +2505,21 @@
"node": ">=12.20.0"
}
},
+ "node_modules/husky": {
+ "version": "8.0.3",
+ "resolved": "https://registry.npmjs.org/husky/-/husky-8.0.3.tgz",
+ "integrity": "sha512-+dQSyqPh4x1hlO1swXBiNb2HzTDN1I2IGLQx1GrBuiqFJfoMrnZWwVmatvSiO+Iz8fBUnf+lekwNo4c2LlXItg==",
+ "dev": true,
+ "bin": {
+ "husky": "lib/bin.js"
+ },
+ "engines": {
+ "node": ">=14"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/typicode"
+ }
+ },
"node_modules/i18next": {
"version": "22.4.9",
"resolved": "https://registry.npmjs.org/i18next/-/i18next-22.4.9.tgz",
@@ -7117,6 +7135,12 @@
"resolved": "https://registry.npmjs.org/human-signals/-/human-signals-3.0.1.tgz",
"integrity": "sha512-rQLskxnM/5OCldHo+wNXbpVgDn5A17CUoKX+7Sokwaknlq7CdSnphy0W39GU8dw59XiCXmFXDg4fRuckQRKewQ=="
},
+ "husky": {
+ "version": "8.0.3",
+ "resolved": "https://registry.npmjs.org/husky/-/husky-8.0.3.tgz",
+ "integrity": "sha512-+dQSyqPh4x1hlO1swXBiNb2HzTDN1I2IGLQx1GrBuiqFJfoMrnZWwVmatvSiO+Iz8fBUnf+lekwNo4c2LlXItg==",
+ "dev": true
+ },
"i18next": {
"version": "22.4.9",
"resolved": "https://registry.npmjs.org/i18next/-/i18next-22.4.9.tgz",
diff --git a/package.json b/package.json
index 6b2b916..af7e499 100644
--- a/package.json
+++ b/package.json
@@ -4,15 +4,19 @@
"version": "0.0.1",
"private": true,
"scripts": {
+ "prepare": "husky install",
"dev": "astro dev",
"start": "astro dev",
"build": "astro build",
"preview": "astro preview",
- "i18n-gen": "npx astro-i18next generate",
+ "gen": "astro-i18next generate",
"astro": "astro"
},
"dependencies": {
"astro": "^2.0.2",
"astro-i18next": "1.0.0-beta.17"
+ },
+ "devDependencies": {
+ "husky": "8.0.3"
}
}
From f48a4dd1f1c45d24530f1a124b1a3c59a6dd0902 Mon Sep 17 00:00:00 2001
From: Facundo Martin Gordillo
Date: Sun, 29 Jan 2023 02:02:09 +0100
Subject: [PATCH 4/4] feat: new content
---
public/locales/en/translation.json | 7 +++-
src/pages/es/index.astro | 54 ++++++++++++++++--------------
src/pages/index.astro | 54 ++++++++++++++++--------------
3 files changed, 62 insertions(+), 53 deletions(-)
diff --git a/public/locales/en/translation.json b/public/locales/en/translation.json
index 079d947..4c318db 100644
--- a/public/locales/en/translation.json
+++ b/public/locales/en/translation.json
@@ -23,6 +23,11 @@
"description": "Basic form and <0>CSV0> generator for an internal IBM tool, allowing them to access the internet inside IBM"
}
},
- "faq": {}
+ "faq": {
+ "whoAreYou": {
+ "title": "Who are you?",
+ "description": "<0>Who are you?<0><1>Facundo Martin Gordillo, Software Engineer since 2019, born and raised in Buenos Aires, Argentina. Currently located in Barcelona, Spain1><2>I list to J-pop, <3>Dalkom Cafe vibes3>, a lot of <4>Joji4> stuff, but everything else it's just random stuff. I love to cut my own hair, even if I suck at it2><5>Oh, and if you've haven't noticed, I really love to use emojis to emphasizes an idea5><6>In a near future I'd love to have my own studio to play piano, guitar and <7>try7> to sing6>"
+ }
+ }
}
}
diff --git a/src/pages/es/index.astro b/src/pages/es/index.astro
index 933eebc..da0f42f 100644
--- a/src/pages/es/index.astro
+++ b/src/pages/es/index.astro
@@ -119,32 +119,34 @@ changeLanguage("es");
FAQ
- Who are you?
- I've just told you in the top of th-... just kidding
-
- Facundo Martin Gordillo, Software Engineer since 2019, born and raised
- in Buenos Aires, Argentina. Currently located in Barcelona, Spain
-
-
- I list to J-pop, Dalkom Cafe vibes , a lot of Joji stuff, but everything else it's just random stuff. I love to cut my own
- hair, even if I suck at it
-
-
- Oh, and if you've haven't noticed, I really love to use emojis to
- emphasizes an idea
-
-
- In a near future I'd love to have my own studio to play piano, guitar
- and try to sing
-
+ {t("homepage.faq.whoAreYou.title")}
+
+
+ Facundo Martin Gordillo, Software Engineer since 2019, born and
+ raised in Buenos Aires, Argentina. Currently located in Barcelona,
+ Spain
+
+
+ I list to J-pop, Dalkom Cafe vibes , a lot of Joji stuff, but everything else it's just random stuff. I love to cut my
+ own hair, even if I suck at it
+
+
+ Oh, and if you've haven't noticed, I really love to use emojis to
+ emphasizes an idea
+
+
+ In a near future I'd love to have my own studio to play piano,
+ guitar and try to sing
+
+
Why this website has no... well, colors or styling?
diff --git a/src/pages/index.astro b/src/pages/index.astro
index f45a3c8..e651908 100644
--- a/src/pages/index.astro
+++ b/src/pages/index.astro
@@ -119,32 +119,34 @@ changeLanguage("en");
FAQ
- Who are you?
- I've just told you in the top of th-... just kidding
-
- Facundo Martin Gordillo, Software Engineer since 2019, born and raised
- in Buenos Aires, Argentina. Currently located in Barcelona, Spain
-
-
- I list to J-pop, Dalkom Cafe vibes , a lot of Joji stuff, but everything else it's just random stuff. I love to cut my own
- hair, even if I suck at it
-
-
- Oh, and if you've haven't noticed, I really love to use emojis to
- emphasizes an idea
-
-
- In a near future I'd love to have my own studio to play piano, guitar
- and try to sing
-
+ {t("homepage.faq.whoAreYou.title")}
+
+
+ Facundo Martin Gordillo, Software Engineer since 2019, born and
+ raised in Buenos Aires, Argentina. Currently located in Barcelona,
+ Spain
+
+
+ I list to J-pop, Dalkom Cafe vibes , a lot of Joji stuff, but everything else it's just random stuff. I love to cut my
+ own hair, even if I suck at it
+
+
+ Oh, and if you've haven't noticed, I really love to use emojis to
+ emphasizes an idea
+
+
+ In a near future I'd love to have my own studio to play piano,
+ guitar and try to sing
+
+
Why this website has no... well, colors or styling?