diff --git a/src/app/ui/my-content/my-content-info-block.tsx b/src/app/ui/my-content/my-content-info-block.tsx
index c3d5eb6..6605984 100644
--- a/src/app/ui/my-content/my-content-info-block.tsx
+++ b/src/app/ui/my-content/my-content-info-block.tsx
@@ -5,6 +5,7 @@ import { useQuery } from '@tanstack/react-query';
import { getUserFilesInfo } from '@/app/actions/action';
import { useTranslations } from 'next-intl';
import { convertBytes } from '@/app/lib/convertBytes';
+import { pluralize } from '@/app/lib/pluralize';
export default function MyContentInfoBlock() {
const t = useTranslations('Global');
@@ -67,6 +68,11 @@ export default function MyContentInfoBlock() {
return result;
};
+ const pluralizeFiles = (number: number) => {
+ const translate = [t('file'), t('files-few'), t('files')];
+ return pluralize(number, translate[0], translate[1], translate[2]);
+ };
+
return (
@@ -83,7 +89,7 @@ export default function MyContentInfoBlock() {
- {filesInfo.images_quantity ? filesInfo.images_quantity : 0} {t('files')}
+ {filesInfo.images_quantity || 0} {pluralizeFiles(filesInfo.images_quantity || 0)}
{filesInfo.images_size ? convertBytes(filesInfo.images_size) : 0}
@@ -103,7 +109,7 @@ export default function MyContentInfoBlock() {
- {filesInfo.videos_quantity ? filesInfo.videos_quantity : 0} {t('files')}
+ {filesInfo.videos_quantity || 0} {pluralizeFiles(filesInfo.videos_quantity || 0)}
{filesInfo.videos_size ? convertBytes(filesInfo.videos_size) : 0}
@@ -123,7 +129,7 @@ export default function MyContentInfoBlock() {
- {filesInfo.audios_quantity ? filesInfo.audios_quantity : 0} {t('files')}
+ {filesInfo.audios_quantity || 0} {pluralizeFiles(filesInfo.audios_quantity || 0)}
{filesInfo.audios_size ? convertBytes(filesInfo.audios_size) : 0}
@@ -143,7 +149,7 @@ export default function MyContentInfoBlock() {
- {filesInfo.documents_quantity ? filesInfo.documents_quantity : 0} {t('files')}
+ {filesInfo.documents_quantity || 0} {pluralizeFiles(filesInfo.documents_quantity || 0)}
{filesInfo.documents_size ? convertBytes(filesInfo.documents_size) : 0}
diff --git a/src/app/ui/my-content/my-content-pie-chart.tsx b/src/app/ui/my-content/my-content-pie-chart.tsx
index bf0967d..d6ae2d7 100644
--- a/src/app/ui/my-content/my-content-pie-chart.tsx
+++ b/src/app/ui/my-content/my-content-pie-chart.tsx
@@ -81,7 +81,7 @@ export default function MyContentPieChart() {
useEffect(() => {
setFilesCount([
{
- name: 'images',
+ name: 'images-few',
value: filesInfo?.imageSize ? filesInfo?.imageSize : 0,
color: '#f08c00'
},
diff --git a/src/i18n/messages/en.json b/src/i18n/messages/en.json
index eeb2f91..568c643 100644
--- a/src/i18n/messages/en.json
+++ b/src/i18n/messages/en.json
@@ -10,18 +10,26 @@
"your-content": "Your content",
"file": "File",
"files": "Files",
+ "files-few": "files",
"content-type": "Content type",
"quantity": "Quantity",
"size": "Size",
+ "violation": "Violation",
+ "violations-few": "Violations",
"violations": "Violations",
+ "check": "Check",
"checks": "Checks",
- "check": "Checks",
+ "checks-few": "Checks",
"documents": "Documents",
- "videos": "Videos",
"video": "video",
- "audios": "Audio",
+ "videos": "Videos",
+ "videos-few": "video",
"audio": "audio",
+ "audios": "Audios",
+ "audios-few": "Audios",
+ "image": "image",
"images": "Images",
+ "images-few": "Images",
"main": "Main",
"marking": "Marking",
"reports": "Reports",
@@ -128,7 +136,6 @@
"drag-the-file-here": "Drag the file here",
"select-files-to-protect": "Select files to protect",
"upload-for-protection": "Upload {fileType} for protection",
- "image": "image",
"file-has-no-extension": "File has no extension",
"have-unsaved-changes": "You have unsaved changes. Are you sure you want to delete this page?",
"image-size": "Image size",
diff --git a/src/i18n/messages/ru.json b/src/i18n/messages/ru.json
index c27d442..5e2b027 100644
--- a/src/i18n/messages/ru.json
+++ b/src/i18n/messages/ru.json
@@ -10,18 +10,26 @@
"your-content": "Ваш контент",
"file": "Файл",
"files": "Файлов",
+ "files-few": "Файла",
"content-type": "Тип контента",
"quantity": "Количество",
"size": "Размер",
- "violations": "Нарушения",
- "checks": "Проверки",
- "check": "Проверок",
+ "violation": "Нарушениe",
+ "violations-few": "Нарушения",
+ "violations": "Нарушений",
+ "check": "Проверка",
+ "checks": "Проверок",
+ "checks-few": "Проверки",
"documents": "Документы",
- "videos": "Видео",
"video": "видео",
- "audios": "Аудио",
+ "videos": "Видео",
+ "videos-few": "Видео",
"audio": "аудио",
- "images": "Изображения",
+ "audios": "Аудио",
+ "audios-few": "Аудио",
+ "image": "изображение",
+ "images": "Изображений",
+ "images-few": "Изображения",
"main": "Главная",
"marking": "Маркировка",
"reports": "Отчёты",
@@ -128,7 +136,6 @@
"drag-the-file-here": "Перетащите файл сюда",
"select-files-to-protect": "Выбрать файлы для защиты",
"upload-for-protection": "Загрузить {fileType} для защиты",
- "image": "изображение",
"file-has-no-extension": "Файл не имеет расширения",
"have-unsaved-changes": "У вас есть несохраненные изменения. Вы уверены, что хотите покинуть страницу?",
"image-size": "Размер изображения",