4
0
Эх сурвалжийг харах

Say 13 languages on the sign-in page (#535)

Bernt Christian Egeland 1 өдөр өмнө
parent
commit
6c52a7ecd8

+ 1 - 1
messages/de/auth.json

@@ -137,7 +137,7 @@
     "proof": {
       "free": "Kostenloser Tarif, keine Kreditkarte",
       "minute": "In einer Minute startklar",
-      "languages": "12 Sprachen",
+      "languages": "13 Sprachen",
       "openSource": "Open Source"
     },
     "screenshotAlt": "Das Torqvoice-Dashboard mit aktiven Aufträgen, Kennzahlen und der Checkliste für den Einstieg"

+ 1 - 1
messages/en/auth.json

@@ -137,7 +137,7 @@
     "proof": {
       "free": "Free plan, no credit card",
       "minute": "Ready in a minute",
-      "languages": "12 languages",
+      "languages": "13 languages",
       "openSource": "Open source"
     },
     "screenshotAlt": "The Torqvoice dashboard with active jobs, key numbers and the getting-started checklist"

+ 1 - 1
messages/es/auth.json

@@ -137,7 +137,7 @@
     "proof": {
       "free": "Plan gratuito, sin tarjeta de crédito",
       "minute": "Listo en un minuto",
-      "languages": "12 idiomas",
+      "languages": "13 idiomas",
       "openSource": "Código abierto"
     },
     "screenshotAlt": "El panel de Torqvoice con trabajos activos, cifras clave y la lista de primeros pasos"

+ 1 - 1
messages/fr/auth.json

@@ -137,7 +137,7 @@
     "proof": {
       "free": "Offre gratuite, sans carte bancaire",
       "minute": "Prêt en une minute",
-      "languages": "12 langues",
+      "languages": "13 langues",
       "openSource": "Open source"
     },
     "screenshotAlt": "Le tableau de bord Torqvoice avec les interventions en cours, les chiffres clés et la liste de démarrage"

+ 1 - 1
messages/it/auth.json

@@ -137,7 +137,7 @@
     "proof": {
       "free": "Piano gratuito, nessuna carta di credito",
       "minute": "Pronto in un minuto",
-      "languages": "12 lingue",
+      "languages": "13 lingue",
       "openSource": "Open source"
     },
     "screenshotAlt": "La dashboard di Torqvoice con i lavori attivi, i numeri chiave e la lista dei primi passi"

+ 1 - 1
messages/lt/auth.json

@@ -137,7 +137,7 @@
     "proof": {
       "free": "Nemokamas planas, be kredito kortelės",
       "minute": "Paruošta per minutę",
-      "languages": "12 kalbų",
+      "languages": "13 kalbų",
       "openSource": "Atvirasis kodas"
     },
     "screenshotAlt": "„Torqvoice“ prietaisų skydelis su aktyviais darbais, pagrindiniais skaičiais ir pradžios kontroliniu sąrašu"

+ 1 - 1
messages/nb/auth.json

@@ -137,7 +137,7 @@
     "proof": {
       "free": "Gratis plan, ingen kredittkort",
       "minute": "Klar på ett minutt",
-      "languages": "12 språk",
+      "languages": "13 språk",
       "openSource": "Åpen kildekode"
     },
     "screenshotAlt": "Torqvoice-dashbordet med aktive jobber, nøkkeltall og sjekklisten for å komme i gang"

+ 1 - 1
messages/nl/auth.json

@@ -137,7 +137,7 @@
     "proof": {
       "free": "Gratis abonnement, geen creditcard",
       "minute": "Binnen een minuut klaar",
-      "languages": "12 talen",
+      "languages": "13 talen",
       "openSource": "Open source"
     },
     "screenshotAlt": "Het Torqvoice-dashboard met actieve klussen, kerncijfers en de checklist om te beginnen"

+ 1 - 1
messages/pl/auth.json

@@ -137,7 +137,7 @@
     "proof": {
       "free": "Plan bezpłatny, bez karty kredytowej",
       "minute": "Gotowe w minutę",
-      "languages": "12 języków",
+      "languages": "13 języków",
       "openSource": "Otwarte oprogramowanie"
     },
     "screenshotAlt": "Pulpit Torqvoice z aktywnymi zleceniami, kluczowymi liczbami i listą pierwszych kroków"

+ 1 - 1
messages/pt-BR/auth.json

@@ -137,7 +137,7 @@
     "proof": {
       "free": "Plano gratuito, sem cartão de crédito",
       "minute": "Pronto em um minuto",
-      "languages": "12 idiomas",
+      "languages": "13 idiomas",
       "openSource": "Código aberto"
     },
     "screenshotAlt": "O painel do Torqvoice com serviços ativos, números principais e a lista de primeiros passos"

+ 1 - 1
messages/pt-PT/auth.json

@@ -137,7 +137,7 @@
     "proof": {
       "free": "Plano gratuito, sem cartão de crédito",
       "minute": "Pronto num minuto",
-      "languages": "12 idiomas",
+      "languages": "13 idiomas",
       "openSource": "Código aberto"
     },
     "screenshotAlt": "O painel do Torqvoice com trabalhos ativos, números principais e a lista de primeiros passos"

+ 1 - 1
messages/ru/auth.json

@@ -137,7 +137,7 @@
     "proof": {
       "free": "Бесплатный тариф, без банковской карты",
       "minute": "Готово за минуту",
-      "languages": "12 языков",
+      "languages": "13 языков",
       "openSource": "Открытый исходный код"
     },
     "screenshotAlt": "Панель Torqvoice с активными работами, ключевыми показателями и списком первых шагов"

+ 1 - 1
messages/tr/auth.json

@@ -137,7 +137,7 @@
     "proof": {
       "free": "Ücretsiz plan, kredi kartı yok",
       "minute": "Bir dakikada hazır",
-      "languages": "12 dil",
+      "languages": "13 dil",
       "openSource": "Açık kaynak"
     },
     "screenshotAlt": "Aktif işler, temel rakamlar ve başlangıç kontrol listesiyle Torqvoice panosu"

+ 19 - 0
src/__tests__/i18n/language-count.test.ts

@@ -0,0 +1,19 @@
+import fs from 'node:fs'
+import path from 'node:path'
+import { describe, expect, it } from 'vitest'
+
+/**
+ * The sign-in page promises a number of languages. It counts the locales the
+ * app ships, so adding one updates the claim or fails here: it said 12 for
+ * weeks after European Portuguese made it 13.
+ */
+const ROOT = path.join(process.cwd(), 'messages')
+const LOCALES = fs.readdirSync(ROOT).filter((d) => fs.statSync(path.join(ROOT, d)).isDirectory())
+
+describe('the sign-in page language count', () => {
+  it.each(LOCALES)('%s names as many languages as the app ships', (locale) => {
+    const auth = JSON.parse(fs.readFileSync(path.join(ROOT, locale, 'auth.json'), 'utf-8'))
+    const claim: string = auth.pitch.proof.languages
+    expect(claim.match(/\d+/)?.[0]).toBe(String(LOCALES.length))
+  })
+})