From 99f20c0bbb4da866521d9e14f46494d025e122c1 Mon Sep 17 00:00:00 2001 From: "John D. Martin III" Date: Tue, 28 May 2024 13:46:51 -0400 Subject: [PATCH] Revert "Revert "Added locales (lng files) and language switcher"" --- .env.example | 2 - .gitignore | 5 +- dev-env/dvconfig.py | 2 +- .../lib/components/badge/Badge.module.scss | 3 +- .../button-group/ButtonGroup.module.scss | 3 +- .../FormCheckboxGroup.module.scss | 3 +- .../FormGroupWithMultipleFields.module.scss | 3 +- .../RequiredInputSymbol.module.scss | 3 +- .../QuestionIcon.module.scss | 3 +- public/locales/ar/astrophysics.json | 111 ++++++ public/locales/ar/biomedical.json | 59 +++ public/locales/ar/citation.json | 336 ++++++++++++++++++ public/locales/ar/citationBlock.json | 5 + public/locales/ar/codeMeta20.json | 107 ++++++ public/locales/ar/collection.json | 6 + public/locales/ar/computationalworkflow.json | 19 + public/locales/ar/createDataset.json | 37 ++ public/locales/ar/dataset.json | 114 ++++++ public/locales/ar/file.json | 53 +++ public/locales/ar/files.json | 147 ++++++++ public/locales/ar/footer.json | 6 + public/locales/ar/geospatial.json | 52 +++ public/locales/ar/header.json | 12 + public/locales/ar/journal.json | 27 ++ public/locales/ar/pageNotFound.json | 5 + public/locales/ar/pageNumberNotFound.json | 5 + public/locales/ar/pagination.json | 11 + public/locales/ar/socialscience.json | 111 ++++++ public/locales/fr/astrophysics.json | 112 ++++++ public/locales/fr/biomedical.json | 60 ++++ public/locales/fr/citation.json | 336 ++++++++++++++++++ public/locales/fr/citationBlock.json | 4 + public/locales/fr/codeMeta20.json | 108 ++++++ public/locales/fr/collection.json | 6 + public/locales/fr/computationalworkflow.json | 20 ++ public/locales/fr/createDataset.json | 37 ++ public/locales/fr/dataset.json | 114 ++++++ public/locales/fr/file.json | 52 +++ public/locales/fr/files.json | 148 ++++++++ public/locales/fr/footer.json | 6 + public/locales/fr/geospatial.json | 52 +++ public/locales/fr/header.json | 12 + public/locales/fr/journal.json | 27 ++ public/locales/fr/pageNotFound.json | 5 + public/locales/fr/pageNumberNotFound.json | 5 + public/locales/fr/pagination.json | 11 + public/locales/fr/socialscience.json | 111 ++++++ src/App.tsx | 10 +- src/assets/styles/global.scss | 17 + src/i18n.ts | 54 ++- src/sections/layout/header/Header.tsx | 3 + .../language-switcher/LanguageSwitcher.tsx | 45 +++ src/shared/LanguageContext.tsx | 32 ++ 53 files changed, 2612 insertions(+), 25 deletions(-) delete mode 100644 .env.example create mode 100644 public/locales/ar/astrophysics.json create mode 100644 public/locales/ar/biomedical.json create mode 100644 public/locales/ar/citation.json create mode 100644 public/locales/ar/citationBlock.json create mode 100644 public/locales/ar/codeMeta20.json create mode 100644 public/locales/ar/collection.json create mode 100644 public/locales/ar/computationalworkflow.json create mode 100644 public/locales/ar/createDataset.json create mode 100644 public/locales/ar/dataset.json create mode 100644 public/locales/ar/file.json create mode 100644 public/locales/ar/files.json create mode 100644 public/locales/ar/footer.json create mode 100644 public/locales/ar/geospatial.json create mode 100644 public/locales/ar/header.json create mode 100644 public/locales/ar/journal.json create mode 100644 public/locales/ar/pageNotFound.json create mode 100644 public/locales/ar/pageNumberNotFound.json create mode 100644 public/locales/ar/pagination.json create mode 100644 public/locales/ar/socialscience.json create mode 100644 public/locales/fr/astrophysics.json create mode 100644 public/locales/fr/biomedical.json create mode 100644 public/locales/fr/citation.json create mode 100644 public/locales/fr/citationBlock.json create mode 100644 public/locales/fr/codeMeta20.json create mode 100644 public/locales/fr/collection.json create mode 100644 public/locales/fr/computationalworkflow.json create mode 100644 public/locales/fr/createDataset.json create mode 100644 public/locales/fr/dataset.json create mode 100644 public/locales/fr/file.json create mode 100644 public/locales/fr/files.json create mode 100644 public/locales/fr/footer.json create mode 100644 public/locales/fr/geospatial.json create mode 100644 public/locales/fr/header.json create mode 100644 public/locales/fr/journal.json create mode 100644 public/locales/fr/pageNotFound.json create mode 100644 public/locales/fr/pageNumberNotFound.json create mode 100644 public/locales/fr/pagination.json create mode 100644 public/locales/fr/socialscience.json create mode 100644 src/assets/styles/global.scss create mode 100644 src/sections/layout/header/language-switcher/LanguageSwitcher.tsx create mode 100644 src/shared/LanguageContext.tsx diff --git a/.env.example b/.env.example deleted file mode 100644 index 0c82fc11d..000000000 --- a/.env.example +++ /dev/null @@ -1,2 +0,0 @@ -VITE_DATAVERSE_BACKEND_URL=http://localhost:8000 -STORYBOOK_CHROMATIC_BUILD=false \ No newline at end of file diff --git a/.gitignore b/.gitignore index a53c72760..61354c2e9 100644 --- a/.gitignore +++ b/.gitignore @@ -124,4 +124,7 @@ node_modules/ bower_components/ .grunt/ src/vendor/ -dist/ \ No newline at end of file +dist/ +dev-env/dvconfig.py +dev-env/dvconfig.py +.env.example diff --git a/dev-env/dvconfig.py b/dev-env/dvconfig.py index 1ef2af74f..03e007c5e 100644 --- a/dev-env/dvconfig.py +++ b/dev-env/dvconfig.py @@ -1,5 +1,5 @@ base_url = 'http://localhost:8000' -api_token = '' +api_token = 'c928f125-033d-4130-b758-63e243b8d065' sample_data = [ 'data/dataverses/pums/pums.json', 'data/dataverses/pums/datasets/2000pums5/2000pums5.json', diff --git a/packages/design-system/src/lib/components/badge/Badge.module.scss b/packages/design-system/src/lib/components/badge/Badge.module.scss index c3e0ac8ba..5e3b137dc 100644 --- a/packages/design-system/src/lib/components/badge/Badge.module.scss +++ b/packages/design-system/src/lib/components/badge/Badge.module.scss @@ -1,6 +1,7 @@ @import 'bootstrap/scss/functions'; @import 'bootstrap/scss/variables'; -@import 'src/lib/assets/styles/design-tokens/colors.module'; +// @import 'src/lib/assets/styles/design-tokens/colors.module.scss'; +@import '../../assets/styles/design-tokens/colors.module.scss'; .primary:not(#\#) { color: color-contrast($dv-primary-color); diff --git a/packages/design-system/src/lib/components/button-group/ButtonGroup.module.scss b/packages/design-system/src/lib/components/button-group/ButtonGroup.module.scss index 78fd402fc..f440ddb0e 100644 --- a/packages/design-system/src/lib/components/button-group/ButtonGroup.module.scss +++ b/packages/design-system/src/lib/components/button-group/ButtonGroup.module.scss @@ -1,4 +1,5 @@ -@import "src/lib/assets/styles/design-tokens/colors.module"; +// @import "src/lib/assets/styles/design-tokens/colors.module.scss"; +@import '../../assets/styles/design-tokens/colors.module.scss'; .border > button, .border > [role="group"] > button { border: 1px solid $dv-button-border-color; diff --git a/packages/design-system/src/lib/components/form/form-checkbox-group/FormCheckboxGroup.module.scss b/packages/design-system/src/lib/components/form/form-checkbox-group/FormCheckboxGroup.module.scss index 4c8ba85d7..bc956cec7 100644 --- a/packages/design-system/src/lib/components/form/form-checkbox-group/FormCheckboxGroup.module.scss +++ b/packages/design-system/src/lib/components/form/form-checkbox-group/FormCheckboxGroup.module.scss @@ -1,4 +1,5 @@ -@import 'src/lib/assets/styles/design-tokens/typography.module'; +// @import 'src/lib/assets/styles/design-tokens/typography.module.scss'; +@import '../../../assets/styles/design-tokens/typography.module.scss'; .title { display: inline-block; diff --git a/packages/design-system/src/lib/components/form/form-group-multiple-fields/FormGroupWithMultipleFields.module.scss b/packages/design-system/src/lib/components/form/form-group-multiple-fields/FormGroupWithMultipleFields.module.scss index d8700a3ab..8196c9f52 100644 --- a/packages/design-system/src/lib/components/form/form-group-multiple-fields/FormGroupWithMultipleFields.module.scss +++ b/packages/design-system/src/lib/components/form/form-group-multiple-fields/FormGroupWithMultipleFields.module.scss @@ -1,4 +1,5 @@ -@import "src/lib/assets/styles/design-tokens/typography.module"; +// @import "src/lib/assets/styles/design-tokens/typography.module.scss"; +@import '../../../assets/styles/design-tokens/typography.module.scss'; .title { padding-top: calc(0.375rem + 1px); diff --git a/packages/design-system/src/lib/components/form/required-input-symbol/RequiredInputSymbol.module.scss b/packages/design-system/src/lib/components/form/required-input-symbol/RequiredInputSymbol.module.scss index 6b755b404..e92da7992 100644 --- a/packages/design-system/src/lib/components/form/required-input-symbol/RequiredInputSymbol.module.scss +++ b/packages/design-system/src/lib/components/form/required-input-symbol/RequiredInputSymbol.module.scss @@ -1,4 +1,5 @@ -@import "src/lib/assets/styles/design-tokens/colors.module"; +// @import "src/lib/assets/styles/design-tokens/colors.module.scss"; +@import '../../../assets/styles/design-tokens/colors.module.scss'; .asterisk { color: $dv-danger-color; diff --git a/packages/design-system/src/lib/components/tooltip/question-mark-tooltip/QuestionIcon.module.scss b/packages/design-system/src/lib/components/tooltip/question-mark-tooltip/QuestionIcon.module.scss index 581aa0ec2..d347871b7 100644 --- a/packages/design-system/src/lib/components/tooltip/question-mark-tooltip/QuestionIcon.module.scss +++ b/packages/design-system/src/lib/components/tooltip/question-mark-tooltip/QuestionIcon.module.scss @@ -1,4 +1,5 @@ -@import "src/lib/assets/styles/design-tokens/colors.module"; +// @import "src/lib/assets/styles/design-tokens/colors.module.scss"; +@import '../../../assets/styles/design-tokens/colors.module.scss'; .question-tooltip { color: $dv-tooltip-color; diff --git a/public/locales/ar/astrophysics.json b/public/locales/ar/astrophysics.json new file mode 100644 index 000000000..257a05a4d --- /dev/null +++ b/public/locales/ar/astrophysics.json @@ -0,0 +1,111 @@ +{ + "astrophysics": { + "name": "بيانات الفلك وعلم الفلك", + "datasetField": { + "astroType": { + "name": "النوع", + "description": "طبيعة أو نوعية محتوى الملفات في مجموعة البيانات." + }, + "astroFacility": { + "name": "المرصد", + "description": "المرصد أو المنشأة التي تم الحصول على البيانات منها." + }, + "astroInstrument": { + "name": "الأداة", + "description": "الأداة المستخدمة لجمع البيانات." + }, + "astroObject": { + "name": "الجسم", + "description": "الأجرام السماوية الممثلة في البيانات (يفضل تقديم الأسماء القابلة للتعرف عليها بواسطة SIMBAD)." + }, + "resolution.Spatial": { + "name": "الدقة المكانية", + "description": "الدقة المكانية (الزاوية) التي هي نموذجية للملاحظات، بالدرجات العشرية." + }, + "resolution.Spectral": { + "name": "الدقة الطيفية", + "description": "الدقة الطيفية التي هي نموذجية للملاحظات، معطاة كنسبة λ/Δλ." + }, + "resolution.Temporal": { + "name": "الدقة الزمنية", + "description": "الدقة الزمنية التي هي نموذجية للملاحظات، معطاة بالثواني." + }, + "coverage.Spectral.Bandpass": { + "name": "عرض الحزمة", + "description": "اسم عرض الحزمة التقليدي" + }, + "coverage.Spectral.CentralWavelength": { + "name": "الطول الموجي المركزي (م)", + "description": "الطول الموجي المركزي لعرض الحزمة الطيفية، بالأمتار. أدخل رقمًا عشريًا." + }, + "coverage.Spectral.Wavelength": { + "name": "نطاق الطول الموجي", + "description": "الحد الأدنى والأقصى للطول الموجي لعرض الحزمة الطيفية. أدخل رقمًا عشريًا." + }, + "coverage.Spectral.MinimumWavelength": { + "name": "الحد الأدنى (م)", + "description": "الحد الأدنى للطول الموجي لعرض الحزمة الطيفية، بالأمتار. أدخل رقمًا عشريًا." + }, + "coverage.Spectral.MaximumWavelength": { + "name": "الحد الأقصى (م)", + "description": "الحد الأقصى للطول الموجي لعرض الحزمة الطيفية، بالأمتار. أدخل رقمًا عشريًا." + }, + "coverage.Temporal": { + "name": "نطاق تاريخ مجموعة البيانات", + "description": "الفترة الزمنية التي تغطيها البيانات." + }, + "coverage.Temporal.StartTime": { + "name": "البداية", + "description": "تاريخ بدء مجموعة البيانات (YYYY-MM-DD)" + }, + "coverage.Temporal.StopTime": { + "name": "النهاية", + "description": "تاريخ انتهاء مجموعة البيانات (YYYY-MM-DD)" + }, + "coverage.Spatial": { + "name": "تغطية السماء", + "description": "تغطية السماء لجسم البيانات." + }, + "coverage.Depth": { + "name": "تغطية العمق", + "description": "تغطية العمق النموذجية، أو الحساسية، لجسم البيانات في جي" + }, + "coverage.ObjectDensity": { + "name": "كثافة الجسم", + "description": "الكثافة النموذجية للأجسام، إدخالات الكتالوج، إشارات التلسكوب، إلخ، على السماء، بعدد لكل درجة مربعة. أدخل رقمًا عشريًا." + }, + "coverage.ObjectCount": { + "name": "عدد الأجسام", + "description": "العدد الإجمالي للأجسام، إدخالات الكتالوج، إلخ، في جسم البيانات. أدخل عددًا صحيحًا." + }, + "coverage.SkyFraction": { + "name": "جزء من السماء", + "description": "جزء من السماء الممثلة في الملاحظات، من 0 إلى 1. أدخل رقمًا عشريًا." + }, + "coverage.Polarization": { + "name": "الاستقطاب", + "description": "تغطية الاستقطاب" + }, + "redshiftType": { + "name": "نوع الانزياح الأحمر", + "description": "نوع الانزياح الأحمر string C 'Redshift'; أو التعريفات 'Optical' أو 'Radio' للسرعة دوبلر المستخدمة في جسم البيانات." + }, + "resolution.Redshift": { + "name": "دقة الانزياح الأحمر", + "description": "الدقة في الانزياح الأحمر (بدون وحدة) أو سرعة دوبلر (كم/ثانية) في جسم البيانات. أدخل رقمًا عشريًا." + }, + "coverage.RedshiftValue": { + "name": "قيمة الانزياح الأحمر", + "description": "قيمة الانزياح الأحمر (بدون وحدة) أو سرعة دوبلر (كم/ثانية) في جسم البيانات. أدخل رقمًا عشريًا." + }, + "coverage.Redshift.MinimumValue": { + "name": "الحد الأدنى", + "description": "القيمة الدنيا للانزياح الأحمر (بدون وحدة) أو سرعة دوبلر (كم/ثانية) في جسم البيانات. أدخل رقمًا عشريًا." + }, + "coverage.Redshift.MaximumValue": { + "name": "الحد الأقصى", + "description": "القيمة القصوى للانزياح الأحمر (بدون وحدة) أو سرعة دوبلر (كم/ثانية) في جسم البيانات. أدخل رقمًا عشريًا." + } + } + } +} \ No newline at end of file diff --git a/public/locales/ar/biomedical.json b/public/locales/ar/biomedical.json new file mode 100644 index 000000000..ec73bdd21 --- /dev/null +++ b/public/locales/ar/biomedical.json @@ -0,0 +1,59 @@ +{ + "biomedical": { + "name": "بيانات علوم الحياة", + "datasetField": { + "studyDesignType": { + "name": "نوع التصميم", + "description": "أنواع التصميم التي تعتمد على التصميم التجريبي العام." + }, + "studyOtherDesignType": { + "name": "نوع تصميم آخر", + "description": "إذا تم اختيار نوع تصميم آخر، اذكر أي أنواع تصميم أخرى تم استخدامها في هذه المجموعة من البيانات." + }, + "studyFactorType": { + "name": "نوع العامل", + "description": "العوامل المستخدمة في مجموعة البيانات." + }, + "studyOtherFactorType": { + "name": "نوع عامل آخر", + "description": "إذا تم اختيار نوع عامل آخر، اذكر أي أنواع عوامل أخرى تم استخدامها في هذه المجموعة من البيانات." + }, + "studyAssayOrganism": { + "name": "الكائن الحي", + "description": "الاسم التصنيفي للكائن الحي المستخدم في مجموعة البيانات أو الذي يتم استخراج المادة البيولوجية منه." + }, + "studyAssayOtherOrganism": { + "name": "كائن حي آخر", + "description": "إذا تم اختيار كائن حي آخر، اذكر أي كائنات حية أخرى تم استخدامها في هذه المجموعة من البيانات. يُفضل استخدام المصطلحات من التصنيف NCBI." + }, + "studyAssayMeasurementType": { + "name": "نوع القياس", + "description": "مصطلح لتحديد النقطة النهائية أو ما يتم قياسه (مثل توصيف التعبير الجيني؛ تحديد البروتين)." + }, + "studyAssayOtherMeasurmentType": { + "name": "نوع قياس آخر", + "description": "إذا تم اختيار نوع قياس آخر، اذكر أي أنواع قياس أخرى تم استخدامها. يُفضل استخدام المصطلحات من بوابة NCBO Bioportal." + }, + "studyAssayTechnologyType": { + "name": "نوع التكنولوجيا", + "description": "مصطلح لتحديد التكنولوجيا المستخدمة لإجراء القياس (مثل مصفوفة الحمض النووي؛ مطياف الكتلة)." + }, + "studyAssayOtherTechnologyType": { + "name": "نوع تكنولوجيا آخر", + "description": "إذا تم اختيار نوع تكنولوجيا آخر، اذكر أي أنواع تكنولوجيا أخرى تم استخدامها في هذه المجموعة من البيانات." + }, + "studyAssayPlatform": { + "name": "منصة التكنولوجيا", + "description": "الشركة المصنعة واسم منصة التكنولوجيا المستخدمة في الاختبار (مثل Bruker AVANCE)." + }, + "studyAssayOtherPlatform": { + "name": "منصة تكنولوجيا أخرى", + "description": "إذا تم اختيار منصة تكنولوجيا أخرى، اذكر أي منصات تكنولوجيا أخرى تم استخدامها في هذه المجموعة من البيانات." + }, + "studyAssayCellType": { + "name": "نوع الخلية", + "description": "اسم خط الخلايا الذي تم استخلاص المصدر أو العينة منه." + } + } + } +} \ No newline at end of file diff --git a/public/locales/ar/citation.json b/public/locales/ar/citation.json new file mode 100644 index 000000000..b492f3db3 --- /dev/null +++ b/public/locales/ar/citation.json @@ -0,0 +1,336 @@ +{ + "citation": { + "name": "بيانات الاستشهاد", + "datasetField": { + "persistentId": { + "name": "معرف دائم", + "description": "المعرف الدائم الفريد لمجموعة البيانات، سواء كان DOI أو Handle" + }, + "alternativePersistentId": { + "name": "معرف دائم سابق لمجموعة البيانات", + "description": "معرف دائم سابق مستخدم لمجموعة البيانات، سواء كان DOI أو Handle" + }, + "publicationDate": { + "name": "تاريخ النشر", + "description": "تاريخ نشر مجموعة البيانات." + }, + "citationDate": { + "name": "تاريخ الاستشهاد", + "description": "تاريخ الاستشهاد بمجموعة البيانات، يتم تحديده بأطول فترة حظر على أي ملف في الإصدار 1.0." + }, + "title": { + "name": "العنوان", + "description": "العنوان الرئيسي لمجموعة البيانات" + }, + "subtitle": { + "name": "العنوان الفرعي", + "description": "عنوان ثانوي يوضح أو يحدد بعض القيود على العنوان الرئيسي" + }, + "alternativeTitle": { + "name": "عنوان بديل", + "description": "1) عنوان شائع يستخدم للإشارة إلى مجموعة البيانات أو 2) اختصار للعنوان الرئيسي" + }, + "alternativeURL": { + "name": "رابط بديل", + "description": "رابط آخر يمكن من خلاله عرض البيانات في مجموعة البيانات أو الوصول إليها، مثل صفحة مشروع أو صفحة شخصية" + }, + "otherId": { + "name": "معرف آخر", + "description": "معرف فريد آخر لمجموعة البيانات (مثل معرف المنتج أو معرف مستودع آخر)" + }, + "otherIdAgency": { + "name": "الوكالة", + "description": "اسم الوكالة التي أنشأت المعرف الآخر" + }, + "otherIdValue": { + "name": "المعرف", + "description": "معرف آخر يحدد مجموعة البيانات بشكل فريد" + }, + "author": { + "name": "المؤلف", + "description": "الجهة، مثل شخص أو منظمة، التي أنشأت مجموعة البيانات" + }, + "authorName": { + "name": "الاسم", + "description": "اسم المؤلف، مثل اسم الشخص أو اسم المنظمة" + }, + "authorAffiliation": { + "name": "الانتماء", + "description": "اسم الجهة المرتبطة بالمؤلف، مثل اسم المنظمة" + }, + "authorIdentifierScheme": { + "name": "نوع المعرف", + "description": "نوع المعرف الذي يحدد المؤلف بشكل فريد (مثل ORCID، ISNI)" + }, + "authorIdentifier": { + "name": "المعرف", + "description": "يحدد المؤلف بشكل فريد عند اقترانه بنوع المعرف" + }, + "datasetContact": { + "name": "نقطة الاتصال", + "description": "الجهة، مثل شخص أو منظمة، التي يمكن لمستخدمي مجموعة البيانات الاتصال بها لطرح الأسئلة", + "tip": "استخدم زر البريد الإلكتروني أعلاه للاتصال." + }, + "datasetContactName": { + "name": "الاسم", + "description": "اسم نقطة الاتصال، مثل اسم الشخص أو اسم المنظمة" + }, + "datasetContactAffiliation": { + "name": "الانتماء", + "description": "اسم الجهة المرتبطة بنقطة الاتصال، مثل اسم المنظمة" + }, + "datasetContactEmail": { + "name": "البريد الإلكتروني", + "description": "عنوان البريد الإلكتروني لنقطة الاتصال" + }, + "dsDescription": { + "name": "الوصف", + "description": "ملخص يصف الغرض والطبيعة والنطاق لمجموعة البيانات" + }, + "dsDescriptionValue": { + "name": "النص", + "description": "ملخص يصف الغرض والطبيعة والنطاق لمجموعة البيانات" + }, + "dsDescriptionDate": { + "name": "التاريخ", + "description": "التاريخ الذي أضيف فيه الوصف إلى مجموعة البيانات. إذا كانت مجموعة البيانات تحتوي على أكثر من وصف واحد، مثل أن المنتج قدم وصفًا واحدًا والمستودع قدم وصفًا آخر، يستخدم هذا التاريخ لتمييز بين الأوصاف" + }, + "subject": { + "name": "الموضوع", + "description": "مجال الدراسة ذو الصلة بمجموعة البيانات" + }, + "keyword": { + "name": "الكلمة المفتاحية", + "description": "مصطلح رئيسي يصف جانبًا مهمًا من مجموعة البيانات ومعلومات حول أي مصطلحات مراقبة مستخدمة" + }, + "keywordValue": { + "name": "المصطلح", + "description": "مصطلح رئيسي يصف الجوانب المهمة لمجموعة البيانات" + }, + "keywordVocabulary": { + "name": "اسم المفردات المسيطر عليها", + "description": "المفردات المسيطر عليها المستخدمة للمصطلح المفتاحي (مثل LCSH، MeSH)" + }, + "keywordVocabularyURI": { + "name": "رابط المفردات المسيطر عليها", + "description": "الرابط حيث يمكن الوصول إلى معلومات حول المفردات المسيطر عليها للمصطلح" + }, + "topicClassification": { + "name": "تصنيف الموضوع", + "description": "يشير إلى موضوع أو موضوع مهم تغطيه مجموعة البيانات ومعلومات حول أي مفردات مراقبة مستخدمة" + }, + "topicClassValue": { + "name": "المصطلح", + "description": "مصطلح الموضوع أو الموضوع" + }, + "topicClassVocab": { + "name": "اسم المفردات المسيطر عليها", + "description": "المفردات المسيطر عليها المستخدمة للمصطلح المفتاحي (مثل LCSH، MeSH)" + }, + "topicClassVocabURI": { + "name": "رابط المفردات المسيطر عليها", + "description": "الرابط حيث يمكن الوصول إلى معلومات حول المفردات المسيطر عليها للمصطلح" + }, + "publication": { + "name": "المنشور ذو الصلة", + "description": "المقالة أو التقرير الذي يستخدم البيانات في مجموعة البيانات. سيتم عرض القائمة الكاملة للمنشورات ذات الصلة في علامة التبويب البيانات الوصفية" + }, + "publicationCitation": { + "name": "الاستشهاد", + "description": "الاستشهاد الببليوغرافي الكامل للمنشور ذي الصلة" + }, + "publicationIDType": { + "name": "نوع المعرف", + "description": "نوع المعرف الذي يحدد المنشور ذو الصلة بشكل فريد" + }, + "publicationIDNumber": { + "name": "المعرف", + "description": "المعرف للمنشور ذو الصلة" + }, + "publicationURL": { + "name": "الرابط", + "description": "شكل الرابط للمعرف المدخل في حقل المعرف، مثل رابط DOI إذا تم إدخال DOI في حقل المعرف. يستخدم لعرض ما تم إدخاله في حقول نوع المعرف ورقم المعرف كرابط. إذا لم يكن للمعرف المدخل شكل رابط، يتم استخدام رابط صفحة الويب للمنشور، مثل صفحة مقالة المجلة" + }, + "notesText": { + "name": "ملاحظات", + "description": "معلومات إضافية حول مجموعة البيانات" + }, + "language": { + "name": "اللغة", + "description": "اللغة التي تُكتب بها ملفات مجموعة البيانات" + }, + "producer": { + "name": "المنتج", + "description": "الجهة، مثل شخص أو منظمة، التي تدير الأمور المالية أو العمليات الإدارية الأخرى المتعلقة بإنشاء مجموعة البيانات" + }, + "producerName": { + "name": "الاسم", + "description": "اسم الجهة، مثل اسم الشخص أو اسم المنظمة" + }, + "producerAffiliation": { + "name": "الانتماء", + "description": "اسم الجهة المرتبطة بالمنتج، مثل اسم المنظمة" + }, + "producerAbbreviation": { + "name": "الاسم المختصر", + "description": "الاسم المختصر للمنتج (مثل IQSS، ICPSR)" + }, + "producerURL": { + "name": "الرابط", + "description": "رابط موقع المنتج" + }, + "producerLogoURL": { + "name": "رابط الشعار", + "description": "رابط شعار المنتج" + }, + "productionDate": { + "name": "تاريخ الإنتاج", + "description": "التاريخ الذي تم فيه إنتاج البيانات (وليس توزيعها أو نشرها أو أرشفتها)" + }, + "productionPlace": { + "name": "موقع الإنتاج", + "description": "المكان الذي تم فيه إنتاج البيانات وأي مواد ذات صلة أو جمعها" + }, + "contributor": { + "name": "المساهم", + "description": "الجهة، مثل شخص أو منظمة، المسؤولة عن جمع أو إدارة أو المساهمة في تطوير مجموعة البيانات" + }, + "contributorType": { + "name": "النوع", + "description": "يشير إلى نوع المساهمة المقدمة لمجموعة البيانات" + }, + "contributorName": { + "name": "الاسم", + "description": "اسم المساهم، مثل اسم الشخص أو اسم المنظمة" + }, + "grantNumber": { + "name": "معلومات التمويل", + "description": "معلومات حول الدعم المالي لمجموعة البيانات" + }, + "grantNumberAgency": { + "name": "الوكالة", + "description": "الوكالة التي قدمت الدعم المالي لمجموعة البيانات" + }, + "grantNumberValue": { + "name": "المعرف", + "description": "معرف المنحة أو عقد الوكالة التي قدمت الدعم المالي لمجموعة البيانات" + }, + "distributor": { + "name": "الموزع", + "description": "الجهة، مثل شخص أو منظمة، المكلفة بتوليد نسخ من مجموعة البيانات، بما في ذلك أي إصدارات أو تعديلات" + }, + "distributorName": { + "name": "الاسم", + "description": "اسم الجهة، مثل اسم الشخص أو اسم المنظمة" + }, + "distributorAffiliation": { + "name": "الانتماء", + "description": "اسم الجهة المرتبطة بالموزع، مثل اسم المنظمة" + }, + "distributorAbbreviation": { + "name": "الاسم المختصر", + "description": "الاسم المختصر للموزع (مثل IQSS، ICPSR)" + }, + "distributorURL": { + "name": "الرابط", + "description": "رابط صفحة الويب للموزع" + }, + "distributorLogoURL": { + "name": "رابط الشعار", + "description": "رابط صورة شعار الموزع، المستخدم لعرض الصورة على صفحة مجموعة البيانات" + }, + "distributionDate": { + "name": "تاريخ التوزيع", + "description": "التاريخ الذي تم فيه توفير مجموعة البيانات للتوزيع / العرض" + }, + "depositor": { + "name": "المودع", + "description": "الجهة، مثل شخص أو منظمة، التي أودعت مجموعة البيانات في المستودع" + }, + "dateOfDeposit": { + "name": "تاريخ الإيداع", + "description": "التاريخ الذي تم فيه إيداع مجموعة البيانات في المستودع" + }, + "timePeriodCovered": { + "name": "الفترة الزمنية", + "description": "الفترة الزمنية التي تشير إليها البيانات. تُعرف أيضًا باسم المدى. هذه هي الفترة الزمنية التي تغطيها البيانات، وليست تواريخ الترميز أو جمع البيانات أو جعل الوثائق قابلة للقراءة بواسطة الأجهزة" + }, + "timePeriodCoveredStart": { + "name": "تاريخ البدء", + "description": "تاريخ بدء الفترة الزمنية التي تشير إليها البيانات" + }, + "timePeriodCoveredEnd": { + "name": "تاريخ الانتهاء", + "description": "تاريخ انتهاء الفترة الزمنية التي تشير إليها البيانات" + }, + "dateOfCollection": { + "name": "تاريخ الجمع", + "description": "التواريخ التي تم فيها جمع أو توليد البيانات" + }, + "dateOfCollectionStart": { + "name": "تاريخ البدء", + "description": "التاريخ الذي بدأ فيه جمع البيانات" + }, + "dateOfCollectionEnd": { + "name": "تاريخ الانتهاء", + "description": "التاريخ الذي انتهى فيه جمع البيانات" + }, + "kindOfData": { + "name": "نوع البيانات", + "description": "نوع البيانات المدرجة في الملفات (مثل بيانات المسح، البيانات السريرية، أو النص القابل للقراءة بواسطة الأجهزة)" + }, + "series": { + "name": "السلسلة", + "description": "معلومات حول سلسلة مجموعة البيانات التي تنتمي إليها مجموعة البيانات" + }, + "seriesName": { + "name": "الاسم", + "description": "اسم سلسلة مجموعة البيانات" + }, + "seriesInformation": { + "name": "المعلومات", + "description": "يمكن أن تتضمن 1) تاريخ السلسلة و2) ملخصًا للميزات التي تنطبق على السلسلة" + }, + "software": { + "name": "البرمجيات", + "description": "معلومات حول البرمجيات المستخدمة لتوليد مجموعة البيانات" + }, + "softwareName": { + "name": "الاسم", + "description": "اسم البرمجيات المستخدمة لتوليد مجموعة البيانات" + }, + "softwareVersion": { + "name": "الإصدار", + "description": "إصدار البرمجيات المستخدمة لتوليد مجموعة البيانات، مثل 4.11" + }, + "relatedMaterial": { + "name": "المواد ذات الصلة", + "description": "معلومات، مثل معرف دائم أو استشهاد، حول المواد ذات الصلة بمجموعة البيانات، مثل الملاحق أو معلومات أخذ العينات المتاحة خارج مجموعة البيانات" + }, + "relatedDatasets": { + "name": "مجموعة البيانات ذات الصلة", + "description": "معلومات، مثل معرف دائم أو استشهاد، حول مجموعة بيانات ذات صلة، مثل الأبحاث السابقة حول موضوع مجموعة البيانات" + }, + "otherReferences": { + "name": "مرجع آخر", + "description": "معلومات، مثل معرف دائم أو استشهاد، حول نوع آخر من الموارد التي توفر خلفية أو مواد داعمة لمجموعة البيانات" + }, + "dataSources": { + "name": "مصدر البيانات", + "description": "معلومات، مثل معرف دائم أو استشهاد، حول مصادر مجموعة البيانات (مثل كتاب، مقالة، سلسلة، أو ملف بيانات قابل للقراءة بواسطة الأجهزة)" + }, + "originOfSources": { + "name": "أصل المصادر التاريخية", + "description": "للمصادر التاريخية، الأصل وأي قواعد تم اتباعها في تحديدها كمصادر" + }, + "characteristicOfSources": { + "name": "خصائص المصادر", + "description": "خصائص لم يتم ملاحظتها في مكان آخر" + }, + "accessToSources": { + "name": "التوثيق والوصول إلى المصادر", + "description": "1) طرق أو إجراءات الوصول إلى مصادر البيانات و2) أي أذونات خاصة مطلوبة للوصول" + } + } + } +} \ No newline at end of file diff --git a/public/locales/ar/citationBlock.json b/public/locales/ar/citationBlock.json new file mode 100644 index 000000000..f3ab66790 --- /dev/null +++ b/public/locales/ar/citationBlock.json @@ -0,0 +1,5 @@ +{ + "learnAbout": "تعلم عن", + "standards": "معايير استشهاد البيانات" + } + \ No newline at end of file diff --git a/public/locales/ar/codeMeta20.json b/public/locales/ar/codeMeta20.json new file mode 100644 index 000000000..75cd4264b --- /dev/null +++ b/public/locales/ar/codeMeta20.json @@ -0,0 +1,107 @@ +{ + "codeMeta20": { + "name": "بيانات البرمجيات (CodeMeta v2.0)", + "datasetField": { + "codeVersion": { + "name": "إصدار البرمجيات", + "description": "إصدار البرنامج، عادةً ما يتبع بعض الاتفاقيات مثل SemVer وغيرها." + }, + "developmentStatus": { + "name": "حالة التطوير", + "description": "وصف حالة التطوير، مثل العمل الجاري (wip)، نشط، إلخ. انظر إلى repostatus.org لمزيد من المعلومات." + }, + "codeRepository": { + "name": "مستودع الشيفرة", + "description": "رابط إلى المستودع حيث توجد الشيفرة القابلة للقراءة من قبل الإنسان والشيفرة ذات الصلة غير المجمعة (SVN، GitHub، CodePlex، GitLab المؤسسي، Gitea، إلخ)." + }, + "applicationCategory": { + "name": "فئة التطبيق", + "description": "نوع تطبيق البرمجيات، مثل المحاكاة، التحليل، التصور." + }, + "applicationSubCategory": { + "name": "الفئة الفرعية للتطبيق", + "description": "الفئة الفرعية للتطبيق، مثل لعبة أركيد." + }, + "programmingLanguage": { + "name": "لغة البرمجة", + "description": "لغة البرمجة المستخدمة في تنفيذ البرمجيات (مثل Python، C++، Matlab، Fortran، Java، Julia،...)" + }, + "runtimePlatform": { + "name": "منصة التشغيل", + "description": "منصة التشغيل أو تبعيات مترجم الشيفرات (مثل Java 11، Python 3.10 أو .Net Framework 4.8)." + }, + "operatingSystem": { + "name": "أنظمة التشغيل", + "description": "أنظمة التشغيل المدعومة (مثل Windows 10، OSX 11.3، Android 11)." + }, + "targetProduct": { + "name": "المنتج المستهدف", + "description": "نظام التشغيل / المنتج المستهدف الذي تنطبق عليه الشيفرة. إذا كانت تنطبق على عدة إصدارات، يمكن استخدام اسم المنتج فقط." + }, + "buildInstructions": { + "name": "إرشادات البناء", + "description": "رابط إلى إرشادات التثبيت / الوثائق" + }, + "softwareRequirementsItem": { + "name": "متطلبات البرمجيات", + "description": "تبعيات البرمجيات المطلوبة" + }, + "softwareRequirements": { + "name": "الاسم والإصدار", + "description": "اسم وإصدار تبعية البرمجيات / المكتبة المطلوبة" + }, + "softwareRequirementsInfoUrl": { + "name": "رابط المعلومات", + "description": "رابط إلى الصفحة الرئيسية للبرمجيات / المكتبة المطلوبة أو الوثائق (يفضل أيضًا أن تكون مصنفة حسب الإصدار)" + }, + "softwareSuggestionsItem": { + "name": "اقتراحات البرمجيات", + "description": "التبعيات الاختيارية، مثل الميزات الاختيارية، تطوير الشيفرة، إلخ." + }, + "softwareSuggestions": { + "name": "الاسم والإصدار", + "description": "اسم وإصدار تبعية البرمجيات / المكتبة الاختيارية" + }, + "softwareSuggestionsInfoUrl": { + "name": "رابط المعلومات", + "description": "رابط إلى الصفحة الرئيسية للبرمجيات / المكتبة الاختيارية أو الوثائق (يفضل أيضًا أن تكون مصنفة حسب الإصدار)" + }, + "memoryRequirements": { + "name": "متطلبات الذاكرة", + "description": "متطلبات الذاكرة الدنيا." + }, + "processorRequirements": { + "name": "متطلبات المعالج", + "description": "معمارية المعالج أو متطلبات وحدة المعالجة المركزية الأخرى لتشغيل التطبيق (مثل IA64)." + }, + "storageRequirements": { + "name": "متطلبات التخزين", + "description": "متطلبات التخزين الدنيا (مثل المساحة الحرة المطلوبة)." + }, + "permissions": { + "name": "الأذونات", + "description": "الأذونات المطلوبة لتشغيل الشيفرة (على سبيل المثال، قد يتطلب تطبيق الهاتف المحمول الوصول الكامل إلى الإنترنت أو قد يعمل فقط على شبكة الواي فاي)." + }, + "softwareHelp": { + "name": "مساعدة / وثائق البرمجيات", + "description": "رابط إلى نصوص المساعدة أو الوثائق" + }, + "readme": { + "name": "ملف القراءة", + "description": "رابط إلى ملف README للمشروع" + }, + "releaseNotes": { + "name": "ملاحظات الإصدار", + "description": "رابط إلى ملاحظات الإصدار" + }, + "contIntegration": { + "name": "التكامل المستمر", + "description": "رابط إلى خدمة التكامل المستمر" + }, + "issueTracker": { + "name": "متتبع القضايا", + "description": "رابط إلى نظام الإبلاغ عن الأخطاء أو تتبع القضايا البرمجية" + } + } + } +} \ No newline at end of file diff --git a/public/locales/ar/collection.json b/public/locales/ar/collection.json new file mode 100644 index 000000000..4f110c3dc --- /dev/null +++ b/public/locales/ar/collection.json @@ -0,0 +1,6 @@ +{ + "noDatasetsMessage": { + "authenticated": "لا توجد حاليًا مجموعات بيانات في هذا Dataverse. يمكنك إضافتها باستخدام زر إضافة البيانات في هذه الصفحة.", + "anonymous": "لا توجد حاليًا مجموعات بيانات في هذا Dataverse. يرجى <1>تسجيل الدخول لمعرفة ما إذا كنت تستطيع إضافتها." + } +} \ No newline at end of file diff --git a/public/locales/ar/computationalworkflow.json b/public/locales/ar/computationalworkflow.json new file mode 100644 index 000000000..5030613bb --- /dev/null +++ b/public/locales/ar/computationalworkflow.json @@ -0,0 +1,19 @@ +{ + "computationalworkflow": { + "name": "بيانات سير العمل الحسابي", + "datasetField": { + "workflowType": { + "name": "نوع سير العمل الحسابي", + "description": "نوع سير العمل الحسابي، الذي تم تصميمه لتأليف وتنفيذ سلسلة من خطوات الحوسبة أو معالجة البيانات في تطبيق علمي." + }, + "workflowCodeRepository": { + "name": "رابط مستودع الشيفرة الخارجي", + "description": "رابط إلى المستودع حيث توجد الشيفرة القابلة للقراءة من قبل الإنسان والشيفرة ذات الصلة غير المجمعة (مثل GitHub، GitLab، SVN)" + }, + "workflowDocumentation": { + "name": "التوثيق", + "description": "رابط (URL) إلى الوثائق أو النص الذي يصف سير العمل الحسابي واستخدامه" + } + } + } +} \ No newline at end of file diff --git a/public/locales/ar/createDataset.json b/public/locales/ar/createDataset.json new file mode 100644 index 000000000..b3716be6a --- /dev/null +++ b/public/locales/ar/createDataset.json @@ -0,0 +1,37 @@ +{ + "pageTitle": "إنشاء مجموعة بيانات", + "metadataTip": { + "title": "نصيحة حول البيانات الوصفية", + "content": "بعد إضافة مجموعة البيانات، انقر على زر تحرير مجموعة البيانات لإضافة المزيد من البيانات الوصفية." + }, + "requiredFields": "تشير العلامات النجمية إلى الحقول المطلوبة", + "validationAlert": { + "title": "خطأ في التحقق", + "content": "تم تفويت الحقول المطلوبة أو كان هناك خطأ في التحقق. يرجى التمرير لأسفل لرؤية التفاصيل." + }, + "datasetForm": { + "field": { + "required": "{{displayName}} مطلوب", + "invalid": { + "url": "{{displayName}} ليس رابطًا صالحًا", + "email": "{{displayName}} ليس بريدًا إلكترونيًا صالحًا", + "int": "{{displayName}} ليس عددًا صحيحًا صالحًا", + "float": "{{displayName}} ليس عددًا عشريًا صالحًا", + "date": "{{displayName}} ليس تاريخًا صالحًا. يرجى استخدام التنسيق {{dateFormat}}" + } + }, + "status": { + "submitting": "جاري الإرسال...", + "success": "تم إرسال النموذج بنجاح!", + "failed": "خطأ: فشل الإرسال." + }, + "addRowButton": "إضافة", + "deleteRowButton": "حذف" + }, + "datasetFormStates": { + "submitting": "جارٍ إرسال النموذج", + "submissionSuccess": "تم إرسال النموذج بنجاح" + }, + "saveButton": "حفظ مجموعة البيانات", + "cancelButton": "إلغاء" +} \ No newline at end of file diff --git a/public/locales/ar/dataset.json b/public/locales/ar/dataset.json new file mode 100644 index 000000000..4a6738330 --- /dev/null +++ b/public/locales/ar/dataset.json @@ -0,0 +1,114 @@ +{ + "filesTabTitle": "الملفات", + "metadataTabTitle": "البيانات الوصفية", + "anonymizedFieldValue": "محتجب", + "license": { + "title": "اتفاقية الترخيص / استخدام البيانات", + "altTextPrefix": "صورة الترخيص لـ " + }, + "citation": { + "status": { + "draft": { + "description": "سيتم استبدال النسخة المسودة في الاستشهاد بالنسخة المختارة بمجرد نشر مجموعة البيانات." + }, + "deaccessioned": { + "description": "تمت إضافة النسخة المحذوفة إلى الاستشهاد لهذه النسخة لأنها لم تعد متاحة." + } + } + }, + "datasetActionButtons": { + "title": "أزرار إجراءات مجموعة البيانات", + "submitForReview": { + "enabled": "إرسال للمراجعة", + "disabled": "تم الإرسال للمراجعة" + }, + "publish": { + "title": "نشر مجموعة البيانات", + "publish": "نشر", + "returnToAuthor": "إعادة إلى المؤلف", + "changeCurationStatus": "تغيير حالة التنسيق", + "removeCurrentStatus": "إزالة الحالة الحالية" + }, + "linkDataset": { + "title": "ربط مجموعة البيانات" + }, + "editDataset": { + "title": "تحرير مجموعة البيانات", + "filesUpload": "الملفات (تحميل)", + "metadata": "البيانات الوصفية", + "terms": "الشروط", + "privateUrl": "رابط خاص", + "thumbnailsPlusWidgets": "الصور المصغرة + الأدوات", + "delete": { + "draft": "حذف نسخة المسودة", + "released": "حذف مجموعة البيانات" + }, + "deaccession": "إزالة مجموعة البيانات", + "permissions": { + "title": "الأذونات", + "dataset": "مجموعة البيانات", + "file": "الملف" + } + }, + "accessDataset": { + "title": "الوصول إلى مجموعة البيانات", + "downloadOptions": { + "header": "خيارات التنزيل", + "zip": "تنزيل ZIP", + "originalZip": "تنسيق أصلي ZIP", + "archivalZip": "تنسيق أرشيفي (.tab) ZIP" + } + }, + "uploadFiles": "تحميل الملفات" + }, + "alerts": { + "publishInProgress": { + "heading": "جارٍ النشر", + "alertText": "مجموعة البيانات مغلقة بينما يتم تسجيل أو تحديث المعرفات الدائمة و/أو يتم التحقق من الملفات الفعلية." + }, + "filesUpdated": { + "heading": "تم!", + "alertText": "تم تحديث ملف أو أكثر." + }, + "termsUpdated": { + "heading": "تم!", + "alertText": "تم تحديث الشروط لهذه المجموعة من البيانات." + }, + "thumbnailUpdated": { + "heading": "تم!", + "alertText": "تم تحديث الصورة المصغرة لمجموعة البيانات." + }, + "datasetDeleted": { + "heading": "تم!", + "alertText": "تم حذف مسودة مجموعة البيانات هذه." + }, + "datasetCreated": { + "heading": "تم!", + "alertText": "تم إنشاء مجموعة البيانات هذه." + }, + "metadataUpdated": { + "heading": "تم!", + "alertText": "تم تحديث البيانات الوصفية لهذه المجموعة من البيانات." + }, + "draftVersion": { + "heading": "يجب نشر نسخة المسودة هذه", + "alertText": "عند الاستعداد للمشاركة، يرجى النشر حتى يتمكن الآخرون من رؤية هذه التغييرات" + }, + "requestedVersionNotFound": { + "heading": "معلومة", + "alertText": "لم يتم العثور على النسخة {{requestedVersion}}. هذه هي النسخة {{returnedVersion}}." + }, + "requestedVersionNotFoundShowDraft": { + "heading": "معلومة", + "alertText": "لم يتم العثور على النسخة {{requestedVersion}}. هذه هي النسخة المسودة." + }, + "shareUnpublishedDataset": { + "heading": "رابط خاص لمجموعة البيانات غير المنشورة", + "alertText": "شارك هذه المجموعة من البيانات بشكل خاص قبل نشرها: {{privateUrl}}" + }, + "unpublishedDataset": { + "heading": "رابط خاص لمجموعة البيانات غير المنشورة", + "alertText": "تتم مشاركة هذه المجموعة غير المنشورة من البيانات بشكل خاص." + } + } +} \ No newline at end of file diff --git a/public/locales/ar/file.json b/public/locales/ar/file.json new file mode 100644 index 000000000..7b425c0fd --- /dev/null +++ b/public/locales/ar/file.json @@ -0,0 +1,53 @@ +{ + "tabs": { + "metadata": "البيانات الوصفية" + }, + "subtext": "هذا الملف جزء من \"{{datasetTitle}}\".", + "datasetCitationTitle": "استشهاد مجموعة البيانات", + "fileCitationTitle": "استشهاد الملف", + "fileAccess": { + "title": "الوصول إلى الملف", + "restricted": { + "name": "مقيد", + "icon": "أيقونة الملف المقيد" + }, + "restrictedWithAccess": { + "name": "مقيد مع الوصول الممنوح", + "icon": "أيقونة الملف المقيد مع الوصول" + }, + "embargoed": { + "name": "محظور" + }, + "public": { + "name": "عام", + "icon": "أيقونة الملف العام" + } + }, + "metadata": { + "title": "البيانات الوصفية للملف", + "fields": { + "preview": "معاينة", + "labels": "علامات الملف", + "persistentId": "معرف الملف الدائم", + "downloadUrl": { + "title": "رابط التنزيل", + "description": "استخدم رابط التنزيل في أمر Wget أو مدير التنزيل لتجنب الانقطاعات، أو انتهاء المهلات أو غيرها من الإخفاقات. <1>دليل المستخدم - التنزيل عبر الرابط" + }, + "unf": "UNF الملف", + "depositDate": "تاريخ الإيداع", + "metadataReleaseDate": "تاريخ إصدار البيانات الوصفية", + "publicationDate": "تاريخ النشر", + "embargoReason": "سبب الحظر", + "size": "الحجم", + "type": "النوع", + "variables": "المتغيرات", + "observations": "الملاحظات", + "directory": "مسار الملف", + "description": "الوصف" + } + }, + "actionButtons": { + "title": "أزرار إجراءات الملف" + } + } + \ No newline at end of file diff --git a/public/locales/ar/files.json b/public/locales/ar/files.json new file mode 100644 index 000000000..42493dd74 --- /dev/null +++ b/public/locales/ar/files.json @@ -0,0 +1,147 @@ +{ + "filesLoading": "رمز التحميل الخاص بالملفات", + "table": { + "rowSelection": { + "filesSelected_one": "{{count}} ملف تم تحديده حاليًا.", + "filesSelected_other": "{{count}} ملفات تم تحديدها حاليًا.", + "selectAll": "حدد جميع {{count}} الملفات في هذه المجموعة.", + "clearSelection": "مسح التحديد." + }, + "zipDownloadExceedsLimit": "يتجاوز الحجم الإجمالي للملفات المحددة ({{selectionTotalSize}}) للتنزيل حد ZIP البالغ {{zipDownloadSizeLimit}}. يرجى إلغاء تحديد بعض الملفات للمتابعة.", + "tabularData": { + "name": "بيانات جدوليّة", + "variables": "المتغيرات", + "observations": "الملاحظات" + }, + "embargoDate": { + "embargoedWillBeUntil": "مسودة: سيتم حظرها حتى", + "embargoedUntil": "محظور حتى", + "embargoedWasThrough": "كان محظورًا حتى" + }, + "downloads": "التنزيلات", + "date": { + "metadataReleased": "تم إصدار البيانات الوصفية", + "published": "منشور", + "deposited": "تم الإيداع" + }, + "copyToClipboard": { + "clickToCopy": "انقر للنسخ", + "correctlyCopiedIcon": "تم النسخ إلى الحافظة بشكل صحيح", + "copyToClipboardIcon": "نسخ إلى الحافظة" + }, + "noFiles": "لا توجد ملفات في هذه المجموعة." + }, + "criteria": { + "sortBy": { + "title": "ترتيب", + "icon": "أيقونة الترتيب", + "options": { + "name_az": "الاسم (أ-ي)", + "name_za": "الاسم (ي-أ)", + "oldest": "الأقدم", + "newest": "الأحدث", + "size": "الحجم", + "type": "النوع" + } + }, + "filters": { + "title": "تصفية حسب" + }, + "filterByType": { + "title": "نوع الملف" + }, + "filterByTag": { + "title": "علامات الملف" + }, + "filterByAccess": { + "title": "الوصول", + "options": { + "all": "الكل", + "public": "عام", + "restricted": "مقيد", + "embargoed_public": "محظور ثم عام", + "embargoed_restricted": "محظور ثم مقيد" + } + }, + "searchText": { + "placeholder": "ابحث في هذه المجموعة...", + "label": "بحث", + "submit": "إرسال البحث" + } + }, + "actions": { + "title": "إجراءات الملف", + "buttons": "أزرار إجراءات الملف", + "optionsMenu": { + "title": "خيارات الملف", + "headers": { + "editOptions": "خيارات التحرير" + } + }, + "alreadyDeletedAlert": { + "title": "تحرير الملف", + "message": "تم حذف هذا الملف بالفعل (أو استبداله) في النسخة الحالية. لا يمكن تحريره.", + "close": "إغلاق" + }, + "noSelectedFilesAlert": { + "title": "تحديد ملف (ملفات)", + "message": "يرجى تحديد ملف أو أكثر.", + "close": "إغلاق" + }, + "accessFileMenu": { + "title": "الوصول إلى الملف", + "headers": { + "fileAccess": "الوصول إلى الملف" + }, + "downloadOptions": { + "title": "خيارات التنزيل", + "options": { + "original": "تنسيق الملف الأصلي", + "RData": "بيانات R", + "tabular": "Tab-Delimited" + } + } + }, + "editFilesMenu": { + "title": "تحرير الملفات", + "options": { + "metadata": "البيانات الوصفية", + "unrestrict": "إلغاء التقييد", + "restrict": "تقييد", + "replace": "استبدال", + "embargo": "حظر", + "provenance": "المصدر", + "delete": "حذف" + } + }, + "downloadFiles": { + "title": "تنزيل", + "options": { + "original": "التنسيق الأصلي", + "archival": "التنسيق الأرشيفي (.tab)" + } + } + }, + "requestAccess": { + "title": "طلب الوصول", + "askToAcceptTerms": "يرجى تأكيد و/أو إكمال المعلومات المطلوبة أدناه لطلب الوصول إلى الملفات في هذه المجموعة", + "terms": "شروط الوصول للملفات المقيدة", + "confirmation": "قبول", + "cancel": "إلغاء", + "close": "إغلاق", + "embargoed": "الملفات غير متاحة خلال فترة الحظر المحددة", + "embargoedThenRestricted": "الملفات غير متاحة خلال فترة الحظر المحددة ومقيدة بعد ذلك", + "requestNotAllowed": "لا يجوز للمستخدمين طلب الوصول إلى الملفات", + "accessRequested": "تم طلب الوصول" + }, + "ingest": { + "inProgress": "جارٍ الاستيعاب...", + "error": { + "info": "الملف متاح فقط بالتنسيق الأصلي", + "tabularIngest": "استيعاب جدولي", + "tabularIngestGuide": "ملفات البيانات الجدولية - دليل مستخدم Dataverse", + "reportMessage": "لم ينجح. {{reportMessage}}", + "reportMessageDefault": "لم ينجح. فشل الاستيعاب. لا توجد معلومات إضافية متاحة." + } + } +} \ No newline at end of file diff --git a/public/locales/ar/footer.json b/public/locales/ar/footer.json new file mode 100644 index 000000000..1021fd004 --- /dev/null +++ b/public/locales/ar/footer.json @@ -0,0 +1,6 @@ +{ + "copyright": "حقوق الطبع والنشر © 2023، الرئيس وزملاء كلية هارفارد | ", + "privacyPolicy": "سياسة الخصوصية", + "poweredBy": "مشغل بواسطة" + } + \ No newline at end of file diff --git a/public/locales/ar/geospatial.json b/public/locales/ar/geospatial.json new file mode 100644 index 000000000..c007f74ee --- /dev/null +++ b/public/locales/ar/geospatial.json @@ -0,0 +1,52 @@ +{ + "geospatial": { + "name": "بيانات جغرافية", + "datasetField": { + "geographicCoverage": { + "name": "التغطية الجغرافية", + "description": "معلومات عن التغطية الجغرافية للبيانات. يشمل النطاق الجغرافي الكامل للبيانات." + }, + "country": { + "name": "الدولة / الأمة", + "description": "الدولة أو الأمة التي تتعلق بها مجموعة البيانات." + }, + "state": { + "name": "الولاية / المقاطعة", + "description": "الولاية أو المقاطعة التي تتعلق بها مجموعة البيانات. استخدم GeoNames للتهجئة الصحيحة وتجنب الاختصارات." + }, + "city": { + "name": "المدينة", + "description": "اسم المدينة التي تتعلق بها مجموعة البيانات. استخدم GeoNames للتهجئة الصحيحة وتجنب الاختصارات." + }, + "otherGeographicCoverage": { + "name": "أخرى", + "description": "معلومات أخرى عن التغطية الجغرافية للبيانات." + }, + "geographicUnit": { + "name": "الوحدة الجغرافية", + "description": "أدنى مستوى من التجميع الجغرافي التي تغطيها مجموعة البيانات، مثل القرية، المقاطعة، المنطقة." + }, + "geographicBoundingBox": { + "name": "الصندوق الجغرافي المحيط", + "description": "الوصف الهندسي الأساسي لأي مجموعة بيانات تصمم الجغرافيا هو الصندوق الجغرافي المحيط. يصف الصندوق الأدنى، المحدد بواسطة خطوط الطول الغربية والشرقية وخطوط العرض الشمالية والجنوبية، الذي يشمل أكبر مدى جغرافي للتغطية الجغرافية لمجموعة البيانات. يستخدم هذا العنصر في المرحلة الأولى من البحث القائم على الإحداثيات. يوصى بتضمين هذا العنصر في دليل الترميز، ولكن يصبح ضروريًا إذا تم تضمين الصندوق المتعدد الأضلاع." + }, + "westLongitude": { + "name": "خط الطول الغربي", + "description": "الإحداثي الأقصى غربًا الذي يحدد المدى الجغرافي لمجموعة البيانات. النطاق الصالح للقيم، معبرًا عنه بالدرجات العشرية، هو -180.0 <= قيمة خط الطول الغربي <= 180.0." + }, + "eastLongitude": { + "name": "خط الطول الشرقي", + "description": "الإحداثي الأقصى شرقًا الذي يحدد المدى الجغرافي لمجموعة البيانات. النطاق الصالح للقيم، معبرًا عنه بالدرجات العشرية، هو -180.0 <= قيمة خط الطول الشرقي <= 180.0." + }, + "northLongitude": { + "name": "خط العرض الشمالي", + "description": "الإحداثي الأقصى شمالاً الذي يحدد المدى الجغرافي لمجموعة البيانات. النطاق الصالح للقيم، معبرًا عنه بالدرجات العشرية، هو -90.0 <= قيمة خط العرض الشمالي <= 90.0." + }, + "southLongitude": { + "name": "خط العرض الجنوبي", + "description": "الإحداثي الأقصى جنوبًا الذي يحدد المدى الجغرافي لمجموعة البيانات. النطاق الصالح للقيم، معبرًا عنه بالدرجات العشرية، هو -90.0 <= قيمة خط العرض الجنوبي <= 90.0." + } + } + } + } + \ No newline at end of file diff --git a/public/locales/ar/header.json b/public/locales/ar/header.json new file mode 100644 index 000000000..02ebcd2f7 --- /dev/null +++ b/public/locales/ar/header.json @@ -0,0 +1,12 @@ +{ + "signUp": "التسجيل", + "logIn": "تسجيل الدخول", + "logOut": "تسجيل الخروج", + "brandTitle": "Dataverse", + "brandLogoImage": "شعار علامة Dataverse", + "navigation": { + "addData": "إضافة بيانات", + "newCollection": "مجموعة جديدة", + "newDataset": "مجموعة بيانات جديدة" + } +} \ No newline at end of file diff --git a/public/locales/ar/journal.json b/public/locales/ar/journal.json new file mode 100644 index 000000000..f9c03b0fc --- /dev/null +++ b/public/locales/ar/journal.json @@ -0,0 +1,27 @@ +{ + "journal": { + "name": "بيانات المجلة", + "datasetField": { + "journalVolumeIssue": { + "name": "المجلة", + "description": "يشير إلى المجلد والعدد وتاريخ المجلة التي ترتبط بها مجموعة البيانات هذه." + }, + "journalVolume": { + "name": "المجلد", + "description": "مجلد المجلة الذي ترتبط به مجموعة البيانات هذه (مثل، المجلد 4)." + }, + "journalIssue": { + "name": "العدد", + "description": "رقم عدد المجلة الذي ترتبط به مجموعة البيانات هذه (مثل، العدد 2، خريف)." + }, + "journalPubDate": { + "name": "تاريخ النشر", + "description": "تاريخ نشر هذا المجلد/العدد من المجلة الذي ترتبط به مجموعة البيانات هذه (مثل، 1999)." + }, + "journalArticleType": { + "name": "نوع المقالة", + "description": "يشير إلى نوع المقالة، مثل مقالة بحثية، تعليق، مراجعة كتاب أو منتج، تقرير حالة، تقويم، إلخ (بناءً على JATS)." + } + } + } +} \ No newline at end of file diff --git a/public/locales/ar/pageNotFound.json b/public/locales/ar/pageNotFound.json new file mode 100644 index 000000000..bc72f212b --- /dev/null +++ b/public/locales/ar/pageNotFound.json @@ -0,0 +1,5 @@ +{ + "heading": "الصفحة غير موجودة", + "message": "الصفحة التي تبحث عنها لم يتم العثور عليها." + } + \ No newline at end of file diff --git a/public/locales/ar/pageNumberNotFound.json b/public/locales/ar/pageNumberNotFound.json new file mode 100644 index 000000000..6632a8d1a --- /dev/null +++ b/public/locales/ar/pageNumberNotFound.json @@ -0,0 +1,5 @@ +{ + "heading": "رقم الصفحة غير موجود", + "message": "رقم الصفحة الذي طلبته غير موجود. يرجى محاولة رقم صفحة مختلف." + } + \ No newline at end of file diff --git a/public/locales/ar/pagination.json b/public/locales/ar/pagination.json new file mode 100644 index 000000000..becf041a9 --- /dev/null +++ b/public/locales/ar/pagination.json @@ -0,0 +1,11 @@ +{ + "results_one": "1 {{item}}", + "results_other": "{{start}} إلى {{end}} من {{count}} {{item}}s", + "accumulated": { + "one": "{{count}} {{item}}", + "lessThanPageSize": "{{count}} {{item}}s", + "moreThanPageSize": "{{accumulated}} من {{count}} {{item}}s تم رؤيتها" + }, + "pageSize": "{{item}}s لكل صفحة" + } + \ No newline at end of file diff --git a/public/locales/ar/socialscience.json b/public/locales/ar/socialscience.json new file mode 100644 index 000000000..c587389ca --- /dev/null +++ b/public/locales/ar/socialscience.json @@ -0,0 +1,111 @@ +{ + "socialscience": { + "name": "البيانات الوصفية للعلوم الاجتماعية والإنسانية", + "datasetField": { + "unitOfAnalysis": { + "name": "وحدة التحليل", + "description": "وحدة التحليل أو الملاحظة الأساسية التي تصفها هذه المجموعة من البيانات، مثل الأفراد، الأسر / المنازل، المجموعات، المؤسسات / المنظمات، الوحدات الإدارية، والمزيد. لمزيد من المعلومات حول المفردات المسيطر عليها لعناصر DDI، يرجى الرجوع إلى صفحة الويب الخاصة بـ DDI على http://www.ddialliance.org/controlled-vocabularies." + }, + "universe": { + "name": "الكون", + "description": "وصف للسكان المشمولين بالبيانات في الملف؛ المجموعة التي تمثل موضوع الدراسة والتي تشير إليها نتائج الدراسة. عادة ما تساعد عوامل مثل العمر، الجنسية، والإقامة في تحديد كون معين، ولكن يمكن استخدام أي عدد من العوامل الأخرى، مثل حدود العمر، الجنس، الحالة الاجتماعية، العرق، المجموعة العرقية، الجنسية، الدخل، حالة المحاربين القدامى، الإدانة الجنائية، والمزيد. قد يتكون الكون من عناصر أخرى غير الأشخاص، مثل الوحدات السكنية، قضايا المحاكم، الوفيات، الدول، وهكذا. بوجه عام، يجب أن يكون من الممكن معرفة من وصف الكون ما إذا كان فرد معين أو عنصر هو عضو في السكان قيد الدراسة. يُعرف أيضًا بكون الاهتمام، سكان الاهتمام، والسكان المستهدفين." + }, + "timeMethod": { + "name": "طريقة الزمن", + "description": "طريقة الزمن أو البعد الزمني لجمع البيانات، مثل البانيل، المقطعية، الاتجاه، السلسلة الزمنية، أو غيرها." + }, + "dataCollector": { + "name": "جامع البيانات", + "description": "الفرد أو الوكالة أو المنظمة المسؤولة عن إدارة الاستبيان أو المقابلة أو تجميع البيانات." + }, + "collectorTraining": { + "name": "تدريب الجامع", + "description": "نوع التدريب المقدم لجمع البيانات" + }, + "frequencyOfDataCollection": { + "name": "التكرار", + "description": "إذا كانت البيانات المجمعة تشمل أكثر من نقطة زمنية واحدة، فحدد تكرار جمع البيانات؛ مثل شهريًا، ربع سنويًا، أو غير ذلك." + }, + "samplingProcedure": { + "name": "إجراءات المعاينة", + "description": "نوع العينة وتصميم العينة المستخدمين لاختيار المجيبين على الاستبيان لتمثيل السكان. قد يشمل الإشارة إلى حجم العينة المستهدفة وكسر المعاينة." + }, + "targetSampleSize": { + "name": "حجم العينة المستهدفة", + "description": "معلومات محددة بشأن حجم العينة المستهدفة، حجم العينة الفعلي، والصيغة المستخدمة لتحديد ذلك." + }, + "targetSampleActualSize": { + "name": "فعلي", + "description": "حجم العينة الفعلي." + }, + "targetSampleSizeFormula": { + "name": "الصيغة", + "description": "الصيغة المستخدمة لتحديد حجم العينة المستهدفة." + }, + "deviationsFromSampleDesign": { + "name": "الانحرافات الرئيسية لتصميم العينة", + "description": "إظهار المراسلات وكذلك التناقضات بين الوحدات المجمعة (المحصلة) والإحصاءات المتاحة للسكان (العمر، نسبة الجنس، الحالة الاجتماعية، إلخ.) ككل." + }, + "collectionMode": { + "name": "وضع الجمع", + "description": "الطريقة المستخدمة لجمع البيانات؛ خصائص الأدوات (مثل المقابلة الهاتفية، استبيان البريد، أو غير ذلك)." + }, + "researchInstrument": { + "name": "نوع أداة البحث", + "description": "نوع أداة جمع البيانات المستخدمة. يشير المهيكل إلى أداة يتم فيها طرح نفس الأسئلة / الاختبارات على جميع المجيبين، ربما بإجابات مشفرة مسبقًا. إذا تضمن جزء صغير من هذا الاستبيان أسئلة مفتوحة، فقدم التعليقات المناسبة. يشير شبه المهيكل إلى أن أداة البحث تحتوي بشكل رئيسي على أسئلة مفتوحة. يشير غير المهيكل إلى أنه تم إجراء مقابلات متعمقة." + }, + "dataCollectionSituation": { + "name": "خصائص حالة جمع البيانات", + "description": "وصف الجوانب الملحوظة لحالة جمع البيانات. يشمل المعلومات حول العوامل مثل تعاون المجيبين، مدة المقابلات، عدد مرات إعادة الاتصال، أو ما شابه." + }, + "actionsToMinimizeLoss": { + "name": "الإجراءات لتقليل الخسائر", + "description": "ملخص للإجراءات المتخذة لتقليل فقدان البيانات. يشمل المعلومات حول الإجراءات مثل الزيارات المتابعة، فحوصات الإشراف، المطابقة التاريخية، التقدير، وهكذا." + }, + "controlOperations": { + "name": "عمليات التحكم", + "description": "طرق تسهيل التحكم في البيانات التي يؤديها المحقق الرئيسي أو الأرشيف البيانات." + }, + "weighting": { + "name": "التوزين", + "description": "قد يجعل استخدام إجراءات المعاينة من الضروري تطبيق الأوزان لإنتاج نتائج إحصائية دقيقة. يصف المعايير لاستخدام الأوزان في تحليل مجموعة البيانات. إذا تم تطوير صيغة أو معامل للتوزين، يتم توفير الصيغة، وتحديد عناصرها، وتوضيح كيفية تطبيق الصيغة على البيانات." + }, + "cleaningOperations": { + "name": "عمليات التنظيف", + "description": "الطرق المستخدمة لتنظيف جمع البيانات، مثل فحص التناسق، فحص الشيفرات البرية، أو غير ذلك." + }, + "datasetLevelErrorNotes": { + "name": "ملاحظات خطأ مستوى الدراسة", + "description": "عنصر ملاحظة يستخدم لأي معلومات تشرح أو توضح منهجية الدراسة ومعالجتها." + }, + "responseRate": { + "name": "معدل الاستجابة", + "description": "نسبة أعضاء العينة الذين قدموا المعلومات." + }, + "samplingErrorEstimates": { + "name": "تقديرات خطأ المعاينة", + "description": "قياس مدى دقة تقدير قيمة سكانية من عينة معينة." + }, + "otherDataAppraisal": { + "name": "أشكال أخرى من تقييم البيانات", + "description": "قضايا أخرى تتعلق بتقييم البيانات. وصف القضايا مثل تباين الاستجابة، معدل عدم الاستجابة واختبار التحيز، تحيز المحاور والاستجابة، مستويات الثقة، تحيز الأسئلة، أو ما شابه." + }, + "socialScienceNotes": { + "name": "ملاحظات", + "description": "ملاحظات عامة حول هذه المجموعة من البيانات." + }, + "socialScienceNotesType": { + "name": "النوع", + "description": "نوع الملاحظة." + }, + "socialScienceNotesSubject": { + "name": "الموضوع", + "description": "موضوع الملاحظة." + }, + "socialScienceNotesText": { + "name": "النص", + "description": "نص هذه الملاحظة." + } + } + } +} \ No newline at end of file diff --git a/public/locales/fr/astrophysics.json b/public/locales/fr/astrophysics.json new file mode 100644 index 000000000..aebaefff4 --- /dev/null +++ b/public/locales/fr/astrophysics.json @@ -0,0 +1,112 @@ +{ + "astrophysics": { + "name": "Métadonnées d'astronomie et d'astrophysique", + "datasetField": { + "astroType": { + "name": "Type", + "description": "La nature ou le genre du contenu des fichiers dans l'ensemble de données." + }, + "astroFacility": { + "name": "Établissement", + "description": "L'observatoire ou l'établissement où les données ont été obtenues." + }, + "astroInstrument": { + "name": "Instrument", + "description": "L'instrument utilisé pour collecter les données." + }, + "astroObject": { + "name": "Objet", + "description": "Objets astronomiques représentés dans les données (les noms reconnaissables par SIMBAD sont préférés)." + }, + "resolution.Spatial": { + "name": "Résolution Spatiale", + "description": "La résolution spatiale (angulaire) typique des observations, en degrés décimaux." + }, + "resolution.Spectral": { + "name": "Résolution Spectrale", + "description": "La résolution spectrale typique des observations, exprimée comme le rapport λ/Δλ." + }, + "resolution.Temporal": { + "name": "Résolution Temporelle", + "description": "La résolution temporelle typique des observations, donnée en secondes." + }, + "coverage.Spectral.Bandpass": { + "name": "Bande Passante", + "description": "Nom conventionnel de la bande passante" + }, + "coverage.Spectral.CentralWavelength": { + "name": "Longueur d'onde Centrale (m)", + "description": "La longueur d'onde centrale de la bande passante spectrale, en mètres. Entrez un nombre à virgule flottante." + }, + "coverage.Spectral.Wavelength": { + "name": "Plage de Longueurs d'onde", + "description": "La longueur d'onde minimale et maximale de la bande passante spectrale. Entrez un nombre à virgule flottante." + }, + "coverage.Spectral.MinimumWavelength": { + "name": "Minimum (m)", + "description": "La longueur d'onde minimale de la bande passante spectrale, en mètres. Entrez un nombre à virgule flottante." + }, + "coverage.Spectral.MaximumWavelength": { + "name": "Maximum (m)", + "description": "La longueur d'onde maximale de la bande passante spectrale, en mètres. Entrez un nombre à virgule flottante." + }, + "coverage.Temporal": { + "name": "Période de Données", + "description": "Période couverte par les données." + }, + "coverage.Temporal.StartTime": { + "name": "Début", + "description": "Date de début de l'ensemble de données (AAAA-MM-JJ)" + }, + "coverage.Temporal.StopTime": { + "name": "Fin", + "description": "Date de fin de l'ensemble de données (AAAA-MM-JJ)" + }, + "coverage.Spatial": { + "name": "Couverture Céleste", + "description": "La couverture céleste de l'objet de données." + }, + "coverage.Depth": { + "name": "Profondeur de Couverture", + "description": "La profondeur de couverture (ou sensibilité) typique de l'objet de données en Jy" + }, + "coverage.ObjectDensity": { + "name": "Densité d'Objets", + "description": "La densité typique d'objets, d'entrées de catalogue, de pointages de télescopes, etc., dans le ciel, en nombre par degré carré. Entrez un nombre à virgule flottante." + }, + "coverage.ObjectCount": { + "name": "Nombre d'Objets", + "description": "Le nombre total d'objets, d'entrées de catalogue, etc., dans l'objet de données. Entrez un entier." + }, + "coverage.SkyFraction": { + "name": "Fraction du Ciel", + "description": "La fraction du ciel représentée dans les observations, allant de 0 à 1. Entrez un nombre à virgule flottante." + }, + "coverage.Polarization": { + "name": "Polarisation", + "description": "La couverture de la polarisation" + }, + "redshiftType": { + "name": "Type de Décalage vers le Rouge", + "description": "Chaîne de caractères 'Décalage vers le Rouge'; ou 'Optique' ou 'Radio' définitions de la vitesse Doppler utilisée dans l'objet de données." + }, + "resolution.Redshift": { + "name": "Résolution de Décalage vers le Rouge", + "description": "La résolution en décalage vers le rouge (sans unité) ou vitesse Doppler (km/s) dans l'objet de données. Entrez un nombre à virgule flottante." + }, + "coverage.RedshiftValue": { + "name": "Valeur de Décalage vers le Rouge", + "description": "La valeur du décalage vers le rouge (sans unité) ou vitesse Doppler (km/s) dans l'objet de données. Entrez un nombre à virgule flottante." + }, + "coverage.Redshift.MinimumValue": { + "name": "Minimum", + "description": "La valeur minimale du décalage vers le rouge (sans unité) ou vitesse Doppler (km/s) dans l'objet de données. Entrez un nombre à virgule flottante." + }, + "coverage.Redshift.MaximumValue": { + "name": "Maximum", + "description": "La valeur maximale du décalage vers le rouge (sans unité) ou vitesse Doppler (km/s) dans l'objet de données. Entrez un nombre à virgule flottante." + } + } + } + } + \ No newline at end of file diff --git a/public/locales/fr/biomedical.json b/public/locales/fr/biomedical.json new file mode 100644 index 000000000..649ff3d18 --- /dev/null +++ b/public/locales/fr/biomedical.json @@ -0,0 +1,60 @@ +{ + "biomedical": { + "name": "Métadonnées des Sciences de la Vie", + "datasetField": { + "studyDesignType": { + "name": "Type de Conception", + "description": "Types de conception basés sur le plan expérimental global." + }, + "studyOtherDesignType": { + "name": "Autre Type de Conception", + "description": "Si Autre a été sélectionné dans Type de Conception, lister tout autre type de conception utilisé dans cet Ensemble de Données." + }, + "studyFactorType": { + "name": "Type de Facteur", + "description": "Facteurs utilisés dans l'Ensemble de Données." + }, + "studyOtherFactorType": { + "name": "Autre Type de Facteur", + "description": "Si Autre a été sélectionné dans Type de Facteur, lister tout autre type de facteur utilisé dans cet Ensemble de Données." + }, + "studyAssayOrganism": { + "name": "Organisme", + "description": "Le nom taxonomique de l'organisme utilisé dans l'Ensemble de Données ou d'où provient le matériel biologique de départ." + }, + "studyAssayOtherOrganism": { + "name": "Autre Organisme", + "description": "Si Autre a été sélectionné pour Organisme, lister tout autre organisme qui a été utilisé dans cet Ensemble de Données. Les termes de la Taxonomie NCBI sont recommandés." + }, + "studyAssayMeasurementType": { + "name": "Type de Mesure", + "description": "Un terme pour qualifier le point final, ou ce qui est mesuré (par exemple, profilage de l'expression génique ; identification des protéines)." + }, + "studyAssayOtherMeasurmentType": { + "name": "Autre Type de Mesure", + "description": "Si Autre a été sélectionné dans Type de Mesure, lister tout autre type de mesure utilisé. Les termes du NCBO Bioportal sont recommandés." + }, + "studyAssayTechnologyType": { + "name": "Type de Technologie", + "description": "Un terme pour identifier la technologie utilisée pour effectuer la mesure (par exemple, microarray d'ADN ; spectrométrie de masse)." + }, + "studyAssayOtherTechnologyType": { + "name": "Autre Type de Technologie", + "description": "Si Autre a été sélectionné dans Type de Technologie, lister tout autre type de technologie utilisé dans cet Ensemble de Données." + }, + "studyAssayPlatform": { + "name": "Plateforme Technologique", + "description": "Le fabricant et le nom de la plateforme technologique utilisée pour l'analyse (par exemple, Bruker AVANCE)." + }, + "studyAssayOtherPlatform": { + "name": "Autre Plateforme Technologique", + "description": "Si Autre a été sélectionné dans Plateforme Technologique, lister toute autre plateforme technologique utilisée dans cet Ensemble de Données." + }, + "studyAssayCellType": { + "name": "Type de Cellule", + "description": "Le nom de la lignée cellulaire à partir de laquelle provient la source ou l'échantillon." + } + } + } + } + \ No newline at end of file diff --git a/public/locales/fr/citation.json b/public/locales/fr/citation.json new file mode 100644 index 000000000..e4e93ca49 --- /dev/null +++ b/public/locales/fr/citation.json @@ -0,0 +1,336 @@ +{ + "citation": { + "name": "Métadonnées de Citation", + "datasetField": { + "persistentId": { + "name": "Identifiant Persistant", + "description": "L'identifiant persistant unique du Dataset, soit un DOI ou un identifiant Handle" + }, + "alternativePersistentId": { + "name": "ID Persistant Précédent du Dataset", + "description": "Un identifiant persistant précédemment utilisé pour le Dataset, soit un DOI ou un identifiant Handle" + }, + "publicationDate": { + "name": "Date de Publication", + "description": "La date de publication d'un Dataset." + }, + "citationDate": { + "name": "Date de Citation", + "description": "La date de citation d'un dataset, déterminée par l'embargo le plus long sur un fichier dans la version 1.0." + }, + "title": { + "name": "Titre", + "description": "Le titre principal du Dataset" + }, + "subtitle": { + "name": "Sous-titre", + "description": "Un titre secondaire qui amplifie ou précise certaines limitations du titre principal" + }, + "alternativeTitle": { + "name": "Titre Alternatif", + "description": "Soit 1) un titre couramment utilisé pour désigner le Dataset ou 2) une abréviation du titre principal" + }, + "alternativeURL": { + "name": "URL Alternative", + "description": "Une autre URL où l'on peut voir ou accéder aux données du Dataset, par exemple une page web de projet ou personnelle" + }, + "otherId": { + "name": "Autre Identifiant", + "description": "Un autre identifiant unique pour le Dataset (par exemple, l'identifiant du producteur ou d'un autre dépôt)" + }, + "otherIdAgency": { + "name": "Agence", + "description": "Le nom de l'agence qui a généré l'autre identifiant" + }, + "otherIdValue": { + "name": "Identifiant", + "description": "Un autre identifiant qui identifie uniquement le Dataset" + }, + "author": { + "name": "Auteur", + "description": "L'entité, par exemple une personne ou une organisation, qui a créé le Dataset" + }, + "authorName": { + "name": "Nom", + "description": "Le nom de l'auteur, qu'il s'agisse du nom d'une personne ou du nom d'une organisation" + }, + "authorAffiliation": { + "name": "Affiliation", + "description": "Le nom de l'entité affiliée à l'auteur, par exemple le nom d'une organisation" + }, + "authorIdentifierScheme": { + "name": "Type d'Identifiant", + "description": "Le type d'identifiant qui identifie uniquement l'auteur (par exemple ORCID, ISNI)" + }, + "authorIdentifier": { + "name": "Identifiant", + "description": "Identifie uniquement l'auteur lorsqu'il est associé à un type d'identifiant" + }, + "datasetContact": { + "name": "Point de Contact", + "description": "L'entité, par exemple une personne ou une organisation, que les utilisateurs du Dataset peuvent contacter pour des questions", + "tip": "Utilisez le bouton email ci-dessus pour contacter." + }, + "datasetContactName": { + "name": "Nom", + "description": "Le nom du point de contact, qu'il s'agisse du nom d'une personne ou du nom d'une organisation" + }, + "datasetContactAffiliation": { + "name": "Affiliation", + "description": "Le nom de l'entité affiliée au point de contact, par exemple le nom d'une organisation" + }, + "datasetContactEmail": { + "name": "E-mail", + "description": "L'adresse e-mail du point de contact" + }, + "dsDescription": { + "name": "Description", + "description": "Un résumé décrivant le but, la nature et la portée du Dataset" + }, + "dsDescriptionValue": { + "name": "Texte", + "description": "Un résumé décrivant le but, la nature et la portée du Dataset" + }, + "dsDescriptionDate": { + "name": "Date", + "description": "La date à laquelle la description a été ajoutée au Dataset. Si le Dataset contient plus d'une description, par exemple, une description fournie par le producteur de données et une autre par le dépôt de données, cette date est utilisée pour distinguer entre les descriptions" + }, + "subject": { + "name": "Sujet", + "description": "Le domaine d'étude pertinent pour le Dataset" + }, + "keyword": { + "name": "Mot-clé", + "description": "Un terme clé qui décrit un aspect important du Dataset et des informations sur tout vocabulaire contrôlé utilisé" + }, + "keywordValue": { + "name": "Terme", + "description": "Un terme clé qui décrit des aspects importants du Dataset" + }, + "keywordVocabulary": { + "name": "Nom du Vocabulaire Contrôlé", + "description": "Le vocabulaire contrôlé utilisé pour le terme de mot-clé (par exemple LCSH, MeSH)" + }, + "keywordVocabularyURI": { + "name": "URL du Vocabulaire Contrôlé", + "description": "L'URL où l'on peut accéder à des informations sur le vocabulaire contrôlé du terme" + }, + "topicClassification": { + "name": "Classification Thématique", + "description": "Indique un sujet ou un thème large et important que le Dataset couvre et des informations sur tout vocabulaire contrôlé utilisé" + }, + "topicClassValue": { + "name": "Terme", + "description": "Un terme de sujet ou thème" + }, + "topicClassVocab": { + "name": "Nom du Vocabulaire Contrôlé", + "description": "Le vocabulaire contrôlé utilisé pour le terme de classification thématique (par exemple LCSH, MeSH)" + }, + "topicClassVocabURI": { + "name": "URL du Vocabulaire Contrôlé", + "description": "L'URL où l'on peut accéder à des informations sur le vocabulaire contrôlé du terme de classification thématique" + }, + "publication": { + "name": "Publication Connexe", + "description": "L'article ou le rapport qui utilise les données du Dataset. La liste complète des publications connexes sera affichée sur l'onglet métadonnées" + }, + "publicationCitation": { + "name": "Citation", + "description": "La citation bibliographique complète pour la publication connexe" + }, + "publicationIDType": { + "name": "Type d'Identifiant", + "description": "Le type d'identifiant qui identifie uniquement une publication connexe" + }, + "publicationIDNumber": { + "name": "Identifiant", + "description": "L'identifiant pour une publication connexe" + }, + "publicationURL": { + "name": "URL", + "description": "La forme URL de l'identifiant entré dans le champ Identifiant, par exemple l'URL DOI si un DOI a été entré dans le champ Identifiant. Utilisé pour afficher ce qui a été entré dans les champs Type d'ID et Numéro d'ID sous forme de lien. Si ce qui a été entré dans le champ Identifiant n'a pas de forme URL, l'URL de la page web de la publication est utilisée, par exemple une page web d'article de journal" + }, + "notesText": { + "name": "Notes", + "description": "Informations supplémentaires sur le Dataset" + }, + "language": { + "name": "Langue", + "description": "Une langue dans laquelle les fichiers du Dataset sont écrits" + }, + "producer": { + "name": "Producteur", + "description": "L'entité, telle qu'une personne ou une organisation, qui gère les finances ou d'autres processus administratifs impliqués dans la création du Dataset" + }, + "producerName": { + "name": "Nom", + "description": "Le nom de l'entité, par exemple le nom d'une personne ou le nom d'une organisation" + }, + "producerAffiliation": { + "name": "Affiliation", + "description": "Le nom de l'entité affiliée au producteur, par exemple le nom d'une organisation" + }, + "producerAbbreviation": { + "name": "Nom Abrégé", + "description": "Le nom abrégé du producteur (par exemple IQSS, ICPSR)" + }, + "producerURL": { + "name": "URL", + "description": "L'URL du site web du producteur" + }, + "producerLogoURL": { + "name": "URL du Logo", + "description": "L'URL du logo du producteur" + }, + "productionDate": { + "name": "Date de Production", + "description": "La date à laquelle les données ont été produites (non distribuées, publiées ou archivées)" + }, + "productionPlace": { + "name": "Lieu de Production", + "description": "Le lieu où les données et tout matériel connexe ont été produits ou collectés" + }, + "contributor": { + "name": "Contributeur", + "description": "L'entité, telle qu'une personne ou une organisation, responsable de la collecte, de la gestion ou de la contribution au développement du Dataset" + }, + "contributorType": { + "name": "Type", + "description": "Indique le type de contribution apportée au dataset" + }, + "contributorName": { + "name": "Nom", + "description": "Le nom du contributeur, qu'il s'agisse du nom d'une personne ou du nom d'une organisation" + }, + "grantNumber": { + "name": "Informations sur le Financement", + "description": "Informations sur le soutien financier du Dataset" + }, + "grantNumberAgency": { + "name": "Agence", + "description": "L'agence qui a fourni un soutien financier pour le Dataset" + }, + "grantNumberValue": { + "name": "Identifiant", + "description": "L'identifiant de subvention ou l'identifiant de contrat de l'agence qui a fourni un soutien financier pour le Dataset" + }, + "distributor": { + "name": "Distributeur", + "description": "L'entité, telle qu'une personne ou une organisation, désignée pour générer des copies du Dataset, y compris toute édition ou révision" + }, + "distributorName": { + "name": "Nom", + "description": "Le nom de l'entité, qu'il s'agisse du nom d'une personne ou du nom d'une organisation" + }, + "distributorAffiliation": { + "name": "Affiliation", + "description": "Le nom de l'entité affiliée au distributeur, par exemple le nom d'une organisation" + }, + "distributorAbbreviation": { + "name": "Nom Abrégé", + "description": "Le nom abrégé du distributeur (par exemple IQSS, ICPSR)" + }, + "distributorURL": { + "name": "URL", + "description": "L'URL de la page web du distributeur" + }, + "distributorLogoURL": { + "name": "URL du Logo", + "description": "L'URL de l'image du logo du distributeur, utilisée pour afficher l'image sur la page du Dataset" + }, + "distributionDate": { + "name": "Date de Distribution", + "description": "La date à laquelle le Dataset a été rendu disponible pour la distribution/présentation" + }, + "depositor": { + "name": "Déposant", + "description": "L'entité, telle qu'une personne ou une organisation, qui a déposé le Dataset dans le dépôt" + }, + "dateOfDeposit": { + "name": "Date de Dépôt", + "description": "La date à laquelle le Dataset a été déposé dans le dépôt" + }, + "timePeriodCovered": { + "name": "Période Couverte", + "description": "La période de temps à laquelle les données se réfèrent. Également connue sous le nom de durée. C'est la période couverte par les données, pas les dates de codage, de collecte des données, ou de rendu des documents lisibles par machine" + }, + "timePeriodCoveredStart": { + "name": "Date de Début", + "description": "La date de début de la période à laquelle les données se réfèrent" + }, + "timePeriodCoveredEnd": { + "name": "Date de Fin", + "description": "La date de fin de la période à laquelle les données se réfèrent" + }, + "dateOfCollection": { + "name": "Date de Collecte", + "description": "Les dates où les données ont été collectées ou générées" + }, + "dateOfCollectionStart": { + "name": "Date de Début", + "description": "La date où la collecte des données a commencé" + }, + "dateOfCollectionEnd": { + "name": "Date de Fin", + "description": "La date où la collecte des données a pris fin" + }, + "kindOfData": { + "name": "Type de Données", + "description": "Le type de données inclus dans les fichiers (par exemple, données d'enquête, données cliniques, ou texte lisible par machine)" + }, + "series": { + "name": "Série", + "description": "Informations sur la série de datasets à laquelle appartient le Dataset" + }, + "seriesName": { + "name": "Nom", + "description": "Le nom de la série de datasets" + }, + "seriesInformation": { + "name": "Information", + "description": "Peut inclure 1) une histoire de la série et 2) un résumé des caractéristiques qui s'appliquent à la série" + }, + "software": { + "name": "Logiciel", + "description": "Informations sur le logiciel utilisé pour générer le Dataset" + }, + "softwareName": { + "name": "Nom", + "description": "Le nom du logiciel utilisé pour générer le Dataset" + }, + "softwareVersion": { + "name": "Version", + "description": "La version du logiciel utilisée pour générer le Dataset, par exemple 4.11" + }, + "relatedMaterial": { + "name": "Matériel Connexe", + "description": "Informations, telles qu'un ID persistant ou une citation, sur le matériel lié au Dataset, tel que des annexes ou des informations d'échantillonnage disponibles en dehors du Dataset" + }, + "relatedDatasets": { + "name": "Dataset Connexe", + "description": "Informations, telles qu'un ID persistant ou une citation, sur un dataset connexe, tel que des recherches précédentes sur le sujet du Dataset" + }, + "otherReferences": { + "name": "Autre Référence", + "description": "Informations, telles qu'un ID persistant ou une citation, sur un autre type de ressource fournissant un contexte ou un soutien matériel au Dataset" + }, + "dataSources": { + "name": "Source de Données", + "description": "Informations, telles qu'un ID persistant ou une citation, sur les sources du Dataset (par exemple un livre, un article, une publication périodique, ou un fichier de données lisible par machine)" + }, + "originOfSources": { + "name": "Origine des Sources Historiques", + "description": "Pour les sources historiques, l'origine et toutes les règles suivies pour les établir comme sources" + }, + "characteristicOfSources": { + "name": "Caractéristique des Sources", + "description": "Caractéristiques non déjà notées ailleurs" + }, + "accessToSources": { + "name": "Documentation et Accès aux Sources", + "description": "1) Méthodes ou procédures pour accéder aux sources de données et 2) toutes les permissions spéciales nécessaires pour l'accès" + } + } + } +} \ No newline at end of file diff --git a/public/locales/fr/citationBlock.json b/public/locales/fr/citationBlock.json new file mode 100644 index 000000000..988495659 --- /dev/null +++ b/public/locales/fr/citationBlock.json @@ -0,0 +1,4 @@ +{ + "learnAbout": "En savoir plus sur", + "standards": "Normes de citation des données" +} diff --git a/public/locales/fr/codeMeta20.json b/public/locales/fr/codeMeta20.json new file mode 100644 index 000000000..8acb8db66 --- /dev/null +++ b/public/locales/fr/codeMeta20.json @@ -0,0 +1,108 @@ +{ + "codeMeta20": { + "name": "Métadonnées Logicielles (CodeMeta v2.0)", + "datasetField": { + "codeVersion": { + "name": "Version du Logiciel", + "description": "Version de l'instance logicielle, suivant généralement une convention comme SemVer, etc." + }, + "developmentStatus": { + "name": "Statut du Développement", + "description": "Description du statut de développement, par exemple en cours (wip), actif, etc. Voir repostatus.org pour plus d'informations." + }, + "codeRepository": { + "name": "Dépôt de Code", + "description": "Lien vers le dépôt où se trouve le code non compilé, lisible par l'humain et le code associé (SVN, GitHub, CodePlex, instance institutionnelle de GitLab, Gitea, etc.)." + }, + "applicationCategory": { + "name": "Catégorie d'Application", + "description": "Type d'application logicielle, par exemple Simulation, Analyse, Visualisation." + }, + "applicationSubCategory": { + "name": "Sous-catégorie d'Application", + "description": "Sous-catégorie de l'application, par exemple Jeu d'Arcade." + }, + "programmingLanguage": { + "name": "Langage de Programmation", + "description": "Les langages de programmation utilisés pour implémenter le logiciel (par exemple Python, C++, Matlab, Fortran, Java, Julia, ...)" + }, + "runtimePlatform": { + "name": "Plateforme d'Exécution", + "description": "Plateforme d'exécution ou dépendances de l'interpréteur de scripts (par exemple Java 11, Python 3.10 ou .Net Framework 4.8)." + }, + "operatingSystem": { + "name": "Systèmes d'Exploitation", + "description": "Systèmes d'exploitation pris en charge (par exemple Windows 10, OSX 11.3, Android 11)." + }, + "targetProduct": { + "name": "Produit Cible", + "description": "Système d'exploitation cible / Produit auquel le code s'applique. Si applicable à plusieurs versions, seul le nom du produit peut être utilisé." + }, + "buildInstructions": { + "name": "Instructions de Construction", + "description": "Lien vers les instructions d'installation/documentation" + }, + "softwareRequirementsItem": { + "name": "Exigences Logicielles", + "description": "Dépendances logicielles requises" + }, + "softwareRequirements": { + "name": "Nom & Version", + "description": "Nom et version de la dépendance logicielle/bibliothèque requise" + }, + "softwareRequirementsInfoUrl": { + "name": "URL d'Information", + "description": "Lien vers la page d'accueil ou la documentation de la logiciel/bibliothèque requise (idéalement aussi versionnée)" + }, + "softwareSuggestionsItem": { + "name": "Suggestions Logicielles", + "description": "Dépendances optionnelles, par exemple pour des fonctionnalités optionnelles, développement de code, etc." + }, + "softwareSuggestions": { + "name": "Nom & Version", + "description": "Nom et version de la dépendance logicielle/bibliothèque optionnelle" + }, + "softwareSuggestionsInfoUrl": { + "name": "URL d'Information", + "description": "Lien vers la page d'accueil ou la documentation de la logiciel/bibliothèque optionnelle (idéalement aussi versionnée)" + }, + "memoryRequirements": { + "name": "Exigences Mémoire", + "description": "Exigences minimales de mémoire." + }, + "processorRequirements": { + "name": "Exigences Processeur", + "description": "Architecture du processeur ou autres exigences CPU pour exécuter l'application (par exemple IA64)." + }, + "storageRequirements": { + "name": "Exigences de Stockage", + "description": "Exigences minimales de stockage (par exemple espace libre requis)." + }, + "permissions": { + "name": "Permissions", + "description": "Permission(s) requise(s) pour exécuter le code (par exemple, une application mobile peut nécessiter un accès internet complet ou fonctionner uniquement en wifi)." + }, + "softwareHelp": { + "name": "Aide/Documentation Logicielle", + "description": "Lien vers les textes d'aide ou la documentation" + }, + "readme": { + "name": "Lisez-moi", + "description": "Lien vers le README du projet" + }, + "releaseNotes": { + "name": "Notes de Version", + "description": "Lien vers les notes de version" + }, + "contIntegration": { + "name": "Intégration Continue", + "description": "Lien vers le service d'intégration continue" + }, + "issueTracker": { + "name": "Suivi des Problèmes", + "description": "Lien vers le système de signalement des bugs ou de suivi des problèmes logiciels" + } + } + } + } + \ No newline at end of file diff --git a/public/locales/fr/collection.json b/public/locales/fr/collection.json new file mode 100644 index 000000000..3983ea04c --- /dev/null +++ b/public/locales/fr/collection.json @@ -0,0 +1,6 @@ +{ + "noDatasetsMessage": { + "authenticated": "Ce dataverse ne contient actuellement aucun dataset. Vous pouvez en ajouter en utilisant le bouton Ajouter des Données sur cette page.", + "anonymous": "Ce dataverse ne contient actuellement aucun dataset. Veuillez <1>vous connecter pour voir si vous pouvez y contribuer." + } +} \ No newline at end of file diff --git a/public/locales/fr/computationalworkflow.json b/public/locales/fr/computationalworkflow.json new file mode 100644 index 000000000..7587cd89b --- /dev/null +++ b/public/locales/fr/computationalworkflow.json @@ -0,0 +1,20 @@ +{ + "computationalworkflow": { + "name": "Métadonnées de Flux de Travail Informatique", + "datasetField": { + "workflowType": { + "name": "Type de Flux de Travail Informatique", + "description": "Le type de flux de travail informatique, conçu pour composer et exécuter une série d'étapes de calcul ou de manipulation de données dans une application scientifique." + }, + "workflowCodeRepository": { + "name": "URL du Dépôt de Code Externe", + "description": "Un lien vers le dépôt où se trouve le code non compilé, lisible par l'humain et le code associé (par exemple, GitHub, GitLab, SVN)" + }, + "workflowDocumentation": { + "name": "Documentation", + "description": "Un lien (URL) vers la documentation ou le texte décrivant le flux de travail informatique et son utilisation" + } + } + } + } + \ No newline at end of file diff --git a/public/locales/fr/createDataset.json b/public/locales/fr/createDataset.json new file mode 100644 index 000000000..acefacac0 --- /dev/null +++ b/public/locales/fr/createDataset.json @@ -0,0 +1,37 @@ +{ + "pageTitle": "Créer un Dataset", + "metadataTip": { + "title": "Conseil sur les Métadonnées", + "content": "Après avoir ajouté le dataset, cliquez sur le bouton Modifier le Dataset pour ajouter plus de métadonnées." + }, + "requiredFields": "Les astérisques indiquent les champs obligatoires", + "validationAlert": { + "title": "Erreur de Validation", + "content": "Des champs obligatoires ont été omis ou il y a eu une erreur de validation. Veuillez défiler vers le bas pour voir les détails." + }, + "datasetForm": { + "field": { + "required": "{{displayName}} est requis", + "invalid": { + "url": "{{displayName}} n'est pas une URL valide", + "email": "{{displayName}} n'est pas un email valide", + "int": "{{displayName}} n'est pas un entier valide", + "float": "{{displayName}} n'est pas un nombre à virgule flottante valide", + "date": "{{displayName}} n'est pas une date valide. Veuillez utiliser le format {{dateFormat}}" + } + }, + "status": { + "submitting": "Soumission en cours...", + "success": "Formulaire soumis avec succès !", + "failed": "Erreur : Échec de la soumission." + }, + "addRowButton": "Ajouter", + "deleteRowButton": "Supprimer" + }, + "datasetFormStates": { + "submitting": "Soumission du Formulaire", + "submissionSuccess": "Soumission du formulaire réussie" + }, + "saveButton": "Sauvegarder le Dataset", + "cancelButton": "Annuler" +} \ No newline at end of file diff --git a/public/locales/fr/dataset.json b/public/locales/fr/dataset.json new file mode 100644 index 000000000..969de37cc --- /dev/null +++ b/public/locales/fr/dataset.json @@ -0,0 +1,114 @@ +{ + "filesTabTitle": "Fichiers", + "metadataTabTitle": "Métadonnées", + "anonymizedFieldValue": "retenu", + "license": { + "title": "Licence / Accord d'utilisation des données", + "altTextPrefix": "Image de licence pour " + }, + "citation": { + "status": { + "draft": { + "description": "La VERSION PROVISOIRE sera remplacée dans la citation par la version sélectionnée une fois que le dataset aura été publié." + }, + "deaccessioned": { + "description": "La VERSION RETIRÉE a été ajoutée à la citation pour cette version puisqu'elle n'est plus disponible." + } + } + }, + "datasetActionButtons": { + "title": "Boutons d'action pour le Dataset", + "submitForReview": { + "enabled": "Soumettre pour Révision", + "disabled": "Soumis pour Révision" + }, + "publish": { + "title": "Publier le Dataset", + "publish": "Publier", + "returnToAuthor": "Renvoyer à l'Auteur", + "changeCurationStatus": "Modifier le Statut de Curation", + "removeCurrentStatus": "Supprimer le Statut Actuel" + }, + "linkDataset": { + "title": "Lier le Dataset" + }, + "editDataset": { + "title": "Modifier le Dataset", + "filesUpload": "Fichiers (Téléchargement)", + "metadata": "Métadonnées", + "terms": "Conditions", + "privateUrl": "URL Privée", + "thumbnailsPlusWidgets": "Miniatures + Widgets", + "delete": { + "draft": "Supprimer la Version Provisoire", + "released": "Supprimer le Dataset" + }, + "deaccession": "Retrait du Dataset", + "permissions": { + "title": "Permissions", + "dataset": "Dataset", + "file": "Fichier" + } + }, + "accessDataset": { + "title": "Accéder au Dataset", + "downloadOptions": { + "header": "Options de Téléchargement", + "zip": "Télécharger ZIP", + "originalZip": "ZIP au Format Original", + "archivalZip": "ZIP au Format Archival (.tab)" + } + }, + "uploadFiles": "Télécharger des Fichiers" + }, + "alerts": { + "publishInProgress": { + "heading": "Publication en Cours", + "alertText": "Le dataset est verrouillé pendant que les identifiants persistants sont enregistrés ou mis à jour, et/ou que les fichiers physiques sont validés." + }, + "filesUpdated": { + "heading": "Succès !", + "alertText": "Un ou plusieurs fichiers ont été mis à jour." + }, + "termsUpdated": { + "heading": "Succès !", + "alertText": "Les conditions de ce dataset ont été mises à jour." + }, + "thumbnailUpdated": { + "heading": "Succès !", + "alertText": "La miniature du dataset a été mise à jour." + }, + "datasetDeleted": { + "heading": "Succès !", + "alertText": "Cette version provisoire du dataset a été supprimée." + }, + "datasetCreated": { + "heading": "Succès !", + "alertText": "Ce dataset a été créé." + }, + "metadataUpdated": { + "heading": "Succès !", + "alertText": "Les métadonnées de ce dataset ont été mises à jour." + }, + "draftVersion": { + "heading": "Cette version provisoire doit être publiée", + "alertText": "Lorsque prêt pour le partage, veuillez publier afin que d'autres puissent voir ces changements" + }, + "requestedVersionNotFound": { + "heading": "Info", + "alertText": "La version {{requestedVersion}} n'a pas été trouvée. Ceci est la version {{returnedVersion}}." + }, + "requestedVersionNotFoundShowDraft": { + "heading": "Info", + "alertText": "La version {{requestedVersion}} n'a pas été trouvée. Ceci est la VERSION PROVISOIRE." + }, + "shareUnpublishedDataset": { + "heading": "URL Privée pour un Dataset Non Publié", + "alertText": "Partagez privément ce dataset avant qu'il ne soit publié : {{privateUrl}}" + }, + "unpublishedDataset": { + "heading": "URL Privée pour un Dataset Non Publié", + "alertText": "Ce dataset non publié est partagé de manière privée." + } + } +} \ No newline at end of file diff --git a/public/locales/fr/file.json b/public/locales/fr/file.json new file mode 100644 index 000000000..88a8790a4 --- /dev/null +++ b/public/locales/fr/file.json @@ -0,0 +1,52 @@ +{ + "tabs": { + "metadata": "Métadonnées" + }, + "subtext": "Ce fichier fait partie de \"{{datasetTitle}}\".", + "datasetCitationTitle": "Citation du Dataset", + "fileCitationTitle": "Citation du Fichier", + "fileAccess": { + "title": "Accès au Fichier", + "restricted": { + "name": "Restreint", + "icon": "Icône de Fichier Restreint" + }, + "restrictedWithAccess": { + "name": "Restreint avec Accès Autorisé", + "icon": "Icône de Restreint avec accès" + }, + "embargoed": { + "name": "Sous Embargo" + }, + "public": { + "name": "Public", + "icon": "Icône de Fichier Public" + } + }, + "metadata": { + "title": "Métadonnées du Fichier", + "fields": { + "preview": "Aperçu", + "labels": "Étiquettes de Fichier", + "persistentId": "ID Persistant du Fichier", + "downloadUrl": { + "title": "URL de Téléchargement", + "description": "Utilisez l'URL de téléchargement dans une commande Wget ou un gestionnaire de téléchargement pour éviter les téléchargements interrompus, les délais d'expiration ou d'autres échecs. <1>Guide de l'utilisateur - Téléchargement via URL" + }, + "unf": "UNF du Fichier", + "depositDate": "Date de Dépôt", + "metadataReleaseDate": "Date de Publication des Métadonnées", + "publicationDate": "Date de Publication", + "embargoReason": "Raison de l'Embargo", + "size": "Taille", + "type": "Type", + "variables": "Variables", + "observations": "Observations", + "directory": "Chemin du Fichier", + "description": "Description" + } + }, + "actionButtons": { + "title": "Boutons d'Action pour Fichier" + } +} \ No newline at end of file diff --git a/public/locales/fr/files.json b/public/locales/fr/files.json new file mode 100644 index 000000000..3d9f4f065 --- /dev/null +++ b/public/locales/fr/files.json @@ -0,0 +1,148 @@ +{ + "filesLoading": "Symbole de chargement des fichiers", + "table": { + "rowSelection": { + "filesSelected_one": "{{count}} fichier est actuellement sélectionné.", + "filesSelected_other": "{{count}} fichiers sont actuellement sélectionnés.", + "selectAll": "Sélectionner tous les {{count}} fichiers dans ce dataset.", + "clearSelection": "Effacer la sélection." + }, + "zipDownloadExceedsLimit": "La taille totale des fichiers sélectionnés ({{selectionTotalSize}}) pour le téléchargement dépasse la limite de zip de {{zipDownloadSizeLimit}}. Veuillez désélectionner certains fichiers pour continuer.", + "tabularData": { + "name": "Données Tabulaires", + "variables": "Variables", + "observations": "Observations" + }, + "embargoDate": { + "embargoedWillBeUntil": "Brouillon: sera sous embargo jusqu'à", + "embargoedUntil": "Sous embargo jusqu'à", + "embargoedWasThrough": "Était sous embargo jusqu'à" + }, + "downloads": "Téléchargements", + "date": { + "metadataReleased": "Métadonnées publiées", + "published": "Publié", + "deposited": "Déposé" + }, + "copyToClipboard": { + "clickToCopy": "Cliquez pour copier", + "correctlyCopiedIcon": "Icône copiée correctement dans le presse-papiers", + "copyToClipboardIcon": "Icône copier dans le presse-papiers" + }, + "noFiles": "Il n'y a pas de fichiers dans ce dataset." + }, + "criteria": { + "sortBy": { + "title": "Trier", + "icon": "Icône Trier par", + "options": { + "name_az": "Nom (A-Z)", + "name_za": "Nom (Z-A)", + "oldest": "Le plus ancien", + "newest": "Le plus récent", + "size": "Taille", + "type": "Type" + } + }, + "filters": { + "title": "Filtrer par" + }, + "filterByType": { + "title": "Type de Fichier" + }, + "filterByTag": { + "title": "Étiquettes de Fichier" + }, + "filterByAccess": { + "title": "Accès", + "options": { + "all": "Tous", + "public": "Public", + "restricted": "Restreint", + "embargoed_public": "Embargo puis Public", + "embargoed_restricted": "Embargo puis Restreint" + } + }, + "searchText": { + "placeholder": "Rechercher dans ce dataset...", + "label": "Rechercher", + "submit": "Soumettre la recherche" + } + }, + "actions": { + "title": "Actions sur les Fichiers", + "buttons": "Boutons d'action pour les fichiers", + "optionsMenu": { + "title": "Options de Fichier", + "headers": { + "editOptions": "Options d'édition" + } + }, + "alreadyDeletedAlert": { + "title": "Modifier le Fichier", + "message": "Ce fichier a déjà été supprimé (ou remplacé) dans la version actuelle. Il n'est pas possible de le modifier.", + "close": "Fermer" + }, + "noSelectedFilesAlert": { + "title": "Sélectionner des Fichier(s)", + "message": "Veuillez sélectionner un ou plusieurs fichiers.", + "close": "Fermer" + }, + "accessFileMenu": { + "title": "Accéder au Fichier", + "headers": { + "fileAccess": "Accès au Fichier" + }, + "downloadOptions": { + "title": "Options de Téléchargement", + "options": { + "original": "Format de Fichier Original", + "RData": "Données R", + "tabular": "Délimité par des Tabulations" + } + } + }, + "editFilesMenu": { + "title": "Modifier les Fichiers", + "options": { + "metadata": "Métadonnées", + "unrestrict": "Déréstringer", + "restrict": "Restreindre", + "replace": "Remplacer", + "embargo": "Embargo", + "provenance": "Provenance", + "delete": "Supprimer" + } + }, + "downloadFiles": { + "title": "Télécharger", + "options": { + "original": "Format Original", + "archival": "Format Archival (.tab)" + } + } + }, + "requestAccess": { + "title": "Demander l'Accès", + "askToAcceptTerms": "Veuillez confirmer et/ou compléter les informations nécessaires ci-dessous afin de demander l'accès aux fichiers dans ce dataset", + "terms": "Conditions d'Accès pour les Fichiers Restreints", + "confirmation": "Accepter", + "cancel": "Annuler", + "close": "Fermer", + "embargoed": "Les fichiers ne sont pas disponibles pendant l'embargo spécifié", + "embargoedThenRestricted": "Les fichiers ne sont pas disponibles pendant l'embargo spécifié et seront restreints par la suite", + "requestNotAllowed": "Les utilisateurs ne peuvent pas demander l'accès aux fichiers", + "accessRequested": "Accès Demandé" + }, + "ingest": { + "inProgress": "Ingestion en cours...", + "error": { + "info": "Fichier disponible uniquement au format original", + "tabularIngest": "Ingestion de Données Tabulaires", + "tabularIngestGuide": "Guide de l'Utilisateur Dataverse - Fichiers de Données Tabulaires", + "reportMessage": "n'a pas réussi. {{reportMessage}}", + "reportMessageDefault": "n'a pas réussi. L'ingestion a échoué. Aucune information supplémentaire n'est disponible." + } + } + } + \ No newline at end of file diff --git a/public/locales/fr/footer.json b/public/locales/fr/footer.json new file mode 100644 index 000000000..ebe6ef38c --- /dev/null +++ b/public/locales/fr/footer.json @@ -0,0 +1,6 @@ +{ + "copyright": "Copyright © 2023, Le Président et les Fellows du Collège Harvard | ", + "privacyPolicy": "Politique de Confidentialité", + "poweredBy": "Propulsé par" + } + \ No newline at end of file diff --git a/public/locales/fr/geospatial.json b/public/locales/fr/geospatial.json new file mode 100644 index 000000000..8e8215e4c --- /dev/null +++ b/public/locales/fr/geospatial.json @@ -0,0 +1,52 @@ +{ + "geospatial": { + "name": "Métadonnées Géospatiales", + "datasetField": { + "geographicCoverage": { + "name": "Couverture Géographique", + "description": "Informations sur la couverture géographique des données. Comprend l'étendue géographique totale des données." + }, + "country": { + "name": "Pays / Nation", + "description": "Le pays ou la nation que le Dataset concerne." + }, + "state": { + "name": "État / Province", + "description": "L'état ou la province que le Dataset concerne. Utilisez GeoNames pour une orthographe correcte et évitez les abréviations." + }, + "city": { + "name": "Ville", + "description": "Le nom de la ville que le Dataset concerne. Utilisez GeoNames pour une orthographe correcte et évitez les abréviations." + }, + "otherGeographicCoverage": { + "name": "Autre", + "description": "Autres informations sur la couverture géographique des données." + }, + "geographicUnit": { + "name": "Unité Géographique", + "description": "Niveau le plus bas d'agrégation géographique couvert par le Dataset, par exemple, village, comté, région." + }, + "geographicBoundingBox": { + "name": "Cadre Géographique", + "description": "La description géométrique fondamentale pour tout Dataset modélisant la géographie est le cadre géographique. Il décrit la boîte minimale, définie par les longitudes ouest et est et les latitudes nord et sud, qui inclut l'étendue géographique maximale de la couverture géographique du Dataset. Cet élément est utilisé dans la première étape d'une recherche basée sur les coordonnées. L'inclusion de cet élément dans le codebook est recommandée, mais est requise si la boîte polygonale de délimitation est incluse." + }, + "westLongitude": { + "name": "Longitude Ouest", + "description": "Coordonnée la plus à l'ouest délimitant l'étendue géographique du Dataset. Une plage de valeurs valides, exprimée en degrés décimaux, est -180,0 <= Valeur de la Longitude Ouest <= 180,0." + }, + "eastLongitude": { + "name": "Longitude Est", + "description": "Coordonnée la plus à l'est délimitant l'étendue géographique du Dataset. Une plage de valeurs valides, exprimée en degrés décimaux, est -180,0 <= Valeur de la Longitude Est <= 180,0." + }, + "northLongitude": { + "name": "Latitude Nord", + "description": "Coordonnée la plus au nord délimitant l'étendue géographique du Dataset. Une plage de valeurs valides, exprimée en degrés décimaux, est -90,0 <= Valeur de la Latitude Nord <= 90,0." + }, + "southLongitude": { + "name": "Latitude Sud", + "description": "Coordonnée la plus au sud délimitant l'étendue géographique du Dataset. Une plage de valeurs valides, exprimée en degrés décimaux, est -90,0 <= Valeur de la Latitude Sud <= 90,0." + } + } + } + } + \ No newline at end of file diff --git a/public/locales/fr/header.json b/public/locales/fr/header.json new file mode 100644 index 000000000..b6e7aacae --- /dev/null +++ b/public/locales/fr/header.json @@ -0,0 +1,12 @@ +{ + "signUp": "Inscription", + "logIn": "Connexion", + "logOut": "Déconnexion", + "brandTitle": "Dataverse", + "brandLogoImage": "Logo de la marque Dataverse", + "navigation": { + "addData": "Ajouter des Données", + "newCollection": "Nouvelle Collection", + "newDataset": "Nouveau Dataset" + } +} \ No newline at end of file diff --git a/public/locales/fr/journal.json b/public/locales/fr/journal.json new file mode 100644 index 000000000..cb993d33f --- /dev/null +++ b/public/locales/fr/journal.json @@ -0,0 +1,27 @@ +{ + "journal": { + "name": "Métadonnées du Journal", + "datasetField": { + "journalVolumeIssue": { + "name": "Journal", + "description": "Indique le volume, le numéro et la date d'un journal avec lequel ce Dataset est associé." + }, + "journalVolume": { + "name": "Volume", + "description": "Le volume du journal auquel ce Dataset est associé (par exemple, Volume 4)." + }, + "journalIssue": { + "name": "Numéro", + "description": "Le numéro du journal auquel ce Dataset est associé (par exemple, Numéro 2, Automne)." + }, + "journalPubDate": { + "name": "Date de Publication", + "description": "La date de publication de ce volume/numéro de journal, avec lequel ce Dataset est associé (par exemple, 1999)." + }, + "journalArticleType": { + "name": "Type d'Article", + "description": "Indique le type d'article, par exemple un article de recherche, un commentaire, une revue de livre ou de produit, un rapport de cas, un calendrier, etc. (basé sur JATS)." + } + } + } +} \ No newline at end of file diff --git a/public/locales/fr/pageNotFound.json b/public/locales/fr/pageNotFound.json new file mode 100644 index 000000000..0834ca4d3 --- /dev/null +++ b/public/locales/fr/pageNotFound.json @@ -0,0 +1,5 @@ +{ + "heading": "Page Non Trouvée", + "message": "La page que vous recherchez n'a pas été trouvée." + } + \ No newline at end of file diff --git a/public/locales/fr/pageNumberNotFound.json b/public/locales/fr/pageNumberNotFound.json new file mode 100644 index 000000000..f131d39a4 --- /dev/null +++ b/public/locales/fr/pageNumberNotFound.json @@ -0,0 +1,5 @@ +{ + "heading": "Numéro de Page Non Trouvé", + "message": "Le numéro de page que vous avez demandé n'existe pas. Veuillez essayer un autre numéro de page." + } + \ No newline at end of file diff --git a/public/locales/fr/pagination.json b/public/locales/fr/pagination.json new file mode 100644 index 000000000..763fbedaa --- /dev/null +++ b/public/locales/fr/pagination.json @@ -0,0 +1,11 @@ +{ + "results_one": "1 {{item}}", + "results_other": "{{start}} à {{end}} sur {{count}} {{item}}s", + "accumulated": { + "one": "{{count}} {{item}}", + "lessThanPageSize": "{{count}} {{item}}s", + "moreThanPageSize": "{{accumulated}} sur {{count}} {{item}}s vus" + }, + "pageSize": "{{item}}s par page" + } + \ No newline at end of file diff --git a/public/locales/fr/socialscience.json b/public/locales/fr/socialscience.json new file mode 100644 index 000000000..3ba58f147 --- /dev/null +++ b/public/locales/fr/socialscience.json @@ -0,0 +1,111 @@ +{ + "socialscience": { + "name": "Métadonnées en Sciences Sociales et Humanités", + "datasetField": { + "unitOfAnalysis": { + "name": "Unité d'Analyse", + "description": "Unité de base d'analyse ou d'observation que ce Dataset décrit, telle que les individus, les familles/ménages, les groupes, les institutions/organisations, les unités administratives, et plus encore. Pour des informations sur le vocabulaire contrôlé du DDI pour cet élément, veuillez consulter la page web DDI à http://www.ddialliance.org/controlled-vocabularies." + }, + "universe": { + "name": "Univers", + "description": "Description de la population couverte par les données dans le fichier; le groupe de personnes ou d'autres éléments qui sont l'objet de l'étude et auxquels les résultats de l'étude se réfèrent. L'âge, la nationalité et la résidence aident couramment à délimiter un univers donné, mais de nombreux autres facteurs peuvent être utilisés, tels que les limites d'âge, le sexe, l'état civil, la race, le groupe ethnique, la nationalité, le revenu, le statut de vétéran, les condamnations pénales, et plus encore. L'univers peut être composé d'éléments autres que des personnes, tels que des unités de logement, des cas judiciaires, des décès, des pays, etc. En général, il devrait être possible de dire à partir de la description de l'univers si un individu donné ou un élément est membre de la population à l'étude. Connu également sous le nom d'univers d'intérêt, population d'intérêt et population cible." + }, + "timeMethod": { + "name": "Méthode Temporelle", + "description": "La méthode temporelle ou la dimension temporelle de la collecte des données, telle que panel, transversale, tendance, série temporelle, ou autre." + }, + "dataCollector": { + "name": "Collecteur de Données", + "description": "Individu, agence ou organisation responsable de l'administration du questionnaire ou de l'entretien ou de la compilation des données." + }, + "collectorTraining": { + "name": "Formation du Collecteur", + "description": "Type de formation fournie au collecteur de données" + }, + "frequencyOfDataCollection": { + "name": "Fréquence", + "description": "Si les données collectées incluent plus d'un point dans le temps, indiquez la fréquence à laquelle les données ont été collectées; c'est-à-dire, mensuellement, trimestriellement, ou autre." + }, + "samplingProcedure": { + "name": "Procédure d'Échantillonnage", + "description": "Type d'échantillon et conception de l'échantillon utilisés pour sélectionner les répondants de l'enquête pour représenter la population. Peut inclure une référence à la taille de l'échantillon cible et à la fraction d'échantillonnage." + }, + "targetSampleSize": { + "name": "Taille de l'Échantillon Cible", + "description": "Informations spécifiques concernant la taille de l'échantillon cible, la taille de l'échantillon réelle et la formule utilisée pour déterminer cela." + }, + "targetSampleActualSize": { + "name": "Réel", + "description": "Taille de l'échantillon réelle." + }, + "targetSampleSizeFormula": { + "name": "Formule", + "description": "Formule utilisée pour déterminer la taille de l'échantillon cible." + }, + "deviationsFromSampleDesign": { + "name": "Déviations Majeures de la Conception de l'Échantillon", + "description": "Montrez la correspondance ainsi que les écarts entre les unités échantillonnées (obtenues) et les statistiques disponibles pour la population (âge, rapport de sexe, état civil, etc.) dans son ensemble." + }, + "collectionMode": { + "name": "Mode de Collecte", + "description": "Méthode utilisée pour collecter les données; caractéristiques de l'instrumentation (par exemple, entretien téléphonique, questionnaire par courrier, ou autre)." + }, + "researchInstrument": { + "name": "Type d'Instrument de Recherche", + "description": "Type d'instrument de collecte de données utilisé. Structuré indique un instrument dans lequel toutes les personnes interrogées répondent aux mêmes questions/tests, éventuellement avec des réponses pré-codées. Si une petite partie de ce questionnaire comprend des questions ouvertes, fournissez les commentaires appropriés. Semi-structuré indique que l'instrument de recherche contient principalement des questions ouvertes. Non structuré indique que des entretiens approfondis ont été menés." + }, + "dataCollectionSituation": { + "name": "Caractéristiques de la Situation de Collecte de Données", + "description": "Description des aspects notables de la situation de collecte des données. Comprend des informations sur des facteurs tels que la coopération des répondants, la durée des entretiens, le nombre de rappels, ou similaire." + }, + "actionsToMinimizeLoss": { + "name": "Actions pour Minimiser les Pertes", + "description": "Résumé des actions entreprises pour minimiser la perte de données. Inclure des informations sur des actions telles que les visites de suivi, les vérifications de supervision, l'appariement historique, l'estimation, et ainsi de suite." + }, + "controlOperations": { + "name": "Opérations de Contrôle", + "description": "Méthodes pour faciliter le contrôle des données effectué par l'investigateur principal ou par l'archive de données." + }, + "weighting": { + "name": "Pondération", + "description": "L'utilisation de procédures d'échantillonnage peut rendre nécessaire l'application de poids pour produire des résultats statistiques précis. Décrit les critères d'utilisation des poids dans l'analyse d'une collection. Si une formule ou un coefficient de pondération a été développé, la formule est fournie, ses éléments sont définis, et il est indiqué comment la formule a été appliquée aux données." + }, + "cleaningOperations": { + "name": "Opérations de Nettoyage", + "description": "Méthodes utilisées pour nettoyer la collection de données, telles que la vérification de la cohérence, la vérification des codes aberrants, ou autre." + }, + "datasetLevelErrorNotes": { + "name": "Notes d'Erreur au Niveau de l'Étude", + "description": "Élément de note utilisé pour toute information annotant ou clarifiant la méthodologie et le traitement de l'étude. " + }, + "responseRate": { + "name": "Taux de Réponse", + "description": "Pourcentage des membres de l'échantillon qui ont fourni des informations." + }, + "samplingErrorEstimates": { + "name": "Estimations de l'Erreur d'Échantillonnage", + "description": "Mesure de la précision avec laquelle on peut estimer une valeur de population à partir d'un échantillon donné." + }, + "otherDataAppraisal": { + "name": "Autres Formes d'Évaluation des Données", + "description": "Autres questions relatives à l'évaluation des données. Décrire des questions telles que la variance de réponse, le taux de non-réponse et les tests de biais, les biais d'intervieweur et de réponse, les niveaux de confiance, le biais de question, ou similaire." + }, + "socialScienceNotes": { + "name": "Notes", + "description": "Notes générales sur ce Dataset." + }, + "socialScienceNotesType": { + "name": "Type", + "description": "Type de note." + }, + "socialScienceNotesSubject": { + "name": "Sujet", + "description": "Sujet de la note." + }, + "socialScienceNotesText": { + "name": "Texte", + "description": "Texte de cette note." + } + } + } +} \ No newline at end of file diff --git a/src/App.tsx b/src/App.tsx index 485ef0210..db404e97b 100644 --- a/src/App.tsx +++ b/src/App.tsx @@ -4,6 +4,8 @@ import { SessionProvider } from './sections/session/SessionProvider' import { UserJSDataverseRepository } from './users/infrastructure/repositories/UserJSDataverseRepository' import { DataverseApiAuthMechanism } from '@iqss/dataverse-client-javascript/dist/core/infra/repositories/ApiConfig' import { BASE_URL } from './config' +import { LanguageProvider } from './shared/LanguageContext'; +import './assets/styles/global.scss'; if (BASE_URL === '') { throw Error('VITE_DATAVERSE_BACKEND_URL environment variable should be specified.') @@ -14,9 +16,11 @@ if (BASE_URL === '') { const userRepository = new UserJSDataverseRepository() function App() { return ( - - - + + + + + ) } diff --git a/src/assets/styles/global.scss b/src/assets/styles/global.scss new file mode 100644 index 000000000..375df18b9 --- /dev/null +++ b/src/assets/styles/global.scss @@ -0,0 +1,17 @@ +// src/assets/styles/global.scss +body { + direction: ltr; +} + +body.rtl { + direction: rtl; +} + +.container { + // display: flex; + flex-direction: row; +} + +body.rtl .container { + flex-direction: row-reverse; +} \ No newline at end of file diff --git a/src/i18n.ts b/src/i18n.ts index 7f62965e6..915626ced 100644 --- a/src/i18n.ts +++ b/src/i18n.ts @@ -1,29 +1,59 @@ -import i18next from 'i18next' -import { initReactI18next } from 'react-i18next' -import I18nextBrowserLanguageDetector from 'i18next-browser-languagedetector' -import I18NextHttpBackend from 'i18next-http-backend' +import i18next from 'i18next'; +import { initReactI18next } from 'react-i18next'; +import I18nextBrowserLanguageDetector from 'i18next-browser-languagedetector'; +import I18NextHttpBackend from 'i18next-http-backend'; declare module 'i18next' { interface CustomTypeOptions { - returnNull: false + returnNull: false; } } +// List of all namespaces corresponding to your translation files +const namespaces = [ + 'astrophysics', + 'biomedical', + 'citation', + 'citationBlock', + 'codeMeta20', + 'collection', + 'computationalworkflow', + 'createDataset', + 'dataset', + 'file', + 'files', + 'footer', + 'geospatial', + 'header', + 'journal', + 'pageNotFound', + 'pageNumberNotFound', + 'pagination', + 'socialscience' +]; + void i18next .use(initReactI18next) .use(I18nextBrowserLanguageDetector) .use(I18NextHttpBackend) .init({ fallbackLng: 'en', - supportedLngs: ['en'], - ns: [], + supportedLngs: ['en', 'fr', 'ar'], + ns: namespaces, + // defaultNS: 'common', // Optional: Set a default namespace if needed returnNull: false, backend: { loadPath: - import.meta.env.BASE_URL != '/spa' + import.meta.env.BASE_URL !== '/spa' ? `${import.meta.env.BASE_URL}locales/{{lng}}/{{ns}}.json` - : `/spa/locales/{{lng}}/{{ns}}.json` - } - }) + : `/spa/locales/{{lng}}/{{ns}}.json`, + }, + react: { + useSuspense: false, + }, + interpolation: { + escapeValue: false, + }, + }); -export default i18next +export default i18next; diff --git a/src/sections/layout/header/Header.tsx b/src/sections/layout/header/Header.tsx index b05a08c1b..19eaeadb1 100644 --- a/src/sections/layout/header/Header.tsx +++ b/src/sections/layout/header/Header.tsx @@ -5,8 +5,10 @@ import { Route } from '../../Route.enum' import { useSession } from '../../session/SessionContext' import { useNavigate } from 'react-router-dom' import { BASE_URL } from '../../../config' +import LanguageSwitcher from './language-switcher/LanguageSwitcher' // Import the LanguageSwitcher component const currentPage = 0 + export function Header() { const { t } = useTranslation('header') const { user, logout } = useSession() @@ -47,6 +49,7 @@ export function Header() { {t('signUp')} )} + ) } diff --git a/src/sections/layout/header/language-switcher/LanguageSwitcher.tsx b/src/sections/layout/header/language-switcher/LanguageSwitcher.tsx new file mode 100644 index 000000000..5b4f4de7c --- /dev/null +++ b/src/sections/layout/header/language-switcher/LanguageSwitcher.tsx @@ -0,0 +1,45 @@ +// LanguageSwitcher.tsx +import React from 'react'; +import { useTranslation } from 'react-i18next'; +import { Navbar } from '@iqss/dataverse-design-system'; +import { useContext } from 'react'; +import { LanguageContext } from '../../../../shared/LanguageContext'; + +const LanguageSwitcher = () => { + const { i18n } = useTranslation(); + const { setLanguage } = useContext(LanguageContext); + + const changeLanguage = (lng: string) => { + i18n.changeLanguage(lng); + setLanguage(lng); + }; + + const getLanguageName = (lng: string) => { + switch (lng) { + case 'en': + return 'English'; + case 'fr': + return 'Français'; + case 'ar': + return 'العربية'; + default: + return 'English'; + } + }; + + return ( + + changeLanguage('en')}> + English + + changeLanguage('fr')}> + Français + + changeLanguage('ar')}> + العربية + + + ); +}; + +export default LanguageSwitcher; diff --git a/src/shared/LanguageContext.tsx b/src/shared/LanguageContext.tsx new file mode 100644 index 000000000..a898f9dda --- /dev/null +++ b/src/shared/LanguageContext.tsx @@ -0,0 +1,32 @@ +// src/shared/LanguageContext.tsx +import React, { createContext, useState, ReactNode, useEffect } from 'react'; +import i18n from '../i18n'; + +interface LanguageContextProps { + language: string; + setLanguage: (language: string) => void; +} + +export const LanguageContext = createContext({ + language: 'en', + setLanguage: () => {}, +}); + +export const LanguageProvider = ({ children }: { children: ReactNode }) => { + const [language, setLanguage] = useState('en'); + + useEffect(() => { + if (language === 'ar') { + document.body.classList.add('rtl'); + } else { + document.body.classList.remove('rtl'); + } + i18n.changeLanguage(language); + }, [language]); + + return ( + + {children} + + ); +};