decidim-forms 0.27.0 → 0.27.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 7dcb5427b452dba4b617aa68c4fa0b6a4e1301ed4a0448f6a11cc47ce1db42e0
4
- data.tar.gz: 394aee7e9bb1141e634c5ddb7f140d4d4b4ee364a7152acd94318aa84b61f50b
3
+ metadata.gz: 5fa80cbc878005955ddf83fe3666d925f9c5fb768bf8682c40fef062b3e766fe
4
+ data.tar.gz: d348dec6993e8071cf55fdcfa316bee5a510d4145186b17e3020efe898a52ac7
5
5
  SHA512:
6
- metadata.gz: 719da63c8482226dd938e10bfece96217d3c1c224b5f27fa43bb87bb53ad78d1fa9913def5b4acf4c6882d16a7c3a964036d6f149549be17b179b3db1a314cea
7
- data.tar.gz: 9cc87498d87baa973a4c70261c34443d1b28b91373ddb37190ef7f27a31b83a5827680bdb82fedb3b671fe17eed4f3d0b31a3ff3823b1ef8c4f89105f58d84b7
6
+ metadata.gz: cf439bb9c526ec220107ef275eed621278dc9ae47d792f0e1e81ae1782909eb06209af269d3131ebac0b19b3a0f10a7917f3c460d45c690024cc932d964afd4a
7
+ data.tar.gz: 1476f26c19b2c164d86f366b2f1d0aa6ab7b1ada2c07613efa2139d6893786bd5f1e11ae3681238d03fdbbf04317c876ccc3ee2937df7e7c927446d9728a7058
@@ -7,7 +7,7 @@ module Decidim
7
7
  # Presenter for questionnaire answer
8
8
  #
9
9
  class QuestionnaireAnswerPresenter < SimpleDelegator
10
- delegate :content_tag, :safe_join, to: :view_context
10
+ delegate :content_tag, :safe_join, :link_to, :number_to_human_size, to: :view_context
11
11
 
12
12
  include Decidim::TranslatableAttributes
13
13
 
@@ -54,11 +54,14 @@ module Decidim
54
54
  # rubocop:disable Style/StringConcatenation
55
55
  # Interpolating strings that are `html_safe` is problematic with Rails.
56
56
  content_tag :li do
57
- link_to(translated_attribute(attachment.title), attachment.url) +
58
- " " +
59
- content_tag(:small) do
57
+ link_to(attachment.url, target: "_blank", rel: "noopener noreferrer") do
58
+ content_tag(:span) do
59
+ translated_attribute(attachment.title).presence ||
60
+ I18n.t("download_attachment", scope: "decidim.forms.questionnaire_answer_presenter")
61
+ end + " " + content_tag(:small) do
60
62
  "#{attachment.file_type} #{number_to_human_size(attachment.file_size)}"
61
63
  end
64
+ end
62
65
  end
63
66
  # rubocop:enable Style/StringConcatenation
64
67
  end
@@ -128,8 +128,6 @@ ca:
128
128
  errors:
129
129
  answer:
130
130
  body: El camp no pot estar en blanc
131
- files:
132
- extension_allowlist: 'Formats d''arxiu acceptats:'
133
131
  images:
134
132
  dimensions: "%{width} x %{height} px"
135
133
  processors:
@@ -145,6 +143,8 @@ ca:
145
143
  single_option: Opció única
146
144
  sorting: Ordenació
147
145
  title_and_description: Títol i descripció
146
+ questionnaire_answer_presenter:
147
+ download_attachment: Descarregar l'arxiu adjunt
148
148
  questionnaires:
149
149
  answer:
150
150
  invalid: S'han produït un error en respondre el formulari.
@@ -128,8 +128,6 @@ cs:
128
128
  errors:
129
129
  answer:
130
130
  body: Tělo nemůže být prázdné
131
- files:
132
- extension_allowlist: 'Akceptované formáty:'
133
131
  images:
134
132
  dimensions: "%{width} x %{height} px"
135
133
  processors:
@@ -145,6 +143,8 @@ cs:
145
143
  single_option: Jedna možnost
146
144
  sorting: Třídění
147
145
  title_and_description: Název a popis
146
+ questionnaire_answer_presenter:
147
+ download_attachment: Stáhnout přílohu
148
148
  questionnaires:
149
149
  answer:
150
150
  invalid: Při odpovědi na dotazník došlo k chybám.
@@ -128,8 +128,6 @@ de:
128
128
  errors:
129
129
  answer:
130
130
  body: Körper kann nicht leer sein
131
- files:
132
- extension_allowlist: 'Gültige Formate:'
133
131
  images:
134
132
  dimensions: "%{width} x %{height} px"
135
133
  processors:
@@ -66,8 +66,6 @@ el:
66
66
  errors:
67
67
  answer:
68
68
  body: Το σώμα δεν μπορεί να είναι κενό
69
- files:
70
- extension_allowlist: 'Αποδεκτές μορφές:'
71
69
  images:
72
70
  dimensions: "Π %{width} x Υ %{height} px"
73
71
  question_types:
@@ -128,8 +128,6 @@ en:
128
128
  errors:
129
129
  answer:
130
130
  body: Body can't be blank
131
- files:
132
- extension_allowlist: 'Accepted formats:'
133
131
  images:
134
132
  dimensions: "%{width} x %{height} px"
135
133
  processors:
@@ -145,6 +143,8 @@ en:
145
143
  single_option: Single option
146
144
  sorting: Sorting
147
145
  title_and_description: Title and description
146
+ questionnaire_answer_presenter:
147
+ download_attachment: Download attachment
148
148
  questionnaires:
149
149
  answer:
150
150
  invalid: There was a problem answering the form.
@@ -128,8 +128,6 @@ es-MX:
128
128
  errors:
129
129
  answer:
130
130
  body: El campo no puede estar en blanco
131
- files:
132
- extension_allowlist: 'Formatos de archivo aceptados:'
133
131
  images:
134
132
  dimensions: "%{width} x %{height} px"
135
133
  processors:
@@ -145,6 +143,8 @@ es-MX:
145
143
  single_option: Opción única
146
144
  sorting: Ordenación
147
145
  title_and_description: Titulo y descripción
146
+ questionnaire_answer_presenter:
147
+ download_attachment: Descargar el archivo adjunto
148
148
  questionnaires:
149
149
  answer:
150
150
  invalid: Ha habido errores al responder al cuestionario.
@@ -128,8 +128,6 @@ es-PY:
128
128
  errors:
129
129
  answer:
130
130
  body: El campo no puede estar en blanco
131
- files:
132
- extension_allowlist: 'Formatos de archivo aceptados:'
133
131
  images:
134
132
  dimensions: "%{width} x %{height} px"
135
133
  processors:
@@ -145,6 +143,8 @@ es-PY:
145
143
  single_option: Opción única
146
144
  sorting: Ordenación
147
145
  title_and_description: Titulo y descripción
146
+ questionnaire_answer_presenter:
147
+ download_attachment: Descargar el archivo adjunto
148
148
  questionnaires:
149
149
  answer:
150
150
  invalid: Ha habido errores al responder al cuestionario.
@@ -128,8 +128,6 @@ es:
128
128
  errors:
129
129
  answer:
130
130
  body: El campo no puede estar en blanco
131
- files:
132
- extension_allowlist: 'Formatos de archivo aceptados:'
133
131
  images:
134
132
  dimensions: "%{width} x %{height} px"
135
133
  processors:
@@ -145,6 +143,8 @@ es:
145
143
  single_option: Opción única
146
144
  sorting: Ordenación
147
145
  title_and_description: Titulo y descripción
146
+ questionnaire_answer_presenter:
147
+ download_attachment: Descargar el archivo adjunto
148
148
  questionnaires:
149
149
  answer:
150
150
  invalid: Se ha producido un error al responder el formulario.
@@ -115,8 +115,6 @@ eu:
115
115
  errors:
116
116
  answer:
117
117
  body: Gorputza ezin da hutsik egon
118
- files:
119
- extension_allowlist: 'Onartutako formatuak:'
120
118
  images:
121
119
  dimensions: "%{width} x %{height} px"
122
120
  question_types:
@@ -128,8 +128,6 @@ fi-pl:
128
128
  errors:
129
129
  answer:
130
130
  body: Runkoteksti ei voi olla tyhjä
131
- files:
132
- extension_allowlist: 'Sallitut tiedostopäätteet:'
133
131
  images:
134
132
  dimensions: "%{width} x %{height} pikseliä"
135
133
  processors:
@@ -145,6 +143,8 @@ fi-pl:
145
143
  single_option: Yksi vaihtoehto
146
144
  sorting: Järjestäminen
147
145
  title_and_description: Otsikko ja kuvaus
146
+ questionnaire_answer_presenter:
147
+ download_attachment: Lataa liite
148
148
  questionnaires:
149
149
  answer:
150
150
  invalid: Kyselylomakkeeseen vastatessa tapahtui virheitä.
@@ -128,8 +128,6 @@ fi:
128
128
  errors:
129
129
  answer:
130
130
  body: Runkoteksti ei voi olla tyhjä
131
- files:
132
- extension_allowlist: 'Sallitut tiedostopäätteet:'
133
131
  images:
134
132
  dimensions: "%{width} x %{height} pikseliä"
135
133
  processors:
@@ -145,6 +143,8 @@ fi:
145
143
  single_option: Yksi vaihtoehto
146
144
  sorting: Järjestäminen
147
145
  title_and_description: Otsikko ja kuvaus
146
+ questionnaire_answer_presenter:
147
+ download_attachment: Lataa liite
148
148
  questionnaires:
149
149
  answer:
150
150
  invalid: Kyselylomakkeeseen vastaaminen epäonnistui.
@@ -128,8 +128,6 @@ fr-CA:
128
128
  errors:
129
129
  answer:
130
130
  body: Le corps ne peut pas être vide
131
- files:
132
- extension_allowlist: 'Formats acceptés :'
133
131
  images:
134
132
  dimensions: "%{width} x %{height} px"
135
133
  processors:
@@ -145,6 +143,8 @@ fr-CA:
145
143
  single_option: Option unique
146
144
  sorting: Tri
147
145
  title_and_description: Titre et description
146
+ questionnaire_answer_presenter:
147
+ download_attachment: Télécharger la pièce jointe
148
148
  questionnaires:
149
149
  answer:
150
150
  invalid: Il y a eu des erreurs en répondant au questionnaire.
@@ -128,8 +128,6 @@ fr:
128
128
  errors:
129
129
  answer:
130
130
  body: Le corps ne peut pas être vide
131
- files:
132
- extension_allowlist: 'Formats acceptés :'
133
131
  images:
134
132
  dimensions: "%{width} x %{height} px"
135
133
  processors:
@@ -145,6 +143,8 @@ fr:
145
143
  single_option: Option unique
146
144
  sorting: Tri
147
145
  title_and_description: Titre et description
146
+ questionnaire_answer_presenter:
147
+ download_attachment: Télécharger la pièce jointe
148
148
  questionnaires:
149
149
  answer:
150
150
  invalid: Il y a eu des erreurs en répondant au questionnaire.
@@ -61,8 +61,6 @@ gl:
61
61
  errors:
62
62
  answer:
63
63
  body: O corpo non pode estar en branco
64
- files:
65
- extension_allowlist: 'Formatos aceptados:'
66
64
  images:
67
65
  processors:
68
66
  resize_and_pad: A imaxe axustarase para se encadrar a %{dimensions}.
@@ -0,0 +1 @@
1
+ gn:
@@ -67,8 +67,6 @@ hu:
67
67
  errors:
68
68
  answer:
69
69
  body: A szövegtörzs nem lehet üres
70
- files:
71
- extension_allowlist: 'Elfogadott formátumok:'
72
70
  images:
73
71
  processors:
74
72
  resize_to_fit: 'A kép át lesz méretezve erre a méretre: %{dimensions}.'
@@ -115,8 +115,6 @@ it:
115
115
  errors:
116
116
  answer:
117
117
  body: Il corpo non può essere vuoto
118
- files:
119
- extension_allowlist: 'Formati accettati:'
120
118
  images:
121
119
  dimensions: "%{width} x %{height} px"
122
120
  question_types:
@@ -128,8 +128,6 @@ ja:
128
128
  errors:
129
129
  answer:
130
130
  body: 本文は空白にできません
131
- files:
132
- extension_allowlist: '承認されたフォーマット:'
133
131
  images:
134
132
  dimensions: "%{width} x %{height} px"
135
133
  processors:
@@ -145,6 +143,8 @@ ja:
145
143
  single_option: 単一オプション
146
144
  sorting: 並び替え
147
145
  title_and_description: タイトルと説明
146
+ questionnaire_answer_presenter:
147
+ download_attachment: 添付ファイルをダウンロード
148
148
  questionnaires:
149
149
  answer:
150
150
  invalid: フォームの回答に問題がありました。
@@ -115,8 +115,6 @@ lb:
115
115
  errors:
116
116
  answer:
117
117
  body: Körper kann nicht leer sein
118
- files:
119
- extension_allowlist: 'Gültige Formate:'
120
118
  images:
121
119
  dimensions: "%{width} x %{height} px"
122
120
  question_types:
@@ -0,0 +1 @@
1
+ lo:
@@ -128,8 +128,6 @@ lt:
128
128
  errors:
129
129
  answer:
130
130
  body: Pagrindinė dalis negali būti tuščia
131
- files:
132
- extension_allowlist: 'Priimtini formatai:'
133
131
  images:
134
132
  dimensions: "%{width} x %{height} px"
135
133
  processors:
@@ -66,8 +66,6 @@ lv:
66
66
  errors:
67
67
  answer:
68
68
  body: Pamatteksts nevar būt tukšs
69
- files:
70
- extension_allowlist: 'Pieņemtie formāti:'
71
69
  images:
72
70
  dimensions: "%{width} x %{height} pikseļi"
73
71
  question_types:
@@ -119,8 +119,6 @@ nl:
119
119
  errors:
120
120
  answer:
121
121
  body: Lichaam mag niet leeg zijn
122
- files:
123
- extension_allowlist: 'Geaccepteerde formaten:'
124
122
  images:
125
123
  dimensions: "%{width} x %{height} px"
126
124
  question_types:
@@ -125,8 +125,6 @@
125
125
  errors:
126
126
  answer:
127
127
  body: Teksten kan ikke være blank
128
- files:
129
- extension_allowlist: 'Aksepterte formater:'
130
128
  images:
131
129
  dimensions: "%{width} x %{height} px"
132
130
  question_types:
@@ -8,10 +8,10 @@ pl:
8
8
  selected_choices: Wybrane opcje
9
9
  question:
10
10
  max_choices: Maksymalna liczba opcji do wyboru
11
- question_type: Typ
11
+ question_type: Typ odpowiedzi
12
12
  questionnaire_question:
13
- mandatory: Obowiązkowy
14
- max_characters: Limit znaków (zostaw 0 jeśli nie chcesz ustawiać limitu)
13
+ mandatory: Odpowiedź wymagana
14
+ max_characters: Limit znaków (zostaw 0, jeśli nie chcesz ustawiać limitu)
15
15
  errors:
16
16
  models:
17
17
  answer:
@@ -38,7 +38,7 @@ pl:
38
38
  show: Pokaż odpowiedzi
39
39
  answer_option:
40
40
  answer_option: Opcja odpowiedzi
41
- free_text: Dowolny tekst
41
+ free_text: Możliwość wpisania dowolnego tekstu
42
42
  remove: Usuń
43
43
  statement: Komunikat
44
44
  answers:
@@ -115,8 +115,6 @@ pl:
115
115
  errors:
116
116
  answer:
117
117
  body: Treść nie może być pusta
118
- files:
119
- extension_allowlist: 'Dozwolone formaty:'
120
118
  images:
121
119
  dimensions: "%{width} × %{height} px"
122
120
  question_types:
@@ -128,6 +126,7 @@ pl:
128
126
  short_answer: Krótka odpowiedź
129
127
  single_option: Jedna opcja
130
128
  sorting: Sortowanie
129
+ title_and_description: Tytuł i opis
131
130
  questionnaires:
132
131
  answer:
133
132
  invalid: Podczas wypełniania formularza wystąpiły błędy.
@@ -115,8 +115,6 @@ pt-BR:
115
115
  errors:
116
116
  answer:
117
117
  body: O corpo não pode ficar em branco
118
- files:
119
- extension_allowlist: 'Formatos aceitos:'
120
118
  images:
121
119
  dimensions: "%{width} x %{height} px"
122
120
  question_types:
@@ -115,8 +115,6 @@ pt:
115
115
  errors:
116
116
  answer:
117
117
  body: O corpo não pode ficar em branco
118
- files:
119
- extension_allowlist: 'Formatos aceites:'
120
118
  images:
121
119
  dimensions: "%{width} x %{height} px"
122
120
  question_types:
@@ -122,13 +122,16 @@ ro:
122
122
  update:
123
123
  invalid: A apărut o eroare la salvarea chestionarului.
124
124
  success: Chestionarul a fost salvat cu succes.
125
+ admin_log:
126
+ questionnaire:
127
+ update: "%{user_name} a actualizat chestionarul %{resource_name}"
125
128
  errors:
126
129
  answer:
127
130
  body: Conținutul nu poate fi gol
128
- files:
129
- extension_allowlist: 'Formate acceptate:'
130
131
  images:
131
132
  dimensions: "%{width} x %{height} px"
133
+ processors:
134
+ resize_to_fit: Această imagine va fi redimensionată pentru a se potrivi cu %{dimensions}.
132
135
  question_types:
133
136
  files: Fișiere
134
137
  long_answer: Răspuns lung
@@ -139,6 +142,8 @@ ro:
139
142
  single_option: Opțiune unică
140
143
  sorting: Sortare
141
144
  title_and_description: Titlu și descriere
145
+ questionnaire_answer_presenter:
146
+ download_attachment: Descărcare atașament
142
147
  questionnaires:
143
148
  answer:
144
149
  invalid: A apărut o problemă la completarea chestionarului.
@@ -125,8 +125,6 @@ sv:
125
125
  errors:
126
126
  answer:
127
127
  body: Kroppen kan inte vara to
128
- files:
129
- extension_allowlist: 'Godkända format:'
130
128
  images:
131
129
  dimensions: "%{width} x %{height} px"
132
130
  question_types:
@@ -110,8 +110,6 @@ tr:
110
110
  errors:
111
111
  answer:
112
112
  body: Vücut boş olamaz
113
- files:
114
- extension_allowlist: 'Kabul edilen biçimler:'
115
113
  images:
116
114
  dimensions: "%{width} x %{height} px"
117
115
  question_types:
@@ -109,8 +109,6 @@ zh-CN:
109
109
  errors:
110
110
  answer:
111
111
  body: 主体不能为空
112
- files:
113
- extension_allowlist: '接受的格式:'
114
112
  images:
115
113
  dimensions: "%{width} x %{height} px"
116
114
  question_types:
@@ -10,8 +10,11 @@ shared_examples_for "manage questionnaire answers" do
10
10
  let!(:second) do
11
11
  create :questionnaire_question, questionnaire: questionnaire, position: 2, question_type: "single_option"
12
12
  end
13
+ let!(:third) do
14
+ create :questionnaire_question, questionnaire: questionnaire, position: 3, question_type: "files"
15
+ end
13
16
  let(:questions) do
14
- [first, second]
17
+ [first, second, third]
15
18
  end
16
19
 
17
20
  context "when there are no answers" do
@@ -25,6 +28,7 @@ shared_examples_for "manage questionnaire answers" do
25
28
  let!(:answer1) { create :answer, questionnaire: questionnaire, question: first }
26
29
  let!(:answer2) { create :answer, body: "second answer", questionnaire: questionnaire, question: first }
27
30
  let!(:answer3) { create :answer, questionnaire: questionnaire, question: second }
31
+ let!(:file_answer) { create :answer, :with_attachments, questionnaire: questionnaire, question: third, body: nil, user: answer3.user, session_token: answer3.session_token }
28
32
 
29
33
  it "shows the answer admin link" do
30
34
  visit questionnaire_edit_path
@@ -45,7 +49,7 @@ shared_examples_for "manage questionnaire answers" do
45
49
  end
46
50
 
47
51
  it "shows the percentage" do
48
- expect(page).to have_content("50%")
52
+ expect(page).to have_content("33%")
49
53
  end
50
54
 
51
55
  it "has a detail link" do
@@ -121,6 +125,25 @@ shared_examples_for "manage questionnaire answers" do
121
125
  expect(page).not_to have_link("Next ›")
122
126
  expect(page).to have_link("‹ Prev")
123
127
  end
128
+
129
+ it "third answer has download link for the attachments" do
130
+ click_link answer3.session_token, match: :first
131
+ expect(page).to have_content(translated(file_answer.attachments.first.title))
132
+ expect(page).to have_content(translated(file_answer.attachments.second.title))
133
+ end
134
+
135
+ context "when the file answer does not have a title for the attachment" do
136
+ let!(:file_answer) { create :answer, questionnaire: questionnaire, question: third, body: nil, user: answer3.user, session_token: answer3.session_token }
137
+
138
+ before do
139
+ create :attachment, :with_image, attached_to: file_answer, title: {}, description: {}
140
+ end
141
+
142
+ it "third answer has download link for the attachments" do
143
+ click_link answer3.session_token, match: :first
144
+ expect(page).to have_content("Download attachment")
145
+ end
146
+ end
124
147
  end
125
148
  end
126
149
  end
@@ -4,7 +4,7 @@ module Decidim
4
4
  # This holds the decidim-forms version.
5
5
  module Forms
6
6
  def self.version
7
- "0.27.0"
7
+ "0.27.1"
8
8
  end
9
9
  end
10
10
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: decidim-forms
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.27.0
4
+ version: 0.27.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Josep Jaume Rey Peroy
@@ -11,7 +11,7 @@ authors:
11
11
  autorequire:
12
12
  bindir: bin
13
13
  cert_chain: []
14
- date: 2022-09-29 00:00:00.000000000 Z
14
+ date: 2022-11-15 00:00:00.000000000 Z
15
15
  dependencies:
16
16
  - !ruby/object:Gem::Dependency
17
17
  name: decidim-core
@@ -19,14 +19,14 @@ dependencies:
19
19
  requirements:
20
20
  - - '='
21
21
  - !ruby/object:Gem::Version
22
- version: 0.27.0
22
+ version: 0.27.1
23
23
  type: :runtime
24
24
  prerelease: false
25
25
  version_requirements: !ruby/object:Gem::Requirement
26
26
  requirements:
27
27
  - - '='
28
28
  - !ruby/object:Gem::Version
29
- version: 0.27.0
29
+ version: 0.27.1
30
30
  - !ruby/object:Gem::Dependency
31
31
  name: wicked_pdf
32
32
  requirement: !ruby/object:Gem::Requirement
@@ -61,28 +61,28 @@ dependencies:
61
61
  requirements:
62
62
  - - '='
63
63
  - !ruby/object:Gem::Version
64
- version: 0.27.0
64
+ version: 0.27.1
65
65
  type: :development
66
66
  prerelease: false
67
67
  version_requirements: !ruby/object:Gem::Requirement
68
68
  requirements:
69
69
  - - '='
70
70
  - !ruby/object:Gem::Version
71
- version: 0.27.0
71
+ version: 0.27.1
72
72
  - !ruby/object:Gem::Dependency
73
73
  name: decidim-dev
74
74
  requirement: !ruby/object:Gem::Requirement
75
75
  requirements:
76
76
  - - '='
77
77
  - !ruby/object:Gem::Version
78
- version: 0.27.0
78
+ version: 0.27.1
79
79
  type: :development
80
80
  prerelease: false
81
81
  version_requirements: !ruby/object:Gem::Requirement
82
82
  requirements:
83
83
  - - '='
84
84
  - !ruby/object:Gem::Version
85
- version: 0.27.0
85
+ version: 0.27.1
86
86
  description: A forms gem for decidim.
87
87
  email:
88
88
  - josepjaume@gmail.com
@@ -217,6 +217,7 @@ files:
217
217
  - config/locales/fr.yml
218
218
  - config/locales/ga-IE.yml
219
219
  - config/locales/gl.yml
220
+ - config/locales/gn-PY.yml
220
221
  - config/locales/hr-HR.yml
221
222
  - config/locales/hr.yml
222
223
  - config/locales/hu.yml
@@ -229,6 +230,7 @@ files:
229
230
  - config/locales/ko.yml
230
231
  - config/locales/lb-LU.yml
231
232
  - config/locales/lb.yml
233
+ - config/locales/lo-LA.yml
232
234
  - config/locales/lt-LT.yml
233
235
  - config/locales/lt.yml
234
236
  - config/locales/lv.yml