aboutsummaryrefslogtreecommitdiff
path: root/src/layouts
diff options
context:
space:
mode:
authorAriel Costas Guerrero <ariel@costas.dev>2025-04-21 22:54:15 +0200
committerAriel Costas Guerrero <ariel@costas.dev>2025-04-21 22:54:15 +0200
commitb4ef1a0d288565f744bf754af456c4f60da99ca7 (patch)
tree907c88a2e59370a0b06dbd60aa1cc297b67b004b /src/layouts
parente96af5ce5e8dd00cf8a31d4812f416583defa449 (diff)
Refactor localization: remove i18n support and update layouts to use static text
Diffstat (limited to 'src/layouts')
-rw-r--r--src/layouts/ContactPageLayout.astro25
-rw-r--r--src/layouts/GeoblockedPageLayout.astro45
-rw-r--r--src/layouts/HomePageLayout.astro38
-rw-r--r--src/layouts/Layout.astro25
-rw-r--r--src/layouts/PortfolioPageLayout.astro5
-rw-r--r--src/layouts/TrajectoryPageLayout.astro4
6 files changed, 91 insertions, 51 deletions
diff --git a/src/layouts/ContactPageLayout.astro b/src/layouts/ContactPageLayout.astro
index c09969f..3a02293 100644
--- a/src/layouts/ContactPageLayout.astro
+++ b/src/layouts/ContactPageLayout.astro
@@ -1,18 +1,18 @@
---
-import { useTranslations } from "../i18n";
import Layout from "./Layout.astro";
-const t = useTranslations(Astro.currentLocale);
-
const schema = {
"@context": "https://schema.org",
"@type": "ContactPage",
url: "https://www.costas.dev/contact",
- headline: t.contactPage.headline,
+ headline: "Contacta conmigo",
};
---
-<Layout title={t.contactPage.title} description={t.contactPage.description}>
+<Layout
+ title="Contacto"
+ description="Las formas de ponerte en contacto conmigo, ya sea por correo electrónico, teléfono o redes sociales."
+>
<script
is:inline
type="application/ld+json"
@@ -20,17 +20,24 @@ const schema = {
set:html={JSON.stringify(schema)}
/>
- <h1>{t.contactPage.headline}</h1>
+ <h1>"Contacta conmigo"</h1>
<noscript>
<div role="alert" class="warning">
- {t.contactPage.enableJs}
+ Es necesario activar JavaScript para ver la dirección de correo
+ electrónico y el número de teléfono. Esto se hace para evitar scrapers y
+ spam.
</div>
</noscript>
- <p set:html={t.contactPage.intro} />
+ <p>
+ La forma más sencilla de contactar conmigo es a través de mi dirección de
+ correo electrónico: <a href="#" id="email-addr">Activa JS</a>. También
+ puedes usar <a href="https://wa.me/message/W7T7L4EZAELQI1">WhatsApp</a> con el
+ número de teléfono <a href="#" id="phone-number">Activa JS</a>.
+ </p>
- <p>{t.contactPage.socialMedia}</p>
+ <p>También puedes encontrarme en algunas redes sociales:</p>
<dl>
<dt>GitHub</dt>
diff --git a/src/layouts/GeoblockedPageLayout.astro b/src/layouts/GeoblockedPageLayout.astro
new file mode 100644
index 0000000..58c78b5
--- /dev/null
+++ b/src/layouts/GeoblockedPageLayout.astro
@@ -0,0 +1,45 @@
+---
+import Layout from "./Layout.astro";
+---
+
+<Layout
+ title="Geoblocked"
+ description="Access to this page is restricted, learn why."
+ empty
+>
+ <Fragment slot="head-jsonld">
+ <meta name="robots" content="noindex" />
+ </Fragment>
+
+ <h1>Geo-blocked</h1>
+ <p>
+ This page is purposely blocked for users on your region due to ethical
+ concerns, spam or abuse (or a combination of all these).
+ </p>
+
+ <h2>Blocked countries</h2>
+ <ul>
+ <li>(US) United States of America - And colonies</li>
+ <li>(PR) Puerto Rico</li>
+ <li>(GU) Guam</li>
+ <li>(AS) American Samoa</li>
+ <li>(VI) U.S. Virgin Islands</li>
+ <li>(MP) Northern Mariana Islands</li>
+ <br />
+ <li>(SV) El Salvador</li>
+ <li>(RU) Russian Federation</li>
+ <li>(BY) Belarus</li>
+ <br />
+ <li>(IL) Israel</li>
+ <li>(HU) Hungary</li>
+ <li>(TR) Turkey</li>
+ <li>(CN) China</li>
+ <li>(SA) Saudi Arabia</li>
+ </ul>
+
+ <p>
+ I am open to adding more countries to the list or removing them at any time.
+ I am aware of many other countries that have committed human rights abuses,
+ but these are the ones more likely to have users on this website.
+ </p>
+</Layout>
diff --git a/src/layouts/HomePageLayout.astro b/src/layouts/HomePageLayout.astro
index 0906a11..e243c6e 100644
--- a/src/layouts/HomePageLayout.astro
+++ b/src/layouts/HomePageLayout.astro
@@ -1,24 +1,21 @@
---
import { getCollection } from "astro:content";
import Layout from "./Layout.astro";
-import { useTranslations } from "../i18n";
const blogCollection = (await getCollection("blog")).sort((a, b) => {
return b.data.publishedAt.getTime() - a.data.publishedAt.getTime();
});
-const t = useTranslations(Astro.currentLocale);
-
const schema = {
"@context": "http://schema.org",
"@type": "WebSite",
id: "https://www.costas.dev/",
url: "https://www.costas.dev/",
- headline: t.homePage.title,
+ headline: "Ariel Costas - Desarrollador web",
};
---
-<Layout title={t.homePage.title} description={t.homePage.description}>
+<Layout title="Inicio" description="Página de inicio de mi web">
<script
is:inline
type="application/ld+json"
@@ -26,18 +23,29 @@ const schema = {
set:html={JSON.stringify(schema)}
/>
- <h1>{t.homePage.title}</h1>
- <p>{t.homePage.welcome}</p>
+ <h1>Inicio</h1>
+ <p>
+ Te doy la bienvenida a mi web. Me llamo Ariel, y aquí encontrarás
+ información sobre mí y mis proyectos.
+ </p>
- <h2>{t.homePage.whoAmI}</h2>
- <p>{t.homePage.whoAmIDesc}</p>
- <a href="/trajectory">{t.homePage.moreAboutMe}</a>
+ <h2>¿Quién soy?</h2>
+ <p>
+ Soy un desarrollador web que le gusta aprender cosas nuevas y compartir su
+ conocimiento. Me gusta la programación, el diseño web y la creatividad. Me
+ encanta crear cosas nuevas y aprender de los demás.
+ </p>
+ <a href="/trajectory">Más información sobre mí</a>
- <h2>{t.homePage.whatIDo}</h2>
- <p>{t.homePage.whatIDoDesc}</p>
- <a href="/portfolio">{t.homePage.myPortfolio}</a>
+ <h2>¿Qué hago?</h2>
+ <p>
+ Actualmente trabajo como desarrollador de software y administrador Cloud en
+ una empresa de tecnología. Me encargo de desarrollar aplicaciones web en PHP
+ y desplegarlas en la nube de forma segura y eficiente.
+ </p>
+ <a href="/portfolio">Mi portfolio</a>
- <h2>{t.homePage.latestBlogPosts}</h2>
+ <h2>Últimas entradas del blog</h2>
<ul>
{
blogCollection.slice(0, 5).map((p) => {
@@ -55,5 +63,5 @@ const schema = {
})
}
</ul>
- <a href="/blog">{t.homePage.viewAllPosts}</a>
+ <a href="/blog">Ver todas las entradas</a>
</Layout>
diff --git a/src/layouts/Layout.astro b/src/layouts/Layout.astro
index 30251ae..97115b5 100644
--- a/src/layouts/Layout.astro
+++ b/src/layouts/Layout.astro
@@ -3,16 +3,14 @@ import "@fontsource/beiruti";
import "@fontsource-variable/sen";
import Header from "../partials/Header.astro";
import Footer from "../partials/Footer.astro";
-import { getAbsoluteLocaleUrl } from "astro:i18n";
-import { getUrlWithoutLocale } from "../i18n";
interface Props {
title: string;
description: string;
+ empty?: boolean;
}
-const { title, description } = Astro.props;
-const urlWithoutLocale = getUrlWithoutLocale(Astro.url.pathname);
+const { title, description, empty } = Astro.props;
---
<!doctype html>
@@ -23,21 +21,6 @@ const urlWithoutLocale = getUrlWithoutLocale(Astro.url.pathname);
<meta name="viewport" content="width=device-width" />
<link rel="canonical" href={Astro.url.toString().replace(/\.html$/, "")} />
- <link
- rel="alternate"
- hreflang="es"
- href={getAbsoluteLocaleUrl("es", urlWithoutLocale)}
- />
- <link
- rel="alternate"
- hreflang="en"
- href={getAbsoluteLocaleUrl("en", urlWithoutLocale)}
- />
- <link
- rel="alternate"
- hreflang="x-default"
- href={getAbsoluteLocaleUrl("es", urlWithoutLocale)}
- />
<link rel="alternate" type="application/rss+xml" href="/blog.xml" />
<link rel="sitemap" type="application/xml" href="/sitemap-index.xml" />
@@ -62,11 +45,11 @@ const urlWithoutLocale = getUrlWithoutLocale(Astro.url.pathname);
<slot name="head-jsonld" />
</head>
<body>
- <Header />
+ {empty ? null : <Header />}
<main>
<slot />
</main>
- <Footer />
+ {empty ? null : <Footer />}
</body>
</html>
diff --git a/src/layouts/PortfolioPageLayout.astro b/src/layouts/PortfolioPageLayout.astro
index 88f8614..c2d2b38 100644
--- a/src/layouts/PortfolioPageLayout.astro
+++ b/src/layouts/PortfolioPageLayout.astro
@@ -1,10 +1,9 @@
---
+import t from "../i18n/es.json";
+
import Layout from "./Layout.astro";
-import { useTranslations } from "../i18n";
import TechnologyBadge from "../partials/TechnologyBadge.astro";
-const t = useTranslations(Astro.currentLocale);
-
const schema = {
"@context": "https://schema.org",
"@type": "WebPage",
diff --git a/src/layouts/TrajectoryPageLayout.astro b/src/layouts/TrajectoryPageLayout.astro
index a5bfb46..9a0bd53 100644
--- a/src/layouts/TrajectoryPageLayout.astro
+++ b/src/layouts/TrajectoryPageLayout.astro
@@ -1,9 +1,7 @@
---
-import { useTranslations } from "../i18n";
+import t from "../i18n/es.json";
import Layout from "./Layout.astro";
-const t = useTranslations(Astro.currentLocale);
-
const schema = {
"@context": "https://schema.org",
"@type": "WebPage",