Um blog estático que traduz suas próprias URLs em oito idiomas

/ Artigo

Tradução automática. Ler o original em inglês: A static blog that translates its own URLs into eight languages →

Este é o primeiro post, então nada melhor do que explicar a máquina que o publicou. O site inteiro é feito de arquivos estáticos. Sem servidor, sem banco de dados, nada para manter rodando.

Escrevendo um post

Basta colocar um arquivo markdown em src/content/blog/en/. O nome do arquivo vira a URL, então how-i-removed-greptile.md é publicado em /blog/how-i-removed-greptile. O frontmatter é curto:

---
title: How I removed Greptile
description: One sentence for search results and social cards.
pubDate: 2026-08-07
tags: [tooling, code-review]
---

Defina draft: true enquanto ainda estiver trabalhando nele. Rascunhos são renderizados no npm run dev, mas ficam de fora do build.

Tradução

Quando um post chega na main, uma GitHub Action o envia para o DeepSeek V4 Flash e escreve oito traduções de volta no repositório como arquivos markdown comuns. O slug também é traduzido, então a versão turca deste post vive em uma URL turca, em vez de uma inglesa com um prefixo /tr grudado.

Cada arquivo traduzido registra um hash da fonte em inglês de onde veio. Na próxima execução, posts cujo hash ainda corresponde são pulados, então editar um post retraduz um post, não o arquivo inteiro.

Camada Escolha
Framework Astro, saída estática
Hospedagem Cloudflare Workers static assets
Tradução DeepSeek V4 Flash no Fireworks
Conteúdo Markdown no git

Deploy

Fazer merge na main roda o passo de tradução, commita o que mudou, faz o build e faz o deploy. O build leva alguns segundos e a saída é uma pasta de HTML.

A melhor propriedade de um site estático é que os modos de falha são entediantes. Nada pode cair às 3 da manhã, porque não há nada rodando.

Pressione T para alternar entre claro e escuro, e B, A, G ou L para navegar pelo site.