diff --git a/README.md b/README.md index 9b8a631a..9a7c696c 100644 --- a/README.md +++ b/README.md @@ -1,3 +1,15 @@ +
+ Special thanks to: +

+ + Warp sponsorship +
+ Warp, the intelligent terminal +
+ Available for macOS, Linux and Windows +
+
+ # LocalSend [![CI status][ci-badge]][ci-workflow] diff --git a/app/assets/i18n/ar.json b/app/assets/i18n/ar.json index 7fd5a8de..4b15baf2 100644 --- a/app/assets/i18n/ar.json +++ b/app/assets/i18n/ar.json @@ -2,33 +2,33 @@ "locale": "العربية", "appName": "LocalSend", "general": { - "accept": "قبول", + "accept": "اقبل", "accepted": "قُبلت", "add": "إضافة", "advanced": "متقدم", - "cancel": "إلغاء", - "close": "إغلاق", - "confirm": "تأكيد", + "cancel": "ألغِ", + "close": "أغلِق", + "confirm": "أكِّد", "continueStr": "أكمل", - "copy": "إنسخ", - "copiedToClipboard": "نسخ إلى الحافظة", + "copy": "انسخ", + "copiedToClipboard": "نُسخ إلى الحافظة", "decline": "ارفض", - "done": "انتهى", - "delete": "حذف", - "edit": "تعديل", + "done": "تم", + "delete": "احذف", + "edit": "عدِّل", "error": "خطأ", "example": "مثال", "files": "ملفات", "finished": "انتهى", - "hide": "إخفاء", + "hide": "أخفِ", "off": "إيقاف", "offline": "غير متصل بالانترنت", "on": "تشغيل", "online": "متصل بالانترنت", - "open": "مفتوح", - "queue": "طابور", + "open": "افتح", + "queue": "صفّ", "quickSave": "حفظ سريع", - "quickSaveFromFavorites": "حفظ سريع لـ \"Favorites\"", + "quickSaveFromFavorites": "حفظ سريع لـ \"المفضلات\"", "renamed": "اعادة تسمية", "reset": "إعادة ضبط", "restart": "إعادة تشغيل", @@ -81,27 +81,27 @@ "link": "مشاركة عبر الرابط" }, "sendModeHelp": "شرح", - "help": "يرجى التأكد من أن الهدف المطلوب موجود أيضًا في نفس شبكة wifi.", + "help": "يُرجى التأكد من أن الهدف المطلوب موجود أيضًا في نفس شبكة الواي فاي.", "placeItems": "ضع العناصر للمشاركة." }, "settingsTab": { "title": "الإعدادات", "general": { "title": "عام", - "brightness": "سمة", + "brightness": "السمة", "brightnessOptions": { "system": "نظام", - "dark": "داكن", - "light": "فاتح" + "dark": "داكنة", + "light": "فاتحة" }, - "color": "لون", + "color": "اللون", "colorOptions": { "system": "النظام", "oled": "OLED" }, - "language": "لغة", + "language": "اللغة", "languageOptions": { - "system": "نظام" + "system": "النظام" }, "saveWindowPlacement": "إنهاء: حفظ موقع النافذة", "saveWindowPlacementWindows": "حفظ موضع النافذة بعد الخروج", @@ -117,7 +117,7 @@ "quickSaveFromFavorites": "@:general.quickSaveFromFavorites", "requirePin": "@:webSharePage.requirePin", "autoFinish": "إنهاء تلقائي", - "destination": "حفظ في", + "destination": "احفظ في المجلد", "downloads": "(التنزيلات)", "saveToGallery": "حفظ الوسائط في المعرض", "saveToHistory": "حفظ في التاريخ" @@ -138,7 +138,7 @@ "useSystemName": "استخدم اسم النظام", "generateRandomAlias": "ولّد كنية عشوائية", "portWarning": "ربما لا يتم الكشف عنك من قبل الأجهزة الأخرى لأنك تستخدم منفذ مخصص. (الافتراضي: {defaultPort})", - "encryption": "التشفير", + "encryption": "التعمية", "multicastGroup": "فرق البث المتعدد", "multicastGroupWarning": "ربما لا يتم الكشف عنك من قبل الأجهزة الأخرى لأنك تستخدم عنوان بث متعدد مخصص. (الافتراضي: {defaultMulticast})", "networkOptions": { @@ -168,23 +168,23 @@ }, "noDiscovery": { "symptom": "هذا الجهاز لا يمكنه اكتشاف الأجهزة الأخرى.", - "solution": "يرجى التأكد من أن جميع الأجهزة متصلة بنفس شبكة Wi-Fi وتشارك نفس التكوين (المنفذ، عنوان البث المتعدد، التشفير). يمكنك محاولة كتابة عنوان IP للجهاز المستهدف يدويًا. إذا نجح ذلك، فكر في إضافة هذا الجهاز إلى قائمة المفضلة حتى يتم اكتشافه تلقائيًا في المستقبل." + "solution": "يُرجى التأكد من أن جميع الأجهزة متصلة بنفس شبكة الواي فاي وتشارك نفس التكوين (المنفذ، عنوان البث المتعدد، التعمية). يمكنك محاولة كتابة عنوان IP للجهاز المستهدف يدويًا. إذا نجح ذلك، فكر في إضافة هذا الجهاز إلى قائمة المفضلات حتى يتم اكتشافه تلقائيًا في المستقبل." }, "noConnection": { "symptom": "لا يمكن للجهازين اكتشاف بعضهما البعض ولا يمكنهما مشاركة الملفات.", - "solution": "هل المشكلة موجودة على الجانبين؟ في هذه الحالة ، يجب عليك التأكد من أن الجهازين في نفس شبكة الواي فاي ويشتركان في نفس التكوين (المنفذ وعنوان البث المتعدد والتشفير). قد لا يسمح الواي فاي بالاتصال بين المشاركين. في هذه الحالة ، يجب تمكين هذا الخيار على الجهاز التوجيه." + "solution": "هل المشكلة موجودة على كِلا الجانبين؟ إذا كان الأمر كذلك، يجب التأكد من أن كِلا الجهازين متصلان بنفس شبكة الواي فاي ويشتركان في نفس الإعدادات (المنفذ، عنوان البث المتعدد، التعمية). قد تمنع شبكة الواي فاي الاتصال بين المشاركين بسبب عزل نقطة الوصول (AP Isolation). في هذه الحالة، يجب تعطيل هذا الخيار على الراوتر." } }, "receiveHistoryPage": { - "title": "السجل", - "openFolder": "فتح المجلد", - "deleteHistory": "حذف السجل", - "empty": "السجل فارغ.", + "title": "التاريخ", + "openFolder": "افتح المجلد", + "deleteHistory": "احذف التاريخ", + "empty": "التاريخ فارغ.", "entryActions": { - "open": "فتح الملف", - "showInFolder": "عرض في المجلد", + "open": "افتح الملف", + "showInFolder": "اعرض في المجلد", "info": "معلومات", - "deleteFromHistory": "حذف من السجل" + "deleteFromHistory": "احذف من التاريخ" } }, "apkPickerPage": { @@ -194,7 +194,7 @@ "apps": "{n} تطبيق" }, "selectedFilesPage": { - "deleteAll": "حذف الكل" + "deleteAll": "احذف الكل" }, "receivePage": { "subTitle": { @@ -203,14 +203,14 @@ }, "subTitleMessage": "أرسل لك رسالة:", "subTitleLink": "أرسل لك ارتباط:", - "canceled": "ألغى المرسل الطلب." + "canceled": "أُلغِيَ المرسل الطلب." }, "receiveOptionsPage": { "title": "خيارات", "destination": "@:settingsTab.receive.destination", - "appDirectory": "(LocalSend folder)", + "appDirectory": "(مجلد LocalSend)", "saveToGallery": "@:settingsTab.receive.saveToGallery", - "saveToGalleryOff": "تم إيقافه تلقائيًا لوجود دلائل." + "saveToGalleryOff": "تم إيقافه تلقائيًا لوجود مجلدات." }, "sendPage": { "waiting": "بإنتظار الرد…", @@ -219,19 +219,27 @@ "busy": "المستلم مشغول بطلب آخر." }, "progressPage": { - "titleSending": "يتم إرسال الملفات", - "titleReceiving": "يتم استلام الملفات", - "savedToGallery": "تم الحفظ في الصور", + "titleSending": "جارِ إرسال الملفات", + "titleReceiving": "جارِ استلام الملفات", + "savedToGallery": "حُفظ في الصور", "total": { "title": { "sending": "التقدم الكلي ({time})", "finishedError": "انتهى مع وجود خطأ", - "canceledSender": "ألغي من قبل المرسل", - "canceledReceiver": "ألغي من قبل المتلقي" + "canceledSender": "أُلغِيَ من قِبل المرسل", + "canceledReceiver": "أُلغِيَ من قِبل المتلقي" }, "count": "ملفات: {curr} / {n}", "size": "حجم: {curr} / {n}", "speed": "سرعة: {speed}/ثانية" + }, + "remainingTime": { + "seconds": "{n}:{ss}", + "minutes": "{n}:{ss}", + "hours": "{h}س {m}د", + "days": "{d}ي {h}س {m}د", + "@hours": "استخدم 'س' لاختصار الساعات و'د' للدقائق", + "@days": "استخدم 'ي' للأيام، و'س' للساعات، و'د' للدقائق" } }, "webSharePage": { @@ -246,7 +254,7 @@ "requests": "الطلبات", "noRequests": "لا يوجد طلبات حتى الآن.", "encryption": "@:settingsTab.network.encryption", - "autoAccept": "قبول الطلبات تلقائيا", + "autoAccept": "قبول الطلبات تلقائيًا", "requirePin": "يتطلب رمز PIN", "pinHint": "رمز PIN هو \"{pin}\"", "encryptionHint": "يستخدم تطبيق LocalSend شهادة موقع ذاتية التوقيع. يجب عليك قبولها في المتصفح.", @@ -260,7 +268,7 @@ ], "author": "المؤلف", "contributors": "المساهمون", - "packagers": "الحزم", + "packagers": "محزمي التطبيقات", "translators": "المترجمون" }, "donationPage": { @@ -271,10 +279,10 @@ "restore": "استعادة شراء" }, "changelogPage": { - "title": "التغييرات" + "title": "سجل التغييرات" }, "aliasGenerator(ignoreMissing, ignoreGpt)": { - "@info": "قد تحتوي المناطق المختلفة على كلمات مختلفة ، وقد لا تتطابق 1:1", + "@info": "قد تحتوي المناطق المختلفة على كلمات مختلفة، وقد لا تتطابق 1:1", "adjectives": [ "محبوب", "جميل", @@ -353,45 +361,45 @@ }, "openFile": { "title": "افتح الملف", - "content": "هل تريد فتح الملف المستلم؟" + "content": "هل تريد فتح الملف المُستلم؟" }, "addressInput": { "title": "أدخل العنوان", "hashtag": "رابطة هاشتاق", "ip": "عنوان IP", - "recentlyUsed": "تم استخدامها مؤخرًا: " + "recentlyUsed": "المستخدمة حديثًا: " }, "cancelSession": { - "title": "إلغاء نقل الملف", + "title": "ألغِ نقل الملف", "content": "هل تريد حقًا إلغاء نقل الملف؟" }, "cannotOpenFile": { "title": "لا يمكن فتح الملف", - "content": "تعذر فتح \"{file}\". هل تم نقل هذا الملف أو إعادة تسميته أو حذفه؟" + "content": "تعذر فتح \"{file}\". هل نُقل هذا الملف أو إعادة تسميته أو حذفه؟" }, "encryptionDisabledNotice": { - "title": "تم تعطيل التشفير", - "content": "الاتصال يتم الآن عبر بروتوكول HTTP غير المشفر. لاستخدام HTTPS ، قم بتمكين التشفير مرة أخرى." + "title": "التعمية مُعطّلة", + "content": "الاتصال يتم الآن عبر بروتوكول HTTP غير المُعمّى. لاستخدام HTTPS، فعِّل التعمية مرة أخرى." }, "errorDialog": { "title": "@:general.error" }, "favoriteDialog": { - "title": "المفضلة", + "title": "المفضلات", "noFavorites": "لا توجد أجهزة مفضلة بعد.", - "addFavorite": "إضافة" + "addFavorite": "أضف" }, "favoriteDeleteDialog": { - "title": "حذف من المفضلة", - "content": "هل ترغب حقًا في حذف \"{name}\" من قائمة المفضلة؟" + "title": "احذف من المفضلات", + "content": "هل ترغب حقًا في حذف \"{name}\" من المفضلات؟" }, "favoriteEditDialog": { - "titleAdd": "إضافة إلى المفضلة", - "titleEdit": "تعديل", - "name": "الاسم", + "titleAdd": "أضف إلى المفضلات", + "titleEdit": "اﻹعدادات", + "name": "اسم الجهاز", "auto": "(تلقائي)", "ip": "عنوان IP", - "port": "Port" + "port": "المنفذ" }, "fileInfo": { "title": "معلومات الملف", @@ -406,12 +414,12 @@ "original": "أصلي: {original}" }, "historyClearDialog": { - "title": "محو السجل", - "content": "هل ترغب حقًا في محو السجل بالكامل؟" + "title": "امسح التاريخ", + "content": "هل ترغب حقًا في مسح التاريخ بالكامل؟" }, "localNetworkUnauthorized": { "title": "@:dialogs.noPermission.title", - "description": "لا يمكن ل LocalSend العثور على الأجهزة الأخرى بدون الإذن بفحص الشبكة المحلية. يرجى منح هذا الإذن في الإعدادات.", + "description": "لا يمكن ل LocalSend العثور على الأجهزة الأخرى بدون الإذن بفحص الشبكة المحلية. يُرجى منح هذا الإذن في الإعدادات.", "gotoSettings": "الإعدادات" }, "messageInput": { @@ -424,21 +432,21 @@ }, "noPermission": { "title": "بدون إذن", - "content": "لم تقم بمنح الأذونات اللازمة. يرجى منحها من الإعدادات." + "content": "لم تمنح الأذونات اللازمة. يُرجى منحها في الإعدادات." }, "notAvailableOnPlatform": { "title": "غير متاح", "content": "هذه الميزة متاحة فقط على:" }, "qr": { - "title": "رمز الاستجابة السريعة" + "title": "رمز QR" }, "quickActions": { "title": "إجراءات سريعة", "counter": "عداد", "prefix": "بادئة", - "padZero": "بدأ مع أصفار", - "sortBeforeCount": "قم بالفرز أبجديًا مسبقًا", + "padZero": "احشو مع أصفار", + "sortBeforeCount": "افرز أبجديًا مسبقًا (أ-ي)", "random": "عشوائي" }, "quickSaveNotice": { @@ -448,8 +456,8 @@ "quickSaveFromFavoritesNotice": { "title": "@:general.quickSaveFromFavorites", "content": [ - "يتم الآن قبول طلبات الملفات تلقائيًا من الأجهزة الموجودة في قائمة المفضلة لديك.", - "تحذير! في الوقت الحالي، هذا ليس آمنًا تمامًا، حيث يمكن للمخترق الذي لديه بصمة أي جهاز من قائمة المفضلة لديك أن يرسل لك ملفات دون قيود.", + "يتم الآن قبول طلبات الملفات تلقائيًا من الأجهزة الموجودة في قائمة المفضلات لديك.", + "تحذير! في الوقت الحالي، هذا ليس آمنًا تمامًا، حيث يمكن للمخترق الذي لديه بصمة أي جهاز من قائمة المفضلات لديك أن يرسل لك ملفات دون قيود.", "ومع ذلك، يظل هذا الخيار أكثر أمانًا من السماح لجميع المستخدمين على الشبكة المحلية بإرسال الملفات إليك دون قيود." ] }, @@ -458,12 +466,12 @@ }, "sendModeHelp": { "title": "أوضاع الإرسال", - "single": "يقوم بإرسال الملفات إلى مستلم واحد. ستتم مسح الاختيار بعد انتهاء نقل الملف.", - "multiple": "يقوم بإرسال الملفات إلى مستلمين متعددين. لن يتم مسح الاختيار.", + "single": "يقوم بإرسال الملفات إلى مستلم واحد. سيتم مسح الاختيار بعد انتهاء نقل الملف.", + "multiple": "يرسل الملفات إلى عدة مستلمين. لن يتم مسح التحديد بعد الانتهاء من نقل الملفات.", "link": "يمكن للمستلمين الذين لا يحتوون على LocalSend تنزيل الملفات المحددة عن طريق فتح الرابط في متصفحهم." }, "zoom": { - "title": "URL" + "title": "عنوان URL" } }, "sanitization": { @@ -473,46 +481,46 @@ "tray": { "@info": "إرشادات Apple صارمة للغاية بشأن صياغة 'الإغلاق'.", "open": "@:general.open", - "close": "أغلق LocalSend", - "closeWindows": "خروج" + "close": "أنهِ LocalSend", + "closeWindows": "اخرج" }, "web": { "waiting": "@:sendPage.waiting", "enterPin": "أدخل رمز PIN", "invalidPin": "رمز PIN غير صالح", "tooManyAttempts": "محاولات كثيرة جدًا", - "rejected": "مرفوضة", + "rejected": "رُفض", "files": "الملفات", "fileName": "اسم الملف", "size": "الحجم" }, "assetPicker": { - "@info": "Translations for the Media selection tool for Android and Iphone", - "confirm": "تاكيد", - "cancel": "إلغاء", - "edit": "تعديل", + "@info": "ترجمات أداة تحديد الوسائط لنظامي التشغيل أندرويد و آيفون", + "confirm": "أكّد", + "cancel": "ألغِ", + "edit": "عدّل", "gifIndicator": "GIF", "loadFailed": "فشل التحميل", "original": "أصلي", "preview": "معاينة", - "select": "تحديد", + "select": "حدّد", "emptyList": "القائمة فارغة", - "unSupportedAssetType": "نوع ملف غير مدعوم.", + "unSupportedAssetType": "نوع الملف غير مدعوم.", "unableToAccessAll": "لا يمكن الوصول إلى جميع الملفات الموجودة على الجهاز", "viewingLimitedAssetsTip": "إظهار الملفات والألبومات التي يمكن للتطبيق الوصول إليها فقط.", - "changeAccessibleLimitedAssets": "السماح بالوصول إلى ملفات إضافية", - "accessAllTip": "يمكن للتطبيق الوصول فقط إلى بعض الملفات على الجهاز. انتقل إلى إعدادات النظام واسمح للتطبيق بالوصول إلى جميع الوسائط على الجهاز.", - "goToSystemSettings": "فتح إعدادات النظام", - "accessLimitedAssets": "الاستمرار مع صلاحيات محدوده", + "changeAccessibleLimitedAssets": "انقر لتحديث الملفات التي يمكن الوصول إليها", + "accessAllTip": "يمكن للتطبيق الوصول فقط إلى بعض الملفات على الجهاز. اذهب إلى إعدادات النظام واسمح للتطبيق بالوصول إلى جميع الوسائط على الجهاز.", + "goToSystemSettings": "اذهب إلى إعدادات النظام", + "accessLimitedAssets": "استمر بوصول محدود", "accessiblePathName": "ملفات يمكن الوصول إليها", "sTypeAudioLabel": "صوتي", "sTypeImageLabel": "صورة", "sTypeVideoLabel": "فيديو", - "sTypeOtherLabel": "آخر", - "sActionPlayHint": "شغّل", + "sTypeOtherLabel": "وسائط أخرى", + "sActionPlayHint": "شغِّل", "sActionPreviewHint": "معاينة", - "sActionSelectHint": "تحديد", - "sActionSwitchPathLabel": "تبديل المسار", + "sActionSelectHint": "حدّد", + "sActionSwitchPathLabel": "غيّر المسار", "sActionUseCameraHint": "استخدم الكاميرا", "sNameDurationLabel": "مدة", "sUnitAssetCountLabel": "عدد" diff --git a/app/assets/i18n/az.json b/app/assets/i18n/az.json index d7572aaf..e2d7f8e1 100644 --- a/app/assets/i18n/az.json +++ b/app/assets/i18n/az.json @@ -11,9 +11,9 @@ "confirm": "Təsdiqlə", "continueStr": "Davam et", "copy": "Köçür", - "copiedToClipboard": "Buferə Köçürüldü", + "copiedToClipboard": "Məlumat buferinə köçürüldü", "decline": "İmtina et", - "done": "Bitdi", + "done": "Oldu", "delete": "Sil", "edit": "Düzəliş et", "error": "Xəta", @@ -27,26 +27,26 @@ "online": "Onlayn", "open": "Aç", "queue": "Növbə", - "quickSave": "Cəld Saxla", - "quickSaveFromFavorites": "\"Sevimlilər\" üçün cəld saxla", - "renamed": "Təkrar adlandırıldı", - "reset": "Dəyişiklikləri geri al", - "restart": "Təkrar başlat", - "settings": "Tənzimləmələr", + "quickSave": "Cəld yadda saxla", + "quickSaveFromFavorites": "\"Sevimlilər\" üçün cəld yadda saxla", + "renamed": "Adı dəyişdirildi", + "reset": "Dəyişiklikləri geri qaytar", + "restart": "Yenidən başlat", + "settings": "Parametrlər", "skipped": "Ötürüldü", "start": "Başlat", "stop": "Dayandır", - "save": "Saxla", - "unchanged": "Dəyişməmiş", + "save": "Yadda saxla", + "unchanged": "Dəyişdirilməmiş", "unknown": "Naməlum", - "noItemInClipboard": "Buferdə element yoxdur." + "noItemInClipboard": "Məlumat buferində element yoxdur." }, "receiveTab": { "title": "Qəbul et", "infoBox": { "ip": "IP:", "port": "Port:", - "alias": "Cihaz adı:" + "alias": "Cihazın adı:" }, "quickSave": { "off": "@:general.off", @@ -57,9 +57,9 @@ "sendTab": { "title": "Göndər", "selection": { - "title": "Seçilmə", + "title": "Seçim", "files": "Fayllar: {files}", - "size": "Həcm: {size}" + "size": "Ölçü: {size}" }, "picker": { "file": "Fayl", @@ -78,7 +78,7 @@ "sendModes": { "single": "Tək qəbul edən", "multiple": "Çoxsaylı alıcılar", - "link": "Bağlantıdan paylaş" + "link": "Keçid vasitəsilə paylaş" }, "sendModeHelp": "İzahat", "help": "Xahiş olunur, əmin olun ki, istədiyiniz hədəf eyni Wi-Fi şəbəkəsindədir.", @@ -115,7 +115,343 @@ "title": "Qəbul et", "quickSave": "@:general.quickSave", "quickSaveFromFavorites": "@:general.quickSaveFromFavorites", - "autoFinish": "Avtomatik Bitirmə" + "autoFinish": "Avtomatik Bitirmə", + "requirePin": "@:webSharePage.requirePin", + "destination": "Qovluqda yadda saxla", + "downloads": "(Yüklənənlər)", + "saveToGallery": "Medianı qalereyada yadda saxla", + "saveToHistory": "Tarixçədə yadda saxla" + }, + "advancedSettings": "Qabaqcıl parametrlər", + "send": { + "title": "Göndər", + "shareViaLinkAutoAccept": "\"Keçid vasitəsilə paylaş\" rejimində sorğuları avtomatik qəbul et" + }, + "network": { + "title": "Şəbəkə", + "needRestart": "Parametrləri tətbiq etmək üçün serveri yenidən başladın!", + "server": "Server", + "alias": "Cihazın adı", + "deviceType": "Cihazın tipi", + "deviceModel": "Cihazın modeli", + "port": "Port", + "discoveryTimeout": "Axtarışın zaman aşımı", + "useSystemName": "Sistemin adından istifadə et", + "generateRandomAlias": "Təsadüfi ad yarat", + "portWarning": "Fərdi portdan istifadə etdiyiniz üçün başqa cihazlar tərəfindən aşkarlanmaya bilərsiniz. (defolt: {defaultPort})", + "multicastGroup": "Multicast ünvanı", + "encryption": "Şifrələmə", + "multicastGroupWarning": "Fərdi multicast ünvanından istifadə etdiyiniz üçün başqa cihazlar tərəfindən aşkarlanmaya bilərsiniz. (defolt: {defaultMulticast})", + "network": "Şəbəkə", + "networkOptions": { + "all": "Hamısı", + "filtered": "Filtrlənmiş" + } + }, + "other": { + "title": "Digər", + "support": "LocalSend-i dəstəklə", + "donate": "İanə et", + "privacyPolicy": "Məxfilik siyasəti", + "termsOfUse": "İstifadə şərtləri" } + }, + "receiveHistoryPage": { + "openFolder": "Qovluğu aç", + "deleteHistory": "Tarixçəni sil", + "title": "Tarixçə", + "entryActions": { + "deleteFromHistory": "Tarixçədən sil", + "open": "Faylı aç", + "showInFolder": "Qovluqda göstər", + "info": "Məlumat" + }, + "empty": "Tarixçə boşdur." + }, + "dialogs": { + "noFiles": { + "title": "Heç bir fayl seçilməyib", + "content": "Zəhmət olmasa, ən azı bir fayl seçin." + }, + "fileInfo": { + "size": "Ölçüsü:", + "path": "Yol:", + "sender": "Göndərən:", + "title": "Fayl məlumatı", + "fileName": "Faylın adı:", + "time": "Vaxt:" + }, + "qr": { + "title": "QR-kod" + }, + "historyClearDialog": { + "content": "Bütün tarixçəni silmək istədiyinizə əminsiniz?", + "title": "Tarixçəni təmizlə" + }, + "localNetworkUnauthorized": { + "title": "@:dialogs.noPermission.title", + "description": "LocalSend lokal şəbəkəni skan etmək icazəsi olmadan digər cihazları tapa bilmir. Zəhmət olmasa, parametrlərdən bu icazəni verin.", + "gotoSettings": "Parametrlər" + }, + "quickSaveFromFavoritesNotice": { + "content": [ + "Fayl sorğuları artıq sevimlilər siyahısındakı cihazlardan avtomatik qəbul edəcək.", + "Xəbərdarlıq! Hal-hazırda bu, tamamilə təhlükəsiz deyil, çünki sevimlilər siyahısındakı istənilən cihazın barmaq izinə sahib olan haker məhdudiyyətsiz sizə fayllar göndərə bilər.", + "Bununla belə, bu seçim lokal şəbəkədəki bütün istifadəçilərin sizə məhdudiyyətsiz fayllar göndərməsinə icazə verməkdən daha təhlükəsizdir." + ], + "title": "@:general.quickSaveFromFavorites" + }, + "pin": { + "title": "PIN-i daxil et" + }, + "sendModeHelp": { + "title": "Göndərmə rejimləri", + "single": "Faylları bir cihaza göndərir. Faylların ötürülməsi başa çatdıqdan sonra seçim silinəcək.", + "multiple": "Faylları birdən çox cihaza göndərir. Faylların ötürülməsi tamamlandıqdan sonra seçim silinməyəcək.", + "link": "LocalSend-i quraşdırmamış alıcılar linki brauzerlərində açaraq seçilmiş faylları endirə bilərlər." + }, + "favoriteDialog": { + "addFavorite": "Əlavə et", + "title": "Sevimlilər", + "noFavorites": "Hələ ki, sevimli cihaz yoxdur." + }, + "errorDialog": { + "title": "@:general.error" + }, + "favoriteEditDialog": { + "titleAdd": "Sevimlilərə əlavə et", + "titleEdit": "Parametrlər", + "name": "Cihazın adı", + "auto": "(avtomatik)", + "ip": "IP ünvan", + "port": "Port" + }, + "addFile": { + "title": "Seçilmişlərə əlavə et", + "content": "Nə əlavə etmək istəyirsiniz?" + }, + "openFile": { + "title": "Faylı aç", + "content": "Qəbul edilmiş faylı açmaq istəyirsiniz?" + }, + "addressInput": { + "title": "Ünvanı daxil et", + "hashtag": "Heşteq", + "ip": "IP ünvan", + "recentlyUsed": "Son istifadə olunan: " + }, + "cancelSession": { + "title": "Fayl transferini ləğv et", + "content": "Siz həqiqətən faylların transferini ləğv etmək istəyirsiniz?" + }, + "cannotOpenFile": { + "title": "Faylı açmaq mümkün olmadı", + "content": "\"{file}\" faylını açmaq mümkün olmadı. Fayl köçürülmüş, adı dəyişdirilmiş və ya silinmiş ola bilər?" + }, + "encryptionDisabledNotice": { + "title": "Şifrələmə deaktiv edilib", + "content": "Əlaqə artıq şifrələnməmiş HTTP protokolu vasitəsilə həyata keçirilir. HTTPS protokolundan istifadə etmək üçün şifrələməni yenidən aktiv edin." + }, + "favoriteDeleteDialog": { + "title": "Sevimlilərdən sil", + "content": "Həqiqətən də \"{name}\" cihazını sevimlilərdən silmək istəyirsiniz?" + }, + "fileNameInput": { + "title": "Faylın adını daxil et", + "original": "Orijinal: {original}" + }, + "messageInput": { + "title": "Mesaj yaz", + "multiline": "Çoxsətirli" + }, + "noPermission": { + "title": "İcazə yoxdur", + "content": "Siz lazımi icazələri verməmisiniz. Zəhmət olmasa, parametrlərdə icazə verin." + }, + "notAvailableOnPlatform": { + "title": "Mövcud deyil", + "content": "Bu funksiya sadəcə burada mövcuddur:" + }, + "quickActions": { + "title": "Sürətli hərəkətlər", + "counter": "Sayğac", + "prefix": "Prefiks", + "padZero": "Sıfırlar ilə doldur", + "sortBeforeCount": "Qabaqcadan əlifba sırası ilə sırala", + "random": "Təsadüfi" + }, + "quickSaveNotice": { + "title": "@:general.quickSave", + "content": "Fayl sorğuları artıq avtomatik qəbul ediləcək. Nəzərə alın ki, lokal şəbəkədəki hər kəs sizə fayl göndərə bilər." + }, + "zoom": { + "title": "URL" + } + }, + "troubleshootPage": { + "title": "Problemləri həll etmə", + "noDiscovery": { + "solution": "Zəhmət olmasa, bütün cihazların eyni Wi-Fi şəbəkəsində olduğundan və eyni konfiqurasiyanı (port, multicast ünvanı, şifrələmə) paylaşdığından əmin olun. Hədəf cihazın IP ünvanını əl ilə yazmağı cəhd edə bilərsiniz. Əgər bu işə yararsa, gələcəkdə avtomatik aşkarlanması üçün bu cihazı sevimlilərə əlavə etməyi nəzərdən keçirin.", + "symptom": "Bu cihaz digər cihazları aşkar edə bilməz." + }, + "subTitle": "Tətbiq gözlənildiyi kimi işləmir? Burada problemlərin ümumi həll yollarını tapa bilərsiniz.", + "firewall": { + "symptom": "Bu cihaz digər cihazlara fayl göndərə bilər, lakin qəbul edə bilməz.", + "solution": "Bu, çox güman ki, firewall problemidir. Siz {port} portunda daxil olan bağlantılara (UDP və TCP) icazə verməklə bunu həll edə bilərsiniz.", + "openFirewall": "Şəbəkə ekranını (firewall) aç" + }, + "noConnection": { + "solution": "Problem hər iki tərəfdə də var? Əgər belədirsə, hər iki cihazın eyni Wi-Fi şəbəkəsində olduğundan və eyni konfiqurasiyanı (port, multicast ünvanı, şifrələmə) paylaşdığından əmin olmalısınız. Wi-Fi şəbəkəsi Access Point (AP) izolyasiyasına görə iştirakçılar arasında ünsiyyətə icazə verməyə bilər. Bu halda, bu seçim ruterdə söndürülməlidir.", + "symptom": "Hər iki cihaz bir-birini aşkarlaya bilmir və faylları paylaşa bilmir." + }, + "solution": "Həll:", + "fixButton": "Avtomatik düzəlt" + }, + "webSharePage": { + "stopping": "Server dayandırılır…", + "pendingRequests": "Gözləyən sorğular: {n}", + "loading": "Server aktivləşdirilir…", + "error": "Serveri aktivləşdirərkən xəta baş verdi.", + "openLink": { + "one": "Bu keçidi brauzerdə aç:", + "other": "Bu keçidlərdən birini brauzerdə aç:" + }, + "title": "Keçid vasitəsilə paylaş", + "requests": "Sorğular", + "noRequests": "Hələ ki, heç bir sorğu yoxdur.", + "encryption": "@:settingsTab.network.encryption", + "autoAccept": "Sorğuları avtomatik qəbul et", + "requirePin": "PIN tələb et", + "pinHint": "Sizin PIN: \"{pin}\"", + "encryptionHint": "LocalSend özü imzalanmış sertifikatdan istifadə edir. Siz onu brauzerinizdə qəbul etməlisiniz." + }, + "networkInterfacesPage": { + "info": "Defolt olaraq, LocalSend bütün mövcud şəbəkə interfeyslərindən istifadə edir. Burada istənilməyən şəbəkələri istisna edə bilərsiniz. Dəyişiklikləri tətbiq etmək üçün serveri yenidən başlatmalısınız.", + "whitelist": "Ağ siyahı", + "blacklist": "Qara siyahı", + "title": "Şəbəkə interfeysləri", + "preview": "Önizlə" + }, + "assetPicker": { + "accessiblePathName": "Əlçatan fayllar", + "sTypeAudioLabel": "Audio", + "loadFailed": "Yükləmə uğursuz oldu", + "accessLimitedAssets": "Məhdud icazə ilə davam et", + "preview": "Önizləmə", + "select": "Seç", + "emptyList": "Boş siyahı", + "unSupportedAssetType": "Dəstəklənməyən fayl tipi.", + "unableToAccessAll": "Cihazdakı bütün fayllara daxil olmaq mümkün deyil", + "viewingLimitedAssetsTip": "Yalnız proqram üçün əlçatan olan fayl və albomlara bax.", + "@info": "Android və iPhone üçün Media seçim aləti üçün tərcümələr", + "confirm": "Təsdiqlə", + "cancel": "İmtina", + "edit": "Düzəliş et", + "gifIndicator": "GIF", + "original": "Orijinal", + "changeAccessibleLimitedAssets": "Əlçatan faylları yeniləmək üçün kliklə", + "accessAllTip": "Tətbiq cihazdakı yalnız bəzi fayllara daxil ola bilər. Sistem parametrlərinə gedin və tətbiqin cihazdakı bütün mediaya daxil olmasına icazə verin.", + "goToSystemSettings": "Sistem parametrlərinə get", + "sTypeImageLabel": "Şəkil", + "sTypeVideoLabel": "Video", + "sTypeOtherLabel": "Digər media", + "sActionPlayHint": "aç", + "sActionPreviewHint": "önizləmə", + "sActionSelectHint": "seç", + "sActionSwitchPathLabel": "yolu dəyiş", + "sActionUseCameraHint": "kamera istifadə et", + "sNameDurationLabel": "müddət", + "sUnitAssetCountLabel": "say" + }, + "sendPage": { + "rejected": "Qəbul edən bu sorğudan imtina etdi.", + "waiting": "Qarşı tərəfdən cavab gözlənilir…", + "tooManyAttempts": "@:web.tooManyAttempts", + "busy": "Qəbul edən başqa sorğu ilə məşğuldur." + }, + "web": { + "fileName": "Fayl adı", + "files": "Fayllar", + "waiting": "@:sendPage.waiting", + "enterPin": "PIN-i daxil et", + "invalidPin": "Səhv PIN", + "tooManyAttempts": "Çoxsaylı cəhd", + "rejected": "Rədd edildi", + "size": "Ölçü" + }, + "tray": { + "closeWindows": "Çıxış", + "@info": "Apple təlimatları \"bağla\" ifadələri ilə bağlı çox ciddidir.", + "open": "@:general.open", + "close": "LocalSend-dən çıx" + }, + "apkPickerPage": { + "apps": "{n} tətbiq", + "title": "Tətbiqlər (APK)", + "excludeSystemApps": "Sistem tətbiqlərini istisna et", + "excludeAppsWithoutLaunchIntent": "Açıla bilməyən tətbiqləri istisna et" + }, + "receivePage": { + "subTitleLink": "sənə keçid göndərdi:", + "canceled": "Göndərən bu sorğunu ləğv etdi.", + "subTitle": { + "one": "sənə fayl göndərmək istəyir", + "other": "sənə {n} fayl göndərmək istəyir" + }, + "subTitleMessage": "sənə mesaj göndərdi:" + }, + "receiveOptionsPage": { + "title": "Seçimlər", + "destination": "@:settingsTab.receive.destination", + "appDirectory": "(LocalSend qovluğu)", + "saveToGallery": "@:settingsTab.receive.saveToGallery", + "saveToGalleryOff": "Qovluqlar olduğu üçün avtomatik söndürülür." + }, + "progressPage": { + "total": { + "title": { + "canceledSender": "Göndərən tərəfindən dayandırıldı", + "sending": "Ümumi proses ({time})", + "finishedError": "Proses xəta verərək dayandı", + "canceledReceiver": "Qəbul edən tərəfindən dayandırıldı" + }, + "count": "Fayl: {curr} / {n}", + "size": "Ölçü: {curr} / {n}", + "speed": "Sürət: {speed}/s" + }, + "titleSending": "Fayllar göndərilir", + "titleReceiving": "Fayllar qəbul edilir", + "savedToGallery": "Qalereyada saxlanıldı" + }, + "donationPage": { + "info": "LocalSend pulsuz, açıq mənbəlidir və heç bir reklam yoxdur. Proqramı bəyənirsinizsə, ianə ilə inkişafını dəstəkləyə bilərsiniz.", + "title": "İanə et", + "donate": "{amount} ianə et", + "thanks": "Çox təşəkkür edirəm!", + "restore": "Satın almaları bərpa et" + }, + "selectedFilesPage": { + "deleteAll": "Hamısını sil" + }, + "aboutPage": { + "description": [ + "LocalSend internet bağlantısına ehtiyac olmadan lokal şəbəkə üzərindən yaxınlıqdakı cihazlarla faylları və mesajları təhlükəsiz paylaşmağa imkan verən pulsuz, açıq mənbəli proqramdır.", + "Bu proqram Android, iOS, macOS, Windows və Linux sistemlərində mövcuddur. Bütün yükləmə variantlarını rəsmi saytda tapa bilərsiniz." + ], + "author": "Müəllif", + "contributors": "Töhfə verənlər", + "title": "LocalSend haqqında", + "packagers": "Paketləyənlər", + "translators": "Tərcüməçilər" + }, + "changelogPage": { + "title": "Versiya jurnalı" + }, + "aliasGenerator(ignoreMissing, ignoreGpt)": { + "@info": "Fərqli dillərdə fərqli sözlər ola bilər, 1:1 uyğun olmaya bilər" + }, + "sanitization": { + "empty": "Fayl adı boş ola bilməz", + "invalid": "Fayl adında etibarsız simvollar ola bilməz" } } diff --git a/app/assets/i18n/bg.json b/app/assets/i18n/bg.json index c0d5e3a3..2eaaf2b7 100644 --- a/app/assets/i18n/bg.json +++ b/app/assets/i18n/bg.json @@ -14,7 +14,7 @@ "copiedToClipboard": "Копирано в клипборда", "decline": "Откажи", "done": "Готово", - "delete": "Изтрий", + "delete": "Изтриване", "edit": "Редактирай", "error": "Грешка", "example": "Пример", @@ -150,7 +150,7 @@ "other": { "title": "Други", "support": "Поддръжка на LocalSend", - "donate": "Дарете", + "donate": "Дарение", "privacyPolicy": "Политика за поверителност", "termsOfUse": "Условия за ползване" }, @@ -178,13 +178,13 @@ "receiveHistoryPage": { "title": "История", "openFolder": "Отвори папка", - "deleteHistory": "Изтрий историята", + "deleteHistory": "Изтриване на историята", "empty": "Историята е празна.", "entryActions": { "open": "Отвори файл", "showInFolder": "Покажи в папка", "info": "Информация", - "deleteFromHistory": "Изтрий от историята" + "deleteFromHistory": "Изтриване от историята" } }, "apkPickerPage": { @@ -194,21 +194,21 @@ "apps": "{n} Приложения" }, "selectedFilesPage": { - "deleteAll": "Изтрий всички" + "deleteAll": "Изтриване на всички" }, "receivePage": { "subTitle": { "one": "иска да ви изпрати файл", "other": "иска да ви изпрати {n} файлове" }, - "subTitleMessage": "ти изпрати съобщение:", - "subTitleLink": "ти изпрати връзка:", + "subTitleMessage": "Ви изпрати съобщение:", + "subTitleLink": "Ви изпрати връзка:", "canceled": "Подателят е отменил заявката." }, "receiveOptionsPage": { "title": "Опции", "destination": "@:settingsTab.receive.destination", - "appDirectory": "(LocalSend папка)", + "appDirectory": "(папка на LocalSend)", "saveToGallery": "@:settingsTab.receive.saveToGallery", "saveToGalleryOff": "Изключва се автоматично, защото има папки." }, @@ -232,6 +232,14 @@ "count": "Файлове: {curr} / {n}", "size": "Размер: {curr} / {n}", "speed": "Скорост: {speed}/s" + }, + "remainingTime": { + "seconds": "{n}:{ss}", + "minutes": "{n}:{ss}", + "hours": "{h}ч {m}мин", + "days": "{d}д {h}ч {m}мин", + "@hours": "Използвайте „h“ като съкращение за часове и „m“ за минути", + "@days": "Използвайте „d“ за дни, „h“ за часове и „m“ за минути" } }, "webSharePage": { @@ -264,9 +272,9 @@ "translators": "Преводачи" }, "donationPage": { - "title": "Дарете", + "title": "Дарение", "info": "LocalSend е безплатен, с отворен код и без никакви реклами. Ако харесвате приложението, можете да подкрепите разработката с дарение.", - "donate": "Дарете {amount}", + "donate": "Дарение {amount}", "thanks": "Благодаря много!", "restore": "Възстановяване на покупка" }, @@ -341,7 +349,7 @@ }, "localNetworkUnauthorized": { "title": "@:dialogs.noPermission.title", - "description": "LocalSend не може да намери други устройства, без да има разрешение за сканиране на локалната мрежа. Моля, дайте това разрешение в настройките.", + "description": "LocalSend не може да намери други устройства без разрешение за сканиране на локалната мрежа. Моля, предоставете това разрешение в настройките.", "gotoSettings": "Настройки" }, "messageInput": { @@ -354,7 +362,7 @@ }, "noPermission": { "title": "Няма разрешение", - "content": "Не сте предоставили необходимите разрешения. Моля, дайте ги в настройките." + "content": "Не сте предоставили необходимите разрешения. Моля, предоставете ги в настройките." }, "notAvailableOnPlatform": { "title": "Не е налична", diff --git a/app/assets/i18n/bn.json b/app/assets/i18n/bn.json index f64a9855..9aa03900 100644 --- a/app/assets/i18n/bn.json +++ b/app/assets/i18n/bn.json @@ -1,6 +1,6 @@ { "locale": "বাংলা", - "appName": "LocalSend", + "appName": "লোকালসেন্ড", "general": { "accept": "অ্যাকসেপ্ট করুন", "accepted": "অ্যাকসেপ্টেড", @@ -39,7 +39,7 @@ "save": "সেভ করুন", "unchanged": "অপরিবর্তিত", "unknown": "আননোন", - "noItemInClipboard": "ক্লিপবোর্ডে কোনো আইটেম নেই" + "noItemInClipboard": "ক্লিপবোর্ডে কোনো আইটেম নেই।" }, "receiveTab": { "title": "রিসিভ", @@ -69,7 +69,7 @@ "app": "আবেদন", "clipboard": "ক্লিপবোর্ড পেস্ট" }, - "shareIntentInfo": "আরো সহজে ফাইল সিলেক্ট করার জন্য আপনার মোবাইলের \"Share\" ফিচারটি ব্যবহার করতে পারেন", + "shareIntentInfo": "আরো সহজে ফাইল সিলেক্ট করার জন্য আপনার মোবাইলের \"Share\" ফিচারটি ব্যবহার করতে পারেন।", "nearbyDevices": "কাছাকাছি থাকা ডিভাইস", "thisDevice": "এই ডিভাইস", "scan": "ডিভাইস স্ক্যান করুন", @@ -167,7 +167,7 @@ "openFirewall": "ফায়ারওয়াল খুলুন" }, "noDiscovery": { - "symptom": "এই ডিভাইসটি অন্য ডিভাইস ডিসকভার করতে পারছে না", + "symptom": "এই ডিভাইসটি অন্য ডিভাইস খুঁজতে পারতেছে না।", "solution": "সব ডিভাইস একই ওয়াই-ফাই নেটওয়ার্কে আছে তা নিশ্চিত করুন এবং একই কনফিগারেশন ব্যাবহার করছে (পোর্ট, মাল্টিকাস্ট অ্যাড্রেস, এনক্রিপশন)। টার্গেট ডিভাইসের আইপি ম্যানুয়ালি টাইপ করতে পারেন। যদি এটা কাজ করে, তাহলে ভবিষ্যতে এই ডিভাইসটি অটোমেটিকালি ডিসকভার করা হবে, তা নিশ্চিত করতে এই ডিভাইসটি ফেভারিটে অ্যাড করুন।" }, "noConnection": { @@ -186,7 +186,7 @@ "title": "হিস্ট্রি", "openFolder": "ফোল্ডার খুলুন", "deleteHistory": "হিস্ট্রি ক্লিয়ার করুন", - "empty": "হিস্ট্রি খালি", + "empty": "হিস্ট্রি খালি।", "entryActions": { "open": "ফাইল খুলুন", "showInFolder": "ফোল্ডারে দেখুন", @@ -198,15 +198,15 @@ "title": "অ্যাপস (এপিকে)", "excludeSystemApps": "সিস্টেম অ্যাপ বাদ দিন", "excludeAppsWithoutLaunchIntent": "অ-লঞ্চযোগ্য অ্যাপগুলি বাদ দিন", - "apps": "{n} Apps" + "apps": "{n} অ্যাপ্স" }, "selectedFilesPage": { "deleteAll": "সব ডিলিট করুন" }, "receivePage": { "subTitle": { - "one": "আপনাকে একটি ফাইল পাঠাতে চায়।", - "other": "আপনাকে {n}টি ফাইল পাঠাতে চায়।" + "one": "আপনাকে একটি ফাইল পাঠাতে চায়", + "other": "আপনাকে {n}টি ফাইল পাঠাতে চায়" }, "subTitleMessage": "আপনাকে একটি মেসেজ পাঠিয়েছে:", "subTitleLink": "আপনাকে একটি লিঙ্ক পাঠিয়েছে:", @@ -220,7 +220,7 @@ "saveToGalleryOff": "অটোমেটিকালি বন্ধ কারণ ডিরেক্টরি আছে." }, "sendPage": { - "waiting": "রেস্পন্সের অপেক্ষায় ...", + "waiting": "রেস্পন্সের অপেক্ষায়…", "rejected": "রিসিভার রিকুয়েস্টটি ক্যানসেল করেছে।", "tooManyAttempts": "@:web.tooManyAttempts", "busy": "রিসিভার রিকুয়েস্টটি আরেকটি রিকুয়েস্টে ব্যস্ত।" @@ -239,12 +239,20 @@ "count": "ফাইলগুলি: {curr} / {n}", "size": "সাইজ: {curr} / {n}", "speed": "স্পীড: {speed}/s" + }, + "remainingTime": { + "hours": "{h}ঘণ্টা {m}মিনিট", + "days": "{d}দিন {h}ঘণ্টা {m}মিনিট", + "@hours": "ঘন্টার জন্য 'h' এবং মিনিটের জন্য 'm' ব্যবহার করুন", + "@days": "দিনের জন্য 'd', ঘন্টার জন্য 'h' এবং মিনিটের জন্য 'm' ব্যবহার করুন", + "seconds": "{n}:{ss}", + "minutes": "{n}:{ss}" } }, "webSharePage": { "title": "লিঙ্কের মাধ্যমে শেয়ার করুন", - "loading": "সার্ভার চালু করা হচ্ছে...", - "stopping": "সার্ভার বন্ধ করা হচ্ছে...", + "loading": "সার্ভার চালু করা হচ্ছে…", + "stopping": "সার্ভার বন্ধ করা হচ্ছে…", "error": "সার্ভার চালু করার সময় একটি সমস্যা হয়েছে৷", "openLink": { "one": "ব্রাউজারে এই লিঙ্কটি খুলুন:", @@ -281,7 +289,7 @@ "title": "চেঞ্জলগ" }, "aliasGenerator(ignoreMissing, ignoreGpt)": { - "@info": "Different locales may have different words, it may not match 1:1", + "@info": "ভিন্ন জায়গার ভিন্ন শব্দ থাকতে পারে, একেবারে 1:1 মিলতে নাও পারে", "adjectives": [ "আরাধ্য", "সুন্দর", @@ -378,7 +386,7 @@ }, "encryptionDisabledNotice": { "title": "এনক্রিপশন বন্ধ করা হয়েছে", - "content": "এখন কমিউনিকেশন আনএনক্রিপ্টেড HTTP প্রটোকলের মাধ্যমে করা হচ্ছে। HTTPS ব্যবহার করার জন্য আবার এনক্রিপশন চালু করুন" + "content": "এখন কমিউনিকেশন আনএনক্রিপ্টেড HTTP প্রটোকলের মাধ্যমে করা হচ্ছে। HTTPS ব্যবহার করার জন্য আবার এনক্রিপশন চালু করুন।" }, "errorDialog": { "title": "@:general.error" @@ -427,7 +435,7 @@ }, "noFiles": { "title": "কোনো ফাইল সিলেক্ট করা হয়নি", - "content": "অন্তত একটি ফাইল সিলেক্ট করুন। " + "content": "অন্তত একটি ফাইল সিলেক্ট করুন।" }, "noPermission": { "title": "পারমিশন নেই", @@ -455,7 +463,7 @@ "quickSaveFromFavoritesNotice": { "title": "@:general.quickSaveFromFavorites", "content": [ - "আপনার ফেভারিট তালিকায় থাকা ডিভাইস থেকে ফাইল অটোমেটিক রিসিভ করা হয়", + "আপনার ফেভারিট তালিকায় থাকা ডিভাইস থেকে ফাইল অটোমেটিক রিসিভ করা হয়।", "সতর্কতা! বর্তমানে, এটা সম্পূর্ণভাবে নিরাপদ নয়, কোন হ্যাকারের কাছে আপনার ফেভারিট তালিকার কোনও ডিভাইসের ফিঙ্গারপ্রিন্ট থাকে তাহলে সে সীমাবদ্ধতা ছাড়াই আপনাকে ফাইল পাঠাতে পারে।", "তবে, এই অপশনটি এখনও লোকাল নেটওয়ার্কের ব্যবহারকারীদের কোনও সীমাবদ্ধতা ছাড়াই আপনাকে ফাইল পাঠাতে দেয়।" ] @@ -467,7 +475,7 @@ "title": "সেন্ড মোড", "single": "একজন প্রাপকের কাছে ফাইল পাঠায়। ফাইল স্থানান্তর সমাপ্ত হওয়ার পরে নির্বাচন পরিষ্কার করা হবে.", "multiple": "একাধিক প্রাপককে ফাইল পাঠায়। নির্বাচন সাফ করা হবে না।", - "link": "যাদের LocalSend ইনস্টল করা নেই তারা ব্রাউজারে লিঙ্কটি খুলে ফাইলগুলি ডাউনলোড করতে পারবেন।" + "link": "যাদের LocalSend ইনস্টল করা নেই তারা ব্রাউজারে লিঙ্কটি খুলে ফাইলগুলি ডাউনলোড করতে পারবেন।" }, "zoom": { "title": "URL" @@ -505,7 +513,7 @@ "select": "সিলেক্ট করুন", "emptyList": "খালি লিস্ট", "unSupportedAssetType": "আনসাপোর্টেড ফাইল টাইপ.", - "unableToAccessAll": "ডিভাইসে সমস্ত ফাইল অ্যাক্সেস পাওয়া যায়নি৷", + "unableToAccessAll": "ডিভাইসে সমস্ত ফাইল অ্যাক্সেস পাওয়া যায়নি", "viewingLimitedAssetsTip": "শুধুমাত্র অ্যাপে অ্যাক্সেসযোগ্য ফাইল এবং অ্যালবাম দেখুন.", "changeAccessibleLimitedAssets": "অ্যাক্সেসযোগ্য ফাইল আপডেট করতে ট্যাপ করুন", "accessAllTip": "অ্যাপ শুধুমাত্র ডিভাইসে কিছু ফাইল অ্যাক্সেস করতে পারে। সিস্টেম সেটিংসে যান এবং অ্যাপটিকে ডিভাইসের সমস্ত মিডিয়া অ্যাক্সেস করার পারমিশন দিন।", diff --git a/app/assets/i18n/ca.json b/app/assets/i18n/ca.json index f8913aec..a022b083 100644 --- a/app/assets/i18n/ca.json +++ b/app/assets/i18n/ca.json @@ -2,55 +2,60 @@ "locale": "Català", "appName": "LocalSend", "general": { - "accept": "Acceptar", + "accept": "Accepta", "accepted": "Acceptat", - "add": "Afegir", - "advanced": "Avançat", - "cancel": "Cancel·lar", - "close": "Tancar", - "confirm": "Confirmar", - "continueStr": "Continuar", - "copy": "Copiar", - "copiedToClipboard": "Copiat al porta-paper", - "decline": "Rebutjar", + "add": "Afegeix", + "advanced": "Avançades", + "cancel": "Cancel·la", + "close": "Tanca", + "confirm": "Confirma", + "continueStr": "Continua", + "copy": "Copia", + "copiedToClipboard": "S'ha copiat al porta-retalls", + "decline": "Rebutja", "done": "Fet", - "delete": "Eliminar", - "edit": "Editar", + "delete": "Elimina", + "edit": "Edita", "error": "Error", "example": "Exemple", "files": "Fitxers", "finished": "Finalitzat", - "hide": "Amagar", - "off": "Apagat", + "hide": "Amaga", + "off": "Desactivat", "offline": "Desconnectat", - "on": "Encès", + "on": "Activat", "online": "En línia", - "open": "Obrir", + "open": "Obre", "queue": "Cua", - "quickSave": "Desar ràpid", - "quickSaveFromFavorites": "Desar ràpid per \"Preferits\"", - "renamed": "Reanomenar", - "reset": "Restablir", - "restart": "Reiniciar", + "quickSave": "Desat ràpid", + "quickSaveFromFavorites": "Desat ràpid per als «Preferits»", + "renamed": "Canvia el nom", + "reset": "Desfés els canvis", + "restart": "Reinicia", "settings": "Configuració", "skipped": "Omès", - "start": "Iniciar", - "stop": "Parar", - "save": "Desar", - "unchanged": "No canviat", + "start": "Inicia", + "stop": "Atura", + "save": "Desa", + "unchanged": "Sense canvis", "unknown": "Desconegut", - "noItemInClipboard": "No hi ha elements al porta-papers." + "noItemInClipboard": "No hi ha elements al porta-retalls." }, "receiveTab": { - "title": "Rebre", + "title": "Recepció", "infoBox": { "ip": "IP:", "port": "Port:", - "alias": "Àlies:" + "alias": "Nom del dispositiu:" + }, + "quickSave": { + "off": "@:general.off", + "favorites": "Preferits", + "on": "@:general.on" } }, "sendTab": { - "title": "Enviar", + "title": "Envia", "selection": { "title": "Selecció", "files": "Fitxers: {files}", @@ -59,25 +64,25 @@ "picker": { "file": "Fitxer", "folder": "Carpeta", - "media": "Media", + "media": "Multimèdia", "text": "Text", - "app": "App", - "clipboard": "Enganxar" + "app": "Aplicació", + "clipboard": "Enganxa" }, - "shareIntentInfo": "També pot utilitzar l'opció de \"Compartir\" del seu dispositiu mòbil per seleccionar fitxer d'una manera més fàcil.", + "shareIntentInfo": "També podeu utilitzar l'opció «Comparteix» del vostre dispositiu mòbil per a seleccionar fitxers d'una manera més fàcil.", "nearbyDevices": "Dispositius propers", "thisDevice": "Aquest dispositiu", - "scan": "Cercar dispositius", + "scan": "Cerca dispositius", "manualSending": "Enviament manual", "sendMode": "Mode d'enviament", "sendModes": { "single": "Destinatari únic", - "multiple": "Múltiple destinataris", - "link": "Compartir via enllaç" + "multiple": "Múltiples destinataris", + "link": "Comparteix via enllaç" }, "sendModeHelp": "Explicació", - "help": "Si us plau, asseguris que el destinatari està a la mateixa xarxa Wi-Fi.", - "placeItems": "Place items to share." + "help": "Comproveu que el destinatari està en la mateixa xarxa Wi-Fi.", + "placeItems": "Col·loqueu els elements per compartir." }, "settingsTab": { "title": "Configuració", @@ -94,106 +99,111 @@ "system": "Sistema", "oled": "OLED" }, - "language": "Idioma", + "language": "Llengua", "languageOptions": { "system": "Sistema" }, - "saveWindowPlacement": "Surt: desa la ubicació de la finestra", + "saveWindowPlacement": "Desa la posició de la finestra en sortir", "saveWindowPlacementWindows": "Desa la posició de la finestra després de sortir", - "minimizeToTray": "Surt: Minimitzar a la safata", - "launchAtStartup": "Inici automàtic després d'iniciar sessió", + "minimizeToTray": "Minimitza a la safata del sistema/barra de menú en tancar", + "launchAtStartup": "Inici automàtic en iniciar la sessió", "launchMinimized": "Inici automàtic: Inici minimitzat", - "showInContextMenu": "Mostrar LocalSend al menú contextual", + "showInContextMenu": "Mostra el LocalSend al menú contextual", "animations": "Animacions" }, "receive": { - "title": "Rebre", + "title": "Recepció", "quickSave": "@:general.quickSave", "quickSaveFromFavorites": "@:general.quickSaveFromFavorites", "requirePin": "@:webSharePage.requirePin", - "autoFinish": "Finalització Automàtica", - "destination": "Destinació", - "downloads": "(Descàrregues)", - "saveToGallery": "Desar media a la galeria", + "autoFinish": "Finalització automàtica", + "destination": "Desa en la carpeta", + "downloads": "(Baixades)", + "saveToGallery": "Desa els fitxers multimèdia a la galeria", "saveToHistory": "Desa a l'historial" }, "send": { - "title": "Enviar", - "shareViaLinkAutoAccept": "Acceptar peticions automàticament amb el mode \"Compartir mitjançant enllaç\"" + "title": "Enviament", + "shareViaLinkAutoAccept": "Accepta peticions de manera automàtica en el mode «Comparteix via enllaç»" }, "network": { "title": "Xarxa", - "needRestart": "Reiniciar el servidor per aplicar la configuració!", + "needRestart": "Reinicieu el servidor per a aplicar la configuració.", "server": "Servidor", - "alias": "Àlies", + "alias": "Nom del dispositiu", "deviceType": "Tipus de dispositiu", - "deviceModel": "Model de dispositiu", + "deviceModel": "Model del dispositiu", "port": "Port", "discoveryTimeout": "Temps d'espera de descobriment", - "useSystemName": "Utilitzar nom del sistema", - "generateRandomAlias": "Generar àlies aleatòriament", - "portWarning": "Podria no ser detectat per altres dispositius perquè està utilitzant un port personalitzat. (per defecte: {defaultPort})", - "encryption": "Encriptació", - "multicastGroup": "Multicast", - "multicastGroupWarning": "Podria no ser detectat per altres dispositius perquè està utilitzant una adreça multicast personalitzada. (per defecte: {defaultMulticast})" + "useSystemName": "Utilitza el nom del sistema", + "generateRandomAlias": "Genera un àlies aleatori", + "portWarning": "Altres dispositius podrien no detectar-vos perquè utilitzeu un port personalitzat. (predefinit: {defaultPort})", + "encryption": "Xifratge", + "multicastGroup": "Adreça del Multicast", + "multicastGroupWarning": "Altres dispositius podrien no detectar-vos perquè utilitzeu una adreça multicast personalitzada. (predefinida: {defaultMulticast})", + "network": "Xarxa", + "networkOptions": { + "all": "Totes", + "filtered": "Filtrades" + } }, "other": { - "title": "Altre", - "support": "Suport LocalSend", + "title": "Altres", + "support": "Doneu suport al LocalSend", "donate": "Donació", - "privacyPolicy": "Política Privacitat", + "privacyPolicy": "Política de privadesa", "termsOfUse": "Condicions d'ús" }, "advancedSettings": "Configuració avançada" }, "troubleshootPage": { - "title": "Solucionar problemes", - "subTitle": "L'aplicació no funciona com s'espera? Aquí pot trobar la solucions dels problemes més comuns.", + "title": "Solució de problemes", + "subTitle": "L'aplicació no funciona com s'espera? Aquí podeu trobar solucions als problemes més comuns.", "solution": "Solució:", - "fixButton": "Corregir automàticament", + "fixButton": "Corregeix de manera automàtica", "firewall": { - "symptom": "Aquesta aplicació pot enviar fitxers a altres dispositius però altres dispositius no poden enviar fitxers a aquest.", - "solution": "El més provable és que sigui un problema del tallafocs. Pot solucionar-ho permetent les connexiions entrants (UDP I TCP) al port {port}.", - "openFirewall": "Obrir Tallafocs" + "symptom": "Aquest dispositiu pot enviar fitxers a d'altres, però altres dispositius no poden enviar fitxers a aquest.", + "solution": "El més probable és que sigui un problema del tallafocs. Podeu solucionar-ho permetent les connexiions entrants (UDP i TCP) al port {port}.", + "openFirewall": "Obre el tallafocs" }, "noDiscovery": { "symptom": "Aquest dispositiu no pot descobrir altres dispositius.", - "solution": "Si us plau, asseguris que tots els dispositius estan a la mateixa xarxa Wi-Fi i tenen la mateixa configuració (port, adreça multicast i encriptació). Pot provar d'escriure l'adreça IP del dispositiu de destí manulament. Si això funciona, consideri afegir aquest dispositiu a preferits per tal de ser descobert automàticament en un futur." + "solution": "Comproveu que tots els dispositius estan a la mateixa xarxa Wi-Fi i tenen la mateixa configuració (port, adreça multicast i xifratge). Podeu provar d'escriure l'adreça IP del dispositiu de destí de manera manual. Si això funciona, considereu afegir aquest dispositiu als preferits perquè pugui ser descobert automàticament en un futur." }, "noConnection": { - "symptom": "Ambdós dispositius no poden trobar-se ni compartir fitxers.", - "solution": "El problema existeix als dos costats? S'ha d'assegurar que els dispositius estan a la mateixa xarxa Wi-Fi i comparteixen la mateixa configuració (port, adreça multicast i encriptació). El Wi-Fi pot no permetre la comunciació entre participants. En aquest cas, s'ha d'activar l'opció a l'encaminador." + "symptom": "Cap dels dos dispositius no poden trobar-se ni compartir fitxers.", + "solution": "Existeix el problema als dos costats? Si és així, cal que comproveu que els dispositius estan a la mateixa xarxa Wi-Fi i comparteixen la mateixa configuració (port, adreça multicast i xifratge). La Wi-Fi podria no permetre la comunicació entre els participants a causa de l'aïllament del punt d'accés (Access Point, AP). En aquest cas, cal que desactiveu aquesta opció a l'encaminador." } }, "receiveHistoryPage": { "title": "Historial", - "openFolder": "Obrir carpeta", - "deleteHistory": "Eliminar historial", + "openFolder": "Obre la carpeta", + "deleteHistory": "Elimina l'historial", "empty": "L'historial està buit.", "entryActions": { - "open": "Obrir fitxer", - "showInFolder": "Mostrar a la carpeta", + "open": "Obre el fitxer", + "showInFolder": "Mostra a la carpeta", "info": "Informació", - "deleteFromHistory": "Eliminar de l'historial" + "deleteFromHistory": "Elimina de l'historial" } }, "apkPickerPage": { "title": "Aplicacions (APK)", - "excludeSystemApps": "Excloure aplicacions del sistema", - "excludeAppsWithoutLaunchIntent": "Excloure aplicacions no executables", + "excludeSystemApps": "Exclou les aplicacions del sistema", + "excludeAppsWithoutLaunchIntent": "Exclou les aplicacions no executables", "apps": "{n} Aplicacions" }, "selectedFilesPage": { - "deleteAll": "Eliminar tot" + "deleteAll": "Elimina-ho tot" }, "receivePage": { "subTitle": { - "one": "vol enviar un fitxer", - "other": "vol enviar {n} fitxers" + "one": "vol enviar-vos un fitxer", + "other": "vol enviar-vos {n} fitxers" }, - "subTitleMessage": "t'ha enviat un missatge:", - "subTitleLink": "t'ha enviat un enllaç:", - "canceled": "El remitent ha cancelat la petició." + "subTitleMessage": "us ha enviat un missatge:", + "subTitleLink": "us ha enviat un enllaç:", + "canceled": "El remitent ha cancel·lat la petició." }, "receiveOptionsPage": { "title": "Opcions", @@ -203,21 +213,21 @@ "saveToGalleryOff": "S'ha desactivat automàticament perquè hi ha carpetes." }, "sendPage": { - "waiting": "Esperant una resposta...", + "waiting": "S'està esperant una resposta…", "rejected": "El destinatari ha rebutjat la petició.", "tooManyAttempts": "@:web.tooManyAttempts", "busy": "El destinatari està ocupat amb una altra petició." }, "progressPage": { - "titleSending": "Enviant fitxers", - "titleReceiving": "Rebent fitxers", - "savedToGallery": "Guardar a Fotos", + "titleSending": "S'estan enviant els fitxers", + "titleReceiving": "S'estan rebent els fitxers", + "savedToGallery": "Desat a Fotos", "total": { "title": { "sending": "Progrés total ({time})", "finishedError": "Finalitzat amb error", "canceledSender": "Cancel·lat pel remitent", - "canceledReceiver": "Cancelat pel destinatari" + "canceledReceiver": "Cancel·lat pel destinatari" }, "count": "Fitxers: {curr} / {n}", "size": "Mida: {curr} / {n}", @@ -225,28 +235,28 @@ } }, "webSharePage": { - "title": "Compartir via enllaç", - "loading": "Iniciant servidor...", - "stopping": "Parant servidor...", - "error": "Hi ha hagut un error mentre s'iniciava el servidor.", + "title": "Comparteix via enllaç", + "loading": "S'està iniciant el servidor…", + "stopping": "S'està aturant el servidor…", + "error": "Hi ha hagut un error en iniciar el servidor.", "openLink": { - "one": "Obrir l'enllaç al navegador:", - "other": "Obrir un d'aquests enllaços al navegador:" + "one": "Obre l'enllaç al navegador:", + "other": "Obre un d'aquests enllaços al navegador:" }, "requests": "Peticions", "noRequests": "Encara no hi ha peticions.", "encryption": "@:settingsTab.network.encryption", - "autoAccept": "Acceptar peticions automàticament", - "requirePin": "Requerir un PIN", - "pinHint": "El PIN és \"{pin}\"", - "encryptionHint": "LocalSend utilitza un certificat auto-signat. Cal que l'accepteu al navegador.", + "autoAccept": "Accepta les peticions automàticament", + "requirePin": "Demana un PIN", + "pinHint": "El PIN és «{pin}»", + "encryptionHint": "El LocalSend utilitza un certificat auto-signat. Cal que l'accepteu al navegador.", "pendingRequests": "Peticions pendents: {n}" }, "aboutPage": { - "title": "Sobre LocalSend", + "title": "Quant al LocalSend", "description": [ - "LocalSend és una aplicació gratuïta i de codi obert que us permet compartir fitxers i missatges de manera segura amb dispositius propers a la vostra xarxa local sense necessitat de connexió a Internet.", - "Aquesta aplicació està disponible per a Android, iOS, macOS, Windows i Linux. Pot trobar totes les opcions de descàrrega a la pàgina d'inici oficial." + "El LocalSend és una aplicació gratuïta i de codi obert que us permet compartir fitxers i missatges de manera segura amb dispositius propers a la vostra xarxa local sense necessitat de connexió a Internet.", + "Aquesta aplicació està disponible per a Android, iOS, macOS, Windows i Linux. Podeu trobar totes les opcions de baixada a la pàgina d'inici oficial." ], "author": "Autor", "contributors": "Col·laboradors", @@ -255,16 +265,16 @@ }, "donationPage": { "title": "Donació", - "info": "LocalSend és gratuït, de codi obert i sense cap anunci. Si t'agrada l'aplicació, pots donar suport al desenvolupament amb una donació.", - "donate": "Donació {amount}", + "info": "El LocalSend és gratuït, de codi obert i sense anuncis. Si us agrada l'aplicació, podeu donar suport al desenvolupament amb una donació.", + "donate": "Donació: {amount}", "thanks": "Moltes gràcies!", - "restore": "Restaurar la compra" + "restore": "Restaura la compra" }, "changelogPage": { "title": "Registre de canvis" }, "aliasGenerator(ignoreMissing, ignoreGpt)": { - "@info": "Different locales may have different words, it may not match 1:1", + "@info": "Llengües diferents poden tenir paraules diferents, podrien no coincidir al 100%", "adjectives": [ "Adorable", "Bonic", @@ -338,26 +348,26 @@ }, "dialogs": { "addFile": { - "title": "Afegir a la selecció", - "content": "Què vol afegir?" + "title": "Afegeix-ho a la selecció", + "content": "Què voleu afegir?" }, "addressInput": { - "title": "Introdueixi adreça", + "title": "Introduïu l'adreça", "hashtag": "Etiqueta", "ip": "Adreça IP", - "recentlyUsed": "Utilitzat recentment: " + "recentlyUsed": "Utilitzades recentment: " }, "cancelSession": { - "title": "Cancel·lar transferència del fitxer", - "content": "Segur que vol cancel·lar la transferència del fitxer?" + "title": "Cancel·la la transferència de fitxers", + "content": "Segur que voleu cancel·lar la transferència dels fitxers?" }, "cannotOpenFile": { "title": "No es pot obrir el fitxer", - "content": "No pot obrir el \"{file}\". Aquest fitxer s'ha mogut, reanomenat o eliminat?" + "content": "No s'ha pogut obrir «{file}». S'ha mogut, reanomenat o eliminat?" }, "encryptionDisabledNotice": { - "title": "Encriptació deshabilitada", - "content": "La comunicació ara es fa mitjançant el protocol HTTP no xifrat. Per utilitzar HTTPS, torneu a activar l'encriptació." + "title": "Xifratge desactivat", + "content": "La comunicació ara es fa mitjançant el protocol HTTP no xifrat. Per a utilitzar HTTPS, torneu a activar el xifratge." }, "errorDialog": { "title": "@:general.error" @@ -365,14 +375,14 @@ "favoriteDialog": { "title": "Preferits", "noFavorites": "Encara no hi ha cap dispositiu preferit.", - "addFavorite": "Afegir" + "addFavorite": "Afegeix" }, "favoriteDeleteDialog": { - "title": "Eliminar de preferits", - "content": "Realment vol eliminar \"{name}\" de preferits?" + "title": "Elimina dels preferits", + "content": "Voleu eliminar «{name}» dels preferits?" }, "favoriteEditDialog": { - "titleAdd": "Afegir a preferits", + "titleAdd": "Afegeix als preferits", "titleEdit": "Configuració", "name": "Nom del dispositiu", "auto": "(auto)", @@ -388,16 +398,16 @@ "time": "Temps:" }, "fileNameInput": { - "title": "Introdueixi el nom del fitxer", + "title": "Introduïu el nom del fitxer", "original": "Original: {original}" }, "historyClearDialog": { - "title": "Netejar historial", - "content": "Realment vol eliminar tot l'historial?" + "title": "Esborra l'historial", + "content": "Segur que voleu eliminar tot l'historial?" }, "localNetworkUnauthorized": { "title": "@:dialogs.noPermission.title", - "description": "LocalSend no pot trobar altres dispositius sense tenir el permís per escanejar la xarxa local. Concediu aquest permís a la configuració.", + "description": "El LocalSend no pot trobar altres dispositius sense tenir permís per a escanejar la xarxa local. Concediu aquest permís a la configuració.", "gotoSettings": "Configuració" }, "messageInput": { @@ -405,12 +415,12 @@ "multiline": "Multilínia" }, "noFiles": { - "title": "Fitxer no seleccionat", - "content": "Si us plau, seleccioni un fitxer com a mínim." + "title": "No s'ha seleccionat cap fitxer", + "content": "Seleccioneu com a mínim un fitxer." }, "noPermission": { "title": "Sense permisos", - "content": "No has concedit els permisos necessaris. Concediu-los a la configuració." + "content": "No heu concedit els permisos necessaris. Concediu-los a la configuració." }, "notAvailableOnPlatform": { "title": "No disponible", @@ -420,47 +430,56 @@ "title": "Codi QR" }, "quickActions": { - "title": "Accions Ràpides", + "title": "Accions ràpides", "counter": "Comptador", "prefix": "Prefix", - "padZero": "Emplenar amb zeros", - "sortBeforeCount": "Ordenar prèviament alfabèticament", + "padZero": "Reomple amb zeros", + "sortBeforeCount": "Ordena abans alfabèticament", "random": "Aleatori" }, "quickSaveNotice": { "title": "@:general.quickSave", - "content": "Les sol·licituds d'arxiu s'accepten automàticament. Tingueu en compte que tothom a la xarxa local us pot enviar fitxers." + "content": "Les sol·licituds de fitxers s'accepten automàticament. Tingueu en compte que tothom a la xarxa local us pot enviar fitxers." }, "quickSaveFromFavoritesNotice": { - "title": "@:general.quickSaveFromFavorites" + "title": "@:general.quickSaveFromFavorites", + "content": [ + "Les sol·licituds de fitxers s'accepten automàticament dels dispositius de la llista de preferits.", + "Atenció! Actualment, això no és del tot segur, un hacker que tingués les emprentes de qualsevol del dispositiu de la llista de preferits podria enviar-vos fitxers sense restriccions.", + "No obstant això, aquesta opció encara és més segura que permetre que tothom a la xarxa local us enviï fitxers sense restriccions." + ] }, "pin": { - "title": "Introduïr PIN" + "title": "Introduïu el PIN" }, "sendModeHelp": { "title": "Modes d'enviament", - "single": "Enviar fitxers a un destinatari. La selecció s'esborrarà un cop finalitzada la transferència de fitxers.", - "multiple": "Enviar fitxers a diversos destinataris. La selecció no s'esborrarà.", - "link": "Els destinataris que no tinguin LocalSend instal·lat poden descarregar els fitxers seleccionats obrint l'enllaç al seu navegador." + "single": "Envia fitxers a un destinatari. La selecció s'esborrarà un cop finalitzada la transferència de fitxers.", + "multiple": "Envia fitxers a diversos destinataris. La selecció no s'esborrarà en finalitzar la trasferència.", + "link": "Els destinataris que no tinguin el LocalSend instal·lat poden baixar els fitxers seleccionats obrint l'enllaç al seu navegador." }, "zoom": { "title": "URL" + }, + "openFile": { + "title": "Obre el fitxer", + "content": "Voleu obrir el fitxer rebut?" } }, "sanitization": { "empty": "El nom del fitxer no pot estar buit", - "invalid": "El nom del fitxer conté caràcters invàlids" + "invalid": "El nom del fitxer conté caràcters no vàlids" }, "tray": { - "@info": "Apple Guidelines are very strict about the 'close' wording.", + "@info": "Les directrius d'Apple són molt estrictes quant a l'expressió «tanca».", "open": "@:general.open", - "close": "Sortir de LocalSend", - "closeWindows": "Sortir" + "close": "Surt del LocalSend", + "closeWindows": "Surt" }, "web": { "waiting": "@:sendPage.waiting", - "enterPin": "Introduïr PIN", - "invalidPin": "PIN invàlid", + "enterPin": "Introduïu el PIN", + "invalidPin": "PIN no vàlid", "tooManyAttempts": "Massa intents", "rejected": "Rebutjat", "files": "Fitxers", @@ -468,34 +487,41 @@ "size": "Mida" }, "assetPicker": { - "@info": "Traduccions per a l'eina de selecció de mitjans per a Android i Iphone", - "confirm": "Confirmar", - "cancel": "Cancel·lar", - "edit": "Editar", + "@info": "Traduccions per a l'eina de selecció de mitjans per a Android i iPhone", + "confirm": "Confirma", + "cancel": "Cancel·la", + "edit": "Edita", "gifIndicator": "GIF", "loadFailed": "Càrrega fallida", - "original": "Original", - "preview": "Vista prèvia", - "select": "Seleccioni", + "original": "Origen", + "preview": "Previsualitza", + "select": "Seleccioneu", "emptyList": "Llista buida", - "unSupportedAssetType": "Tipus de fitxer no suportat.", - "unableToAccessAll": "No es pot accedir a tots els fitxers del dispositiu.", + "unSupportedAssetType": "Tipus de fitxer no compatible.", + "unableToAccessAll": "No es pot accedir a tots els fitxers del dispositiu", "viewingLimitedAssetsTip": "Visualitza només fitxers i àlbums accessibles per l'aplicació.", - "changeAccessibleLimitedAssets": "Faci clic per actualitzar els fitxers accessibles", - "accessAllTip": "L'aplicació només pot accedir a alguns fitxers del dispositiu. Vés a la configuració del sistema i permet que l'aplicació accedeixi a tots els mitjans del dispositiu.", - "goToSystemSettings": "Anar a la configuració del sistema", - "accessLimitedAssets": "Continuar amb accés limitat", + "changeAccessibleLimitedAssets": "Feu clic per a actualitzar els fitxers accessibles", + "accessAllTip": "L'aplicació només pot accedir a alguns fitxers del dispositiu. Aneu a la configuració del sistema i permeteu que l'aplicació accedeixi a tots els mitjans del dispositiu.", + "goToSystemSettings": "Vés a la configuració del sistema", + "accessLimitedAssets": "Continua amb accés limitat", "accessiblePathName": "Fitxers accessibles", "sTypeAudioLabel": "Àudio", "sTypeImageLabel": "Imatge", "sTypeVideoLabel": "Vídeo", - "sTypeOtherLabel": "Altres medis", - "sActionPlayHint": "reproduir", - "sActionPreviewHint": "previ", - "sActionSelectHint": "selecccionar", - "sActionSwitchPathLabel": "canviar ruta", - "sActionUseCameraHint": "utilitzar càmera", + "sTypeOtherLabel": "Altres fitxers", + "sActionPlayHint": "reprodueix", + "sActionPreviewHint": "previsualitza", + "sActionSelectHint": "selecccioneu", + "sActionSwitchPathLabel": "canvia la ruta", + "sActionUseCameraHint": "utilitza la càmera", "sNameDurationLabel": "duració", - "sUnitAssetCountLabel": "comptar" + "sUnitAssetCountLabel": "compte" + }, + "networkInterfacesPage": { + "title": "Interfícies de xarxa", + "info": "De manera predefinida, el LocalSend utilitza totes les interfícies de xarxa disponibles. Podeu excloure les xarxes no desitjades aquí. Cal que reinicieu el servidor per a aplicar els canvis.", + "preview": "Previsualitza", + "blacklist": "Llista de denegades", + "whitelist": "Llista de permeses" } } diff --git a/app/assets/i18n/da.json b/app/assets/i18n/da.json index b588222f..87e8bda1 100644 --- a/app/assets/i18n/da.json +++ b/app/assets/i18n/da.json @@ -2,16 +2,16 @@ "locale": "Dansk", "appName": "LocalSend", "general": { - "accept": "Accepter", + "accept": "Acceptér", "accepted": "Accepteret", "add": "Tilføj", "advanced": "Avanceret", "cancel": "Afbryd", "close": "Luk", "confirm": "Bekræft", - "continueStr": "Videre", - "copy": "Kopier", - "copiedToClipboard": "Kopieret til udklipsholderen.", + "continueStr": "Fortsæt", + "copy": "Kopiér", + "copiedToClipboard": "Kopieret til udklipsholder", "decline": "Afvis", "done": "Færdig", "delete": "Slet", @@ -19,40 +19,45 @@ "error": "Fejl", "example": "Eksempel", "files": "Filer", - "finished": "Fuldendt", + "finished": "Fuldført", "hide": "Skjul", "off": "Fra", "offline": "Offline", "on": "Til", "online": "Online", - "open": "Åben", + "open": "Åbn", "queue": "Kø", - "quickSave": "Quick Save", - "quickSaveFromFavorites": "Quick Save til \"Favoritter\"", + "quickSave": "Gem hurtigt", + "quickSaveFromFavorites": "Gem hurtigt til \"Favoritter\"", "renamed": "Omdøbt", - "reset": "Nulstil", + "reset": "Fortryd ændringer", "restart": "Genstart", "settings": "Indstillinger", "skipped": "Sprunget over", "start": "Start", "stop": "Stop", "save": "Gem", - "unchanged": "Uforandret", + "unchanged": "Uændret", "unknown": "Ukendt", - "noItemInClipboard": "Intet element fundet i udklipsholderen." + "noItemInClipboard": "Ingen elementer i udklipsholder." }, "receiveTab": { "title": "Modtag", "infoBox": { "ip": "IP:", "port": "Port:", - "alias": "Alias:" + "alias": "Enhedsnavn:" + }, + "quickSave": { + "favorites": "Favoritter", + "off": "@:general.off", + "on": "@:general.on" } }, "sendTab": { "title": "Send", "selection": { - "title": "Hvad vil du dele?", + "title": "Valg", "files": "Filer: {files}", "size": "Størrelse: {size}" }, @@ -62,22 +67,22 @@ "media": "Medie", "text": "Tekst", "app": "App", - "clipboard": "Udklipsholder" + "clipboard": "Indsæt" }, - "shareIntentInfo": "Du kan også benytte \"Dele\"-funktionen på din mobilentelefon, for lettere at kunne vælge filer.", - "nearbyDevices": "Enheder tæt på", + "shareIntentInfo": "Du kan også bruge din mobilenheds \"Del\"-funktion til nemmere at vælge filer.", + "nearbyDevices": "Enheder i nærheden", "thisDevice": "Denne enhed", "scan": "Søg efter enheder", "manualSending": "Manuel afsendelse", - "sendMode": "Sendemåde", + "sendMode": "Send-tilstand", "sendModes": { "single": "Enkel modtager", "multiple": "Flere modtagere", "link": "Del med link" }, "sendModeHelp": "Forklaring", - "help": "Vær venligst sikker på, at den ønskede enhed også befinder sig på samme Wi-Fi-netværk.", - "placeItems": "Placer filer for at dele." + "help": "Sørg for, at den ønskede enhed er på det samme Wi-Fi-netværk.", + "placeItems": "Placer filer til deling." }, "settingsTab": { "title": "Indstillinger", @@ -98,11 +103,11 @@ "languageOptions": { "system": "System" }, - "saveWindowPlacement": "Afslut: Gem vindueposition.", - "saveWindowPlacementWindows": "Gem vinduesposition efter afslutning", - "minimizeToTray": "Afslut: minimer til dock/menubjælke", - "launchAtStartup": "Autostart ved login", - "launchMinimized": "Autostart: Skjult ved opstart", + "saveWindowPlacement": "Gem vinduesposition ved afslutning", + "saveWindowPlacementWindows": "Gem vinduesposition ved lukning", + "minimizeToTray": "Minimer til systembakken/menulinjen ved lukning", + "launchAtStartup": "Autostart efter login", + "launchMinimized": "Autostart: Start skjult", "showInContextMenu": "Vis LocalSend i kontekstmenu", "animations": "Animationer" }, @@ -111,29 +116,36 @@ "quickSave": "@:general.quickSave", "quickSaveFromFavorites": "@:general.quickSaveFromFavorites", "requirePin": "@:webSharePage.requirePin", - "autoFinish": "Fuldend automatisk", - "destination": "Placering", + "autoFinish": "Auto-fuldfør", + "destination": "Gem til mappe", "downloads": "(Overførsler)", - "saveToGallery": "Gem medier i galleri", - "saveToHistory": "Gem i historik" + "saveToGallery": "Gem medier til galleri", + "saveToHistory": "Gem til historik" }, "send": { "title": "Send", - "shareViaLinkAutoAccept": "Accepter automatisk anmodninger i \"Del med link\"-tilstand" + "shareViaLinkAutoAccept": "Acceptér automatisk anmodninger i \"Del med link\"-tilstand" }, "network": { "title": "Netværk", "needRestart": "Genstart serveren for at anvende ændringerne!", "server": "Server", - "alias": "Alias", + "alias": "Enhedsnavn", "deviceType": "Enhedstype", "deviceModel": "Enhedsmodel", "port": "Port", - "discoveryTimeout": "Timeout for opdagelse", - "portWarning": "Hvis du bruger en brugerdefineret port, vil du muligvis ikke blive genkendt af andre enheder. (Standard: {defaultPort})", + "discoveryTimeout": "Timeout for søgning", + "portWarning": "Andre enheder registrerer dig muligvis ikke, da du bruger en brugerdefineret port (standard: {defaultPort}).", "encryption": "Kryptering", - "multicastGroup": "Multicast", - "multicastGroupWarning": "Du bliver muligvis ikke genkendt af andre enheder, fordi du bruger en brugerdefineret multicast-adresse. (Standard: {defaultMulticast})" + "multicastGroup": "Multicast-adresse", + "multicastGroupWarning": "Andre enheder registrerer dig muligvis ikke, da du bruger en brugerdefineret multicast-adresse (standard: {defaultMulticast}).", + "network": "Netværk", + "networkOptions": { + "all": "Alle", + "filtered": "Filtreret" + }, + "useSystemName": "Brug systemnavn", + "generateRandomAlias": "Generér tilfældigt alias" }, "other": { "title": "Andet", @@ -145,40 +157,40 @@ "advancedSettings": "Avancerede indstillinger" }, "troubleshootPage": { - "title": "Fejlmelding", - "subTitle": "Virker appen ikke som forventet? Her finder du hyppigt brugte løsninger.", + "title": "Fejlsøgning", + "subTitle": "Fungerer appen ikke som forventet? Her finder du løsninger på almindelige problemer.", "solution": "Løsning:", "fixButton": "Løs automatisk", "firewall": { - "symptom": "Denne app kan sende filer til andre endheder, men ikke omvendt.", - "solution": "Dette er højst sandsynligt et Firewall-problem. Du kan løse det ved at tillade indgående forbindelser (UDP und TCP) på Port {port}.", - "openFirewall": "Åben firewall" + "symptom": "Denne enhed kan sende filer til andre enheder, men andre kan ikke sende til denne enhed.", + "solution": "Dette er sandsynligvis et firewall-problem. Løs det ved at tillade indgående forbindelser (UDP og TCP) på port {port}.", + "openFirewall": "Åbn firewall" }, "noDiscovery": { "symptom": "Denne enhed kan ikke finde andre enheder.", - "solution": "Kontrollér venligst, at alle enheder er på det samme Wi-Fi-netværk og har samme konfiguration (port, multicast-adresse, kryptering). Du kan prøve at indtaste enhedens IP-adresse manuelt. Hvis dette virker, kan du overveje at tilføje denne enhed til favoritterne, så den automatisk kan blive opdaget i fremtiden." + "solution": "Sørg for, at alle enheder er på samme Wi-Fi-netværk og har den samme konfiguration (port, multicast-adresse, kryptering). Du kan prøve at indtaste den ønskede enheds IP-adresse manuelt. Hvis det virker, kan du føje enheden til favoritter, så den kan findes automatisk fremover." }, "noConnection": { "symptom": "Begge enheder kan hverken se hinanden eller dele data.", - "solution": "Findes problemet på begge sider? I så fald skal du sikrer, at begge enheder er tilsluttet samme Wi-Fi-netværk og deler den samme konfiguration (Port, Multicast-adresse, kryptering). Det er muligt, at Wi-Fi-netværket ikke tillader forbindelser mellem enheder. I så fald skal denne indstilling slås til på routeren." + "solution": "Er problemet der på begge enheder? Hvis ja, skal du sikre, at begge er på samme Wi-Fi-netværk og har den samme konfiguration (port, multicast-adresse, kryptering). Det kan være, at Wi-Fi-netværket forhindrer kommunikation mellem enheder grundet Access Point (AP) Isolation. I så fald skal denne indstilling deaktiveres på routeren." } }, "receiveHistoryPage": { "title": "Historik", - "openFolder": "Åben mappe", + "openFolder": "Åbn mappe", "deleteHistory": "Slet historik", "empty": "Historikken er tom.", "entryActions": { - "open": "Åben fil", + "open": "Åbn fil", "showInFolder": "Vis i mappe", "info": "Information", - "deleteFromHistory": "Slet fra historikken" + "deleteFromHistory": "Slet fra historik" } }, "apkPickerPage": { "title": "Apps (APK)", - "excludeSystemApps": "Ekskluder System-apps", - "excludeAppsWithoutLaunchIntent": "Ekskluder Ikke-startbare Apps", + "excludeSystemApps": "Ekskluder systemapps", + "excludeAppsWithoutLaunchIntent": "Ekskluder ikke-startbare apps", "apps": "{n} Apps" }, "selectedFilesPage": { @@ -201,19 +213,19 @@ "saveToGalleryOff": "Slået fra automatisk, fordi der er mapper." }, "sendPage": { - "waiting": "Venter på svar...", + "waiting": "Venter på svar…", "rejected": "Modtageren har afvist delingen.", "tooManyAttempts": "@:web.tooManyAttempts", "busy": "Modtageren er optaget med en anden deling." }, "progressPage": { - "titleSending": "Send filer", - "titleReceiving": "Modtag filer", + "titleSending": "Sender filer", + "titleReceiving": "Modtager filer", "savedToGallery": "Gemt i fotos", "total": { "title": { "sending": "Samlet tid ({time})", - "finishedError": "Fuldendt med fejl", + "finishedError": "Fuldført med fejl", "canceledSender": "Afbrudt af afsender", "canceledReceiver": "Afbrudt af modtager" }, @@ -224,12 +236,12 @@ }, "webSharePage": { "title": "Del med link", - "loading": "Start server...", - "stopping": "Stop server...", + "loading": "Starter server…", + "stopping": "Stopper server…", "error": "En fejl opstod, mens serveren blev startet.", "openLink": { - "one": "Åben dette link i browseren:", - "other": "Åben et af disse links i browseren:" + "one": "Åbn dette link i din browser:", + "other": "Åbn et af disse links i din browser:" }, "requests": "Forespørgsler", "noRequests": "Ingen forespørgsler endnu.", @@ -237,43 +249,43 @@ "autoAccept": "Accepter automatisk anmodninger", "requirePin": "Kræv PIN-kode", "pinHint": "PIN-koden er \"{pin}\"", - "encryptionHint": "LocalSend benytter et selvsigneret certifikat. Det skal accepteres i browseren.", - "pendingRequests": "Ventende forespørgsler: {n}" + "encryptionHint": "LocalSend bruger et selvsigneret certifikat. Du skal acceptere det i din browser.", + "pendingRequests": "Afventende forespørgsler: {n}" }, "aboutPage": { "title": "Om LocalSend", "description": [ - "LocalSend er en gratis open-source app, som du kan bruge til sikkert at dele filer og beskeder med andre enheder i nærheden på dit lokale netværk, uden en internet forbindelse.", - "Appen findes til Android, iOS, macOS, Windows og Linux. Alle downloadmuligheder finder du på den officielle hjemmeside." + "LocalSend er en gratis, open source-app, der lader dig dele filer og beskeder sikkert med enheder i nærheden over dit lokale netværk uden behov for en internetforbindelse.", + "Appen er tilgængelig på Android, iOS, macOS, Windows og Linux. Du finder alle downloadmuligheder på den officielle hjemmeside." ], "author": "Skaber", - "contributors": "Medvirkende", + "contributors": "Bidragydere", "packagers": "Pakkere", "translators": "Oversættere" }, "donationPage": { "title": "Donér", - "info": "LocalSend er gratis, open-source og reklamefri. Hvis du kan lide denne app, kan du støtte dens udvikling med en donation.", + "info": "LocalSend er gratis, open source og uden annoncer. Hvis du kan lide appen, kan du støtte udviklingen med en donation.", "donate": "Donér {amount}", "thanks": "Tusind tak for din støtte!", - "restore": "Genskab køb" + "restore": "Gendan køb" }, "changelogPage": { - "title": "Ændringsbemærkninger" + "title": "Ændringslog" }, "aliasGenerator(ignoreMissing, ignoreGpt)": { - "@info": "Inherits from the English version" + "@info": "Lokaliteter kan have forskellige ord og matcher ikke altid 1:1" }, "dialogs": { "addFile": { - "title": "Tilføj til pakke", + "title": "Føj til valg", "content": "Hvad vil du tilføje?" }, "addressInput": { - "title": "Skriv adresse", + "title": "Indtast adresse", "hashtag": "Hashtag", "ip": "IP-adresse", - "recentlyUsed": "Senest brugt:" + "recentlyUsed": "Senest brugt: " }, "cancelSession": { "title": "Afbryd filoverførsel", @@ -284,31 +296,31 @@ "content": "Filen \"{file}\" kunne ikke åbnes. Er denne fil blevet flyttet, omdøbt eller slettet?" }, "encryptionDisabledNotice": { - "title": "Kryptering slået fra", - "content": "Kommunikationen forløber nu over den ukrypterede HTTP-protokol. Aktiver kryptering for igen at benytte HTTPS." + "title": "Kryptering deaktiveret", + "content": "Kommunikationen sker nu via den ukrypterede HTTP-protokol. Aktivér kryptering igen for at bruge HTTPS." }, "errorDialog": { "title": "@:general.error" }, "favoriteDialog": { "title": "Favoritter", - "noFavorites": "Ingen favoritter indstillet.", - "addFavorite": "Ny" + "noFavorites": "Ingen favoritter endnu.", + "addFavorite": "Tilføj" }, "favoriteDeleteDialog": { "title": "Slet favorit", "content": "Vil du virkelig slette \"{name}\"?" }, "favoriteEditDialog": { - "titleAdd": "Tilføj favorit", + "titleAdd": "Føj til favoritter", "titleEdit": "Rediger favorit", - "name": "Navn", + "name": "Enhedsnavn", "auto": "(auto)", - "ip": "IP-addresse", + "ip": "IP-adresse", "port": "Port" }, "fileInfo": { - "title": "Fil-information", + "title": "Filoplysninger", "fileName": "Filnavn:", "path": "Sti:", "size": "Størrelse:", @@ -320,8 +332,8 @@ "original": "Original: {original}" }, "historyClearDialog": { - "title": "Slet historik", - "content": "Vil du virkelig slette historikken?" + "title": "Ryd historik", + "content": "Vil du virkelig slette hele historikken?" }, "localNetworkUnauthorized": { "title": "@:dialogs.noPermission.title", @@ -338,7 +350,7 @@ }, "noPermission": { "title": "Ingen tilladelse", - "content": "Du har ikke givet de tilstrækkelige tilladelser. Giv venligst tilladelse i systemindstillingerne." + "content": "Du har ikke givet de nødvendige tilladelser. Giv venligst tilladelse i systemindstillingerne." }, "notAvailableOnPlatform": { "title": "Ikke tilgængelig", @@ -348,42 +360,51 @@ "title": "QR-kode" }, "quickActions": { - "title": "Kvikhandlinger", + "title": "Hurtighandlinger", "counter": "Tæller", "prefix": "Præfiks", "padZero": "Fyld med nuller", - "sortBeforeCount": "Sorter alfabetisk på forhånd", + "sortBeforeCount": "Sortér alfabetisk på forhånd (A-Å)", "random": "Tilfældig" }, "quickSaveNotice": { "title": "@:general.quickSave", - "content": "Filoverførsler bliver automatisk accepteret. Bemærk at alle på det lokale netværk kan sende dig filer." + "content": "Filoverførsler accepteres nu automatisk. Bemærk, at alle på det lokale netværk kan sende dig filer." }, "quickSaveFromFavoritesNotice": { - "title": "@:general.quickSaveFromFavorites" + "title": "@:general.quickSaveFromFavorites", + "content": [ + "Filoverførsler accepteres nu automatisk fra enheder på din favoritliste.", + "Advarsel! Dette er ikke helt sikkert, da hvis en hacker har fingeraftrykket på enhver enhed fra din favoritliste, kan de sende filer til dig uden restriktioner.", + "Denne mulighed er dog stadig sikrere end at tillade alle brugere på det lokale netværk at sende filer til dig uden restriktioner." + ] }, "pin": { "title": "Indtast PIN-kode" }, "sendModeHelp": { - "title": "Sendemåde", - "single": "Send filer til en modtager. Filvalget vil blive ryddet når filoverførslen er slut.", - "multiple": "Send filer til flere modtagere. Filvalget vil ikke blive ryddet.", - "link": "Modtagere, der ikke har LocalSend installeret, kan downloade de valgte filer i en browser." + "title": "Send-tilstande", + "single": "Sender filer til én modtager. Valget ryddes efter filoverførsel er færdig.", + "multiple": "Sender filer til flere modtager. Valget ryddes ikke efter filoverførsel er færdig.", + "link": "Modtagere, der ikke har LocalSend installeret, kan hente de valgte filer ved at åbne linket i deres browser." }, "zoom": { "title": "URL" + }, + "openFile": { + "title": "Åbn fil", + "content": "Vil du åbne den modtagne fil?" } }, "sanitization": { - "empty": "Filnavn kan ikke være tomt", + "empty": "Filnavn må ikke være tomt", "invalid": "Filnavn indeholder ugyldige tegn" }, "tray": { - "@info": "Apple Guidelines are very strict about the 'close' wording.", + "@info": "Apples retningslinjer er meget strenge angående ordet \"luk\".", "open": "@:general.open", - "close": "Luk LocalSend", - "closeWindows": "Afslut" + "close": "Afslut LocalSend", + "closeWindows": "Luk" }, "web": { "waiting": "@:sendPage.waiting", @@ -396,22 +417,22 @@ "size": "Størrelse" }, "assetPicker": { - "@info": "Translations for the Media selection tool for Android and Iphone", + "@info": "Oversættelser til medievalgværktøjet på Android og iPhone", "confirm": "Bekræft", "cancel": "Afbryd", "edit": "Rediger", "gifIndicator": "GIF", - "loadFailed": "Indlæsning slog fejl", + "loadFailed": "Indlæsning mislykkedes", "original": "Original", "preview": "Forhåndsvisning", "select": "Vælg", "emptyList": "Tom liste", - "unSupportedAssetType": "Formatet understøttes ikke.", - "unableToAccessAll": "Kan ikke tilgå alle filer på enheden.", - "viewingLimitedAssetsTip": "Vis kun filer og mapper tilgængelig for appen.", + "unSupportedAssetType": "Ikke-understøttet filtype.", + "unableToAccessAll": "Kan ikke tilgå alle filer på enheden", + "viewingLimitedAssetsTip": "Vis kun filer og mapper tilgængelige for appen.", "changeAccessibleLimitedAssets": "Klik for at opdatere tilgængelige filer", - "accessAllTip": "Appen kan kun tilgå nogle filer på enheden. Åben venligst systemindstillingerne og giv appen adgang til alle medier på enheden.", - "goToSystemSettings": "Gå til systemindstillingerne", + "accessAllTip": "Appen kan kun tilgå nogle filer på enheden. Gå til systemindstillingerne, og giv den adgang til alle medier på enheden.", + "goToSystemSettings": "Gå til systemindstillinger", "accessLimitedAssets": "Fortsæt med begrænset adgang", "accessiblePathName": "Tilgængelige filer", "sTypeAudioLabel": "Lyd", @@ -421,9 +442,16 @@ "sActionPlayHint": "Afspil", "sActionPreviewHint": "Forhåndsvisning", "sActionSelectHint": "Vælg", - "sActionSwitchPathLabel": "Ændr filens sti", - "sActionUseCameraHint": "Benyt kamera", + "sActionSwitchPathLabel": "Ændr filsti", + "sActionUseCameraHint": "Brug kamera", "sNameDurationLabel": "Varighed", "sUnitAssetCountLabel": "Antal" + }, + "networkInterfacesPage": { + "title": "Netværksgrænseflader", + "info": "Som standard bruger LocalSend alle tilgængelige netværksgrænseflader. Du kan ekskludere uønskede netværk her. Du skal genstarte serveren for at anvende ændringerne.", + "preview": "Forhåndsvisning", + "whitelist": "Hvidliste", + "blacklist": "Sortliste" } } diff --git a/app/assets/i18n/de.json b/app/assets/i18n/de.json index 90a4832d..c47cf9fc 100644 --- a/app/assets/i18n/de.json +++ b/app/assets/i18n/de.json @@ -239,6 +239,14 @@ "count": "Dateien: {curr} / {n}", "size": "Größe: {curr} / {n}", "speed": "Geschwindigkeit: {speed}/s" + }, + "remainingTime": { + "@hours": "Benutze 'h' als Abkürzung für Stunden und 'm' für Minuten", + "@days": "Benutze 'd' für Tage, 'h' für Stunden und 'm' für Minuten", + "seconds": "{n}:{ss}", + "minutes": "{n}:{ss}", + "hours": "{h}h {m}m", + "days": "{d}d {h}h {m}m" } }, "webSharePage": { diff --git a/app/assets/i18n/el.json b/app/assets/i18n/el.json index bd6fd175..a17325b3 100644 --- a/app/assets/i18n/el.json +++ b/app/assets/i18n/el.json @@ -207,16 +207,16 @@ }, "receiveOptionsPage": { "title": "Επιλογές", - "destination": "@:settingsTab.receive.destination", "appDirectory": "(Φάκελος LocalSend)", - "saveToGallery": "@:settingsTab.receive.saveToGallery", - "saveToGalleryOff": "Απενεργοποιήθηκε αυτόματα επειδή υπάρχουν κατάλογοι." + "saveToGalleryOff": "Απενεργοποιήθηκε αυτόματα επειδή υπάρχουν κατάλογοι.", + "destination": "@:settingsTab.receive.destination", + "saveToGallery": "@:settingsTab.receive.saveToGallery" }, "sendPage": { "waiting": "Αναμονή για απάντηση…", "rejected": "Ο παραλήπτης απέρριψε το αίτημα.", - "tooManyAttempts": "@:web.tooManyAttempts", - "busy": "Ο παραλήπτης είναι απασχολημένος με άλλο αίτημα." + "busy": "Ο παραλήπτης είναι απασχολημένος με άλλο αίτημα.", + "tooManyAttempts": "@:web.tooManyAttempts" }, "progressPage": { "titleSending": "Γίνεται αποστολή αρχείων", @@ -245,12 +245,12 @@ }, "requests": "Αιτήματα", "noRequests": "Κανένα αίτμηα ακόμα.", - "encryption": "@:settingsTab.network.encryption", "autoAccept": "Αυτόματη αποδοχή αιτημάτων", "requirePin": "Απαίτηση PIN", "pinHint": "Το PIN είναι \"{pin}\"", "encryptionHint": "Το LocalSend χρησιμοποιεί αυτο-υπογεγραμμένο πιστοποιητικό. Χρειάζεται να το αποθεχτείτε στον φυλλομετρητή.", - "pendingRequests": "Αναμονή αιτημάτων: {n}" + "pendingRequests": "Αναμονή αιτημάτων: {n}", + "encryption": "@:settingsTab.network.encryption" }, "aboutPage": { "title": "Σχετικά με το LocalSend", @@ -274,7 +274,7 @@ "title": "Καταγραφή αλλαγών" }, "aliasGenerator(ignoreMissing, ignoreGpt)": { - "@info": "Different locales may have different words, it may not match 1:1", + "@info": "Διαφορετικές τοποθεσίες μπορεί να έχουν διαφορετικές λέξεις, μπορεί να μην ταιριάζουν 1:1", "adjectives": [ "Λατρευτό", "Πανεμορφο", @@ -357,9 +357,9 @@ }, "addressInput": { "title": "Εισαγωγή διεύθυνσης", - "hashtag": "Hashtag", "ip": "Διεύθυνση IP", - "recentlyUsed": "Χρησιμοποιήθηκε πρόσφατα: " + "recentlyUsed": "Χρησιμοποιήθηκε πρόσφατα: ", + "hashtag": "Χάσταγκ" }, "cancelSession": { "title": "Ακύρωση της μεταφοράς του αρχείου", @@ -411,11 +411,11 @@ }, "localNetworkUnauthorized": { "title": "@:dialogs.noPermission.title", - "description": "LocalSend can't find other devices without having the permission to scan the local network. Please grant this permission in the settings.", + "description": "Το LocalSend δεν μπορεί να βρει άλλες συσκευές χωρίς την άδεια σάρωσης του τοπικού δικτύου. Παρακαλείστε να παραχωρήσετε αυτό το δικαίωμα στις ρυθμίσεις.", "gotoSettings": "Ρυθμίσεις" }, "messageInput": { - "title": "Τύπος μηνύματος", + "title": "Πληκτρολογήστε το μήνυμα", "multiline": "Πολλαπλών γραμμών" }, "noFiles": { @@ -442,16 +442,16 @@ "random": "Τυχαία" }, "quickSaveNotice": { - "title": "@:general.quickSave", - "content": "Τα αιτήματα αρχείων γίνονται αυτόματα δεκτά. Έχετε υπόψη σας ότι όλοι στο τοπικό δίκτυο μπορούν να σας στείλουν αρχεία." + "content": "Τα αιτήματα αρχείων γίνονται αυτόματα δεκτά. Έχετε υπόψη σας ότι όλοι στο τοπικό δίκτυο μπορούν να σας στείλουν αρχεία.", + "title": "@:general.quickSave" }, "quickSaveFromFavoritesNotice": { - "title": "@:general.quickSaveFromFavorites", "content": [ "Τα αιτήματα αρχείων γίνονται τώρα αυτόματα αποδεκτά από τις συσκευές της λίστας των αγαπημένων σας.", "Προειδοποίηση! Επί του παρόντος, αυτό δεν είναι απολύτως ασφαλές, ένας χάκερ που έχει το δακτυλικό αποτύπωμα οποιασδήποτε συσκευής από τη λίστα των αγαπημένων σας μπορεί να σας στείλει αρχεία χωρίς περιορισμό.", "Ωστόσο, αυτή η επιλογή είναι ακόμα πιο ασφαλής από το να επιτρέπεται σε όλους τους χρήστες στο τοπικό δίκτυο να σας στείλουν αρχεία χωρίς περιορισμό." - ] + ], + "title": "@:general.quickSaveFromFavorites" }, "pin": { "title": "Εισαγωγή PIN" diff --git a/app/assets/i18n/en-IN.json b/app/assets/i18n/en-IN.json index 101155ef..3ce39d97 100644 --- a/app/assets/i18n/en-IN.json +++ b/app/assets/i18n/en-IN.json @@ -232,6 +232,14 @@ "count": "Files: {curr} / {n}", "size": "Size: {curr} / {n}", "speed": "Speed: {speed}/s" + }, + "remainingTime": { + "seconds": "{n}:{ss}", + "minutes": "{n}:{ss}", + "hours": "{h}h {m}m", + "days": "{d}d {h}h {m}m", + "@hours": "Use 'h' for hours abbreviation and 'm' for minutes", + "@days": "Use 'd' for days, 'h' for hours, and 'm' for minutes" } }, "webSharePage": { diff --git a/app/assets/i18n/es-ES.json b/app/assets/i18n/es-ES.json index 8387830f..1c71f614 100644 --- a/app/assets/i18n/es-ES.json +++ b/app/assets/i18n/es-ES.json @@ -73,7 +73,7 @@ "nearbyDevices": "Dispositivos Cercanos", "thisDevice": "Este dispositivo", "scan": "Buscar dispositivos", - "manualSending": "Envío manual", + "manualSending": "Enviar manualmente", "sendMode": "Modo de envío", "sendModes": { "single": "Solo un destino", @@ -81,7 +81,7 @@ "link": "Compartir enlace" }, "sendModeHelp": "Explicación", - "help": "Por favor asegúrese que el destino elegido esté en la misma red Wi-Fi.", + "help": "Por favor asegúrese que el dispositivo de destino esté en la misma red Wi-Fi.", "placeItems": "Selecciona elementos para compartir." }, "settingsTab": { @@ -124,7 +124,7 @@ }, "send": { "title": "Enviar", - "shareViaLinkAutoAccept": "Enviar enlace: Aceptar automáticamente" + "shareViaLinkAutoAccept": "Aceptar automáticamente solicitudes en el modo \"Compartir mediante enlace\"" }, "network": { "title": "Red", @@ -188,10 +188,10 @@ } }, "apkPickerPage": { - "title": "Apps (APK)", + "title": "Aplicaciones (APK)", "excludeSystemApps": "Excluir apps de sistema", "excludeAppsWithoutLaunchIntent": "Excluir apps no ejecutables", - "apps": "{n} Apps" + "apps": "{n} Aplicaciones" }, "selectedFilesPage": { "deleteAll": "Eliminar todo" @@ -208,7 +208,7 @@ "receiveOptionsPage": { "title": "Opciones", "destination": "@:settingsTab.receive.destination", - "appDirectory": "(carpeta @:appName)", + "appDirectory": "(Carpeta LocalSend)", "saveToGallery": "@:settingsTab.receive.saveToGallery", "saveToGalleryOff": "Desactivado automáticamente porque hay carpetas." }, @@ -232,6 +232,14 @@ "count": "Archivos: {curr} / {n}", "size": "Tamaño: {curr} / {n}", "speed": "Velocidad: {speed}/s" + }, + "remainingTime": { + "seconds": "{n}:{ss}", + "minutes": "{n}:{ss}", + "hours": "{h}h {m}m", + "days": "{d}d {h}h {m}m", + "@hours": "Usa «h» como abreviatura de horas y «m» para minutos", + "@days": "Usa «d» para días, «h» para horas y «m» para minutos" } }, "webSharePage": { @@ -287,7 +295,7 @@ }, "addressInput": { "title": "Introducir dirección", - "hashtag": "Hashtag", + "hashtag": "Etiqueta", "ip": "Dirección IP", "recentlyUsed": "Usados recientemente: " }, @@ -317,7 +325,7 @@ }, "favoriteEditDialog": { "titleAdd": "Agregar a favoritos", - "titleEdit": "Editar", + "titleEdit": "Ajustes", "name": "Alias", "auto": "(auto)", "ip": "Dirección IP", @@ -439,7 +447,7 @@ "sTypeImageLabel": "Imagen", "sTypeVideoLabel": "Video", "sTypeOtherLabel": "Otros medios", - "sActionPlayHint": "play", + "sActionPlayHint": "reproducir", "sActionPreviewHint": "vista previa", "sActionSelectHint": "selecccionar", "sActionSwitchPathLabel": "cambiar ruta", @@ -448,10 +456,10 @@ "sUnitAssetCountLabel": "conteo" }, "networkInterfacesPage": { - "title": "Interfaces de red", + "title": "Interfaces de la red", "info": "De forma predeterminada, LocalSend utiliza todas las interfaces de red disponibles. Aquí puede desactivar las redes no deseadas. Debe reiniciar el servidor para aplicar los cambios.", "preview": "Vista previa", - "whitelist": "Lista de permitidos", + "whitelist": "Lista blanca", "blacklist": "Lista negra" } } diff --git a/app/assets/i18n/et.json b/app/assets/i18n/et.json index 2e1ded57..100f8c51 100644 --- a/app/assets/i18n/et.json +++ b/app/assets/i18n/et.json @@ -26,7 +26,7 @@ "on": "Sees", "online": "Võrgus", "open": "Ava", - "queue": "Järjekord", + "queue": "Järjekorras", "quickSave": "Kiirsalvestus", "quickSaveFromFavorites": "Kiirsalvestamine „Lemmikutelt“", "renamed": "Nimi on muudetud", @@ -151,7 +151,7 @@ "title": "Muu teave", "support": "Toeta LocalSendi", "donate": "Toeta rahaliselt", - "privacyPolicy": "Privaatsuspoliitika", + "privacyPolicy": "Andmekaitsepõhimõtted", "termsOfUse": "Kasutustingimused" }, "advancedSettings": "Täiendavad seadistused" @@ -232,6 +232,14 @@ "count": "Faile: {curr} / {n}", "size": "Andmemaht: {curr} / {n}", "speed": "Kiirus: {speed}/s" + }, + "remainingTime": { + "seconds": "{n}:{ss}", + "minutes": "{n}:{ss}", + "hours": "{h} t {m} min", + "days": "{d} pv {h} t {m} min", + "@hours": "Kasuta „h“ tunni lühendina ja „m“ minutite jaoks", + "@days": "Kasuta „d“ päeva, lühendina „h“ tunni lühendina ja „m“ minutite jaoks" } }, "webSharePage": { diff --git a/app/assets/i18n/eu.json b/app/assets/i18n/eu.json index f7b7fe99..e30ba1d5 100644 --- a/app/assets/i18n/eu.json +++ b/app/assets/i18n/eu.json @@ -38,7 +38,8 @@ "save": "Gorde", "unchanged": "Aldaketarik gabe", "unknown": "Ezezaguna", - "noItemInClipboard": "Elementua ez dago arbeletan" + "noItemInClipboard": "Arbela hutsik dago.", + "quickSaveFromFavorites": "“Gogokoetan” gorde" }, "receiveTab": { "title": "Eskuratu", @@ -46,6 +47,11 @@ "ip": "IP:", "port": "Portua:", "alias": "Aliasa:" + }, + "quickSave": { + "off": "@:general.off", + "on": "@:general.on", + "favorites": "Gogokoak" } }, "sendTab": { @@ -71,11 +77,12 @@ "sendModes": { "single": "Hartzaile bakarra", "multiple": "Hartzaile anitz", - "link": "Lotura elkarbanatu" + "link": "URL bidez partekatu" }, "sendModeHelp": "Azalpena", "help": "Ziurtatu zaitez aukeratutako hartzailea zure Wi-Fi sare berean dagoela.", - "placeItems": "Aukeratu elkarbanatzeko elementuak." + "placeItems": "Aukeratu elkarbanatzeko elementuak.", + "manualSending": "Eskuzko bidalketa" }, "settingsTab": { "title": "Ezarpenak", @@ -100,7 +107,9 @@ "minimizeToTray": "Itxi: txikitu lehioa", "launchAtStartup": "Hasieratze automatikoa", "launchMinimized": "Hasieratze automatikoa: hasi txikituta", - "animations": "Animazioak" + "animations": "Animazioak", + "saveWindowPlacementWindows": "Irteeran leihoaren kokapena gorde", + "showInContextMenu": "Erakutsi LocalSend testuinguru menuan" }, "receive": { "title": "Eskuratu", @@ -108,11 +117,14 @@ "destination": "Hartzailea", "downloads": "(Deskargak)", "saveToGallery": "Gorde galerian", - "saveToHistory": "Gorde historialean" + "saveToHistory": "Gorde historialean", + "quickSaveFromFavorites": "@:general.quickSaveFromFavorites", + "requirePin": "@:webSharePage.requirePin", + "autoFinish": "Automatikoki amaitu" }, "network": { "title": "Gorria", - "needRestart": "Berrabiarazi zerbitzaria aldaketak aplikatzeko.", + "needRestart": "Berrabiarazi zerbitzaria aldaketak aplikatzeko!", "server": "Zerbitzaria", "alias": "Aliasa", "deviceType": "Gailu mota", @@ -121,9 +133,28 @@ "portWarning": "Portu berezi bat erabiltzen ari zarenez, agian ez zara beste gailuentzat ikusgarri izango (Lehenetsitako portua: {defaultPort})", "encryption": "Zifratzea", "multicastGroup": "Multicast", - "multicastGroupWarning": "Multicast helbide berezi bat erabiltzen ari zarenez, agian ez zara beste gailuentzat ikusgarri izango. (Lehenetsitako multicast helbidea: {defaultMulticast})" + "multicastGroupWarning": "Multicast helbide berezi bat erabiltzen ari zarenez, agian ez zara beste gailuentzat ikusgarri izango. (Lehenetsitako multicast helbidea: {defaultMulticast})", + "discoveryTimeout": "Aurkikuntza denbora muga", + "useSystemName": "Erabili sistemaren izena", + "generateRandomAlias": "Ausazko \"alias\" sortu", + "networkOptions": { + "all": "Guztiak", + "filtered": "Iragazita" + }, + "network": "Sarea" }, - "advancedSettings": "Ezarpen aurreratuak" + "advancedSettings": "Ezarpen aurreratuak", + "send": { + "title": "Bidali", + "shareViaLinkAutoAccept": "Eskaerak automatikoki onartu “URL bidez partekatu” moduan" + }, + "other": { + "title": "Besteak", + "support": "LocalSend Lagundu", + "donate": "Dohaintza egin", + "privacyPolicy": "Pribatutasun politika", + "termsOfUse": "Erabilera baldintzak" + } }, "troubleshootPage": { "title": "Konpondu arazoak", @@ -136,8 +167,12 @@ "openFirewall": "Ireki Suhesia" }, "noConnection": { - "symptom": "Hartzaile eta bidaltzaileak ez dute elkar ikusten eta ezin diote fitxategiak elkarri bidali", - "solution": "Bi aldeetan dago arazoa? Ziurtatu Wi-Fi sare berdinean kokatuta daudela eta konfigurazio bera elkarbanatzen dutela (portua, multicast helbidea, zifratua). Arazoa Wi-Fi sareak partaideen arteko konexioak mugatzea ere izan liteke. Horrela bada, routerrean aukera hau aktibatu" + "symptom": "Hartzaile eta bidaltzaileak ez dute elkar ikusten eta ezin diote fitxategiak elkarri bidali.", + "solution": "Bi aldeetan dago arazoa? Ziurtatu Wi-Fi sare berdinean kokatuta daudela eta konfigurazio bera elkarbanatzen dutela (portua, multicast helbidea, zifratua). Arazoa Wi-Fi sareak partaideen arteko konexioak mugatzea ere izan liteke. Horrela bada, routerrean aukera hau aktibatu." + }, + "noDiscovery": { + "symptom": "Gailu honek ezin ditu beste gailurik aurkitu.", + "solution": "Ziurtatu gailu guztiak Wi-Fi sare berean daudela eta konfigurazio bera partekatzen dutela (atea, helbide multikasta, kodeketa). Helburuko gailuaren IP helbidea eskuz idatz dezakezu. Horrek balio badu, gehitu gailu hori gogokoetan, etorkizunean automatikoki aurkitu dadin." } }, "receiveHistoryPage": { @@ -361,5 +396,11 @@ "sActionUseCameraHint": "erabaili kamera", "sNameDurationLabel": "iraupena", "sUnitAssetCountLabel": "kontaketa" + }, + "sanitization": { + "invalid": "Fitxategiaren izena karaktere baliogabeak ditu" + }, + "networkInterfacesPage": { + "title": "Sare interfazeak" } } diff --git a/app/assets/i18n/fa.json b/app/assets/i18n/fa.json index 6a263656..5c99559f 100644 --- a/app/assets/i18n/fa.json +++ b/app/assets/i18n/fa.json @@ -28,7 +28,7 @@ "open": "باز کردن", "queue": "صف", "quickSave": "ذخیره سریع", - "quickSaveFromFavorites": "ذخیره سریع برای \"Favorites\"", + "quickSaveFromFavorites": "ذخیره سریع برای \"موردعلاقه‌ها\"", "renamed": "نام ویرایش‌شد", "reset": "بازنشانی", "restart": "راه‌اندازی دوباره", @@ -39,7 +39,7 @@ "save": "ذخیره", "unchanged": "بدون تغییر", "unknown": "ناشناخته", - "noItemInClipboard": "چیزی در کلیپ‌بورد وجود ندارد" + "noItemInClipboard": "چیزی در کلیپ‌بورد وجود ندارد." }, "receiveTab": { "title": "دریافت", @@ -69,7 +69,7 @@ "app": "برنامه", "clipboard": "کلیپ‌بورد" }, - "shareIntentInfo": "همچنین می‌توانید از ویژگی \"اشتراک گذاری\" دستگاه تلفن‌همراه خود برای انتخاب آسان‌تر فایل‌ها استفاده کنید", + "shareIntentInfo": "همچنین می‌توانید از ویژگی «هم‌رسانی» دستگاه تلفن‌همراه خود برای انتخاب آسان‌تر پرونده‌ها استفاده کنید.", "nearbyDevices": "دستگاه‌های اطراف", "thisDevice": "این دستگاه", "scan": "جستجوی دستگاه‌ها", @@ -81,8 +81,8 @@ "link": "اشتراک گذاری از طریق لینک" }, "sendModeHelp": "توضیح", - "help": "لطفاً مطمئن شوید که دستگاه مورد نظر به شبکه وای‌فای یکسانی وصل باشد", - "placeItems": "موارد را برای اشتراک‌گذاری قرار دهید" + "help": "لطفاً مطمئن شوید که دستگاه مورد نظر به شبکه وای‌فای یکسانی وصل باشد.", + "placeItems": "موارد را برای هم‌رسانی قرار دهید." }, "settingsTab": { "title": "تنظیمات", @@ -128,7 +128,7 @@ }, "network": { "title": "شبکه", - "needRestart": "برای اعمال تنظیمات سرور را مجدد راه اندازی کنید", + "needRestart": "برای اعمال تنظیمات، سرور را مجدد راه‌اندازی کنید!", "server": "سرور", "alias": "نام کوتاه", "deviceType": "نوع دستگاه", @@ -158,28 +158,28 @@ }, "troubleshootPage": { "title": "عیب یابی", - "subTitle": "این برنامه مطابق انتظار کار نمی‌کند؟ در اینجا می‌توانید راه حل‌های رایج را بیابید", + "subTitle": "این برنامه مطابق انتظار کار نمی‌کند؟ در اینجا می‌توانید راه حل‌های رایج را بیابید.", "solution": "راه حل:", "fixButton": "تعمیر خودکار", "firewall": { - "symptom": "این برنامه می‌تواند فایل‌ها را به دستگاه‌های دیگر ارسال کند اما دستگاه‌های دیگر نمی‌توانند فایل‌ها را به این دستگاه ارسال کنند", - "solution": "این مشکل به احتمال زیاد مربوط به تنظیمات فایروال است. شما می‌توانید با دادن مجوز به اتصالات ورودی این مشکل را حل کنید (UDP و TCP) در پورت {port}", + "symptom": "این برنامه می‌تواند پرونده‌ها را به دستگاه‌های دیگر ارسال کند اما دستگاه‌های دیگر نمی‌توانند پرونده‌ها را به این دستگاه ارسال کنند.", + "solution": "این مشکل به احتمال زیاد مربوط به تنظیمات فایروال است. شما می‌توانید با دادن مجوز به اتصالات ورودی این مشکل را حل کنید (UDP و TCP) در پورت {port}.", "openFirewall": "بازکردن فایروال" }, "noDiscovery": { - "symptom": "این دستگاه نمی‌تواند دستگاه‌های دیگر را پیدا کند", - "solution": "مطمئن شوید که هر دو دستگاه به یک شبکه وای‌فای متصل هستند و پیکربندی یکسانی دارند (پورت، آدرس چندپخشی، رمزنگاری). سعی کنید آدرس آی پی دستگاه مورد نظر را به صورت دستی تایپ کنید. اگر جواب داد، این دستگاه را به موارد موردعلاقه اضافه کنید تا در آینده به طور خودکار کشف شود" + "symptom": "این دستگاه نمی‌تواند دستگاه‌های دیگر را پیدا کند.", + "solution": "مطمئن شوید که هر دو دستگاه به یک شبکه وای‌فای متصل هستند و پیکربندی یکسانی دارند (پورت، آدرس چندپخشی، رمزنگاری). سعی کنید آدرس آی‌پی دستگاه مورد نظر را به صورت دستی تایپ کنید. اگر جواب داد، این دستگاه را به موارد موردعلاقه اضافه کنید تا در آینده به طور خودکار کشف شود." }, "noConnection": { - "symptom": "هر دو دستگاه نمی‌توانند یکدیگر را پیدا کرده و فایل‌ها را به اشتراک بگذارند", - "solution": "اگر مشکل در هر دو طرف وجود دارد، پس باید مطمئن شوید که هر دو دستگاه به یک شبکه وای فای متصل هستند و پیکربندی یکسانی دارند (پورت، آدرس چندپخشی، رمزنگاری). شبکه وای فای ممکن است اجازه ارتباط بین شرکت کنندگان را ندهد. در این حالت، این گزینه باید در روتر فعال باشد" + "symptom": "هر دو دستگاه نمی‌توانند یکدیگر را پیدا کرده و پرونده‌ها را هم‌رسانی کنند.", + "solution": "آیا مشکل در هر دو طرف وجود دارد؟ اگر چنین است، باید مطمئن شوید که هر دو دستگاه در یک شبکه Wi-Fi متصل هستند و تنظیمات یکسانی دارند (پورت، آدرس چندپخشی، رمزگذاری). ممکن است شبکه Wi-Fi اجازه‌ی ارتباط بین شرکت‌کنندگان را ندهد، به دلیل فعال بودن قابلیت ایزوله‌سازی نقطه دسترسی (AP Isolation). در این صورت باید این گزینه را در روتر غیرفعال کنید." } }, "receiveHistoryPage": { "title": "تاریخچه", "openFolder": "باز کردن پوشه", "deleteHistory": "حذف تاریخچه", - "empty": "تاریخچه خالی است", + "empty": "تاریخچه خالی است.", "entryActions": { "open": "باز کردن فایل", "showInFolder": "نمایش پوشه", @@ -203,20 +203,20 @@ }, "subTitleMessage": "به شما پیام داد:", "subTitleLink": "برای شما یک لینک ارسال کرد:", - "canceled": "فرستنده درخواست را لغو کرد" + "canceled": "فرستنده درخواست را لغو کرد." }, "receiveOptionsPage": { "title": "گزینه‌ها", "destination": "@:settingsTab.receive.destination", "appDirectory": "(پوشه لوکال‌سند)", "saveToGallery": "@:settingsTab.receive.saveToGallery", - "saveToGalleryOff": "به دلیل وجود پوشه‌ها به طور خودکار خاموش می‌شود" + "saveToGalleryOff": "به دلیل وجود پوشه‌ها به طور خودکار خاموش می‌شود." }, "sendPage": { - "waiting": "در انتظار پاسخ...", - "rejected": "گیرنده درخواست را رد کرد", + "waiting": "در انتظار پاسخ…", + "rejected": "گیرنده درخواست را رد کرد.", "tooManyAttempts": "@:web.tooManyAttempts", - "busy": "گیرنده با درخواست دیگری مشغول است" + "busy": "گیرنده با درخواست دیگری مشغول است." }, "progressPage": { "titleSending": "ارسال فایل‌ها", @@ -236,15 +236,15 @@ }, "webSharePage": { "title": "اشتراک گذاری از طریق لینک", - "loading": "شروع سرور...", - "stopping": "توقف سرور...", - "error": "هنگام راه اندازی سرور خطایی رخ داد", + "loading": "در حال راه‌اندازی سرور…", + "stopping": "در حال توقف سرور…", + "error": "هنگام راه‌اندازی سرور خطایی رخ داد.", "openLink": { "one": "باز کردن لینک در مرورگر:", "other": "باز کردن لینک‌ها در مرورگر:" }, "requests": "درخواست‌ها", - "noRequests": "هنوز درخواستی وجود ندارد", + "noRequests": "هنوز درخواستی وجود ندارد.", "encryption": "@:settingsTab.network.encryption", "autoAccept": "درخواست‌ها به طور خودکار پذیرفته می‌شوند", "requirePin": "نیاز به پین", @@ -255,26 +255,26 @@ "aboutPage": { "title": "درباره لوکال‌سند", "description": [ - "لوکال‌سند یک برنامه رایگان و متن باز است که به شما امکان می‌دهد فایل‌ها و پیام‌ها را به‌طور ایمن با دستگاه‌های اطراف از طریق شبکه محلی خود و بدون نیاز به اینترنت به اشتراک بگذارید", - "این برنامه برای سیستم عامل‌های اندروید، آی او اس، مک او اس، ویندوز و لینوکس در دسترس است. شما می‌توانید با مراجعه به وبسایت رسمی برنامه کلیه روش‌های دانلود را مشاهده نمایید" + "لوکال‌سند یک برنامه آزاد و متن‌باز است که به شما امکان می‌دهد پرونده‌ها و پیام‌ها را به‌طور ایمن با دستگاه‌های اطراف از طریق شبکه محلی خود و بدون نیاز به اینترنت هم‌رسانی کنید.", + "این برنامه برای سیستم عامل‌های اندروید، آی او اس، مک او اس، ویندوز و لینوکس در دسترس است. شما می‌توانید با مراجعه به وبگاه رسمی برنامه کلیه روش‌های دانلود را مشاهده نمایید." ], - "author": "مولف", + "author": "نویسنده", "contributors": "مشارکت کنندگان", "packagers": "بسته‌بندی‌ها", "translators": "مترجمان" }, "donationPage": { "title": "کمک مالی", - "info": "لوکال‌سند رایگان، متن باز و فاقد هرگونه تبلیغات است. اگر به این برنامه علاقه‌مندید، می‌توانید با کمک مالی از توسعه آن حمایت کنید", + "info": "لوکال‌سند آزاد، متن‌باز و فاقد هرگونه تبلیغات است. اگر به این برنامه علاقه‌مندید، می‌توانید با کمک مالی از توسعه آن حمایت کنید.", "donate": "کمک مالی {amount}", - "thanks": "بسیار از شما سپاسگزاریم", + "thanks": "بسیار از شما سپاسگزاریم!", "restore": "بازیابی خرید" }, "changelogPage": { "title": "تاریخچه تغییرات برنامه" }, "aliasGenerator(ignoreMissing, ignoreGpt)": { - "@info": "Different locales may have different words, it may not match 1:1", + "@info": "مناطق زبانی مختلف ممکن است واژه‌های متفاوتی داشته باشند، ممکن است تطابق 1:1 وجود نداشته باشد", "adjectives": [ "ستودنی", "زیبا", @@ -371,14 +371,14 @@ }, "encryptionDisabledNotice": { "title": "رمزنگاری غیرفعال شد", - "content": "اکنون ارتباط از طریق پروتکل http رمزنگاری نشده صورت می‌گیرد. برای استفاده از https، رمزنگاری را دوباره فعال کنید" + "content": "اکنون ارتباط از طریق پروتکل HTTP رمزنگاری نشده صورت می‌گیرد. برای استفاده از HTTPS، رمزنگاری را دوباره فعال کنید." }, "errorDialog": { "title": "@:general.error" }, "favoriteDialog": { "title": "علاقه‌مندی‌ها", - "noFavorites": "هنوز دستگاهی اضافه نشده", + "noFavorites": "هنوز دستگاه مورد علاقه‌ای انتخاب نشده است.", "addFavorite": "افزودن" }, "favoriteDeleteDialog": { @@ -411,7 +411,7 @@ }, "localNetworkUnauthorized": { "title": "@:dialogs.noPermission.title", - "description": "لوکال‌سند نمی‌تواند دستگاه‌های دیگر را بدون داشتن مجوز اسکن شبکه محلی پیدا کند. لطفاً این مجوز را در تنظیمات به برنامه بدهید", + "description": "لوکال‌سند نمی‌تواند دستگاه‌های دیگر را بدون داشتن مجوز اسکن شبکه محلی پیدا کند. لطفاً این مجوز را در تنظیمات به برنامه بدهید.", "gotoSettings": "تنظیمات" }, "messageInput": { @@ -420,7 +420,7 @@ }, "noFiles": { "title": "فایلی انتخاب نشده", - "content": "لطفا حداقل یک فایل را انتخاب کنید" + "content": "لطفا حداقل یک پرونده را انتخاب کنید." }, "noPermission": { "title": "بدون مجوز", @@ -443,14 +443,14 @@ }, "quickSaveNotice": { "title": "@:general.quickSave", - "content": "درخواست‌ها به صورت خودکار پذیرفته می‌شوند. توجه داشته باشید که همه افراد در شبکه محلی می‌توانند برای شما فایل ارسال کنند" + "content": "درخواست‌ها به صورت خودکار پذیرفته می‌شوند. توجه داشته باشید که همه افراد در شبکه محلی می‌توانند برای شما پرونده ارسال کنند." }, "quickSaveFromFavoritesNotice": { "title": "@:general.quickSaveFromFavorites", "content": [ - "درخواست‌ها به طور خودکار از دستگاه‌های موجود در لیست موردعلاقه‌ها پذیرفته می‌شود", - "هشدار: این روش در حال حاضر کاملاً ایمن نیست، زیرا در صورت دسترسی هکر به دستگاه‌های موجود در لیست موردعلاقه‌ها، می‌تواند برای شما فایل ارسال کند", - "با این حال، این گزینه از اجازه‌دادن به هر دستگاهی ایمن‌تر است" + "درخواست‌ها به طور خودکار از دستگاه‌های موجود در فهرست موردعلاقه‌ها پذیرفته می‌شود.", + "هشدار: این روش در حال حاضر کاملاً ایمن نیست، زیرا در صورت دسترسی هکر به دستگاه‌های موجود در فهرست موردعلاقه‌ها، می‌تواند بدون محدودیت برای شما پرونده ارسال کند.", + "با این حال، این گزینه هنوز هم ایمن‌تر از اجازه دادن به همه کاربران در شبکه محلی برای ارسال پرونده بدون محدودیت است." ] }, "pin": { @@ -458,9 +458,9 @@ }, "sendModeHelp": { "title": "حالت‌های ارسال", - "single": "فایل‌ها را به یک گیرنده ارسال می‌کند. لیست انتخاب شده‌ها پس از اتمام انتقال فایل پاک می‌شود", - "multiple": "فایل‌ها را برای چندین گیرنده ارسال می‌کند. لیست انتخاب شده‌ها پاک نخواهد شد", - "link": "گیرندگانی که لوکال‌سند را نصب نکرده اند، می‌توانند فایل‌ها را با باز کردن لینک در مرورگر خود دانلود کنند" + "single": "پرونده‌ها را به یک گیرنده ارسال می‌کند. فهرست انتخاب شده‌ها پس از اتمام انتقال پرونده پاک می‌شود.", + "multiple": "پرونده‌ها را برای چندین گیرنده ارسال می‌کند. فهرست انتخاب شده‌ها پاک نخواهد شد.", + "link": "گیرندگانی که لوکال‌سند را نصب نکرده اند، می‌توانند پرونده‌ها را با باز کردن پیوند در مرورگر خود دانلود کنند." }, "zoom": { "title": "آدرس اینترنتی" @@ -497,11 +497,11 @@ "preview": "پیش نمایش", "select": "انتخاب", "emptyList": "لیست خالی", - "unSupportedAssetType": "نوع فایل پشتیبانی نشده", + "unSupportedAssetType": "نوع پرونده پشتیبانی نشده.", "unableToAccessAll": "قادر به دسترسی به تمام فایل‌های موجود در دستگاه نیست", - "viewingLimitedAssetsTip": "فقط فایل‌ها و آلبوم‌های قابل دسترسی برنامه را مشاهده کنید", + "viewingLimitedAssetsTip": "فقط پرونده‌ها و آلبوم‌های قابل دسترسی برنامه را مشاهده کنید.", "changeAccessibleLimitedAssets": "برای به‌روزرسانی فایل‌های در دسترس کلیک کنید", - "accessAllTip": "برنامه فقط می‌تواند به برخی از فایل‌های دستگاه دسترسی داشته باشد. به تنظیمات سیستم بروید و به برنامه اجازه دهید به تمام رسانه‌های موجود در دستگاه دسترسی داشته باشد", + "accessAllTip": "برنامه فقط می‌تواند به برخی از پرونده‌های دستگاه دسترسی داشته باشد. به تنظیمات سیستم بروید و به برنامه اجازه دهید به تمام رسانه‌های موجود در دستگاه دسترسی داشته باشد.", "goToSystemSettings": "رفتن به تنظیمات سیستم", "accessLimitedAssets": "با دسترسی محدود ادامه دهید", "accessiblePathName": "فایل‌های قابل دسترسی", diff --git a/app/assets/i18n/fi.json b/app/assets/i18n/fi.json index 5383cb8a..0d71b1e7 100644 --- a/app/assets/i18n/fi.json +++ b/app/assets/i18n/fi.json @@ -39,17 +39,19 @@ "save": "Tallenna", "unchanged": "Muuttumaton", "unknown": "Tuntematon", - "noItemInClipboard": "Leikepöydällä ei ole mitään" + "noItemInClipboard": "Leikepöydällä ei ole mitään." }, "receiveTab": { - "title": "Ota Vastaan", + "title": "Ota vastaan", "infoBox": { - "ip": "IP:", + "ip": "IP-osoite:", "port": "Portti:", "alias": "Laitteen nimi:" }, "quickSave": { - "favorites": "Suosikit" + "favorites": "Suosikit", + "off": "@:general.off", + "on": "@:general.on" } }, "sendTab": { @@ -80,7 +82,7 @@ }, "sendModeHelp": "Selitys", "help": "Varmista, että haluttu kohde on myös samassa Wi-Fi-verkossa.", - "placeItems": "Lissä tiedostot tähän, jakaaksesi ne." + "placeItems": "Lisää tiedostot tähän, jotta voit lähettää ne." }, "settingsTab": { "title": "Asetukset", @@ -111,12 +113,14 @@ }, "receive": { "title": "Vastaanotto", - "quickSave": "@:general.quickSave", + "quickSave": "Automaattinen tallennus", "autoFinish": "Automaattinen lopetus", "destination": "Kohde", "downloads": "(Lataukset)", "saveToGallery": "Tallenna media galleriaan", - "saveToHistory": "Tallenna historiaan" + "saveToHistory": "Tallenna historiaan", + "quickSaveFromFavorites": "Automaattinen tallennus suosikeista", + "requirePin": "Kiinnitä" }, "send": { "title": "Lähetys", @@ -124,7 +128,7 @@ }, "network": { "title": "Verkko", - "needRestart": "Uudelleenkäynnistä palvelin ottaaksesi asetukset käyttöön!", + "needRestart": "Käynnistä LocalSend uudelleen saadaksesi muutokset käyttöön!", "server": "Palvelin", "alias": "Laitteen nimi", "deviceType": "Laitteen tyyppi", @@ -136,7 +140,12 @@ "portWarning": "Sinua ei ehkä havaita muiden laitteiden toimesta, koska käytät mukautettua porttia. (oletus: {defaultPort})", "encryption": "Salaus", "multicastGroup": "Multicast", - "multicastGroupWarning": "Sinua ei ehkä havaita muiden laitteiden toimesta, koska käytät mukautettua multicast-osoitetta. (oletus: {defaultMulticast})" + "multicastGroupWarning": "Sinua ei ehkä havaita muiden laitteiden toimesta, koska käytät mukautettua multicast-osoitetta. (oletus: {defaultMulticast})", + "networkOptions": { + "all": "Kaikki", + "filtered": "Suodatettu" + }, + "network": "Verkko" }, "other": { "title": "Muut", @@ -153,7 +162,7 @@ "solution": "Ratkaisu:", "fixButton": "Automaattinen korjaus", "firewall": { - "symptom": "Tämä sovellus voi lähettää tiedostoja muihin laitteisiin; mutta muut laitteet eivät voi lähettää tiedostoja tähän laitteeseen.", + "symptom": "Tämä sovellus voi lähettää tiedostoja muihin laitteisiin, mutta muut laitteet eivät voi lähettää tiedostoja tähän laitteeseen.", "solution": "Tämä on todennäköisesti palomuuriongelma. Voit ratkaista tämän sallimalla saapuvat yhteydet (UDP ja TCP) porttiin {port}.", "openFirewall": "Avaa palomuuri" }, @@ -169,7 +178,7 @@ "receiveHistoryPage": { "title": "Historia", "openFolder": "Avaa kansio", - "deleteHistory": "Poista historia", + "deleteHistory": "Tyhjennä historia", "empty": "Historia on tyhjä.", "entryActions": { "open": "Avaa tiedosto", @@ -189,8 +198,8 @@ }, "receivePage": { "subTitle": { - "one": "haluaa lähettää sinulle tiedoston", - "other": "haluaa lähettää sinulle {n} tiedostoa" + "one": "on lähettämässä sinulle tiedostoa", + "other": "on lähettämässä sinulle {n} tiedostoa" }, "subTitleMessage": "lähetti sinulle viestin:", "subTitleLink": "lähetti sinulle linkin:", @@ -198,15 +207,16 @@ }, "receiveOptionsPage": { "title": "Asetukset", - "destination": "@:settingsTab.receive.destination", + "destination": "Vastaanottoasetukset", "appDirectory": "(LocalSend-kansio)", - "saveToGallery": "@:settingsTab.receive.saveToGallery", - "saveToGalleryOff": "Poistettu käytöstä automaattisesti, koska hakemistoja on olemassa." + "saveToGallery": "Tallenna galleriaan", + "saveToGalleryOff": "Poistettu käytöstä automaattisesti, koska lähetetyissä tiedostoissa on kansioita." }, "sendPage": { "waiting": "Odotetaan vastausta...", - "rejected": "Vastaanottaja on hylännyt pyynnön.", - "busy": "Vastaanottaja käsittelee toista pyyntöä." + "rejected": "Vastaanottaja on peruuttanut pyynnön.", + "busy": "Vastaanottaja vastaanottaa toista pyyntöä.", + "tooManyAttempts": "Liian monta yritystä" }, "progressPage": { "titleSending": "Tiedostojen lähetys", @@ -214,30 +224,38 @@ "savedToGallery": "Tallennettu Kuvat-kansioon", "total": { "title": { - "sending": "Edistyminen yhteensä ({time})", + "sending": "Lähetysprosessi ({time})", "finishedError": "Päättynyt virheellä", "canceledSender": "Lähettäjä peruutti", "canceledReceiver": "Vastaanottaja peruutti" }, - "count": "Tiedostoja: {curr} / {n}", + "count": "Tiedostot: {curr} / {n}", "size": "Koko: {curr} / {n}", "speed": "Nopeus: {speed}/s" + }, + "remainingTime": { + "seconds": "{n}:{ss}", + "minutes": "{n}:{ss}", + "hours": "{h}t {m}m", + "days": "{d}pv {h}t {m}m", + "@hours": "Käytä 'h' tuntien lyhenteenä ja 'm' minuuttien", + "@days": "Käytä 'pv' päiville, 'h' tunneille ja 'm' minuuteille" } }, "webSharePage": { "title": "Jaa linkin kautta", - "loading": "Palvelimen käynnistys...", - "stopping": "Palvelimen pysäytys...", + "loading": "Käynnistetään palvelinta…", + "stopping": "Pysäytetään palvelinta…", "error": "Palvelimen käynnistyksessä tapahtui virhe.", "openLink": { "one": "Avaa tämä linkki selaimessasi:", "other": "Avaa jokin näistä linkeistä selaimessasi:" }, - "requests": "Pyyntöjä", + "requests": "Pyynnöt", "noRequests": "Ei pyyntöjä vielä.", - "encryption": "@:settingsTab.network.encryption", + "encryption": "Verkon salaus", "autoAccept": "Hyväksy pyynnöt automaattisesti", - "requirePin": "Vaadi PIN", + "requirePin": "Vaadi PIN-koodi", "pinHint": "PIN-koodi on \"{pin}\"", "encryptionHint": "LocalSend käyttää itse allekirjoitettua sertifikaattia. Sinun on hyväksyttävä se selaimessasi.", "pendingRequests": "Odottavat pyynnöt: {n}" @@ -245,8 +263,8 @@ "aboutPage": { "title": "Tietoja LocalSendista", "description": [ - "LocalSend on ilmainen, avoimen lähdekoodin sovellus, jonka avulla voit turvallisesti jakaa tiedostoja ja viestejä läheisten laitteiden kanssa paikallisverkossasi ilman internet-yhteyttä.", - "Tämä sovellus on saatavilla Androidille, iOS:lle, macOS:lle, Windowsille ja Linuxille. Kaikki latausvaihtoehdot löytyvät virallisilta kotisivuilta." + "LocalSend on ilmainen, avoimen lähdekoodin sovellus, jonka avulla voit turvallisesti jakaa tiedostoja ja lähettää viestejä läheisten laitteiden kanssa paikallisessa verkossasi ilman internet-yhteyttä.", + "LocalSend on saatavilla Androidille, iOS:lle, Linuxille, macOS:lle ja Windowsille. Kaikki latausvaihtoehdot löytyvät virallisilta kotisivuilta." ], "author": "Tekijä", "contributors": "Avustajat", @@ -255,16 +273,16 @@ }, "donationPage": { "title": "Lahjoita", - "info": "LocalSend on ilmainen, avoimen lähdekoodin sovellus ilman mainoksia. Jos pidät sovelluksesta, voit tukea kehitystä lahjoituksella.", + "info": "LocalSend on ilmainen, avoimen lähdekoodin sovellus ilman mainoksia. Voit tukea projektia lahjoituksella, jos pidät sovelluksesta.", "donate": "Lahjoita {amount}", - "thanks": "Suurkiitokset!", + "thanks": "Suuret kiitokset!", "restore": "Palauta ostos" }, "changelogPage": { "title": "Muutosloki" }, "aliasGenerator(ignoreMissing, ignoreGpt)": { - "@info": "Different locales may have different words, it may not match 1:1", + "@info": "Eri sijainneissa voi olla käytössä eri sanoja. Ne eivät täsmää toisiaan tasantarkkaan.", "adjectives": [ "Stydi", "Jämä", @@ -447,7 +465,8 @@ "Tiedostopyynnöt hyväksytään nyt automaattisesti suosikkiluettelossasi olevilta laitteilta.", "Varoitus! Tällä hetkellä tämä ei ole täysin turvallista, koska hakkeri, jolla on minkä tahansa suosikkiluettelosi laitteen sormenjälki, voi lähettää sinulle tiedostoja ilman rajoituksia.", "Tämä vaihtoehto on kuitenkin turvallisempi kuin sallia kaikkien paikallisverkon käyttäjien lähettää sinulle tiedostoja ilman rajoituksia." - ] + ], + "title": "@:general.quickSaveFromFavorites" }, "pin": { "title": "Syötä PIN-koodi" @@ -512,5 +531,12 @@ "sActionUseCameraHint": "käytä kameraa", "sNameDurationLabel": "kesto", "sUnitAssetCountLabel": "määrä" + }, + "networkInterfacesPage": { + "title": "Verkkokäyttöliittymät", + "info": "Oletuksena LocalSend käyttää kaikkia saatavilla olevia verkkoliitäntöjä. Voit sulkea pois verkkoliitännät, joita et halua. Sinun tulee uudelleenkäynnistää LocalSend ottaaksesi muutokset käyttöön.", + "preview": "Esikatselu", + "whitelist": "Sallittujen lista", + "blacklist": "Estettyjen lista" } } diff --git a/app/assets/i18n/fr.json b/app/assets/i18n/fr.json index 647d7977..1e5ab551 100644 --- a/app/assets/i18n/fr.json +++ b/app/assets/i18n/fr.json @@ -208,7 +208,7 @@ "receiveOptionsPage": { "title": "Options", "destination": "@:settingsTab.receive.destination", - "appDirectory": "(LocalSend folder)", + "appDirectory": "(dossier LocalSend)", "saveToGallery": "@:settingsTab.receive.saveToGallery", "saveToGalleryOff": "Désactivé automatiquement car des dossiers sont présents." }, @@ -232,6 +232,14 @@ "count": "Fichiers : {curr} / {n}", "size": "Taille : {curr} / {n}", "speed": "Vitesse : {speed}/s" + }, + "remainingTime": { + "@hours": "Utilisez « h » pour l'abréviation des heures et « m » pour les minutes", + "@days": "Utilisez « j » pour les jours, « h » pour les heures et « m » pour les minutes", + "seconds": "{n}:{ss}", + "minutes": "{n} :{ss}", + "hours": "{h}h {m}min", + "days": "{d}j {h}h {m}min" } }, "webSharePage": { diff --git a/app/assets/i18n/gl.json b/app/assets/i18n/gl.json index e37c9d7a..50ac114e 100644 --- a/app/assets/i18n/gl.json +++ b/app/assets/i18n/gl.json @@ -1,5 +1,5 @@ { - "locale": "Inglés", + "locale": "Galego", "appName": "LocalSend", "general": { "accept": "Aceptar", @@ -105,7 +105,361 @@ }, "saveWindowPlacement": "Garda a posición da xanela despois de saír", "saveWindowPlacementWindows": "Garda a posición da xanela despois da saída", - "minimizeToTray": "Minimizar á Bandexa do Sistema/Barra de Menú ao Pechar" + "minimizeToTray": "Minimizar á Bandexa do Sistema/Barra de Menú ao Pechar", + "launchAtStartup": "Arrancar automáticamente despois do inicio de sesión", + "launchMinimized": "Arranque automático: Iniciar minimizada", + "showInContextMenu": "Amosar LocalSend no menú contextual", + "animations": "Animacións" + }, + "receive": { + "title": "Recibir", + "quickSave": "@:general.quickSave", + "quickSaveFromFavorites": "@:general.quickSaveFromFavorites", + "requirePin": "@:webSharePage.requirePin", + "autoFinish": "Finalizar automáticamente", + "destination": "Gardar no cartafol", + "downloads": "(Descargas)", + "saveToGallery": "Gardar multimedia na galería", + "saveToHistory": "Gardar no historial" + }, + "network": { + "deviceType": "Tipo de dispositivo", + "title": "Rede", + "needRestart": "Reinicia o servidor para aplicar os axustes!", + "server": "Servidor", + "alias": "Nome do dispositivo", + "deviceModel": "Modelo de dispositivo", + "port": "Porto", + "discoveryTimeout": "Tempo límite de Descubrimento", + "multicastGroup": "Enderezo multicast", + "network": "Rede", + "networkOptions": { + "all": "Todo", + "filtered": "Filtrado" + }, + "encryption": "Cifrado", + "useSystemName": "Usar o nome do sistema", + "generateRandomAlias": "Xerar alias aleatorio", + "portWarning": "Pode que non sexas detectado por outros dispositivos porque estás a empregar un porto personalizado. (Porto por defecto: {defaultPort})", + "multicastGroupWarning": "Pode que non sexas detectado por outros dispositivos porque estás a empregar un enderezo multicast personalizada. (Por defecto: {defaultMulticast})" + }, + "send": { + "title": "Enviar", + "shareViaLinkAutoAccept": "Aceptar automáticamente peticións no modo \"Compartir mediante ligazón\"" + }, + "other": { + "title": "Outros", + "support": "Apoia a LocalSend", + "donate": "Doar", + "privacyPolicy": "Política de privacidade", + "termsOfUse": "Condicións de uso" + }, + "advancedSettings": "Configuración avanzada" + }, + "troubleshootPage": { + "noDiscovery": { + "solution": "Por favor asegúrese de que todos os dispositivos están na mesma rede Wi-Fi e que co partan a mesma configuración (porto, enderezo multicast, cifrado). Podes tentar escribir o enderezo IP do dispositivo de destino manualmente. Se funciona, considera agregar o dispositivo a favoritos para poder descubrilo automaticamente no futuro.", + "symptom": "Este dispositivo non pode descubrir outros dispositivos." + }, + "firewall": { + "solution": "O máis probábel é que se trate dun problema do firewall. Podes resolver este problema permitindo conexións entrantes (UDP e TCP) no porto {port}.", + "openFirewall": "Abrir Firewall", + "symptom": "Este dispositivo pode enviar ficheiros a outros dispositivos, pero outros dispositivos non lle poden enviar ficheiros." + }, + "noConnection": { + "symptom": "Ambos dispositivos non poden descubrirse nin enviarse ficheiros.", + "solution": "O problema existe nos dous lados? Se é así, cómpre asegurarse de que ambos os dispositivos están na mesma rede Wi-Fi e comparten a mesma configuración (porto, enderezo de multidifusión, cifrado). É posíbel que a rede wifi non permita a comunicación entre os participantes debido ao illamento do punto de acceso (AP). Neste caso, esta opción debe estar desactivada no router." + }, + "title": "Solucionar problemas", + "subTitle": "A aplicación non funciona segundo o esperado? Aquó podes atopar algunhas solucións comúns aos problemas.", + "solution": "Solución:", + "fixButton": "Corrixir automáticamente" + }, + "apkPickerPage": { + "title": "Aplicacións (APK)", + "excludeSystemApps": "Excluír aplicacións do sistema", + "excludeAppsWithoutLaunchIntent": "Excluír aplicacións non executábels", + "apps": "{n} Aplicacións" + }, + "networkInterfacesPage": { + "preview": "Vista previa", + "title": "Interfaces de rede", + "whitelist": "Lista de permitidos", + "blacklist": "Lista negra", + "info": "Por defecto, LocalSend emprega todas as interfaces de rede dispoñíbeis. Eiquí podes desactivar as redes non desexadas. Tes que reiniciar o servidor para aplicar os cambios." + }, + "receiveHistoryPage": { + "title": "Historial", + "empty": "O historial está vacío.", + "openFolder": "Abrir cartafol", + "deleteHistory": "Borrar historial", + "entryActions": { + "info": "Información", + "open": "Abrir ficheiro", + "showInFolder": "Amosar no cartafol", + "deleteFromHistory": "Borrar do historial" } + }, + "selectedFilesPage": { + "deleteAll": "Eliminar todo" + }, + "receivePage": { + "subTitle": { + "one": "quere enviarte un ficheiro", + "other": "quere enviarte {n} ficheiros" + }, + "subTitleMessage": "envioute unha mensaxe:", + "subTitleLink": "envioute unha ligazón:", + "canceled": "O remitente cancelou a petición." + }, + "receiveOptionsPage": { + "title": "Opcións", + "destination": "@:settingsTab.receive.destination", + "appDirectory": "(Cartafol Localsend)", + "saveToGallery": "@:settingsTab.receive.saveToGallery", + "saveToGalleryOff": "Desactivado automáticamente porque hai cartafois." + }, + "dialogs": { + "encryptionDisabledNotice": { + "title": "Cifrado deshabilitado", + "content": "A comunicación ten lugar agora mediante o protocolo sen cifrado HTTP. Para usar o protocolo HTTPS, habilite novamente o cifrado." + }, + "openFile": { + "title": "Abrir ficheiro", + "content": "Queres abrir o ficheiro recibido?" + }, + "addressInput": { + "title": "Introduce enderezo", + "ip": "Enderezo IP", + "recentlyUsed": "Empregados recentemente: ", + "hashtag": "Etiqueta" + }, + "addFile": { + "content": "Que queres engadir?", + "title": "Engadir á selección" + }, + "cancelSession": { + "title": "Cancelar a transferencia de ficheiros", + "content": "Realmente queres cancelar a transferencia de ficheiros?" + }, + "cannotOpenFile": { + "content": "Non se puido abrir \"{file}\". Moveuse, renomeouse ou eliminouse este ficheiro?", + "title": "Non se pode abrir o ficheiro" + }, + "favoriteDialog": { + "title": "Favoritos", + "noFavorites": "Aínda non hai ningún dispositivo favorito.", + "addFavorite": "Engadir" + }, + "errorDialog": { + "title": "@:general.error" + }, + "favoriteDeleteDialog": { + "title": "Eliminar de favoritos", + "content": "Realmente queres eliminar dos favoritos \"{name}\"?" + }, + "favoriteEditDialog": { + "titleAdd": "Engadir a favoritos", + "titleEdit": "Axustes", + "name": "Nome do dispositivo", + "auto": "(auto)", + "ip": "Enderezo IP", + "port": "Porto" + }, + "fileInfo": { + "time": "Hora:", + "title": "Información do ficheiro", + "fileName": "Nome do ficheiro:", + "path": "Ruta:", + "size": "Tamaño:", + "sender": "Remitente:" + }, + "fileNameInput": { + "title": "Introduce o nome do ficheiro", + "original": "Orixinal: {original}" + }, + "historyClearDialog": { + "title": "Limpar historial", + "content": "Realmente queres eliminar todo o historial?" + }, + "noPermission": { + "content": "Non concedeches os permisos necesarios. Por favor, concédeos na configuración.", + "title": "Sen permiso" + }, + "noFiles": { + "content": "Por favor selecciona polo menos un ficheiro.", + "title": "Non se seleccionaron ficheiros" + }, + "localNetworkUnauthorized": { + "title": "@:dialogs.noPermission.title", + "description": "LocalSend non pode atopar outros dispositivos sen ter permiso para escanear a rede local. Por favor, concede este permiso na configuración.", + "gotoSettings": "Axustes" + }, + "messageInput": { + "title": "Escribir mensaxe", + "multiline": "Multiliña" + }, + "notAvailableOnPlatform": { + "title": "Non dispoñíbel", + "content": "Esta característica só está dispoñíbel en:" + }, + "qr": { + "title": "Código QR" + }, + "quickActions": { + "title": "Accións rápidas", + "counter": "Contador", + "prefix": "Prefixo", + "padZero": "Encher con ceros", + "sortBeforeCount": "Ordenar alfabéticamente de antemán (A-Z)", + "random": "Aleatorio" + }, + "quickSaveNotice": { + "title": "@:general.quickSave", + "content": "Agora as solicitudes de ficheiros acéptanse automaticamente. Teña en conta que todos os usuarios da rede local poden enviarche ficheiros." + }, + "zoom": { + "title": "URL" + }, + "pin": { + "title": "Insira o PIN" + }, + "sendModeHelp": { + "title": "Modos de envío", + "single": "Envia ficheiros a un receptor. A selección borrarase unha vez rematada a transferencia de ficheiros.", + "multiple": "Envia ficheiros a múltiples receptores. A selección non se borrará unha vez rematada a transferencia de ficheiros.", + "link": "Os destinatarios que non teñan instalado LocalSend poden descargar os ficheiros seleccionados abrindo a ligazón no seu navegador." + }, + "quickSaveFromFavoritesNotice": { + "title": "@:general.quickSaveFromFavorites", + "content": [ + "Agora as solicitudes de ficheiros da túa lista de dispositivos favoritos acéptanse automaticamente.", + "Aviso! Actualmente isto non é completamente seguro, xa que un hacker que teña a pegada dixital de calquera dos dispositivos da túa lista de favoritos pode enviarte ficheiros sen restriccións.", + "Porén, esta opción aínda é máis segura que permitir que todos os usuarios da rede local te envíen ficheiros sen restricións." + ] + } + }, + "webSharePage": { + "encryption": "@:settingsTab.network.encryption", + "encryptionHint": "LocalSend precisa un certificado autoasinado. Tes que aceptalo no teu navegador.", + "title": "Compartir mediante ligazón", + "stopping": "Parando o servidor…", + "loading": "Iniciando servidor…", + "error": "Produciuse un erro ao iniciar o servidor.", + "openLink": { + "one": "Abre esta ligazón no teu navegador:", + "other": "Abre unha destas ligazóns no teu navegador:" + }, + "requests": "Solicitudes", + "noRequests": "Aínda non hai solicitudes.", + "autoAccept": "Aceptar solicitudes automaticamente", + "requirePin": "Requerir PIN", + "pinHint": "O PIN é \"{pin}\"", + "pendingRequests": "Solicitudes pendentes: {n}" + }, + "progressPage": { + "total": { + "title": { + "canceledReceiver": "Cancelado polo receptor", + "sending": "Progreso total ({time})", + "finishedError": "Rematado con erro", + "canceledSender": "Cancelado polo remitente" + }, + "count": "Ficheiros: {curr} / {n}", + "size": "Tamaño: {curr} / {n}", + "speed": "Velocidade: {speed}/s" + }, + "titleReceiving": "Recibindo ficheiros", + "savedToGallery": "Gardado en Fotos", + "titleSending": "Enviando ficheiros", + "remainingTime": { + "seconds": "{n}:{ss}", + "minutes": "{n}:{ss}", + "hours": "{h}h {m}m", + "days": "{d}d {h}h {m}m", + "@hours": "Usa «h» para abreviatura de horas e «m» para minutos", + "@days": "Usa «d» para días, «h» para horas e «m» para minutos" + } + }, + "aboutPage": { + "description": [ + "LocalSend é unha aplicación gratuita, de código aberto, que che permite compartir ficheiros e mensaxes de xeito seguro con dispositivos cercanos a través da túa rede local sen necesidade dunha conexión a internet.", + "Esta aplicación está dispoñíbel en Android, iOS, macOS, Windows e Linux. Podes atopar todas as opcións de descarga na páxina web oficial." + ], + "contributors": "Colaboradores", + "author": "Autor", + "translators": "Tradutores", + "packagers": "Empaquetadores", + "title": "Acerca de LocalSend" + }, + "sendPage": { + "waiting": "Agardando pola resposta…", + "rejected": "O destinatario rexeitou a solicitude.", + "tooManyAttempts": "@:web.tooManyAttempts", + "busy": "O destinatario está ocupado con outra petición." + }, + "donationPage": { + "title": "Doar", + "info": "LocalSen é gratuita, de código aberto e non ten anuncios. Se che gusta a aplicación, podes apoiar o desenvolvemento cunha doazón.", + "donate": "Doar {amount}", + "thanks": "Moitas grazas!", + "restore": "Restaurar a compra" + }, + "changelogPage": { + "title": "Rexistro de cambios" + }, + "aliasGenerator(ignoreMissing, ignoreGpt)": { + "@info": "Diferentes idiomas poden ter palabras diferentes, podendo non coincidir 1:1" + }, + "tray": { + "@info": "As directrices de Apple son moi estrictas sobre a expresión \"pechar\".", + "open": "@:general.open", + "close": "Saír de LocalSend", + "closeWindows": "Saír" + }, + "sanitization": { + "empty": "O nome do ficheiro non pode estar valeiro", + "invalid": "O nome do ficheiro contén caracteres inválidos" + }, + "web": { + "waiting": "@:sendPage.waiting", + "enterPin": "Insira o PIN", + "invalidPin": "PIN non válido", + "tooManyAttempts": "Demasiados intentos", + "rejected": "Rexeitado", + "files": "Ficheiros", + "fileName": "Nome do ficheiro", + "size": "Tamaño" + }, + "assetPicker": { + "@info": "Traduccións para ferramenta de Selección de ficheiros para Android e iPhone", + "confirm": "Confirmar", + "cancel": "Cancelar", + "edit": "Editar", + "loadFailed": "Carga fallida", + "gifIndicator": "GIF", + "original": "Orixe", + "preview": "Previsualizar", + "select": "Seleccionar", + "emptyList": "Lista baleira", + "unSupportedAssetType": "Tipo de ficheiro non soportado.", + "unableToAccessAll": "Non se puido acceder a todos os ficheiros do dispositivo", + "sTypeOtherLabel": "Outros contidos multimedia", + "sActionPlayHint": "reproducir", + "sActionPreviewHint": "vista previa", + "sTypeImageLabel": "Imaxe", + "sActionSelectHint": "seleccionar", + "sTypeVideoLabel": "Vídeo", + "sActionSwitchPathLabel": "cambiar ruta", + "changeAccessibleLimitedAssets": "Preme para actualizar os ficheiros accesíbeis", + "goToSystemSettings": "Vaia á configuración do sistema", + "accessLimitedAssets": "Continuar con acceso limitado", + "sActionUseCameraHint": "usar cámara", + "sUnitAssetCountLabel": "cantidade", + "viewingLimitedAssetsTip": "Ver só ficheiros e álbums accesíbeis para a aplicación.", + "sTypeAudioLabel": "Audio", + "sNameDurationLabel": "duración", + "accessAllTip": "A aplicación só pode acceder a algúns ficheiros do dispositivo. Vaia á configuración do sistema e permite que a aplicación acceda a todos os elementos do dispositivo.", + "accessiblePathName": "Ficheiros accesíbeis" } } diff --git a/app/assets/i18n/gu.json b/app/assets/i18n/gu.json index ef4ecf1a..9827f02a 100644 --- a/app/assets/i18n/gu.json +++ b/app/assets/i18n/gu.json @@ -1,5 +1,5 @@ { - "locale": "Gujarati", + "locale": "અંગ્રેજી", "appName": "LocalSend", "general": { "accept": "સ્વીકારો", @@ -9,7 +9,7 @@ "cancel": "રદ કરો", "close": "બંધ કરો", "confirm": "પુષ્ટિ કરો", - "continueStr": "ચાલુ રાખો", + "continueStr": "આગળ વધો", "copy": "કૉપિ કરો", "copiedToClipboard": "ક્લિપબોર્ડ પર કૉપિ થયું", "decline": "અસ્વીકારો", @@ -38,7 +38,8 @@ "save": "સેવ કરો", "unchanged": "બદલાયું નથી", "unknown": "અજ્ઞાત", - "noItemInClipboard": "ક્લિપબોર્ડમાં કોઈ વસ્તુ નથી" + "noItemInClipboard": "ક્લિપબોર્ડમાં કોઈ વસ્તુ નથી", + "quickSaveFromFavorites": "\"મનપસંદ\" માટે ક્વિક સેવ કરો" }, "receiveTab": { "title": "પ્રાપ્ત કરો", @@ -46,6 +47,11 @@ "ip": "IP:", "port": "પોર્ટ:", "alias": "ડિવાઇસનું નામ:" + }, + "quickSave": { + "favorites": "મનપસંદ", + "off": "@:general.off", + "on": "@:general.on" } }, "sendTab": { @@ -75,7 +81,8 @@ }, "sendModeHelp": "સમજાણ", "help": "મહેરબાની કરીને ખાતરી કરો કે ઇચ્છિત લક્ષ્ય પણ તે જ Wi-Fi નેટવર્ક પર છે.", - "placeItems": "શેર કરવા માટે વસ્તુઓ મૂકો." + "placeItems": "શેર કરવા માટે વસ્તુઓ મૂકો.", + "manualSending": "મૈન્યુલ મોકલવું" }, "settingsTab": { "title": "સેટિંગ્સ", @@ -100,7 +107,9 @@ "minimizeToTray": "બંધ કરો: ટ્રે/મેનુ બારમાં મિનિમાઇઝ", "launchAtStartup": "લૉગિન પછી સ્વયંચાલિત શરૂઆત", "launchMinimized": "સ્વયંચાલિત શરૂઆત: છુપાવેલી સ્થિતિમાં શરૂ કરો", - "animations": "એનિમેશન" + "animations": "એનિમેશન", + "saveWindowPlacementWindows": "બહાર નીકળ્યા પછી વિન્ડો ની જગ્યા સાચવો", + "showInContextMenu": "કૉટેક્સ્ટ મેન્યુ માં LocalSend દેખાડો" }, "receive": { "title": "સ્વીકારો", @@ -109,7 +118,9 @@ "destination": "સ્થળ", "downloads": "(ડાઉનલોડ્સ)", "saveToGallery": "મીડિયા ગેલેરીમાં સેવ કરો", - "saveToHistory": "ઇતિહાસમાં સેવ કરો" + "saveToHistory": "ઇતિહાસમાં સેવ કરો", + "quickSaveFromFavorites": "@:general.quickSaveFromFavorites", + "requirePin": "@:webSharePage.requirePin" }, "send": { "title": "મોકલો", @@ -127,7 +138,14 @@ "portWarning": "તમે કસ્ટમ પોર્ટનો ઉપયોગ કરી રહ્યા છો તેથી તમે અન્ય ડિવાઇસ દ્વારા શોધી શકાય નહીં. (મૂળભૂત: {defaultPort})", "encryption": "એન્ક્રિપ્શન", "multicastGroup": "મલ્ટીકાસ્ટ", - "multicastGroupWarning": "તમે કસ્ટમ મલ્ટીકાસ્ટ સરનામાનો ઉપયોગ કરી રહ્યા છો તેથી તમે અન્ય ડિવાઇસ દ્વારા શોધી શકાય નહીં. (મૂળભૂત: {defaultMulticast})" + "multicastGroupWarning": "તમે કસ્ટમ મલ્ટીકાસ્ટ સરનામાનો ઉપયોગ કરી રહ્યા છો તેથી તમે અન્ય ડિવાઇસ દ્વારા શોધી શકાય નહીં. (મૂળભૂત: {defaultMulticast})", + "network": "નૅટવર્ક", + "networkOptions": { + "all": "બધા", + "filtered": "છાણેલા" + }, + "useSystemName": "સિસ્ટમ નામ વાપરો", + "generateRandomAlias": "રેનડમ ઉપનામ બનાવો" }, "other": { "title": "અન્ય", @@ -151,6 +169,10 @@ "noConnection": { "symptom": "બંને ડિવાઇસ એકબીજાને શોધી શકતા નથી કે ફાઈલો શેર કરી શકતા નથી.", "solution": "શું સમસ્યા બંને બાજુ છે? જો આવું હોય, તો તમને ખાતરી કરવી જોઈએ કે બંને ડિવાઇસ એ જ Wi-Fi નેટવર્ક પર છે અને એ જ રૂપરેખા (પોર્ટ, મલ્ટીકાસ્ટ સરનામું, એન્ક્રિપ્શન) શેર કરે છે. નેટવર્ક ભાગ લેનારા વચ્ચે સંવાદિતા મંજૂરી ન આપી શકે. આ કિસ્સામાં, આ વિકલ્પને રાઉટરમાં સક્રિય કરવો પડશે." + }, + "noDiscovery": { + "symptom": "આ ડિવાઇસ બીજા ડિવાઇસ ને શોધી નથી શકતો.", + "solution": "પક્કું કરો કે તમારા બધા ડિવાઇસ એજ વાઈફાઈ પર છે એંડ એજ કૉંફઈગુરેશન (પોર્ટ, મલ્ટીકાષ્ટ એડ્રેસ, એનક્રિપશન) છે. તમે જોયતા ડિવાઇસ નું આઇપી એડ્રેસ લખવનો પ્રયાસ કરી શકો છો. અગર આ કામ કયરૂ તોહ તમે આ ડિવાઇસ ને તમારા મનપસંદ માં જોડી શકો છો જેનાથી, ભવિષ્ય માં એ એની મેતે શોધી લેસે." } }, "receiveHistoryPage": { @@ -161,7 +183,8 @@ "entryActions": { "open": "ફાઇલ ખોલો", "info": "માહિતી", - "deleteFromHistory": "ઇતિહાસમાંથી ડિલીટ કરો" + "deleteFromHistory": "ઇતિહાસમાંથી ડિલીટ કરો", + "showInFolder": "ફોલ્ડર માં બતાવો" } }, "apkPickerPage": { @@ -192,7 +215,8 @@ "sendPage": { "waiting": "પ્રતિસાદની રાહ જોવામાં આવી રહી છે...", "rejected": "પ્રાપ્તકર્તાએ વિનંતી અસ્વીકાર કરી છે.", - "busy": "પ્રાપ્તકર્તા બીજી વિનંતી સાથે વ્યસ્ત છે." + "busy": "પ્રાપ્તકર્તા બીજી વિનંતી સાથે વ્યસ્ત છે.", + "tooManyAttempts": "@:વેબ.બહુ_બધા_પ્રયાસ" }, "progressPage": { "titleSending": "ફાઈલો મોકલી રહ્યા છે", @@ -208,6 +232,14 @@ "count": "ફાઈલો: {curr} / {n}", "size": "કદ: {curr} / {n}", "speed": "ગતિ: {speed}/s" + }, + "remainingTime": { + "days": "{d}દિ {h}ક {m}મિ", + "@hours": "નાનું કરી ને 'ક' કલાક માટે અને 'મિ' મિનિટ માટે વાપરો", + "@days": "નાનું કરી ને 'દિ' દિવસ માટે, 'ક' કલાક માટે અને 'મિ' મિનિટ માટે વાપરો", + "seconds": "{n}:{ss}", + "minutes": "{n}:{ss}", + "hours": "{h}ક {m}મિ" } }, "webSharePage": { @@ -224,7 +256,9 @@ "encryption": "@:settingsTab.network.encryption", "autoAccept": "સ્વયંસંચાલિત રીતે વિનંતિઓ સ્વીકારો", "encryptionHint": "લોકલસેન્ડ એ સ્વ-સાઇન્ડ સર્ટિફિકેટનો ઉપયોગ કરે છે. તમારે તેને તમારા બ્રાઉઝરમાં સ્વીકારવું પડશે.", - "pendingRequests": "બાકી વિનંતિઓ: {n}" + "pendingRequests": "બાકી વિનંતિઓ: {n}", + "requirePin": "પિન જોયશે", + "pinHint": "પિન \"{pin}\" છે" }, "aboutPage": { "title": "લોકલસેન્ડ વિશે", @@ -234,7 +268,8 @@ ], "author": "લેખક", "contributors": "યોગદાનકર્તાઓ", - "translators": "અનુવાદકો" + "translators": "અનુવાદકો", + "packagers": "પૅકેજકરતાં" }, "donationPage": { "title": "દાન આપો", @@ -422,6 +457,21 @@ }, "zoom": { "title": "URL" + }, + "openFile": { + "title": "ફાઇલ ખોલો", + "content": "પ્રાપ્ત થઈલી ફાઇલ ખોલવી છે?" + }, + "quickSaveFromFavoritesNotice": { + "title": "@:general.quickSaveFromFavorites", + "content": [ + "તમારા મનપસંદ સૂચી માં હોય એ ડિવાઇસ ના ફાઇલ અનુરોધ એની મેતે સ્વીકાર કરી લેશે.", + "ચેતવણી! હમણાં, આ પૂર્ણ રૂપ થઈ સુરક્ષિત નથી, કારણ કે તમારા મનપસંદ સૂચી માંથી કોઈ ભી ડિવાઇસ નું ફિંગરપ્રિન્ટ કોઈ હેકર પાસે હસે તો એ તમને ફાઇલ બીના તમારા મંજૂરી મોકલી સકશે.", + "જોકે, બીના મંજૂરી બધા જે લોકલ નેટવર્ક પર હોય એના પાસ થી ફાઇલ લેવા કરતા આ વિકલ્પ વધારે સુરક્ષિત છે." + ] + }, + "pin": { + "title": "પિન નાખો" } }, "sanitization": { @@ -431,14 +481,18 @@ "tray": { "@info": "Apple માર્ગદર્શિકાઓ 'બંધ' શબ્દના વપરાશ વિશે ખૂબ કડક છે.", "open": "@:general.open", - "close": "LocalSend બંધ કરો" + "close": "LocalSend બંધ કરો", + "closeWindows": "બહાર નિકડો" }, "web": { "waiting": "@:sendPage.waiting", "rejected": "નકારી કાઢ્યું", "files": "ફાઈલો", "fileName": "ફાઈલનું નામ", - "size": "માપ" + "size": "માપ", + "enterPin": "પિન નાખો", + "invalidPin": "પિન ગલત છે", + "tooManyAttempts": "બહુ બધા પ્રયાસ કરી દીધા" }, "assetPicker": { "@info": "Android અને iPhone માટે મીડિયા પસંદગી સાધન માટેના અનુવાદો", @@ -470,5 +524,12 @@ "sActionUseCameraHint": "કૅમેરા વાપરો", "sNameDurationLabel": "અવધિ", "sUnitAssetCountLabel": "ગણતરી" + }, + "networkInterfacesPage": { + "preview": "પ્રીવ્યૂ", + "whitelist": "જોયતીસૂચી", + "blacklist": "નજોયતીસૂચી", + "title": "નેટવર્ક ઇન્ટરફેસ", + "info": "ડિફૌલ્ટ રૂપે, LocalSend બધા ઉપલબ્ધ નેટવર્ક ઇન્ટરફેસ વાપરશે. તમે અહી નજોયતા નેટવર્ક ને કાઢી શકો છો. બદલાવ જોયા માટે તમને સર્વર ને ફરી ચાલુ કરવું પડસે." } } diff --git a/app/assets/i18n/hi.json b/app/assets/i18n/hi.json index 3b63b36f..f6dcf849 100644 --- a/app/assets/i18n/hi.json +++ b/app/assets/i18n/hi.json @@ -1,6 +1,6 @@ { - "locale": "Hindi", - "appName": "LocalSend", + "locale": "अंग्रेज़ी", + "appName": "स्थानीय भेजें (फाइल भेजो)", "general": { "accept": "स्वीकार करें", "accepted": "स्वीकृत", @@ -28,7 +28,7 @@ "open": "खोलें", "queue": "कतार", "quickSave": "त्वरित सहेजें", - "quickSaveFromFavorites": "\"पसंदीदा\" के लिए त्वरित सहेजें।", + "quickSaveFromFavorites": "\"पसंदीदा\" के लिए त्वरित सहेजें", "renamed": "नाम बदला गया", "reset": "रीसेट करें", "restart": "पुनः प्रारंभ करें", @@ -39,7 +39,7 @@ "save": "सहेजें", "unchanged": "अपरिवर्तित", "unknown": "अज्ञात", - "noItemInClipboard": "क्लिपबोर्ड में कोई आइटम नहीं" + "noItemInClipboard": "क्लिपबोर्ड में कोई आइटम नहीं है।" }, "receiveTab": { "title": "प्राप्त करें", @@ -104,7 +104,7 @@ "system": "सिस्टम" }, "saveWindowPlacement": "बंद करें: विंडो प्लेसमेंट सहेजें", - "saveWindowPlacementWindows": "बाहर निकलने के बाद विंडो की स्थिति सहेजें।", + "saveWindowPlacementWindows": "बाहर निकलने के बाद विंडो की स्थिति सहेजें", "minimizeToTray": "बंद करें: ट्रे/मेनू बार में मिनिमाइज करें", "launchAtStartup": "लॉगिन के बाद ऑटोस्टार्ट", "launchMinimized": "ऑटोस्टार्ट: छुपा हुआ प्रारंभ करें", @@ -207,15 +207,15 @@ }, "receiveOptionsPage": { "title": "विकल्प", - "destination": "@:settingsTab.receive.destination", + "destination": "@ : सेटिंग्सटैब.रिसीव.डेस्टिनेशन", "appDirectory": "(LocalSend फ़ोल्डर)", - "saveToGallery": "@:settingsTab.receive.saveToGallery", + "saveToGallery": "@ : सेटिंग्सटैब.रिसीव.सेव टू गैलरी", "saveToGalleryOff": "स्वचालित रूप से बंद कर दिया गया क्योंकि वहाँ निर्देशिकाएँ हैं।" }, "sendPage": { - "waiting": "प्रतिक्रिया का इंतजार कर रहे हैं...", + "waiting": "प्रतिक्रिया का इंतजार कर रहे हैं ||", "rejected": "प्राप्तकर्ता ने अनुरोध अस्वीकार कर दिया।", - "tooManyAttempts": "@:web.tooManyAttempts", + "tooManyAttempts": "@ : वेब. बहुत अधिक प्रयास", "busy": "प्राप्तकर्ता किसी अन्य अनुरोध में व्यस्त है।" }, "progressPage": { @@ -236,8 +236,8 @@ }, "webSharePage": { "title": "लिंक के माध्यम से साझा करें", - "loading": "सर्वर शुरू हो रहा है...", - "stopping": "सर्वर बंद हो रहा है...", + "loading": "सर्वर प्रारंभ हो रहा है ||", + "stopping": "सर्वर बंद हो रहा है ||", "error": "सर्वर शुरू करते समय एक त्रुटि हुई।", "openLink": { "one": "अपने ब्राउज़र में इस लिंक को खोलें:", @@ -245,7 +245,7 @@ }, "requests": "अनुरोध", "noRequests": "अभी तक कोई अनुरोध नहीं।", - "encryption": "@:settingsTab.network.encryption", + "encryption": "@ : सेटिंग्स टैब . नेटवर्क . एन्क्रिप्शन", "autoAccept": "अनुरोधों को स्वचालित रूप से स्वीकार करें", "requirePin": "पिन आवश्यक है", "pinHint": "पिन \"{pin}\" है", @@ -267,14 +267,14 @@ "title": "दान करें", "info": "LocalSend मुफ्त, ओपन-सोर्स और बिना किसी विज्ञापन के है। यदि आपको ऐप पसंद है, तो आप विकास का समर्थन दान करके कर सकते हैं।", "donate": "दान करें {amount}", - "thanks": "बहुत बहुत धन्यवाद!", + "thanks": "आपका हार्दिक धन्यवाद!", "restore": "खरीदारी पुनर्स्थापित करें" }, "changelogPage": { "title": "परिवर्तन सूची" }, "aliasGenerator(ignoreMissing, ignoreGpt)": { - "@info": "Different locales may have different words, it may not match 1:1", + "@info": "अलग-अलग स्थानों में अलग-अलग शब्द हो सकते हैं, यह 1:1 से मेल नहीं खा सकता", "adjectives": [ "प्यारा", "सुंदर", @@ -442,11 +442,11 @@ "random": "यादृच्छिक" }, "quickSaveNotice": { - "title": "@:general.quickSave", + "title": "@:सामान्य.जल्दी सहेजें", "content": "फ़ाइल अनुरोध स्वचालित रूप से स्वीकार कर लिए जाते हैं। ध्यान दें कि स्थानीय नेटवर्क पर सभी लोग आपको फ़ाइलें भेज सकते हैं।" }, "quickSaveFromFavoritesNotice": { - "title": "@:general.quickSaveFromFavorites", + "title": "@ : सामान्य .जल्दी पसंदीदा से सहेजें", "content": [ "अब आपके पसंदीदा सूची में शामिल डिवाइसों से फ़ाइल अनुरोध स्वतः स्वीकार किए जाएंगे।", "चेतावनी! वर्तमान में, यह पूरी तरह से सुरक्षित नहीं है, क्योंकि कोई हैकर जो आपकी पसंदीदा सूची में शामिल किसी भी डिवाइस का फ़िंगरप्रिंट प्राप्त कर लेता है, वह बिना किसी प्रतिबंध के आपको फ़ाइलें भेज सकता है।", @@ -487,7 +487,7 @@ "size": "आकार" }, "assetPicker": { - "@info": "Translations for the Media selection tool for Android and iPhone", + "@info": "एंड्रॉयड और आईफोन के लिए मीडिया चयन उपकरण हेतु अनुवाद।", "confirm": "पुष्ट करें", "cancel": "रद्द करें", "edit": "संपादित करें", diff --git a/app/assets/i18n/hu.json b/app/assets/i18n/hu.json index 5daf8036..0e160bb4 100644 --- a/app/assets/i18n/hu.json +++ b/app/assets/i18n/hu.json @@ -232,6 +232,14 @@ "count": "Fájl: {curr} / {n}", "size": "Méret: {curr} / {n}", "speed": "Sebesség: {speed}/s" + }, + "remainingTime": { + "seconds": "{n}:{ss}", + "minutes": "{n}:{ss}", + "hours": "{h}h {m}m", + "days": "{d}d {h}h {m}m", + "@hours": "Az órák rövidítéséhez használja a 'h' betűt, a percekhez pedig az 'm' betűt", + "@days": "A naphoz a 'd', az órához a 'h', a percekhez az 'm' betűt használja" } }, "webSharePage": { diff --git a/app/assets/i18n/id.json b/app/assets/i18n/id.json index a85ef94a..ed9d205b 100644 --- a/app/assets/i18n/id.json +++ b/app/assets/i18n/id.json @@ -207,15 +207,15 @@ }, "receiveOptionsPage": { "title": "Pilihan", - "destination": "@:settingsTab.receive.destination", + "destination": "@:settingstab.receive.destination", "appDirectory": "(folder LocalSend)", - "saveToGallery": "@:settingsTab.receive.saveToGallery", + "saveToGallery": "@:settingstab.receive.saveToGallery", "saveToGalleryOff": "Dimatikan secara otomatis karena ada direktori." }, "sendPage": { "waiting": "Menunggu tanggapan…", "rejected": "Penerima menolak permintaan.", - "tooManyAttempts": "@:web.tooManyAttempts", + "tooManyAttempts": "@:web.toomanyAttempts", "busy": "Penerima sedang sibuk dengan permintaan lain." }, "progressPage": { @@ -245,7 +245,7 @@ }, "requests": "Permintaan", "noRequests": "Belum ada permintaan.", - "encryption": "@:settingsTab.network.encryption", + "encryption": "@:settingstab.network.encryption", "autoAccept": "Terima permintaan secara otomatis", "requirePin": "Memerlukan PIN", "pinHint": "PIN-nya adalah \"{pin}\"", @@ -372,11 +372,11 @@ "random": "Acak" }, "quickSaveNotice": { - "title": "@:general.quickSave", + "title": "@:general.QuickSave", "content": "Semua permintaan akan langsung diterima. Harap berhati-hati bahwa semua orang di jaringan lokal dapat mengirim berkas." }, "quickSaveFromFavoritesNotice": { - "title": "@:general.quickSaveFromFavorites", + "title": "@:general.quickSavefromFavorites", "content": [ "Permintaan berkas sekarang diterima secara otomatis dari perangkat di daftar favorit Anda.", "Peringatan! Saat ini, pilihan ini tidak sepenuhnya aman karena peretas yang memiliki sidik jari perangkat apa pun dari daftar favorit Anda dapat mengirimi Anda berkas tanpa pembatasan.", diff --git a/app/assets/i18n/it.json b/app/assets/i18n/it.json index b970c788..cc294d8d 100644 --- a/app/assets/i18n/it.json +++ b/app/assets/i18n/it.json @@ -232,6 +232,14 @@ "count": "File: {curr} / {n}", "size": "Dimensione: {curr} / {n}", "speed": "Velocità: {speed}/s" + }, + "remainingTime": { + "hours": "{h}h {m}m", + "days": "{d}d {h}h {m}m", + "@hours": "Usa 'h' come abbreviazione per ore e 'm' per minuti", + "@days": "Usa 'd' per giorni, 'h' per ore, e 'm' per minuti", + "seconds": "{n}:{ss}", + "minutes": "{n}:{ss}" } }, "webSharePage": { diff --git a/app/assets/i18n/ja.json b/app/assets/i18n/ja.json index 6600cc47..a56f46de 100644 --- a/app/assets/i18n/ja.json +++ b/app/assets/i18n/ja.json @@ -140,7 +140,12 @@ "portWarning": "ポートが変更されているため、このデバイスが他のデバイスから検出されなくなる場合があります。(デフォルト: {defaultPort})", "encryption": "暗号化", "multicastGroup": "マルチキャスト", - "multicastGroupWarning": "マルチキャストアドレスが変更されているため、他のデバイスから検出されなくなる場合があります。(デフォルト: {defaultMulticast})" + "multicastGroupWarning": "マルチキャストアドレスが変更されているため、他のデバイスから検出されなくなる場合があります。(デフォルト: {defaultMulticast})", + "network": "ネットワーク", + "networkOptions": { + "all": "すべて", + "filtered": "フィルター" + } }, "other": { "title": "その他", @@ -227,6 +232,10 @@ "count": "ファイル: {curr} / {n}", "size": "サイズ: {curr} / {n}", "speed": "速度: {speed}/s" + }, + "remainingTime": { + "@hours": "時間の略語には「h」、分の略語には「m」を使用します", + "@days": "日には「d」、時間には「h」、分には「m」を使用します" } }, "webSharePage": { @@ -441,5 +450,12 @@ "sActionUseCameraHint": "カメラを使う", "sNameDurationLabel": "長さ", "sUnitAssetCountLabel": "個数" + }, + "networkInterfacesPage": { + "preview": "プレビュー", + "blacklist": "ブラックリスト", + "whitelist": "ホワイトリスト", + "title": "ネットワークインターフェース", + "info": "デフォルトでは、LocalSend は利用可能なすべてのネットワークインターフェースを使用します。不要なネットワークを除外するには、ここで設定できます。変更を適用するには、サーバーを再起動する必要があります。" } } diff --git a/app/assets/i18n/km.json b/app/assets/i18n/km.json index c9d44cae..af23a744 100644 --- a/app/assets/i18n/km.json +++ b/app/assets/i18n/km.json @@ -11,7 +11,7 @@ "confirm": "បញ្ជាក់", "continueStr": "បន្ត", "copy": "ចម្លង", - "copiedToClipboard": "បានចម្លង", + "copiedToClipboard": "បានចម្លងទៅឃ្លីបប៊ត", "decline": "បដិសេធ", "done": "រួចរាល់", "delete": "លុប", @@ -22,7 +22,7 @@ "finished": "រួចរាល់ហើយ", "hide": "លាក់", "off": "បិទ", - "offline": "បិទអនឡាញ", + "offline": "អហ្វឡាញ", "on": "បើក", "online": "អនឡាញ", "open": "បើក", @@ -30,7 +30,7 @@ "quickSave": "រក្សាទុករហ័ស", "quickSaveFromFavorites": "រក្សាទុករហ័សសម្រាប់ \"ឧបករណ៍សំណព្វ\"", "renamed": "បានកែឈ្មោះ", - "reset": "កំណត់ឡើងវិញ", + "reset": "អាន់ឌូផ្លាស់ប្ដូរ", "restart": "ចាប់ផ្តើមឡើងវិញ", "settings": "ការកំណត់", "skipped": "រំលង", @@ -39,14 +39,14 @@ "save": "រក្សាទុក", "unchanged": "មិនបានផ្លាស់ប្តូរ", "unknown": "មិនស្គាល់", - "noItemInClipboard": "មិនមានរបស់នៅក្នុងក្តារចម្លង" + "noItemInClipboard": "មិនមានធាតុនៅក្នុងឃ្លីបប៊ត។" }, "receiveTab": { "title": "ការទទួល", "infoBox": { - "ip": "IP:", - "port": "ផត:", - "alias": "ឈ្មោះដទៃ:" + "ip": "អាយភី៖", + "port": "ច្រក៖", + "alias": "ឈ្មោះឧបករណ៍៖" }, "quickSave": { "off": "@:general.off", @@ -58,8 +58,8 @@ "title": "ការផ្ញើ", "selection": { "title": "ការជ្រើសរើស", - "files": "ឯកសារ: {files}", - "size": "ទំហំ: {size}" + "files": "ឯកសារ៖ {files}", + "size": "ទំហំ៖ {size}" }, "picker": { "file": "ឯកសារ", @@ -69,7 +69,7 @@ "app": "កម្មវិធី", "clipboard": "បិទភ្ជាប់" }, - "shareIntentInfo": "អ្នកក៏អាចប្រើប្រាស់មុខងារ \"ចែករំលេក\" ក្នុងទូរស័ព្ទដៃរបស់អ្នកដើម្បីរើសឯកសារបានកាន់តែងាយស្រួល។", + "shareIntentInfo": "អ្នកក៏អាចប្រើប្រាស់មុខងារ \"ចែករំលេក\" ក្នុងទូរសព្ទចល័តរបស់អ្នក ដើម្បីរើសឯកសារឱ្យកាន់តែងាយស្រួល។", "nearbyDevices": "ឧបករណ៍ដែលនៅជិតនេះ", "thisDevice": "ឧបករណ៍នេះ", "scan": "កំពុងរកមើលឧបករណ៍", @@ -82,12 +82,12 @@ }, "sendModeHelp": "ការពន្យល់", "help": "សូមប្រាកដថាទីតាំងដែលអ្នកចង់ផ្ញើគឺត្រូវតែភ្ជាប់បណ្តាញ Wi-Fi តែមួយដូចគ្នា។", - "placeItems": "ដាក់របស់ដែលត្រូវចែករំលែក" + "placeItems": "ដាក់ធាតុដែលត្រូវចែករំលែក។" }, "settingsTab": { "title": "ការកំណត់", "general": { - "title": "ទូទៅ", + "title": "ទិដ្ឋភាពទូទៅ", "brightness": "ស្បែកកម្មវិធី", "brightnessOptions": { "system": "តាមប្រព័ន្ធ", @@ -103,7 +103,7 @@ "languageOptions": { "system": "តាមប្រព័ន្ធ" }, - "saveWindowPlacement": "ចាកចេញ: រក្សាទុកផ្ទាំង Window", + "saveWindowPlacement": "រក្សាទុកផ្ទាំងវីនដូ ក្រោយពេលចាកចេញ", "saveWindowPlacementWindows": "រក្សាទុកទីតាំងផ្ទាំងអេក្រង់នៅដដែលបន្ទាប់ពីចាកចេញ", "minimizeToTray": "ចាកចេញ: បង្រួមអប្បបរមាទៅរបារម៉ឺនុយ", "launchAtStartup": "ចាប់ផ្តើមដោយស្វ័យប្រវត្តិបន្ទាប់ពីចូលគណនី", @@ -117,7 +117,7 @@ "quickSaveFromFavorites": "@:general.quickSaveFromFavorites", "requirePin": "@:webSharePage.requirePin", "autoFinish": "បញ្ចប់ដោយស្វ័យប្រវត្តិ", - "destination": "ទិសដៅ", + "destination": "រក្សាទុកនៅឯថត", "downloads": "(ទាញយក)", "saveToGallery": "រក្សាទុកទៅកាន់កម្មវិធីវិចិត្រសាល", "saveToHistory": "រក្សាទុកទៅកាន់ប្រវត្តិ" @@ -133,14 +133,19 @@ "alias": "ឈ្មោះផ្សេងទៀត", "deviceType": "ប្រភេទឧបករណ៍", "deviceModel": "ម៉ូឌែលរបស់ឧបករណ៍", - "port": "ផត", + "port": "ច្រក", "discoveryTimeout": "ថេរវេលាក្នុងការស្វែងរក", "useSystemName": "ប្រើប្រាស់ឈ្មោះរបស់ប្រព័ន្ធ", "generateRandomAlias": "បង្កើតឈ្មោះដទៃដោយដៃចៃដន្យ", "portWarning": "អ្នកប្រហែលជាមិនត្រូវបានរកឃើញដោយឧបករណ៍ផ្សេងទៀតទេ ដោយសារតែអ្នកកំពុងប្រើច្រកដែលបង្កើតផ្ទាល់ខ្លួន។ (ច្រកដើម: {defaultPort})", "encryption": "ការការពារទិន្នន័យ", - "multicastGroup": "ពហុផ្សាយ", - "multicastGroupWarning": "អ្នកប្រហែលជាមិនត្រូវបានរកឃើញដោយឧបករណ៍ផ្សេងទៀតទេ ដោយសារតែអ្នកកំពុងប្រើអាសយដ្ឋានពហុផ្សាយដែលបង្កើតផ្ទាល់ខ្លួន។ (ច្រកដើម: {defaultMulticast})" + "multicastGroup": "អាសយដ្ឋានពហុផ្សាយ", + "multicastGroupWarning": "អ្នកប្រហែលជាមិនត្រូវបានរកឃើញដោយឧបករណ៍ផ្សេងទៀតទេ ដោយសារតែអ្នកកំពុងប្រើអាសយដ្ឋានពហុផ្សាយដែលបង្កើតផ្ទាល់ខ្លួន។ (ច្រកដើម: {defaultMulticast})", + "network": "បណ្តាញ", + "networkOptions": { + "all": "ទាំងអស់", + "filtered": "បានតម្រង" + } }, "other": { "title": "ផ្សេងៗ", diff --git a/app/assets/i18n/ml.json b/app/assets/i18n/ml.json index c0f2a037..3a4e5974 100644 --- a/app/assets/i18n/ml.json +++ b/app/assets/i18n/ml.json @@ -15,13 +15,13 @@ "example": "ഉദാഹരണം", "files": "ഫയലുകൾ", "finished": "പൂർത്തിയാക്കി", - "hide": "ഹൈഡ്", + "hide": "മറയ്ക്കുക", "save": "സേവ്", "close": "അവസാനിപ്പിക്കുക", "copiedToClipboard": "ക്ലിപ്പ്ബോർഡിലേക്ക് കോപ്പി ചെയ്തു", "done": "ചെയ്തു കഴിഞ്ഞു", "off": "നിർത്തുക", - "offline": "ലഭ്യമല്ല", + "offline": "പ്രവർത്തനക്ഷമമല്ല", "on": "തുടങ്ങുക", "online": "പ്രവർത്തനക്ഷമമായി", "open": "തുറക്കുക", @@ -45,7 +45,9 @@ "shareIntentInfo": "താങ്കൾക്ക് മൊബൈലിലെ ഷെയർ ഫീച്ചർ ഉപയോഗിച്ചു എളുപ്പത്തിൽ ഫയൽസ് സെലക്ട് ചെയ്യാം.", "title": "അയക്കുക", "selection": { - "title": "തിരഞ്ഞെടുക്കപ്പെട്ടത്" + "title": "തിരഞ്ഞെടുക്കപ്പെട്ടത്", + "files": "ഫയലുകൾ:{files}", + "size": "വലുപ്പം : {size}" }, "picker": { "file": "ഫയൽ", @@ -77,8 +79,9 @@ "alias": "പേര് :" }, "quickSave": { - "off": "നിർത്തുക", - "favorites": "പ്രത്യേകതാൽപര്യമുള്ള" + "off": "@:general.off", + "favorites": "പ്രിയപ്പെട്ട", + "on": "@:general.on" } }, "settingsTab": { @@ -92,7 +95,7 @@ "dark": "ഇരുണ്ട", "light": "വെളിച്ചമുള്ള" }, - "color": "നിറങ്ങൾ", + "color": "നിറം", "colorOptions": { "system": "സിസ്റ്റം", "oled": "OLED" @@ -111,9 +114,9 @@ "needRestart": "പതിയ മാറ്റങ്ങൾ അപ്ലൈ ചെയ്യാൻ സെർവർ റീസ്റ്റാർട്ട് ചെയ്യുക!", "title": "നെറ്റ്‌വർക്ക്", "server": "സെർവർ", - "deviceType": "ഈ ഡിവൈസിന്റെ തരം", - "alias": "ഈ ഡിവൈസിന്റെ പേര്", - "deviceModel": "ഈ ഡിവൈസിന്റെ മോഡൽ", + "deviceType": "ഡിവൈസിന്റെ തരം", + "alias": "ഡിവൈസിന്റെ പേര്", + "deviceModel": "ഡിവൈസിന്റെ മോഡൽ", "port": "Port", "network": "നെറ്റ്‌വർക്ക്", "networkOptions": { @@ -122,7 +125,11 @@ }, "discoveryTimeout": "ഡിസ്കവർ ചെയ്യാനുള്ള സമയം കഴിഞ്ഞു", "useSystemName": "ഈ സിസ്റ്റത്തിന്റെ പേര് ഉപയോഗിക്കുക", - "generateRandomAlias": "ഒരു ആകസ്മികമായ മറുപേർ ഉണ്ടാക്കുക" + "generateRandomAlias": "ഒരു ആകസ്മികമായ മറുപേർ ഉണ്ടാക്കുക", + "portWarning": "നിങ്ങൾ ഒരു ഇഷ്ടാനുസൃത പോർട്ട് ഉപയോഗിക്കുന്നതിനാൽ മറ്റ് ഉപകരണങ്ങൾക്ക് നിങ്ങളെ കണ്ടെത്താൻ കഴിഞ്ഞേക്കില്ല. (default: {defaultPort})", + "encryption": "എൻക്രിപ്ഷൻ", + "multicastGroup": "മൾട്ടികാസ്റ്റ് അഡ്രസ്സ്", + "multicastGroupWarning": "നിങ്ങൾ ഒരു ഇഷ്ടാനുസൃത മൾട്ടികാസ്റ്റ് വിലാസം ഉപയോഗിക്കുന്നതിനാൽ മറ്റ് ഡിവൈസുകൾ നിങ്ങളെ കണ്ടെത്തിയേക്കില്ല. (default : {defaultMulticast})" }, "receive": { "saveToGallery": "മീഡിയ ഫയൽസ് ഗാലറിയിലേക്ക് സേവ് ചെയ്യുക", @@ -130,16 +137,24 @@ "autoFinish": "ഓട്ടോമാറ്റിക് ആയി ഫിനിഷ് ചെയ്യുക", "destination": "ഫോൾഡറിലേക്കു സേവ് ചെയ്യുക", "downloads": "(ഡൗൻലോഡ്)", - "saveToHistory": "ഹിസ്റ്ററിയിലേക്കു സേവ് ചെയ്യുക" + "saveToHistory": "ഹിസ്റ്ററിയിലേക്കു സേവ് ചെയ്യുക", + "requirePin": "@:webSharePage.requirePin", + "quickSave": "@:general.quickSave", + "quickSaveFromFavorites": "@:general.quickSaveFromFavorites" }, "send": { "shareViaLinkAutoAccept": "\"ലിങ്ക് വഴി ഷെയർ\" ചെയ്യുമ്പോൾ ഓട്ടോമാറ്റിക് ആയി സ്വീകരിക്കുക", "title": "അയക്കുക" }, - "title": "സജ്ജീകരണങ്ങൾ", + "title": "ക്രമീകരണങ്ങൾ", "other": { - "privacyPolicy": "സ്വകാര്യത നയം" - } + "privacyPolicy": "സ്വകാര്യത നയം", + "support": "ലോക്കൽ സെൻഡ് പിന്തുണ നൽകുക", + "donate": "സംഭാവന ചെയ്യുക", + "termsOfUse": "ഉപയോഗ നിബന്ധനകൾ", + "title": "മറ്റുള്ളവ" + }, + "advancedSettings": "അഡ്വാൻസ്‌ഡ് ക്രമീകരണങ്ങൾ" }, "assetPicker": { "accessLimitedAssets": "മുഴുവൻ ആക്സസ് ഇല്ലാതെ തന്നെ മുന്നോട് പോവുക", @@ -200,6 +215,96 @@ }, "zoom": { "title": "URL" + }, + "encryptionDisabledNotice": { + "content": "എൻക്രിപ്ട് ചെയ്യാത്ത HTTP പ്രോട്ടോകോൾ വഴിയാണ് ഇപ്പോൾ ആശയ വിനിമയം നടക്കുന്നത്. HTTPS പ്രോട്ടോകോൾ ഉപയോഗിക്കാൻ എൻക്രിപ്ഷൻ ഓൺ ചെയ്യുക.", + "title": "എൻക്രിപ്ഷൻ ഓഫ് ചെയ്തു" + }, + "localNetworkUnauthorized": { + "description": "അനുവാദം ഇല്ലാതെ ലോക്കൽ നെറ്റ്‌വർക്ക് സ്കാൻ ചെയ്തു മറ്റു ഡിവൈസുകൾ കണ്ടുപിടിക്കാൻ ലോക്കൽസെന്റിന്‌ കഴിയില്ല. ദയവായി സെറ്റിങ്സിൽ ഇതിനുള്ള അനുവാദം നൽകുക.", + "gotoSettings": "സജ്ജീകരണങ്ങൾ" + }, + "addFile": { + "title": "തിരഞ്ഞെടുത്തതിലേക്കു ചേർക്കുക", + "content": "എന്താണ് നിങ്ങൾക്കു ചേർക്കേണ്ടത്?" + }, + "openFile": { + "title": "ഫയൽ തുറക്കുക", + "content": "ലഭിച്ച ഫയൽ നിങ്ങൾക്കു തുറക്കണമോ?" + }, + "addressInput": { + "title": "വിലാസം എഴുതുക", + "hashtag": "ഹാഷ്ടാഗ്", + "ip": "ഐ പി അഡ്രസ്", + "recentlyUsed": "ഈയ്യിടെ ഉപയോഗിച്ചത്: " + }, + "cancelSession": { + "title": "ഫയൽ കൈമാറ്റം റദ്ദാക്കുക", + "content": "നിങ്ങൾക്കു തീർച്ചയായും ഫയലുകളുടെ കൈമാറ്റം റദ്ദാക്കണമോ?" + }, + "cannotOpenFile": { + "title": "ഫയൽ തുറക്കാൻ കഴിയുന്നില്ല", + "content": "\"{file}\" തുറക്കാൻ കഴിയുന്നില്ല. ഈ ഫയൽ ഡിലീറ്റ് ചെയ്യുകയോ പേര് മാറ്റുകയോ മറ്റൊരിടത്തേക്ക് നീക്കുകയോ ചെയ്തിരിക്കുന്നുവോ?" + }, + "favoriteDialog": { + "title": "ഫേവറിറ്റ്സ്", + "noFavorites": "ഫേവറിറ്റ് ഡിവൈസുകൾ ഇതുവരെ ഇല്ല.", + "addFavorite": "ചേർക്കുക" + }, + "favoriteDeleteDialog": { + "title": "ഫേവറിറ്റ്സിൽ നിന്ന് ഒഴിവാക്കുക", + "content": "നിങ്ങൾക്കു തീർച്ചയായും \"{name}\" ഫേവറിറ്റ്സിൽ നിന്ന് ഒഴിവാക്കണമോ?" + }, + "favoriteEditDialog": { + "titleAdd": "ഫേവറിറ്റ്സിൽ ചേർക്കുക", + "titleEdit": "സജ്ജീകരണങ്ങൾ", + "name": "ഡിവൈസ് നാമം", + "ip": "ഐ പി അഡ്രസ്", + "port": "പോർട്ട്" + }, + "fileInfo": { + "title": "ഫയൽ വിവരങ്ങൾ", + "fileName": "ഫയൽ നാമം:", + "path": "പാത:", + "size": "സൈസ്:", + "sender": "അയക്കുന്നവൻ:", + "time": "സമയം:" + }, + "fileNameInput": { + "title": "ഫയൽ നാമം എഴുതുക", + "original": "ഒറിജിനൽ: {original}" + }, + "historyClearDialog": { + "title": "ഹിസ്റ്ററി ക്ലിയർ ചെയ്യുക", + "content": "നിങ്ങൾക്കു തീർച്ചയായും മുഴുവൻ ഹിസ്റ്ററി ഡിലീറ്റ് ചെയ്യണമോ?" + }, + "messageInput": { + "title": "സന്ദേശം ടൈപ്പ് ചെയ്യുക", + "multiline": "ബഹുരേഖ" + }, + "noFiles": { + "title": "ഫയലുകളൊന്നും തിരഞ്ഞെടുത്തില്ല", + "content": "ദയവായി ഒരു ഫയൽ എങ്കിലും തിരഞ്ഞെടുക്കുക." + }, + "noPermission": { + "title": "അനുവാദമില്ല", + "content": "ആവശ്യമായ അനുമതികൾ നിങ്ങൾ അനുവദിച്ചിട്ടില്ല. ദയവായി സജ്ജീകരണങ്ങളിൽ അവ അനുവദിക്കുക." + }, + "notAvailableOnPlatform": { + "title": "ലഭ്യമല്ല", + "content": "ഈ ഫീച്ചർ ലഭ്യമായത് ഇവിടെ മാത്രം:" + }, + "qr": { + "title": "ക്യു ആർ കോഡ്" + }, + "quickActions": { + "title": "ചടുല പ്രവർത്തികൾ", + "counter": "കൗണ്ടർ", + "sortBeforeCount": "മുൻകൂട്ടി അകാരാദിക്രമത്തിൽ ഒത്തിരിക്കുക (A-Z)", + "random": "ക്രമമില്ലാത്തത്" + }, + "quickSaveNotice": { + "content": "ഫയൽ അപേക്ഷകൾ ഇപ്പോൾ ഓട്ടോമാറ്റിക് ആയി അനുവദിക്കുന്നു. ലോക്കൽ നെറ്റ്‌വർക്കിലുള്ള എല്ലാവര്ക്കും നിങ്ങൾക്കു ഫയൽ അയക്കാൻ കഴിയും എന്ന ബോധ്യമുണ്ടായിരിക്കുക." } }, "tray": { @@ -208,10 +313,131 @@ "closeWindows": "എക്സിറ്" }, "networkInterfacesPage": { - "preview": "സ്വകാര്യപ്രദർശനം" + "preview": "സ്വകാര്യപ്രദർശനം", + "info": "ഡിഫോൾട്ടായി, ലോക്കൽസെൻഡ് ലഭ്യമായ എല്ലാ നെറ്റ്‌വർക്ക് ഇന്റർഫേസുകളും ഉപയോഗിക്കുന്നു. നിങ്ങൾക്ക് ഇവിടെ ആവശ്യമില്ലാത്ത നെറ്റ്‌വർക്കുകൾ ഒഴിവാക്കാം. മാറ്റങ്ങൾ പ്രയോഗിക്കാൻ നിങ്ങൾ സെർവർ പുനരാരംഭിക്കേണ്ടതുണ്ട്.", + "title": "നെറ്റ്‌വർക്ക് ഇന്റർഫേസുകൾ", + "whitelist": "വൈറ്റ്‌ലിസ്റ്റ്", + "blacklist": "ബ്ലാക്ക്‌ലിസ്റ്റ്" }, "sanitization": { "empty": "ഫയലിന്റെ പേര് ആവശ്യമാണ്", "invalid": "ഫയലിന്റെ പേരിൽ അംഗീകാരമില്ലാത്ത അക്ഷരങ്ങൾ ഉണ്ട്" + }, + "receivePage": { + "subTitle": { + "one": "നിങ്ങൾക്ക് ഒരു ഫയൽ അയയ്‌ക്കാൻ താൽപ്പര്യപ്പെടുന്നു", + "other": "നിങ്ങൾക്ക് {n} ഫയലുകൾ അയയ്‌ക്കാൻ താൽപ്പര്യപ്പെടുന്നു" + }, + "subTitleLink": "നിങ്ങൾക്ക് ഒരു ലിങ്ക് അയച്ചു:", + "subTitleMessage": "നിങ്ങൾക്ക് ഒരു സന്ദേശം അയച്ചു:", + "canceled": "അയച്ചയാൾ റിക്വസ്റ്റ് റദ്ദാക്കിയിരിക്കുന്നു." + }, + "receiveHistoryPage": { + "entryActions": { + "info": "വിവരങ്ങൾ", + "open": "ഫയൽ തുറക്കുക", + "showInFolder": "ഫോൾഡറിൽ കാണിക്കുക", + "deleteFromHistory": "ഹിസ്റ്ററിയിൽ നിന്ന് ഡിലീറ്റ് ചെയ്യുക" + }, + "title": "ഹിസ്റ്ററി", + "openFolder": "ഫോൾഡർ തുറക്കുക", + "deleteHistory": "ഹിസ്റ്ററി ഡിലീറ്റ് ചെയ്യുക", + "empty": "ഹിസ്റ്ററി ശൂന്യമാണ്." + }, + "receiveOptionsPage": { + "saveToGalleryOff": "ഫോൾഡറുകൾ ഉള്ളതിനാൽ ഓട്ടോമാറ്റിക്കായി ഓഫാക്കി.", + "title": "ഓപ്ഷനുകൾ", + "appDirectory": "(ലോക്കൽസെൻഡ് ഫോൾഡർ)" + }, + "apkPickerPage": { + "excludeSystemApps": "സിസ്റ്റം ആപ്പുകൾ ഒഴിവാക്കുക", + "title": "ആപ്പുകൾ (APK)", + "excludeAppsWithoutLaunchIntent": "ലോഞ്ച് ചെയ്യാൻ കഴിയാത്ത ആപ്പുകൾ ഒഴിവാക്കുക", + "apps": "{n} ആപ്പുകൾ" + }, + "troubleshootPage": { + "firewall": { + "solution": "ഇത് മിക്കവാറും ഒരു ഫയർവാൾ പ്രശ്നമാണ്. പോർട്ട് {port}-ൽ ഇൻകമിംഗ് കണക്ഷനുകൾ (UDP, TCP) അനുവദിച്ചുകൊണ്ട് നിങ്ങൾക്ക് ഇത് പരിഹരിക്കാൻ കഴിയും.", + "symptom": "ഈ ഡിവൈസിന് മറ്റ് ഡിവൈസുകളിലേക് ഫയലുകൾ അയയ്ക്കാൻ കഴിയും, എന്നാൽ മറ്റ് ഡിവൈസുകൾക്ക് ഈ ഡിവൈസിലേക്ക് ഫയലുകൾ അയയ്ക്കാൻ കഴിയില്ല.", + "openFirewall": "ഫയർവാൾ തുറക്കുക" + }, + "title": "ട്രബിൾഷൂട്ട് ചെയ്യുക", + "subTitle": "ആപ്പ് പ്രതീക്ഷിച്ചതുപോലെ പ്രവർത്തിക്കുന്നില്ലേ? പ്രശ്‌നങ്ങൾക്കുള്ള പൊതുവായ ചില പരിഹാരങ്ങൾ ഇവിടെ കാണാം.", + "solution": "പരിഹാരം:", + "noDiscovery": { + "symptom": "ഈ ഡിവൈസിനു മറ്റ് ഡിവൈസുകൾ കണ്ടെത്താൻ കഴിയില്ല.", + "solution": "ദയവായി എല്ലാ ഡിവൈസുകളും ഒരേ വൈഫൈ നെറ്റ്‌വർക്കിൽ ആണെന്നും ഒരേ കോൺഫിഗറേഷൻ(പോർട്ട്, മൾട്ടി കാസ്റ്റ് അഡ്രസ്സ്, എൻക്രിപ്ഷൻ) ആണെന്നും ഉറപ്പു വരുത്തുക. നിങ്ങൾ കണക്ട് ചെയ്യാൻ ശ്രമിക്കുന്ന ഡിവൈസിന്റെ ഐപി അഡ്രസ്സ് ടൈപ്പ് ചെയ്തു നോക്കാവുന്നതാണ്. ഇത് ഫലിക്കുക ആണെങ്കിൽ ഈ ഡിവൈസ് ഫേവറിറ്റ് ആയി സേവ് ചെയ്തു പിന്നീട് ഓട്ടോമാറ്റിക് ആയി കണക്ട് ചെയ്തു ഉപയോഗിക്കാവുന്നതാണ്." + }, + "fixButton": "ഓട്ടോമാറ്റിക്കായി ശരിയാക്കുക", + "noConnection": { + "symptom": "ഇരു ഡിവൈസുകൾക്കും പരസ്പരം കണ്ടെത്താനോ ഫയലുകൾ അയക്കാനോ കഴിയില്ല.", + "solution": "ഇരു ഭാഗങ്ങളിലും പ്രശ്നം ഉണ്ടോ? ഉണ്ടെങ്കിൽ, ദയവായി എല്ലാ ഡിവൈസുകളും ഒരേ വൈഫൈ നെറ്റ്‌വർക്കിൽ ആണെന്നും ഒരേ കോൺഫിഗറേഷൻ(പോർട്ട്, മൾട്ടി കാസ്റ്റ് അഡ്രസ്സ്, എൻക്രിപ്ഷൻ) ആണെന്നും ഉറപ്പു വരുത്തുക. അക്സസ്സ് പോയിന്റ്(എ.പി) ഐസൊലേഷൻ മൂലം പരസ്പരം ഉള്ള ആശയ വിനിമയം വൈഫൈ നെറ്റ്‌വർക്ക് അനുവദിക്കാതെ ഇരിക്കാൻ സാധ്യത ഉണ്ട്. അങ്ങനെ എങ്കിൽ ആ ഓപ്ഷൻ റൗട്ടറിൽ ഓഫ് ചെയ്തു വക്കേണ്ടതാണ്." + } + }, + "selectedFilesPage": { + "deleteAll": "എല്ലാം ഡിലീറ്റ് ചെയ്യുക" + }, + "sendPage": { + "waiting": "പ്രതികരണത്തിനായി കാത്തിരിക്കുന്നു…", + "rejected": "സ്വീകർത്താവ് അപേക്ഷ നിരസിച്ചിരിക്കുന്നു.", + "busy": "സ്വീകർത്താവ് മറ്റൊരു അപേക്ഷ മൂലം തിരക്കിലാണ്.", + "tooManyAttempts": "@:web.tooManyAttempts" + }, + "progressPage": { + "titleSending": "ഫയലുകൾ അയയ്ക്കുന്നു", + "titleReceiving": "ഫയലുകൾ സ്വീകരിക്കുന്നു", + "savedToGallery": "ഫോട്ടോസിൽ സേവ് ചെയ്തു", + "total": { + "title": { + "sending": "മുഴുവൻ പുരോഗതി ({time})", + "finishedError": "തെറ്റുകളോടെ പൂർത്തിയാക്കി", + "canceledSender": "അയക്കുന്നവൻ റദ്ധാക്കി", + "canceledReceiver": "സ്വീകർത്താവ് റദ്ധാക്കി" + }, + "count": "ഫയലുകൾ: {curr} / {n}", + "size": "വലിപ്പം: {curr} / {n}", + "speed": "വേഗത: {speed}/s" + } + }, + "webSharePage": { + "pinHint": "പിൻ ഇതാണ് \"{pin}\"", + "encryptionHint": "ലോക്കൽസെൻഡ്‌ ഉപയോഗിക്കുന്നത് സ്വയം ഒപ്പു വച്ച സാക്ഷ്യപത്രം ആണ്. നിങ്ങളുടെ ബ്രൗസറിൽ ഇത് നിങ്ങൾ അംഗീകരിക്കണം.", + "title": "ലിങ്ക് വഴി ഷെയർ ചെയ്യുക", + "loading": "സെർവർ ആരംഭിക്കുന്നു…", + "stopping": "സെർവർ നിർത്തുന്നു…", + "error": "സെർവർ ആരംഭിക്കുന്നതിൽ തടസ്സം നേരിട്ടു.", + "openLink": { + "one": "ഈ ലിങ്ക് നിങ്ങളുടെ ബ്രൗസറിൽ തുറക്കുക:", + "other": "ഏതെങ്കിലും ഒരു ലിങ്ക് നിങ്ങളുടെ ബ്രൗസറിൽ തുറക്കുക:" + }, + "requests": "അപേക്ഷകൾ", + "noRequests": "അപേക്ഷകളൊന്നും ഇതുവരെ ഇല്ല.", + "autoAccept": "ആട്ടോമാറ്റിക് ആയി അപേക്ഷകൾ സ്വീകരിക്കുക", + "requirePin": "പിൻ ആവശ്യമാണ്", + "pendingRequests": "തീരുമാനിക്കപ്പെടാത്ത അപേക്ഷകൾ: {n}" + }, + "donationPage": { + "info": "ലോക്കൽസെൻഡ്‌ സൗജന്യവും ഓപ്പൺ-സോഴ്സും പരസ്യങ്ങൾ ഇല്ലാത്തതും ആണ്. നിങ്ങൾക്കു ആപ്പ് ഇഷ്ടമായെങ്കിൽ ചെറിയ സംഭാവന നൽകി വികസനത്തിന് സഹായിക്കാവുന്നതാണ്.", + "title": "സംഭാവന ചെയ്യുക", + "donate": "സംഭാവന {amount}", + "thanks": "ഒരുപാട് നന്ദിയുണ്ട്!", + "restore": "വാങ്ങിയത് വീണ്ടെടുക്കുക" + }, + "aboutPage": { + "description": [ + "ഇന്റർനെറ്റ് കണക്ഷന്റെ ആവശ്യമില്ലാതെ ലോക്കൽ നെറ്റ്വർക്കിലൂടെ അടുത്തുള്ള ഡിവൈസുകളിലേക്ക് സുരക്ഷിതമായി ഫയലുകളും മെസ്സേജുകളും അയക്കാൻ അനുവദിക്കുന്ന ഒരു സൗജന്യ ഓപ്പൺ സോഴ്സ് ആപ്പ് ആണ് ലോക്കൽസെൻഡ്‌.", + "ഈ ആപ്പ് ആൻഡ്രോയിഡ്, ഐഒഎസ്, മാക് ഒഎസ്, വിൻഡോസ് , ലിനക്സ് എന്നീ പ്ലാറ്റുഫോമുകളിൽ ലഭ്യമാണ് . എല്ലാവിധ ഡൌൺലോഡ് ഓപ്ഷൻസും ഔദ്യോഗിക ഹോം പേജിൽ കാണാവുന്നതാണ്." + ], + "title": "ലോക്കൽസെൻഡിനെ കുറിച്ച്", + "author": "ലേഖകൻ", + "contributors": "സംഭാവന ചെയ്യുന്നവർ", + "packagers": "സംയോജിപ്പിക്കുന്നവർ", + "translators": "പരിഭാഷകർ" + }, + "aliasGenerator(ignoreMissing, ignoreGpt)": { + "@info": "വിവിധ ദേശത്തു വിവിധ വാക്കുകൾ ഉണ്ടാകാം. അവ ഒരേപോലെ (1:1) തുല്യം ആവണമെന്നില്ല" + }, + "changelogPage": { + "title": "മാറ്റവിവരപട്ടിക" } } diff --git a/app/assets/i18n/ms.json b/app/assets/i18n/ms.json index 9fa939be..fbb47e34 100644 --- a/app/assets/i18n/ms.json +++ b/app/assets/i18n/ms.json @@ -1,5 +1,5 @@ { - "locale": "Bahasa Melayu", + "locale": "Bahasa Inggeris", "appName": "LocalSend", "general": { "accept": "Terima", @@ -11,31 +11,31 @@ "confirm": "Sahkan", "continueStr": "Teruskan", "copy": "Salin", - "copiedToClipboard": "Disalin ke papan keratan", + "copiedToClipboard": "Disalin ke Papan Keratan", "decline": "Tolak", "done": "Selesai", "delete": "Padam", - "edit": "Edit", + "edit": "Sunting", "error": "Ralat", "example": "Contoh", - "files": "Fail", - "finished": "Selesai", + "files": "Fail-fail", + "finished": "Telah selesai", "hide": "Sembunyi", - "off": "Mati", + "off": "Tutup", "offline": "Luar talian", - "on": "Hidup", + "on": "Buka", "online": "Dalam talian", "open": "Buka", "queue": "Baris gilir", - "quickSave": "Simpan Cepat", - "quickSaveFromFavorites": "Simpan Cepat dari \"Kegemaran\"", + "quickSave": "Simpan Pantas", + "quickSaveFromFavorites": "Simpan Pantas untuk \"Kegemaran\"", "renamed": "Dinamakan semula", - "reset": "Set semula", + "reset": "Buat asal perubahan", "restart": "Mula semula", "settings": "Tetapan", "skipped": "Dilangkau", "start": "Mula", - "stop": "Berhenti", + "stop": "Henti", "save": "Simpan", "unchanged": "Tidak berubah", "unknown": "Tidak diketahui", @@ -47,6 +47,11 @@ "ip": "IP:", "port": "Port:", "alias": "Nama peranti:" + }, + "quickSave": { + "favorites": "Kegemaran", + "off": "@:general.off", + "on": "@:general.on" } }, "sendTab": { @@ -103,7 +108,8 @@ "launchAtStartup": "Mula automatik selepas log masuk", "launchMinimized": "Mula automatik: Mula tersembunyi", "showInContextMenu": "Tunjukkan LocalSend dalam menu konteks", - "animations": "Animasi" + "animations": "Animasi", + "saveWindowPlacementWindows": "Simpan kedudukan tetingkap selepas keluar" }, "receive": { "title": "Terima", @@ -134,7 +140,12 @@ "portWarning": "Anda mungkin tidak dapat dikesan oleh peranti lain kerana anda menggunakan port tersuai. (lalai: {defaultPort})", "encryption": "Penyulitan", "multicastGroup": "Multicast", - "multicastGroupWarning": "Anda mungkin tidak dapat dikesan oleh peranti lain kerana anda menggunakan alamat multicast tersuai. (lalai: {defaultMulticast})" + "multicastGroupWarning": "Anda mungkin tidak dapat dikesan oleh peranti lain kerana anda menggunakan alamat multicast tersuai. (lalai: {defaultMulticast})", + "network": "Rangkaian", + "networkOptions": { + "all": "Semua", + "filtered": "Ditapis" + } }, "other": { "title": "Lain-lain", @@ -202,9 +213,10 @@ "saveToGalleryOff": "Dimatikan secara automatik kerana terdapat folder." }, "sendPage": { - "waiting": "Menunggu respons...", + "waiting": "Menunggu respons…", "rejected": "Penerima telah menolak permintaan.", - "busy": "Penerima sibuk dengan permintaan lain." + "busy": "Penerima sibuk dengan permintaan lain.", + "tooManyAttempts": "@:web.tooManyAttempts" }, "progressPage": { "titleSending": "Menghantar fail", @@ -224,12 +236,12 @@ }, "webSharePage": { "title": "Kongsi melalui pautan", - "loading": "Memulakan pelayan...", - "stopping": "Menghentikan pelayan...", - "error": "Ralat berlaku semasa memulakan pelayan.", + "loading": "Memulakan pelayan…", + "stopping": "Menghentikan pelayan…", + "error": "Ralat telah berlaku ketika memulakan pelayan.", "openLink": { "one": "Buka pautan ini dalam pelayar anda:", - "other": "Buka salah satu pautan ini dalam pelayar anda:" + "other": "Buka salah satu daripada pautan ini dalam pelayar anda:" }, "requests": "Permintaan", "noRequests": "Tiada permintaan lagi.", @@ -237,17 +249,19 @@ "autoAccept": "Terima permintaan secara automatik", "requirePin": "Memerlukan PIN", "pinHint": "PIN ialah \"{pin}\"", - "pendingRequests": "Permintaan menunggu: {n}" + "pendingRequests": "Permintaan yang masih belum selesai: {n}", + "encryptionHint": "LocalSend menggunakan sijil yang ditandatangani sendiri. Anda perlu menerimanya di pelayar anda." }, "aboutPage": { - "title": "Mengenai LocalSend", + "title": "Tentang LocalSend", "description": [ - "LocalSend adalah aplikasi percuma dan sumber terbuka yang membolehkan anda berkongsi fail dan mesej dengan selamat dengan peranti berdekatan melalui rangkaian tempatan anda tanpa memerlukan sambungan internet.", - "Aplikasi ini tersedia di Android, iOS, macOS, Windows dan Linux. Anda boleh mencari semua pilihan muat turun di laman web rasmi." + "LocalSend adalah aplikasi percuma dan sumber terbuka yang membolehkan anda berkongsi fail dan mesej secara selamat dan terjamin dengan peranti berdekatan yang berada dalam rangkaian tempatan anda tanpa memerlukan sebarang sambungan internet.", + "Aplikasi ini tersedia di Android, iOS, macOS, Windows dan Linux. Anda boleh mencari semua pilihan untuk memuat turun di laman web rasmi." ], "author": "Pengarang", "contributors": "Penyumbang", - "translators": "Penterjemah" + "translators": "Penterjemah", + "packagers": "Pembungkus" }, "donationPage": { "title": "Derma", @@ -326,7 +340,8 @@ "Tomato" ], "combination": "{fruit} yang {adjective}", - "@combination": "Dalam bahasa Melayu, kata sifat biasanya diletakkan selepas kata nama." + "@combination": "Dalam bahasa Melayu, kata sifat biasanya diletakkan selepas kata nama.", + "@info": "Penempatan berbeza mungkin mempunyai perkataan yang berbeza, dan tidak sepadan 1:1" }, "dialogs": { "addFile": { @@ -424,7 +439,12 @@ "content": "Permintaan fail kini diterima secara automatik. Sila ambil perhatian bahawa semua orang dalam rangkaian tempatan boleh menghantar fail kepada anda." }, "quickSaveFromFavoritesNotice": { - "title": "@:general.quickSaveFromFavorites" + "title": "@:general.quickSaveFromFavorites", + "content": [ + "Permintaan fail kini diterima secara automatik daripada peranti-peranti yang dalam senarai kegemaran anda.", + "Amaran! Pada waktu sekarang, ini tidak terjamin sepenuhnya, kerana penggodam yang mempunyai cap jari mana-mana peranti daripada senarai kegemaran anda boleh menghantar fail kepada anda tanpa sekatan.", + "Walau bagaimanapun, pilihan ini tetap lebih selamat daripada membenarkan semua pengguna dalam rangkaian tempatan menghantar fail kepada anda tanpa sekatan." + ] }, "pin": { "title": "Masukkan PIN" @@ -437,6 +457,10 @@ }, "zoom": { "title": "URL" + }, + "openFile": { + "title": "Buka fail", + "content": "Adakah anda mahu untuk membuka fail yang diterima?" } }, "sanitization": { @@ -446,19 +470,23 @@ "tray": { "open": "@:general.open", "close": "Keluar LocalSend", - "closeWindows": "Keluar" + "closeWindows": "Keluar", + "@info": "Garis Panduan Apple sangat ketat tentang perkataan \"tutup\"." }, "web": { "waiting": "@:sendPage.waiting", "rejected": "Ditolak", "files": "Fail", "fileName": "Nama fail", - "size": "Saiz" + "size": "Saiz", + "enterPin": "Masukkan PIN", + "invalidPin": "PIN Tidak Sah", + "tooManyAttempts": "Terlalu banyak percubaan" }, "assetPicker": { "confirm": "Sahkan", "cancel": "Batal", - "edit": "Edit", + "edit": "Sunting", "gifIndicator": "GIF", "loadFailed": "Gagal dimuat", "original": "Asal", @@ -483,6 +511,14 @@ "sActionSwitchPathLabel": "tukar laluan", "sActionUseCameraHint": "guna kamera", "sNameDurationLabel": "tempoh", - "sUnitAssetCountLabel": "kiraan" + "sUnitAssetCountLabel": "kiraan", + "@info": "Terjemahan untuk alat pemilihan Media untuk Android dan iPhone" + }, + "networkInterfacesPage": { + "info": "Secara lalai, LocalSend menggunakan semua antara muka rangkaian tersedia. Anda boleh memulaukan rangkaian yang tidak diingini. Anda perlu mula semula pelayan untuk mengenakan perubahan.", + "title": "Antara Muka Rangkaian", + "preview": "Pratonton", + "whitelist": "Senarai Putih", + "blacklist": "Senarai Hitam" } } diff --git a/app/assets/i18n/ne.json b/app/assets/i18n/ne.json index e2eca7bb..6eaf7a4d 100644 --- a/app/assets/i18n/ne.json +++ b/app/assets/i18n/ne.json @@ -27,23 +27,24 @@ "open": "खोल्नुहोस्", "queue": "लाम", "quickSave": "छिटो सेव गर्नुहोस्", - "renamed": "पुन: नामाकरण गरियो", - "reset": "परिवर्तनहरू पूर्ववत गर्नुहोस्", - "restart": "पुनः सुरु गर्नुहोस्", + "renamed": "नामाकरण गरियो", + "reset": "फिर्ता लिनुहोस्", + "restart": "पुनः सुरु", "settings": "सेटिङहरू", "skipped": "छोडियो", - "start": "सुरु गर्नुहोस्", + "start": "सुरु", "stop": "रोक", "save": "सेव गर्नुहोस्", "unchanged": "अपरिवर्तित", "unknown": "अज्ञात", "delete": "मेट्नुहोस्", - "noItemInClipboard": "क्लिपबोर्डमा कुनै वस्तुहरू छैनन्।" + "noItemInClipboard": "क्लिपबोर्ड खाली छ।", + "quickSaveFromFavorites": "छिटो मनपर्नेमा राख्नुहोस्" }, "receiveTab": { "title": "प्राप्त गर्नुहोस्", "infoBox": { - "ip": "IP:", + "ip": "आईपी :", "port": "पोर्ट:", "alias": "उपकरणको नाम:" }, diff --git a/app/assets/i18n/nl.json b/app/assets/i18n/nl.json index 42671d7d..017e0c74 100644 --- a/app/assets/i18n/nl.json +++ b/app/assets/i18n/nl.json @@ -103,8 +103,8 @@ "languageOptions": { "system": "Systeem" }, - "saveWindowPlacement": "Afsluiten: vensterindeling behouden", - "saveWindowPlacementWindows": "Afsluiten: vensterindeling behouden", + "saveWindowPlacement": "Vensterpositie na beëindigen opslaan", + "saveWindowPlacementWindows": "Vensterpositie na afsluiten opslaan", "minimizeToTray": "Sluiten: minimaliseren naar systeemvak/menubalk", "launchAtStartup": "Automatisch starten na aanmelden", "launchMinimized": "Automatisch starten: verborgen", @@ -232,6 +232,14 @@ "count": "Bestanden: {curr} / {n}", "size": "Grootte: {curr} / {n}", "speed": "Snelheid: {speed}/s" + }, + "remainingTime": { + "seconds": "{n}:{ss}", + "minutes": "{n}:{ss}", + "hours": "{h}h {m}m", + "days": "{d}d {h}h {m}m", + "@hours": "Gebruik 'h' als afkorting voor uren en 'm' voor minuten", + "@days": "Gebruik 'd' voor dagen, 'h' voor uren en 'm' voor minuten" } }, "webSharePage": { diff --git a/app/assets/i18n/pl.json b/app/assets/i18n/pl.json index cf7cf771..45384948 100644 --- a/app/assets/i18n/pl.json +++ b/app/assets/i18n/pl.json @@ -232,6 +232,14 @@ "count": "Pliki: {curr} / {n}", "size": "Wielkość: {curr} / {n}", "speed": "Prędkość: {speed}/s" + }, + "remainingTime": { + "seconds": "{n}:{ss}", + "minutes": "{n}:{ss}", + "hours": "{h}h {m}m", + "days": "{d}d {h}h {m}m", + "@hours": "Użyj „h” w przypadku skrótu godzin i „m” w przypadku minut", + "@days": "Uży „d” w przypadku dni, „h” w przypadku godzin i „m” w przypadku minut" } }, "webSharePage": { diff --git a/app/assets/i18n/pt-BR.json b/app/assets/i18n/pt-BR.json index 05e61cf6..38946d02 100644 --- a/app/assets/i18n/pt-BR.json +++ b/app/assets/i18n/pt-BR.json @@ -11,30 +11,30 @@ "confirm": "Confirmar", "continueStr": "Continuar", "copy": "Copiar", - "copiedToClipboard": "Copiado para a Área de Transferência", - "decline": "Rejeitar", - "done": "Completo", - "delete": "Excluir", + "copiedToClipboard": "Copiado pra área de transferência", + "decline": "Recusar", + "done": "Pronto", + "delete": "Apagar", "edit": "Editar", "error": "Erro", "example": "Exemplo", "files": "Arquivos", "finished": "Concluído", "hide": "Ocultar", - "off": "Desabilitado", - "offline": "Offline", - "on": "Habilitado", - "online": "Online", + "off": "Desativado", + "offline": "Off-line", + "on": "Ativado", + "online": "On-line", "open": "Abrir", "queue": "Fila", - "quickSave": "Salvamento Rápido", - "quickSaveFromFavorites": "salvar rapidamente dos \"Favoritos\"", + "quickSave": "Salvar rápido", + "quickSaveFromFavorites": "Salvar rápido para \"Favoritos\"", "renamed": "Renomeado", - "reset": "Redefinir", + "reset": "Desfazer alterações", "restart": "Reiniciar", "settings": "Configurações", "skipped": "Pulado", - "start": "Começar", + "start": "Iniciar", "stop": "Parar", "save": "Salvar", "unchanged": "Inalterado", @@ -46,7 +46,7 @@ "infoBox": { "ip": "IP:", "port": "Porta:", - "alias": "Nome:" + "alias": "Nome do dispositivo:" }, "quickSave": { "off": "@:general.off", @@ -70,19 +70,19 @@ "clipboard": "Colar" }, "shareIntentInfo": "Você também pode usar o recurso \"Compartilhar\" do seu dispositivo móvel para selecionar arquivos com mais facilidade.", - "nearbyDevices": "Dispositivos próximos", + "nearbyDevices": "Dispositivos por perto", "thisDevice": "Este dispositivo", "scan": "Procurar dispositivos", "manualSending": "Envio manual", "sendMode": "Modo de envio", "sendModes": { "single": "Único destinatário", - "multiple": "Múltiplos destinatários", - "link": "Compartilhe via link" + "multiple": "Vários destinatários", + "link": "Compartilhar via link" }, "sendModeHelp": "Explicação", - "help": "Por favor, certifique-se de que ambos os dispositivos estejam na mesma rede Wi-Fi.", - "placeItems": "Coloque os itens para compartilhar." + "help": "Certifique-se de que ambos os dispositivos estão na mesma rede Wi-Fi.", + "placeItems": "Insira os itens que quer compartilhar." }, "settingsTab": { "title": "Configurações", @@ -106,32 +106,32 @@ "saveWindowPlacement": "Salvar a posição da janela ao fechar", "saveWindowPlacementWindows": "Salvar posição da janela ao sair", "minimizeToTray": "Minimizar para a bandeja ao fechar", - "launchAtStartup": "Abrir automaticamente após o login", + "launchAtStartup": "Abrir junto com o usuário", "launchMinimized": "Início automático: Abrir minimizado", "showInContextMenu": "Mostrar LocalSend no menu de contexto", "animations": "Animações" }, "receive": { - "title": "Recebimento", + "title": "Recepção", "quickSave": "@:general.quickSave", - "quickSaveFromFavorites": "Salvar rapidamente dos \"Favoritos\"", + "quickSaveFromFavorites": "@:general.quickSaveFromFavorites", "requirePin": "@:webSharePage.requirePin", - "autoFinish": "Concluir Automaticamente", - "destination": "Destino", + "autoFinish": "Concluir automaticamente", + "destination": "Pasta de destino", "downloads": "(Downloads)", - "saveToGallery": "Salvar mídia na Galeria", + "saveToGallery": "Salvar mídia na galeria", "saveToHistory": "Salvar no histórico" }, "send": { - "title": "Enviar", - "shareViaLinkAutoAccept": "Aceitar automaticamente pedidos no modo \"Compartilhar por link\"" + "title": "Envio", + "shareViaLinkAutoAccept": "Aceitar solicitações por link automaticamente" }, "network": { "title": "Rede", "needRestart": "Reinicie o servidor para aplicar as configurações!", "server": "Servidor", - "alias": "Nome", - "deviceType": "Tipo de dispositivo", + "alias": "Nome do dispositivo", + "deviceType": "Tipo do dispositivo", "deviceModel": "Modelo do dispositivo", "port": "Porta", "discoveryTimeout": "Tempo limite de descoberta", @@ -139,84 +139,84 @@ "generateRandomAlias": "Gerar apelido aleatório", "portWarning": "Você pode estar indetectável para outros dispositivos por estar usando uma porta customizada. (Padrão: {defaultPort})", "encryption": "Criptografia", - "multicastGroup": "Multicast", - "multicastGroupWarning": "Você pode estar indetectável para outros dispositivos por estar usando um endereço multicast customizado. (Padrão: {defaultMulticast})", + "multicastGroup": "Endereço de multicast", + "multicastGroupWarning": "Você pode estar indetectável para outros dispositivos por estar usando um endereço de multicast customizado. (Padrão: {defaultMulticast})", "network": "Rede", "networkOptions": { - "all": "Todos", - "filtered": "Filtrado" + "all": "Todas", + "filtered": "Filtradas" } }, "other": { - "title": "Outros", - "support": "Suporte o LocalSend", + "title": "Outras", + "support": "Apoiar o LocalSend", "donate": "Doar", - "privacyPolicy": "Política de Privacidade", - "termsOfUse": "Termos de Uso" + "privacyPolicy": "Política de privacidade", + "termsOfUse": "Termos de uso" }, "advancedSettings": "Configurações avançadas" }, "troubleshootPage": { - "title": "Diagnostique problemas", - "subTitle": "Este aplicativo não está funcionando como esperado? Aqui você pode encontrar soluções comuns.", + "title": "Resolução de problemas", + "subTitle": "Este aplicativo não está funcionando como esperado? Aqui você pode encontrar soluções para problemas comuns.", "solution": "Solução:", "fixButton": "Consertar automaticamente", "firewall": { "symptom": "Este aplicativo pode enviar arquivos para outros dispositivos, mas outros dispositivos não podem enviar arquivos para este dispositivo.", - "solution": "Provavelmente isto se trata de um problema de firewall. Você pode resolver esse problema permitindo conexões recebidas (UDP e TCP) na porta {port}.", - "openFirewall": "Abrir o Firewall" + "solution": "Provavelmente isto se trata de um problema de firewall. Você pode resolver esse problema permitindo conexões (UDP e TCP) recebidas na porta {port}.", + "openFirewall": "Abrir Firewall" }, "noDiscovery": { - "symptom": "Este dispositivo não consegue descobrir outros dispositivos.", - "solution": "Certifique-se de que todos os dispositivos estão na mesma rede Wi-Fi e compartilham as mesmas configurações (porta, endereço multicast, criptografia). Você pode tentar digitar o endereço IP do dispositivo de destino manualmente. Se isto funcionar, considere adicionar este dispositivo aos favoritos, assim ele será descoberto automaticamente no futuro." + "symptom": "Este dispositivo não consegue encontrar outros dispositivos.", + "solution": "Certifique-se de que todos os dispositivos estão na mesma rede Wi-Fi e utilizam as mesmas configurações (porta, endereço de multicast, criptografia). Você pode tentar digitar o endereço IP do outro dispositivo manualmente. Se isto funcionar, considere adicionar este dispositivo aos favoritos, assim ele será descoberto automaticamente no futuro." }, "noConnection": { - "symptom": "Ambos os dispositivos não se detectam nem podem compartilhar arquivos entre si.", - "solution": "O problema existe em ambos os lados? Então você precisa ter certeza de que os dispositivos estão na mesma rede Wi-Fi e possuem a mesma configuração (porta, endereço multicast, criptografia). A rede Wi-Fi pode não permitir a comunicação entre os participantes. Neste caso, esta opção deve ser habilitada no roteador." + "symptom": "Ambos os dispositivos não se encontram nem podem compartilhar arquivos entre si.", + "solution": "O problema acontece em ambos? Então você precisa ter certeza de que os dispositivos estão na mesma rede Wi-Fi e utilizam as mesmas configurações (porta, endereço de multicast, criptografia). A rede Wi-Fi pode não permitir a comunicação entre os participantes devido à isolação de ponto de acesso (AP). Neste caso, esta opção deve ser desativada no roteador." } }, "receiveHistoryPage": { "title": "Histórico", "openFolder": "Abrir pasta", - "deleteHistory": "Excluir histórico", + "deleteHistory": "Apagar histórico", "empty": "O histórico está vazio.", "entryActions": { "open": "Abrir arquivo", "showInFolder": "Mostrar na pasta", "info": "Informações", - "deleteFromHistory": "Remover do histórico" + "deleteFromHistory": "Apagar do histórico" } }, "apkPickerPage": { "title": "Aplicativos (APK)", - "excludeSystemApps": "Ocultar aplicativos do sistema", - "excludeAppsWithoutLaunchIntent": "Ocultar aplicativos não executáveis", - "apps": "{n} Aplicativos" + "excludeSystemApps": "Excluir aplicativos do sistema", + "excludeAppsWithoutLaunchIntent": "Excluir aplicativos não executáveis", + "apps": "{n} aplicativos" }, "selectedFilesPage": { - "deleteAll": "Remover tudo" + "deleteAll": "Apagar tudo" }, "receivePage": { "subTitle": { - "one": "quer enviar um arquivo", - "other": "quer enviar {n} arquivos" + "one": "quer te enviar um arquivo", + "other": "quer te enviar {n} arquivos" }, - "subTitleMessage": "enviou uma mensagem:", - "subTitleLink": "enviou um link:", + "subTitleMessage": "te enviou uma mensagem:", + "subTitleLink": "te enviou um link:", "canceled": "O remetente cancelou a solicitação." }, "receiveOptionsPage": { "title": "Opções", "destination": "@:settingsTab.receive.destination", - "appDirectory": "(pasta LocalSend)", + "appDirectory": "(pasta do LocalSend)", "saveToGallery": "@:settingsTab.receive.saveToGallery", - "saveToGalleryOff": "Opção desligada automaticamente pois uma pasta está sendo transferida." + "saveToGalleryOff": "Desativada automaticamente pois há pastas." }, "sendPage": { "waiting": "Aguardando resposta…", "rejected": "O destinatário rejeitou a solicitação.", "tooManyAttempts": "@:web.tooManyAttempts", - "busy": "O destinatário está ocupado com outra solicitação de transferência." + "busy": "O destinatário está ocupado com outra solicitação." }, "progressPage": { "titleSending": "Enviando arquivos", @@ -225,37 +225,45 @@ "total": { "title": { "sending": "Progresso total ({time})", - "finishedError": "Terminado com erro", + "finishedError": "Concluiu com erro", "canceledSender": "Cancelado pelo remetente", "canceledReceiver": "Cancelado pelo destinatário" }, "count": "Arquivos: {curr} / {n}", "size": "Tamanho: {curr} / {n}", "speed": "Velocidade: {speed}/s" + }, + "remainingTime": { + "seconds": "{n}:{ss}", + "minutes": "{n}:{ss}", + "hours": "{h}h {m}m", + "days": "{d}d {h}h {m}m", + "@hours": "Use 'h' para abreviar horas e 'm' para minutos", + "@days": "Use 'd' para dias, 'h' para horas e 'm' para minutos" } }, "webSharePage": { - "title": "Compartilhe via link", + "title": "Compartilhar via link", "loading": "Iniciando o servidor…", "stopping": "Parando o servidor…", - "error": "Um erro ocorreu enquanto o servidor tentava iniciar.", + "error": "Ocorreu um erro ao iniciar o servidor.", "openLink": { - "one": "Abra este link no navegador:", - "other": "Abra um desses links no navegador:" + "one": "Abra este link no seu navegador:", + "other": "Abra um destes links no seu navegador:" }, "requests": "Solicitações", "noRequests": "Nenhuma solicitação ainda.", "encryption": "@:settingsTab.network.encryption", - "autoAccept": "Aceitar pedidos automaticamente", + "autoAccept": "Aceitar solicitações automaticamente", "requirePin": "Solicitar PIN", "pinHint": "O PIN é \"{pin}\"", - "encryptionHint": "LocalSend utiliza um certificado autoassinado. Você precisa aceitá-lo no navegador.", + "encryptionHint": "O LocalSend utiliza um certificado autoassinado. Você precisa aceitá-lo no seu navegador.", "pendingRequests": "Solicitações pendentes: {n}" }, "aboutPage": { - "title": "Sobre LocalSend", + "title": "Sobre o LocalSend", "description": [ - "LocalSend é um aplicativo gratuito e de código aberto que permite compartilhar arquivos e mensagens de forma segura com dispositivos próximos através da sua rede local, sem a necessidade de uma conexão com a internet.", + "O LocalSend é um aplicativo gratuito, de código aberto, que permite compartilhar arquivos e mensagens com dispositivos próximos através da sua rede local, sem a necessidade de uma conexão à internet.", "Este aplicativo está disponível para Android, iOS, macOS, Windows e Linux. Você pode encontrar todas as opções de download na página oficial." ], "author": "Autor", @@ -264,17 +272,17 @@ "translators": "Tradutores" }, "donationPage": { - "title": "Doar", - "info": "LocalSend é gratuito, de código aberto e sem nenhum anúncio. Se tu curte o app, então considere apoiar o desenvolvimento com uma doação.", + "title": "Doe", + "info": "O LocalSend é gratuito, de código aberto e não tem anúncios. Se tu curte o app, então pense em apoiar o desenvolvimento com uma doação.", "donate": "Doar {amount}", "thanks": "Muito obrigado!", "restore": "Restaurar compra" }, "changelogPage": { - "title": "Histórico de alterações" + "title": "Registro de alterações" }, "aliasGenerator(ignoreMissing, ignoreGpt)": { - "@info": "Idiomas diferentes podem usar palavras diferentes, pode não ser 1:1", + "@info": "Idiomas diferentes podem usar palavras diferentes, pode não corresponder totalmente", "adjectives": [ "Adorável", "Elegante", @@ -347,21 +355,21 @@ }, "addressInput": { "title": "Digite o endereço", - "hashtag": "Hashtag", - "ip": "Endereço IP", - "recentlyUsed": "Recém conectado: " + "hashtag": "Jogo da velha", + "ip": "Endereço de IP", + "recentlyUsed": "Usado recentemente: " }, "cancelSession": { "title": "Cancelar transferência de arquivos", - "content": "Você realmente quer cancelar a transferência de arquivos?" + "content": "Você quer mesmo cancelar a transferência de arquivos?" }, "cannotOpenFile": { "title": "Não foi possível abrir o arquivo", - "content": "Não foi possível abrir \"{file}\". O arquivo foi movido, renomeado ou excluído?" + "content": "Não foi possível abrir \"{file}\". Por acaso, o arquivo foi movido, renomeado ou excluído?" }, "encryptionDisabledNotice": { "title": "Criptografia desativada", - "content": "A comunicação agora ocorre via protocolo HTTP não criptografado. Para usar HTTPS, ative a criptografia novamente." + "content": "A comunicação agora ocorre via protocolo HTTP sem criptografia. Para usar o HTTPS, ative a criptografia novamente." }, "errorDialog": { "title": "@:general.error" @@ -372,15 +380,15 @@ "addFavorite": "Adicionar" }, "favoriteDeleteDialog": { - "title": "Excluir favorito", - "content": "Você realmente deseja excluir \"{name}\" dos favoritos?" + "title": "Apagar dos favoritos", + "content": "Você quer mesmo apagar \"{name}\" dos favoritos?" }, "favoriteEditDialog": { "titleAdd": "Adicionar aos favoritos", - "titleEdit": "Editar", - "name": "Apelido", - "auto": "(auto)", - "ip": "Endereço IP", + "titleEdit": "Configurações", + "name": "Nome do dispositivo", + "auto": "(auto.)", + "ip": "Endereço de IP", "port": "Porta" }, "fileInfo": { @@ -389,7 +397,7 @@ "path": "Caminho:", "size": "Tamanho:", "sender": "Remetente:", - "time": "Data:" + "time": "Horário:" }, "fileNameInput": { "title": "Digite o nome do arquivo", @@ -397,34 +405,34 @@ }, "historyClearDialog": { "title": "Limpar histórico", - "content": "Você realmente deseja excluir todo o histórico?" + "content": "Você quer mesmo apagar todo o histórico?" }, "localNetworkUnauthorized": { "title": "@:dialogs.noPermission.title", - "description": "O LocalSend não consegue encontrar outros dispositivos sem ter a permissão para escanear a rede local. Por favor, conceda esta permissão nas configurações.", + "description": "O LocalSend não consegue encontrar outros dispositivos sem ter a permissão para escanear a rede local. Conceda esta permissão nas configurações.", "gotoSettings": "Configurações" }, "messageInput": { "title": "Digite a mensagem", - "multiline": "Múltiplas linhas" + "multiline": "Várias linhas" }, "noFiles": { "title": "Nenhum arquivo selecionado", - "content": "Por favor, selecione ao menos um arquivo." + "content": "Selecione pelo menos um arquivo." }, "noPermission": { "title": "Sem permissão", "content": "Você não concedeu as permissões necessárias. Por favor, conceda-as nas configurações." }, "notAvailableOnPlatform": { - "title": "Indisponível", - "content": "Essa função está disponível somente no:" + "title": "Não disponível", + "content": "Este recurso só está disponível no:" }, "qr": { - "title": "QR Code" + "title": "Código QR" }, "quickActions": { - "title": "Ações Rápidas", + "title": "Ações rápidas", "counter": "Contador", "prefix": "Prefixo", "padZero": "Preencher com zeros", @@ -433,14 +441,14 @@ }, "quickSaveNotice": { "title": "@:general.quickSave", - "content": "Solicitações de arquivos são aceitas automaticamente. Tenha em mente que qualquer pessoa na rede local pode enviar arquivos para você." + "content": "Agora, as solicitações de arquivos são aceitas automaticamente. Tenha em mente que qualquer pessoa na rede local pode enviar arquivos para você." }, "quickSaveFromFavoritesNotice": { "title": "Salvar rapidamento dos \"Favoritos\"", "content": [ - "Requisições de arquivo agora são aceitas automaticamente de dispositivos da sua lista de favoritos.", - "Atenção! Atualmente, esta opção não é totalmente segura pois um hacker que saiba a identificação dos seus dispositivos favoritos ainda pode te enviar arquivos sem restrições.", - "De qualquer forma, esta opção ainda é mais segura que permitir qualquer dispositivo." + "Agora, as solicitações de arquivos vindas de dispositivos na sua lista de favoritos são aceitas automaticamente.", + "Atenção! Atualmente, esta opção não é totalmente segura pois um hacker que saiba a identificação dos seus dispositivos favoritos pode te enviar arquivos sem restrições.", + "De qualquer forma, esta opção ainda é mais segura que permitir qualquer dispositivo na sua rede local envie arquivos sem restrições." ] }, "pin": { @@ -449,7 +457,7 @@ "sendModeHelp": { "title": "Modos de envio", "single": "Envia arquivos para um destinatário. A seleção será apagada após a conclusão da transferência dos arquivos.", - "multiple": "Envia arquivos para múltiplos destinatários. A seleção não será apagada.", + "multiple": "Envia arquivos para vários destinatários. A seleção não será apagada.", "link": "Os destinatários que não têm o LocalSend instalado podem baixar os arquivos selecionados abrindo o link fornecido no navegador." }, "zoom": { @@ -461,9 +469,9 @@ "invalid": "O nome do arquivo contém caracteres inválidos" }, "tray": { - "@info": "Apple Guidelines are very strict about the 'close' wording.", + "@info": "As diretrizes da Apple são extremamente restritas sobre a nomenclatura do \"fechar\".", "open": "@:general.open", - "close": "Fechar LocalSend", + "close": "Sair do LocalSend", "closeWindows": "Sair" }, "web": { @@ -471,28 +479,28 @@ "enterPin": "Digite o PIN", "invalidPin": "PIN inválido", "tooManyAttempts": "Muitas tentativas", - "rejected": "Conexão Rejeitada", + "rejected": "Recusado", "files": "Arquivos", "fileName": "Nome do arquivo", "size": "Tamanho" }, "assetPicker": { - "@info": "Translations for the Media selection tool for Android and Iphone", + "@info": "Traduções para a ferramenta de seleção de mídia para Android e iPhone", "confirm": "Confirmar", "cancel": "Cancelar", "edit": "Editar", "gifIndicator": "GIF", "loadFailed": "Falha ao carregar", - "original": "Original", - "preview": "Prévia", + "original": "Origem", + "preview": "Pré-visualização", "select": "Selecionar", - "emptyList": "Lista Vazia", - "unSupportedAssetType": "Este tipo de arquivo não é suportado.", - "unableToAccessAll": "Incapaz de acessar todos os arquivos do dispositivo", + "emptyList": "Lista vazia", + "unSupportedAssetType": "Não há suporte para o tipo de arquivo.", + "unableToAccessAll": "Não é possível acessar todos os arquivos do dispositivo", "viewingLimitedAssetsTip": "Somente visualizar arquivos e álbuns acessíveis ao aplicativo.", "changeAccessibleLimitedAssets": "Clique para atualizar os arquivos acessíveis", "accessAllTip": "O aplicativo só pode acessar alguns arquivos no dispositivo. Vá às configurações do sistema e permita que o aplicativo acesse todas as mídias do dispositivo.", - "goToSystemSettings": "Ir para configurações do sistema", + "goToSystemSettings": "Ir pras configurações do sistema", "accessLimitedAssets": "Continuar com acesso limitado", "accessiblePathName": "Arquivos acessíveis", "sTypeAudioLabel": "Áudio", @@ -500,18 +508,18 @@ "sTypeVideoLabel": "Vídeo", "sTypeOtherLabel": "Outras mídias", "sActionPlayHint": "reproduzir", - "sActionPreviewHint": "prévia", + "sActionPreviewHint": "pré-visualizar", "sActionSelectHint": "selecionar", "sActionSwitchPathLabel": "mudar o caminho", - "sActionUseCameraHint": "use a câmera", + "sActionUseCameraHint": "usar a câmera", "sNameDurationLabel": "duração", - "sUnitAssetCountLabel": "Total" + "sUnitAssetCountLabel": "contagem" }, "networkInterfacesPage": { - "whitelist": "Lista branca", - "blacklist": "Lista negra", + "whitelist": "Lista de permissão", + "blacklist": "Lista de bloqueio", "info": "Por padrão, o LocalSend utiliza todas as interfaces de rede disponíveis. Você pode excluir as redes indesejadas aqui. É necessário reiniciar o servidor para aplicar as alterações.", - "preview": "Anterior", + "preview": "Pré-visualização", "title": "Interfaces de rede" } } diff --git a/app/assets/i18n/pt-PT.json b/app/assets/i18n/pt-PT.json index 7aa7d6c6..688e91b3 100644 --- a/app/assets/i18n/pt-PT.json +++ b/app/assets/i18n/pt-PT.json @@ -38,7 +38,8 @@ "save": "Guardar", "unchanged": "Inalterado", "unknown": "Desconhecido", - "noItemInClipboard": "Nenhum item na área de transferência." + "noItemInClipboard": "Nenhum item na área de transferência.", + "quickSaveFromFavorites": "Gravar rapidamente dos \"Favoritos\"" }, "receiveTab": { "title": "Receber", @@ -46,6 +47,11 @@ "ip": "IP:", "port": "Porta:", "alias": "Nome do dispositivo:" + }, + "quickSave": { + "off": "@:general.off", + "favorites": "Favoritos", + "on": "@:general.on" } }, "sendTab": { @@ -75,7 +81,8 @@ }, "sendModeHelp": "Explicação", "help": "Certifique-se de que ambos os dispositivos estejam na mesma rede Wi-Fi.", - "placeItems": "Coloque os itens para partilhar." + "placeItems": "Coloque os itens para partilhar.", + "manualSending": "Envio manual" }, "settingsTab": { "title": "Definições", @@ -100,7 +107,9 @@ "minimizeToTray": "Minimizar para a área de notificação ao fechar", "launchAtStartup": "Abrir automaticamente após iniciar sessão", "launchMinimized": "Início automático: Abrir minimizado", - "animations": "Animações" + "animations": "Animações", + "saveWindowPlacementWindows": "Gravar posição da janela ao sair", + "showInContextMenu": "Mostrar LocalSend no menu de contexto" }, "receive": { "title": "Recepção", @@ -109,7 +118,9 @@ "destination": "Destino", "downloads": "(Descargas)", "saveToGallery": "Guardar na galeria", - "saveToHistory": "Guardar no histórico" + "saveToHistory": "Guardar no histórico", + "quickSaveFromFavorites": "Gravar rapidamente dos \"Favoritos\"", + "requirePin": "@:webSharePage.requirePin" }, "send": { "title": "Enviar", @@ -119,7 +130,7 @@ "title": "Rede", "needRestart": "Reinicie o servidor para aplicar as definições!", "server": "Servidor", - "alias": "Nome", + "alias": "Nome do dispositivo", "deviceType": "Tipo de dispositivo", "deviceModel": "Modelo do dispositivo", "port": "Porta", @@ -127,7 +138,14 @@ "portWarning": "Pode estar indetectável para outros dispositivos por estar a usar uma porta personalizada. (Padrão: {defaultPort})", "encryption": "Encriptação", "multicastGroup": "Multicast", - "multicastGroupWarning": "Pode estar indetectável para outros dispositivos por estar a usar um endereço multicast personalizado. (Padrão: {defaultMulticast})" + "multicastGroupWarning": "Pode estar indetectável para outros dispositivos por estar a usar um endereço multicast personalizado. (Padrão: {defaultMulticast})", + "generateRandomAlias": "Gerar apelido aleatório", + "network": "Rede", + "networkOptions": { + "all": "Todos", + "filtered": "Filtrado" + }, + "useSystemName": "Usar nome do sistema" }, "other": { "title": "Outros", @@ -151,6 +169,10 @@ "noConnection": { "symptom": "Ambos os dispositivos não se detectam nem podem partilhar ficheiros entre si.", "solution": "O problema existe em ambos os lados? Então precisa de ter a certeza de que os dispositivos estão na mesma rede Wi-Fi e possuem a mesma configuração (porta, endereço multicast, encriptação). A rede Wi-Fi pode não permitir a comunicação entre os participantes. Neste caso, esta opção deve ser ativada no router." + }, + "noDiscovery": { + "symptom": "Este dispositivo não consegue descobrir outros dispositivos.", + "solution": "Certifique-se de que todos os dispositivos estão na mesma rede Wi-Fi e partilham as mesmas configurações (porta, endereço multicast, criptografia). Pode tentar digitar o endereço IP do dispositivo de destino manualmente. Se isto funcionar, considere adicionar este dispositivo aos favoritos, assim ele será descoberto automaticamente no futuro." } }, "receiveHistoryPage": { @@ -161,7 +183,8 @@ "entryActions": { "open": "Abrir ficheiro", "info": "Informação", - "deleteFromHistory": "Remover do histórico" + "deleteFromHistory": "Remover do histórico", + "showInFolder": "Mostrar na pasta" } }, "apkPickerPage": { @@ -190,9 +213,10 @@ "saveToGalleryOff": "Opção desligada automaticamente pois uma pasta está a ser transferida." }, "sendPage": { - "waiting": "Aguardar resposta...", + "waiting": "A aguardar resposta…", "rejected": "O destinatário rejeitou o pedido.", - "busy": "O destinatário está ocupado com outro pedido de transferência." + "busy": "O destinatário está ocupado com outro pedido de transferência.", + "tooManyAttempts": "@:web.muitastentativas" }, "progressPage": { "titleSending": "A enviar ficheiros", @@ -208,12 +232,20 @@ "count": "Ficheiros: {curr} / {n}", "size": "Tamanho: {curr} / {n}", "speed": "Velocidade: {speed}/s" + }, + "remainingTime": { + "seconds": "{n}:{ss}", + "minutes": "{n}:{ss}", + "hours": "{h}h {m}m", + "days": "{d}d {h}h {m}m", + "@hours": "Usar 'h' e 'm' para abreviar as palavras horas e minutos", + "@days": "Usar 'd' para dias, 'h' para horas e 'm' para minutos" } }, "webSharePage": { "title": "Partilhe via link", - "loading": "A iniciar o servidor...", - "stopping": "A parar o servidor...", + "loading": "A iniciar o servidor…", + "stopping": "A parar o servidor…", "error": "Ocorreu um erro enquanto o servidor tentava iniciar.", "openLink": { "one": "Abrir este link no navegador:", @@ -224,7 +256,9 @@ "encryption": "@:settingsTab.network.encryption", "autoAccept": "Aceitar pedidos automaticamente", "encryptionHint": "O LocalSend utiliza um certificado assinado automaticamente. Precisa de aceitá-lo no navegador.", - "pendingRequests": "Pedidos pendentes: {n}" + "pendingRequests": "Pedidos pendentes: {n}", + "requirePin": "Solicitar PIN", + "pinHint": "O PIN é \"{pin}\"" }, "aboutPage": { "title": "Acerca do LocalSend", @@ -234,11 +268,12 @@ ], "author": "Autor", "contributors": "Contribuidores", - "translators": "Tradutores" + "translators": "Tradutores", + "packagers": "Empacotadores" }, "donationPage": { "title": "Doar", - "info": "O LocalSend é um software gratuito, de código aberto e sem qualquer anúncio. Se gosta da aplicação, então considere apoiar o desenvolvimento com um donativo!", + "info": "O LocalSend é um software gratuito, de código aberto e sem qualquer anúncio. Se gosta da aplicação, considere apoiar o desenvolvimento com um donativo.", "donate": "Doar {amount}", "thanks": "Muito obrigado!", "restore": "Restaurar compra" @@ -247,7 +282,7 @@ "title": "Histórico de alterações" }, "aliasGenerator(ignoreMissing, ignoreGpt)": { - "@info": "Different locales may have different words, it may not match 1:1", + "@info": "Idiomas diferentes podem ter palavras divergentes, estas podem não corresponder 1:1", "adjectives": [ "Adorável", "Lindo", @@ -350,7 +385,7 @@ }, "favoriteDialog": { "title": "Favoritos", - "noFavorites": "Ainda sem favoritos :(", + "noFavorites": "Ainda não tem dispositivos favoritos.", "addFavorite": "Adicionar" }, "favoriteDeleteDialog": { @@ -360,7 +395,7 @@ "favoriteEditDialog": { "titleAdd": "Adicionar aos favoritos", "titleEdit": "Editar", - "name": "Apelido", + "name": "Nome do dispositivo", "auto": "(auto)", "ip": "Endereço IP", "port": "Porta" @@ -400,7 +435,7 @@ }, "notAvailableOnPlatform": { "title": "Indisponível", - "content": "Esta função está disponível apenas no: " + "content": "Esta funcionalidade só está disponível no:" }, "qr": { "title": "QR Code" @@ -425,6 +460,21 @@ }, "zoom": { "title": "URL" + }, + "quickSaveFromFavoritesNotice": { + "content": [ + "Requisições de ficheiro agora são aceitas automaticamente de dispositivos da sua lista de favoritos.", + "Atenção! Atualmente, esta opção não é totalmente segura pois um hacker que saiba a identificação dos seus dispositivos favoritos ainda pode te enviar ficheiros sem restrições.", + "De qualquer forma, esta opção ainda é mais segura que permitir qualquer dispositivo." + ], + "title": "Gravar rapidamento dos \"Favoritos\"" + }, + "openFile": { + "title": "Abrir ficheiro", + "content": "Quer abrir o ficheiro recebido?" + }, + "pin": { + "title": "Digite o PIN" } }, "sanitization": { @@ -434,14 +484,18 @@ "tray": { "@info": "Apple Guidelines are very strict about the 'close' wording.", "open": "@:general.open", - "close": "Fechar o LocalSend" + "close": "Fechar o LocalSend", + "closeWindows": "Sair" }, "web": { "waiting": "@:sendPage.waiting", "rejected": "Ligação rejeitada", "files": "Ficheiros", "fileName": "Nome do ficheiro", - "size": "Tamanho" + "size": "Tamanho", + "enterPin": "Digite o PIN", + "invalidPin": "PIN inválido", + "tooManyAttempts": "Muitas tentativas" }, "assetPicker": { "@info": "Translations for the Media selection tool for Android and Iphone", @@ -473,5 +527,12 @@ "sActionUseCameraHint": "use a câmara", "sNameDurationLabel": "duração", "sUnitAssetCountLabel": "total" + }, + "networkInterfacesPage": { + "title": "Interfaces de rede", + "info": "Por padrão, o LocalSend utiliza todas as interfaces de rede disponíveis. Pode excluir as redes indesejadas aqui. É necessário reiniciar o servidor para aplicar as alterações.", + "preview": "Anterior", + "whitelist": "Lista branca", + "blacklist": "Lista negra" } } diff --git a/app/assets/i18n/ru.json b/app/assets/i18n/ru.json index e2b183a8..32bed94f 100644 --- a/app/assets/i18n/ru.json +++ b/app/assets/i18n/ru.json @@ -232,6 +232,14 @@ "count": "Файлов: {curr} / {n}", "size": "Размер: {curr} / {n}", "speed": "Скорость: {speed}/s" + }, + "remainingTime": { + "seconds": "{n}:{ss}", + "minutes": "{n}:{ss}", + "hours": "{h}ч {m}мин", + "days": "{d}д {h}ч {m}мин", + "@hours": "Используйте \"h\" для обозначения часов, а \"m\" для минут", + "@days": "Используйте \"d\" для дней, \"h\" для часов и \"m\" для минут" } }, "webSharePage": { diff --git a/app/assets/i18n/si.json b/app/assets/i18n/si.json index d815347c..e806f6c1 100644 --- a/app/assets/i18n/si.json +++ b/app/assets/i18n/si.json @@ -140,7 +140,12 @@ "portWarning": "ඔබ custom port එකක් භාවිතා කරන්නේ නම්, වෙනත් උපාංග වලට ඔබව හඳුනා ගත නොහැක. (default: {defaultPort})", "encryption": "කේතනය", "multicastGroup": "Multicast ලිපිනය", - "multicastGroupWarning": "ඔබ custom multicast ලිපිනයක් භාවිතා කරන්නේ නම්, වෙනත් උපාංග වලට ඔබව හඳුනා ගත නොහැක. (default: {defaultMulticast})" + "multicastGroupWarning": "ඔබ custom multicast ලිපිනයක් භාවිතා කරන්නේ නම්, වෙනත් උපාංග වලට ඔබව හඳුනා ගත නොහැක. (default: {defaultMulticast})", + "network": "ජාලය", + "networkOptions": { + "all": "සියල්ල", + "filtered": "වර්ග කළ" + } }, "other": { "title": "වෙනත්", @@ -441,5 +446,12 @@ "sActionUseCameraHint": "කැමරාව භාවිතා කරන්න", "sNameDurationLabel": "කාලසීමාව", "sUnitAssetCountLabel": "ගණන" + }, + "networkInterfacesPage": { + "info": "සාමාන්‍යයෙන් LocalSend ඔබගේ පවතින සියලු ජාල මුහුණත් භාවිතා කරයි. ඔබට අනවශ්‍ය මුහුණතක් වේ නම් එය මෙතනින් ඉවත් කළ හැක. ඔබ සිදු කරන වෙනස්කම් ක්‍රියාත්මක වීමට නම් server එක restart කළ යුතුය.", + "title": "ජාල අතුරුමුහුණත්", + "preview": "පෙනෙන අයුරු", + "whitelist": "අවසර ලත් ලැයිස්තුව", + "blacklist": "අවහිර කල ලැයිස්තුව" } } diff --git a/app/assets/i18n/sk.json b/app/assets/i18n/sk.json index 969cb46c..1a9d382a 100644 --- a/app/assets/i18n/sk.json +++ b/app/assets/i18n/sk.json @@ -232,6 +232,14 @@ "count": "Súbory: {curr} / {n}", "size": "Veľkosť: {curr} / {n}", "speed": "Rýchlosť: {speed}/s" + }, + "remainingTime": { + "seconds": "{n}:{ss}", + "minutes": "{n}:{ss}", + "hours": "{h}h {m}m", + "days": "{d}d {h}h {m}m", + "@hours": "Použiť „h“ pre skratku hodín a „m“ pre minúty", + "@days": "Použiť „d“ pre dni, „h“ pre hodiny a „m“ pre minúty" } }, "webSharePage": { diff --git a/app/assets/i18n/sv.json b/app/assets/i18n/sv.json index 497b361e..c44d756f 100644 --- a/app/assets/i18n/sv.json +++ b/app/assets/i18n/sv.json @@ -232,6 +232,14 @@ "count": "Filer: {curr} / {n}", "size": "Storlek: {curr} / {n}", "speed": "Hastighet: {speed}/s" + }, + "remainingTime": { + "seconds": "{n}:{ss}", + "minutes": "{n}:{ss}", + "hours": "{h}h {m}m", + "days": "{d}d {h}h {m}m", + "@hours": "Använd \"h\" som förkortning för timmar och \"m\" för minuter", + "@days": "Använd \"d\" för dagar, \"h\" för timmar och \"m\" för minuter" } }, "webSharePage": { diff --git a/app/assets/i18n/ta.json b/app/assets/i18n/ta.json index 43be3aa4..17760cb6 100644 --- a/app/assets/i18n/ta.json +++ b/app/assets/i18n/ta.json @@ -39,12 +39,12 @@ "save": "சேமி", "unchanged": "மாறாது", "unknown": "தெரியவில்லை", - "noItemInClipboard": "கிளிப்போர்டில் உருப்படிகள் இல்லை" + "noItemInClipboard": "கிளிப்போர்டில் உருப்படிகள் இல்லை." }, "receiveTab": { "title": "பெறு", "infoBox": { - "ip": "இணைய நெறிமுறை:", + "ip": "இணைய முகவரி:", "port": "போர்ட்:", "alias": "சாதனத்தின் பெயர்:" }, @@ -359,7 +359,7 @@ "title": "முகவரியை உள்ளிடவும்", "hashtag": "ஹாஷ்டேக்", "ip": "IP முகவரி", - "recentlyUsed": "சமீபத்தில் பயன்படுத்தப்பட்டது:" + "recentlyUsed": "சமீபத்தில் பயன்படுத்தப்பட்டது: " }, "cancelSession": { "title": "கோப்புகள் பரிமாற்றத்தை ரத்து செய்யவும்", diff --git a/app/assets/i18n/th.json b/app/assets/i18n/th.json index eabb8853..afa52cd2 100644 --- a/app/assets/i18n/th.json +++ b/app/assets/i18n/th.json @@ -29,16 +29,17 @@ "queue": "ลำดับคิว", "quickSave": "บันทึกด่วน", "renamed": "เปลี่ยนชื่อแล้ว", - "reset": "รีเซ็ต", + "reset": "เลิกทำการเปลี่ยนแปลง", "restart": "เริ่มต้นใหม่", - "settings": "การตั้งค่า", + "settings": "ตั้งค่า", "skipped": "ข้ามไฟล์", "start": "เริ่ม", "stop": "หยุด", "save": "บันทึก", "unchanged": "ไม่เปลี่ยนแปลง", "unknown": "ไม่รู้จัก", - "noItemInClipboard": "ไม่มีรายการใดในคลิปบอร์ด" + "noItemInClipboard": "ไม่มีรายการใดในคลิปบอร์ด", + "quickSaveFromFavorites": "เซฟด่วน สำหรับ \"รายการโปรด\"" }, "receiveTab": { "title": "รับ", @@ -46,6 +47,11 @@ "ip": "ไอพี:", "port": "พอร์ต:", "alias": "ชื่ออุปกรณ์:" + }, + "quickSave": { + "favorites": "รายการโปรด", + "off": "บันทึกอย่างรวดเร็ว", + "on": "@:general.on" } }, "sendTab": { @@ -75,7 +81,8 @@ }, "sendModeHelp": "คำอธิบาย", "help": "โปรดตรวจสอบให้แน่ใจว่าอุปกรณ์เป้าหมายเชื่อมต่ออยู่ภายในเครือข่าย WiFi เดียวกันแล้ว", - "placeItems": "วางไฟล์ที่ต้องการแชร์" + "placeItems": "วางไฟล์ที่ต้องการแชร์", + "manualSending": "ส่งด้วยตัวเอง" }, "settingsTab": { "title": "การตั้งค่า", @@ -101,7 +108,8 @@ "launchAtStartup": "เริ่มอัตโนมัติหลังจากเข้าสู่ระบบ", "launchMinimized": "เริ่มอัตโนมัติ: ซ่อนโปรแกรมหลังจากเริ่ม", "showInContextMenu": "แสดง LocalSend ในเมนูคลิกขวา", - "animations": "ภาพเคลื่อนไหว" + "animations": "ภาพเคลื่อนไหว", + "saveWindowPlacementWindows": "บันทึกตำแหน่งหน้าต่างหลังจากออก" }, "receive": { "title": "รับ", @@ -111,7 +119,8 @@ "destination": "ปลายทาง", "downloads": "(ดาวน์โหลด)", "saveToGallery": "บันทึกมีเดียลงในแกลอรี่", - "saveToHistory": "บันทึกลงในประวัติย้อนหลัง" + "saveToHistory": "บันทึกลงในประวัติย้อนหลัง", + "quickSaveFromFavorites": "บันทึกอย่างรวดเร็วจากรายการโปรด" }, "send": { "title": "ส่ง", @@ -129,7 +138,14 @@ "portWarning": "อุปกรณ์เครื่องอื่นอาจจะไม่สามารถค้นหาอุปกรณ์เครื่องนี้เจอในเครื่อข่ายได้เนื่องจากคุณแก้ไขพอร์ตเป็นหมายเลขอื่น (default: {defaultPort})", "encryption": "การเข้ารหัส", "multicastGroup": "มัลติคาสต์", - "multicastGroupWarning": "อุปกรณ์เครื่องอื่นอาจจะไม่สามารถค้นหาอุปกรณ์เครื่องนี้เจอในเครื่อข่ายได้เนื่องจากคุณกำหนดที่อยู่มัลติคาสต์ใหม่ด้วยตนเอง (default: {defaultMulticast})" + "multicastGroupWarning": "อุปกรณ์เครื่องอื่นอาจจะไม่สามารถค้นหาอุปกรณ์เครื่องนี้เจอในเครื่อข่ายได้เนื่องจากคุณกำหนดที่อยู่มัลติคาสต์ใหม่ด้วยตนเอง (default: {defaultMulticast})", + "network": "เครือข่าย", + "networkOptions": { + "all": "ทั้งหมด", + "filtered": "ตัวกรอง" + }, + "useSystemName": "ใช้ชื่อในระบบ", + "generateRandomAlias": "สุ่มนามแฝง" }, "other": { "title": "อื่นๆ", @@ -436,6 +452,18 @@ }, "zoom": { "title": "URL" + }, + "quickSaveFromFavoritesNotice": { + "content": [ + "คำขอไฟล์ได้รับการยอมรับโดยอัตโนมัติจากอุปกรณ์ในรายการโปรดของคุณแล้ว", + "คำเตือน! ในขณะนี้ระบบยังไม่ปลอดภัยอย่างสมบูรณ์ เนื่องจากแฮกเกอร์ที่มีลายนิ้วมือดิจิทัลของอุปกรณ์ใดๆ จากรายการโปรดของคุณสามารถส่งไฟล์ถึงคุณได้โดยไม่มีข้อจำกัด", + "อย่างไรก็ตาม ตัวเลือกนี้ยังปลอดภัยกว่าการอนุญาตให้ผู้ใช้ทั้งหมดบนเครือข่ายท้องถิ่นส่งไฟล์ถึงคุณโดยไม่มีข้อจำกัด" + ], + "title": "บันทึกอย่างรวดเร็วจากรายการโปรด" + }, + "openFile": { + "title": "เปิดไฟล์", + "content": "ต้องการเปิดไฟล์ที่ได้รับหรือไม่?" } }, "sanitization": { @@ -445,7 +473,8 @@ "tray": { "@info": "หลักเกณฑ์ของ Apple นั้นเข้มงวดมากเกี่ยวกับคำว่า 'ปิด' แอป", "open": "@:general.open", - "close": "ออกจากแอป LocalSend" + "close": "ออกจากแอป LocalSend", + "closeWindows": "ออก" }, "web": { "waiting": "@:sendPage.waiting", @@ -481,11 +510,18 @@ "sTypeVideoLabel": "วิดีโอ", "sTypeOtherLabel": "สื่ออื่นๆ", "sActionPlayHint": "เล่น", - "sActionPreviewHint": "ตัวอย่าง", + "sActionPreviewHint": "ดูตัวอย่าง", "sActionSelectHint": "เลือก", - "sActionSwitchPathLabel": "เปลี่ยนเส้นทางที่อยู่ไฟล์", + "sActionSwitchPathLabel": "เปลี่ยนที่เก็บไฟล์", "sActionUseCameraHint": "ใช้กล้อง", "sNameDurationLabel": "ความยาว", "sUnitAssetCountLabel": "จำนวน" + }, + "networkInterfacesPage": { + "title": "อินเทอร์เฟซเครือข่าย", + "info": "ตามค่าเริ่มต้น LocalSend จะใช้อินเทอร์เฟซเครือข่ายที่มีอยู่ทั้งหมด คุณสามารถยกเว้นเครือข่ายที่ไม่ต้องการได้ที่นี่ คุณต้องรีสตาร์ทเซิร์ฟเวอร์เพื่อใช้การเปลี่ยนแปลง", + "whitelist": "ไวท์ลิสต์", + "blacklist": "บัญชีดำ", + "preview": "ดูตัวอย่าง" } } diff --git a/app/assets/i18n/tr.json b/app/assets/i18n/tr.json index 3c553c94..f53493d7 100644 --- a/app/assets/i18n/tr.json +++ b/app/assets/i18n/tr.json @@ -49,9 +49,9 @@ "alias": "Takma isminiz:" }, "quickSave": { - "off": "@:general.off", + "off": "@:genel.kapalı", "favorites": "Favoriler", - "on": "@:general.on" + "on": "@:genel.açık" } }, "sendTab": { @@ -119,7 +119,8 @@ "destination": "Hedef klasör", "downloads": "(İndirilenler)", "saveToGallery": "Medyayı galeriye kaydet", - "saveToHistory": "Geçmişe kaydet" + "saveToHistory": "Geçmişe kaydet", + "quickSaveFromFavorites": "@:genel.FavorilerdenHızlıKaydet" }, "send": { "title": "Gönder", @@ -140,7 +141,8 @@ "multicastGroupWarning": "Özel çoklu yayın adresini kullandığınız için diğer cihazlar tarafından algılanamayabilirsiniz.(varsayılan: {defaultMulticast})", "network": "Ağ", "networkOptions": { - "all": "Tümü" + "all": "Tümü", + "filtered": "Filtrelenmiş" }, "useSystemName": "Sistem adını kullan", "generateRandomAlias": "Rastgele takma ad oluştur" @@ -230,6 +232,14 @@ "count": "Dosyalar: {curr} / {n}", "size": "Boyut: {curr} / {n}", "speed": "Hız: {speed}/s" + }, + "remainingTime": { + "seconds": "{n}:{ss}", + "@days": "Günler için 'g', saatler için 's' ve dakikalar için 'd' kullanın", + "@hours": "Saat kısaltması için 's', dakika kısaltması için 'd' kullanın", + "minutes": "{n}:{ss}", + "hours": "{h}s {m}d", + "days": "{d}g {h}s {m}d" } }, "webSharePage": { @@ -384,6 +394,14 @@ "openFile": { "title": "Dosya Aç", "content": "Alınan dosyayı açmak istiyor musunuz?" + }, + "quickSaveFromFavoritesNotice": { + "content": [ + "Favoriler listenizdeki cihazların paylaşım istekleri otomatik olarak kabul edilecektir.", + "Uyarı! Şu an, bu tamamen güvenli değildir çünkü favoriler listenizdeki herhangi bir cihazın parmak izine sahip olan hackerlar sınırlama olmadan size dosyalar gönderebilir.", + "Ancak, bu seçenek yinede ağdaki tüm kullanıcıların size sınırlandırma olmadan dosya göndermesine izin vermekten daha güvenlidir." + ], + "title": "@:genel.FavorilerdenHızlıKaydet" } }, "sanitization": { @@ -441,6 +459,7 @@ "title": "Ağ Arayüzleri", "preview": "Önizle", "whitelist": "Beyaz liste", - "blacklist": "Kara liste" + "blacklist": "Kara liste", + "info": "Varsayılan olarak, LocalSend mevcut olan tüm ağları kullanır. Burada istenmeyen ağları engelleyebilirsiniz. Değişikliklerin uygulanması için sunucuyu yeniden başlatmanız gerekir." } } diff --git a/app/assets/i18n/uk.json b/app/assets/i18n/uk.json index 9a429ebe..29d8c3b0 100644 --- a/app/assets/i18n/uk.json +++ b/app/assets/i18n/uk.json @@ -19,7 +19,7 @@ "error": "Помилка", "example": "Приклад", "files": "Файли", - "finished": "Виконано", + "finished": "Завершено", "hide": "Приховати", "off": "Вимкнено", "offline": "Не в мережі", @@ -232,6 +232,14 @@ "count": "Файлів: {curr} / {n}", "size": "Розмір: {curr} / {n}", "speed": "Швидкість: {speed}/s" + }, + "remainingTime": { + "seconds": "{n}:{ss}", + "minutes": "{n}:{ss}", + "hours": "{h}h {m}m", + "days": "{d}d {h}h {m}m", + "@hours": "Використовуйте «h» як скорочення для годин і «m» для хвилин", + "@days": "Використовуйте «d» для днів, «h» для годин і «m» для хвилин" } }, "webSharePage": { diff --git a/app/assets/i18n/vi.json b/app/assets/i18n/vi.json index e4bcc77d..58462fe3 100644 --- a/app/assets/i18n/vi.json +++ b/app/assets/i18n/vi.json @@ -1,5 +1,5 @@ { - "locale": "Tiếng Việt", + "locale": "Tiếng Anh", "appName": "LocalSend", "general": { "accept": "Đồng ý", @@ -39,7 +39,7 @@ "save": "Lưu", "unchanged": "Chưa thay đổi", "unknown": "Không rõ", - "noItemInClipboard": "Không có gì trong bộ nhớ tạm" + "noItemInClipboard": "Không có gì trong bộ nhớ tạm." }, "receiveTab": { "title": "Nhận", @@ -140,7 +140,12 @@ "portWarning": "Các thiết bị khác có thể không nhận diện được thiết bị của bạn, vì bạn đang dùng port tuỳ chỉnh. (mặc định: {defaultPort})", "encryption": "Mã hoá", "multicastGroup": "Đa phương tiện", - "multicastGroupWarning": "Các thiết bị khác có thể không nhận diện được thiết bị của bạn, vì bạn đang dùng địa chỉ multicast tuỳ chỉnh. (mặc định: {defaultMulticast})" + "multicastGroupWarning": "Các thiết bị khác có thể không nhận diện được thiết bị của bạn, vì bạn đang dùng địa chỉ multicast tuỳ chỉnh. (mặc định: {defaultMulticast})", + "networkOptions": { + "all": "Tất cả", + "filtered": "Đã lọc" + }, + "network": "Giao diện mạng" }, "other": { "title": "Khác", @@ -208,7 +213,7 @@ "saveToGalleryOff": "Đã tự động tắt vì là thư mục." }, "sendPage": { - "waiting": "Đang chờ phản hồi...", + "waiting": "Đang chờ phản hồi…", "rejected": "Người nhận đã từ chối yêu cầu.", "tooManyAttempts": "@:web.tooManyAttempts", "busy": "Người nhận đang bận xử lý một yêu cầu khác." @@ -231,8 +236,8 @@ }, "webSharePage": { "title": "Chia sẻ qua liên kết", - "loading": "Đang khởi tạo server...", - "stopping": "Đang dừng server...", + "loading": "Đang khởi tạo server…", + "stopping": "Đang dừng server…", "error": "Một lỗi đã xảy ra khi khởi tạo server.", "openLink": { "one": "Mở liên kết trong trình duyệt:", @@ -255,7 +260,7 @@ ], "author": "Tác giả", "contributors": "Người đóng góp", - "packagers": "Công cụ đóng gói", + "packagers": "Người đóng gói", "translators": "Người dịch" }, "donationPage": { @@ -266,7 +271,7 @@ "restore": "Khôi phục lịch sử ủng hộ" }, "changelogPage": { - "title": "Changelog" + "title": "Lịch sử thay đổi" }, "aliasGenerator(ignoreMissing, ignoreGpt)": { "@info": "Inherits from the English version" @@ -441,5 +446,12 @@ "sActionUseCameraHint": "dùng camera", "sNameDurationLabel": "thời lượng", "sUnitAssetCountLabel": "đếm" + }, + "networkInterfacesPage": { + "info": "LocalSend mặc định sử dụng tất cả các giao diện mạng có sẵn. Bạn có thể loại trừ các mạng không mong muốn tại đây. Bạn cần khởi động lại server để áp dụng các thay đổi.", + "title": "Card mạng", + "preview": "Xem trước", + "whitelist": "Cho phép", + "blacklist": "Chặn" } } diff --git a/app/assets/i18n/zh-CN.json b/app/assets/i18n/zh-CN.json index 8f30157f..083ced49 100644 --- a/app/assets/i18n/zh-CN.json +++ b/app/assets/i18n/zh-CN.json @@ -232,6 +232,14 @@ "count": "文件:{curr} / {n}", "size": "大小:{curr} / {n}", "speed": "速度:{speed}/s" + }, + "remainingTime": { + "hours": "{h}h {m}m", + "days": "{d}d {h}h {m}m", + "@hours": "使用'h'作为小时缩写,使用'm'作为分钟缩写", + "@days": "使用'd'作为天缩写,使用'h'作为小时缩写,使用'm'作为分钟缩写", + "seconds": "{n}:{ss}", + "minutes": "{n}:{ss}" } }, "webSharePage": { diff --git a/app/assets/i18n/zh-HK.json b/app/assets/i18n/zh-HK.json index cda98e99..9c6b9413 100644 --- a/app/assets/i18n/zh-HK.json +++ b/app/assets/i18n/zh-HK.json @@ -39,7 +39,7 @@ "save": "儲存", "unchanged": "冇改過", "unknown": "未知", - "noItemInClipboard": "剪貼簿冇嘢" + "noItemInClipboard": "剪貼簿冇嘢." }, "receiveTab": { "title": "@:settingsTab.receive.title", @@ -82,7 +82,7 @@ }, "sendModeHelp": "説明", "help": "請確保目標裝置駁緊同一個 Wi‑Fi 網路。", - "placeItems": "將要分享嘅檔案拉過嚟呢度" + "placeItems": "將要分享嘅檔案拉過嚟呢度." }, "settingsTab": { "title": "@:general.settings", @@ -129,7 +129,7 @@ }, "network": { "title": "網路", - "needRestart": "熄咗個 server 再開過,設定先會生效", + "needRestart": "熄咗個 server 再開過,設定先會生效!", "server": "Server", "alias": "名", "deviceType": "裝置類型", @@ -141,7 +141,12 @@ "portWarning": "改 port 嘅話其他裝置有機會偵測唔到你。(預設:{defaultPort})", "encryption": "加密傳送", "multicastGroup": "多播 IP 地址", - "multicastGroupWarning": "用自訂多播地址嘅話其他裝置有機會偵測唔到你。(預設:{defaultMulticast})" + "multicastGroupWarning": "用自訂多播地址嘅話其他裝置有機會偵測唔到你。(預設:{defaultMulticast})", + "network": "網絡", + "networkOptions": { + "all": "全部", + "filtered": "已過濾" + } }, "other": { "title": "其他", @@ -175,7 +180,7 @@ "title": "歷史記錄", "openFolder": "開啟資料夾", "deleteHistory": "清除記錄", - "empty": "得個吉噃 :(", + "empty": "得個吉噃 :(.", "entryActions": { "open": "@:dialogs.openFile.title", "showInFolder": "喺檔案瀏覽器顯示", @@ -194,8 +199,8 @@ }, "receivePage": { "subTitle": { - "one": "想 send 1 個檔案畀你。", - "other": "想 send {n} 個檔案畀你。" + "one": "想 send 1 個檔案畀你", + "other": "想 send {n} 個檔案畀你" }, "subTitleMessage": "send 咗條訊息畀你:", "subTitleLink": "send 咗條 link 畀你:", @@ -206,7 +211,7 @@ "destination": "@:settingsTab.receive.destination", "appDirectory": "(LocalSend 資料夾)", "saveToGallery": "@:settingsTab.receive.saveToGallery", - "saveToGalleryOff": "因為有資料夾存在而自動閂咗" + "saveToGalleryOff": "因為有資料夾存在而自動閂咗." }, "sendPage": { "waiting": "等緊回應……", @@ -215,8 +220,8 @@ "busy": "對方忙緊另一個請求。" }, "progressPage": { - "titleSending": "Send 緊……", - "titleReceiving": "接收緊……", + "titleSending": "正在傳送檔案", + "titleReceiving": "正在接收檔案", "savedToGallery": "成功 save 咗落相簿", "total": { "title": { @@ -240,7 +245,7 @@ "other": "喺瀏覽器開啟以下任何一個連結:" }, "requests": "請求", - "noRequests": "未有", + "noRequests": "未有請求.", "encryption": "@:settingsTab.network.encryption", "autoAccept": "自動接受請求", "requirePin": "需要密碼", @@ -261,7 +266,7 @@ }, "donationPage": { "title": "@:settingsTab.other.donate", - "info": "LocalSend 唔單只免費、開源,仲係冇廣告添㗎!如果你鍾意呢個 app,不妨捐款贊助我哋開發?", + "info": "LocalSend 唔單只免費、開源,仲係冇廣告添㗎!如果你鍾意呢個 app,不妨捐款贊助我哋開發.", "donate": "捐 {amount}", "thanks": "多謝支持!", "restore": "還原 app 內購買" @@ -275,7 +280,7 @@ "dialogs": { "addFile": { "title": "將檔案加至選擇", - "content": "揀選要加入嘅檔案" + "content": "您想新增什麼檔案?" }, "openFile": { "title": "開啟檔案", @@ -285,7 +290,7 @@ "title": "輸入地址", "hashtag": "Hashtag", "ip": "IP 地址", - "recentlyUsed": "輸入記錄:" + "recentlyUsed": "輸入記錄: " }, "cancelSession": { "title": "取消檔案傳輸", @@ -304,7 +309,7 @@ }, "favoriteDialog": { "title": "收藏", - "noFavorites": "未收藏任何裝置", + "noFavorites": "未收藏任何裝置.", "addFavorite": "@:general.add" }, "favoriteDeleteDialog": { @@ -393,8 +398,8 @@ } }, "sanitization": { - "empty": "檔案名稱唔可以係吉嘅。", - "invalid": "檔案名稱唔可以包括唔用得嘅字元。" + "empty": "檔案名稱唔可以係吉嘅", + "invalid": "檔案名稱唔可以包括唔用得嘅字元" }, "tray": { "@info": "Apple Guidelines are very strict about the 'close' wording.", @@ -405,8 +410,8 @@ "web": { "waiting": "@:sendPage.waiting", "enterPin": "輸入密碼", - "invalidPin": "密碼無效。", - "tooManyAttempts": "嘗試次數過多,請稍後再試。", + "invalidPin": "密碼無效", + "tooManyAttempts": "嘗試次數過多,請稍後再試", "rejected": "已遭對方拒絕", "files": "@:general.files", "fileName": "檔案名稱", @@ -442,5 +447,12 @@ "sActionUseCameraHint": "影相", "sNameDurationLabel": "持續時間", "sUnitAssetCountLabel": "數量" + }, + "networkInterfacesPage": { + "info": "LocalSend 預設使用所有可用的網路介面。您可以在這裡排除不需要的網路。您需要重新啟動伺服器才能套用變更。", + "title": "網路介面", + "preview": "預覽", + "whitelist": "白名單", + "blacklist": "黑名單" } } diff --git a/app/assets/i18n/zh-TW.json b/app/assets/i18n/zh-TW.json index 4bb5b242..a1f9f445 100644 --- a/app/assets/i18n/zh-TW.json +++ b/app/assets/i18n/zh-TW.json @@ -46,7 +46,7 @@ "infoBox": { "ip": "IP:", "port": "通訊埠:", - "alias": "別名:" + "alias": "裝置名稱:" }, "quickSave": { "off": "@:general.off", @@ -130,7 +130,7 @@ "title": "網路", "needRestart": "重新啟動伺服器以套用設定!", "server": "伺服器", - "alias": "別名", + "alias": "裝置名稱", "deviceType": "裝置類型", "deviceModel": "裝置型號", "port": "通訊埠", @@ -232,6 +232,10 @@ "count": "檔案:{curr} / {n}", "size": "大小:{curr} / {n}", "speed": "速度:{speed}/s" + }, + "remainingTime": { + "hours": "{h}小時 {m}分鐘", + "days": "{d}天 {h}小時 {m}分鐘" } }, "webSharePage": { @@ -265,7 +269,7 @@ }, "donationPage": { "title": "贊助", - "info": "LocalSend 是免費、開源且沒有任何廣告的。如果您喜歡此應用程式,您可以透過捐贈來支持開發。", + "info": "LocalSend 是免費、開源且沒有任何廣告的。如果您喜歡此應用程式,可以透過捐贈來支持開發。", "donate": "贊助 {amount}", "thanks": "非常感謝您!", "restore": "復原購買" @@ -289,7 +293,7 @@ "title": "輸入位址", "hashtag": "雜湊標記", "ip": "IP 位址", - "recentlyUsed": "最近使用:" + "recentlyUsed": "最近使用: " }, "cancelSession": { "title": "取消檔案傳輸", diff --git a/app/lib/rust/api/logging.dart b/app/lib/rust/api/logging.dart index 2bf90ab5..fdf2d9ca 100644 --- a/app/lib/rust/api/logging.dart +++ b/app/lib/rust/api/logging.dart @@ -6,4 +6,5 @@ import 'package:flutter_rust_bridge/flutter_rust_bridge_for_generated.dart'; import 'package:localsend_app/rust/frb_generated.dart'; -Future enableDebugLogging() => RustLib.instance.api.crateApiLoggingEnableDebugLogging(); +Future enableDebugLogging() => + RustLib.instance.api.crateApiLoggingEnableDebugLogging(); diff --git a/app/lib/rust/api/model.dart b/app/lib/rust/api/model.dart index 753d7d8f..ae93e57e 100644 --- a/app/lib/rust/api/model.dart +++ b/app/lib/rust/api/model.dart @@ -34,7 +34,14 @@ class FileDto { }); @override - int get hashCode => id.hashCode ^ fileName.hashCode ^ size.hashCode ^ fileType.hashCode ^ sha256.hashCode ^ preview.hashCode ^ metadata.hashCode; + int get hashCode => + id.hashCode ^ + fileName.hashCode ^ + size.hashCode ^ + fileType.hashCode ^ + sha256.hashCode ^ + preview.hashCode ^ + metadata.hashCode; @override bool operator ==(Object other) => @@ -64,7 +71,144 @@ class FileMetadata { @override bool operator ==(Object other) => - identical(this, other) || other is FileMetadata && runtimeType == other.runtimeType && modified == other.modified && accessed == other.accessed; + identical(this, other) || + other is FileMetadata && + runtimeType == other.runtimeType && + modified == other.modified && + accessed == other.accessed; +} + +class PrepareUploadRequestDto { + final RegisterDto info; + final Map files; + + const PrepareUploadRequestDto({ + required this.info, + required this.files, + }); + + @override + int get hashCode => info.hashCode ^ files.hashCode; + + @override + bool operator ==(Object other) => + identical(this, other) || + other is PrepareUploadRequestDto && + runtimeType == other.runtimeType && + info == other.info && + files == other.files; +} + +class PrepareUploadResponseDto { + final String sessionId; + final Map files; + + const PrepareUploadResponseDto({ + required this.sessionId, + required this.files, + }); + + @override + int get hashCode => sessionId.hashCode ^ files.hashCode; + + @override + bool operator ==(Object other) => + identical(this, other) || + other is PrepareUploadResponseDto && + runtimeType == other.runtimeType && + sessionId == other.sessionId && + files == other.files; +} + +enum ProtocolType { + http, + https, +} + +class RegisterDto { + final String alias; + final String version; + final String? deviceModel; + final DeviceType? deviceType; + final String token; + final int port; + final ProtocolType protocol; + final bool hasWebInterface; + + const RegisterDto({ + required this.alias, + required this.version, + this.deviceModel, + this.deviceType, + required this.token, + required this.port, + required this.protocol, + required this.hasWebInterface, + }); + + @override + int get hashCode => + alias.hashCode ^ + version.hashCode ^ + deviceModel.hashCode ^ + deviceType.hashCode ^ + token.hashCode ^ + port.hashCode ^ + protocol.hashCode ^ + hasWebInterface.hashCode; + + @override + bool operator ==(Object other) => + identical(this, other) || + other is RegisterDto && + runtimeType == other.runtimeType && + alias == other.alias && + version == other.version && + deviceModel == other.deviceModel && + deviceType == other.deviceType && + token == other.token && + port == other.port && + protocol == other.protocol && + hasWebInterface == other.hasWebInterface; +} + +class RegisterResponseDto { + final String alias; + final String version; + final String? deviceModel; + final DeviceType? deviceType; + final String token; + final bool hasWebInterface; + + const RegisterResponseDto({ + required this.alias, + required this.version, + this.deviceModel, + this.deviceType, + required this.token, + required this.hasWebInterface, + }); + + @override + int get hashCode => + alias.hashCode ^ + version.hashCode ^ + deviceModel.hashCode ^ + deviceType.hashCode ^ + token.hashCode ^ + hasWebInterface.hashCode; + + @override + bool operator ==(Object other) => + identical(this, other) || + other is RegisterResponseDto && + runtimeType == other.runtimeType && + alias == other.alias && + version == other.version && + deviceModel == other.deviceModel && + deviceType == other.deviceType && + token == other.token && + hasWebInterface == other.hasWebInterface; } class PrepareUploadRequestDto { diff --git a/app/lib/rust/api/webrtc.dart b/app/lib/rust/api/webrtc.dart index f6996c2d..1ae8cd38 100644 --- a/app/lib/rust/api/webrtc.dart +++ b/app/lib/rust/api/webrtc.dart @@ -109,7 +109,13 @@ class ClientInfo { }); @override - int get hashCode => id.hashCode ^ alias.hashCode ^ version.hashCode ^ deviceModel.hashCode ^ deviceType.hashCode ^ token.hashCode; + int get hashCode => + id.hashCode ^ + alias.hashCode ^ + version.hashCode ^ + deviceModel.hashCode ^ + deviceType.hashCode ^ + token.hashCode; @override bool operator ==(Object other) => @@ -140,7 +146,12 @@ class ClientInfoWithoutId { }); @override - int get hashCode => alias.hashCode ^ version.hashCode ^ deviceModel.hashCode ^ deviceType.hashCode ^ token.hashCode; + int get hashCode => + alias.hashCode ^ + version.hashCode ^ + deviceModel.hashCode ^ + deviceType.hashCode ^ + token.hashCode; @override bool operator ==(Object other) => @@ -170,7 +181,11 @@ class ExpectingPublicKey { @override bool operator ==(Object other) => - identical(this, other) || other is ExpectingPublicKey && runtimeType == other.runtimeType && publicKey == other.publicKey && kind == other.kind; + identical(this, other) || + other is ExpectingPublicKey && + runtimeType == other.runtimeType && + publicKey == other.publicKey && + kind == other.kind; } class PinConfig { @@ -187,7 +202,11 @@ class PinConfig { @override bool operator ==(Object other) => - identical(this, other) || other is PinConfig && runtimeType == other.runtimeType && pin == other.pin && maxTries == other.maxTries; + identical(this, other) || + other is PinConfig && + runtimeType == other.runtimeType && + pin == other.pin && + maxTries == other.maxTries; } class ProposingClientInfo { @@ -204,7 +223,11 @@ class ProposingClientInfo { }); @override - int get hashCode => alias.hashCode ^ version.hashCode ^ deviceModel.hashCode ^ deviceType.hashCode; + int get hashCode => + alias.hashCode ^ + version.hashCode ^ + deviceModel.hashCode ^ + deviceType.hashCode; @override bool operator ==(Object other) => @@ -231,7 +254,11 @@ class RTCFileError { @override bool operator ==(Object other) => - identical(this, other) || other is RTCFileError && runtimeType == other.runtimeType && fileId == other.fileId && error == other.error; + identical(this, other) || + other is RTCFileError && + runtimeType == other.runtimeType && + fileId == other.fileId && + error == other.error; } class RTCSendFileResponse { @@ -251,7 +278,11 @@ class RTCSendFileResponse { @override bool operator ==(Object other) => identical(this, other) || - other is RTCSendFileResponse && runtimeType == other.runtimeType && id == other.id && success == other.success && error == other.error; + other is RTCSendFileResponse && + runtimeType == other.runtimeType && + id == other.id && + success == other.success && + error == other.error; } @freezed @@ -315,5 +346,9 @@ class WsServerSdpMessage { @override bool operator ==(Object other) => identical(this, other) || - other is WsServerSdpMessage && runtimeType == other.runtimeType && peer == other.peer && sessionId == other.sessionId && sdp == other.sdp; + other is WsServerSdpMessage && + runtimeType == other.runtimeType && + peer == other.peer && + sessionId == other.sessionId && + sdp == other.sdp; }