decidim-term_customizer 0.21.0 → 0.22.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 9e3682a317d9b21372199d956feec358caa08ac918beb770120905fb809f2acb
4
- data.tar.gz: eb37d04fb232709d5b8ca49abdd4e8e4c0203bfc732a470b261538065f70c7e2
3
+ metadata.gz: e5a77220e9577102ab82115a6c3ebbf2442a111cc5864009616c0d5ccf0e033a
4
+ data.tar.gz: 5751bee8bf851e2ad497af464031aec1bd181d405bbd4c762b03a808d44bfea0
5
5
  SHA512:
6
- metadata.gz: b745d1e76d52d177656e7d10f29be947af94439397828d67f878a221209f8c435bdf6965978ca1d44901613ce865e52ee701ff5fd1161316b782d4e6db47586b
7
- data.tar.gz: 103f2b361befd2ee05f6ce8877e42b29b78ffff28d2359cee08b70172387f4db6f384df9dadb6920589eecf60c918a50fff0263468f82d8bc26dd8ab4bb614c2
6
+ metadata.gz: aa8ccd59c3bbcf8a3ef1d7aec807aea4a05ed38f8dfa8ca4d5bee82f4f10e8d3cd506f148003a3f44e19a6558ebc270683b580e5b75d0c0ee7b419c5b2175162
7
+ data.tar.gz: b5f6f3cd6c5422bab4b38189145ae8810e5cfadf1551e10d42bf42c9296cde1b7542447f100e4784e09676861f967bd4a4768b8b0b7e1c564933e20c513c4444
@@ -14,7 +14,7 @@ module Decidim
14
14
  translatable_attribute :value, String
15
15
 
16
16
  validates :key, presence: true
17
- validates :key, format: { with: %r{\A([a-z0-9_/]+\.?)*[a-z0-9_/]+\z} }, unless: -> { key.blank? }
17
+ validates :key, format: { with: %r{\A([a-z0-9_/\?\-]+\.)*[a-z0-9_/\?\-]+\z} }, unless: -> { key.blank? }
18
18
  validates :value, translatable_presence: true
19
19
  validate :key_uniqueness
20
20
 
@@ -10,7 +10,7 @@ module Decidim
10
10
 
11
11
  validates :locale, presence: true
12
12
  validates :key, presence: true
13
- validates :key, format: { with: %r{\A([a-z0-9_/]+\.?)*[a-z0-9_/]+\z} }, unless: -> { key.blank? }
13
+ validates :key, format: { with: %r{\A([a-z0-9_/\?\-]+\.)*[a-z0-9_/\?\-]+\z} }, unless: -> { key.blank? }
14
14
  validates :key, uniqueness: { scope: [:translation_set, :locale] }, unless: -> { key.blank? }
15
15
 
16
16
  class << self
@@ -0,0 +1,134 @@
1
+ cs:
2
+ activemodel:
3
+ attributes:
4
+ constraint:
5
+ component_id: Komponenta
6
+ subject_id: Účastnický prostor
7
+ subject_manifest: Typ účastnického prostoru
8
+ translation:
9
+ key: Překladový klíč
10
+ value: Vlastní termín
11
+ translation_set:
12
+ name: Název
13
+ translations_import:
14
+ file: Importovat soubor
15
+ errors:
16
+ models:
17
+ translations_import:
18
+ attributes:
19
+ file:
20
+ invalid_mime_type: 'Neplatný typ souboru. Přijatelné formáty jsou: %{valid_mime_types}'
21
+ decidim:
22
+ term_customizer:
23
+ admin:
24
+ actions:
25
+ add_multiple_translations: Přidat více
26
+ back: Zpět
27
+ cancel: Zrušit
28
+ clear_cache: Vymazat mezipaměť
29
+ confirm_duplicate: Opravdu chcete duplikovat tuto sadu?
30
+ duplicate: Duplikovat
31
+ help: Nápověda
32
+ import: Importovat
33
+ new_translation: Nový překlad
34
+ new_translation_set: Nová sada překladů
35
+ view: Zobrazit
36
+ add_translations:
37
+ index:
38
+ add: Přidat
39
+ help_html: <p>Začněte zadáním několika písmen ve výrazu, který chcete změnit ve vyhledávacím panelu. Počkejte několik sekund a seznam všech překladů, které odpovídají vašemu vyhledávání, se zobrazí pod vyhledávacím polem. Klikněte na překlady v tomto seznamu, které chcete změnit. Zobrazí se pod vyhledávacím polem v seznamu překladů, které mají být přidány.</p> <p>Jakmile přidáte všechny překlady, které chcete změnit, klikněte na tlačítko "%{button_name}" v dolní části obrazovky.</p>
40
+ help_title: Jak hledat překlady?
41
+ search: Hledat
42
+ caches:
43
+ clear:
44
+ success: Mezipaměť úspěšně vymazána
45
+ models:
46
+ translation_sets:
47
+ fields:
48
+ name: Název
49
+ translations:
50
+ fields:
51
+ key: Překladový klíč
52
+ original_term: Původní termín
53
+ term: Vlastní termín
54
+ titles:
55
+ add_multiple_translations: Přidat více
56
+ translation_sets: Překladové sady
57
+ translations: Překlady
58
+ translation_sets:
59
+ constraint_fields:
60
+ constraint: Omezení
61
+ remove: Smazat
62
+ create:
63
+ error: Chyba při vytváření překladové sady.
64
+ success: Překlad byl úspěšně vytvořen.
65
+ destroy:
66
+ success: Překladová sada byla úspěšně odstraněna.
67
+ duplicate:
68
+ copied_set_name: Kopie %{name}
69
+ error: Chyba při duplikování překladové sady.
70
+ success: Překladová sada byla úspěšně duplikována.
71
+ edit:
72
+ save: Uložit
73
+ title: Překladová sada
74
+ form:
75
+ add_constraint: Přidat omezení
76
+ constraint_help_html: <p>Omezení jsou specifická pravidla, která vám umožňují použít vlastní nastavení v nastaveném kontextu.</p> <p>V případě, že nedefinujete žádná pravidla vazeb, budou přizpůsobení v této sadě platit pro celou aplikaci. Na druhé straně, pokud chcete, aby se přizpůsobení v této sadě vztahovalo pouze na konkrétní proces, jako participační prostor vyberte „účastnické procesy“ a cílový proces. Kromě toho můžete také použít přizpůsobení na určitou komponentu definováním komponenty pro omezení.</p> <p>Pokud definujete více vazeb, budou aplikovány na všechny tyto vazby.</p>
77
+ constraint_help_title: Co jsou omezení?
78
+ help_html: <p>sada překladů je "kontejner", který obsahuje překlady pro konkrétní kontext, který chcete upravit.</p> <p>Překlad vám pomůže uspořádat si vlastní nastavení a aplikovat je na různé kontexty. To vám umožní přizpůsobit stejný překlad rozdílně v různých kontextech.</p> <p>Například, pokud chcete přizpůsobit tlačítko s termínem "Přidat" odlišně pro různé participační procesy, můžete vytvořit samostatné sady překladů pro oba procesy a použít nastavení pro tyto procesy pomocí omezení.</p>
79
+ help_title: Co je to překladová sada?
80
+ title: Překladová sada
81
+ index:
82
+ no_records_html: <p>Žádné překladové sady nejsou k dispozici.</p> <p>Začněte přidáním překladové sady tlačítkem "<a href="%{new_set_link}">%{button_name}</a>.</p>
83
+ new:
84
+ create: Vytvořit
85
+ title: Překladové sady
86
+ update:
87
+ error: Chyba při aktualizaci překladové sady.
88
+ success: Překlad byl úspěšně aktualizován.
89
+ translations:
90
+ create:
91
+ error: Chyba při vytváření překladu.
92
+ success: Překlad byl úspěšně vytvořen.
93
+ destroy:
94
+ success: Překlad byl úspěšně odstraněn.
95
+ edit:
96
+ save: Uložit
97
+ title: Překlad
98
+ form:
99
+ help_html: <p>Překladový klíč je technickým odkazem na překlad, který má být přeložen. Toto není termín, který chcete změnit, ale technický klíč, který odkazuje na tento překlad.</p> <p>Například pokud chcete změnit termín <em>"Procesy"</em> v horním menu, byste použili klíč <em>"decidim.menu.processes"</em>.</p> <p><a href="https://guides.rubyonrails.org/i18n.html" target="_blank"> Přečtěte si více o Rails Internationalization</a>.</p>
100
+ help_title: Co je překladový klíč?
101
+ term_help_html: "<p>Nastavený termín je poslední slovo, které se chcete objevit v uživatelském rozhraní namísto původního výrazu. Přizpůsobený termín se samozřejmě může lišit pro každý povolený jazyk.</p>"
102
+ term_help_title: Co je upravený termín?
103
+ title: Překlad
104
+ import:
105
+ error: Chyba při importu překladů
106
+ success: Překlady byly úspěšně importovány.
107
+ index:
108
+ actions: Akce
109
+ no_records_html: <p>V této sadě nejsou k dispozici žádné překlady.</p> <p>Začněte přidáním překladů do této sady. Nejjednodušším způsobem je použít tlačítko "<a href="%{add_multiple_link}">%{button_name}</a>, kde můžete vyhledávat překlady se stejnými termíny, jaké vidíte v uživatelském rozhraní.</p>
110
+ selected: vybráno
111
+ new:
112
+ create: Vytvořit
113
+ title: Překlady
114
+ new_import:
115
+ accepted_mime_types:
116
+ csv: CSV
117
+ json: JSON
118
+ xls: XLS
119
+ file_legend: 'Přidat importovaný soubor, který bude zpracován pro překlady. Podporované formáty jsou: %{valid_mime_types}'
120
+ start_import: Zahájit import
121
+ title: Importovat překlady
122
+ zip_hint: Můžete také nahrát ZIP soubor z exportu překladů.
123
+ update:
124
+ error: Chyba při aktualizaci překladu.
125
+ success: Překlad byl úspěšně aktualizován.
126
+ translations_destroys:
127
+ destroy:
128
+ error: Chyba při odstraňování překladů.
129
+ success: Překlady byly úspěšně odstraněny.
130
+ new:
131
+ destroy: Vymazat
132
+ title: Smazat překlady
133
+ menu:
134
+ term_customizer: Úprava termínů
@@ -11,33 +11,33 @@ fr:
11
11
  translation_set:
12
12
  name: Nom
13
13
  translations_import:
14
- file: Import file
14
+ file: Importer un fichier
15
15
  errors:
16
16
  models:
17
17
  translations_import:
18
18
  attributes:
19
19
  file:
20
- invalid_mime_type: 'Invalid file type. Accepted formats are: %{valid_mime_types}'
20
+ invalid_mime_type: 'Type de document invalide. Les formats acceptés sont: %{valid_mime_types}'
21
21
  decidim:
22
22
  term_customizer:
23
23
  admin:
24
24
  actions:
25
25
  add_multiple_translations: Ajouter plusieurs
26
26
  back: Retour
27
- cancel: Cancel
27
+ cancel: Annuler
28
28
  clear_cache: Purger le cache
29
- confirm_duplicate: Are you sure you want to duplicate this set?
30
- duplicate: Duplicate
31
- help: Help
32
- import: Import
29
+ confirm_duplicate: Êtes-vous sûr de vouloir dupliquer cet ensemble ?
30
+ duplicate: Dupliquer
31
+ help: Aide
32
+ import: Importer
33
33
  new_translation: Nouvelle traduction
34
34
  new_translation_set: Nouveau jeu de traduction
35
- view: View
35
+ view: Afficher
36
36
  add_translations:
37
37
  index:
38
38
  add: Ajouter
39
- 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>
40
- help_title: How to search for translations?
39
+ help_html: <p>Commencez par taper quelques lettres apparaissant dans le terme que vous souhaitez modifier dans le panneau de recherche. Attendez quelques secondes et une liste de toutes les traductions correspondant à votre recherche sera affichée sous le champ de recherche. Cliquez sur les traductions dans cette liste que vous souhaitez modifier. Elles apparaîtront sous le champ de recherche dans la liste des traductions à ajouter.</p> <p>Une fois que vous avez ajouté toutes les traductions que vous voulez modifier, cliquez sur le bouton "%{button_name}" en bas de l'écran.</p>
40
+ help_title: Comment rechercher des traductions ?
41
41
  search: Rechercher
42
42
  caches:
43
43
  clear:
@@ -65,21 +65,21 @@ fr:
65
65
  destroy:
66
66
  success: Le jeu de traduction a été supprimé.
67
67
  duplicate:
68
- copied_set_name: Copy of %{name}
69
- error: Error duplicating translation set.
70
- success: Translation set successfully duplicated.
68
+ copied_set_name: Copie de %{name}
69
+ error: Erreur lors de la duplication du jeu de traduction.
70
+ success: Ensemble de traduction dupliqué avec succès.
71
71
  edit:
72
72
  save: Sauvegarder
73
73
  title: Jeu de traductions
74
74
  form:
75
75
  add_constraint: Ajouter contrainte
76
- 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>
77
- constraint_help_title: What are constraints?
78
- 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>
79
- help_title: What is a translation set?
76
+ constraint_help_html: <p>Les contraintes sont des règles spécifiques qui vous permettent d'appliquer les personnalisations dans un ensemble à un contexte spécifique.</p> <p>Si vous ne définissez aucune règle de contrainte, les personnalisations de cet ensemble s'appliqueront à l'ensemble de l'application. Par contre, si vous voulez que les personnalisations de cet ensemble s'appliquent uniquement à un processus spécifique, sélectionnez "Processus participatifs" comme type d'espace participatif et le processus cible comme espace participatif. De plus, vous pouvez également appliquer les personnalisations à un composant spécifique en définissant le composant de la contrainte.</p> <p>Si vous définissez plusieurs contraintes, les personnalisations s'appliqueront à tous ceux-ci.</p>
77
+ constraint_help_title: Quelles sont les contraintes?
78
+ help_html: <p>Un jeu de traduction est un "conteneur" qui contient les traductions pour un contexte spécifique que vous souhaitez personnaliser.</p> <p>Les ensembles de traduction vous aident à organiser vos personnalisations et à les appliquer à différents contextes. Cela vous permet de personnaliser la même traduction différemment dans différents contextes.</p> <p>Par exemple, si vous voulez personnaliser un bouton avec le terme "Ajouter" différemment pour différents processus participatifs, vous pouvez créer des ensembles de traduction séparés pour les deux processus et appliquer l'ensemble à ces processus en utilisant les contraintes.</p>
79
+ help_title: Qu'est-ce qu'un ensemble de traductions ?
80
80
  title: Jeu de traductions
81
81
  index:
82
- 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>
82
+ no_records_html: <p>Aucune ensemble de traduction disponible.</p> <p>Commencez par ajouter une traduction définie à partir du bouton "<a href="%{new_set_link}">%{button_name}</a>.</p>
83
83
  new:
84
84
  create: Créer
85
85
  title: Jeu de traductions
@@ -96,18 +96,18 @@ fr:
96
96
  save: Sauvegarder
97
97
  title: Traduction
98
98
  form:
99
- 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>
100
- help_title: What is translation key?
101
- 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>"
102
- term_help_title: What is customized term?
99
+ help_html: <p>Une clé de traduction est une référence technique à la traduction à traduire. Ce n'est pas le terme que vous voulez changer, mais la clé technique qui fait référence à cette traduction.</p> <p>Par exemple, si vous voulez changer le terme <em>"Processus"</em> dans le menu supérieur, vous utiliseriez la clé <em>"decidim. enu.processes"</em>.</p> <p><a href="https://guides.rubyonrails.org/i18n.html" target="_blank"> En savoir plus sur l'internationalisation Rails</a>.</p>
100
+ help_title: Qu'est-ce que la clé de traduction ?
101
+ term_help_html: "<p>Le terme personnalisé est le dernier mot que vous voudriez apparaître dans l'interface utilisateur au lieu du terme original. Évidemment, le terme personnalisé peut différer pour chaque langue activée.</p>"
102
+ term_help_title: Qu'est-ce qu'un terme personnalisé ?
103
103
  title: Traduction
104
104
  import:
105
- error: Error importing translations
106
- success: Translations successfully imported.
105
+ error: Erreur lors de l'importation des traductions
106
+ success: Traductions importées avec succès.
107
107
  index:
108
108
  actions: Actions
109
- 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>
110
- selected: selected
109
+ no_records_html: <p>Aucune traduction disponible dans cet ensemble.</p> <p>Commencez par ajouter des traductions à cet ensemble. La façon la plus simple est d'utiliser le bouton "<a href="%{add_multiple_link}">%{button_name}</a>" vous pouvez rechercher des traductions avec les mêmes termes que ceux que vous voyez dans l'interface utilisateur.</p>
110
+ selected: sélectionné
111
111
  new:
112
112
  create: Créer
113
113
  title: Traductions
@@ -116,19 +116,19 @@ fr:
116
116
  csv: CSV
117
117
  json: JSON
118
118
  xls: XLS
119
- file_legend: 'Add an import file that will be parsed for translations. Suported formats are: %{valid_mime_types}'
120
- start_import: Start import
121
- title: Import translations
122
- zip_hint: You can also upload the ZIP file from the translations export.
119
+ file_legend: 'Ajouter un fichier d''importation qui sera analysé pour les traductions. Les formats supportés sont: %{valid_mime_types}'
120
+ start_import: Démarrer l'import
121
+ title: Importer des traductions
122
+ zip_hint: Vous pouvez également télécharger le fichier ZIP à partir de l'export des traductions.
123
123
  update:
124
124
  error: Une erreur a lieu durant la mise à jour de la traduction.
125
125
  success: Traduction mis à jour avec succès.
126
126
  translations_destroys:
127
127
  destroy:
128
- error: Error deleting translations.
129
- success: Translations successfully deleted.
128
+ error: Erreur lors de la suppression des traductions.
129
+ success: Traductions supprimées avec succès.
130
130
  new:
131
- destroy: Delete
132
- title: Translations delete
131
+ destroy: Supprimer
132
+ title: Traduction supprimées
133
133
  menu:
134
134
  term_customizer: Paramétrages des traductions
@@ -0,0 +1,134 @@
1
+ it:
2
+ activemodel:
3
+ attributes:
4
+ constraint:
5
+ component_id: Componente
6
+ subject_id: Spazio partecipativo
7
+ subject_manifest: Tipo di spazio partecipativo
8
+ translation:
9
+ key: Chiave di traduzione
10
+ value: Termine personalizzato
11
+ translation_set:
12
+ name: Nome
13
+ translations_import:
14
+ file: Importa File
15
+ errors:
16
+ models:
17
+ translations_import:
18
+ attributes:
19
+ file:
20
+ invalid_mime_type: 'Tipo di file non valido. I formati accettati sono: %{valid_mime_types}'
21
+ decidim:
22
+ term_customizer:
23
+ admin:
24
+ actions:
25
+ add_multiple_translations: Aggiungi più
26
+ back: Indietro
27
+ cancel: Annulla
28
+ clear_cache: Cancella Cache
29
+ confirm_duplicate: Sei sicuro di voler duplicare questo set?
30
+ duplicate: Duplica
31
+ help: Guida
32
+ import: Importa
33
+ new_translation: Nuova traduzione
34
+ new_translation_set: Nuovo set di traduzione
35
+ view: Visualizza
36
+ add_translations:
37
+ index:
38
+ add: Aggiungi
39
+ help_html: <p>Inizia digitando un paio di lettere che appaiono nel termine che vuoi cambiare nel pannello di ricerca. Attendere alcuni secondi e una lista di tutte le traduzioni corrispondenti alla ricerca verrà visualizzata sotto il campo di ricerca. Fare clic sulle traduzioni nella lista che si desidera modificare. Esse appariranno sotto il campo di ricerca nell'elenco delle traduzioni da aggiungere.</p> <p>Una volta che hai aggiunto tutte le traduzioni che vuoi cambiare, clicca sul pulsante "%{button_name}" nella parte inferiore dello schermo.</p>
40
+ help_title: Come cercare le traduzioni?
41
+ search: Search
42
+ caches:
43
+ clear:
44
+ success: Cache cancellata con successo
45
+ models:
46
+ translation_sets:
47
+ fields:
48
+ name: Nome
49
+ translations:
50
+ fields:
51
+ key: Chiave di traduzione
52
+ original_term: Termine originale
53
+ term: Termine personalizzato
54
+ titles:
55
+ add_multiple_translations: Aggiungi più
56
+ translation_sets: Set di traduzione
57
+ translations: Traduzioni
58
+ translation_sets:
59
+ constraint_fields:
60
+ constraint: Vincolo
61
+ remove: Elimina
62
+ create:
63
+ error: Errore nella creazione della traduzione.
64
+ success: Set di traduzioni creato con successo.
65
+ destroy:
66
+ success: Set di traduzioni eliminato con successo.
67
+ duplicate:
68
+ copied_set_name: Copia di %{name}
69
+ error: Errore nella duplicazione della traduzione.
70
+ success: Set di traduzioni duplicato con successo.
71
+ edit:
72
+ save: Salva
73
+ title: Set di traduzioni
74
+ form:
75
+ add_constraint: Aggiungi vincolo
76
+ constraint_help_html: <p>I vincoli sono regole specifiche che consentono di applicare le personalizzazioni in un set a un contesto specifico.</p> <p>Nel caso in cui non si definiscano regole vincolanti, le personalizzazioni in questo set si applicheranno all'intera applicazione. D'altra parte, se si desidera che le personalizzazioni in questo set si applichino solo a un processo specifico, selezionare "Processi partecipativi" come tipo di spazio partecipativo e il processo di destinazione come spazio partecipativo. Inoltre, è anche possibile applicare le personalizzazioni a un componente specifico definendo il componente per il vincolo.</p> <p>Se definisci più vincoli, le personalizzazioni si applicheranno in tutti questi.</p>
77
+ constraint_help_title: Quali sono i vincoli?
78
+ help_html: <p>Un set di traduzioni è un "contenitore" che contiene le traduzioni per un contesto specifico che si desidera personalizzare.</p> <p>I set di traduzioni ti aiutano a organizzare le tue personalizzazioni e applicarle a contesti diversi. Questo consente di personalizzare la stessa traduzione in diversi contesti.</p> <p>Ad esempio, se si desidera personalizzare un pulsante con il termine "Aggiungi" in modo diverso per i diversi processi partecipativi, è possibile creare set di traduzioni separati per entrambi i processi e applicare il set a quei processi utilizzando i vincoli.</p>
79
+ help_title: Cos'è un set di traduzione?
80
+ title: Set di traduzioni
81
+ index:
82
+ no_records_html: <p>Nessun set di traduzione disponibile.</p> <p>Inizia aggiungendo un set di traduzioni dal pulsante "<a href="%{new_set_link}">%{button_name}</a>".</p>
83
+ new:
84
+ create: Crea
85
+ title: Set di traduzione
86
+ update:
87
+ error: Error updating translation set.
88
+ success: Translation set successfully updated.
89
+ translations:
90
+ create:
91
+ error: Error creating translation.
92
+ success: Translation successfully created.
93
+ destroy:
94
+ success: Translation successfully deleted.
95
+ edit:
96
+ save: Save
97
+ title: Translation
98
+ form:
99
+ 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>
100
+ help_title: What is translation key?
101
+ 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>"
102
+ term_help_title: What is customized term?
103
+ title: Translation
104
+ import:
105
+ error: Error importing translations
106
+ success: Translations successfully imported.
107
+ index:
108
+ actions: Actions
109
+ 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>
110
+ selected: selected
111
+ new:
112
+ create: Create
113
+ title: Translations
114
+ new_import:
115
+ accepted_mime_types:
116
+ csv: CSV
117
+ json: JSON
118
+ xls: XLS
119
+ file_legend: 'Add an import file that will be parsed for translations. Suported formats are: %{valid_mime_types}'
120
+ start_import: Start import
121
+ title: Import translations
122
+ zip_hint: You can also upload the ZIP file from the translations export.
123
+ update:
124
+ error: Error updating translation.
125
+ success: Translation successfully updated.
126
+ translations_destroys:
127
+ destroy:
128
+ error: Error deleting translations.
129
+ success: Translations successfully deleted.
130
+ new:
131
+ destroy: Delete
132
+ title: Translations delete
133
+ menu:
134
+ term_customizer: Term customizer
@@ -32,24 +32,29 @@ module Decidim
32
32
  # This will also cache the results and fetch the result directly from
33
33
  # cache on consequent calls until the cache is expired.
34
34
  def translations_hash
35
- @translations_hash ||= Rails.cache.fetch(
36
- cache_key,
37
- expires_in: 24.hours
38
- ) do
39
- final_hash = {}
40
- resolver.translations.each do |tr|
41
- keyparts = [tr.locale] + tr.key.split(".")
42
- lastkey = keyparts.pop.to_sym
35
+ # In order to avoid endless loops with cache logging calling the I18n
36
+ # calling the translation loader, calling cache logging calling I18n
37
+ # (etc.), temporarily mute the cache logging during this call. If the
38
+ # cache logging level is set to `Logger::DEBUG`, it could happen as
39
+ # explained at:
40
+ # https://github.com/mainio/decidim-module-term_customizer/issues/38
41
+ @translations_hash ||= Rails.cache.mute do
42
+ Rails.cache.fetch(cache_key, expires_in: 24.hours) do
43
+ final_hash = {}
44
+ resolver.translations.each do |tr|
45
+ keyparts = [tr.locale] + tr.key.split(".")
46
+ lastkey = keyparts.pop.to_sym
43
47
 
44
- current = final_hash
45
- keyparts.each do |key|
46
- current[key.to_sym] ||= {}
47
- current = current[key.to_sym]
48
- end
48
+ current = final_hash
49
+ keyparts.each do |key|
50
+ current[key.to_sym] ||= {}
51
+ current = current[key.to_sym]
52
+ end
49
53
 
50
- current[lastkey] = tr.value
54
+ current[lastkey] = tr.value
55
+ end
56
+ final_hash
51
57
  end
52
- final_hash
53
58
  end
54
59
  end
55
60
 
@@ -2,7 +2,7 @@
2
2
 
3
3
  module Decidim
4
4
  module TermCustomizer
5
- VERSION = "0.21.0"
6
- DECIDIM_VERSION = "~> 0.21.0"
5
+ VERSION = "0.22.0"
6
+ DECIDIM_VERSION = "~> 0.22.0"
7
7
  end
8
8
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: decidim-term_customizer
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.21.0
4
+ version: 0.22.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Antti Hukkanen
@@ -16,28 +16,28 @@ dependencies:
16
16
  requirements:
17
17
  - - "~>"
18
18
  - !ruby/object:Gem::Version
19
- version: 0.21.0
19
+ version: 0.22.0
20
20
  type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
24
  - - "~>"
25
25
  - !ruby/object:Gem::Version
26
- version: 0.21.0
26
+ version: 0.22.0
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: decidim-core
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
31
  - - "~>"
32
32
  - !ruby/object:Gem::Version
33
- version: 0.21.0
33
+ version: 0.22.0
34
34
  type: :runtime
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
38
  - - "~>"
39
39
  - !ruby/object:Gem::Version
40
- version: 0.21.0
40
+ version: 0.22.0
41
41
  - !ruby/object:Gem::Dependency
42
42
  name: dalli
43
43
  requirement: !ruby/object:Gem::Requirement
@@ -64,56 +64,56 @@ dependencies:
64
64
  requirements:
65
65
  - - "~>"
66
66
  - !ruby/object:Gem::Version
67
- version: 0.21.0
67
+ version: 0.22.0
68
68
  type: :development
69
69
  prerelease: false
70
70
  version_requirements: !ruby/object:Gem::Requirement
71
71
  requirements:
72
72
  - - "~>"
73
73
  - !ruby/object:Gem::Version
74
- version: 0.21.0
74
+ version: 0.22.0
75
75
  - !ruby/object:Gem::Dependency
76
76
  name: decidim-dev
77
77
  requirement: !ruby/object:Gem::Requirement
78
78
  requirements:
79
79
  - - "~>"
80
80
  - !ruby/object:Gem::Version
81
- version: 0.21.0
81
+ version: 0.22.0
82
82
  type: :development
83
83
  prerelease: false
84
84
  version_requirements: !ruby/object:Gem::Requirement
85
85
  requirements:
86
86
  - - "~>"
87
87
  - !ruby/object:Gem::Version
88
- version: 0.21.0
88
+ version: 0.22.0
89
89
  - !ruby/object:Gem::Dependency
90
90
  name: decidim-participatory_processes
91
91
  requirement: !ruby/object:Gem::Requirement
92
92
  requirements:
93
93
  - - "~>"
94
94
  - !ruby/object:Gem::Version
95
- version: 0.21.0
95
+ version: 0.22.0
96
96
  type: :development
97
97
  prerelease: false
98
98
  version_requirements: !ruby/object:Gem::Requirement
99
99
  requirements:
100
100
  - - "~>"
101
101
  - !ruby/object:Gem::Version
102
- version: 0.21.0
102
+ version: 0.22.0
103
103
  - !ruby/object:Gem::Dependency
104
104
  name: decidim-proposals
105
105
  requirement: !ruby/object:Gem::Requirement
106
106
  requirements:
107
107
  - - "~>"
108
108
  - !ruby/object:Gem::Version
109
- version: 0.21.0
109
+ version: 0.22.0
110
110
  type: :development
111
111
  prerelease: false
112
112
  version_requirements: !ruby/object:Gem::Requirement
113
113
  requirements:
114
114
  - - "~>"
115
115
  - !ruby/object:Gem::Version
116
- version: 0.21.0
116
+ version: 0.22.0
117
117
  description: Adds a UI to customize the terms and limit the customizations to specific
118
118
  places.
119
119
  email:
@@ -180,10 +180,12 @@ files:
180
180
  - app/views/decidim/term_customizer/admin/translations/new_import.html.erb
181
181
  - app/views/decidim/term_customizer/admin/translations_destroys/new.html.erb
182
182
  - config/locales/ca.yml
183
+ - config/locales/cs.yml
183
184
  - config/locales/en.yml
184
185
  - config/locales/es.yml
185
186
  - config/locales/fi.yml
186
187
  - config/locales/fr.yml
188
+ - config/locales/it.yml
187
189
  - config/locales/sv.yml
188
190
  - db/migrate/20190217132503_create_decidim_term_customizer_translation_sets.rb
189
191
  - db/migrate/20190217132654_create_decidim_term_customizer_translations.rb