Note that Rails 7.1 changes `find_or_create_by!` so it calls `create_or_find_by!` when no record is found, meaning we'll rarely get `RecordNotUnique` exceptions when using this method during a race condition. Adding this index means we need to remove the uniqueness validation. According to the `create_or_find_by` documentation [1]: > Columns with unique database constraints should not have uniqueness > validations defined, otherwise create will fail due to validation > errors and find_by will never be called. We're adding a test that checks what happens when using `create_or_find_by!`. Note that we're creating voters combining `create_with` with `find_or_create_by!`. Using `find_or_create_by!(...)` with all attributes (including non-key ones like `origin`) fails when a voter already exists with different values, e.g. an existing `origin: "web"` and an incoming `"booth"`. In this situation the existing record is not matched and the unique index raises an exception. `create_with(...).find_or_create_by!(user: ..., poll: ...)` searches by the unique key only and applies the extra attributes only on creation. Existing voters are returned unchanged, which is the intended behavior. For the `take_votes_from` method, we're handling a (highly unlikely, but theoretically possible) scenario where a user votes at the same time as taking voters from another user. For that, we're doing something similar to what `create_or_find_by!` does: we're updating the `user_id` column inside a new transaction (using a new transactions avoids a `PG::InFailedSqlTransaction` exception when there are duplicate records), and deleting the existing voter when we get a `RecordNotUnique` exception. On `Poll::WebVote` we're simply raising an exception when there's already a user who's voted via booth, because the `Poll::WebVote#update` method should never be called in this case. We still need to use `with_lock` in `Poll::WebVote`, but not due to duplicate voters (`find_or_create_by!` method will now handle the unique record scenario, even in the case of simultaneous transactions), but because we use a uniqueness validation in `Poll::Answer`; this validation would cause an error in simultaneous transactions. [1] https://api.rubyonrails.org/v7.1/classes/ActiveRecord/Relation.html#method-i-create_or_find_by
638 lines
22 KiB
YAML
638 lines
22 KiB
YAML
es:
|
|
attributes:
|
|
geozone_id: "Ámbito de actuación"
|
|
results_enabled: "Mostrar resultados"
|
|
stats_enabled: "Mostrar estadísticas"
|
|
advanced_stats_enabled: "Mostrar estadísticas avanzadas"
|
|
name: Nombre
|
|
email: Email
|
|
description: Descripción
|
|
related_sdg_list: Objetivos y Metas
|
|
activerecord:
|
|
models:
|
|
activity:
|
|
one: "actividad"
|
|
other: "actividades"
|
|
budget:
|
|
one: "Presupuesto participativo"
|
|
other: "Presupuestos participativos"
|
|
budget/investment:
|
|
one: "Proyecto de gasto"
|
|
other: "Proyectos de gasto"
|
|
milestone:
|
|
one: "hito"
|
|
other: "hitos"
|
|
milestone/status:
|
|
one: "Estado de seguimiento"
|
|
other: "Estados de seguimiento"
|
|
progress_bar:
|
|
one: "Barra de progreso"
|
|
other: "Barras de progreso"
|
|
comment:
|
|
one: "Comentario"
|
|
other: "Comentarios"
|
|
debate:
|
|
one: "Debate"
|
|
other: "Debates"
|
|
tag:
|
|
one: "Etiqueta"
|
|
other: "Etiquetas"
|
|
user:
|
|
one: "Usuario"
|
|
other: "Usuarios"
|
|
moderator:
|
|
one: "Moderador"
|
|
other: "Moderadores"
|
|
administrator:
|
|
one: "Administrador"
|
|
other: "Administradores"
|
|
valuator:
|
|
one: "Evaluador"
|
|
other: "Evaluadores"
|
|
valuator_group:
|
|
one: "Grupo de evaluadores"
|
|
other: "Grupos de evaluadores"
|
|
manager:
|
|
one: "Gestor"
|
|
other: "Gestores"
|
|
newsletter:
|
|
one: "Newsletter"
|
|
other: "Newsletters"
|
|
vote:
|
|
one: "Voto"
|
|
other: "Votos"
|
|
organization:
|
|
one: "Organización"
|
|
other: "Organizaciones"
|
|
poll/booth:
|
|
one: "urna"
|
|
other: "urnas"
|
|
poll/officer:
|
|
one: "presidente de mesa"
|
|
other: "presidentes de mesa"
|
|
poll/ballot_sheet:
|
|
one: Papeleta de votación
|
|
other: Papeletas de votación
|
|
proposal:
|
|
one: "Propuesta ciudadana"
|
|
other: "Propuestas ciudadanas"
|
|
sdg/goal:
|
|
one: "objetivo"
|
|
other: "objetivos"
|
|
sdg/local_target:
|
|
one: "meta localizada"
|
|
other: "metas localizadas"
|
|
sdg/manager:
|
|
one: "gestor ODS"
|
|
other: "gestores ODS"
|
|
sdg/target:
|
|
one: "meta"
|
|
other: "metas"
|
|
site_customization/page:
|
|
one: Página
|
|
other: Páginas
|
|
site_customization/image:
|
|
one: Imagen
|
|
other: Imágenes
|
|
site_customization/content_block:
|
|
one: Bloque
|
|
other: Bloques
|
|
document:
|
|
one: Documento
|
|
other: Documentos
|
|
legislation/process:
|
|
one: "Proceso"
|
|
other: "Procesos"
|
|
legislation/proposal:
|
|
one: "Propuesta"
|
|
other: "Propuestas"
|
|
legislation/draft_versions:
|
|
one: "Versión del borrador"
|
|
other: "Versiones del borrador"
|
|
legislation/questions:
|
|
one: "Pregunta"
|
|
other: "Preguntas"
|
|
legislation/question_options:
|
|
one: "Opción de respuesta cerrada"
|
|
other: "Opciones de respuesta cerrada"
|
|
legislation/answers:
|
|
one: "Respuesta"
|
|
other: "Respuestas"
|
|
documents:
|
|
one: "Documento"
|
|
other: "Documentos"
|
|
images:
|
|
one: "Imagen"
|
|
other: "Imágenes"
|
|
tenant:
|
|
one: "entidad"
|
|
other: "entidades"
|
|
topic:
|
|
one: "Tema"
|
|
other: "Temas"
|
|
poll:
|
|
one: "Votación"
|
|
other: "Votaciones"
|
|
proposal_notification:
|
|
one: "Notificación de propuesta"
|
|
other: "Notificaciones de propuestas"
|
|
dashboard/action:
|
|
one: Acción del panel de control de propuestas
|
|
other: Acciones del panel de control de propuestas
|
|
dashboard/administrator_task:
|
|
one: Tarea
|
|
other: Tareas
|
|
link:
|
|
one: Enlace
|
|
other: Enlaces
|
|
local_census_record:
|
|
one: Registro del censo local
|
|
other: Registros del censo local
|
|
votation_type:
|
|
one: Tipo de votación
|
|
other: Tipos de votación
|
|
cookies/vendor:
|
|
one: proveedor de cookies
|
|
other: proveedores de cookies
|
|
attributes:
|
|
budget:
|
|
name: "Nombre"
|
|
description_accepting: "Descripción durante la fase de presentación de proyectos"
|
|
description_reviewing: "Descripción durante la fase de revisión interna"
|
|
description_selecting: "Descripción durante la fase de apoyos"
|
|
description_valuating: "Descripción durante la fase de evaluación"
|
|
description_balloting: "Descripción durante la fase de votación"
|
|
description_reviewing_ballots: "Descripción durante la fase de revisión de votos"
|
|
description_finished: "Descripción cuando el presupuesto ha finalizado / Resultados"
|
|
phase: "Fase activa"
|
|
currency_symbol: "Divisa"
|
|
voting_style: "Estilo de la votación final"
|
|
voting_style_knapsack: Bolsa de dinero
|
|
voting_style_approval: Por aprobación
|
|
hide_money: "Ocultar la cantidad de dinero para este presupuesto"
|
|
budget/translation:
|
|
main_link_text: "Texto del enlace"
|
|
main_link_url: "El enlace te lleva a (añade un enlace)"
|
|
name: "Nombre"
|
|
budget/investment:
|
|
heading_id: "Partida presupuestaria"
|
|
title: "Título"
|
|
description: "Descripción"
|
|
external_url: "Enlace a documentación adicional"
|
|
administrator_id: "Administrador"
|
|
location: "Información adicional de la ubicación"
|
|
organization_name: "Si estás proponiendo en nombre de una organización o colectivo, o en nombre de más gente, escribe su nombre"
|
|
image: "Imagen descriptiva del proyecto de gasto"
|
|
image_title: "Título de la imagen"
|
|
duration: "Plazo de ejecución <small>(opcional, dato no público)</small>"
|
|
feasibility_feasible: "Viable"
|
|
feasibility_undecided: "Sin decidir"
|
|
feasibility_unfeasible: "Inviable"
|
|
incompatible: "Marcar como incompatible"
|
|
milestone_tag_list: "Etiquetas de Seguimiento"
|
|
price_explanation: "Informe de coste <small>(opcional, dato público)</small>"
|
|
selected: "Marcar como seleccionado"
|
|
selected_true: "Seleccionado"
|
|
selected_false: "No seleccionado"
|
|
unfeasibility_explanation: "Informe de inviabilidad <small>(en caso de que lo sea, dato público)</small>"
|
|
valuation_finished: "Informe finalizado"
|
|
valuator_ids: "Grupos"
|
|
valuation_tag_list: "Etiquetas"
|
|
budget/investment/translation:
|
|
title: "Título"
|
|
description: "Descripción"
|
|
geozone:
|
|
name: Nombre
|
|
color: "Color (opcional)"
|
|
external_code: "Código externo (opcional)"
|
|
census_code: "Código del censo (opcional)"
|
|
geojson: "Datos GeoJSON (opcional)"
|
|
html_map_coordinates: "Coordenadas HTML <map> (opcional)"
|
|
milestone:
|
|
status_id: "Estado actual (opcional)"
|
|
title: "Título"
|
|
description: "Descripción (opcional si hay un estado asignado)"
|
|
publication_date: "Fecha"
|
|
milestone/translation:
|
|
description: "Descripción"
|
|
milestone/status:
|
|
name: "Nombre"
|
|
description: "Descripción (opcional)"
|
|
progress_bar:
|
|
kind: "Tipo"
|
|
title: "Título"
|
|
percentage: "Progreso"
|
|
progress_bar/kind:
|
|
primary: "Principal"
|
|
secondary: "Secundaria"
|
|
budget/group:
|
|
max_votable_headings: "Máximo número de partidas en que un usuario puede seleccionar proyectos"
|
|
budget/group/translation:
|
|
name: "Nombre del grupo"
|
|
budget/heading:
|
|
allow_custom_content: "Permitir bloque de contenidos"
|
|
latitude: "Latitud (opcional)"
|
|
longitude: "Longitud (opcional)"
|
|
name: "Nombre de la partida"
|
|
price: "Cantidad de dinero"
|
|
population: "Población (opcional)"
|
|
max_ballot_lines: "Votos permitidos"
|
|
budget/heading/translation:
|
|
name: "Nombre de la partida"
|
|
budget/phase:
|
|
enabled: "Fase habilitada"
|
|
ends_at: "Fecha de fin"
|
|
starts_at: "Fecha de inicio"
|
|
budget/phase/translation:
|
|
name: "Nombre"
|
|
description: "Descripción"
|
|
summary: "Resumen"
|
|
main_link_text: "Texto del enlace"
|
|
main_link_url: "El enlace te lleva a (añade un enlace)"
|
|
comment:
|
|
body: "Comentario"
|
|
user: "Usuario"
|
|
debate:
|
|
author: "Autor"
|
|
description: "Opinión"
|
|
tag_list: "Temas"
|
|
terms_of_service: "Términos de servicio"
|
|
title: "Título del debate"
|
|
debate/translation:
|
|
title: "Título del debate"
|
|
description: "Texto inicial del debate"
|
|
proposal:
|
|
author: "Autor"
|
|
title: "Título"
|
|
question: "Pregunta"
|
|
description: "Descripción"
|
|
responsible_name: "Nombre y apellidos de la persona que hace esta propuesta"
|
|
retired_reason: "Razón por la que se retira la propuesta"
|
|
selected: "Marcar como seleccionada"
|
|
terms_of_service: "Términos de servicio"
|
|
video_url: "Enlace a vídeo externo"
|
|
proposal/translation:
|
|
title: "Título de la propuesta"
|
|
description: "Texto desarrollado de la propuesta"
|
|
summary: "Resumen de la propuesta"
|
|
retired_explanation: "Explicación"
|
|
user:
|
|
login: "Email o nombre de usuario"
|
|
email: "Email"
|
|
username: "Nombre de usuario"
|
|
password_confirmation: "Confirmación de contraseña"
|
|
password: "Contraseña"
|
|
current_password: "Contraseña actual"
|
|
email_digest: "Recibir resumen de notificaciones sobre propuestas"
|
|
email_on_comment: "Recibir un email cuando alguien comenta en mis contenidos"
|
|
email_on_comment_reply: "Recibir un email cuando alguien contesta a mis comentarios"
|
|
email_on_direct_message: "Recibir emails con mensajes privados"
|
|
newsletter: "Recibir emails con información interesante sobre la web"
|
|
official_position: "Cargo público"
|
|
official_position_badge: "Mostrar etiqueta de tipo de usuario"
|
|
official_level: "Nivel del cargo"
|
|
phone_number: "Teléfono"
|
|
public_activity: "Mostrar públicamente mi lista de actividades"
|
|
public_interests: "Mostrar públicamente los elementos que sigo"
|
|
recommended_debates: "Mostrar recomendaciones en el listado de debates"
|
|
recommended_proposals: "Mostrar recomendaciones en el listado de propuestas"
|
|
direct_message:
|
|
title: "Título"
|
|
body: "Mensaje"
|
|
organization:
|
|
name: "Nombre de la organización"
|
|
responsible_name: "Persona responsable del colectivo"
|
|
poll:
|
|
name: "Nombre"
|
|
title: "Nombre"
|
|
starts_at: "Fecha de apertura"
|
|
ends_at: "Fecha de cierre"
|
|
geozone_restricted: "Restringida por zonas"
|
|
summary: "Resumen"
|
|
description: "Descripción"
|
|
active_poll/translation:
|
|
description: "Descripción"
|
|
poll/booth:
|
|
name: "Nombre"
|
|
location: "Ubicación"
|
|
poll/translation:
|
|
name: "Nombre"
|
|
summary: "Resumen"
|
|
description: "Descripción"
|
|
poll/question:
|
|
poll_id: "Votación"
|
|
title: "Pregunta"
|
|
summary: "Resumen"
|
|
description: "Descripción"
|
|
external_url: "Enlace a documentación adicional"
|
|
poll/question/translation:
|
|
title: "Pregunta"
|
|
poll/ballot_sheet:
|
|
data: Datos de CSV
|
|
poll_id: Votación
|
|
officer_assignment_id: Turno
|
|
poll/shift:
|
|
task: "Tarea"
|
|
proposal_notification:
|
|
body: "Mensaje"
|
|
title: "Título"
|
|
sdg/goal:
|
|
code: "Código"
|
|
title: "Título"
|
|
description: "Descripción"
|
|
sdg/local_target:
|
|
code: "Código"
|
|
target_id: "Meta"
|
|
title: "Título"
|
|
sdg/local_target/translation:
|
|
title: "Título"
|
|
description: "Descripción"
|
|
sdg/phase/kind:
|
|
sensitization: "Sensibilización"
|
|
planning: "Planificación"
|
|
monitoring: "Seguimiento"
|
|
sdg/target:
|
|
code: "Código"
|
|
title: "Título"
|
|
signature_sheet:
|
|
title: "Título"
|
|
signable_type: "Tipo de hoja de firmas"
|
|
signable_id: "ID Propuesta ciudadana/Proyecto de gasto"
|
|
document_numbers: "Números de documentos"
|
|
site_customization/page:
|
|
content: Contenido
|
|
created_at: Creada
|
|
subtitle: Subtítulo
|
|
slug: Slug
|
|
status: Estado
|
|
status_draft: "Borrador"
|
|
status_published: "Publicada"
|
|
title: Título
|
|
updated_at: Última actualización
|
|
more_info_flag: Mostrar en la página de ayuda
|
|
print_content_flag: Botón de imprimir contenido
|
|
locale: Idioma
|
|
site_customization/page/translation:
|
|
title: Título
|
|
subtitle: Subtítulo
|
|
content: Contenido
|
|
site_customization/image:
|
|
name: Nombre
|
|
image: Imagen
|
|
site_customization/content_block:
|
|
name: Nombre
|
|
locale: Idioma
|
|
body: Contenido
|
|
tag:
|
|
name: "Escribe el nombre del tema"
|
|
tenant:
|
|
domain: "Dominio"
|
|
schema: "Dominio / Subdominio"
|
|
subdomain: "Subdominio"
|
|
url: "URL"
|
|
topic:
|
|
title: "Título"
|
|
description: "Texto inicial"
|
|
banner:
|
|
background_color: Color del fondo
|
|
font_color: Color del texto
|
|
post_ended_at: "Fin de publicación"
|
|
post_started_at: "Inicio de publicación"
|
|
target_url: "Enlace"
|
|
banner/translation:
|
|
title: "Título"
|
|
description: "Descripción"
|
|
legislation/process:
|
|
title: Título del proceso
|
|
summary: Resumen
|
|
description: En qué consiste
|
|
additional_info: Información adicional
|
|
start_date: Inicio
|
|
end_date: Fin
|
|
debate_start_date: Inicio
|
|
debate_end_date: Fin
|
|
draft_start_date: Inicio
|
|
draft_end_date: Fin
|
|
draft_publication_date: Fecha de publicación del borrador
|
|
allegations_start_date: Inicio
|
|
allegations_end_date: Fin
|
|
proposals_phase_start_date: Inicio
|
|
proposals_phase_end_date: Fin
|
|
result_publication_date: Fecha de publicación del resultado final
|
|
background_color: Color del fondo
|
|
font_color: Color del texto
|
|
homepage_enabled: "Homepage activada"
|
|
legislation/process/translation:
|
|
title: Título del proceso
|
|
summary: Resumen
|
|
description: En qué consiste
|
|
additional_info: Información adicional
|
|
homepage: "Descripción"
|
|
milestones_summary: Seguimiento del proceso
|
|
legislation/proposal:
|
|
description: "Texto desarrollado de la propuesta"
|
|
summary: "Resumen de la propuesta"
|
|
title: "Título de la propuesta"
|
|
video_url: "Enlace a vídeo externo"
|
|
legislation/draft_version:
|
|
title: Título de la versión
|
|
body: Texto
|
|
changelog: Cambios
|
|
status: Estado
|
|
status_draft: "Borrador"
|
|
status_published: "Publicado"
|
|
final_version: Versión final
|
|
legislation/draft_version/translation:
|
|
title: Título de la versión
|
|
body: Texto
|
|
changelog: Cambios
|
|
legislation/question:
|
|
title: Título
|
|
question_options: Respuestas
|
|
legislation/question/translation:
|
|
title: "Pregunta"
|
|
legislation/question_option:
|
|
value: Valor
|
|
legislation/annotation:
|
|
text: Comentario
|
|
document:
|
|
title: Título
|
|
attachment: "Selecciona un documento"
|
|
image:
|
|
title: Título
|
|
attachment: "Selecciona una imagen"
|
|
poll/question/option:
|
|
title: Respuesta
|
|
description: Descripción
|
|
poll/question/option/translation:
|
|
title: Respuesta
|
|
description: "Descripción (opcional)"
|
|
poll/question/option/video:
|
|
title: Título
|
|
url: Vídeo externo
|
|
newsletter:
|
|
segment_recipient: Destinatarios
|
|
subject: Asunto
|
|
from: "Dirección de correo electrónico que aparecerá como remitente de la newsletter"
|
|
body: Contenido del email
|
|
admin_notification:
|
|
segment_recipient: Destinatarios
|
|
title: Título
|
|
link: Enlace
|
|
body: Texto
|
|
admin_notification/translation:
|
|
title: Título
|
|
body: Texto
|
|
widget/card:
|
|
label: Etiqueta (opcional)
|
|
title: Título
|
|
description: Descripción
|
|
link_text: Texto del enlace
|
|
link_url: URL del enlace
|
|
columns: Número de columnas
|
|
order: Posición
|
|
widget/card/translation:
|
|
label: Etiqueta (opcional)
|
|
title: Título
|
|
description: Descripción
|
|
link_text: Texto del enlace
|
|
widget/feed:
|
|
limit: Número de elementos
|
|
dashboard/action:
|
|
title: Título
|
|
short_description: Descripción corta
|
|
description: Descripción
|
|
link: Enlace externo
|
|
request_to_administrators: Incluir en el recurso un botón para solicitar el recurso a los administradores
|
|
day_offset: '¿En cuántos días tras la creación de la propuesta quieres que se active?'
|
|
required_supports: '¿Cuántos apoyos tiene que conseguir la propuesta para que se active?'
|
|
order: Puedes introducir la posición en la que se mostrará al usuario esta acción en la lista de acciones
|
|
active: Activa
|
|
action_type: Tipo
|
|
action_type_proposed_action: "Acción propuesta"
|
|
action_type_resource: "Recurso"
|
|
published_proposal: "¿Para propuestas publicadas?"
|
|
dashboard/administrator_task:
|
|
source: Fuente
|
|
user: Ejecutado por
|
|
link:
|
|
label: Título
|
|
url: URL
|
|
valuator:
|
|
description: Descripción
|
|
valuator_group_id: Grupo de evaluación
|
|
can_comment: Puede comentar
|
|
can_edit_dossier: Puede editar informes
|
|
valuator_group:
|
|
name: "Nombre del grupo"
|
|
local_census_record:
|
|
document_type: Tipo de documento
|
|
document_number: Número de documento
|
|
date_of_birth: Fecha de nacimiento
|
|
postal_code: Código postal
|
|
votation_type:
|
|
max_votes: Número máximo de votos
|
|
vote_type: Tipo de votación
|
|
votation_type/vote_type:
|
|
unique: Respuesta única
|
|
multiple: Respuesta múltiple
|
|
cookies/vendor:
|
|
name: Nombre del proveedor
|
|
cookie: Nombre de la cookie
|
|
script: Código javascript
|
|
errors:
|
|
models:
|
|
user:
|
|
attributes:
|
|
email:
|
|
password_already_set: "Este usuario ya tiene una clave asociada"
|
|
debate:
|
|
attributes:
|
|
tag_list:
|
|
less_than_or_equal_to: "los temas deben ser menor o igual que %{count}"
|
|
direct_message:
|
|
attributes:
|
|
max_per_day:
|
|
invalid: "Has llegado al número máximo de mensajes privados por día"
|
|
geozone:
|
|
attributes:
|
|
geojson:
|
|
invalid: "Los datos GeoJSON proporcionados no tienen el formato correcto. Deben seguir el formato estándar RFC 7946"
|
|
invalid_coordinates: "Los datos GeoJSON proporcionados contienen coordenadas inválidas; las coordenadas deben utilizar el formato \"Longitud, Latitud\" y seguir el formato estándar RFC 7946"
|
|
image:
|
|
attributes:
|
|
attachment:
|
|
min_image_width: "La imagen debe tener al menos %{required_min_width}px de largo"
|
|
min_image_height: "La imagen debe tener al menos %{required_min_height}px de alto"
|
|
newsletter:
|
|
attributes:
|
|
segment_recipient:
|
|
invalid: "El usuario del destinatario es inválido"
|
|
admin_notification:
|
|
attributes:
|
|
segment_recipient:
|
|
invalid: "El usuario del destinatario es inválido"
|
|
poll/voter:
|
|
attributes:
|
|
document_number:
|
|
not_in_census: "Este documento no aparece en el censo"
|
|
legislation/process:
|
|
attributes:
|
|
end_date:
|
|
invalid_date_range: tiene que ser igual o posterior a la fecha de inicio
|
|
debate_end_date:
|
|
invalid_date_range: tiene que ser igual o posterior a la fecha de inicio del debate
|
|
draft_end_date:
|
|
invalid_date_range: tiene que ser igual o posterior a la fecha de inicio del borrador
|
|
allegations_end_date:
|
|
invalid_date_range: tiene que ser igual o posterior a la fecha de inicio de los comentarios
|
|
local_census_record:
|
|
attributes:
|
|
document_type:
|
|
inclusion: no está incluido en la lista, los valores permitidos son 1 para DNI, 2 para pasaporte y 3 para tarjeta de residencia.
|
|
proposal:
|
|
attributes:
|
|
tag_list:
|
|
less_than_or_equal_to: "los temas deben ser menor o igual que %{count}"
|
|
budget/investment:
|
|
attributes:
|
|
tag_list:
|
|
less_than_or_equal_to: "los temas deben ser menor o igual que %{count}"
|
|
proposal_notification:
|
|
attributes:
|
|
minimum_interval:
|
|
invalid: "Debes esperar un mínimo de %{interval} días entre notificaciones"
|
|
signature:
|
|
attributes:
|
|
document_number:
|
|
not_in_census: "No verificado por Padrón"
|
|
already_voted: "Ya ha votado esta propuesta"
|
|
site_customization/page:
|
|
attributes:
|
|
slug:
|
|
slug_format: "deber ser letras, números, _ y -"
|
|
site_customization/image:
|
|
attributes:
|
|
image:
|
|
image_width: "Debe tener %{required_width}px de ancho"
|
|
image_height: "Debe tener %{required_height}px de alto"
|
|
comment:
|
|
attributes:
|
|
valuation:
|
|
cannot_comment_valuation: "No puedes comentar una evaluación"
|
|
remote_translation:
|
|
attributes:
|
|
locale:
|
|
already_translated: Recurso ya traducido
|
|
sdg/local_target:
|
|
attributes:
|
|
code:
|
|
invalid: "debe empezar con el código de su meta seguido de un punto y terminar con un número"
|
|
messages:
|
|
translations_too_short: El obligatorio proporcionar una traducción como mínimo
|
|
record_invalid: "Error de validación: %{errors}"
|
|
another_poll_active: Hay otra encuesta activa para este periodo.
|
|
restrict_dependent_destroy:
|
|
has_one: "No se puede eliminar el registro porque existe una %{record} dependiente"
|
|
has_many: "No se puede eliminar el registro porque existe %{record} dependientes"
|