Aún no tienes acceso a esta clase

Crea una cuenta y continúa viendo este curso

Internacionalizando los modelos

21/36
Recursos

Aportes 9

Preguntas 5

Ordenar por:

¿Quieres ver más aportes, preguntas y respuestas de la comunidad? Crea una cuenta o inicia sesión.

Tuve problemas al ejecutar en el terminal ‘i18n-tasks add-missing’, me acusa ‘orden no encontrada’.

Para solucionarlo, en el Gemfile, añadí la siguiente línea de código: gem ‘i18n-tasks’, ‘~> 0.7.4’

Luego en el terminal ejecuté ‘bundle install’

Volví a ejecutar el comando ‘i18n-tasks add-missing’ y me arrojó el resultado esperado en el terminal.

Fuente de información en el siguiente link:

https://www.rubydoc.info/gems/i18n-tasks/0.7.4#configuration

Saludos

Recomendaría echar un vistazo a las convenciones en las traducciones que tiene I18n para los modelos de active record
https://guides.rubyonrails.org/i18n.html#translations-for-active-record-models

Hola así quedo mi cógido :

new.html.haml file

%h1= t('tasks.tasks')

= render 'form'

= link_to t('common.back'), tasks_path

_form.html.haml file

-# frozen_string_literal: true
= simple_form_for(@task) do |f|
  = f.error_notification
  = f.error_notification message: f.object.errors[:base].to_sentence if f.object.errors[:base].present?

  .form-inputs
    = f.input :name, label: t('.name')
    = f.input :description, label: t('.description')
    = f.input :due_date, label: t('.due_date')
    = f.association :category, label: t('.category')

  .form-actions
    = f.button :submit

es.yml file

---
es:
  activerecord:
    models:
      category:
        one: Categoría
        others: Categorías
      task:
        one: Tarea
        others: Tareas
  categories:
    form:
      description: Descripción
      name: Nombre
    new_category: Nueva Categoría
  common:
    back: Atrás
  hello: Hello world
  tasks:
    form:
      category: Categoría
      description: Descripción
      due_date: Fecha de Vencimiento
      name: Nombre
    tasks: Tareas

Mi es.yml

es:
  activerecord:
    models:
      category:
        one: Categoria
        others: Categorias
      task:
        one: Tarea
        others: Tareas
      tasks:
        one: Tarea
        others: Tareas
  categories:
    form:
      description: Descripcion
      name: Nombre
    new_category: Nueva Categoria
  common:
    back: Atras
    new_task: Nueva Tarea
  hello: Hello world
  tasks:
    category: Categoria
    description: Descripcion
    due_date: Fecha de Vencimiento
    form:
      category: Categoria
      description: Descripcion
      due_date: Fecha de Vencimiento
      name: Nombre
    listing_tasks: Lista de Tareas
    name: Nombre
    new_task: Nueva Tarea

Así quedo mi _form.htm.haml de tasks:

-# frozen_string_literal: true
= simple_form_for(@task) do |f|
  = f.error_notification
  = f.error_notification message: f.object.errors[:base].to_sentence if f.object.errors[:base].present?

  .form-inputs
    = f.input :name, label: t('.name')
    = f.input :description, label: t('.description')
    = f.input :due_date, label: t('.due_date')
    = f.association :category, label: t('.category')

  .form-actions
    = f.button :submit

Así quedó mi new.html.haml de tasks:

%h1= t('.tasks.new_task')

= render 'form'

= link_to t('common.back'), tasks_path

Así quedó mi archivo es.yml

---
es:
  activerecord:
    models:
      category:
        one: Categoría
        others: Categorías
      task:
        one: Tarea
        others: Tareas
  categories:
    form:
      description: Descripción
      name: Nombre
    new_category: Categoría nueva
  hello: Hello world
  tasks:
    form:
      category: Categoría
      description: Descripción
      due_date: Fecha de vencimiento
      name: Nombre
    new:
      tasks:
        new_task: Tarea nueva
  common:
    back: Atrás

Solo como aporte general encontré que el texto del botón se puede internacionalizar de la siguiente manera:

  1. Solo escribiendo el string
= f.button :submit ,'Crear categoria'
  1. usando el helper t creando las keys correspondientes en el diccionario
 = f.button :submit ,t('categories.create_category')

Ojo: Hay que hacerlo la forma como la hace el profesor me parece que es la más adecuada para que nuestro proyecto sea mucho más facil de internacionalizar a largo plazo.

Aquí muestro mi codigo:

-# frozen_string_literal: true
= simple_form_for(@task) do |f|
  = f.error_notification
  = f.error_notification message: f.object.errors[:base].to_sentence if f.object.errors[:base].present?

  .form-inputs
    = f.input :name, label: t('.name')
    = f.input :description, label: t('.description')
    = f.input :due_date, label: t('.due_date')
    = f.association :category, label: t('.category')

  .form-actions
    = f.button :submit

---
es:
  activerecord:
    models:
      category:
        one: Categoría
        others: Categorías
      task:
        one: Tarea
        others: Tareas
  categories:
    form:
      description: Descripción
      name: Nombre
    new_category: Nueva Categoría
  common:
    back: Atras
  hello: Hello world
  tasks:
    form:
      category: Categoría
      description: Descripción
      due_date: Fecha final
      name: Nombre
    new_task: Nueva Tarea

Traducí todos mis archivos, para poder tener una consistencia en el proyecto, aquí abajo dejo el código del app/views/tasks/_form.html.haml que hice.

-# frozen_string_literal: true
= simple_form_for(@task) do |f|
  = f.error_notification
  = f.error_notification message: f.object.errors[:base].to_sentence if f.object.errors[:base].present?

  .form-inputs
    = f.input :name, label: t('.name')
    = f.input :description, label: t('.description')
    = f.input :due_date, label: t('.due_date')
    = f.association :category, label: t('.category')

  .form-actions
    = f.button :submit

El de app/views/tasks/new.html.haml

%h1= t('tasks.new_task')

= render 'form'

= link_to t('common.back'), tasks_path

Y mi config/es.yml:

---
es:
  activerecord:
    models:
      category:
        one: Categoría
        others: Categorías
      task:
        one: Tarea
        others: Tareas
  categories:
    editing_category: Editando categoría
    form:
      description: Descripción
      name: Nombre
    list_categories: Lista de categorías
    new_category: Nueva categoría
  common:
    are_you_sure?: "¿Estás seguro?"
    back: Atrás
    destroy: Eliminar
    edit: Editar
    show: Mostrar
  hello: Hello world
  tasks:
    editing_task: Editado tarea
    form:
      category: Categoría
      description: Descripción
      due_date: Fecha de vencimiento
      name: Nombre
    list_tasks: Listar tareas
    new_task: Nueva tarea