From cce2a06efb9067ef8641de28274fb25c4db79e9c Mon Sep 17 00:00:00 2001 From: "translatewiki.net" Date: Mon, 4 Nov 2024 13:06:07 +0100 Subject: [PATCH 1/2] Localisation updates from https://translatewiki.net. --- locales/fa.json | 187 +++++++++++++++++++++++---------------------- locales/fr.json | 103 +++++++++++++++++++++++++ locales/ko.json | 81 ++++++++++++++++++++ locales/lb.json | 74 ++++++++++++++++++ locales/mk.json | 70 +++++++++++++++++ locales/qqq.json | 193 ++++++++++++++++++++++++----------------------- 6 files changed, 521 insertions(+), 187 deletions(-) create mode 100644 locales/fr.json create mode 100644 locales/ko.json create mode 100644 locales/lb.json create mode 100644 locales/mk.json diff --git a/locales/fa.json b/locales/fa.json index d4ad2b4..09b5935 100644 --- a/locales/fa.json +++ b/locales/fa.json @@ -1,94 +1,97 @@ { - "faq": { - "whatIsZim": "فایل ZIM چیست؟", - "whatIsZimDescParagraph": "فرمت فایل ZIM محتوای وب‌سایت را برای استفاده {0} ذخیره می‌کند. این فرمت اجزای اصلی یک وب‌سایت را در یک آرشیو واحد جمع‌آوری و فشرده می‌کند تا ذخیره، اشتراک‌گذاری و نگهداری آن آسان‌تر شود.", - "whatIsZimDescLinkContent0": "آفلاین", - "howToRead": "چگونه می‌توانم فایل‌های ZIM خود را بخوانم؟", - "howToReadDescParagraph": "شما به یک برنامه خواندن فایل ZIM نیاز دارید. این معمولاً به معنای {0} است که در {1} موجود است.", - "howToReadDescLinkContent0": "Kiwix", - "howToReadDescLinkContent1": "رایانه‌های دسکتاپ، دستگاه‌های موبایل و موارد دیگر", - "missingContent": "فایل ZIM ناقص است یا از نسخه اصلی وب‌سایت کوچکتر است", - "missingContentDesc": "به دلیل ماهیت این ابزار، ما نمی‌توانیم درخواست‌های نامحدود به هر وب‌سایتی را باز بگذاریم. این ممکن است به زیرساخت ما و همچنین به وب‌سایت‌های هدف آسیب برساند. در حال حاضر ما دو محدودیت اعمال می‌کنیم: {human_size_limit} گیگابایت اندازه فایل و {human_time_limit}.", - "gotError": "پیغام خطا (بدون ZIM) دریافت کردم یا نتوانستم فایل ZIM را بخوانم", - "gotErrorDescParagraph": "آدرس URL وارد شده را سه بار بررسی کنید و اگر هنوز کار نمی‌کند، یک گزارش خطا در {0} باز کنید. وب‌سایت هدف، شماره درخواست (که در ایمیلی که دریافت کردید موجود است)، و دستگاهی که برای باز کردن فایل ZIM استفاده کردید را اعلام کنید.", - "gotErrorDescLinkContent0": "گیت‌هاب" - }, - "units": { - "timeLimit": { - "singular": "ساعت", - "plural": "ساعت‌ها" - } - }, - "footer": { - "poweredByThankTo": "با قدرت {0} و {1}، با تشکر از جایزه {2} ❤️", - "link0": "Kiwix", - "link1": "Webrecorder", - "link2": "حمایت از متن باز Mozilla" - }, - "newRequest": { - "headingParagraph": "نسخه آفلاین یک وب‌سایت می‌خواهید؟ فقط {0}!", - "headingBold": "ZIM کن", - "urlLabel": "آدرس کامل وب‌سایت برای تبدیل", - "emailLabel": "ایمیل شما برای دریافت لینک دانلود. آدرس ذخیره نمی‌شود", - "submit": "بیایید ZIM کنیم!", - "advancedOptions": "گزینه‌های پیشرفته", - "fetchingDefinition": "در حال بارگذاری تعریف آفلاینر…", - "errorFetchingDefinition": "خطا در بارگذاری تعریف آفلاینر", - "creatingRequest": "در حال ایجاد درخواست…", - "errorCreatingRequest": "خطا در ایجاد درخواست", - "offlinerNotFound": "آفلاینر Zimit پیدا نشد، احتمالاً مشکل جدی در زیرساخت ما وجود دارد." - }, - "notFound": { - "heading": "یافت نشد", - "description": "چیزی در اینجا نیست، احتمالاً URL شما نادرست است. شاید بخواهید برگردید." - }, - "requestStatus": { - "progressMessage": "{task_progression_percent}% ({task_progression_status_code})", - "refreshing": "در حال تازه‌سازی وضعیت کار…", - "errorRefreshing": "خطا در تازه‌سازی وضعیت کار", - "refreshAuto": "این صفحه به صورت خودکار هر {refresh_interval} ثانیه تازه‌سازی می‌شود، نیازی به تازه‌سازی دستی نیست.", - "zimingOf": "در حال Ziming از ", - "requestingSlot": "در حال درخواست جایگاه", - "requestRecorded": "درخواست شما ثبت شده و در انتظار جایگاهی برای اجرا بر روی زیرساخت ما است. ما سعی داریم تمام درخواست‌ها را در کمتر از ۲۴ ساعت تکمیل کنیم، اما زیرساخت ما در این سرویس رایگان محدود است و گاهی با هجوم علاقه کاربران روبرو می‌شویم که ممکن است شروع درخواست‌ها را به چند روز به تأخیر بیندازد. لطفاً صبور باشید!", - "requestFailed": "درخواست شما با شکست مواجه شد! ما بابت این موضوع عذرخواهی می‌کنیم.", - "failureReasons": "چندین دلیل می‌تواند منجر به شکست Ziming شود. اغلب این به دلیل URL نامناسب است… لطفاً آن را سه بار بررسی کنید و درخواست جدیدی ایجاد کنید. اگر این مشکل برطرف نشد، {0}.", - "failureReasonsLinkContent0": "گزارش خطا در گیت‌هاب باز کنید", - "successMessage": "موفقیت!", - "successMessageExplanation": "لینک زیر پس از یک هفته منقضی می‌شود و فایل حذف خواهد شد.", - "successMessageButton": "دانلود", - "limitHit": "توجه، توجه داشته باشید که بایگانی شما ناقص است، شما به حداکثر اندازه فایل ({human_size_limit} گیگابایت) یا مدت زمان ({human_time_limit}) مجاز برای کراول رایگان رسیده‌اید. {contact_us_link} برای خرید فضای سرور اضافی برای وظایف شما.", - "limitHitContactUsLink": "با ما تماس بگیرید", - "beingProcessedMessage": "درخواست شما در حال پردازش است", - "beingProcessedExplanation": "سیستم ما در حال حاضر URL ارائه شده را به یک فایل ZIM تبدیل می‌کند. بسته به تعداد صفحات این وب‌سایت، ممکن است چند دقیقه یا چند ساعت طول بکشد.", - "bookmarkUrl": "می‌توانید URL صفحه مرورگر فعلی را بوکمارک کنید تا بعداً به این کار بازگردید.", - "emailNotification": "ایمیلی با URL فعلی دریافت کرده‌اید و همچنین پس از تکمیل وظیفه، یک اعلان ایمیلی دریافت خواهید کرد، بنابراین می‌توانید با خیال راحت این پنجره را ببندید.", - "noEmailNotification": "بدون این بوکمارک این پنجره را نبندید وگرنه نمی‌توانید ZIM خود را دانلود کنید زیرا ایمیل وارد نکرده‌اید.", - "settingsHeading": "تنظیمات", - "taskNotFound": "کار پیدا نشد. یا URL شما نادرست است یا سرویس ما مشکلی دارد." - }, - "email": { - "requested": { - "subject": "درخواست وظیفه Youzim.it %{taskId} ثبت شد", - "title": "ZIM درخواست شد!", - "zimRequestRecorded": "درخواست ZIM شما برای %{link} ثبت شده است.", - "howToFollowProgress": "می‌توانید وضعیت این درخواست را در %{link} دنبال کنید.", - "emailWillBeSent": "هنگامی که فایل ZIM شما آماده دانلود شد، ایمیل دیگری برایتان ارسال خواهد شد." - }, - "succeeded": { - "subject": "وظیفه Youzim.it %{taskId} موفق شد", - "title": "ZIM آماده است!", - "zimRequestCompleted": "درخواست ZIM شما برای %{link} تکمیل شد.", - "hereItIs": "اینجاست:", - "incomplete": "متأسفانه ZIM ناقص است زیرا شما به محدودیت‌ها (%{sizeLimit} یا %{timeLimit}) مجاز برای کراول رایگان رسیده‌اید. %{contactUsLink} برای کمک به خرید فضای سرور اضافی برای شما.", - "contactUsLinkContent": "با ما تماس بگیرید" - }, - "failed": { - "subject": "وظیفه Youzim.it %{taskId} شکست خورد", - "title": "درخواست ZIM شما با شکست مواجه شد!", - "weAreSorry": "ما واقعاً متأسفیم.", - "checkAndRetry": "این ممکن است به دلیل خطایی در URL وارد شده شما (%{configUrlLink}) یا تنظیمات اضافی ناقص یا خراب باشد. لطفاً دوباره بررسی کنید و %{retryLink}.", - "retryLinkContent": "دوباره امتحان کنید", - "howToCheckSettings": "می‌توانید تنظیماتی که استفاده کرده‌اید را در %{taskLink} بررسی کنید." - } - } + "@metadata": { + "authors": [] + }, + "faq": { + "whatIsZim": "فایل ZIM چیست؟", + "whatIsZimDescParagraph": "فرمت فایل ZIM محتوای وب‌سایت را برای استفاده {0} ذخیره می‌کند. این فرمت اجزای اصلی یک وب‌سایت را در یک آرشیو واحد جمع‌آوری و فشرده می‌کند تا ذخیره، اشتراک‌گذاری و نگهداری آن آسان‌تر شود.", + "whatIsZimDescLinkContent0": "آفلاین", + "howToRead": "چگونه می‌توانم فایل‌های ZIM خود را بخوانم؟", + "howToReadDescParagraph": "شما به یک برنامه خواندن فایل ZIM نیاز دارید. این معمولاً به معنای {0} است که در {1} موجود است.", + "howToReadDescLinkContent0": "Kiwix", + "howToReadDescLinkContent1": "رایانه‌های دسکتاپ، دستگاه‌های موبایل و موارد دیگر", + "missingContent": "فایل ZIM ناقص است یا از نسخه اصلی وب‌سایت کوچکتر است", + "missingContentDesc": "به دلیل ماهیت این ابزار، ما نمی‌توانیم درخواست‌های نامحدود به هر وب‌سایتی را باز بگذاریم. این ممکن است به زیرساخت ما و همچنین به وب‌سایت‌های هدف آسیب برساند. در حال حاضر ما دو محدودیت اعمال می‌کنیم: {human_size_limit} گیگابایت اندازه فایل و {human_time_limit}.", + "gotError": "پیغام خطا (بدون ZIM) دریافت کردم یا نتوانستم فایل ZIM را بخوانم", + "gotErrorDescParagraph": "آدرس URL وارد شده را سه بار بررسی کنید و اگر هنوز کار نمی‌کند، یک گزارش خطا در {0} باز کنید. وب‌سایت هدف، شماره درخواست (که در ایمیلی که دریافت کردید موجود است)، و دستگاهی که برای باز کردن فایل ZIM استفاده کردید را اعلام کنید.", + "gotErrorDescLinkContent0": "گیت‌هاب" + }, + "units": { + "timeLimit": { + "singular": "ساعت", + "plural": "ساعت‌ها" + } + }, + "footer": { + "poweredByThankTo": "با قدرت {0} و {1}، با تشکر از جایزه {2} ❤️", + "link0": "Kiwix", + "link1": "Webrecorder", + "link2": "حمایت از متن باز Mozilla" + }, + "newRequest": { + "headingParagraph": "نسخه آفلاین یک وب‌سایت می‌خواهید؟ فقط {0}!", + "headingBold": "ZIM کن", + "urlLabel": "آدرس کامل وب‌سایت برای تبدیل", + "emailLabel": "ایمیل شما برای دریافت لینک دانلود. آدرس ذخیره نمی‌شود", + "submit": "بیایید ZIM کنیم!", + "advancedOptions": "گزینه‌های پیشرفته", + "fetchingDefinition": "در حال بارگذاری تعریف آفلاینر…", + "errorFetchingDefinition": "خطا در بارگذاری تعریف آفلاینر", + "creatingRequest": "در حال ایجاد درخواست…", + "errorCreatingRequest": "خطا در ایجاد درخواست", + "offlinerNotFound": "آفلاینر Zimit پیدا نشد، احتمالاً مشکل جدی در زیرساخت ما وجود دارد." + }, + "notFound": { + "heading": "یافت نشد", + "description": "چیزی در اینجا نیست، احتمالاً URL شما نادرست است. شاید بخواهید برگردید." + }, + "requestStatus": { + "progressMessage": "{task_progression_percent}% ({task_progression_status_code})", + "refreshing": "در حال تازه‌سازی وضعیت کار…", + "errorRefreshing": "خطا در تازه‌سازی وضعیت کار", + "refreshAuto": "این صفحه به صورت خودکار هر {refresh_interval} ثانیه تازه‌سازی می‌شود، نیازی به تازه‌سازی دستی نیست.", + "zimingOf": "در حال Ziming از", + "requestingSlot": "در حال درخواست جایگاه", + "requestRecorded": "درخواست شما ثبت شده و در انتظار جایگاهی برای اجرا بر روی زیرساخت ما است. ما سعی داریم تمام درخواست‌ها را در کمتر از ۲۴ ساعت تکمیل کنیم، اما زیرساخت ما در این سرویس رایگان محدود است و گاهی با هجوم علاقه کاربران روبرو می‌شویم که ممکن است شروع درخواست‌ها را به چند روز به تأخیر بیندازد. لطفاً صبور باشید!", + "requestFailed": "درخواست شما با شکست مواجه شد! ما بابت این موضوع عذرخواهی می‌کنیم.", + "failureReasons": "چندین دلیل می‌تواند منجر به شکست Ziming شود. اغلب این به دلیل URL نامناسب است… لطفاً آن را سه بار بررسی کنید و درخواست جدیدی ایجاد کنید. اگر این مشکل برطرف نشد، {0}.", + "failureReasonsLinkContent0": "گزارش خطا در گیت‌هاب باز کنید", + "successMessage": "موفقیت!", + "successMessageExplanation": "لینک زیر پس از یک هفته منقضی می‌شود و فایل حذف خواهد شد.", + "successMessageButton": "دانلود", + "limitHit": "توجه، توجه داشته باشید که بایگانی شما ناقص است، شما به حداکثر اندازه فایل ({human_size_limit} گیگابایت) یا مدت زمان ({human_time_limit}) مجاز برای کراول رایگان رسیده‌اید. {contact_us_link} برای خرید فضای سرور اضافی برای وظایف شما.", + "limitHitContactUsLink": "با ما تماس بگیرید", + "beingProcessedMessage": "درخواست شما در حال پردازش است", + "beingProcessedExplanation": "سیستم ما در حال حاضر URL ارائه شده را به یک فایل ZIM تبدیل می‌کند. بسته به تعداد صفحات این وب‌سایت، ممکن است چند دقیقه یا چند ساعت طول بکشد.", + "bookmarkUrl": "می‌توانید URL صفحه مرورگر فعلی را بوکمارک کنید تا بعداً به این کار بازگردید.", + "emailNotification": "ایمیلی با URL فعلی دریافت کرده‌اید و همچنین پس از تکمیل وظیفه، یک اعلان ایمیلی دریافت خواهید کرد، بنابراین می‌توانید با خیال راحت این پنجره را ببندید.", + "noEmailNotification": "بدون این بوکمارک این پنجره را نبندید وگرنه نمی‌توانید ZIM خود را دانلود کنید زیرا ایمیل وارد نکرده‌اید.", + "settingsHeading": "تنظیمات", + "taskNotFound": "کار پیدا نشد. یا URL شما نادرست است یا سرویس ما مشکلی دارد." + }, + "email": { + "requested": { + "subject": "درخواست وظیفه Youzim.it %{taskId} ثبت شد", + "title": "ZIM درخواست شد!", + "zimRequestRecorded": "درخواست ZIM شما برای %{link} ثبت شده است.", + "howToFollowProgress": "می‌توانید وضعیت این درخواست را در %{link} دنبال کنید.", + "emailWillBeSent": "هنگامی که فایل ZIM شما آماده دانلود شد، ایمیل دیگری برایتان ارسال خواهد شد." + }, + "succeeded": { + "subject": "وظیفه Youzim.it %{taskId} موفق شد", + "title": "ZIM آماده است!", + "zimRequestCompleted": "درخواست ZIM شما برای %{link} تکمیل شد.", + "hereItIs": "اینجاست:", + "incomplete": "متأسفانه ZIM ناقص است زیرا شما به محدودیت‌ها (%{sizeLimit} یا %{timeLimit}) مجاز برای کراول رایگان رسیده‌اید. %{contactUsLink} برای کمک به خرید فضای سرور اضافی برای شما.", + "contactUsLinkContent": "با ما تماس بگیرید" + }, + "failed": { + "subject": "وظیفه Youzim.it %{taskId} شکست خورد", + "title": "درخواست ZIM شما با شکست مواجه شد!", + "weAreSorry": "ما واقعاً متأسفیم.", + "checkAndRetry": "این ممکن است به دلیل خطایی در URL وارد شده شما (%{configUrlLink}) یا تنظیمات اضافی ناقص یا خراب باشد. لطفاً دوباره بررسی کنید و %{retryLink}.", + "retryLinkContent": "دوباره امتحان کنید", + "howToCheckSettings": "می‌توانید تنظیماتی که استفاده کرده‌اید را در %{taskLink} بررسی کنید." + } + } } diff --git a/locales/fr.json b/locales/fr.json new file mode 100644 index 0000000..f044da2 --- /dev/null +++ b/locales/fr.json @@ -0,0 +1,103 @@ +{ + "@metadata": { + "authors": [ + "Benoit74", + "Mahabarata" + ] + }, + "faq": { + "whatIsZim": "Qu'est-ce qu'un fichier ZIM ?", + "whatIsZimDescParagraph": "Le format de fichier ZIM stocke le contenu d'un site Web pour une utilisation {0}. Il rassemble les éléments normaux d'un site Web dans une seule archive et la compresse afin de faciliter son enregistrement, son partage et son stockage.", + "whatIsZimDescLinkContent0": "hors ligne", + "howToRead": "Comment lire mes fichiers ZIM ?", + "howToReadDescParagraph": "Vous aurez besoin d'un lecteur de fichiers ZIM. Il s'agit généralement de {0}, qui est disponible sur {1}.", + "howToReadDescLinkContent0": "Kiwix", + "howToReadDescLinkContent1": "ordinateurs de bureau, appareils mobiles et plus encore", + "missingContent": "Le fichier ZIM est incomplet ou plus petit que le site Web d'origine", + "missingContentDesc": "En raison de la nature même de cet outil, nous ne pouvons pas le laisser ouvert à des requêtes illimitées vers n'importe quel site Web. Cela pourrait être préjudiciable à la fois pour notre infrastructure, mais aussi pour les sites Web ciblés. Nous appliquons actuellement deux limites : {human_size_limit} Gio de taille de fichier et {human_time_limit}.", + "gotError": "J'ai reçu un message d'erreur (pas de ZIM) ou je n'ai pas pu lire un fichier ZIM", + "gotErrorDescParagraph": "Vérifiez bien l'URL que vous avez saisie et, si elle ne fonctionne toujours pas, ouvrez un ticket de bogue sur {0}. Indiquez le site Web cible, le numéro de requête (il figure dans l'e-mail que vous avez reçu) et l'appareil sur lequel vous avez essayé d'ouvrir votre fichier ZIM.", + "gotErrorDescLinkContent0": "github" + }, + "units": { + "timeLimit": { + "singular": "heure", + "plural": "heures" + } + }, + "footer": { + "poweredByThankTo": "Propulsé par {0} et {1}, grâce à une dotation {2} ❤️", + "link0": "Kiwix", + "link1": "Webrecorder", + "link2": "Mozilla Open-Source Support" + }, + "header": { + "donate": "Gardez cela gratuit. Faites un don" + }, + "newRequest": { + "headingParagraph": "Vous souhaitez une version hors ligne d'un site Web ? Il vous suffit de {0} !", + "headingBold": "le ZIMer", + "urlLabel": "URL complète du site Web à convertir", + "emailLabel": "Votre e-mail pour recevoir un lien de téléchargement. Adresse non conservée", + "submit": "On le ZIM !", + "advancedOptions": "options avancées", + "fetchingDefinition": "Chargement définition de l'offlineur...", + "errorFetchingDefinition": "Erreur lors de la récupération de la définition de l'offlineur", + "creatingRequest": "Création d'une requête…", + "errorCreatingRequest": "Erreur lors de la création de la requête", + "offlinerNotFound": "Offlineur Zimit offliner non trouvé, nous avons probablement un problème sérieux sur notre infrastructure." + }, + "notFound": { + "heading": "Non trouvé", + "description": "Il n'y a rien ici, votre URL est probablement erronée. Peut-être voudriez-vous revenir en arrière." + }, + "requestStatus": { + "progressMessage": "{task_progression_percent}% ({task_progression_status_code})", + "refreshing": "Actualisation du statut de la tâche…", + "errorRefreshing": "Erreur lors de l'actualisation du statut de la tâche", + "refreshAuto": "Cette page s'actualisera automatiquement toutes les {refresh_interval} secondes, pas besoin de la rafraîchir manuellement.", + "zimingOf": "Ziming de", + "requestingSlot": "Demande d'un emplacement", + "requestRecorded": "Votre demande a été enregistrée et attend un emplacement sur notre infrastructure pour être exécutée. Bien que nous nous efforcions de répondre à toutes les requêtes dans un délai de 24 heures, notre infrastructure sur ce service gratuit est limitée et nous constatons parfois une augmentation de l'intérêt de nombreux utilisateurs, ce qui retarde le début des requêtes de plusieurs jours. Soyez patient !", + "requestFailed": "Votre requête a échoué ! Nous sommes désolés.", + "failureReasons": "Plusieurs raisons peuvent conduire à un échec de création du ZIM. La plupart du temps, il s'agit d'une URL inadéquate… Veuillez la vérifier trois fois et créer une nouvelle requête. Si cela ne fonctionne pas, {0}.", + "failureReasonsLinkContent0": "ouvrir un ticket sur github", + "successMessage": "Succès !", + "successMessageExplanation": "Le lien ci-dessous expirera et le fichier sera supprimé après une semaine.", + "successMessageButton": "Télécharger", + "limitHit": "Attention, notez que votre archive est incomplète, vous avez atteint la taille de fichier maximale ({human_size_limit} GiB) ou la durée ({human_time_limit}) autorisée pour l'utilisation gratuite. {contact_us_link} pour acheter de l'espace serveur supplémentaire pour vos tâches.", + "limitHitContactUsLink": "Nous contacter", + "beingProcessedMessage": "Votre requête est en cours de traitement", + "beingProcessedExplanation": "Notre système convertit actuellement l'URL fournie en un joli fichier ZIM. Selon le nombre de pages de ce site Web, cela peut prendre quelques minutes ou quelques heures.", + "bookmarkUrl": "Vous pouvez ajouter l'URL de la page actuelle du navigateur à vos favoris pour revenir plus tard voir cette tâche.", + "emailNotification": "Vous avez reçu un e-mail avec l'URL actuelle et vous recevrez également une notification par e-mail lorsque la tâche sera terminée, vous pouvez donc fermer cette fenêtre en toute sécurité.", + "noEmailNotification": "Ne fermez pas cette fenêtre sans ce favori ou vous ne pourrez pas télécharger votre ZIM puisque vous n'avez pas fourni d'e-mail.", + "settingsHeading": "Paramètres", + "taskNotFound": "Tâche non trouvée. Soit votre URL est incorrecte, soit notre service rencontre un problème." + }, + "email": { + "requested": { + "subject": "Tâche Youzim.it %{taskId} demandée", + "title": "ZIM demandé !", + "zimRequestRecorded": "Votre demande ZIM de %{link} a été enregistrée.", + "howToFollowProgress": "Vous pouvez suivre l'état de cette demande sur %{link}.", + "emailWillBeSent": "Nous vous enverrons un autre e-mail une fois que votre fichier ZIM sera prêt à être téléchargé." + }, + "succeeded": { + "subject": "Tâche Youzim.it %{taskId} terminée avec succès", + "title": "Votre ZIM est prêt !", + "zimRequestCompleted": "Votre demande ZIM de %{link} a été terminée.", + "hereItIs": "C'est ici:", + "incomplete": "Votre ZIM est malheureusement incomplet car vous avez atteint les limites (%{sizeLimit} ou %{timeLimit}) autorisées pour l'utilisation gratuite. %{contactUsLink} pour nous acheter de l'espace serveur supplémentaire pour vous.", + "contactUsLinkContent": "Nous contacter" + }, + "failed": { + "subject": "Tâche Youzim.it %{taskId} a échoué", + "title": "Votre demande de ZIM a échoué !", + "weAreSorry": "Nous sommes vraiment désolés.", + "checkAndRetry": "Cela peut être dû à une erreur dans l'URL que vous avez saisie (%{configUrlLink}) ou à des paramètres supplémentaires manquants/erronés. Veuillez vérifier et %{retryLink}.", + "retryLinkContent": "essayer à nouveau", + "howToCheckSettings": "Vous pouvez vérifier les paramètres que vous avez utilisés sur %{taskLink}." + } + } +} diff --git a/locales/ko.json b/locales/ko.json new file mode 100644 index 0000000..49aaa02 --- /dev/null +++ b/locales/ko.json @@ -0,0 +1,81 @@ +{ + "@metadata": { + "authors": [ + "Ykhwong" + ] + }, + "faq": { + "whatIsZim": "ZIM 파일은 무엇입니까?", + "whatIsZimDescLinkContent0": "오프라인", + "howToRead": "ZIM 파일을 어떻게 읽습니까?", + "howToReadDescLinkContent0": "키윅스", + "howToReadDescLinkContent1": "데스크톱 컴퓨터, 모바일 기기 등", + "missingContent": "ZIM 파일이 불완전하거나 원본 웹사이트보다 작습니다", + "gotError": "오류 메시지(ZIM 없음)를 받았거나 ZIM 파일을 읽지 못했습니다", + "gotErrorDescLinkContent0": "깃허브" + }, + "units": { + "timeLimit": { + "singular": "시간", + "plural": "시간" + } + }, + "footer": { + "link0": "키윅스", + "link1": "웹레코더", + "link2": "모질라 오픈 소스 지원" + }, + "newRequest": { + "headingParagraph": "웹사이트의 오프라인 버전을 원하십니까? {0}!", + "headingBold": "ZIM 수행", + "urlLabel": "변환할 웹사이트의 전체 URL", + "emailLabel": "다운로드 링크를 받기 위한 이메일입니다. 주소는 보관되지 않습니다", + "submit": "ZIM을 해봅시다!", + "advancedOptions": "고급 옵션", + "fetchingDefinition": "오프라이너 정의를 불러오는 중...", + "errorFetchingDefinition": "오프라이너 정의를 가져오는 중 오류가 발생했습니다", + "creatingRequest": "요청 생성 중…", + "errorCreatingRequest": "요청 생성 중 오류가 발생했습니다" + }, + "notFound": { + "heading": "찾을 수 없음", + "description": "여기에는 아무것도 없습니다. URL이 잘못되었을 수 있습니다. 뒤로 돌아갈 수 있습니다." + }, + "requestStatus": { + "refreshing": "작업 상태를 갱신하는 중…", + "errorRefreshing": "작업 상태를 갱신하는 중 오류가 발생했습니다", + "requestingSlot": "슬롯 요청", + "requestFailed": "요청을 실패했습니다! 죄송합니다.", + "failureReasonsLinkContent0": "깃허브에 티켓 개시", + "successMessage": "성공했습니다!", + "successMessageExplanation": "아래 링크는 만료되며 파일은 일주일 후에 삭제됩니다.", + "successMessageButton": "다운로드", + "limitHitContactUsLink": "문의하기", + "beingProcessedMessage": "요청을 처리 중입니다", + "settingsHeading": "설정", + "taskNotFound": "작업을 찾을 수 없습니다. URL이 잘못되었거나 서비스에 문제가 발생하고 있습니다." + }, + "email": { + "requested": { + "subject": "Youzim.it의 %{taskId} 작업을 요청했습니다", + "title": "ZIM 요청 완료!", + "zimRequestRecorded": "%{link}의 ZIM 요청이 기록되었습니다.", + "howToFollowProgress": "%{link}에서 이 요청의 상태를 확인할 수 있습니다.", + "emailWillBeSent": "ZIM 파일을 다운로드할 준비가 되면 다시 이메일을 보내드리겠습니다." + }, + "succeeded": { + "subject": "Youzim.it의 %{taskId} 작업이 성공했습니다", + "title": "ZIM이 준비되었습니다!", + "zimRequestCompleted": "%{link}의 ZIM 요청이 완료되었습니다.", + "hereItIs": "다음과 같습니다.", + "contactUsLinkContent": "문의하기" + }, + "failed": { + "subject": "Youzim.it의 %{taskId} 작업이 실패했습니다", + "title": "ZIP 요청을 실패했습니다!", + "weAreSorry": "정말 죄송합니다.", + "retryLinkContent": "다시 시도", + "howToCheckSettings": "%{taskLink}에서 사용한 설정을 확인할 수 있습니다." + } + } +} diff --git a/locales/lb.json b/locales/lb.json new file mode 100644 index 0000000..bcdfcd2 --- /dev/null +++ b/locales/lb.json @@ -0,0 +1,74 @@ +{ + "@metadata": { + "authors": [ + "Volvox" + ] + }, + "faq": { + "whatIsZim": "Wat ass e ZIM-Fichier?", + "whatIsZimDescLinkContent0": "offline", + "howToRead": "Wéi liesen ech ZIM-Fichieren?", + "howToReadDescLinkContent0": "Kiwix", + "howToReadDescLinkContent1": "Desktopcomputeren, mobil Apparater asw.", + "missingContent": "De ZIM-Fichier ass onvollstänneg oder méi kleng wéi d'Originalwebsäit", + "gotError": "Ech krut eng Feelermeldung (kee ZIM) oder konnt de ZIM-Fichier net liesen", + "gotErrorDescLinkContent0": "GitHub" + }, + "units": { + "timeLimit": { + "singular": "Stonn", + "plural": "Stonnen" + } + }, + "footer": { + "link0": "Kiwix" + }, + "newRequest": { + "urlLabel": "Vollstänneg URL vun der Websäit fir ze konvertéieren", + "advancedOptions": "erweidert Optiounen" + }, + "notFound": { + "heading": "Net fonnt", + "description": "Hei gëtt et näischt, warscheinlech ass Är URL falsch. Villäicht wëllt Dir zréckgoen." + }, + "requestStatus": { + "progressMessage": "{task_progression_percent} % ({task_progression_status_code})", + "refreshing": "Aufgabestatus nei lueden…", + "errorRefreshing": "Feeler beim Neiluede vum Aufgabestatus", + "refreshAuto": "Dës Säit gëtt automatesch all {refresh_interval} Sekonnen nei gelueden, et ass net néideg se manuell nei ze lueden.", + "zimingOf": "Zime vun", + "requestingSlot": "Slot ufroen", + "requestFailed": "Är Ufro huet net geklappt! Dat deet eis leed.", + "failureReasonsLinkContent0": "en Ticket op GitHub opmaachen", + "successMessage": "Succès!", + "successMessageExplanation": "De Link ënne wäert oflafen an de Fichier gëtt no enger Woch geläscht.", + "successMessageButton": "Eroflueden", + "limitHitContactUsLink": "Kontaktéiert eis", + "beingProcessedMessage": "Är Ufro gëtt traitéiert", + "settingsHeading": "Astellungen", + "taskNotFound": "Aufgab net fonnt. Entweder ass Är URL falsch oder eise Service huet grad Problemer." + }, + "email": { + "requested": { + "subject": "Youzim.it-Aufgab %{taskId} ugefrot", + "title": "ZIM ugefrot!", + "zimRequestRecorded": "Är ZIM-Ufro vun %{link} gouf opgeholl.", + "howToFollowProgress": "Dir kënnt de Status vun dëser Ufro op %{link} verfollegen.", + "emailWillBeSent": "Mir schécken Iech nach eng E-Mail, soubal Äre ZIM-Fichier prett ass fir erofgelueden ze ginn." + }, + "succeeded": { + "subject": "Youzim.it-Aufgab %{taskId} geklappt", + "title": "De ZIM ass prett!", + "zimRequestCompleted": "Är ZIM-Ufro vun %{link} ass ofgeschloss.", + "hereItIs": "Hei ass se:", + "contactUsLinkContent": "Kontaktéiert eis" + }, + "failed": { + "subject": "Youzim.it-Aufgab %{taskId} net geklappt", + "title": "Är ZIM-Ufro huet net geklappt!", + "weAreSorry": "Et deet eis wierklech leed.", + "retryLinkContent": "probéiert nach eng Kéier", + "howToCheckSettings": "Dir kënnt d'Astellungen, déi Dir benotzt hutt, ënner %{taskLink} iwwerpréiwen." + } + } +} diff --git a/locales/mk.json b/locales/mk.json new file mode 100644 index 0000000..7a79229 --- /dev/null +++ b/locales/mk.json @@ -0,0 +1,70 @@ +{ + "@metadata": { + "authors": [ + "Bjankuloski06" + ] + }, + "faq": { + "whatIsZim": "Што е тоа ZIM-податотека?", + "whatIsZimDescLinkContent0": "вонмрежно", + "howToRead": "Како да ги читам ZIM-податотеките?", + "howToReadDescParagraph": "Ќе ви треба читач на ZIM-податотеки. Ова обично значи {0}, кој е достапен на {1}.", + "howToReadDescLinkContent0": "Кивикс", + "howToReadDescLinkContent1": "столни сметачи, мобилни уреди и повеќе", + "gotErrorDescLinkContent0": "github" + }, + "units": { + "timeLimit": { + "singular": "час", + "plural": "часа" + } + }, + "footer": { + "poweredByThankTo": "Овозможено од {0} и {1}, благодарение на {2} Награда ❤️", + "link0": "Кивикс", + "link1": "Webrecorder", + "link2": "Поддршка со отворен код на Mozilla" + }, + "header": { + "donate": "Да остане бесплатно. Дарувајте." + }, + "newRequest": { + "headingParagraph": "Сакате вонмрежна верзија мрежно место? Просто {0}!", + "headingBold": "ZIM-увајте го", + "urlLabel": "Полна URL-адреса на мрежното место што треба да се претвори", + "emailLabel": "Ваша е-пошта за да добиете врска за преземање. Не ги чуваме адресите", + "submit": "Да го ZIM-уваме!", + "advancedOptions": "напредни нагодувања", + "fetchingDefinition": "Вчитувам определба за вонмрежникот…", + "errorFetchingDefinition": "Грешка при добивањето на определба за вонмрежникот", + "creatingRequest": "Создавам барање…", + "errorCreatingRequest": "Грешка при создавањето на барањето" + }, + "notFound": { + "heading": "Не е најдено" + }, + "requestStatus": { + "zimingOf": "Зимување на", + "requestingSlot": "Барање на термин", + "successMessage": "Успешно!", + "successMessageButton": "Преземи", + "limitHitContactUsLink": "Контактирајте нè", + "beingProcessedMessage": "Вашето барање се обработува", + "settingsHeading": "Нагодувања" + }, + "email": { + "succeeded": { + "title": "ZIM-от е готов!", + "zimRequestCompleted": "Вашето барање за ZIM од %{link} е извршено.", + "hereItIs": "Еве го:", + "contactUsLinkContent": "Контактирајте нè" + }, + "failed": { + "subject": "Задачата на Youzim.it %{taskId} не успеа", + "title": "Вашето барање за ZIM не успеа!", + "weAreSorry": "Навистина ни е жал.", + "retryLinkContent": "обиди се пак", + "howToCheckSettings": "Можете да ги проверите нагодувањата што сте ги задале на %{taskLink}" + } + } +} diff --git a/locales/qqq.json b/locales/qqq.json index 25d6e90..c98bcbd 100644 --- a/locales/qqq.json +++ b/locales/qqq.json @@ -1,97 +1,100 @@ { - "faq": { - "whatIsZim": "This is the question asking about the ZIM file format.", - "whatIsZimDescParagraph": "This is the answer about the ZIM file format", - "whatIsZimDescLinkContent0": "This is the word(s) inside the link of whatIsZimDescParagraph", - "howToRead": "This is the question asking how to read ZIM files.", - "howToReadDescParagraph": "This is the answer about how to read ZIM files.", - "howToReadDescLinkContent0": "This is the word(s) inside the first link of howToReadDescParagraph", - "howToReadDescLinkContent1": "This is the word(s) inside the second link of howToReadDescParagraph", - "missingContent": "This is the question about incomplete or missing content in ZIM files.", - "missingContentDesc": "This is the answer about incomplete or missing content in ZIM files.", - "gotError": "This is the question about encountering error messages when using ZIM files.", - "gotErrorDescParagraph": "This is the answer about encountering error messages when using ZIM files.", - "gotErrorDescLinkContent0": "This is the word(s) inside the first link of gotErrorDescParagraph" - }, - "units": { - "timeLimit": { - "singular": "This is the singular form of the time unit.", - "plural": "This is the plural form of the time unit." - } - }, - "footer": { - "poweredByThankTo": "This is the main page footer message, with placeholders for links.", - "link0": "This is the word(s) inside the first link of footer paragraph", - "link1": "This is the word(s) inside the second link of footer paragraph", - "link2": "This is the word(s) inside the third link of footer paragraph" - }, - "header": { - "donate": "This is the text of a button to call for donations" - }, - "newRequest": { - "headingParagraph": "This is the heading on home page allowing to create a new task.", - "headingBold": "This is the call to action displayed in bold.", - "urlLabel": "This is the label for the text box where users will be entering a URL.", - "emailLabel": "This is the label for the text box where users will be entering an optional email.", - "submit": "This is the text displayed on a button to start the request.", - "advancedOptions": "This is the text displayed on a button to display advanced options.", - "fetchingDefinition": "This is the message while fetching the task definition.", - "errorFetchingDefinition": "This is the message when fetching the task definition failed.", - "creatingRequest": "This is the message while creating a Zimfarm request.", - "errorCreatingRequest": "This is the message when creating a Zimfarm request failed.", - "offlinerNotFound": "This is the message when we failed to load offliner definition through API call." - }, - "notFound": { - "heading": "This is the heading displayed when URL is not found/handled.", - "description": "This is the description explaining the 404 error." - }, - "requestStatus": { - "progressMessage": "This is the text displayed inside the progress bar, using placeholders for percentage and status values", - "refreshing": "This is the message when fetching task status is ongoing", - "errorRefreshing": "This is the message when fetching task status failed", - "refreshAuto": "This is the message indicating that page refresh is automated, with a placeholder for refresh interval.", - "zimingOf": "This are the words before the website url ('Ziming' is an invented world, based on the fact that we create files with .zim extension, named ZIM files)", - "requestingSlot": "This is the message indicating that system is requesting a slot to process the task", - "requestRecorded": "These are explanations when the system is requesting a slot to process the task", - "requestFailed": "This is the message indicating that the task has failed", - "failureReasons": "These are explanations about what to do when a task has failed, including a placeholder for a link", - "failureReasonsLinkContent0": "This is the content of the link on task failure explanation", - "successMessage": "This is the message indicating that the task has succeeded", - "successMessageExplanation": "This is the explanations about what to do when task has succeeded.", - "successMessageButton": "This is the text of the button allowing to download the ZIM file", - "limitHit": "This is the warning text about a limit encountered during the processing, including a placeholder for a link", - "limitHitContactUsLink": "This is the content of the link", - "beingProcessedMessage": "This is the message indicating that the task is ongoing", - "beingProcessedExplanation": "This is the explanation about the ongoing task", - "bookmarkUrl": "This is a secondary explanation about the ongoing task", - "emailNotification": "This is an explanation about what to do while task is processing when email has been provided", - "noEmailNotification": "This is an explanation about what to do while task is processing when email has NOT been provided", - "settingsHeading": "This is the title of the section detailing task settings", - "taskNotFound": "This is the message displayed when the task is not found." - }, - "email": { - "requested": { - "subject": "This is the email subject when task has been requested", - "title": "This is the email title (in body) when task has been requested", - "zimRequestRecorded": "This explains that task has been requested", - "howToFollowProgress": "This explains how to follow task progress", - "emailWillBeSent": "This explains that an email will be sent when task is done" - }, - "succeeded": { - "subject": "This is the email subject when task has succeeded", - "title": "This is the email title (in body) when task has succeeded", - "zimRequestCompleted": "This explains that request has completed", - "hereItIs": "This is the text before the download link(s)", - "incomplete": "This is an optional email paragraph when task has succeeded but is incomplete", - "contactUsLinkContent": "This is the content of a link to contact us, used in 'incomplete' paragraph when task is incomplete" - }, - "failed": { - "subject": "This is the email subject when task has failed", - "title": "This is the email title (in body) when task has failed", - "weAreSorry": "This says that we are sorry for the failed task", - "checkAndRetry": "This explains that settings should be checked and retried", - "retryLinkContent": "This is the content of a link to try request again", - "howToCheckSettings": "This explains how to double-check the settings" - } - } + "@metadata": { + "authors": [] + }, + "faq": { + "whatIsZim": "This is the question asking about the ZIM file format.", + "whatIsZimDescParagraph": "This is the answer about the ZIM file format", + "whatIsZimDescLinkContent0": "This is the word(s) inside the link of whatIsZimDescParagraph", + "howToRead": "This is the question asking how to read ZIM files.", + "howToReadDescParagraph": "This is the answer about how to read ZIM files.", + "howToReadDescLinkContent0": "This is the word(s) inside the first link of howToReadDescParagraph", + "howToReadDescLinkContent1": "This is the word(s) inside the second link of howToReadDescParagraph", + "missingContent": "This is the question about incomplete or missing content in ZIM files.", + "missingContentDesc": "This is the answer about incomplete or missing content in ZIM files.", + "gotError": "This is the question about encountering error messages when using ZIM files.", + "gotErrorDescParagraph": "This is the answer about encountering error messages when using ZIM files.", + "gotErrorDescLinkContent0": "This is the word(s) inside the first link of gotErrorDescParagraph" + }, + "units": { + "timeLimit": { + "singular": "This is the singular form of the time unit.", + "plural": "This is the plural form of the time unit." + } + }, + "footer": { + "poweredByThankTo": "This is the main page footer message, with placeholders for links.", + "link0": "This is the word(s) inside the first link of footer paragraph", + "link1": "This is the word(s) inside the second link of footer paragraph", + "link2": "This is the word(s) inside the third link of footer paragraph" + }, + "header": { + "donate": "This is the text of a button to call for donations" + }, + "newRequest": { + "headingParagraph": "This is the heading on home page allowing to create a new task.", + "headingBold": "This is the call to action displayed in bold.", + "urlLabel": "This is the label for the text box where users will be entering a URL.", + "emailLabel": "This is the label for the text box where users will be entering an optional email.", + "submit": "This is the text displayed on a button to start the request.", + "advancedOptions": "This is the text displayed on a button to display advanced options.", + "fetchingDefinition": "This is the message while fetching the task definition.", + "errorFetchingDefinition": "This is the message when fetching the task definition failed.", + "creatingRequest": "This is the message while creating a Zimfarm request.", + "errorCreatingRequest": "This is the message when creating a Zimfarm request failed.", + "offlinerNotFound": "This is the message when we failed to load offliner definition through API call." + }, + "notFound": { + "heading": "This is the heading displayed when URL is not found/handled.", + "description": "This is the description explaining the 404 error." + }, + "requestStatus": { + "progressMessage": "This is the text displayed inside the progress bar, using placeholders for percentage and status values", + "refreshing": "This is the message when fetching task status is ongoing", + "errorRefreshing": "This is the message when fetching task status failed", + "refreshAuto": "This is the message indicating that page refresh is automated, with a placeholder for refresh interval.", + "zimingOf": "This are the words before the website url ('Ziming' is an invented world, based on the fact that we create files with .zim extension, named ZIM files)", + "requestingSlot": "This is the message indicating that system is requesting a slot to process the task", + "requestRecorded": "These are explanations when the system is requesting a slot to process the task", + "requestFailed": "This is the message indicating that the task has failed", + "failureReasons": "These are explanations about what to do when a task has failed, including a placeholder for a link", + "failureReasonsLinkContent0": "This is the content of the link on task failure explanation", + "successMessage": "This is the message indicating that the task has succeeded", + "successMessageExplanation": "This is the explanations about what to do when task has succeeded.", + "successMessageButton": "This is the text of the button allowing to download the ZIM file", + "limitHit": "This is the warning text about a limit encountered during the processing, including a placeholder for a link", + "limitHitContactUsLink": "This is the content of the link", + "beingProcessedMessage": "This is the message indicating that the task is ongoing", + "beingProcessedExplanation": "This is the explanation about the ongoing task", + "bookmarkUrl": "This is a secondary explanation about the ongoing task", + "emailNotification": "This is an explanation about what to do while task is processing when email has been provided", + "noEmailNotification": "This is an explanation about what to do while task is processing when email has NOT been provided", + "settingsHeading": "This is the title of the section detailing task settings", + "taskNotFound": "This is the message displayed when the task is not found." + }, + "email": { + "requested": { + "subject": "This is the email subject when task has been requested", + "title": "This is the email title (in body) when task has been requested", + "zimRequestRecorded": "This explains that task has been requested", + "howToFollowProgress": "This explains how to follow task progress", + "emailWillBeSent": "This explains that an email will be sent when task is done" + }, + "succeeded": { + "subject": "This is the email subject when task has succeeded", + "title": "This is the email title (in body) when task has succeeded", + "zimRequestCompleted": "This explains that request has completed", + "hereItIs": "This is the text before the download link(s)", + "incomplete": "This is an optional email paragraph when task has succeeded but is incomplete", + "contactUsLinkContent": "This is the content of a link to contact us, used in 'incomplete' paragraph when task is incomplete" + }, + "failed": { + "subject": "This is the email subject when task has failed", + "title": "This is the email title (in body) when task has failed", + "weAreSorry": "This says that we are sorry for the failed task", + "checkAndRetry": "This explains that settings should be checked and retried", + "retryLinkContent": "This is the content of a link to try request again", + "howToCheckSettings": "This explains how to double-check the settings" + } + } } From f6fb560f40a93383fb9e010f22c59f93512e288a Mon Sep 17 00:00:00 2001 From: benoit74 Date: Mon, 4 Nov 2024 13:00:23 +0000 Subject: [PATCH 2/2] Add new languages to UI --- ui/src/App.vue | 8 +++++--- ui/src/i18n.ts | 10 +++++++++- 2 files changed, 14 insertions(+), 4 deletions(-) diff --git a/ui/src/App.vue b/ui/src/App.vue index dfe395a..4300bd5 100644 --- a/ui/src/App.vue +++ b/ui/src/App.vue @@ -15,9 +15,11 @@ const { smAndDown } = useDisplay() // compute items for language combobox const languageItems = computed(() => { - return supportedLanguages.map((lang) => { - return { title: lang.display, langCode: lang.code } - }) + return supportedLanguages + .map((lang) => { + return { title: lang.display, langCode: lang.code } + }) + .sort((a, b) => a.title.toLowerCase().localeCompare(b.title.toLowerCase())) }) // and select appropriate one as default value for combobox initialization diff --git a/ui/src/i18n.ts b/ui/src/i18n.ts index 067b2fd..0193552 100644 --- a/ui/src/i18n.ts +++ b/ui/src/i18n.ts @@ -17,9 +17,17 @@ export type Language = { const localesFiles = import.meta.glob('../../locales/*.json') // Add more supported languages here +// Do not mind about ordering, it is done in UI +// If language is RTL, do not forget to also update `rtl_language_codes` constant in `api/src/zimitfrontend/constants.py` +// Some languages below are commented out because they have started but not yet completed (we target close to 100% translated before using the translation) +// You can check this at https://translatewiki.net/w/i.php?title=Special:MessageGroupStats/kiwix-zimit-frontend&suppresscomplete=0#sortable:3=desc export const supportedLanguages: Language[] = [ { code: 'en', display: 'English', rtl: false }, // Keep default first in array - { code: 'fa', display: 'Persian', rtl: true } + { code: 'fa', display: 'Persian', rtl: true }, + { code: 'fr', display: 'French', rtl: false } + // { code: 'ko', display: 'Korean', rtl: false }, + // { code: 'lb', display: 'Luxembourgish', rtl: false }, + // { code: 'mk', display: 'Macedonian', rtl: false } ] // Check if browser language is supported, otherwise fallback to English