decidim-term_customizer 0.16.6 → 0.17.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (44) hide show
  1. checksums.yaml +4 -4
  2. data/app/assets/javascripts/decidim/term_customizer/admin/translations_admin_bulk.js.es6 +113 -0
  3. data/app/commands/decidim/term_customizer/admin/destroy_translations.rb +40 -0
  4. data/app/commands/decidim/term_customizer/admin/import_set_translations.rb +139 -0
  5. data/app/controllers/decidim/term_customizer/admin/translation_sets_controller.rb +11 -0
  6. data/app/controllers/decidim/term_customizer/admin/translations_controller.rb +23 -0
  7. data/app/controllers/decidim/term_customizer/admin/translations_destroys_controller.rb +54 -0
  8. data/app/forms/decidim/term_customizer/admin/translations_destroy_form.rb +46 -0
  9. data/app/forms/decidim/term_customizer/admin/translations_import_form.rb +48 -0
  10. data/app/helpers/decidim/term_customizer/admin/translations_helper.rb +21 -0
  11. data/app/jobs/decidim/term_customizer/admin/export_job.rb +19 -0
  12. data/app/permissions/decidim/term_customizer/admin/permissions.rb +11 -1
  13. data/app/views/decidim/term_customizer/admin/add_translations/index.html.erb +26 -6
  14. data/app/views/decidim/term_customizer/admin/translation_sets/_form.html.erb +25 -1
  15. data/app/views/decidim/term_customizer/admin/translation_sets/index.html.erb +39 -33
  16. data/app/views/decidim/term_customizer/admin/translations/_export_dropdown.html.erb +8 -0
  17. data/app/views/decidim/term_customizer/admin/translations/_form.html.erb +27 -1
  18. data/app/views/decidim/term_customizer/admin/translations/bulk_actions/_destroy.html.erb +13 -0
  19. data/app/views/decidim/term_customizer/admin/translations/bulk_actions/_dropdown.html.erb +26 -0
  20. data/app/views/decidim/term_customizer/admin/translations/index.html.erb +66 -38
  21. data/app/views/decidim/term_customizer/admin/translations/new_import.html.erb +40 -0
  22. data/app/views/decidim/term_customizer/admin/translations_destroys/new.html.erb +36 -0
  23. data/config/locales/ca.yml +72 -26
  24. data/config/locales/en.yml +109 -26
  25. data/config/locales/es.yml +72 -26
  26. data/config/locales/fi.yml +72 -26
  27. data/config/locales/fr.yml +72 -26
  28. data/config/locales/sv.yml +72 -26
  29. data/lib/decidim/term_customizer.rb +4 -0
  30. data/lib/decidim/term_customizer/admin_engine.rb +11 -1
  31. data/lib/decidim/term_customizer/import.rb +12 -0
  32. data/lib/decidim/term_customizer/import/importer.rb +69 -0
  33. data/lib/decidim/term_customizer/import/importer_factory.rb +17 -0
  34. data/lib/decidim/term_customizer/import/parser.rb +49 -0
  35. data/lib/decidim/term_customizer/import/readers.rb +39 -0
  36. data/lib/decidim/term_customizer/import/readers/base.rb +36 -0
  37. data/lib/decidim/term_customizer/import/readers/csv.rb +23 -0
  38. data/lib/decidim/term_customizer/import/readers/json.rb +25 -0
  39. data/lib/decidim/term_customizer/import/readers/xls.rb +25 -0
  40. data/lib/decidim/term_customizer/translation_import_collection.rb +71 -0
  41. data/lib/decidim/term_customizer/translation_parser.rb +13 -0
  42. data/lib/decidim/term_customizer/translation_serializer.rb +28 -0
  43. data/lib/decidim/term_customizer/version.rb +2 -2
  44. metadata +39 -14
@@ -0,0 +1,40 @@
1
+ <%= decidim_form_for(@import, url: import_translation_set_translations_path(set), class: "form grid-container") do |form| %>
2
+ <div class="card">
3
+ <div class="card-divider">
4
+ <h2 class="card-title flex--sbc">
5
+ <div>
6
+ <%= link_to t("decidim.term_customizer.menu.term_customizer"), root_path %>
7
+ &gt;
8
+ <%= link_to translated_attribute(set.name), translation_set_translations_path(set) %>
9
+ &gt;
10
+ <%= t "translations.new_import.title", scope: "decidim.term_customizer.admin" %>
11
+ </div>
12
+
13
+ <div class="flex--cc flex-gap--1">
14
+ <div id="js-other-actions-wrapper">
15
+ <%= link_to t("actions.back", scope: "decidim.term_customizer.admin"), translation_set_translations_path(set), class: "button hollow tiny button--simple" %>
16
+ </div>
17
+ </div>
18
+ </h2>
19
+ </div>
20
+ <div class="card-section">
21
+ <div class="grid-x">
22
+ <div class="cell">
23
+ <fieldset>
24
+ <legend>
25
+ <%= t(".file_legend", valid_mime_types: mime_types).html_safe %>
26
+ <br />
27
+ <%= t(".zip_hint") %>
28
+ </legend>
29
+ <div class="row column">
30
+ <%= form.upload :file, optional: false %>
31
+ </div>
32
+ </fieldset>
33
+ </div>
34
+ </div>
35
+ </div>
36
+ </div>
37
+ <div class="grid-x align-center mt-sm">
38
+ <%= form.submit t(".start_import") %>
39
+ </div>
40
+ <% end -%>
@@ -0,0 +1,36 @@
1
+ <%= decidim_form_for(@form, url: translation_set_translations_destroy_path(set), method: :delete, html: { class: "form translation-sets-form edit_translation translation_form_admin" }) do |f| %>
2
+ <div class="card">
3
+ <div class="card-divider">
4
+ <h2 class="card-title flex--sbc">
5
+ <div>
6
+ <%= link_to t("decidim.term_customizer.menu.term_customizer"), root_path %>
7
+ &gt;
8
+ <%= link_to translated_attribute(set.name), translation_set_translations_path(set) %>
9
+ &gt;
10
+ <%= t ".title" %>
11
+ </div>
12
+
13
+ <div class="flex--cc flex-gap--1">
14
+ <div id="js-other-actions-wrapper">
15
+ <%= link_to t("actions.back", scope: "decidim.term_customizer.admin"), translation_set_translations_path(set), class: "button hollow tiny button--simple" %>
16
+ </div>
17
+ </div>
18
+ </h2>
19
+ </div>
20
+
21
+ <div class="card-section">
22
+ <ul>
23
+ <% @form.translations_current.each do |translation| %>
24
+ <li>
25
+ <%= hidden_field_tag "translation_ids[]", translation.id %>
26
+ <%= translation.key %>
27
+ </li>
28
+ <% end %>
29
+ </ul>
30
+ </div>
31
+ </div>
32
+
33
+ <div class="button--double form-general-submit">
34
+ <%= f.submit t(".destroy") %>
35
+ </div>
36
+ <% end %>
@@ -10,72 +10,118 @@ ca:
10
10
  value: Terme personalitzat
11
11
  translation_set:
12
12
  name: Nom
13
- decidim:
14
- admin:
15
- actions:
16
- add_multiple_translations: Afegir múltiples
17
- back: Enrere
18
- clear_cache: Clear cache
19
- new_translation_set: Nou set/joc de traducció
20
- new_translation: Nova traducció
13
+ translations_import:
14
+ file: Import file
15
+ errors:
21
16
  models:
22
- translation_sets:
23
- fields:
24
- name: Nom
25
- translations:
26
- fields:
27
- key: Clau de traducció
28
- original_term: Terme original
29
- term: Terme personalitzat
30
- titles:
31
- translation_sets: Sets/Jocs de traducció
32
- translations: Traduccions
17
+ translations_import:
18
+ attributes:
19
+ file:
20
+ invalid_mime_type: 'Invalid file type. Accepted formats are: %{valid_mime_types}'
21
+ decidim:
33
22
  term_customizer:
34
23
  admin:
24
+ actions:
25
+ add_multiple_translations: Afegir múltiples
26
+ back: Enrere
27
+ cancel: Cancel
28
+ clear_cache: Clear cache
29
+ help: Help
30
+ import: Import
31
+ new_translation: Nova traducció
32
+ new_translation_set: Nou set/joc de traducció
35
33
  add_translations:
36
34
  index:
37
35
  add: Afegir
36
+ help_html: <p>Start by typing a couple of letters appearing in the term that you want to change in the search panel. Wait for few seconds and a list of all translations matching your search will be displayed below the search field. Click the translations in that list that you want to change. They will appear below the search field in the list of translations to be added.</p> <p>Once you have added all the translations that you want to change, click the "%{button_name}" button at the bottom of the screen.</p>
37
+ help_title: How to search for translations?
38
38
  search: Buscar
39
39
  caches:
40
40
  clear:
41
41
  success: Cache cleared successfully
42
+ models:
43
+ translation_sets:
44
+ fields:
45
+ name: Nom
46
+ translations:
47
+ fields:
48
+ key: Clau de traducció
49
+ original_term: Terme original
50
+ term: Terme personalitzat
51
+ titles:
52
+ add_multiple_translations: Afegir múltiples
53
+ translation_sets: Sets/Jocs de traducció
54
+ translations: Traduccions
42
55
  translation_sets:
43
56
  constraint_fields:
44
57
  constraint: Obligatori
45
58
  remove: Eliminar
46
59
  create:
47
- success: Traducció creada amb èxit
48
60
  error: Error en crear la traducció
61
+ success: Traducció creada amb èxit
49
62
  destroy:
50
63
  success: La traducció ha estat esborrada amb èxit.
51
64
  edit:
52
- title: Set/Joc de traducció
53
65
  save: Guardar
66
+ title: Set/Joc de traducció
54
67
  form:
55
68
  add_constraint: Afegir restricció
56
- title: Set/Joc de traducció
69
+ constraint_help_html: <p>Constraints are specific rules that allow you to apply the customizations in a set to a specific context.</p> <p>In case you do not define any constraint rules, the customizations in this set will apply to the whole application. On the other hand, if you want the customizations in this set to apply only to a specific process, select "Participatory processes" as the participatory space type and the target process as the participatory space. Furthermore, you can also apply the customizations to a specific component by defining the component for the constraint.</p> <p>If you define multiple constraints, the customizations will apply in all of those.</p>
70
+ constraint_help_title: What are constraints?
71
+ help_html: <p>A translation set is a "container" that holds the translations for a specific context you want to customize.</p> <p>Translation sets help you to organize your customizations and apply them to different contexts. This allows you to customize the same translation differently in different contexts.</p> <p>For example, if you want to customize a button with the term "Add" differently for different participatory processes, you can create separate translation sets for both processes and apply the set to those processes using the constraints.</p>
72
+ help_title: What is a translation set?
73
+ title: Translation set.
74
+ index:
75
+ no_records_html: <p>No translation sets available.</p> <p>Start by adding a translation set from the "<a href="%{new_set_link}">%{button_name}</a>" button.</p>
57
76
  new:
58
77
  create: Crear
59
78
  title: Sets/Jocs de traduccions
60
79
  update:
61
- success: Set/Joc de traducció actualitzada amb èxit
62
80
  error: Error en l'actualització de la traducció
81
+ success: Set/Joc de traducció actualitzada amb èxit
63
82
  translations:
64
83
  create:
65
- success: Traducció creada amb èxit
66
84
  error: Error en crear la traducció
85
+ success: Traducció creada amb èxit
67
86
  destroy:
68
87
  success: La traducció ha estat esborrada amb èxit
69
88
  edit:
70
- title: Traducció
71
89
  save: Guardar
90
+ title: Traducció
72
91
  form:
92
+ help_html: <p>A translation key is a technical reference to the translation to be translatated. This is not the term you want to change but the technical key that refers to that translation.</p> <p>For example, if you want to change the term <em>"Processes"</em> in the top menu, you would use the key <em>"decidim.menu.processes"</em>.</p> <p><a href="https://guides.rubyonrails.org/i18n.html" target="_blank"> Read more about Rails Internationalization</a>.</p>
93
+ help_title: What is translation key?
94
+ term_help_html: "<p>The customized term is the final word you want to appear in the UI instead of the original term. Obviously, the customized term can differ for each enabled language.</p>"
95
+ term_help_title: What is customized term?
73
96
  title: Traducció
97
+ import:
98
+ error: Error importing translations
99
+ success: Translations successfully imported.
100
+ index:
101
+ actions: Actions
102
+ no_records_html: <p>No translations available in this set.</p> <p>Start by adding translations to this set. The easiest way is to use the "<a href="%{add_multiple_link}">%{button_name}</a>" button where you can search translations with the same terms that you see in the UI.</p>
103
+ selected: selected
74
104
  new:
75
105
  create: Crear
76
106
  title: Traduccions
107
+ new_import:
108
+ accepted_mime_types:
109
+ csv: CSV
110
+ json: JSON
111
+ xls: XLS
112
+ file_legend: 'Add an import file that will be parsed for translations. Suported formats are: %{valid_mime_types}'
113
+ start_import: Start import
114
+ title: Import translations
115
+ zip_hint: You can also upload the ZIP file from the translations export.
77
116
  update:
78
- success: Traducció actualitzada amb èxit.
79
117
  error: Error en l'actualització de la traducció.
118
+ success: Traducció actualitzada amb èxit.
119
+ translations_destroys:
120
+ destroy:
121
+ error: Error deleting translations.
122
+ success: Translations successfully deleted.
123
+ new:
124
+ destroy: Delete
125
+ title: Translations delete
80
126
  menu:
81
127
  term_customizer: Personalització de termes
@@ -1,3 +1,4 @@
1
+ ---
1
2
  en:
2
3
  activemodel:
3
4
  attributes:
@@ -10,72 +11,154 @@ en:
10
11
  value: Customized term
11
12
  translation_set:
12
13
  name: Name
13
- decidim:
14
- admin:
15
- actions:
16
- add_multiple_translations: Add multiple
17
- back: Back
18
- clear_cache: Clear cache
19
- new_translation_set: New translation set
20
- new_translation: New translation
14
+ translations_import:
15
+ file: Import file
16
+ errors:
21
17
  models:
22
- translation_sets:
23
- fields:
24
- name: Name
25
- translations:
26
- fields:
27
- key: Translation key
28
- original_term: Original term
29
- term: Customized term
30
- titles:
31
- translation_sets: Translation sets
32
- translations: Translations
18
+ translations_import:
19
+ attributes:
20
+ file:
21
+ invalid_mime_type: 'Invalid file type. Accepted formats are: %{valid_mime_types}'
22
+ decidim:
33
23
  term_customizer:
34
24
  admin:
25
+ actions:
26
+ add_multiple_translations: Add multiple
27
+ back: Back
28
+ cancel: Cancel
29
+ clear_cache: Clear cache
30
+ help: Help
31
+ import: Import
32
+ new_translation: New translation
33
+ new_translation_set: New translation set
35
34
  add_translations:
36
35
  index:
37
36
  add: Add
37
+ help_html: <p>Start by typing a couple of letters appearing in the term
38
+ that you want to change in the search panel. Wait for few seconds and
39
+ a list of all translations matching your search will be displayed below
40
+ the search field. Click the translations in that list that you want
41
+ to change. They will appear below the search field in the list of translations
42
+ to be added.</p> <p>Once you have added all the translations that you
43
+ want to change, click the "%{button_name}" button at the bottom of the
44
+ screen.</p>
45
+ help_title: How to search for translations?
38
46
  search: Search
39
47
  caches:
40
48
  clear:
41
49
  success: Cache cleared successfully
50
+ models:
51
+ translation_sets:
52
+ fields:
53
+ name: Name
54
+ translations:
55
+ fields:
56
+ key: Translation key
57
+ original_term: Original term
58
+ term: Customized term
59
+ titles:
60
+ add_multiple_translations: Add multiple
61
+ translation_sets: Translation sets
62
+ translations: Translations
42
63
  translation_sets:
43
64
  constraint_fields:
44
65
  constraint: Constraint
45
66
  remove: Remove
46
67
  create:
47
- success: Translation set successfully created.
48
68
  error: Error creating translation set.
69
+ success: Translation set successfully created.
49
70
  destroy:
50
71
  success: Translation set successfully deleted.
51
72
  edit:
52
- title: Translation set
53
73
  save: Save
74
+ title: Translation set
54
75
  form:
55
76
  add_constraint: Add constraint
56
- title: Translation set
77
+ constraint_help_html: <p>Constraints are specific rules that allow you
78
+ to apply the customizations in a set to a specific context.</p> <p>In
79
+ case you do not define any constraint rules, the customizations in this
80
+ set will apply to the whole application. On the other hand, if you want
81
+ the customizations in this set to apply only to a specific process,
82
+ select "Participatory processes" as the participatory space type and
83
+ the target process as the participatory space. Furthermore, you can
84
+ also apply the customizations to a specific component by defining the
85
+ component for the constraint.</p> <p>If you define multiple constraints,
86
+ the customizations will apply in all of those.</p>
87
+ constraint_help_title: What are constraints?
88
+ help_html: <p>A translation set is a "container" that holds the translations
89
+ for a specific context you want to customize.</p> <p>Translation sets
90
+ help you to organize your customizations and apply them to different
91
+ contexts. This allows you to customize the same translation differently
92
+ in different contexts.</p> <p>For example, if you want to customize
93
+ a button with the term "Add" differently for different participatory
94
+ processes, you can create separate translation sets for both processes
95
+ and apply the set to those processes using the constraints.</p>
96
+ help_title: What is a translation set?
97
+ title: Translation set.
98
+ index:
99
+ no_records_html: <p>No translation sets available.</p> <p>Start by adding
100
+ a translation set from the "<a href="%{new_set_link}">%{button_name}</a>"
101
+ button.</p>
57
102
  new:
58
103
  create: Create
59
104
  title: Translation sets
60
105
  update:
61
- success: Translation set successfully updated.
62
106
  error: Error updating translation set.
107
+ success: Translation set successfully updated.
63
108
  translations:
64
109
  create:
65
- success: Translation successfully created.
66
110
  error: Error creating translation.
111
+ success: Translation successfully created.
67
112
  destroy:
68
113
  success: Translation successfully deleted.
69
114
  edit:
70
- title: Translation
71
115
  save: Save
116
+ title: Translation
72
117
  form:
118
+ help_html: <p>A translation key is a technical reference to the translation
119
+ to be translatated. This is not the term you want to change but the
120
+ technical key that refers to that translation.</p> <p>For example, if
121
+ you want to change the term <em>"Processes"</em> in the top menu, you
122
+ would use the key <em>"decidim.menu.processes"</em>.</p> <p><a href="https://guides.rubyonrails.org/i18n.html"
123
+ target="_blank"> Read more about Rails Internationalization</a>.</p>
124
+ help_title: What is translation key?
125
+ term_help_html: "<p>The customized term is the final word you want to
126
+ appear in the UI instead of the original term. Obviously, the customized
127
+ term can differ for each enabled language.</p>"
128
+ term_help_title: What is customized term?
73
129
  title: Translation
130
+ import:
131
+ error: Error importing translations
132
+ success: Translations successfully imported.
133
+ index:
134
+ actions: Actions
135
+ no_records_html: <p>No translations available in this set.</p> <p>Start
136
+ by adding translations to this set. The easiest way is to use the "<a
137
+ href="%{add_multiple_link}">%{button_name}</a>" button where you can
138
+ search translations with the same terms that you see in the UI.</p>
139
+ selected: selected
74
140
  new:
75
141
  create: Create
76
142
  title: Translations
143
+ new_import:
144
+ accepted_mime_types:
145
+ csv: CSV
146
+ json: JSON
147
+ xls: XLS
148
+ file_legend: 'Add an import file that will be parsed for translations.
149
+ Suported formats are: %{valid_mime_types}'
150
+ start_import: Start import
151
+ title: Import translations
152
+ zip_hint: You can also upload the ZIP file from the translations export.
77
153
  update:
78
- success: Translation successfully updated.
79
154
  error: Error updating translation.
155
+ success: Translation successfully updated.
156
+ translations_destroys:
157
+ destroy:
158
+ error: Error deleting translations.
159
+ success: Translations successfully deleted.
160
+ new:
161
+ destroy: Delete
162
+ title: Translations delete
80
163
  menu:
81
164
  term_customizer: Term customizer
@@ -10,72 +10,118 @@ es:
10
10
  value: Valor personalizado
11
11
  translation_set:
12
12
  name: Nombre
13
- decidim:
14
- admin:
15
- actions:
16
- add_multiple_translations: Agregar varios
17
- back: Volver
18
- clear_cache: Clear cache
19
- new_translation_set: Nuevo grupo de traducciones
20
- new_translation: Nueva traducción
13
+ translations_import:
14
+ file: Import file
15
+ errors:
21
16
  models:
22
- translation_sets:
23
- fields:
24
- name: Nombre
25
- translations:
26
- fields:
27
- key: Llave de traducción
28
- original_term: Valor original
29
- term: Valor personalizado
30
- titles:
31
- translation_sets: Grupo de traducciones
32
- translations: Traducciones
17
+ translations_import:
18
+ attributes:
19
+ file:
20
+ invalid_mime_type: 'Invalid file type. Accepted formats are: %{valid_mime_types}'
21
+ decidim:
33
22
  term_customizer:
34
23
  admin:
24
+ actions:
25
+ add_multiple_translations: Agregar varios
26
+ back: Volver
27
+ cancel: Cancel
28
+ clear_cache: Clear cache
29
+ help: Help
30
+ import: Import
31
+ new_translation: Nueva traducción
32
+ new_translation_set: Nuevo grupo de traducciones
35
33
  add_translations:
36
34
  index:
37
35
  add: Añadir
36
+ help_html: <p>Start by typing a couple of letters appearing in the term that you want to change in the search panel. Wait for few seconds and a list of all translations matching your search will be displayed below the search field. Click the translations in that list that you want to change. They will appear below the search field in the list of translations to be added.</p> <p>Once you have added all the translations that you want to change, click the "%{button_name}" button at the bottom of the screen.</p>
37
+ help_title: How to search for translations?
38
38
  search: Buscar
39
39
  caches:
40
40
  clear:
41
41
  success: Cache cleared successfully
42
+ models:
43
+ translation_sets:
44
+ fields:
45
+ name: Nombre
46
+ translations:
47
+ fields:
48
+ key: Llave de traducción
49
+ original_term: Valor original
50
+ term: Valor personalizado
51
+ titles:
52
+ add_multiple_translations: Agregar varios
53
+ translation_sets: Grupo de traducciones
54
+ translations: Traducciones
42
55
  translation_sets:
43
56
  constraint_fields:
44
57
  constraint: Ámbito
45
58
  remove: Eliminar
46
59
  create:
47
- success: Gurpo de tranducciones creado exitosamente.
48
60
  error: Error creando el grupo de traducciones.
61
+ success: Gurpo de tranducciones creado exitosamente.
49
62
  destroy:
50
63
  success: El grupo de traducciones ha sido creado exitosamente.
51
64
  edit:
52
- title: Grupo de traducciones
53
65
  save: Guardar
66
+ title: Grupo de traducciones
54
67
  form:
55
68
  add_constraint: Agregar ámbito
56
- title: Grupo de traducciones
69
+ constraint_help_html: <p>Constraints are specific rules that allow you to apply the customizations in a set to a specific context.</p> <p>In case you do not define any constraint rules, the customizations in this set will apply to the whole application. On the other hand, if you want the customizations in this set to apply only to a specific process, select "Participatory processes" as the participatory space type and the target process as the participatory space. Furthermore, you can also apply the customizations to a specific component by defining the component for the constraint.</p> <p>If you define multiple constraints, the customizations will apply in all of those.</p>
70
+ constraint_help_title: What are constraints?
71
+ help_html: <p>A translation set is a "container" that holds the translations for a specific context you want to customize.</p> <p>Translation sets help you to organize your customizations and apply them to different contexts. This allows you to customize the same translation differently in different contexts.</p> <p>For example, if you want to customize a button with the term "Add" differently for different participatory processes, you can create separate translation sets for both processes and apply the set to those processes using the constraints.</p>
72
+ help_title: What is a translation set?
73
+ title: Translation set.
74
+ index:
75
+ no_records_html: <p>No translation sets available.</p> <p>Start by adding a translation set from the "<a href="%{new_set_link}">%{button_name}</a>" button.</p>
57
76
  new:
58
77
  create: Crear
59
78
  title: Grupo de traducciones
60
79
  update:
61
- success: Grupo de tranducciones actualizado exitosamente.
62
80
  error: Error actualizando el grupo de traducciones.
81
+ success: Grupo de tranducciones actualizado exitosamente.
63
82
  translations:
64
83
  create:
65
- success: Traducción creada exitosamente.
66
84
  error: Error creando la traducción.
85
+ success: Traducción creada exitosamente.
67
86
  destroy:
68
87
  success: Traducción eliminada exitosamente.
69
88
  edit:
70
- title: Traducción
71
89
  save: Guardar
90
+ title: Traducción
72
91
  form:
92
+ help_html: <p>A translation key is a technical reference to the translation to be translatated. This is not the term you want to change but the technical key that refers to that translation.</p> <p>For example, if you want to change the term <em>"Processes"</em> in the top menu, you would use the key <em>"decidim.menu.processes"</em>.</p> <p><a href="https://guides.rubyonrails.org/i18n.html" target="_blank"> Read more about Rails Internationalization</a>.</p>
93
+ help_title: What is translation key?
94
+ term_help_html: "<p>The customized term is the final word you want to appear in the UI instead of the original term. Obviously, the customized term can differ for each enabled language.</p>"
95
+ term_help_title: What is customized term?
73
96
  title: Traducción
97
+ import:
98
+ error: Error importing translations
99
+ success: Translations successfully imported.
100
+ index:
101
+ actions: Actions
102
+ no_records_html: <p>No translations available in this set.</p> <p>Start by adding translations to this set. The easiest way is to use the "<a href="%{add_multiple_link}">%{button_name}</a>" button where you can search translations with the same terms that you see in the UI.</p>
103
+ selected: selected
74
104
  new:
75
105
  create: Crear
76
106
  title: Traducciones
107
+ new_import:
108
+ accepted_mime_types:
109
+ csv: CSV
110
+ json: JSON
111
+ xls: XLS
112
+ file_legend: 'Add an import file that will be parsed for translations. Suported formats are: %{valid_mime_types}'
113
+ start_import: Start import
114
+ title: Import translations
115
+ zip_hint: You can also upload the ZIP file from the translations export.
77
116
  update:
78
- success: Traducción actualizada exitosamente.
79
117
  error: Error actualizando la traducción.
118
+ success: Traducción actualizada exitosamente.
119
+ translations_destroys:
120
+ destroy:
121
+ error: Error deleting translations.
122
+ success: Translations successfully deleted.
123
+ new:
124
+ destroy: Delete
125
+ title: Translations delete
80
126
  menu:
81
127
  term_customizer: Personalización de términos