From 17823d762fa0a298b866d1332009d9cd225dcafd Mon Sep 17 00:00:00 2001 From: Nikita Karamov Date: Sat, 14 Mar 2026 21:44:48 +0100 Subject: [PATCH 1/2] feat(i18n): use rangeFormat for pagination --- app/components/PaginationControls.vue | 5 +++-- i18n/locales/ar.json | 2 +- i18n/locales/az-AZ.json | 2 +- i18n/locales/bg-BG.json | 2 +- i18n/locales/bn-IN.json | 2 +- i18n/locales/cs-CZ.json | 2 +- i18n/locales/de-DE.json | 2 +- i18n/locales/en.json | 2 +- i18n/locales/es.json | 2 +- i18n/locales/fr-FR.json | 2 +- i18n/locales/hi-IN.json | 2 +- i18n/locales/hu-HU.json | 2 +- i18n/locales/id-ID.json | 2 +- i18n/locales/it-IT.json | 2 +- i18n/locales/ja-JP.json | 2 +- i18n/locales/kn-IN.json | 2 +- i18n/locales/nb-NO.json | 2 +- i18n/locales/ne-NP.json | 2 +- i18n/locales/pl-PL.json | 2 +- i18n/locales/pt-BR.json | 2 +- i18n/locales/ru-RU.json | 2 +- i18n/locales/ta-IN.json | 2 +- i18n/locales/te-IN.json | 2 +- i18n/locales/uk-UA.json | 2 +- i18n/locales/zh-CN.json | 2 +- i18n/locales/zh-TW.json | 2 +- 26 files changed, 28 insertions(+), 27 deletions(-) diff --git a/app/components/PaginationControls.vue b/app/components/PaginationControls.vue index 9c34b0c9f8..6f604b1563 100644 --- a/app/components/PaginationControls.vue +++ b/app/components/PaginationControls.vue @@ -36,6 +36,8 @@ const endItem = computed(() => { return Math.min(currentPage.value * (pageSize.value as number), props.totalItems) }) +const numberFormatter = useNumberFormatter() + const canGoPrev = computed(() => currentPage.value > 1) const canGoNext = computed(() => currentPage.value < totalPages.value) @@ -167,8 +169,7 @@ function handlePageSizeChange(event: Event) { {{ $t('filters.pagination.showing', { - start: startItem, - end: endItem, + range: numberFormatter.formatRange(startItem, endItem), total: $n(totalItems), }) }} diff --git a/i18n/locales/ar.json b/i18n/locales/ar.json index 1e34d310d0..0f564fc8b7 100644 --- a/i18n/locales/ar.json +++ b/i18n/locales/ar.json @@ -767,7 +767,7 @@ "paginated": "مقسم إلى صفحات", "items_per_page": "عدد العناصر في الصفحة", "per_page": "{count} / صفحة", - "showing": "{start}-{end} من {total}", + "showing": "{range} من {total}", "previous": "الصفحة السابقة", "next": "الصفحة التالية", "nav_label": "التصفح" diff --git a/i18n/locales/az-AZ.json b/i18n/locales/az-AZ.json index 1341675d91..aae98eeef1 100644 --- a/i18n/locales/az-AZ.json +++ b/i18n/locales/az-AZ.json @@ -882,7 +882,7 @@ "paginated": "Səhifələnmiş", "items_per_page": "Səhifə başına element", "per_page": "{count} / səhifə", - "showing": "{start}-{end} / {total}", + "showing": "{range} / {total}", "previous": "Əvvəlki səhifə", "next": "Növbəti səhifə", "nav_label": "Səhifələmə" diff --git a/i18n/locales/bg-BG.json b/i18n/locales/bg-BG.json index 08738ef1b4..b633cc5d66 100644 --- a/i18n/locales/bg-BG.json +++ b/i18n/locales/bg-BG.json @@ -843,7 +843,7 @@ "paginated": "Със страници", "items_per_page": "Елементи на страница", "per_page": "{count} / страница", - "showing": "{start}-{end} от {total}", + "showing": "{range} от {total}", "previous": "Предишна страница", "next": "Следваща страница", "nav_label": "Странициране" diff --git a/i18n/locales/bn-IN.json b/i18n/locales/bn-IN.json index 3888c49dee..9118c95d8e 100644 --- a/i18n/locales/bn-IN.json +++ b/i18n/locales/bn-IN.json @@ -654,7 +654,7 @@ "paginated": "পাতায়িত", "items_per_page": "প্রতি পাতায় আইটেম", "per_page": "{count} / পাতায়", - "showing": "{total} এর মধ্যে {start}-{end}", + "showing": "{total} এর মধ্যে {range}", "previous": "আগের পাতা", "next": "পরের পাতা", "nav_label": "পাতায়ন" diff --git a/i18n/locales/cs-CZ.json b/i18n/locales/cs-CZ.json index 040004c767..83a47443ad 100644 --- a/i18n/locales/cs-CZ.json +++ b/i18n/locales/cs-CZ.json @@ -894,7 +894,7 @@ "paginated": "Stránkované", "items_per_page": "Položek na stránku", "per_page": "{count} / stránku", - "showing": "{start}-{end} z {total}", + "showing": "{range} z {total}", "previous": "Předchozí stránka", "next": "Další stránka", "nav_label": "Stránkování" diff --git a/i18n/locales/de-DE.json b/i18n/locales/de-DE.json index b7f7e7c8f3..dfe3e2588c 100644 --- a/i18n/locales/de-DE.json +++ b/i18n/locales/de-DE.json @@ -882,7 +882,7 @@ "paginated": "Paginiert", "items_per_page": "Elemente pro Seite", "per_page": "{count} / Seite", - "showing": "{start}-{end} von {total}", + "showing": "{range} von {total}", "previous": "Vorherige Seite", "next": "Nächste Seite", "nav_label": "Paginierung" diff --git a/i18n/locales/en.json b/i18n/locales/en.json index 1734b74958..5d2be7ad8c 100644 --- a/i18n/locales/en.json +++ b/i18n/locales/en.json @@ -901,7 +901,7 @@ "paginated": "Paginated", "items_per_page": "Items per page", "per_page": "{count} / page", - "showing": "{start}-{end} of {total}", + "showing": "{range} of {total}", "previous": "Previous page", "next": "Next page", "nav_label": "Pagination" diff --git a/i18n/locales/es.json b/i18n/locales/es.json index 248932ded5..b3605c0910 100644 --- a/i18n/locales/es.json +++ b/i18n/locales/es.json @@ -843,7 +843,7 @@ "paginated": "Paginado", "items_per_page": "Elementos por página", "per_page": "{count} / página", - "showing": "{start}-{end} de {total}", + "showing": "{range} de {total}", "previous": "Página anterior", "next": "Página siguiente", "nav_label": "Paginación" diff --git a/i18n/locales/fr-FR.json b/i18n/locales/fr-FR.json index 1bf5ff4cb1..e8c3385e53 100644 --- a/i18n/locales/fr-FR.json +++ b/i18n/locales/fr-FR.json @@ -884,7 +884,7 @@ "paginated": "Paginé", "items_per_page": "Éléments par page", "per_page": "{count} / page", - "showing": "{start}-{end} sur {total}", + "showing": "{range} sur {total}", "previous": "Page précédente", "next": "Page suivante", "nav_label": "Pagination" diff --git a/i18n/locales/hi-IN.json b/i18n/locales/hi-IN.json index cd1660e067..6840614575 100644 --- a/i18n/locales/hi-IN.json +++ b/i18n/locales/hi-IN.json @@ -655,7 +655,7 @@ "paginated": "पेजिनेटेड", "items_per_page": "प्रति पृष्ठ आइटम", "per_page": "{count} / पृष्ठ", - "showing": "{total} में से {start}-{end}", + "showing": "{total} में से {range}", "previous": "पिछला पृष्ठ", "next": "अगला पृष्ठ", "nav_label": "पेजिनेशन" diff --git a/i18n/locales/hu-HU.json b/i18n/locales/hu-HU.json index 602fb8fc82..8040f4d48d 100644 --- a/i18n/locales/hu-HU.json +++ b/i18n/locales/hu-HU.json @@ -843,7 +843,7 @@ "paginated": "Lapozható", "items_per_page": "Elem per oldal", "per_page": "{count} / oldal", - "showing": "{start}-{end} / {total}", + "showing": "{range} / {total}", "previous": "Előző oldal", "next": "Következő oldal", "nav_label": "Lapozás" diff --git a/i18n/locales/id-ID.json b/i18n/locales/id-ID.json index 8f0cba734b..0f13dd00e5 100644 --- a/i18n/locales/id-ID.json +++ b/i18n/locales/id-ID.json @@ -901,7 +901,7 @@ "paginated": "Terpaginasi", "items_per_page": "Item per halaman", "per_page": "{count} / halaman", - "showing": "{start}-{end} dari {total}", + "showing": "{range} dari {total}", "previous": "Halaman sebelumnya", "next": "Halaman berikutnya", "nav_label": "Paginasi" diff --git a/i18n/locales/it-IT.json b/i18n/locales/it-IT.json index 5155400809..52c6f8d235 100644 --- a/i18n/locales/it-IT.json +++ b/i18n/locales/it-IT.json @@ -751,7 +751,7 @@ "paginated": "Paginato", "items_per_page": "Elementi per pagina", "per_page": "{count} / pagina", - "showing": "{start}-{end} su {total}", + "showing": "{range} su {total}", "previous": "Pagina precedente", "next": "Pagina successiva", "nav_label": "Paginazione" diff --git a/i18n/locales/ja-JP.json b/i18n/locales/ja-JP.json index 6de3a87732..a63e8f8343 100644 --- a/i18n/locales/ja-JP.json +++ b/i18n/locales/ja-JP.json @@ -896,7 +896,7 @@ "paginated": "ページ分割", "items_per_page": "1ページあたりの項目数", "per_page": "{count} / ページ", - "showing": "{total} 件中 {start}-{end}", + "showing": "{total} 件中 {range}", "previous": "前のページ", "next": "次のページ", "nav_label": "ページネーション" diff --git a/i18n/locales/kn-IN.json b/i18n/locales/kn-IN.json index 23ac3c680a..51b8302df6 100644 --- a/i18n/locales/kn-IN.json +++ b/i18n/locales/kn-IN.json @@ -655,7 +655,7 @@ "paginated": "ಪುಟೀಕರಿಸಿದ", "items_per_page": "ಪ್ರತಿ ಪುಟದ ಅಂಶಗಳು", "per_page": "{count} / ಪುಟ", - "showing": "{total} ನಲ್ಲಿ {start}-{end}", + "showing": "{total} ನಲ್ಲಿ {range}", "previous": "ಹಿಂದಿನ ಪುಟ", "next": "ಮುಂದಿನ ಪುಟ", "nav_label": "ಪುಟೀಕರಣ" diff --git a/i18n/locales/nb-NO.json b/i18n/locales/nb-NO.json index 94658e4eb4..63afe4dc61 100644 --- a/i18n/locales/nb-NO.json +++ b/i18n/locales/nb-NO.json @@ -722,7 +722,7 @@ "paginated": "Sideinndelt", "items_per_page": "Elementer per side", "per_page": "{count} / side", - "showing": "{start}-{end} av {total}", + "showing": "{range} av {total}", "previous": "Forrige side", "next": "Neste side", "nav_label": "Sideinndeling" diff --git a/i18n/locales/ne-NP.json b/i18n/locales/ne-NP.json index dc1e7710d6..06755befb0 100644 --- a/i18n/locales/ne-NP.json +++ b/i18n/locales/ne-NP.json @@ -640,7 +640,7 @@ "paginated": "पृष्ठमा विभाजित", "items_per_page": "प्रति पृष्ठ वस्तुहरू", "per_page": "{count} / पृष्ठ", - "showing": "{total} मध्ये {start}-{end}", + "showing": "{total} मध्ये {range}", "previous": "अघिल्लो पृष्ठ", "next": "अर्को पृष्ठ", "nav_label": "पेजिनेशन" diff --git a/i18n/locales/pl-PL.json b/i18n/locales/pl-PL.json index eaf990fc5e..8a63c9cb8d 100644 --- a/i18n/locales/pl-PL.json +++ b/i18n/locales/pl-PL.json @@ -896,7 +896,7 @@ "paginated": "Stronicowane", "items_per_page": "Elementów na stronę", "per_page": "{count} / stronę", - "showing": "{start}-{end} z {total}", + "showing": "{range} z {total}", "previous": "Poprzednia strona", "next": "Następna strona", "nav_label": "Paginacja" diff --git a/i18n/locales/pt-BR.json b/i18n/locales/pt-BR.json index cd9a3793f7..9fd9bc949b 100644 --- a/i18n/locales/pt-BR.json +++ b/i18n/locales/pt-BR.json @@ -656,7 +656,7 @@ "paginated": "Paginada", "items_per_page": "Itens por página", "per_page": "{count} / página", - "showing": "{start}-{end} de {total}", + "showing": "{range} de {total}", "previous": "Página anterior", "next": "Próxima página", "nav_label": "Paginação" diff --git a/i18n/locales/ru-RU.json b/i18n/locales/ru-RU.json index fa486ef7cb..0e2a77bf85 100644 --- a/i18n/locales/ru-RU.json +++ b/i18n/locales/ru-RU.json @@ -882,7 +882,7 @@ "paginated": "Страничный", "items_per_page": "Элементов на странице", "per_page": "{count} на странице", - "showing": "{start}-{end} из {total}", + "showing": "{range} из {total}", "previous": "Предыдущая страница", "next": "Следующая страница", "nav_label": "Пагинация" diff --git a/i18n/locales/ta-IN.json b/i18n/locales/ta-IN.json index 0eb176818f..5df18ccc04 100644 --- a/i18n/locales/ta-IN.json +++ b/i18n/locales/ta-IN.json @@ -742,7 +742,7 @@ "paginated": "பக்கமிடப்பட்ட", "items_per_page": "ஒரு பக்கத்திற்கான உருப்படிகள்", "per_page": "{count} / பக்கம்", - "showing": "{start}-{end} / {total}", + "showing": "{range} / {total}", "previous": "முந்தைய பக்கம்", "next": "அடுத்த பக்கம்", "nav_label": "பக்க வழிசெலுத்தல்" diff --git a/i18n/locales/te-IN.json b/i18n/locales/te-IN.json index c2d82b8d3e..9ee690177e 100644 --- a/i18n/locales/te-IN.json +++ b/i18n/locales/te-IN.json @@ -655,7 +655,7 @@ "paginated": "పేజినేటెడ్", "items_per_page": "పేజీకి అంశాలు", "per_page": "{count} / పేజీ", - "showing": "{total} లో {start}-{end}", + "showing": "{total} లో {range}", "previous": "మునుపటి పేజీ", "next": "తర్వాతి పేజీ", "nav_label": "పేజినేషన్" diff --git a/i18n/locales/uk-UA.json b/i18n/locales/uk-UA.json index 357da5cb77..68409155cf 100644 --- a/i18n/locales/uk-UA.json +++ b/i18n/locales/uk-UA.json @@ -882,7 +882,7 @@ "paginated": "По сторінках", "items_per_page": "Елементів на сторінці", "per_page": "{count} / сторінка", - "showing": "{start}-{end} з {total}", + "showing": "{range} з {total}", "previous": "Попередня сторінка", "next": "Наступна сторінка", "nav_label": "Посторінково" diff --git a/i18n/locales/zh-CN.json b/i18n/locales/zh-CN.json index 766c056268..e6cc3aa6f6 100644 --- a/i18n/locales/zh-CN.json +++ b/i18n/locales/zh-CN.json @@ -882,7 +882,7 @@ "paginated": "分页", "items_per_page": "每页显示", "per_page": "{count} / 页", - "showing": "第 {start} - {end} 条,共 {total} 条", + "showing": "第 {range} 条,共 {total} 条", "previous": "上一页", "next": "下一页", "nav_label": "分页" diff --git a/i18n/locales/zh-TW.json b/i18n/locales/zh-TW.json index 4b6fd68ee1..6765344baf 100644 --- a/i18n/locales/zh-TW.json +++ b/i18n/locales/zh-TW.json @@ -842,7 +842,7 @@ "paginated": "分頁", "items_per_page": "每頁項目數", "per_page": "{count} / 頁", - "showing": "顯示第 {start}-{end} 項,共 {total} 項", + "showing": "顯示第 {range} 項,共 {total} 項", "previous": "上一頁", "next": "下一頁", "nav_label": "分頁" From 8d4d5e985afaf33426b021f4fdd5546d7c9b596c Mon Sep 17 00:00:00 2001 From: Nikita Karamov Date: Sat, 14 Mar 2026 21:45:02 +0100 Subject: [PATCH 2/2] fix(i18n): fix Turkish translation --- i18n/locales/tr-TR.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/i18n/locales/tr-TR.json b/i18n/locales/tr-TR.json index 3e74fd6ef5..ac6066ce08 100644 --- a/i18n/locales/tr-TR.json +++ b/i18n/locales/tr-TR.json @@ -882,7 +882,7 @@ "paginated": "Sayfalı", "items_per_page": "Sayfa başına öğe", "per_page": "/ sayfa", - "showing": "Gösteriliyor", + "showing": "{range} / {total} gösteriliyor", "previous": "Önceki", "next": "Sonraki", "nav_label": "Sayfalama navigasyonu"