5
0
Fork 0
mirror of https://0xacab.org/sutty/sutty synced 2024-05-18 21:10:49 +00:00
panel/doc/i18n.md
2018-09-05 17:25:47 -03:00

61 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?