From b340260a663c30451b0d6fafc572ad86ea65b438 Mon Sep 17 00:00:00 2001 From: Michael Manganiello Date: Sat, 14 Dec 2024 12:16:58 -0300 Subject: [PATCH] fix: Improve i18n pluralization Add some `-n` i18n key variations, which are intended to be used with the `t` function to provide the correct pluralization for the given number. Also started using `scan.roms-scanned-n`, which wasn't being used. --- frontend/src/components/Home/Stats.vue | 10 +++++----- frontend/src/locales/de_DE/common.json | 7 +++++-- frontend/src/locales/de_DE/scan.json | 6 +++--- frontend/src/locales/en_GB/common.json | 7 +++++-- frontend/src/locales/en_GB/scan.json | 6 +++--- frontend/src/locales/en_US/common.json | 7 +++++-- frontend/src/locales/en_US/scan.json | 6 +++--- frontend/src/locales/es_ES/common.json | 7 +++++-- frontend/src/locales/es_ES/scan.json | 6 +++--- frontend/src/locales/fr_FR/common.json | 6 +++++- frontend/src/locales/fr_FR/scan.json | 6 +++--- frontend/src/locales/pt_BR/common.json | 7 +++++-- frontend/src/locales/pt_BR/scan.json | 6 +++--- frontend/src/locales/ru_RU/common.json | 7 +++++-- frontend/src/locales/ru_RU/scan.json | 6 +++--- frontend/src/views/Scan.vue | 17 +++++++++++------ 16 files changed, 72 insertions(+), 45 deletions(-) diff --git a/frontend/src/components/Home/Stats.vue b/frontend/src/components/Home/Stats.vue index 215cfff0b..7a4378ba0 100644 --- a/frontend/src/components/Home/Stats.vue +++ b/frontend/src/components/Home/Stats.vue @@ -33,7 +33,7 @@ onBeforeMount(() => { variant="text" label > - {{ stats.PLATFORMS }} {{ t("common.platforms") }} + {{ t("common.platforms-n", stats.PLATFORMS) }} @@ -43,7 +43,7 @@ onBeforeMount(() => { variant="text" label > - {{ stats.ROMS }} {{ t("common.games") }} + {{ t("common.games-n", stats.ROMS) }} @@ -53,7 +53,7 @@ onBeforeMount(() => { variant="text" label > - {{ stats.SAVES }} {{ t("common.saves") }} + {{ t("common.saves-n", stats.SAVES) }} @@ -63,7 +63,7 @@ onBeforeMount(() => { variant="text" label > - {{ stats.STATES }} {{ t("common.states") }} + {{ t("common.states-n", stats.STATES) }} @@ -73,7 +73,7 @@ onBeforeMount(() => { variant="text" label > - {{ stats.SCREENSHOTS }} {{ t("common.screenshots") }} + {{ t("common.screenshots-n", stats.SCREENSHOTS) }} diff --git a/frontend/src/locales/de_DE/common.json b/frontend/src/locales/de_DE/common.json index 3b10a5d2d..83d011588 100644 --- a/frontend/src/locales/de_DE/common.json +++ b/frontend/src/locales/de_DE/common.json @@ -1,15 +1,18 @@ { "platform": "Plattform", "platforms": "Plattformen", + "platforms-n": "{n} Plattform | {n} Plattformen", "firmware": "Firmware", - "games": "Spiele", + "games-n": "{n} Spiel | {n} Spiele", "collection": "Sammlung", "collections": "Sammlungen", "save": "Speichern", "saves": "Speicherstände", + "saves-n": "{n} Speichern | {n} Speicherstände", "state": "Spielstand", "states": "Spielstände", - "screenshots": "Screenshots", + "states-n": "{n} Spielstand | {n} Spielstände", + "screenshots-n": "{n} Screenshot | {n} Screenshots", "search": "Suche", "filter": "Filter", "add": "Hinzufügen", diff --git a/frontend/src/locales/de_DE/scan.json b/frontend/src/locales/de_DE/scan.json index df0db001b..a4cd7cf3f 100644 --- a/frontend/src/locales/de_DE/scan.json +++ b/frontend/src/locales/de_DE/scan.json @@ -17,8 +17,8 @@ "complete-rescan": "Vollständiger Scan", "complete-rescan-desc": "Kompletter Neu-Scan aller Plattformen und Dateien (am langsamsten)", "no-new-roms": "Keine neuen oder geänderten Roms gefunden", - "platforms-scanned": "Plattformen: {n_platforms} gescannt", + "platforms-scanned-n": "Plattformen: {n} gescannte | Plattformen: {n} gescannt", "platforms-scanned-with-details": "Plattformen: {n_platforms} gescannt, darunter {n_added_platforms} neue und {n_identified_platforms} identifizierte", - "roms-scanned": "Roms: {n_roms} scanned", - "roms-scanned-with-details": "Roms: {n_platforms} gescannt, dabei {n_added_platforms} neue und {n_identified_platforms} identifizierte" + "roms-scanned-n": "Roms: {n} gescannte | Roms: {n} gescannt", + "roms-scanned-with-details": "Roms: {n_roms} gescannt, dabei {n_added_roms} neue und {n_identified_roms} identifizierte" } diff --git a/frontend/src/locales/en_GB/common.json b/frontend/src/locales/en_GB/common.json index 7338baa29..65a203928 100644 --- a/frontend/src/locales/en_GB/common.json +++ b/frontend/src/locales/en_GB/common.json @@ -1,15 +1,18 @@ { "platform": "Platform", "platforms": "Platforms", + "platforms-n": "{n} Platform | {n} Platforms", "firmware": "Firmware", - "games": "Games", + "games-n": "{n} Game | {n} Games", "collection": "Collection", "collections": "Collections", "save": "Save", "saves": "Saves", + "saves-n": "{n} Save | {n} Saves", "state": "State", "states": "States", - "screenshots": "Screenshots", + "states-n": "{n} State | {n} States", + "screenshots-n": "{n} Screenshot | {n} Screenshots", "search": "Search", "filter": "Filter", "add": "Add", diff --git a/frontend/src/locales/en_GB/scan.json b/frontend/src/locales/en_GB/scan.json index 117ce5031..2ecd14094 100644 --- a/frontend/src/locales/en_GB/scan.json +++ b/frontend/src/locales/en_GB/scan.json @@ -17,8 +17,8 @@ "complete-rescan": "Complete rescan", "complete-rescan-desc": "Total rescan of all platforms and files (slowest)", "no-new-roms": "No new/changed roms found", - "platforms-scanned": "Platforms: {n_platforms} scanned", + "platforms-scanned-n": "Platforms: {n} scanned", "platforms-scanned-with-details": "Platforms: {n_platforms} scanned, with {n_added_platforms} new and {n_identified_platforms} identified", - "roms-scanned": "Roms: {n_roms} scanned", - "roms-scanned-with-details": "Roms: {n_platforms} scanned, with {n_added_platforms} new and {n_identified_platforms} identified" + "roms-scanned-n": "Roms: {n} scanned", + "roms-scanned-with-details": "Roms: {n_roms} scanned, with {n_added_roms} new and {n_identified_roms} identified" } diff --git a/frontend/src/locales/en_US/common.json b/frontend/src/locales/en_US/common.json index 7338baa29..65a203928 100644 --- a/frontend/src/locales/en_US/common.json +++ b/frontend/src/locales/en_US/common.json @@ -1,15 +1,18 @@ { "platform": "Platform", "platforms": "Platforms", + "platforms-n": "{n} Platform | {n} Platforms", "firmware": "Firmware", - "games": "Games", + "games-n": "{n} Game | {n} Games", "collection": "Collection", "collections": "Collections", "save": "Save", "saves": "Saves", + "saves-n": "{n} Save | {n} Saves", "state": "State", "states": "States", - "screenshots": "Screenshots", + "states-n": "{n} State | {n} States", + "screenshots-n": "{n} Screenshot | {n} Screenshots", "search": "Search", "filter": "Filter", "add": "Add", diff --git a/frontend/src/locales/en_US/scan.json b/frontend/src/locales/en_US/scan.json index 117ce5031..2ecd14094 100644 --- a/frontend/src/locales/en_US/scan.json +++ b/frontend/src/locales/en_US/scan.json @@ -17,8 +17,8 @@ "complete-rescan": "Complete rescan", "complete-rescan-desc": "Total rescan of all platforms and files (slowest)", "no-new-roms": "No new/changed roms found", - "platforms-scanned": "Platforms: {n_platforms} scanned", + "platforms-scanned-n": "Platforms: {n} scanned", "platforms-scanned-with-details": "Platforms: {n_platforms} scanned, with {n_added_platforms} new and {n_identified_platforms} identified", - "roms-scanned": "Roms: {n_roms} scanned", - "roms-scanned-with-details": "Roms: {n_platforms} scanned, with {n_added_platforms} new and {n_identified_platforms} identified" + "roms-scanned-n": "Roms: {n} scanned", + "roms-scanned-with-details": "Roms: {n_roms} scanned, with {n_added_roms} new and {n_identified_roms} identified" } diff --git a/frontend/src/locales/es_ES/common.json b/frontend/src/locales/es_ES/common.json index 19cb2b88b..022e3a46e 100644 --- a/frontend/src/locales/es_ES/common.json +++ b/frontend/src/locales/es_ES/common.json @@ -1,15 +1,18 @@ { "platform": "Plataforma", "platforms": "Plataformas", + "platforms-n": "{n} Plataforma | {n} Plataformas", "firmware": "Firmware", - "games": "Juegos", + "games-n": "{n} Juego | {n} Juegos", "collection": "Colección", "collections": "Colecciones", "save": "Guardado", "saves": "Guardados", + "saves-n": "{n} Guardado | {n} Guardados", "state": "Estado", "states": "Estados", - "screenshots": "Capturas de pantalla", + "states-n": "{n} Estado | {n} Estados", + "screenshots-n": "{n} Captura de pantalla | {n} Capturas de pantalla", "search": "Buscar", "filter": "Filtrar", "add": "Añadir", diff --git a/frontend/src/locales/es_ES/scan.json b/frontend/src/locales/es_ES/scan.json index 0026f0672..11a78ec15 100644 --- a/frontend/src/locales/es_ES/scan.json +++ b/frontend/src/locales/es_ES/scan.json @@ -17,8 +17,8 @@ "complete-rescan": "Escaneo completo", "complete-rescan-desc": "Escaneo completo de todos los ficheros y plataformas (más lento)", "no-new-roms": "No se han encontrado ficheros nuevos o modificados", - "platforms-scanned": "Plataformas: {n_platforms} escaneadas", + "platforms-scanned-n": "Plataformas: {n} escaneada | Plataformas: {n} escaneadas", "platforms-scanned-with-details": "Plataformas: {n_platforms} escaneadas, {n_added_platforms} nuevas y {n_identified_platforms} identificadas", - "roms-scanned": "Roms: {n_roms} escaneadas", - "roms-scanned-with-details": "Roms: {n_platforms} escaneadas, {n_added_platforms} nuevas y {n_identified_platforms} identificadas" + "roms-scanned-n": "Roms: {n} escaneado | Roms: {n} escaneados", + "roms-scanned-with-details": "Roms: {n_roms} escaneados, {n_added_roms} nuevos y {n_identified_roms} identificados" } diff --git a/frontend/src/locales/fr_FR/common.json b/frontend/src/locales/fr_FR/common.json index ee911d50e..11622d940 100644 --- a/frontend/src/locales/fr_FR/common.json +++ b/frontend/src/locales/fr_FR/common.json @@ -1,15 +1,19 @@ { "platform": "Plateforme", "platforms": "Plateformes", + "platforms-n": "{n} Plateforme | {n} Plateformes", "firmware": "Firmware", - "games": "Jeux", + "games-n": "{n} Jeu | {n} Jeux", "collection": "Collection", "collections": "Collections", "save": "Sauvegarder", "saves": "Sauvegardes", + "saves-n": "{n} Sauvegarder | {n} Sauvegardes", "state": "État", "states": "États", + "states-n": "{n} État | {n} États", "screenshots": "Captures d'écran", + "screenshots-n": "{n} Capture d'écran | {n} Captures d'écran", "search": "Rechercher", "filter": "Filtrer", "add": "Ajouter", diff --git a/frontend/src/locales/fr_FR/scan.json b/frontend/src/locales/fr_FR/scan.json index 7ff7d204a..92cbf0d4f 100644 --- a/frontend/src/locales/fr_FR/scan.json +++ b/frontend/src/locales/fr_FR/scan.json @@ -17,8 +17,8 @@ "complete-rescan": "Scan complet", "complete-rescan-desc": "Scan complet de tous les fichiers et plateformes (plus lent)", "no-new-roms": "Aucun nouveau fichier ou fichier modifié trouvé", - "platforms-scanned": "Plateformes : {n_platforms} scannées", + "platforms-scanned-n": "Plateformes : {n} scannée | Plateformes : {n} scannées", "platforms-scanned-with-details": "Plateformes : {n_platforms} scannées, {n_added_platforms} nouvelles et {n_identified_platforms} identifiées", - "roms-scanned": "Roms : {n_roms} scannées", - "roms-scanned-with-details": "Roms : {n_platforms} scannées, {n_added_platforms} nouvelles et {n_identified_platforms} identifiées" + "roms-scanned-n": "Roms : {n} scannée | Roms : {n} scannées", + "roms-scanned-with-details": "Roms : {n_roms} scannées, {n_added_roms} nouvelles et {n_identified_roms} identifiées" } diff --git a/frontend/src/locales/pt_BR/common.json b/frontend/src/locales/pt_BR/common.json index d8770098e..186e87d00 100644 --- a/frontend/src/locales/pt_BR/common.json +++ b/frontend/src/locales/pt_BR/common.json @@ -1,15 +1,18 @@ { "platform": "Plataforma", "platforms": "Plataformas", + "platforms-n": "{n} Plataforma | {n} Plataformas", "firmware": "Firmware", - "games": "Jogos", + "games-n": "{n} Jogo | {n} Jogos", "collection": "Coleção", "collections": "Coleções", "save": "Salvar", "saves": "Salvar", + "saves-n": "{n} Salvar | {n} Salvar", "state": "Estado", "states": "Estados", - "screenshots": "Capturas de tela", + "states-n": "{n} Estado | {n} Estados", + "screenshots-n": "{n} Captura de tela | {n} Capturas de tela", "search": "Buscar", "filter": "Filtrar", "add": "Adicionar", diff --git a/frontend/src/locales/pt_BR/scan.json b/frontend/src/locales/pt_BR/scan.json index d0f3cfc6d..10728676b 100644 --- a/frontend/src/locales/pt_BR/scan.json +++ b/frontend/src/locales/pt_BR/scan.json @@ -17,8 +17,8 @@ "complete-rescan": "Reescanear completamente", "complete-rescan-desc": "Reescanear totalmente todas as plataformas e arquivos (mais lento)", "no-new-roms": "Nenhum novo/alterado rom encontrado", - "platforms-scanned": "Plataformas: {n_platforms} escaneadas", + "platforms-scanned-n": "Plataformas: {n} escaneada | Plataformas: {n} escaneadas", "platforms-scanned-with-details": "Plataformas: {n_platforms} escaneadas, com {n_added_platforms} novas e {n_identified_platforms} identificadas", - "roms-scanned": "Roms: {n_roms} escaneadas", - "roms-scanned-with-details": "Roms: {n_platforms} escaneadas, com {n_added_platforms} novas e {n_identified_platforms} identificadas" + "roms-scanned-n": "Roms: {n} escaneado | Roms: {n} escaneados", + "roms-scanned-with-details": "Roms: {n_roms} escaneados, com {n_added_roms} novos e {n_identified_roms} identificados" } diff --git a/frontend/src/locales/ru_RU/common.json b/frontend/src/locales/ru_RU/common.json index 59238fd5f..dcfc638e4 100644 --- a/frontend/src/locales/ru_RU/common.json +++ b/frontend/src/locales/ru_RU/common.json @@ -1,15 +1,18 @@ { "platform": "Платформа", "platforms": "Платформы", + "platforms-n": "{n} Платформа | {n} Платформы", "firmware": "Firmware", - "games": "Игры", + "games-n": "{n} Игра | {n} Игры", "collection": "Коллекция", "collections": "Коллекции", "save": "Сохранить", "saves": "Сохранения", + "saves-n": "{n} Сохранить | {n} Сохранения", "state": "Состояние", "states": "Состояния", - "screenshots": "Скриншоты", + "states-n": "{n} Состояние | {n} Состояния", + "screenshots-n": "{n} Скриншот | {n} Скриншоты", "search": "Поиск", "filter": "Фильтр", "add": "Добавить", diff --git a/frontend/src/locales/ru_RU/scan.json b/frontend/src/locales/ru_RU/scan.json index e3aa25f0b..b4c969fd5 100644 --- a/frontend/src/locales/ru_RU/scan.json +++ b/frontend/src/locales/ru_RU/scan.json @@ -17,8 +17,8 @@ "complete-rescan": "Полное пересканирование", "complete-rescan-desc": "Полное пересканирование всех платформ и файлов (самое медленное)", "no-new-roms": "Новых/измененных ромов не найдено", - "platforms-scanned": "Платформы: {n_platforms} отсканировано", + "platforms-scanned-n": "Платформы: {n} отсканировано", "platforms-scanned-with-details": "Платформы: {n_platforms} отсканировано, {n_added_platforms} новых и {n_identified_platforms} опознано", - "roms-scanned": "Ромы: {n_roms} отсканировано", - "roms-scanned-with-details": "Ромы: {n_platforms} отсканировано, {n_added_platforms} новых и {n_identified_platforms} опознано" + "roms-scanned-n": "Ромы: {n} отсканировано", + "roms-scanned-with-details": "Ромы: {n_roms} отсканировано, {n_added_roms} новых и {n_identified_roms} опознано" } diff --git a/frontend/src/views/Scan.vue b/frontend/src/views/Scan.vue index 2b03a0708..8fbd0b818 100644 --- a/frontend/src/views/Scan.vue +++ b/frontend/src/views/Scan.vue @@ -380,7 +380,7 @@ async function stopScan() { > mdi-controller {{ - t("scan.platforms-scanned", { n_platforms: scanningPlatforms.length }) + t("scan.platforms-scanned-n", scanningPlatforms.length) }} {{ t("scan.platforms-scanned-with-details", { @@ -398,11 +398,16 @@ async function stopScan() { class="ml-1 my-1" > mdi-disc - Roms: {{ scanStats.scanned_roms }} scanned - , with {{ scanStats.added_roms }} new -  and {{ scanStats.metadata_roms }} identified + {{ + t("scan.roms-scanned-n", scanStats.scanned_roms) + }} + {{ + t("scan.roms-scanned-with-details", { + n_roms: scanStats.scanned_roms, + n_added_roms: scanStats.added_roms, + n_identified_roms: scanStats.metadata_roms, + }) + }}