Foro (lectura): índice, temas y mensajes en Next.js

- lib/forum.ts: getForumIndex (categorías + foros visibles con contadores y último
  tema, port de forum/db.py), getForum/getTopics, getTopic/getPosts (acore_web).
- Páginas app/[locale]/forum (índice), /forum/[forumId] (temas), /forum/topic/[topicId]
  (mensajes; render del HTML ya saneado por Django). Enlace "Foros" en la cabecera.
- Catálogo Forum + Nav.forum.

Verificado: /forum 200, foros/temas inexistentes 404, enlace en la cabecera.
Solo lectura; pendiente escribir (crear tema/responder + saneado nh3->TS) y moderación.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-07-12 23:45:39 +00:00
parent cceab26999
commit e743d98777
7 changed files with 336 additions and 2 deletions
+19 -1
View File
@@ -9,7 +9,8 @@
"register": "Create account",
"account": "My account",
"logout": "Log out",
"language": "Language"
"language": "Language",
"forum": "Forums"
},
"Home": {
"brand": "Nova WoW",
@@ -237,5 +238,22 @@
"success": "Email changed successfully! You can now sign in with the new email.",
"error": "The link is invalid, expired or the account was not found.",
"goLogin": "Go to sign in"
},
"Forum": {
"title": "Forums",
"noForums": "No forums available yet.",
"topics": "Topics",
"posts": "Posts",
"lastTopic": "Latest topic",
"by": "by",
"views": "Views",
"noTopics": "No topics in this forum yet.",
"locked": "Locked",
"sticky": "Pinned",
"backToForum": "Back to forums",
"backToTopics": "Back to forum",
"notFound": "Not found",
"newTopic": "New topic",
"reply": "Reply"
}
}
+19 -1
View File
@@ -9,7 +9,8 @@
"register": "Crear cuenta",
"account": "Mi cuenta",
"logout": "Cerrar sesión",
"language": "Idioma"
"language": "Idioma",
"forum": "Foros"
},
"Home": {
"brand": "Nova WoW",
@@ -237,5 +238,22 @@
"success": "¡Correo cambiado con éxito! Ya puedes iniciar sesión con el nuevo correo.",
"error": "El enlace no es válido, ha caducado o no se ha encontrado la cuenta.",
"goLogin": "Ir a iniciar sesión"
},
"Forum": {
"title": "Foros",
"noForums": "No hay foros disponibles todavía.",
"topics": "Temas",
"posts": "Mensajes",
"lastTopic": "Último tema",
"by": "por",
"views": "Visitas",
"noTopics": "No hay temas en este foro todavía.",
"locked": "Cerrado",
"sticky": "Fijado",
"backToForum": "Volver a los foros",
"backToTopics": "Volver al foro",
"notFound": "No encontrado",
"newTopic": "Nuevo tema",
"reply": "Responder"
}
}