From 0fe857e4c53b035437f9be78dbb1fa0d9e6ce46b Mon Sep 17 00:00:00 2001 From: Elias Schneider Date: Mon, 27 May 2024 01:30:49 +0200 Subject: [PATCH 1/8] New translations en-us.ts (Arabic, Egypt) --- frontend/src/i18n/translations/ar-EG.ts | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/frontend/src/i18n/translations/ar-EG.ts b/frontend/src/i18n/translations/ar-EG.ts index ecd95dc..8e43bd7 100644 --- a/frontend/src/i18n/translations/ar-EG.ts +++ b/frontend/src/i18n/translations/ar-EG.ts @@ -1,12 +1,12 @@ export default { // Navbar - "navbar.upload": "Upload", - "navbar.signin": "Sign in", - "navbar.home": "Home", - "navbar.signup": "Sign Up", + "navbar.upload": "رفع", + "navbar.signin": "تسجيل الدخول", + "navbar.home": "الصفحة الرئيسية", + "navbar.signup": "إنشاء حساب", "navbar.links.shares": "My shares", "navbar.links.reverse": "Reverse shares", - "navbar.avatar.account": "My account", + "navbar.avatar.account": "حسابي", "navbar.avatar.admin": "Administration", "navbar.avatar.signout": "Sign out", // END navbar From d11f7615f51a929068343b7acdf831317f1c2a23 Mon Sep 17 00:00:00 2001 From: Elias Schneider Date: Mon, 27 May 2024 02:33:42 +0200 Subject: [PATCH 2/8] New translations en-us.ts (Arabic, Egypt) --- frontend/src/i18n/translations/ar-EG.ts | 140 ++++++++++++------------ 1 file changed, 70 insertions(+), 70 deletions(-) diff --git a/frontend/src/i18n/translations/ar-EG.ts b/frontend/src/i18n/translations/ar-EG.ts index 8e43bd7..7911503 100644 --- a/frontend/src/i18n/translations/ar-EG.ts +++ b/frontend/src/i18n/translations/ar-EG.ts @@ -8,32 +8,32 @@ export default { "navbar.links.reverse": "Reverse shares", "navbar.avatar.account": "حسابي", "navbar.avatar.admin": "Administration", - "navbar.avatar.signout": "Sign out", + "navbar.avatar.signout": "تسجيل الخروج", // END navbar // / - "home.title": "A self-hosted file sharing platform.", - "home.description": "Do you really want to give your personal files in the hand of third parties like WeTransfer?", - "home.bullet.a.name": "Self-Hosted", - "home.bullet.a.description": "Host Pingvin Share on your own machine.", - "home.bullet.b.name": "Privacy", - "home.bullet.b.description": "Your files are your files and should never get into the hands of third parties.", - "home.bullet.c.name": "No annoying file size limit", - "home.bullet.c.description": "Upload as big files as you want. Only your hard drive will be your limit.", - "home.button.start": "Get started", - "home.button.source": "Source code", + "home.title": "منصة لمشاركة الملفات باستضافة ذاتية.", + "home.description": "أحقًا تريد تسليم ملفاتك الشخصية لطرف ثالث مثل WeTransfer؟", + "home.bullet.a.name": "استضافة ذاتية", + "home.bullet.a.description": "قم باستضافة Pingvin Share على جهازك.", + "home.bullet.b.name": "الخصوصية", + "home.bullet.b.description": "ملفاتك تخصّك وحدك فقط، ولا ينبغي أبدًا أن تقع بأيدي طرفٍ ثالث.", + "home.bullet.c.name": "ليس هناك أية قيود على حجم الملفات", + "home.bullet.c.description": "ارفع أي ملف تريده مهما كان حجمه كبيرًا. إن مساحة قرصك الصلب هي المحدد الوحيد هنا.", + "home.button.start": "ابدأ", + "home.button.source": "النص البرمجي المصدري", // END / // /auth/signin - "signin.title": "Welcome back", - "signin.description": "You don't have an account yet?", - "signin.button.signup": "Sign up", - "signin.input.email-or-username": "Email or username", - "signin.input.email-or-username.placeholder": "Your email or username", - "signin.input.password": "Password", - "signin.input.password.placeholder": "Your password", - "signin.button.submit": "Sign in", - "signIn.notify.totp-required.title": "Two-factor authentication required", - "signIn.notify.totp-required.description": "Please enter your two-factor authentication code", - "signIn.oauth.or": "OR", + "signin.title": "أهلًا بعودتك", + "signin.description": "ليس لديك حساب؟", + "signin.button.signup": "إنشاء حساب", + "signin.input.email-or-username": "البريد أو اسم المستخدم", + "signin.input.email-or-username.placeholder": "بريدك أو اسم المستخدم", + "signin.input.password": "كلمة السر", + "signin.input.password.placeholder": "كلمة السر", + "signin.button.submit": "تسجيل الدخول", + "signIn.notify.totp-required.title": "إن المصادقة الثنائية ضرورية", + "signIn.notify.totp-required.description": "فضلًا أدخل رمز المصادقة الثنائية", + "signIn.oauth.or": "أو", "signIn.oauth.github": "GitHub", "signIn.oauth.google": "Google", "signIn.oauth.microsoft": "Microsoft", @@ -41,25 +41,25 @@ export default { "signIn.oauth.oidc": "OpenID", // END /auth/signin // /auth/signup - "signup.title": "Create an account", - "signup.description": "Already have an account?", - "signup.button.signin": "Sign in", - "signup.input.username": "Username", - "signup.input.username.placeholder": "Your username", - "signup.input.email": "Email", - "signup.input.email.placeholder": "Your email", - "signup.button.submit": "Let's get started", + "signup.title": "أنشئ حسابًا", + "signup.description": "لديك حساب بالفعل؟", + "signup.button.signin": "تسجيل الدخول", + "signup.input.username": "اسم المستخدم", + "signup.input.username.placeholder": "اسم المستخدم", + "signup.input.email": "البريد", + "signup.input.email.placeholder": "بريدك", + "signup.button.submit": "لنبدأ", // END /auth/signup // /auth/totp - "totp.title": "TOTP Authentication", - "totp.button.signIn": "Sign in", + "totp.title": "كلمة المرور لمرة واحدة المؤقتة", + "totp.button.signIn": "تسجيل الدخول", // END /auth/totp // /auth/reset-password - "resetPassword.title": "Forgot your password?", - "resetPassword.description": "Enter your email to reset your password.", - "resetPassword.notify.success": "A message with a link to reset your password has been sent if the email exists.", - "resetPassword.button.back": "Back to sign in page", - "resetPassword.text.resetPassword": "Reset password", + "resetPassword.title": "نسيت كلمة سرّك؟", + "resetPassword.description": "اكتب بريدك لتعيد تعيين كلمة السر.", + "resetPassword.notify.success": "إذا كان هذا البريد مسجلًا لدينا فستصله الآن رسالة فيها رابط لإعادة تعيين كلمة السرّ.", + "resetPassword.button.back": "العودة لصفحة تسجيل الدخول", + "resetPassword.text.resetPassword": "إعادة تعيين كلمة السر", "resetPassword.text.enterNewPassword": "Enter your new password", "resetPassword.input.password": "New password", "resetPassword.notify.passwordReset": "Your password has been reset successfully.", @@ -112,17 +112,17 @@ export default { // END /account // /account/shares "account.shares.title": "My shares", - "account.shares.title.empty": "It's empty here 👀", - "account.shares.description.empty": "You don't have any shares.", - "account.shares.button.create": "Create one", + "account.shares.title.empty": "المكان خالٍ هنا 👀", + "account.shares.description.empty": "ليس لديك أي مشاركات.", + "account.shares.button.create": "أنشئ واحدًا", "account.shares.info.title": "Share informations", "account.shares.table.id": "ID", - "account.shares.table.name": "Name", - "account.shares.table.description": "Description", - "account.shares.table.visitors": "Visitors", + "account.shares.table.name": "الاسم", + "account.shares.table.description": "الوصف", + "account.shares.table.visitors": "الزوار", "account.shares.table.expiresAt": "Expires at", "account.shares.table.createdAt": "Created at", - "account.shares.table.size": "Size", + "account.shares.table.size": "الحجم", "account.shares.modal.share-informations": "Share informations", "account.shares.modal.share-link": "Share link", "account.shares.modal.delete.title": "Delete share {share}", @@ -131,36 +131,36 @@ export default { // /account/reverseShares "account.reverseShares.title": "Reverse shares", "account.reverseShares.description": "A reverse share allows you to generate a unique URL that allows external users to create a share.", - "account.reverseShares.title.empty": "It's empty here 👀", + "account.reverseShares.title.empty": "المكان خالٍ هنا 👀", "account.reverseShares.description.empty": "You don't have any reverse shares.", // showCreateReverseShareModal.tsx "account.reverseShares.modal.title": "Create reverse share", "account.reverseShares.modal.expiration.label": "Expiration", - "account.reverseShares.modal.expiration.minute-singular": "Minute", - "account.reverseShares.modal.expiration.minute-plural": "Minutes", - "account.reverseShares.modal.expiration.hour-singular": "Hour", - "account.reverseShares.modal.expiration.hour-plural": "Hours", - "account.reverseShares.modal.expiration.day-singular": "Day", - "account.reverseShares.modal.expiration.day-plural": "Days", - "account.reverseShares.modal.expiration.week-singular": "Week", - "account.reverseShares.modal.expiration.week-plural": "Weeks", - "account.reverseShares.modal.expiration.month-singular": "Month", - "account.reverseShares.modal.expiration.month-plural": "Months", - "account.reverseShares.modal.expiration.year-singular": "Year", - "account.reverseShares.modal.expiration.year-plural": "Years", - "account.reverseShares.modal.max-size.label": "Max share size", - "account.reverseShares.modal.send-email": "Send email notification", + "account.reverseShares.modal.expiration.minute-singular": "دقيقة", + "account.reverseShares.modal.expiration.minute-plural": "دقائق", + "account.reverseShares.modal.expiration.hour-singular": "ساعة", + "account.reverseShares.modal.expiration.hour-plural": "ساعات", + "account.reverseShares.modal.expiration.day-singular": "يوم", + "account.reverseShares.modal.expiration.day-plural": "أيام", + "account.reverseShares.modal.expiration.week-singular": "أسبوع", + "account.reverseShares.modal.expiration.week-plural": "أسابيع", + "account.reverseShares.modal.expiration.month-singular": "شهر", + "account.reverseShares.modal.expiration.month-plural": "أشهر", + "account.reverseShares.modal.expiration.year-singular": "سنة", + "account.reverseShares.modal.expiration.year-plural": "سنوات", + "account.reverseShares.modal.max-size.label": "الحد الأقصى لحجم المشاركة", + "account.reverseShares.modal.send-email": "أرسل إشعارًا بالبريد", "account.reverseShares.modal.send-email.description": "Send an email notification when a share is created with this reverse share link.", - "account.reverseShares.modal.max-use.label": "Max uses", + "account.reverseShares.modal.max-use.label": "الحد الأقصى لعدد الاستخدامات", "account.reverseShares.modal.max-use.description": "The maximum amount of times this URL can be used to create a share.", "account.reverseShare.never-expires": "This reverse share will never expire.", "account.reverseShare.expires-on": "This reverse share will expire on {expiration}.", "account.reverseShares.table.no-shares": "No shares created yet", - "account.reverseShares.table.count.singular": "share", - "account.reverseShares.table.count.plural": "shares", - "account.reverseShares.table.shares": "Shares", - "account.reverseShares.table.remaining": "Remaining uses", - "account.reverseShares.table.max-size": "Max share size", + "account.reverseShares.table.count.singular": "مشاركة", + "account.reverseShares.table.count.plural": "مشاركات", + "account.reverseShares.table.shares": "مشاركات", + "account.reverseShares.table.remaining": "الاستخدامات المتبقية", + "account.reverseShares.table.max-size": "الحد الأقصى لحجم المشاركة", "account.reverseShares.table.expires": "Expires at", "account.reverseShares.modal.reverse-share-link": "Reverse share link", "account.reverseShares.modal.delete.title": "Delete reverse share", @@ -206,18 +206,18 @@ export default { "admin.shares.edit.delete.description": "Do you really want to delete this share?", // END /admin/shares // /upload - "upload.title": "Upload", + "upload.title": "رفع", "upload.notify.generic-error": "An error occurred while finishing your share.", "upload.notify.count-failed": "{count} files failed to upload. Trying again.", // Dropzone.tsx - "upload.dropzone.title": "Upload files", + "upload.dropzone.title": "رفع الملفات", "upload.dropzone.description": "Drag'n'drop files here to start your share. We can accept only files that are less than {maxSize} in total.", "upload.dropzone.notify.file-too-big": "Your files exceed the maximum share size of {maxSize}.", // FileList.tsx - "upload.filelist.name": "Name", - "upload.filelist.size": "Size", + "upload.filelist.name": "الاسم", + "upload.filelist.size": "الحجم", // showCreateUploadModal.tsx - "upload.modal.title": "Create Share", + "upload.modal.title": "إنشاء مشاركة", "upload.modal.link.error.invalid": "Can only contain letters, numbers, underscores, and hyphens", "upload.modal.link.error.taken": "This link is already in use", "upload.modal.not-signed-in": "You're not signed in", From 270328c7ecbc1756875b223ac47b9ad48e10067e Mon Sep 17 00:00:00 2001 From: Elias Schneider Date: Mon, 27 May 2024 22:31:50 +0200 Subject: [PATCH 3/8] New translations en-us.ts (Arabic, Egypt) --- frontend/src/i18n/translations/ar-EG.ts | 98 ++++++++++++------------- 1 file changed, 49 insertions(+), 49 deletions(-) diff --git a/frontend/src/i18n/translations/ar-EG.ts b/frontend/src/i18n/translations/ar-EG.ts index 7911503..b155ea9 100644 --- a/frontend/src/i18n/translations/ar-EG.ts +++ b/frontend/src/i18n/translations/ar-EG.ts @@ -4,10 +4,10 @@ export default { "navbar.signin": "تسجيل الدخول", "navbar.home": "الصفحة الرئيسية", "navbar.signup": "إنشاء حساب", - "navbar.links.shares": "My shares", - "navbar.links.reverse": "Reverse shares", + "navbar.links.shares": "مشاركاتي", + "navbar.links.reverse": "مشاركاتي العكسية", "navbar.avatar.account": "حسابي", - "navbar.avatar.admin": "Administration", + "navbar.avatar.admin": "الإدارة", "navbar.avatar.signout": "تسجيل الخروج", // END navbar // / @@ -60,67 +60,67 @@ export default { "resetPassword.notify.success": "إذا كان هذا البريد مسجلًا لدينا فستصله الآن رسالة فيها رابط لإعادة تعيين كلمة السرّ.", "resetPassword.button.back": "العودة لصفحة تسجيل الدخول", "resetPassword.text.resetPassword": "إعادة تعيين كلمة السر", - "resetPassword.text.enterNewPassword": "Enter your new password", - "resetPassword.input.password": "New password", - "resetPassword.notify.passwordReset": "Your password has been reset successfully.", + "resetPassword.text.enterNewPassword": "أدخل كلمة السر الجديدة", + "resetPassword.input.password": "كلمة السر الجديدة", + "resetPassword.notify.passwordReset": "أعدتَ تعيين كلمة السر بنجاح.", // /account - "account.title": "My account", - "account.card.info.title": "Account info", - "account.card.info.username": "Username", - "account.card.info.email": "Email", - "account.notify.info.success": "Account updated successfully", - "account.card.password.title": "Password", - "account.card.password.old": "Old password", - "account.card.password.new": "New password", - "account.card.password.noPasswordSet": "You don't have a password set. If you want to sign in with email and password you need to set a password.", - "account.notify.password.success": "Password changed successfully", - "account.card.oauth.title": "Social login", + "account.title": "حسابي", + "account.card.info.title": "معلومات الحساب", + "account.card.info.username": "اسم المستخدم", + "account.card.info.email": "البريد", + "account.notify.info.success": "تم تحديث الحساب بنجاح", + "account.card.password.title": "كلمة السر", + "account.card.password.old": "كلمة السر القديمة", + "account.card.password.new": "كلمة السر الجديدة", + "account.card.password.noPasswordSet": "ليس لحسابك كلمة سر. إذا أردت تسجيل الدخول باستخدام البريد وكلمة سر، فعليك أن تُعيِّن كلمة سر.", + "account.notify.password.success": "غيرت كلمة السر بنجاح", + "account.card.oauth.title": "الدخول بحساب تواصل اجتماعي", "account.card.oauth.github": "GitHub", "account.card.oauth.google": "Google", "account.card.oauth.microsoft": "Microsoft", "account.card.oauth.discord": "Discord", "account.card.oauth.oidc": "OpenID", - "account.card.oauth.link": "Link", - "account.card.oauth.unlink": "Unlink", - "account.card.oauth.unlinked": "Unlinked", - "account.modal.unlink.title": "Unlink account", - "account.modal.unlink.description": "Unlinking your social accounts may cause you to lose your account if you don't remember your username and password.", - "account.notify.oauth.unlinked.success": "Unlinked successfully", - "account.card.security.title": "Security", - "account.card.security.totp.enable.description": "Enter your current password to start enabling TOTP", - "account.card.security.totp.disable.description": "Enter your current password to disable TOTP", - "account.card.security.totp.button.start": "Start", - "account.modal.totp.title": "Enable TOTP", - "account.modal.totp.step1": "Step 1: Add your authenticator", - "account.modal.totp.step2": "Step 2: Validate your code", - "account.modal.totp.enterManually": "Enter manually", - "account.modal.totp.code": "Code", - "account.modal.totp.clickToCopy": "Click to copy", - "account.modal.totp.verify": "Verify", - "account.notify.totp.disable": "TOTP disabled successfully", - "account.notify.totp.enable": "TOTP enabled successfully", - "account.card.language.title": "Language", - "account.card.language.description": "The project is translated by the community. Some languages might be incomplete.", - "account.card.color.title": "Color scheme", + "account.card.oauth.link": "ربط", + "account.card.oauth.unlink": "فك الربط", + "account.card.oauth.unlinked": "تم فك الربط", + "account.modal.unlink.title": "فك ربط الحساب", + "account.modal.unlink.description": "قد يؤدي إلغاء ربط حساباتك الاجتماعية إلى فقدان وصولك لحسابك إذا كنت لا تتذكر اسم المستخدم وكلمة السر الخاصة بك.", + "account.notify.oauth.unlinked.success": "تم فك الربط بنجاح", + "account.card.security.title": "الأمان", + "account.card.security.totp.enable.description": "اكتب كلمة سرّك لبدء تمكين TOTP", + "account.card.security.totp.disable.description": "اكتب كلمة سرّك لتعطيل TOTP", + "account.card.security.totp.button.start": "ابدأ", + "account.modal.totp.title": "تمكين TOTP", + "account.modal.totp.step1": "الخطوة 1: أضف تطبيق المصادقة", + "account.modal.totp.step2": "الخطوة 2: تحقّق من صحة رمزك", + "account.modal.totp.enterManually": "أدخل يدوياً", + "account.modal.totp.code": "الرمز", + "account.modal.totp.clickToCopy": "انقر للنسخ", + "account.modal.totp.verify": "تحقق", + "account.notify.totp.disable": "تم تعطيل TOTP بنجاح", + "account.notify.totp.enable": "تم تمكين TOTP بنجاح", + "account.card.language.title": "اللغة", + "account.card.language.description": "يقوم المجتمع بترجمة هذا المشروع. ربما بعض اللغات لم تكتمل ترجمتها بعد.", + "account.card.color.title": "نظام الألوان", // ThemeSwitcher.tsx - "account.theme.dark": "Dark", - "account.theme.light": "Light", - "account.theme.system": "System", - "account.button.delete": "Delete Account", - "account.modal.delete.title": "Delete Account", - "account.modal.delete.description": "Do you really want to delete your account including all your active shares?", + "account.theme.dark": "داكن", + "account.theme.light": "فاتح", + "account.theme.system": "حسب النظام", + "account.button.delete": "حذف الحساب", + "account.modal.delete.title": "حذف الحساب", + "account.modal.delete.description": "هل تريد حقاً حذف حسابك بما في ذلك جميع مشاركاتك النشطة؟", // END /account // /account/shares - "account.shares.title": "My shares", + "account.shares.title": "مشاركاتي", "account.shares.title.empty": "المكان خالٍ هنا 👀", "account.shares.description.empty": "ليس لديك أي مشاركات.", "account.shares.button.create": "أنشئ واحدًا", - "account.shares.info.title": "Share informations", - "account.shares.table.id": "ID", + "account.shares.info.title": "مشاركة المعلومات", + "account.shares.table.id": "الرقم التعريفي", "account.shares.table.name": "الاسم", "account.shares.table.description": "الوصف", "account.shares.table.visitors": "الزوار", - "account.shares.table.expiresAt": "Expires at", + "account.shares.table.expiresAt": "تاريخ انتهاء الصلاحية", "account.shares.table.createdAt": "Created at", "account.shares.table.size": "الحجم", "account.shares.modal.share-informations": "Share informations", From 25863110f06439327f512b31cc7e34e36fb655a3 Mon Sep 17 00:00:00 2001 From: Elias Schneider Date: Mon, 27 May 2024 23:37:59 +0200 Subject: [PATCH 4/8] New translations en-us.ts (Arabic, Egypt) --- frontend/src/i18n/translations/ar-EG.ts | 336 ++++++++++++------------ 1 file changed, 168 insertions(+), 168 deletions(-) diff --git a/frontend/src/i18n/translations/ar-EG.ts b/frontend/src/i18n/translations/ar-EG.ts index b155ea9..3e6f417 100644 --- a/frontend/src/i18n/translations/ar-EG.ts +++ b/frontend/src/i18n/translations/ar-EG.ts @@ -115,27 +115,27 @@ export default { "account.shares.title.empty": "المكان خالٍ هنا 👀", "account.shares.description.empty": "ليس لديك أي مشاركات.", "account.shares.button.create": "أنشئ واحدًا", - "account.shares.info.title": "مشاركة المعلومات", + "account.shares.info.title": "معلومات المشاركة", "account.shares.table.id": "الرقم التعريفي", "account.shares.table.name": "الاسم", "account.shares.table.description": "الوصف", "account.shares.table.visitors": "الزوار", "account.shares.table.expiresAt": "تاريخ انتهاء الصلاحية", - "account.shares.table.createdAt": "Created at", + "account.shares.table.createdAt": "تاريخ الإنشاء", "account.shares.table.size": "الحجم", - "account.shares.modal.share-informations": "Share informations", - "account.shares.modal.share-link": "Share link", - "account.shares.modal.delete.title": "Delete share {share}", - "account.shares.modal.delete.description": "Do you really want to delete this share?", + "account.shares.modal.share-informations": "معلومات المشاركة", + "account.shares.modal.share-link": "رابط المشاركة", + "account.shares.modal.delete.title": "حذف المشاركة {share}", + "account.shares.modal.delete.description": "هل تريد حذف هذه المشاركة حقاً؟", // END /account/shares // /account/reverseShares - "account.reverseShares.title": "Reverse shares", - "account.reverseShares.description": "A reverse share allows you to generate a unique URL that allows external users to create a share.", + "account.reverseShares.title": "المشاركات العكسية", + "account.reverseShares.description": "تسمح لك المشاركة العكسية بإنشاء رابط فريد يسمح للمستخدمين الخارجيين بإنشاء مشاركة.", "account.reverseShares.title.empty": "المكان خالٍ هنا 👀", - "account.reverseShares.description.empty": "You don't have any reverse shares.", + "account.reverseShares.description.empty": "ليس لديك أي مشاركات عكسية.", // showCreateReverseShareModal.tsx - "account.reverseShares.modal.title": "Create reverse share", - "account.reverseShares.modal.expiration.label": "Expiration", + "account.reverseShares.modal.title": "إنشاء مشاركة عكسية", + "account.reverseShares.modal.expiration.label": "انتهاء الصلاحية", "account.reverseShares.modal.expiration.minute-singular": "دقيقة", "account.reverseShares.modal.expiration.minute-plural": "دقائق", "account.reverseShares.modal.expiration.hour-singular": "ساعة", @@ -150,154 +150,154 @@ export default { "account.reverseShares.modal.expiration.year-plural": "سنوات", "account.reverseShares.modal.max-size.label": "الحد الأقصى لحجم المشاركة", "account.reverseShares.modal.send-email": "أرسل إشعارًا بالبريد", - "account.reverseShares.modal.send-email.description": "Send an email notification when a share is created with this reverse share link.", + "account.reverseShares.modal.send-email.description": "إرسال إشعار بالبريد الإلكتروني عند إنشاء مشاركة باستخدام رابط المشاركة العكسي هذا.", "account.reverseShares.modal.max-use.label": "الحد الأقصى لعدد الاستخدامات", - "account.reverseShares.modal.max-use.description": "The maximum amount of times this URL can be used to create a share.", - "account.reverseShare.never-expires": "This reverse share will never expire.", - "account.reverseShare.expires-on": "This reverse share will expire on {expiration}.", - "account.reverseShares.table.no-shares": "No shares created yet", + "account.reverseShares.modal.max-use.description": "أقصى عدد من المرّات التي يمكن فيها استخدام هذا الرابط لإنشاء مشاركة.", + "account.reverseShare.never-expires": "لن تنتهي صلاحية هذه المشاركة العكسية أبدًا.", + "account.reverseShare.expires-on": "هذه المشاركة العكسية ستنتهي صلاحيتها في {expiration}.", + "account.reverseShares.table.no-shares": "لم يتم إنشاء أي مشاركة بعد", "account.reverseShares.table.count.singular": "مشاركة", "account.reverseShares.table.count.plural": "مشاركات", "account.reverseShares.table.shares": "مشاركات", "account.reverseShares.table.remaining": "الاستخدامات المتبقية", "account.reverseShares.table.max-size": "الحد الأقصى لحجم المشاركة", - "account.reverseShares.table.expires": "Expires at", - "account.reverseShares.modal.reverse-share-link": "Reverse share link", - "account.reverseShares.modal.delete.title": "Delete reverse share", - "account.reverseShares.modal.delete.description": "Do you really want to delete this reverse share? If you do, the associated shares will be deleted as well.", + "account.reverseShares.table.expires": "تاريخ انتهاء الصلاحية", + "account.reverseShares.modal.reverse-share-link": "رابط المشاركة العكسية", + "account.reverseShares.modal.delete.title": "حذف المشاركة العكسية", + "account.reverseShares.modal.delete.description": "هل تريد حقاً حذف هذه المشاركة العكسية؟ إذا قمت بذلك، فسيتم حذف المشاركات المرتبطة بها أيضاً.", // END /account/reverseShares // /admin - "admin.title": "Administration", - "admin.button.users": "User management", - "admin.button.shares": "Share management", - "admin.button.config": "Configuration", - "admin.version": "Version", + "admin.title": "الإدارة", + "admin.button.users": "إدارة المستخدم", + "admin.button.shares": "إدارة المشاركة", + "admin.button.config": "الإعدادات", + "admin.version": "الإصدار", // END /admin // /admin/users - "admin.users.title": "User management", - "admin.users.table.username": "Username", - "admin.users.table.email": "Email", - "admin.users.table.admin": "Admin", - "admin.users.edit.update.title": "Update user {username}", - "admin.users.edit.update.admin-privileges": "Admin privileges", - "admin.users.edit.update.change-password.title": "Change password", - "admin.users.edit.update.change-password.field": "New password", - "admin.users.edit.update.change-password.button": "Save new password", - "admin.users.edit.update.notify.password.success": "Password changed successfully", - "admin.users.edit.delete.title": "Delete user {username}", - "admin.users.edit.delete.description": "Do you really want to delete this user and all his shares?", + "admin.users.title": "إدارة المستخدم", + "admin.users.table.username": "اسم المستخدم", + "admin.users.table.email": "البريد", + "admin.users.table.admin": "المدير", + "admin.users.edit.update.title": "تحديث المستخدم {username}", + "admin.users.edit.update.admin-privileges": "صلاحيات المدير", + "admin.users.edit.update.change-password.title": "تغيير كلمة السر", + "admin.users.edit.update.change-password.field": "كلمة السر الجديدة", + "admin.users.edit.update.change-password.button": "حفظ كلمة السر الجديدة", + "admin.users.edit.update.notify.password.success": "غيرت كلمة السر بنجاح", + "admin.users.edit.delete.title": "حذف المستخدم {username}", + "admin.users.edit.delete.description": "هل تريد حقاً حذف هذا المستخدم وكل مشاركاته؟", // showCreateUserModal.tsx - "admin.users.modal.create.title": "Create user", - "admin.users.modal.create.username": "Username", - "admin.users.modal.create.email": "Email", - "admin.users.modal.create.password": "Password", - "admin.users.modal.create.manual-password": "Set password manually", - "admin.users.modal.create.manual-password.description": "If not checked, the user will receive an email with a link to set their password.", - "admin.users.modal.create.admin": "Admin privileges", - "admin.users.modal.create.admin.description": "If checked, the user will be able to access the admin panel.", + "admin.users.modal.create.title": "أنشئ مستخدمًا", + "admin.users.modal.create.username": "اسم المستخدم", + "admin.users.modal.create.email": "البريد", + "admin.users.modal.create.password": "كلمة السر", + "admin.users.modal.create.manual-password": "تعيين كلمة السر يدوياً", + "admin.users.modal.create.manual-password.description": "بدون هذا الخيار، سيتلقى المستخدم رسالة بريد إلكتروني فيها رابط لتعيين كلمة السر الخاصة به.", + "admin.users.modal.create.admin": "صلاحيات المدير", + "admin.users.modal.create.admin.description": "مع هذا الخيار، سيتمكن المستخدم من الدخول إلى لوحة الإدارة.", // END /admin/users // /admin/shares - "admin.shares.title": "Share management", - "admin.shares.table.id": "Share ID", - "admin.shares.table.username": "Creator", - "admin.shares.table.visitors": "Visitors", - "admin.shares.table.expires": "Expires At", - "admin.shares.edit.delete.title": "Delete share {id}", - "admin.shares.edit.delete.description": "Do you really want to delete this share?", + "admin.shares.title": "إدارة المشاركة", + "admin.shares.table.id": "معرّف المشاركة", + "admin.shares.table.username": "المُنشئ", + "admin.shares.table.visitors": "الزوار", + "admin.shares.table.expires": "تاريخ انتهاء الصلاحية", + "admin.shares.edit.delete.title": "حذف المشاركة {id}", + "admin.shares.edit.delete.description": "هل تريد حذف هذه المشاركة حقاً؟", // END /admin/shares // /upload "upload.title": "رفع", - "upload.notify.generic-error": "An error occurred while finishing your share.", - "upload.notify.count-failed": "{count} files failed to upload. Trying again.", + "upload.notify.generic-error": "حدث خطأ أثناء إنهاء مشاركتك.", + "upload.notify.count-failed": "فشل رفع {count} ملفات. تجري المحاولة مجددًا.", // Dropzone.tsx "upload.dropzone.title": "رفع الملفات", - "upload.dropzone.description": "Drag'n'drop files here to start your share. We can accept only files that are less than {maxSize} in total.", - "upload.dropzone.notify.file-too-big": "Your files exceed the maximum share size of {maxSize}.", + "upload.dropzone.description": "اسحب الملفات إلى هنا لبدء مشاركتك. يمكننا فقط قبول الملفات التي لا يزيد حجمها عن {maxSize} بالمجمل.", + "upload.dropzone.notify.file-too-big": "تتجاوز ملفاتك الحجم الأقصى للمشاركة والذي هو {maxSize}.", // FileList.tsx "upload.filelist.name": "الاسم", "upload.filelist.size": "الحجم", // showCreateUploadModal.tsx "upload.modal.title": "إنشاء مشاركة", - "upload.modal.link.error.invalid": "Can only contain letters, numbers, underscores, and hyphens", - "upload.modal.link.error.taken": "This link is already in use", - "upload.modal.not-signed-in": "You're not signed in", - "upload.modal.not-signed-in-description": "You will be unable to delete your share manually and view the visitor count.", - "upload.modal.expires.never": "never", - "upload.modal.expires.never-long": "Never Expires", - "upload.modal.expires.error.too-long": "Expiration exceeds maximum expiration date of {max}.", - "upload.modal.link.label": "Link", - "upload.modal.expires.label": "Expiration", - "upload.modal.expires.minute-singular": "Minute", - "upload.modal.expires.minute-plural": "Minutes", - "upload.modal.expires.hour-singular": "Hour", - "upload.modal.expires.hour-plural": "Hours", - "upload.modal.expires.day-singular": "Day", - "upload.modal.expires.day-plural": "Days", - "upload.modal.expires.week-singular": "Week", - "upload.modal.expires.week-plural": "Weeks", - "upload.modal.expires.month-singular": "Month", - "upload.modal.expires.month-plural": "Months", - "upload.modal.expires.year-singular": "Year", - "upload.modal.expires.year-plural": "Years", - "upload.modal.accordion.name-and-description.title": "Name and description", - "upload.modal.accordion.name-and-description.name.placeholder": "Name", - "upload.modal.accordion.name-and-description.description.placeholder": "Note for the recipients of this share", - "upload.modal.accordion.email.title": "Email recipients", - "upload.modal.accordion.email.placeholder": "Enter email recipients", - "upload.modal.accordion.email.invalid-email": "Invalid email address", - "upload.modal.accordion.security.title": "Security options", - "upload.modal.accordion.security.password.label": "Password protection", - "upload.modal.accordion.security.password.placeholder": "No password", - "upload.modal.accordion.security.max-views.label": "Maximum views", - "upload.modal.accordion.security.max-views.placeholder": "No limit", + "upload.modal.link.error.invalid": "يمكن أن يحتوي فقط على الأحرف والأرقام والشرطات السفلية والواصلات", + "upload.modal.link.error.taken": "هذا الرابط مستخدم مسبقاً", + "upload.modal.not-signed-in": "لم تقم بتسجيل الدخول", + "upload.modal.not-signed-in-description": "لن تتمكن من حذف مشاركتك يدوياً أو عرض عدد الزوار.", + "upload.modal.expires.never": "أبدًا", + "upload.modal.expires.never-long": "لا تنتهي الصلاحية أبداً", + "upload.modal.expires.error.too-long": "انتهاء الصلاحية يتجاوز الحد الأقصى لتاريخ انتهاء الصلاحية والذي هو {max}.", + "upload.modal.link.label": "الرابط", + "upload.modal.expires.label": "انتهاء الصلاحية", + "upload.modal.expires.minute-singular": "دقيقة", + "upload.modal.expires.minute-plural": "دقائق", + "upload.modal.expires.hour-singular": "ساعة", + "upload.modal.expires.hour-plural": "ساعات", + "upload.modal.expires.day-singular": "يوم", + "upload.modal.expires.day-plural": "أيام", + "upload.modal.expires.week-singular": "أسبوع", + "upload.modal.expires.week-plural": "أسابيع", + "upload.modal.expires.month-singular": "شهر", + "upload.modal.expires.month-plural": "أشهر", + "upload.modal.expires.year-singular": "سنة", + "upload.modal.expires.year-plural": "سنوات", + "upload.modal.accordion.name-and-description.title": "الاسم والوصف", + "upload.modal.accordion.name-and-description.name.placeholder": "الاسم", + "upload.modal.accordion.name-and-description.description.placeholder": "ملاحظة لمستقبلي هذه المشاركة", + "upload.modal.accordion.email.title": "مستلمو البريد الإلكتروني", + "upload.modal.accordion.email.placeholder": "أدخل مستلمي البريد", + "upload.modal.accordion.email.invalid-email": "عنوان البريد غير صحيح", + "upload.modal.accordion.security.title": "خيارات الأمان", + "upload.modal.accordion.security.password.label": "الحماية بكلمة السر", + "upload.modal.accordion.security.password.placeholder": "لا توجد كلمة سر", + "upload.modal.accordion.security.max-views.label": "الحد الأقصى للمشاهدات", + "upload.modal.accordion.security.max-views.placeholder": "لا يوجد حد", // showCompletedUploadModal.tsx - "upload.modal.completed.never-expires": "This share will never expire.", - "upload.modal.completed.expires-on": "This share will expire on {expiration}.", - "upload.modal.completed.share-ready": "Share ready", + "upload.modal.completed.never-expires": "لن تنتهي صلاحية هذه المشاركة أبدًا.", + "upload.modal.completed.expires-on": "هذه المشاركة ستنتهي صلاحيتها في {expiration}.", + "upload.modal.completed.share-ready": "المشاركة جاهزة", // END /upload // /share/[id] - "share.title": "Share {shareId}", - "share.description": "Look what I've shared with you!", - "share.error.visitor-limit-exceeded.title": "Visitor limit exceeded", - "share.error.visitor-limit-exceeded.description": "The visitor limit from this share has been exceeded.", - "share.error.removed.title": "Share removed", - "share.error.not-found.title": "Share not found", - "share.error.not-found.description": "The share you're looking for doesn't exist.", - "share.modal.password.title": "Password required", - "share.modal.password.description": "To access this share please enter the password for the share.", - "share.modal.password": "Password", - "share.modal.error.invalid-password": "Invalid password", - "share.button.download-all": "Download all", - "share.notify.download-all-preparing": "The share is preparing. Try again in a few minutes.", - "share.modal.file-link": "File link", - "share.table.name": "Name", - "share.table.size": "Size", - "share.modal.file-preview.error.not-supported.title": "Preview not supported", - "share.modal.file-preview.error.not-supported.description": "A preview for this file type is unsupported. Please download the file to view it.", + "share.title": "المشاركة {shareId}", + "share.description": "انظر ما الذي شاركته معك!", + "share.error.visitor-limit-exceeded.title": "تم تجاوز حد المشاهدات", + "share.error.visitor-limit-exceeded.description": "تم تجاوز الحد الأقصى لزوار هذه المشاركة.", + "share.error.removed.title": "تمت إزالة المشاركة", + "share.error.not-found.title": "المشاركة غير موجودة", + "share.error.not-found.description": "المشاركة التي تبحث عنها غير موجودة.", + "share.modal.password.title": "كلمة السر مطلوبة", + "share.modal.password.description": "للوصول إلى هذه المشاركة الرجاء إدخال كلمة سر المشاركة.", + "share.modal.password": "كلمة السر", + "share.modal.error.invalid-password": "كلمة السر غير صحيحة", + "share.button.download-all": "تنزيل الكل", + "share.notify.download-all-preparing": "يتم تحضير المشاركة. حاول مرة أخرى في بضع دقائق.", + "share.modal.file-link": "رابط الملف", + "share.table.name": "الاسم", + "share.table.size": "الحجم", + "share.modal.file-preview.error.not-supported.title": "المعاينة غير مدعومة", + "share.modal.file-preview.error.not-supported.description": "معاينة هذا النوع من الملفات غير مدعومة. الرجاء تنزيل الملف لعرضه.", // END /share/[id] // /share/[id]/edit - "share.edit.title": "Edit {shareId}", - "share.edit.append-upload": "Append file", - "share.edit.notify.generic-error": "An error occurred while finishing your share.", - "share.edit.notify.save-success": "Share updated successfully", + "share.edit.title": "تحرير {shareId}", + "share.edit.append-upload": "إضافة ملف", + "share.edit.notify.generic-error": "حدث خطأ أثناء إنهاء مشاركتك.", + "share.edit.notify.save-success": "تم تحديث المشاركة بنجاح", // END /share/[id]/edit // /admin/config - "admin.config.title": "Configuration", - "admin.config.category.general": "General", - "admin.config.category.share": "Share", - "admin.config.category.email": "Email", - "admin.config.category.smtp": "SMTP", - "admin.config.category.oauth": "Social Login", - "admin.config.general.app-name": "App name", - "admin.config.general.app-name.description": "Name of the application", - "admin.config.general.app-url": "App URL", + "admin.config.title": "الإعدادات", + "admin.config.category.general": "عام", + "admin.config.category.share": "مشاركة", + "admin.config.category.email": "البريد", + "admin.config.category.smtp": "بروتوكول نقل البريد البسيط", + "admin.config.category.oauth": "الدخول بحساب تواصل اجتماعي", + "admin.config.general.app-name": "اسم التطبيق", + "admin.config.general.app-name.description": "اسم التطبيق", + "admin.config.general.app-url": "رابط التطبيق", "admin.config.general.app-url.description": "On which URL Pingvin Share is available", - "admin.config.general.show-home-page": "Show home page", - "admin.config.general.show-home-page.description": "Whether to show the home page", - "admin.config.general.logo": "Logo", - "admin.config.general.logo.description": "Change your logo by uploading a new image. The image must be a PNG and should have the format 1:1.", - "admin.config.general.logo.placeholder": "Pick image", - "admin.config.email.enable-share-email-recipients": "Enable share email recipients", + "admin.config.general.show-home-page": "إظهار الصفحة الرئيسية", + "admin.config.general.show-home-page.description": "تحديد ما إذا كان سيتم عرض الصفحة الرئيسية", + "admin.config.general.logo": "الشعار", + "admin.config.general.logo.description": "يمكنك تغيير شعارك عن طريق تحميل صورة جديدة. يجب أن تكون الصورة PNG ويجب أن يكون تنسيقها 1:1.", + "admin.config.general.logo.placeholder": "اختر صورة", + "admin.config.email.enable-share-email-recipients": "تفعيل مستلمي البريد الإلكتروني لهذه المشاركة", "admin.config.email.enable-share-email-recipients.description": "Whether to allow emails to share recipients. Only enable this if you have enabled SMTP.", "admin.config.email.share-recipients-subject": "Share recipients subject", "admin.config.email.share-recipients-subject.description": "Subject of the email which gets sent to the share recipients.", @@ -383,22 +383,22 @@ export default { "admin.config.oauth.oidc-client-secret": "OpenID Connect Client secret", "admin.config.oauth.oidc-client-secret.description": "Client secret of the OpenID Connect OAuth app", // 404 - "404.description": "Oops this page doesn't exist.", - "404.button.home": "Bring me back home", + "404.description": "هذه الصفحة غير موجودة.", + "404.button.home": "أعدني للصفحة الرئيسية", // error - "error.title": "Error", - "error.description": "Oops!", - "error.button.back": "Go back", - "error.msg.default": "Something went wrong.", - "error.msg.access_denied": "You canceled the authentication process, please try again.", - "error.msg.expired_token": "The authentication process took too long, please try again.", - "error.msg.invalid_token": "Internal Error", - "error.msg.no_user": "User linked to this {0} account doesn't exist.", - "error.msg.no_email": "Can't get email address from this {0} account.", - "error.msg.already_linked": "This {0} account is already linked to another account.", - "error.msg.not_linked": "This {0} account haven't linked to any account yet.", - "error.msg.unverified_account": "This {0} account is unverified, please try again after verification.", - "error.msg.discord_guild_permission_denied": "You are not allowed to sign in.", + "error.title": "خطأ", + "error.description": "عذرًا!", + "error.button.back": "العودة", + "error.msg.default": "حَدث خطأ ما.", + "error.msg.access_denied": "قمت بإلغاء عملية المصادقة، الرجاء المحاولة مرة أخرى.", + "error.msg.expired_token": "استغرقت عملية المصادقة وقتًا طويلًا، يرجى المحاولة مرة أخرى.", + "error.msg.invalid_token": "خطأ داخلي", + "error.msg.no_user": "المستخدم المرتبط بهذا الحساب {0} غير موجود.", + "error.msg.no_email": "لا يمكن الحصول على عنوان البريد الإلكتروني من هذا الحساب {0}.", + "error.msg.already_linked": "حساب {0} هذا مرتبط بالفعل بحساب آخر.", + "error.msg.not_linked": "لم يتم ربط حساب {0} هذا بأي حساب حتى الآن.", + "error.msg.unverified_account": "لم يتم التحقق من حساب {0} هذا، يرجى المحاولة مرة أخرى بعد التحقق.", + "error.msg.discord_guild_permission_denied": "غير مسموح لك بتسجيل الدخول.", "error.msg.cannot_get_user_info": "Can not get your user info from this {0} account.", "error.param.provider_github": "GitHub", "error.param.provider_google": "Google", @@ -406,29 +406,29 @@ export default { "error.param.provider_discord": "Discord", "error.param.provider_oidc": "OpenID Connect", // Common translations - "common.button.save": "Save", - "common.button.create": "Create", - "common.button.submit": "Submit", - "common.button.delete": "Delete", - "common.button.cancel": "Cancel", - "common.button.confirm": "Confirm", - "common.button.disable": "Disable", - "common.button.share": "Share", - "common.button.generate": "Generate", - "common.button.done": "Done", - "common.text.link": "Link", - "common.text.navigate-to-link": "Go to the link", - "common.text.or": "or", - "common.button.go-back": "Go back", - "common.button.go-home": "Go home", - "common.notify.copied": "Your link was copied to the clipboard", - "common.success": "Success", - "common.error": "Error", - "common.error.unknown": "An unknown error occurred", - "common.error.invalid-email": "Invalid email address", - "common.error.too-short": "Must be at least {length} characters", - "common.error.too-long": "Must be at most {length} characters", - "common.error.exact-length": "Must be exactly {length} characters", - "common.error.invalid-number": "Must be a number", - "common.error.field-required": "This field is required" + "common.button.save": "حفظ", + "common.button.create": "إنشاء", + "common.button.submit": "إرسال", + "common.button.delete": "حذف", + "common.button.cancel": "إلغاء", + "common.button.confirm": "تأكيد", + "common.button.disable": "إيقاف", + "common.button.share": "مشاركة", + "common.button.generate": "توليد", + "common.button.done": "تم", + "common.text.link": "الرابط", + "common.text.navigate-to-link": "الذهاب إلى الرابط", + "common.text.or": "أو", + "common.button.go-back": "العودة", + "common.button.go-home": "العودة للصفحة الرئيسية", + "common.notify.copied": "تم نسخ الرابط إلى الحافظة", + "common.success": "تم", + "common.error": "خطأ", + "common.error.unknown": "حدث خطأ غير معروف", + "common.error.invalid-email": "عنوان البريد غير صحيح", + "common.error.too-short": "يجب أن يكون على الأقل {length} حرفًا", + "common.error.too-long": "يجب أن يكون على الأكثر {length} حرفًا", + "common.error.exact-length": "يجب أن يكون بالضبط {length} حرفًا", + "common.error.invalid-number": "يجب أن يكون رقماً", + "common.error.field-required": "هذا الحقل مطلوب" }; \ No newline at end of file From dd9ddb8659a27c40bb5c46ca8481e4c4b9f0abb0 Mon Sep 17 00:00:00 2001 From: Elias Schneider Date: Thu, 30 May 2024 12:13:05 +0200 Subject: [PATCH 5/8] New translations en-us.ts (Korean) --- frontend/src/i18n/translations/ko-KR.ts | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/frontend/src/i18n/translations/ko-KR.ts b/frontend/src/i18n/translations/ko-KR.ts index eb747c8..689ab62 100644 --- a/frontend/src/i18n/translations/ko-KR.ts +++ b/frontend/src/i18n/translations/ko-KR.ts @@ -167,11 +167,11 @@ export default { "account.reverseShares.modal.delete.description": "Do you really want to delete this reverse share? If you do, the associated shares will be deleted as well.", // END /account/reverseShares // /admin - "admin.title": "Administration", - "admin.button.users": "User management", - "admin.button.shares": "Share management", - "admin.button.config": "Configuration", - "admin.version": "Version", + "admin.title": "관리자", + "admin.button.users": "사용자 관리", + "admin.button.shares": "공유 관리", + "admin.button.config": "구성", + "admin.version": "버전", // END /admin // /admin/users "admin.users.title": "User management", From 7c670b9e1933a856d7b44ae02e0018f28a28bd02 Mon Sep 17 00:00:00 2001 From: Elias Schneider Date: Thu, 30 May 2024 13:58:43 +0200 Subject: [PATCH 6/8] New translations en-us.ts (Korean) --- frontend/src/i18n/translations/ko-KR.ts | 430 ++++++++++++------------ 1 file changed, 215 insertions(+), 215 deletions(-) diff --git a/frontend/src/i18n/translations/ko-KR.ts b/frontend/src/i18n/translations/ko-KR.ts index 689ab62..38c7962 100644 --- a/frontend/src/i18n/translations/ko-KR.ts +++ b/frontend/src/i18n/translations/ko-KR.ts @@ -164,7 +164,7 @@ export default { "account.reverseShares.table.expires": "만료 날짜", "account.reverseShares.modal.reverse-share-link": "역방향 공유 링크", "account.reverseShares.modal.delete.title": "역방향 공유 삭제", - "account.reverseShares.modal.delete.description": "Do you really want to delete this reverse share? If you do, the associated shares will be deleted as well.", + "account.reverseShares.modal.delete.description": "이 역방향 공유를 삭제하시겠습니까? 삭제하면 관련 공유도 삭제됩니다.", // END /account/reverseShares // /admin "admin.title": "관리자", @@ -174,58 +174,58 @@ export default { "admin.version": "버전", // END /admin // /admin/users - "admin.users.title": "User management", - "admin.users.table.username": "Username", - "admin.users.table.email": "Email", - "admin.users.table.admin": "Admin", - "admin.users.edit.update.title": "Update user {username}", - "admin.users.edit.update.admin-privileges": "Admin privileges", - "admin.users.edit.update.change-password.title": "Change password", - "admin.users.edit.update.change-password.field": "New password", - "admin.users.edit.update.change-password.button": "Save new password", - "admin.users.edit.update.notify.password.success": "Password changed successfully", - "admin.users.edit.delete.title": "Delete user {username}", - "admin.users.edit.delete.description": "Do you really want to delete this user and all his shares?", + "admin.users.title": "사용자 관리", + "admin.users.table.username": "사용자 이름", + "admin.users.table.email": "이메일", + "admin.users.table.admin": "관리자", + "admin.users.edit.update.title": "{username} 사용자 업데이트", + "admin.users.edit.update.admin-privileges": "Admin Privilege", + "admin.users.edit.update.change-password.title": "비밀번호 변경", + "admin.users.edit.update.change-password.field": "새로운 비밀번호", + "admin.users.edit.update.change-password.button": "새 비밀번호 저장", + "admin.users.edit.update.notify.password.success": "비밀번호 변경 완료", + "admin.users.edit.delete.title": "{username} 사용자 삭제", + "admin.users.edit.delete.description": "이 사용자의 모든 공유를 삭제하시겠습니까?", // showCreateUserModal.tsx - "admin.users.modal.create.title": "Create user", - "admin.users.modal.create.username": "Username", - "admin.users.modal.create.email": "Email", - "admin.users.modal.create.password": "Password", - "admin.users.modal.create.manual-password": "Set password manually", - "admin.users.modal.create.manual-password.description": "If not checked, the user will receive an email with a link to set their password.", - "admin.users.modal.create.admin": "Admin privileges", - "admin.users.modal.create.admin.description": "If checked, the user will be able to access the admin panel.", + "admin.users.modal.create.title": "사용자 생성", + "admin.users.modal.create.username": "사용자 이름", + "admin.users.modal.create.email": "이메일", + "admin.users.modal.create.password": "비밀번호", + "admin.users.modal.create.manual-password": "수동 암호 설정", + "admin.users.modal.create.manual-password.description": "선택하지 않으면 사용자는 암호를 설정할 수 있는 링크가 포함된 이메일을 받게 됩니다.", + "admin.users.modal.create.admin": "Admin Privilege", + "admin.users.modal.create.admin.description": "이 옵션을 선택하면 사용자는 관리 패널에 액세스할 수 있습니다.", // END /admin/users // /admin/shares - "admin.shares.title": "Share management", - "admin.shares.table.id": "Share ID", - "admin.shares.table.username": "Creator", - "admin.shares.table.visitors": "Visitors", - "admin.shares.table.expires": "Expires At", - "admin.shares.edit.delete.title": "Delete share {id}", - "admin.shares.edit.delete.description": "Do you really want to delete this share?", + "admin.shares.title": "공유 관리", + "admin.shares.table.id": "공유 ID", + "admin.shares.table.username": "만든이", + "admin.shares.table.visitors": "방문자", + "admin.shares.table.expires": "만료일", + "admin.shares.edit.delete.title": "공유 삭제 {id}", + "admin.shares.edit.delete.description": "정말로 이 공유를 삭제하시겠습니까?", // END /admin/shares // /upload - "upload.title": "Upload", - "upload.notify.generic-error": "An error occurred while finishing your share.", - "upload.notify.count-failed": "{count} files failed to upload. Trying again.", + "upload.title": "업로드", + "upload.notify.generic-error": "공유를 완료하는 동안 오류가 발생했습니다.", + "upload.notify.count-failed": "{count}개의 파일을 업로드하지 못했습니다. 다시 시도하세요.", // Dropzone.tsx - "upload.dropzone.title": "Upload files", - "upload.dropzone.description": "Drag'n'drop files here to start your share. We can accept only files that are less than {maxSize} in total.", - "upload.dropzone.notify.file-too-big": "Your files exceed the maximum share size of {maxSize}.", + "upload.dropzone.title": "파일 업로드", + "upload.dropzone.description": "파일을 여기로 드래그&드랍하여 파일 업로드를 시작합니다. {maxSize} 를 초과하지 않는 파일만 업로드할 수 있습니다.", + "upload.dropzone.notify.file-too-big": "파일이 {maxSize} 의 최대 공유 크기를 초과합니다.", // FileList.tsx - "upload.filelist.name": "Name", - "upload.filelist.size": "Size", + "upload.filelist.name": "이름", + "upload.filelist.size": "크기", // showCreateUploadModal.tsx - "upload.modal.title": "Create Share", - "upload.modal.link.error.invalid": "Can only contain letters, numbers, underscores, and hyphens", - "upload.modal.link.error.taken": "This link is already in use", - "upload.modal.not-signed-in": "You're not signed in", - "upload.modal.not-signed-in-description": "You will be unable to delete your share manually and view the visitor count.", - "upload.modal.expires.never": "never", - "upload.modal.expires.never-long": "Never Expires", - "upload.modal.expires.error.too-long": "Expiration exceeds maximum expiration date of {max}.", - "upload.modal.link.label": "Link", + "upload.modal.title": "공유 생성", + "upload.modal.link.error.invalid": "문자, 숫자, 밑줄 및 하이픈만 포함할 수 있습니다", + "upload.modal.link.error.taken": "이미 사용 중인 링크입니다", + "upload.modal.not-signed-in": "로그인하지 않았습니다", + "upload.modal.not-signed-in-description": "공유를 수동으로 삭제하고 방문자 수를 볼 수 없습니다.", + "upload.modal.expires.never": "절대 안 함", + "upload.modal.expires.never-long": "만료 없음", + "upload.modal.expires.error.too-long": "만료가 {max} 의 최대 만료일을 초과합니다.", + "upload.modal.link.label": "링크", "upload.modal.expires.label": "만료일", "upload.modal.expires.minute-singular": "분", "upload.modal.expires.minute-plural": "분", @@ -242,193 +242,193 @@ export default { "upload.modal.accordion.name-and-description.title": "이름과 설명", "upload.modal.accordion.name-and-description.name.placeholder": "이름", "upload.modal.accordion.name-and-description.description.placeholder": "공유를 받을 사람에게 메모", - "upload.modal.accordion.email.title": "Email recipients", - "upload.modal.accordion.email.placeholder": "Enter email recipients", - "upload.modal.accordion.email.invalid-email": "Invalid email address", - "upload.modal.accordion.security.title": "Security options", - "upload.modal.accordion.security.password.label": "Password protection", - "upload.modal.accordion.security.password.placeholder": "No password", - "upload.modal.accordion.security.max-views.label": "Maximum views", - "upload.modal.accordion.security.max-views.placeholder": "No limit", + "upload.modal.accordion.email.title": "받는 사람 메일 주소", + "upload.modal.accordion.email.placeholder": "메일 주소 입력", + "upload.modal.accordion.email.invalid-email": "이메일 주소가 틀립니다", + "upload.modal.accordion.security.title": "보안 설정", + "upload.modal.accordion.security.password.label": "비밀번호로 보호", + "upload.modal.accordion.security.password.placeholder": "비밀번호 없음", + "upload.modal.accordion.security.max-views.label": "최대 보기 횟수", + "upload.modal.accordion.security.max-views.placeholder": "제한 없음", // showCompletedUploadModal.tsx - "upload.modal.completed.never-expires": "This share will never expire.", - "upload.modal.completed.expires-on": "This share will expire on {expiration}.", - "upload.modal.completed.share-ready": "Share ready", + "upload.modal.completed.never-expires": "이 공유 만료되지 않습니다.", + "upload.modal.completed.expires-on": "이 공유는 {expiration} 에 만료됩니다.", + "upload.modal.completed.share-ready": "공유 준비", // END /upload // /share/[id] - "share.title": "Share {shareId}", - "share.description": "Look what I've shared with you!", - "share.error.visitor-limit-exceeded.title": "Visitor limit exceeded", + "share.title": "공유 {shareId}", + "share.description": "내가 당신과 공유한 것을 보세요!", + "share.error.visitor-limit-exceeded.title": "방문자 제한 초과", "share.error.visitor-limit-exceeded.description": "The visitor limit from this share has been exceeded.", - "share.error.removed.title": "Share removed", - "share.error.not-found.title": "Share not found", - "share.error.not-found.description": "The share you're looking for doesn't exist.", - "share.modal.password.title": "Password required", - "share.modal.password.description": "To access this share please enter the password for the share.", - "share.modal.password": "Password", - "share.modal.error.invalid-password": "Invalid password", - "share.button.download-all": "Download all", - "share.notify.download-all-preparing": "The share is preparing. Try again in a few minutes.", - "share.modal.file-link": "File link", - "share.table.name": "Name", - "share.table.size": "Size", - "share.modal.file-preview.error.not-supported.title": "Preview not supported", - "share.modal.file-preview.error.not-supported.description": "A preview for this file type is unsupported. Please download the file to view it.", + "share.error.removed.title": "공유가 삭제됨", + "share.error.not-found.title": "공유를 찾을 수 없습니다.", + "share.error.not-found.description": "당신이 찾는 공유는 존재하지 않습니다.", + "share.modal.password.title": "비밀번호 필요", + "share.modal.password.description": "이 공유에 액세스하려면 공유의 암호를 입력하십시오.", + "share.modal.password": "비밀번호", + "share.modal.error.invalid-password": "잘못된 비밀번호", + "share.button.download-all": "모두 다운로드", + "share.notify.download-all-preparing": "공유가 준비 중입니다. 잠시 후에 다시 시도하십시오.", + "share.modal.file-link": "파일 링크", + "share.table.name": "이름", + "share.table.size": "크기", + "share.modal.file-preview.error.not-supported.title": "미리보기는 지원되지 않습니다", + "share.modal.file-preview.error.not-supported.description": "이 파일 형식의 미리보기가 지원되지 않습니다. 파일을 다운로드하여 확인하십시오.", // END /share/[id] // /share/[id]/edit - "share.edit.title": "Edit {shareId}", - "share.edit.append-upload": "Append file", - "share.edit.notify.generic-error": "An error occurred while finishing your share.", - "share.edit.notify.save-success": "Share updated successfully", + "share.edit.title": "수정 {shareId}", + "share.edit.append-upload": "파일 추가", + "share.edit.notify.generic-error": "공유를 완료하는 동안 오류가 발생했습니다.", + "share.edit.notify.save-success": "공유가 업데이트 되었습니다.", // END /share/[id]/edit // /admin/config - "admin.config.title": "Configuration", - "admin.config.category.general": "General", - "admin.config.category.share": "Share", - "admin.config.category.email": "Email", + "admin.config.title": "구성", + "admin.config.category.general": "일반", + "admin.config.category.share": "공유", + "admin.config.category.email": "이메일", "admin.config.category.smtp": "SMTP", - "admin.config.category.oauth": "Social Login", - "admin.config.general.app-name": "App name", + "admin.config.category.oauth": "소셜 로그인", + "admin.config.general.app-name": "앱 이름", "admin.config.general.app-name.description": "Name of the application", - "admin.config.general.app-url": "App URL", - "admin.config.general.app-url.description": "On which URL Pingvin Share is available", - "admin.config.general.show-home-page": "Show home page", - "admin.config.general.show-home-page.description": "Whether to show the home page", - "admin.config.general.logo": "Logo", - "admin.config.general.logo.description": "Change your logo by uploading a new image. The image must be a PNG and should have the format 1:1.", - "admin.config.general.logo.placeholder": "Pick image", - "admin.config.email.enable-share-email-recipients": "Enable share email recipients", - "admin.config.email.enable-share-email-recipients.description": "Whether to allow emails to share recipients. Only enable this if you have enabled SMTP.", - "admin.config.email.share-recipients-subject": "Share recipients subject", - "admin.config.email.share-recipients-subject.description": "Subject of the email which gets sent to the share recipients.", - "admin.config.email.share-recipients-message": "Share recipients message", - "admin.config.email.share-recipients-message.description": "Message which gets sent to the share recipients. Available variables:\n {creator} - The username of the creator of the share\n {shareUrl} - The URL of the share\n {desc} - The description of the share\n {expires} - The expiration date of the share\n The variables will be replaced with the actual value.", - "admin.config.email.reverse-share-subject": "Reverse share subject", - "admin.config.email.reverse-share-subject.description": "Subject of the email which gets sent when someone created a share with your reverse share link.", - "admin.config.email.reverse-share-message": "Reverse share message", - "admin.config.email.reverse-share-message.description": "Message which gets sent when someone created a share with your reverse share link. {shareUrl} will be replaced with the creator's name and the share URL.", - "admin.config.email.reset-password-subject": "Reset password subject", - "admin.config.email.reset-password-subject.description": "Subject of the email which gets sent when a user requests a password reset.", - "admin.config.email.reset-password-message": "Reset password message", - "admin.config.email.reset-password-message.description": "Message which gets sent when a user requests a password reset. {url} will be replaced with the reset password URL.", - "admin.config.email.invite-subject": "Invite subject", - "admin.config.email.invite-subject.description": "Subject of the email which gets sent when an admin invites a user.", - "admin.config.email.invite-message": "Invite message", - "admin.config.email.invite-message.description": "Message which gets sent when an admin invites a user. {url} will be replaced with the invite URL and {password} with the password.", - "admin.config.share.allow-registration": "Allow registration", - "admin.config.share.allow-registration.description": "Whether registration is allowed", - "admin.config.share.allow-unauthenticated-shares": "Allow unauthenticated shares", - "admin.config.share.allow-unauthenticated-shares.description": "Whether unauthenticated users can create shares", - "admin.config.share.max-expiration": "Max expiration", - "admin.config.share.max-expiration.description": "Maximum share expiration in hours. Set to 0 to allow unlimited expiration.", - "admin.config.share.max-size": "Max size", - "admin.config.share.max-size.description": "Maximum share size in bytes", - "admin.config.share.zip-compression-level": "Zip compression level", - "admin.config.share.zip-compression-level.description": "Adjust the level to balance between file size and compression speed. Valid values range from 0 to 9, with 0 being no compression and 9 being maximum compression. ", - "admin.config.share.chunk-size": "Chunk size", - "admin.config.share.chunk-size.description": "Adjust the chunk size (in bytes) for your uploads to balance efficiency and reliability according to your internet connection. Smaller chunks can enhance success rates for unstable connections, while larger chunks speed up uploads for stable connections.", - "admin.config.smtp.enabled": "Enabled", - "admin.config.smtp.enabled.description": "Whether SMTP is enabled. Only set this to true if you entered the host, port, email, user and password of your SMTP server.", - "admin.config.smtp.host": "Host", - "admin.config.smtp.host.description": "Host of the SMTP server", - "admin.config.smtp.port": "Port", - "admin.config.smtp.port.description": "Port of the SMTP server", - "admin.config.smtp.email": "Email", - "admin.config.smtp.email.description": "Email address which the emails get sent from", - "admin.config.smtp.username": "Username", - "admin.config.smtp.username.description": "Username of the SMTP server", - "admin.config.smtp.password": "Password", - "admin.config.smtp.password.description": "Password of the SMTP server", - "admin.config.smtp.button.test": "Send test email", - "admin.config.oauth.allow-registration": "Allow registration", - "admin.config.oauth.allow-registration.description": "Allow users to register via social login", - "admin.config.oauth.ignore-totp": "Ignore TOTP", - "admin.config.oauth.ignore-totp.description": "Whether to ignore TOTP when user using social login", - "admin.config.oauth.github-enabled": "GitHub", - "admin.config.oauth.github-enabled.description": "Whether GitHub login is enabled", - "admin.config.oauth.github-client-id": "GitHub Client ID", - "admin.config.oauth.github-client-id.description": "Client ID of the GitHub OAuth app", - "admin.config.oauth.github-client-secret": "GitHub Client secret", - "admin.config.oauth.github-client-secret.description": "Client secret of the GitHub OAuth app", - "admin.config.oauth.google-enabled": "Google", - "admin.config.oauth.google-enabled.description": "Whether Google login is enabled", - "admin.config.oauth.google-client-id": "Google Client ID", - "admin.config.oauth.google-client-id.description": "Client ID of the Google OAuth app", - "admin.config.oauth.google-client-secret": "Google Client secret", - "admin.config.oauth.google-client-secret.description": "Client secret of the Google OAuth app", - "admin.config.oauth.microsoft-enabled": "Microsoft", - "admin.config.oauth.microsoft-enabled.description": "Whether Microsoft login is enabled", - "admin.config.oauth.microsoft-tenant": "Microsoft Tenant", - "admin.config.oauth.microsoft-tenant.description": "Tenant ID of the Microsoft OAuth app\ncommon: Users with both a personal Microsoft account and a work or school account from Microsoft Entra ID can sign in to the application. organizations: Only users with work or school accounts from Microsoft Entra ID can sign in to the application.\nconsumers: Only users with a personal Microsoft account can sign in to the application.\ndomain name of the Microsoft Entra tenant or the tenant ID in GUID format: Only users from a specific Microsoft Entra tenant (directory members with a work or school account or directory guests with a personal Microsoft account) can sign in to the application.", - "admin.config.oauth.microsoft-client-id": "Microsoft Client ID", - "admin.config.oauth.microsoft-client-id.description": "Client ID of the Microsoft OAuth app", - "admin.config.oauth.microsoft-client-secret": "Microsoft Client secret", - "admin.config.oauth.microsoft-client-secret.description": "Client secret of the Microsoft OAuth app", - "admin.config.oauth.discord-enabled": "Discord", - "admin.config.oauth.discord-enabled.description": "Whether Discord login is enabled", - "admin.config.oauth.discord-limited-guild": "Discord limited server ID", - "admin.config.oauth.discord-limited-guild.description": "Limit signing in to users in a specific server. Leave it blank to disable.", - "admin.config.oauth.discord-client-id": "Discord Client ID", - "admin.config.oauth.discord-client-id.description": "Client ID of the Discord OAuth app", - "admin.config.oauth.discord-client-secret": "Discord Client secret", - "admin.config.oauth.discord-client-secret.description": "Client secret of the Discord OAuth app", - "admin.config.oauth.oidc-enabled": "OpenID Connect", - "admin.config.oauth.oidc-enabled.description": "Whether OpenID Connect login is enabled", + "admin.config.general.app-url": "앱 URL", + "admin.config.general.app-url.description": "Pingvin Share를 사용할 수 있는 URL", + "admin.config.general.show-home-page": "홈 페이지 표시", + "admin.config.general.show-home-page.description": "홈 페이지를 표시할지 여부를 점검하십시오.", + "admin.config.general.logo": "로고", + "admin.config.general.logo.description": "새 이미지를 업로드하여 로고를 변경하십시오. 이미지는 PNG여야 하며 1:1 비율이어야 합니다.", + "admin.config.general.logo.placeholder": "이미지 선택", + "admin.config.email.enable-share-email-recipients": "메일 수신 허용", + "admin.config.email.enable-share-email-recipients.description": "메일이 수신자를 공유하도록 허용할지 여부. SMTP를 사용 가능으로 설정한 경우에만 이 옵션을 사용 가능으로 설정합니다.", + "admin.config.email.share-recipients-subject": "공유 제목", + "admin.config.email.share-recipients-subject.description": "공유 수신자에게 전송되는 이메일의 제목입니다.", + "admin.config.email.share-recipients-message": "수신자 메시지 공유", + "admin.config.email.share-recipients-message.description": "공유 수신자에게 보내는 메시지입니다. 사용 가능한 변수:\n {creator} - 공유 작성자의 사용자 이름\n {shareUrl} - 공유의 URL\n {desc} - 공유에 대한 설명\n {expires} - 공유 만료일\n 변수는 실제 값으로 대체됩니다.", + "admin.config.email.reverse-share-subject": "역공유 제목", + "admin.config.email.reverse-share-subject.description": "누군가 당신이 공유한 역방향 공유 링크를 사용하여 공유를 생성했을 때 전송되는 이메일의 제목입니다.", + "admin.config.email.reverse-share-message": "역공유 메시지", + "admin.config.email.reverse-share-message.description": "누군가 귀하의 역방향 공유 링크를 사용하여 공유를 생성하면 전송되는 메시지입니다.. {shareUrl} 은 작성자 이름 및 공유 URL로 대체됩니다.", + "admin.config.email.reset-password-subject": "비밀번호 재설정 제목", + "admin.config.email.reset-password-subject.description": "사용자가 암호 재설정을 요청할 때 전송되는 메일의 제목입니다.", + "admin.config.email.reset-password-message": "비밀번호 재설정 메시지", + "admin.config.email.reset-password-message.description": "사용자가 비밀번호 재설정을 요청할 때 전송되는 메시지입니다. {url} 은 비밀번호 재설정 URL로 대체됩니다.", + "admin.config.email.invite-subject": "초대 제목", + "admin.config.email.invite-subject.description": "관리자가 사용자를 초대할 때 전송되는 이메일의 제목입니다.", + "admin.config.email.invite-message": "초대 메시지", + "admin.config.email.invite-message.description": "관리자가 사용자를 초대하면 전송되는 메시지입니다. {url} 은 초대 URL로, {password} 는 비밀번호로 대체됩니다.", + "admin.config.share.allow-registration": "가입 허용", + "admin.config.share.allow-registration.description": "등록 가능 여부", + "admin.config.share.allow-unauthenticated-shares": "인증되지 않은 공유 허용", + "admin.config.share.allow-unauthenticated-shares.description": "인증되지 않은 사용자가 공유를 생성할 수 있는지 여부", + "admin.config.share.max-expiration": "최대 만료일", + "admin.config.share.max-expiration.description": "최대 공유 만료 시간입니다. 만료 기간을 설정하지 않는경우 0으로 설정합니다.", + "admin.config.share.max-size": "최대 크기", + "admin.config.share.max-size.description": "공유 최대 크기 - 바이트", + "admin.config.share.zip-compression-level": "압축 레벨", + "admin.config.share.zip-compression-level.description": "파일 크기와 압축 속도 간의 균형을 맞추도록 레벨을 조정합니다. 유효한 값의 범위는 0에서 9까지이며, 0은 압축되지 않고 9는 최대 압축입니다. ", + "admin.config.share.chunk-size": "청크 크기", + "admin.config.share.chunk-size.description": "업로드할 청크 크기(바이트 단위)를 조정하여 인터넷 연결에 따라 효율성과 신뢰성의 균형을 유지합니다. 더 작은 청크는 불안정한 연결에 대한 성공률을 향상시킬 수 있고, 더 큰 청크는 안정적인 연결에 대한 업로드 속도를 높일 수 있습니다.", + "admin.config.smtp.enabled": "활성화됨", + "admin.config.smtp.enabled.description": "SMTP 사용 여부 SMTP 서버의 호스트, 포트, 전자 메일, 사용자 및 암호를 입력한 경우에만 true로 설정합니다.", + "admin.config.smtp.host": "호스트", + "admin.config.smtp.host.description": "SMTP 서버의 호스트", + "admin.config.smtp.port": "포트", + "admin.config.smtp.port.description": "SMTP 서버 포트", + "admin.config.smtp.email": "이메일", + "admin.config.smtp.email.description": "전자 메일을 보낸 전자 메일 주소", + "admin.config.smtp.username": "사용자 이름", + "admin.config.smtp.username.description": "SMTP 사용자 이름, 서버 비밀번호", + "admin.config.smtp.password": "비밀번호", + "admin.config.smtp.password.description": "SMTP 서버 비밀번호", + "admin.config.smtp.button.test": "테스트 이메일 보내기", + "admin.config.oauth.allow-registration": "가입 허용", + "admin.config.oauth.allow-registration.description": "사용자가 소셜 로그인을 통해 등록할 수 있도록 허용", + "admin.config.oauth.ignore-totp": "TOTP 무시", + "admin.config.oauth.ignore-totp.description": "사용자가 소셜 로그인을 사용하는 경우 TOTP를 무시할 것인지 여부", + "admin.config.oauth.github-enabled": "깃허브", + "admin.config.oauth.github-enabled.description": "깃허브 로그인 사용 여부", + "admin.config.oauth.github-client-id": "GitHub 클라이언트 ID", + "admin.config.oauth.github-client-id.description": "GitHub OAuth 앱의 클라이언트 ID", + "admin.config.oauth.github-client-secret": "GitHub 클라이언트 secret", + "admin.config.oauth.github-client-secret.description": "GitHub OAuth 앱의 클라이언트 secret", + "admin.config.oauth.google-enabled": "구글", + "admin.config.oauth.google-enabled.description": "구글 로그인 활성화 여부", + "admin.config.oauth.google-client-id": "Google 클라이언트 ID", + "admin.config.oauth.google-client-id.description": "Google OAuth 앱의 클라이언트 ID", + "admin.config.oauth.google-client-secret": "Google 클라이언트 secret", + "admin.config.oauth.google-client-secret.description": "Google OAuth 앱의 클라이언트 secret", + "admin.config.oauth.microsoft-enabled": "마이크로소프트", + "admin.config.oauth.microsoft-enabled.description": "마이크로소프트 로그인 사용 여부", + "admin.config.oauth.microsoft-tenant": "마이크로소프트 테넌트", + "admin.config.oauth.microsoft-tenant.description": "Microsoft OAuth 앱의 테넌트 ID\n공통: Microsoft 개인 계정과 Microsoft Entra ID의 직장 또는 학교 계정을 모두 가진 사용자는 응용 프로그램에 로그인할 수 있습니다. 조직: Microsoft Entra ID의 직장 또는 학교 계정을 가진 사용자만 응용 프로그램에 로그인할 수 있습니다.\n소비자: 개인 마이크로소프트 계정을 가진 사용자만 애플리케이션에 로그인할 수 있습니다.\nMicrosoft Entra 테넌트의 도메인 이름 또는 GUID 형식의 테넌트 ID: 특정 Microsoft Entra 테넌트의 사용자(직장 또는 학교 계정을 가진 디렉토리 구성원 또는 개인 Microsoft 계정을 가진 디렉토리 게스트)만 응용 프로그램에 로그인할 수 있습니다.", + "admin.config.oauth.microsoft-client-id": "마이크로소프트 클라이언트 ID", + "admin.config.oauth.microsoft-client-id.description": "Microsoft OAuth 앱의 클라이언트 ID", + "admin.config.oauth.microsoft-client-secret": "Microsoft 클라이언트 secret", + "admin.config.oauth.microsoft-client-secret.description": "Microsoft OAuth 앱의 클라이언트 비밀", + "admin.config.oauth.discord-enabled": "디스코드", + "admin.config.oauth.discord-enabled.description": "Discord 로그인 활성화 여부", + "admin.config.oauth.discord-limited-guild": "디스코드 제한 서버 ID", + "admin.config.oauth.discord-limited-guild.description": "특정 서버의 사용자로 로그인을 제한합니다. 사용하지 않으려면 비워 둡니다.", + "admin.config.oauth.discord-client-id": "디스코드 클라이언트 ID", + "admin.config.oauth.discord-client-id.description": "Discord OAuth 앱의 클라이언트 ID", + "admin.config.oauth.discord-client-secret": "Discord 클라이언트 secret", + "admin.config.oauth.discord-client-secret.description": "Discord OAuth 앱의 클라이언트 secret", + "admin.config.oauth.oidc-enabled": "OpenID 연결", + "admin.config.oauth.oidc-enabled.description": "OpenID Connect 로그인 사용 여부", "admin.config.oauth.oidc-discovery-uri": "OpenID Connect Discovery URI", "admin.config.oauth.oidc-discovery-uri.description": "Discovery URI of the OpenID Connect OAuth app", "admin.config.oauth.oidc-username-claim": "OpenID Connect username claim", - "admin.config.oauth.oidc-username-claim.description": "Username claim in OpenID Connect ID token. Leave it blank if you don't know what this config is.", - "admin.config.oauth.oidc-client-id": "OpenID Connect Client ID", - "admin.config.oauth.oidc-client-id.description": "Client ID of the OpenID Connect OAuth app", - "admin.config.oauth.oidc-client-secret": "OpenID Connect Client secret", - "admin.config.oauth.oidc-client-secret.description": "Client secret of the OpenID Connect OAuth app", + "admin.config.oauth.oidc-username-claim.description": "OpenID Connect ID 토큰의 Username claim 입니다. 이 구성이 무엇인지 모르면 비워 둡니다.", + "admin.config.oauth.oidc-client-id": "OpenID Connect 클라이언트 ID", + "admin.config.oauth.oidc-client-id.description": "OpenID Connect OAuth 앱의 클라이언트 ID", + "admin.config.oauth.oidc-client-secret": "OpenID 클라이언트 secret", + "admin.config.oauth.oidc-client-secret.description": "OpenID Connect OAuth 앱의 클라이언트 secret", // 404 - "404.description": "Oops this page doesn't exist.", - "404.button.home": "Bring me back home", + "404.description": "이런, 이 페이지는 존재하지 않습니다.", + "404.button.home": "나를 집으로 데려다 줘", // error - "error.title": "Error", - "error.description": "Oops!", - "error.button.back": "Go back", - "error.msg.default": "Something went wrong.", - "error.msg.access_denied": "You canceled the authentication process, please try again.", - "error.msg.expired_token": "The authentication process took too long, please try again.", - "error.msg.invalid_token": "Internal Error", - "error.msg.no_user": "User linked to this {0} account doesn't exist.", - "error.msg.no_email": "Can't get email address from this {0} account.", - "error.msg.already_linked": "This {0} account is already linked to another account.", - "error.msg.not_linked": "This {0} account haven't linked to any account yet.", - "error.msg.unverified_account": "This {0} account is unverified, please try again after verification.", - "error.msg.discord_guild_permission_denied": "You are not allowed to sign in.", - "error.msg.cannot_get_user_info": "Can not get your user info from this {0} account.", - "error.param.provider_github": "GitHub", - "error.param.provider_google": "Google", - "error.param.provider_microsoft": "Microsoft", - "error.param.provider_discord": "Discord", - "error.param.provider_oidc": "OpenID Connect", + "error.title": "에러", + "error.description": "이런!", + "error.button.back": "뒤로 가기", + "error.msg.default": "문제가 발생했습니다", + "error.msg.access_denied": "인증 프로세스가 취소되었습니다. 다시 시도하십시오.", + "error.msg.expired_token": "인증 절차가 너무 오래 걸렸습니다. 다시 시도하십시오.", + "error.msg.invalid_token": "내부 오류", + "error.msg.no_user": "{0} 계정에 연결된 사용자가 없습니다.", + "error.msg.no_email": "이 {0} 계정에서 메일 주소를 가져올 수 없습니다.", + "error.msg.already_linked": "이 {0} 계정은 이미 다른 계정에 연결되어 있습니다.", + "error.msg.not_linked": "이 {0} 계정은 아직 어떤 계정에도 연결되지 않았습니다.", + "error.msg.unverified_account": "이 {0} 계정은 확인되지 않았습니다. 확인 후 다시 시도하십시오.", + "error.msg.discord_guild_permission_denied": "로그인할 수 없습니다.", + "error.msg.cannot_get_user_info": "이 {0} 계정에서 사용자 정보를 가져올 수 없습니다", + "error.param.provider_github": "깃허브", + "error.param.provider_google": "구글", + "error.param.provider_microsoft": "마이크로소프트", + "error.param.provider_discord": "디스코드", + "error.param.provider_oidc": "OpenID 연결", // Common translations - "common.button.save": "Save", - "common.button.create": "Create", - "common.button.submit": "Submit", - "common.button.delete": "Delete", - "common.button.cancel": "Cancel", - "common.button.confirm": "Confirm", - "common.button.disable": "Disable", - "common.button.share": "Share", - "common.button.generate": "Generate", - "common.button.done": "Done", - "common.text.link": "Link", - "common.text.navigate-to-link": "Go to the link", - "common.text.or": "or", - "common.button.go-back": "Go back", + "common.button.save": "저장", + "common.button.create": "새로 만들기", + "common.button.submit": "제출", + "common.button.delete": "삭제", + "common.button.cancel": "취소", + "common.button.confirm": "확인", + "common.button.disable": "비활성화", + "common.button.share": "공유", + "common.button.generate": "생성", + "common.button.done": "완료", + "common.text.link": "링크", + "common.text.navigate-to-link": "링크로 이동", + "common.text.or": "또는", + "common.button.go-back": "뒤로 가기", "common.button.go-home": "첫 페이지", - "common.notify.copied": "Your link was copied to the clipboard", + "common.notify.copied": "당신의 링크가 클립보드에 복사되었습니다.", "common.success": "성공", "common.error": "에러", - "common.error.unknown": "An unknown error occurred", - "common.error.invalid-email": "Invalid email address", - "common.error.too-short": "Must be at least {length} characters", - "common.error.too-long": "Must be at most {length} characters", - "common.error.exact-length": "Must be exactly {length} characters", - "common.error.invalid-number": "Must be a number", - "common.error.field-required": "This field is required" + "common.error.unknown": "알 수 없는 오류가 발생했습니다.", + "common.error.invalid-email": "이메일 주소가 틀립니다", + "common.error.too-short": "최소 {length} 자 이상이어야 합니다", + "common.error.too-long": "최대 {length} 자 까지 입력가능합니다.", + "common.error.exact-length": "{length} 자 이어야 합니다.", + "common.error.invalid-number": "숫자만 가능합니다.", + "common.error.field-required": "이 필드는 필수입니다" }; \ No newline at end of file From 93fb82d67ca900c9ec63f3346d7220cffebabb4f Mon Sep 17 00:00:00 2001 From: Elias Schneider Date: Wed, 5 Jun 2024 16:29:19 +0200 Subject: [PATCH 7/8] New translations en-us.ts (Arabic, Egypt) --- frontend/src/i18n/translations/ar-EG.ts | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/frontend/src/i18n/translations/ar-EG.ts b/frontend/src/i18n/translations/ar-EG.ts index 3e6f417..ac8a4e5 100644 --- a/frontend/src/i18n/translations/ar-EG.ts +++ b/frontend/src/i18n/translations/ar-EG.ts @@ -291,19 +291,19 @@ export default { "admin.config.general.app-name": "اسم التطبيق", "admin.config.general.app-name.description": "اسم التطبيق", "admin.config.general.app-url": "رابط التطبيق", - "admin.config.general.app-url.description": "On which URL Pingvin Share is available", + "admin.config.general.app-url.description": "الرابط الذي تكون مشاركة Pingvin صالحة عليه", "admin.config.general.show-home-page": "إظهار الصفحة الرئيسية", "admin.config.general.show-home-page.description": "تحديد ما إذا كان سيتم عرض الصفحة الرئيسية", "admin.config.general.logo": "الشعار", "admin.config.general.logo.description": "يمكنك تغيير شعارك عن طريق تحميل صورة جديدة. يجب أن تكون الصورة PNG ويجب أن يكون تنسيقها 1:1.", "admin.config.general.logo.placeholder": "اختر صورة", "admin.config.email.enable-share-email-recipients": "تفعيل مستلمي البريد الإلكتروني لهذه المشاركة", - "admin.config.email.enable-share-email-recipients.description": "Whether to allow emails to share recipients. Only enable this if you have enabled SMTP.", - "admin.config.email.share-recipients-subject": "Share recipients subject", - "admin.config.email.share-recipients-subject.description": "Subject of the email which gets sent to the share recipients.", - "admin.config.email.share-recipients-message": "Share recipients message", - "admin.config.email.share-recipients-message.description": "Message which gets sent to the share recipients. Available variables:\n {creator} - The username of the creator of the share\n {shareUrl} - The URL of the share\n {desc} - The description of the share\n {expires} - The expiration date of the share\n The variables will be replaced with the actual value.", - "admin.config.email.reverse-share-subject": "Reverse share subject", + "admin.config.email.enable-share-email-recipients.description": "السماح لرسائل البريد بأن تُشارك المستلمين. لا تفعّل هذا الخيار ما لم تفعّل SMTP مسبقًا.", + "admin.config.email.share-recipients-subject": "عنوان الرسالة لمستلمي المشاركة", + "admin.config.email.share-recipients-subject.description": "عنوان البريد الذي سيُرسَل لمستقبِلي المشاركة.", + "admin.config.email.share-recipients-message": "رسالتك لمستقبِلي المشاركة", + "admin.config.email.share-recipients-message.description": "الرسالة التي ستُرسل لمستقبِلي المشاركة. يمكنك استخدام هذه المتغيرات:\n{creator} - اسم المستخدم الذي أنشأ المشاركة\n{shareUrl} - رابط المشاركة\n{desc} - وصف المشاركة\n{expires} - تاريخ انتهاء صلاحية المشاركة\nستتم كتابة قيم هذه المتغيرات تلقائيًا.", + "admin.config.email.reverse-share-subject": "عنوان المشاركة العكسية", "admin.config.email.reverse-share-subject.description": "Subject of the email which gets sent when someone created a share with your reverse share link.", "admin.config.email.reverse-share-message": "Reverse share message", "admin.config.email.reverse-share-message.description": "Message which gets sent when someone created a share with your reverse share link. {shareUrl} will be replaced with the creator's name and the share URL.", From 8cb1e116dce886ea59b89e40d4347038fe4476a2 Mon Sep 17 00:00:00 2001 From: Elias Schneider Date: Wed, 5 Jun 2024 17:40:33 +0200 Subject: [PATCH 8/8] New translations en-us.ts (Arabic, Egypt) --- frontend/src/i18n/translations/ar-EG.ts | 48 ++++++++++++------------- 1 file changed, 24 insertions(+), 24 deletions(-) diff --git a/frontend/src/i18n/translations/ar-EG.ts b/frontend/src/i18n/translations/ar-EG.ts index ac8a4e5..75e7b70 100644 --- a/frontend/src/i18n/translations/ar-EG.ts +++ b/frontend/src/i18n/translations/ar-EG.ts @@ -304,30 +304,30 @@ export default { "admin.config.email.share-recipients-message": "رسالتك لمستقبِلي المشاركة", "admin.config.email.share-recipients-message.description": "الرسالة التي ستُرسل لمستقبِلي المشاركة. يمكنك استخدام هذه المتغيرات:\n{creator} - اسم المستخدم الذي أنشأ المشاركة\n{shareUrl} - رابط المشاركة\n{desc} - وصف المشاركة\n{expires} - تاريخ انتهاء صلاحية المشاركة\nستتم كتابة قيم هذه المتغيرات تلقائيًا.", "admin.config.email.reverse-share-subject": "عنوان المشاركة العكسية", - "admin.config.email.reverse-share-subject.description": "Subject of the email which gets sent when someone created a share with your reverse share link.", - "admin.config.email.reverse-share-message": "Reverse share message", - "admin.config.email.reverse-share-message.description": "Message which gets sent when someone created a share with your reverse share link. {shareUrl} will be replaced with the creator's name and the share URL.", - "admin.config.email.reset-password-subject": "Reset password subject", - "admin.config.email.reset-password-subject.description": "Subject of the email which gets sent when a user requests a password reset.", - "admin.config.email.reset-password-message": "Reset password message", - "admin.config.email.reset-password-message.description": "Message which gets sent when a user requests a password reset. {url} will be replaced with the reset password URL.", - "admin.config.email.invite-subject": "Invite subject", - "admin.config.email.invite-subject.description": "Subject of the email which gets sent when an admin invites a user.", - "admin.config.email.invite-message": "Invite message", - "admin.config.email.invite-message.description": "Message which gets sent when an admin invites a user. {url} will be replaced with the invite URL and {password} with the password.", - "admin.config.share.allow-registration": "Allow registration", - "admin.config.share.allow-registration.description": "Whether registration is allowed", - "admin.config.share.allow-unauthenticated-shares": "Allow unauthenticated shares", - "admin.config.share.allow-unauthenticated-shares.description": "Whether unauthenticated users can create shares", - "admin.config.share.max-expiration": "Max expiration", - "admin.config.share.max-expiration.description": "Maximum share expiration in hours. Set to 0 to allow unlimited expiration.", - "admin.config.share.max-size": "Max size", - "admin.config.share.max-size.description": "Maximum share size in bytes", - "admin.config.share.zip-compression-level": "Zip compression level", - "admin.config.share.zip-compression-level.description": "Adjust the level to balance between file size and compression speed. Valid values range from 0 to 9, with 0 being no compression and 9 being maximum compression. ", - "admin.config.share.chunk-size": "Chunk size", - "admin.config.share.chunk-size.description": "Adjust the chunk size (in bytes) for your uploads to balance efficiency and reliability according to your internet connection. Smaller chunks can enhance success rates for unstable connections, while larger chunks speed up uploads for stable connections.", - "admin.config.smtp.enabled": "Enabled", + "admin.config.email.reverse-share-subject.description": "عنوان البريد الذي سيُرسل عندما يُنشئ شخص ما مشاركةً باستخدام رابط المشاركة العكسية الخاص بك.", + "admin.config.email.reverse-share-message": "رسالة المشاركة العكسية", + "admin.config.email.reverse-share-message.description": "الرسالة التي ستُرسل عندما يُنشئ شخص ما مشاركة باستخدام رابط المشاركة الخاص بك. سيُوضع اسم المُنشِئ ورابط المشاركة مكان {shareUrl}.", + "admin.config.email.reset-password-subject": "رسالة إعادة تعيين كلمة السر", + "admin.config.email.reset-password-subject.description": "عنوان البريد الذي سيُرسل حين يطلب مستخدم ما إعادة تعيين كلمة سرّه.", + "admin.config.email.reset-password-message": "رسالة إعادة تعيين كلمة السر", + "admin.config.email.reset-password-message.description": "الرسالة التي ستُرسل عندما يطلب المستخدم إعادة تعيين كلمة سرّه. سيُوضع رابط إعادة تعيين كلمة السر مكان {url}.", + "admin.config.email.invite-subject": "عنوان الدعوة", + "admin.config.email.invite-subject.description": "عنوان البريد الذي سيُرسل عندما يقوم المشرف بدعوة مستخدم ما.", + "admin.config.email.invite-message": "رسالة الدعوة", + "admin.config.email.invite-message.description": "الرسالة التي ستُرسل عندما يدعو مشرفٌ مستخدمًا. سيُوضع رابط الدعوة مكان {url} وكلمة السر مكان {password}.", + "admin.config.share.allow-registration": "السماح بالتسجيل", + "admin.config.share.allow-registration.description": "إتاحة تسجيل حساب جديد", + "admin.config.share.allow-unauthenticated-shares": "السماح بالمشاركات غير المصادق عليها", + "admin.config.share.allow-unauthenticated-shares.description": "إتاحة إنشاء المشاركات للمستخدمين غير الموثقين", + "admin.config.share.max-expiration": "أبعد زمن لانتهاء الصلاحية", + "admin.config.share.max-expiration.description": "أطول زمن لانتهاء صلاحية المشاركات بالساعات. الصفر يعني أن المشاركة لن تنتهي صلاحيتها.", + "admin.config.share.max-size": "أكبر حجم", + "admin.config.share.max-size.description": "أكبر حجم للمشاركة مقيسًا بالبايت", + "admin.config.share.zip-compression-level": "مستوى ضغط الZip", + "admin.config.share.zip-compression-level.description": "ضبط الميزان بين حجم الملف وسرعة الضغط. يمكنك إدخال قيم بين 0 إلى 9، حيث 0 تعني بدون ضغط و9 تعني أقصى ضغط. ", + "admin.config.share.chunk-size": "حجم القطعة", + "admin.config.share.chunk-size.description": "ضبط حجم القطعة (بالبايت) لملفاتك المرفوعة للموازنة بين الكفاءة والفعالية حسب قوة اتصالك بالإنترنت. القطع الأصغر يمكن أن ترفع معدل النجاح في حال كان اتصالك بالإنترنت غير مستقر، بينما القطع الأكبر يمكنها أن تُسرّع رفع الملفات في حال كان الاتصال بالإنترنت مستقرًا.", + "admin.config.smtp.enabled": "مفعل", "admin.config.smtp.enabled.description": "Whether SMTP is enabled. Only set this to true if you entered the host, port, email, user and password of your SMTP server.", "admin.config.smtp.host": "Host", "admin.config.smtp.host.description": "Host of the SMTP server",