mirror of
https://0xacab.org/sutty/sutty
synced 2024-11-16 16:01:41 +00:00
60 lines
2.2 KiB
Markdown
60 lines
2.2 KiB
Markdown
# i18n
|
|
|
|
en el plugin de i18n, `_posts` está vacío y lo que hacemos es
|
|
intercambiarlo por los directorios de los `_idioma`, cambiar la baseurl
|
|
y generar el sitio una vez por cada uno.
|
|
|
|
en sutty, detectamos eso y para tener acceso a todos los posts por
|
|
separado, le hacemos creer el reader de jekyll que estamos cargando
|
|
colecciones distintas (esta a evaluar si conviene descartar el plugin y
|
|
manejarse con colecciones, pero requiere un rediseño de cyber-women.com)
|
|
|
|
entonces podemos distinguir si un sitio esta traducido, accediendo a las
|
|
colecciones disponibles. las colecciones no tienen valor luego, porque
|
|
son solo para engañar a jekyll por ahora.
|
|
|
|
podemos mostrar los posts de distintas formas:
|
|
|
|
* filtrar por idioma y solo mostrar esos posts (lo mas facil)
|
|
* asumir que un post es un post con varias traducciones e intentar
|
|
mostrar todo junto. esto seria visualmente pesado
|
|
* filtrar por idioma y mostrar en una columna las traducciones asociadas
|
|
|
|
las traducciones se asocian poniendo el slug/id del post traducido en
|
|
un hash llamado `lang` en cada frontmatter.
|
|
|
|
a partir de eso podemos buscar el post asociado en las otras colecciones
|
|
|
|
al editar un post o previsualizarlo, hay botones para saltar a las
|
|
traducciones.
|
|
|
|
al crear un post nuevo, se pueden asociar traducciones y crear posts
|
|
nuevos en ese idioma.
|
|
|
|
como se puede mantener el lang actualizado para todos los posts?
|
|
recorrer cada post y modificarle el front matter y salvarlo?
|
|
|
|
cada post tiene un hash `lang: { idioma: 'slug' }`, que contiene todas
|
|
las traducciones de su slug (vendrian a ser las relaciones
|
|
has_and_belongs_to_many (habtm) en active record) e incluso su propio
|
|
slug:
|
|
|
|
```
|
|
post.front_matter['lang'] = {
|
|
es: 'slug-en-castellano',
|
|
en: 'english-slug'
|
|
}
|
|
```
|
|
|
|
entonces si el idioma es castellano y el **slug cambia**, recorremos
|
|
todos los posts y evitamos el idioma actual, actualizando el front
|
|
matter de los demas, de forma que la relacion se mantenga.
|
|
|
|
esto seria mas facil de hacer en un solo lado teniendo un
|
|
`_data/post_relations.yml` o algo asi que tenga una sola vez todas las
|
|
traducciones de los slugs, pero requiere hacer cambios en themes ya
|
|
existentes
|
|
|
|
## Colecciones
|
|
|
|
Cómo se van a traducir las colecciones?
|