Skip to content

Commit

Permalink
Merge pull request #352 from zendesk/fzhang/veg-1714/fix-lang-validat…
Browse files Browse the repository at this point in the history
…ion into master

* fzhang/veg-1714/fix-lang-validation:
  Bump default Ruby to 2.6.10
  Fix validating Filipino translation
  • Loading branch information
Frederick888 committed Mar 8, 2023
2 parents 9399ee3 + 88e2d56 commit 24b2239
Show file tree
Hide file tree
Showing 3 changed files with 60 additions and 2 deletions.
2 changes: 1 addition & 1 deletion .ruby-version
Original file line number Diff line number Diff line change
@@ -1 +1 @@
2.6.0
2.6.10
2 changes: 1 addition & 1 deletion lib/zendesk_apps_support/validations/translations.rb
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ module ZendeskAppsSupport
module Validations
module Translations
TRANSLATIONS_PATH = %r{^translations/(.*)\.json$}
VALID_LOCALE = /^[a-z]{2}(-\w{2,3})?$/
VALID_LOCALE = /^[a-z]{2,3}(-\w{2,3})?$/

class TranslationFormatError < StandardError
end
Expand Down
58 changes: 58 additions & 0 deletions spec/validations/translations_spec.rb
Original file line number Diff line number Diff line change
Expand Up @@ -52,6 +52,64 @@
end
end

context 'when translations for all languages are present' do
let(:translation_files) do
languages = ["af", "af-za", "ajp-ps", "am", "apc-ps", "ar", "ar-ae",
"ar-BH", "ar-eg", "ar-IL", "ar-KW", "ar-LB", "ar-MA",
"ar-OM", "ar-ps", "ar-QA", "ar-SA", "as-in", "ay-bo", "az",
"be", "bg", "bg-bg", "bn", "bn-in", "bs", "ca", "ca-es",
"cs", "cs-cz", "cy", "da", "da-dk", "de", "de-at", "de-be",
"de-ch", "de-de", "de-dk", "de-it", "de-lu", "de-ro", "el",
"el-cy", "el-gr", "en-001", "en-150", "en-ae", "en-am",
"en-at", "en-au", "en-az", "en-BA", "en-be", "en-bg",
"en-bh", "en-bo", "en-BZ", "en-ca", "en-ch", "en-co",
"en-cr", "en-cy", "en-cz", "en-DE", "en-dk", "en-ec",
"en-ee", "en-eg", "en-es", "en-FI", "en-FR", "en-gb",
"en-ge", "en-GH", "en-gi", "en-gr", "en-gu", "en-hk",
"en-hn", "en-HR", "en-hu", "en-id", "en-ie", "en-il",
"en-in", "en-is", "en-it", "en-jp", "en-KE", "en-kr",
"en-KW", "en-kz", "en-lb", "en-lr", "en-lt", "en-lu",
"en-lv", "en-MA", "en-ME", "en-mt", "en-mx", "en-my",
"en-nl", "en-no", "en-nz", "en-om", "en-pe", "en-ph",
"en-pk", "en-pl", "en-pr", "en-ps", "en-pt", "en-qa",
"en-ro", "en-RS", "en-ru", "en-RW", "en-SA", "en-se",
"en-sg", "en-SI", "en-sk", "en-th", "en-TN", "en-TR",
"en-tw", "en-ua", "en-UG", "en-US", "en-vn", "en-za", "es",
"es-001", "es-419", "es-ar", "es-bo", "es-cl", "es-co",
"es-cr", "es-DO", "es-ec", "es-es", "es-GT", "es-hn",
"es-mx", "es-NI", "es-PA", "es-pe", "es-pr", "es-PY",
"es-SV", "es-us", "es-UY", "es-ve", "et", "et-ee", "eu",
"eu-es", "fa", "fa-AF", "fi", "fi-FI", "fil", "fil-ph", "fo",
"fo-dk", "fr", "fr-002", "fr-be", "fr-ca", "fr-ch", "fr-ci",
"fr-fr", "fr-it", "fr-lu", "fr-ma", "ga", "ga-ie", "gl",
"gl-es", "gu", "gu-in", "he", "he-IL", "hi", "hi-in", "hr",
"hr-HR", "hu", "hu-hu", "hu-ro", "hu-sk", "hu-ua", "hy",
"id", "id-id", "ikt", "is", "it", "it-ch", "it-it", "iu",
"ja", "ja-JP", "jv-id", "ka", "kk", "kl-dk", "km", "kn",
"kn-in", "ko", "ko-kr", "ks-in", "ku", "ky", "lt", "lt-lt",
"lt-lv", "lv", "lv-lv", "mi-nz", "mk", "ml", "ml-in", "mn",
"mr", "mr-in", "ms", "ms-my", "mt", "my", "nb", "nb-no",
"ne", "nl", "nl-be", "nl-id", "nl-nl", "nn", "nn-no", "no",
"nso-za", "or-in", "pa", "pa-in", "pl", "pl-cz", "pl-lt",
"pl-pl", "pl-ua", "ps", "ps-AF", "pt", "pt-br", "pt-pt",
"qu-bo", "qu-ec", "qu-pe", "rn-BI", "ro", "ro-bg", "ro-ro",
"ro-sk", "ro-ua", "ru", "ru-ee", "ru-kz", "ru-lt", "ru-lv",
"ru-ua", "sa-in", "sd-in", "si", "sk", "sk-cz", "sk-sk",
"sl", "sl-SI", "so", "sq", "sr", "sr-me", "st-za", "sv",
"sv-se", "sw", "sw-RW", "ta", "ta-in", "te", "te-in", "tg",
"th", "tk", "tl", "tn-za", "tr", "tr-bg", "ts-za", "uk",
"uk-sk", "uk-ua", "ur", "ur-in", "ur-PK", "uz", "vi",
"vi-vn", "xh", "xh-za", "zh-cn", "zh-hk", "zh-mo", "zh-sg",
"zh-tw", "zu-za"]
languages.map do |lang|
double('AppFile', relative_path: "translations/#{lang}.json", read: read_fixture_file('valid_en.json'))
end
end
it 'should be valid' do
expect(subject).to be_empty
end
end

context 'when there is file with invalid JSON' do
let(:translation_files) do
[double('AppFile', relative_path: 'translations/en.json', read: '}')]
Expand Down

0 comments on commit 24b2239

Please sign in to comment.