WIP traducciones, ya se pueden editar
This commit is contained in:
parent
8d991c4c75
commit
b41696c15c
9 changed files with 51 additions and 1 deletions
|
@ -16,6 +16,7 @@ class PostsController < ApplicationController
|
|||
@site = find_site
|
||||
@category = params.dig(:category)
|
||||
@layout = params.dig(:layout).try(:to_sym)
|
||||
@locale = locale
|
||||
|
||||
# XXX: Cada vez que cambiamos un Post tocamos el sitio con lo que es
|
||||
# más simple saber si hubo cambios.
|
||||
|
|
|
@ -235,6 +235,8 @@ class Site < ApplicationRecord
|
|||
#
|
||||
# TODO: Traer recursivamente, si el campo contiene Hash
|
||||
#
|
||||
# TODO: Mover a PostRelation#pluck
|
||||
#
|
||||
# @param attr [Symbol|String] El atributo a buscar
|
||||
# @return Array
|
||||
def everything_of(attr, lang: nil)
|
||||
|
|
|
@ -4,6 +4,7 @@
|
|||
.taggable{ data: { values: metadata.value.join(','),
|
||||
name: "post[#{attribute}][]", list: id_for_datalist(attribute),
|
||||
remove: 'false', legend: post_label_t(attribute, post: post),
|
||||
button: t('posts.attributes.add'),
|
||||
described: id_for_help(attribute) } }
|
||||
|
||||
= text_field(*field_name_for('post', attribute, '[]'),
|
||||
|
|
36
app/views/posts/attributes/_locales.haml
Normal file
36
app/views/posts/attributes/_locales.haml
Normal file
|
@ -0,0 +1,36 @@
|
|||
-#
|
||||
|
||||
Crea un input-map para cada idioma por separado. Podríamos hacer uno
|
||||
solo que tenga todos los idiomas pero puede ser una interfaz confusa.
|
||||
|
||||
TODO: Esto permite seleccionar más de una traducción por idioma...
|
||||
|
||||
- site.locales.each do |locale|
|
||||
-# Ignorar el idioma actual
|
||||
- next if post.lang.value == locale
|
||||
- values = metadata.value.select do |x|
|
||||
- metadata.values[locale.to_sym].values.include? x
|
||||
|
||||
.form-group
|
||||
= label_tag "post_#{attribute}_#{locale}", t(locale)
|
||||
|
||||
.mapable{ data: { values: values.to_json,
|
||||
'default-values': metadata.values[locale.to_sym].to_json,
|
||||
name: "post[#{attribute}][]",
|
||||
list: id_for_datalist(attribute, locale),
|
||||
button: t('posts.attributes.add'),
|
||||
remove: 'false', legend: t(locale),
|
||||
described: id_for_help(attribute, locale) } }
|
||||
|
||||
= text_field(*field_name_for('post', attribute, '[]'),
|
||||
value: values.join(', '),
|
||||
**field_options(attribute, metadata))
|
||||
|
||||
= render 'posts/attribute_feedback',
|
||||
post: post,
|
||||
attribute: [attribute, 'mapable'].flatten,
|
||||
metadata: metadata
|
||||
|
||||
%datalist{ id: id_for_datalist(attribute, locale) }
|
||||
- metadata.values[locale.to_sym].keys.each do |value|
|
||||
%option{ value: value }
|
|
@ -5,6 +5,7 @@
|
|||
'default-values': metadata.values.to_json,
|
||||
name: "post[#{attribute}][]", list: id_for_datalist(attribute),
|
||||
remove: 'false', legend: post_label_t(attribute, post: post),
|
||||
button: t('posts.attributes.add'),
|
||||
described: id_for_help(attribute) } }
|
||||
|
||||
= text_field(*field_name_for('post', attribute, '[]'),
|
||||
|
|
|
@ -5,6 +5,7 @@
|
|||
'default-values': metadata.values.to_json,
|
||||
name: "post[#{attribute}][]", list: id_for_datalist(attribute),
|
||||
remove: 'false', legend: post_label_t(attribute, post: post),
|
||||
button: t('posts.attributes.add'),
|
||||
described: id_for_help(attribute) } }
|
||||
|
||||
= text_field(*field_name_for('post', attribute, '[]'),
|
||||
|
|
|
@ -39,7 +39,7 @@
|
|||
.locales
|
||||
- @site.locales.each do |locale|
|
||||
= link_to t(locale), site_posts_path(@site, locale: locale),
|
||||
class: 'mr-2 mt-2 mb-2'
|
||||
class: "mr-2 mt-2 mb-2#{locale == @locale ? 'active font-weight-bold' : ''}"
|
||||
%table.table.table-condensed.table-draggable
|
||||
%tbody
|
||||
- @posts.each_with_index do |post, i|
|
||||
|
|
|
@ -368,6 +368,7 @@ en:
|
|||
invalid_help: 'Some fields need attention! Please search for the fields marked as invalid.'
|
||||
sending_help: Saving, please wait...
|
||||
attributes:
|
||||
add: Add
|
||||
lang:
|
||||
label: Language
|
||||
date:
|
||||
|
@ -381,6 +382,9 @@ en:
|
|||
geo:
|
||||
uri: 'Open in app'
|
||||
osm: 'Open in web map'
|
||||
locales:
|
||||
mapable:
|
||||
help: You can link to the article's translation by looking up its title here and pressing Add
|
||||
reorder: 'Reorder posts'
|
||||
sort:
|
||||
by: 'Sort by'
|
||||
|
|
|
@ -376,6 +376,7 @@ es:
|
|||
invalid_help: '¡Te faltan completar algunos campos! Busca los que estén marcados como inválidos'
|
||||
sending_help: Guardando, por favor espera...
|
||||
attributes:
|
||||
add: Agregar
|
||||
lang:
|
||||
label: Idioma
|
||||
date:
|
||||
|
@ -389,6 +390,9 @@ es:
|
|||
geo:
|
||||
uri: 'Abrir en aplicación'
|
||||
osm: 'Abrir en mapa web'
|
||||
locales:
|
||||
mapable:
|
||||
help: Puedes vincular traducciones buscando el título aquí y presionando Agregar
|
||||
reorder: 'Reordenar artículos'
|
||||
sort:
|
||||
by: 'Ordenar por'
|
||||
|
|
Loading…
Reference in a new issue