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 outJoji 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 outLinkedin -
  • - -
    -
    -
    -

    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?", + "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>discontinued)", + "description": "<0>I've worked in a startup called FavForMe, and this is the landing page<1>FavForMe was a non-profit social crowdfunding organization focused on helping to those who help" + }, + "ibmProject": { + "title": "IBM Public Internet Form User Registration (<0>unofficial)", + "description": "Basic form and <0>CSV 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?", + "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>descontinuo)", + "description": "<0>Trabajé en una startup llamada FavForMe, y esta es su landing page<1>FavForMe era una organización de crowdfunding social enfocada en ayudar a quienes ayudan" + }, + "ibmProject": { + "title": "Registro de Usuarios para Internet Pública en IBM (<0>no oficial)", + "description": "Formulario básico y generador de <0>CSVs 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 +

    +
      +
    • + Dalkom Cafe vibes, a lot of {t("homepage.sourceCode")} +
    • +
    • + 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{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 +

    +
      +
    • + Dalkom Cafe vibes, a lot of {t("homepage.sourceCode")} +
    • +
    • + 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{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>CSV 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, Spain<2>I list to J-pop, <3>Dalkom Cafe vibes, a lot of <4>Joji stuff, but everything else it's just random stuff. I love to cut my own hair, even if I suck at it<5>Oh, and if you've haven't noticed, I really love to use emojis to emphasizes an idea<6>In a near future I'd love to have my own studio to play piano, guitar and <7>try to sing" + } + } } } 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?