diff --git a/app/assets/i18n/_missing_translations_bg.json b/app/assets/i18n/_missing_translations_bg.json new file mode 100644 index 00000000..7ca68f4f --- /dev/null +++ b/app/assets/i18n/_missing_translations_bg.json @@ -0,0 +1,87 @@ +{ + "@@info": [ + "Here are translations that exist in but not in .", + "After editing this file, you can run 'dart run slang apply --locale=bg' to quickly apply the newly added translations." + ], + "sendPage": { + "tooManyAttempts": "@:web.tooManyAttempts" + }, + "dialogs": { + "quickActions": { + "random": "Random" + }, + "quickSaveNotice": { + "title": "@:general.quickSave", + "content": "File requests are now accepted automatically. Be aware that everyone on the local network can send you files." + }, + "quickSaveFromFavoritesNotice": { + "title": "@:general.quickSaveFromFavorites", + "content": [ + "File requests are now accepted automatically from devices in your favorites list.", + "Warning! Currently, this is not entirely secure, as a hacker who has the fingerprint of any device from your favorites list can send you files without restriction.", + "However, this option is still safer than allowing all users on the local network to send you files without restriction." + ] + }, + "pin": { + "title": "Enter PIN" + }, + "sendModeHelp": { + "title": "Send modes", + "single": "Sends files to one recipient. Selection will be cleared after finished files transfer.", + "multiple": "Sends files to multiple recipients. Selection will not be cleared after finished files transfer.", + "link": "Recipients who do not have LocalSend installed can download the selected files by opening the link in their browser." + }, + "zoom": { + "title": "URL" + } + }, + "sanitization": { + "empty": "Filename cannot be empty", + "invalid": "Filename contains invalid characters" + }, + "tray": { + "open": "@:general.open", + "close": "Quit LocalSend", + "closeWindows": "Exit" + }, + "web": { + "waiting": "@:sendPage.waiting", + "enterPin": "Enter PIN", + "invalidPin": "Invalid PIN", + "tooManyAttempts": "Too many attempts", + "rejected": "Rejected", + "files": "Files", + "fileName": "File name", + "size": "Size" + }, + "assetPicker": { + "confirm": "Confirm", + "cancel": "Cancel", + "edit": "Edit", + "gifIndicator": "GIF", + "loadFailed": "Load failed", + "original": "Origin", + "preview": "Preview", + "select": "Select", + "emptyList": "Empty list", + "unSupportedAssetType": "Unsupported file type.", + "unableToAccessAll": "Unable to access all files on the device", + "viewingLimitedAssetsTip": "Only view files and albums accessible to the app.", + "changeAccessibleLimitedAssets": "Click to update accessible files", + "accessAllTip": "App can only access some files on the device. Go to system settings and allow the app to access all media on the device.", + "goToSystemSettings": "Go to system settings", + "accessLimitedAssets": "Continue with limited access", + "accessiblePathName": "Accessible files", + "sTypeAudioLabel": "Audio", + "sTypeImageLabel": "Image", + "sTypeVideoLabel": "Video", + "sTypeOtherLabel": "Other media", + "sActionPlayHint": "play", + "sActionPreviewHint": "preview", + "sActionSelectHint": "select", + "sActionSwitchPathLabel": "change path", + "sActionUseCameraHint": "use camera", + "sNameDurationLabel": "duration", + "sUnitAssetCountLabel": "count" + } +} diff --git a/app/assets/i18n/_missing_translations_en_IN.json b/app/assets/i18n/_missing_translations_en_IN.json index 808f7985..c6d1cf82 100644 --- a/app/assets/i18n/_missing_translations_en_IN.json +++ b/app/assets/i18n/_missing_translations_en_IN.json @@ -2,56 +2,5 @@ "@@info": [ "Here are translations that exist in but not in .", "After editing this file, you can run 'dart run slang apply --locale=en-IN' to quickly apply the newly added translations." - ], - "general": { - "quickSaveFromFavorites": "Quick Save for \"Favorites\"" - }, - "receiveTab": { - "quickSave": { - "off": "@:general.off", - "favorites": "Favorites", - "on": "@:general.on" - } - }, - "sendTab": { - "manualSending": "Manual sending" - }, - "settingsTab": { - "general": { - "saveWindowPlacementWindows": "Save window position after exit" - }, - "receive": { - "quickSaveFromFavorites": "@:general.quickSaveFromFavorites" - }, - "network": { - "useSystemName": "Use system name", - "generateRandomAlias": "Generate random alias" - } - }, - "troubleshootPage": { - "noDiscovery": { - "symptom": "This device cannot discover other devices.", - "solution": "Please make sure that all devices are on the same Wi-Fi network and share the same configuration (port, multicast address, encryption). You can try to type the IP address of the target device manually. If this works, consider adding this device to the favorites so it can be automatically discovered in the future." - } - }, - "aboutPage": { - "packagers": "Packagers" - }, - "dialogs": { - "openFile": { - "title": "Open file", - "content": "Do you want to open the received file?" - }, - "quickSaveFromFavoritesNotice": { - "title": "@:general.quickSaveFromFavorites", - "content": [ - "File requests are now accepted automatically from devices in your favorites list.", - "Warning! Currently, this is not entirely secure, as a hacker who has the fingerprint of any device from your favorites list can send you files without restriction.", - "However, this option is still safer than allowing all users on the local network to send you files without restriction." - ] - } - }, - "tray": { - "closeWindows": "Exit" - } + ] } diff --git a/app/assets/i18n/_missing_translations_hi.json b/app/assets/i18n/_missing_translations_hi.json index c157d36d..0dfefe6f 100644 --- a/app/assets/i18n/_missing_translations_hi.json +++ b/app/assets/i18n/_missing_translations_hi.json @@ -2,56 +2,5 @@ "@@info": [ "Here are translations that exist in but not in .", "After editing this file, you can run 'dart run slang apply --locale=hi' to quickly apply the newly added translations." - ], - "general": { - "quickSaveFromFavorites": "Quick Save for \"Favorites\"" - }, - "receiveTab": { - "quickSave": { - "off": "@:general.off", - "favorites": "Favorites", - "on": "@:general.on" - } - }, - "sendTab": { - "manualSending": "Manual sending" - }, - "settingsTab": { - "general": { - "saveWindowPlacementWindows": "Save window position after exit" - }, - "receive": { - "quickSaveFromFavorites": "@:general.quickSaveFromFavorites" - }, - "network": { - "useSystemName": "Use system name", - "generateRandomAlias": "Generate random alias" - } - }, - "troubleshootPage": { - "noDiscovery": { - "symptom": "This device cannot discover other devices.", - "solution": "Please make sure that all devices are on the same Wi-Fi network and share the same configuration (port, multicast address, encryption). You can try to type the IP address of the target device manually. If this works, consider adding this device to the favorites so it can be automatically discovered in the future." - } - }, - "aboutPage": { - "packagers": "Packagers" - }, - "dialogs": { - "openFile": { - "title": "Open file", - "content": "Do you want to open the received file?" - }, - "quickSaveFromFavoritesNotice": { - "title": "@:general.quickSaveFromFavorites", - "content": [ - "File requests are now accepted automatically from devices in your favorites list.", - "Warning! Currently, this is not entirely secure, as a hacker who has the fingerprint of any device from your favorites list can send you files without restriction.", - "However, this option is still safer than allowing all users on the local network to send you files without restriction." - ] - } - }, - "tray": { - "closeWindows": "Exit" - } + ] } diff --git a/app/assets/i18n/_missing_translations_si.json b/app/assets/i18n/_missing_translations_si.json new file mode 100644 index 00000000..57cebc9e --- /dev/null +++ b/app/assets/i18n/_missing_translations_si.json @@ -0,0 +1,6 @@ +{ + "@@info": [ + "Here are translations that exist in but not in .", + "After editing this file, you can run 'dart run slang apply --locale=si' to quickly apply the newly added translations." + ] +} diff --git a/app/assets/i18n/_missing_translations_sv.json b/app/assets/i18n/_missing_translations_sv.json index b475d3c0..4229bb90 100644 --- a/app/assets/i18n/_missing_translations_sv.json +++ b/app/assets/i18n/_missing_translations_sv.json @@ -2,142 +2,5 @@ "@@info": [ "Here are translations that exist in but not in .", "After editing this file, you can run 'dart run slang apply --locale=sv' to quickly apply the newly added translations." - ], - "general": { - "delete": "Delete", - "quickSaveFromFavorites": "Quick Save for \"Favorites\"", - "noItemInClipboard": "No items in Clipboard." - }, - "receiveTab": { - "quickSave": { - "off": "@:general.off", - "favorites": "Favorites", - "on": "@:general.on" - } - }, - "sendTab": { - "picker": { - "clipboard": "Paste" - }, - "manualSending": "Manual sending" - }, - "settingsTab": { - "general": { - "colorOptions": { - "oled": "OLED" - }, - "saveWindowPlacementWindows": "Save window position after exit", - "showInContextMenu": "Show LocalSend in context menu" - }, - "receive": { - "quickSaveFromFavorites": "@:general.quickSaveFromFavorites", - "requirePin": "@:webSharePage.requirePin", - "autoFinish": "Auto Finish" - }, - "send": { - "title": "Send", - "shareViaLinkAutoAccept": "Automatically accept requests in \"Share via link\" mode" - }, - "network": { - "discoveryTimeout": "Discovery Timeout", - "useSystemName": "Use system name", - "generateRandomAlias": "Generate random alias" - }, - "other": { - "title": "Other", - "support": "Support LocalSend", - "donate": "Donate", - "privacyPolicy": "Privacy Policy", - "termsOfUse": "Terms of Use" - } - }, - "troubleshootPage": { - "noDiscovery": { - "symptom": "This device cannot discover other devices.", - "solution": "Please make sure that all devices are on the same Wi-Fi network and share the same configuration (port, multicast address, encryption). You can try to type the IP address of the target device manually. If this works, consider adding this device to the favorites so it can be automatically discovered in the future." - } - }, - "receiveHistoryPage": { - "entryActions": { - "showInFolder": "Show in folder" - } - }, - "sendPage": { - "tooManyAttempts": "@:web.tooManyAttempts" - }, - "webSharePage": { - "autoAccept": "Automatically accept requests", - "requirePin": "Require PIN", - "pinHint": "The PIN is \"{pin}\"" - }, - "aboutPage": { - "description": [ - "LocalSend is a free, open-source app that allows you to securely share files and messages with nearby devices over your local network without needing an internet connection.", - "This app is available on Android, iOS, macOS, Windows and Linux. You can find all download options on the official homepage." - ], - "author": "Author", - "contributors": "Contributors", - "packagers": "Packagers", - "translators": "Translators" - }, - "donationPage": { - "title": "Donate", - "info": "LocalSend is free, open-source and without any ads. If you like the app, you can support the development with a donation.", - "donate": "Donate {amount}", - "thanks": "Thank you very much!", - "restore": "Restore purchase" - }, - "dialogs": { - "openFile": { - "title": "Open file", - "content": "Do you want to open the received file?" - }, - "favoriteDialog": { - "title": "Favorites", - "noFavorites": "No favorite devices yet.", - "addFavorite": "Add" - }, - "favoriteDeleteDialog": { - "title": "Delete from favorites", - "content": "Do you really want to delete from favorites \"{name}\"?" - }, - "favoriteEditDialog": { - "titleAdd": "Add to favorites", - "titleEdit": "Settings", - "name": "Device name", - "auto": "(auto)", - "ip": "IP Address", - "port": "Port" - }, - "historyClearDialog": { - "title": "Clear history", - "content": "Do you really want to delete the entire history?" - }, - "quickSaveFromFavoritesNotice": { - "title": "@:general.quickSaveFromFavorites", - "content": [ - "File requests are now accepted automatically from devices in your favorites list.", - "Warning! Currently, this is not entirely secure, as a hacker who has the fingerprint of any device from your favorites list can send you files without restriction.", - "However, this option is still safer than allowing all users on the local network to send you files without restriction." - ] - }, - "pin": { - "title": "Enter PIN" - }, - "zoom": { - "title": "URL" - } - }, - "sanitization": { - "empty": "Filename cannot be empty", - "invalid": "Filename contains invalid characters" - }, - "tray": { - "closeWindows": "Exit" - }, - "web": { - "enterPin": "Enter PIN", - "invalidPin": "Invalid PIN", - "tooManyAttempts": "Too many attempts" - } + ] } diff --git a/app/assets/i18n/_missing_translations_tr.json b/app/assets/i18n/_missing_translations_tr.json index ea52b85d..f8a55a3a 100644 --- a/app/assets/i18n/_missing_translations_tr.json +++ b/app/assets/i18n/_missing_translations_tr.json @@ -3,13 +3,10 @@ "Here are translations that exist in but not in .", "After editing this file, you can run 'dart run slang apply --locale=tr' to quickly apply the newly added translations." ], - "general": { - "quickSaveFromFavorites": "\"Favoriler\" için Hızlı Kaydet" - }, "receiveTab": { "quickSave": { "off": "@:general.off", - "favorites": "Favoriler", + "favorites": "Favorites", "on": "@:general.on" } }, @@ -18,21 +15,21 @@ "quickSaveFromFavorites": "@:general.quickSaveFromFavorites" }, "network": { - "useSystemName": "Sistem adını kullan", - "generateRandomAlias": "Rastgele bir takma ad oluştur" + "useSystemName": "Use system name", + "generateRandomAlias": "Generate random alias" } }, "dialogs": { "openFile": { - "title": "Dosyayı Aç", - "content": "Alınan dosyayı açmak istiyor musunuz?" + "title": "Open file", + "content": "Do you want to open the received file?" }, "quickSaveFromFavoritesNotice": { "title": "@:general.quickSaveFromFavorites", "content": [ - "Dosya istekleri artık favoriler listenizdeki cihazlardan otomatik olarak kabul edilir.", - "Uyarı! Şu anda bu tamamen güvenli değil, çünkü favori listenizdeki herhangi bir cihazın parmak izine sahip bir saldırgan, size kısıtlama olmaksızın dosya gönderebilir.", - "Yine de bu seçenek, yerel ağdaki tüm kullanıcıların size kısıtlama olmaksızın dosya göndermesine izin vermekten daha güvenlidir." + "File requests are now accepted automatically from devices in your favorites list.", + "Warning! Currently, this is not entirely secure, as a hacker who has the fingerprint of any device from your favorites list can send you files without restriction.", + "However, this option is still safer than allowing all users on the local network to send you files without restriction." ] } } diff --git a/app/assets/i18n/_unused_translations.json b/app/assets/i18n/_unused_translations.json index 343a76ed..e9cd8efb 100644 --- a/app/assets/i18n/_unused_translations.json +++ b/app/assets/i18n/_unused_translations.json @@ -19,6 +19,7 @@ } }, "ar": {}, + "bg": {}, "bn": {}, "ca": {}, "cs": {}, @@ -49,6 +50,7 @@ "pt-PT": {}, "ro": {}, "ru": {}, + "si": {}, "sk": {}, "sl": {}, "sr": {}, diff --git a/app/assets/i18n/strings_azb.json b/app/assets/i18n/strings_azb.json deleted file mode 100644 index 7cdf5efb..00000000 --- a/app/assets/i18n/strings_azb.json +++ /dev/null @@ -1,9 +0,0 @@ -{ - "general": { - "add": "ایضافه", - "accept": "قبول", - "accepted": "قبول اولان" - }, - "locale": "انگلیسی", - "appName": "لوکال‌سند" -} diff --git a/app/assets/i18n/strings_bg.json b/app/assets/i18n/strings_bg.json index 5e7942fa..ce0292c0 100644 --- a/app/assets/i18n/strings_bg.json +++ b/app/assets/i18n/strings_bg.json @@ -1,113 +1,23 @@ { - "dialogs": { - "quickActions": { - "sortBeforeCount": "Сортирай по азбучен ред предварително (A-Z)", - "title": "Бързи действия", - "counter": "Брояч", - "prefix": "Префикс", - "padZero": "Подложка с нули" - }, - "noPermission": { - "content": "Не сте предоставили необходимите разрешения. Моля, дайте ги в настройките.", - "title": "Няма разрешение" - }, - "openFile": { - "title": "Отворете файл", - "content": "Искате ли да отворите получения файл?" - }, - "addressInput": { - "title": "Въведете адрес", - "hashtag": "Хаштаг", - "ip": "IP адрес", - "recentlyUsed": "Наскоро използван: " - }, - "cancelSession": { - "title": "Отмени прехвърлянето на файлове", - "content": "Наистина ли искате да отмените прехвърлянето на файлове?" - }, - "cannotOpenFile": { - "content": "Не може да се отвори \"{file}\". Този файл бил ли е преместен, преименуван или изтрит?", - "title": "Не може да се отвори файл" - }, - "encryptionDisabledNotice": { - "title": "Шифроването е деактивирано", - "content": "Комуникацията вече се осъществява чрез некриптиран HTTP протокол. За да използвате HTTPS протокол, активирайте криптирането отново." - }, - "errorDialog": { - "title": "@:general.error" - }, - "favoriteDialog": { - "noFavorites": "Все още няма любими устройства.", - "addFavorite": "Добави", - "title": "Любими" - }, - "favoriteDeleteDialog": { - "title": "Изтриване от любими", - "content": "Наистина ли искате да изтриете от любими \"{name}\"?" - }, - "favoriteEditDialog": { - "titleAdd": "Добави към любими", - "titleEdit": "Настройки", - "name": "Име на устройство", - "auto": "(автоматично)", - "ip": "IP адрес", - "port": "Порт" - }, - "fileInfo": { - "fileName": "Име на файл:", - "path": "Път:", - "size": "Размер:", - "sender": "Подател:", - "time": "Време:", - "title": "Информация за файла" - }, - "fileNameInput": { - "title": "Въведете име на файл", - "original": "Оригинално: {original}" - }, - "historyClearDialog": { - "title": "Изчистване на история", - "content": "Наистина ли искате да изтриете цялата история?" - }, - "localNetworkUnauthorized": { - "description": "LocalSend не може да намери други устройства, без да има разрешение за сканиране на локалната мрежа. Моля, дайте това разрешение в настройките.", - "gotoSettings": "Настройки", - "title": "@:dialogs.noPermission.title" - }, - "messageInput": { - "title": "Въведете съобщение", - "multiline": "Многоредов" - }, - "noFiles": { - "title": "Няма избрани файлове", - "content": "Моля, изберете поне един файл." - }, - "notAvailableOnPlatform": { - "content": "Тази функция е достъпна само на:", - "title": "Не е налична" - }, - "qr": { - "title": "QR код" - }, - "addFile": { - "title": "Добави към избора", - "content": "Какво искате да добавите?" - } - }, + "locale": "Български", + "appName": "LocalSend", "general": { "accept": "Приеми", "accepted": "Прието", + "add": "Добави", "advanced": "Разширено", "cancel": "Отказ", "close": "Затвори", + "confirm": "Потвърди", "continueStr": "Продължи", "copy": "Копирай", - "add": "Добави", - "confirm": "Потвърди", "copiedToClipboard": "Копирано в клипборда", "decline": "Откажи", "done": "Готово", "delete": "Изтрий", + "edit": "Редактирай", + "error": "Грешка", + "example": "Пример", "files": "Файлове", "finished": "Завършено", "hide": "Скрий", @@ -118,24 +28,19 @@ "open": "Отвори", "queue": "Опашка", "quickSave": "Бързо запазване", + "quickSaveFromFavorites": "Бързо запазване за „Любими“", "renamed": "Преименуван", "reset": "Отмяна на промените", "restart": "Рестартирай", "settings": "Настройки", + "skipped": "Пропуснато", "start": "Започни", "stop": "Спри", "save": "Запази", "unchanged": "Непроменено", "unknown": "Неизвестно", - "noItemInClipboard": "Няма елементи в клипборда.", - "edit": "Редактирай", - "example": "Пример", - "quickSaveFromFavorites": "Бързо запазване за „Любими“", - "skipped": "Пропуснато", - "error": "Грешка" + "noItemInClipboard": "Няма елементи в клипборда." }, - "appName": "LocalSend", - "locale": "Български", "receiveTab": { "title": "Получаване", "infoBox": { @@ -144,8 +49,8 @@ "alias": "Име на устройството:" }, "quickSave": { - "favorites": "Любими", "off": "@:general.off", + "favorites": "Любими", "on": "@:general.on" } }, @@ -159,14 +64,15 @@ "picker": { "file": "Файл", "folder": "Папка", + "media": "Медия", "text": "Текст", "app": "Приложение", - "clipboard": "Постави", - "media": "Медия" + "clipboard": "Постави" }, "shareIntentInfo": "Можете също да използвате функцията „Споделяне“ на вашето мобилно устройство, за да избирате файлове по-лесно.", "nearbyDevices": "Устройства в близост", "thisDevice": "Това устройство", + "scan": "Търсене на устройства", "manualSending": "Ръчно изпращане", "sendMode": "Режим на изпращане", "sendModes": { @@ -174,10 +80,9 @@ "multiple": "Множество получатели", "link": "Споделете чрез връзка" }, - "placeItems": "Поставете елементи за споделяне.", - "scan": "Търсене на устройства", "sendModeHelp": "Обяснение", - "help": "Моля, уверете се, че желаната цел също е в същата Wi-Fi мрежа." + "help": "Моля, уверете се, че желаната цел също е в същата Wi-Fi мрежа.", + "placeItems": "Поставете елементи за споделяне." }, "settingsTab": { "title": "Настройки", @@ -199,23 +104,23 @@ "system": "Система" }, "saveWindowPlacement": "Запази позицията на прозореца след напускане", + "saveWindowPlacementWindows": "Запази позицията на прозореца след излизане", "minimizeToTray": "Минимизиране до Системна област/Лента с менюта при затваряне", + "launchAtStartup": "Автоматично стартиране след влизане", "launchMinimized": "Автоматично стартиране: Стартирай скрито", "showInContextMenu": "Показване на LocalSend в контекстното меню", - "animations": "Анимации", - "saveWindowPlacementWindows": "Запази позицията на прозореца след излизане", - "launchAtStartup": "Автоматично стартиране след влизане" + "animations": "Анимации" }, "receive": { "title": "Получаване", "quickSave": "@:general.quickSave", + "quickSaveFromFavorites": "@:general.quickSaveFromFavorites", "requirePin": "@:webSharePage.requirePin", "autoFinish": "Автоматично завършване", + "destination": "Запази в папка", "downloads": "(Изтегляния)", "saveToGallery": "Запази медия в галерия", - "destination": "Запази в папка", - "saveToHistory": "Запази в история", - "quickSaveFromFavorites": "@:general.quickSaveFromFavorites" + "saveToHistory": "Запази в история" }, "send": { "title": "Изпрати", @@ -225,16 +130,16 @@ "title": "Мрежа", "needRestart": "Рестартирай сървъра, за да приложите настройките!", "server": "Сървър", - "deviceModel": "Модел на устройството", + "alias": "Име на устройството", "deviceType": "Тип устройството", + "deviceModel": "Модел на устройството", "port": "Порт", "discoveryTimeout": "Изчакване за откриване", + "useSystemName": "Използвай системно име", "generateRandomAlias": "Създаване на случаен псевдоним", "portWarning": "Възможно е да не бъдете открити от други устройства, защото използвате персонализиран порт. (default: {defaultPort})", - "multicastGroup": "Адрес за множествено предаване", - "alias": "Име на устройството", - "useSystemName": "Използвай системно име", "encryption": "Шифроване", + "multicastGroup": "Адрес за множествено предаване", "multicastGroupWarning": "Възможно е да не бъдете открити от други устройства, защото използвате персонализиран адрес за множествено предаване. (default: {defaultMulticast})" }, "other": { @@ -247,12 +152,14 @@ "advancedSettings": "Разширени настройки" }, "troubleshootPage": { + "title": "Отстраняване на неизправност", + "subTitle": "Приложението не работи ли според очакванията? Тук можете да намерите някои общи решения на проблеми.", "solution": "Решение:", "fixButton": "Автоматично поправяне", "firewall": { "symptom": "Това устройство може да изпраща файлове на други устройства, но други устройства не могат да изпращат файлове на това устройство.", - "openFirewall": "Отворете защитната стена", - "solution": "Това най-вероятно е проблем със защитната стена. Можете да разрешите това, като разрешите входящи връзки (UDP и TCP) на порт {port}." + "solution": "Това най-вероятно е проблем със защитната стена. Можете да разрешите това, като разрешите входящи връзки (UDP и TCP) на порт {port}.", + "openFirewall": "Отворете защитната стена" }, "noDiscovery": { "symptom": "Това устройство не може да открие други устройства.", @@ -261,12 +168,11 @@ "noConnection": { "symptom": "И двете устройства не могат да се откриват, нито могат да споделят файлове.", "solution": "Проблемът и от двете страни ли съществува? Ако е така, трябва да се уверите, че и двете устройства са в една и съща Wi-Fi мрежа и споделят една и съща конфигурация (порт, адрес за множествено предаване, криптиране). Wi-Fi мрежата може да не позволява комуникация между участниците поради изолация на точката за достъп (AP). В този случай тази опция трябва да бъде деактивирана на рутера." - }, - "title": "Отстраняване на неизправност", - "subTitle": "Приложението не работи ли според очакванията? Тук можете да намерите някои общи решения на проблеми." + } }, "receiveHistoryPage": { "title": "История", + "openFolder": "Отворете папка", "deleteHistory": "Изтриване на историята", "empty": "Историята е празна.", "entryActions": { @@ -274,14 +180,13 @@ "showInFolder": "Показване в папка", "info": "Информация", "deleteFromHistory": "Изтриване от историята" - }, - "openFolder": "Отворете папка" + } }, "apkPickerPage": { "title": "Приложения (APK)", + "excludeSystemApps": "Изключване на системни приложения", "excludeAppsWithoutLaunchIntent": "Изключване на приложения, които не могат да се стартират", - "apps": "{n} Приложения", - "excludeSystemApps": "Изключване на системни приложения" + "apps": "{n} Приложения" }, "selectedFilesPage": { "deleteAll": "Изтрий всички" @@ -296,17 +201,16 @@ "canceled": "Подателят е отменил заявката." }, "receiveOptionsPage": { + "title": "Опции", "destination": "@:settingsTab.receive.destination", "appDirectory": "(LocalSend папка)", "saveToGallery": "@:settingsTab.receive.saveToGallery", - "title": "Опции", "saveToGalleryOff": "Изключва се автоматично, защото има папки." }, "sendPage": { - "busy": "Получателят е зает с друга заявка.", "waiting": "В очакване на отговор…", "rejected": "Получателят е отхвърлил заявката.", - "tooManyAttempts": "@:web.tooManyAttempts" + "busy": "Получателят е зает с друга заявка." }, "progressPage": { "titleSending": "Изпращане на файлове", @@ -334,13 +238,13 @@ "other": "Отворете една от тези връзки във вашия браузър:" }, "requests": "Заявки", + "noRequests": "Все още няма заявки.", "encryption": "@:settingsTab.network.encryption", + "autoAccept": "Автоматично приемане на заявки", + "requirePin": "Изискване на ПИН код", "pinHint": "ПИН кодът е „{pin}“", "encryptionHint": "LocalSend използва самоподписан сертификат. Трябва да го приемете във вашия браузър.", - "pendingRequests": "Чакащи заявки: {n}", - "noRequests": "Все още няма заявки.", - "autoAccept": "Автоматично приемане на заявки", - "requirePin": "Изискване на ПИН код" + "pendingRequests": "Чакащи заявки: {n}" }, "aboutPage": { "title": "Относно LocalSend", @@ -354,16 +258,111 @@ "translators": "Преводачи" }, "donationPage": { + "title": "Дарете", + "info": "LocalSend е безплатен, с отворен код и без никакви реклами. Ако харесвате приложението, можете да подкрепите разработката с дарение.", "donate": "Дарете {amount}", "thanks": "Благодаря много!", - "restore": "Възстановяване на покупка", - "info": "LocalSend е безплатен, с отворен код и без никакви реклами. Ако харесвате приложението, можете да подкрепите разработката с дарение.", - "title": "Дарете" + "restore": "Възстановяване на покупка" }, "changelogPage": { "title": "Дневник на промените" }, "aliasGenerator(ignoreMissing, ignoreGpt)": { "@info": "Различните локали може да имат различни думи, може да не съвпадат 1:1" + }, + "dialogs": { + "addFile": { + "title": "Добави към избора", + "content": "Какво искате да добавите?" + }, + "openFile": { + "title": "Отворете файл", + "content": "Искате ли да отворите получения файл?" + }, + "addressInput": { + "title": "Въведете адрес", + "hashtag": "Хаштаг", + "ip": "IP адрес", + "recentlyUsed": "Наскоро използван: " + }, + "cancelSession": { + "title": "Отмени прехвърлянето на файлове", + "content": "Наистина ли искате да отмените прехвърлянето на файлове?" + }, + "cannotOpenFile": { + "title": "Не може да се отвори файл", + "content": "Не може да се отвори \"{file}\". Този файл бил ли е преместен, преименуван или изтрит?" + }, + "encryptionDisabledNotice": { + "title": "Шифроването е деактивирано", + "content": "Комуникацията вече се осъществява чрез некриптиран HTTP протокол. За да използвате HTTPS протокол, активирайте криптирането отново." + }, + "errorDialog": { + "title": "@:general.error" + }, + "favoriteDialog": { + "title": "Любими", + "noFavorites": "Все още няма любими устройства.", + "addFavorite": "Добави" + }, + "favoriteDeleteDialog": { + "title": "Изтриване от любими", + "content": "Наистина ли искате да изтриете от любими \"{name}\"?" + }, + "favoriteEditDialog": { + "titleAdd": "Добави към любими", + "titleEdit": "Настройки", + "name": "Име на устройство", + "auto": "(автоматично)", + "ip": "IP адрес", + "port": "Порт" + }, + "fileInfo": { + "title": "Информация за файла", + "fileName": "Име на файл:", + "path": "Път:", + "size": "Размер:", + "sender": "Подател:", + "time": "Време:" + }, + "fileNameInput": { + "title": "Въведете име на файл", + "original": "Оригинално: {original}" + }, + "historyClearDialog": { + "title": "Изчистване на история", + "content": "Наистина ли искате да изтриете цялата история?" + }, + "localNetworkUnauthorized": { + "title": "@:dialogs.noPermission.title", + "description": "LocalSend не може да намери други устройства, без да има разрешение за сканиране на локалната мрежа. Моля, дайте това разрешение в настройките.", + "gotoSettings": "Настройки" + }, + "messageInput": { + "title": "Въведете съобщение", + "multiline": "Многоредов" + }, + "noFiles": { + "title": "Няма избрани файлове", + "content": "Моля, изберете поне един файл." + }, + "noPermission": { + "title": "Няма разрешение", + "content": "Не сте предоставили необходимите разрешения. Моля, дайте ги в настройките." + }, + "notAvailableOnPlatform": { + "title": "Не е налична", + "content": "Тази функция е достъпна само на:" + }, + "qr": { + "title": "QR код" + }, + "quickActions": { + "title": "Бързи действия", + "counter": "Брояч", + "prefix": "Префикс", + "padZero": "Подложка с нули", + "sortBeforeCount": "Сортирай по азбучен ред предварително (A-Z)" + } } } diff --git a/app/assets/i18n/strings_ca.json b/app/assets/i18n/strings_ca.json index b67c5b30..6d0e7e0b 100644 --- a/app/assets/i18n/strings_ca.json +++ b/app/assets/i18n/strings_ca.json @@ -13,15 +13,14 @@ "copy": "Copiar", "copiedToClipboard": "Copiat al porta-paper", "decline": "Rebutjar", - "delete": "Eliminar", "done": "Fet", + "delete": "Eliminar", "edit": "Editar", "error": "Error", "example": "Exemple", "files": "Fitxers", "finished": "Finalitzat", "hide": "Amagar", - "noItemInClipboard": "No hi ha elements al porta-papers.", "off": "Apagat", "offline": "Desconnectat", "on": "Encès", @@ -39,35 +38,37 @@ "stop": "Parar", "save": "Desar", "unchanged": "Sense canvis", - "unknown": "Desconegut" + "unknown": "Desconegut", + "noItemInClipboard": "No hi ha elements al porta-papers." }, "receiveTab": { "title": "Rebre", "infoBox": { - "alias": "Àlies:", "ip": "IP:", - "port": "Port:" + "port": "Port:", + "alias": "Àlies:" } }, "sendTab": { - "help": "Si us plau, asseguris que el destinatari està a la mateixa xarxa Wi-Fi.", - "manualSending": "Enviament manual", - "nearbyDevices": "Dispositius propers", + "title": "Enviar", + "selection": { + "title": "Selección", + "files": "Fitxers: {files}", + "size": "Mida: {size}" + }, "picker": { - "app": "App", - "clipboard": "Enganxar", "file": "Fitxer", "folder": "Carpeta", "media": "Media", - "text": "Text" + "text": "Text", + "app": "App", + "clipboard": "Enganxar" }, - "placeItems": "Place items to share.", + "shareIntentInfo": "També pot utilitzar l'opció de \"Compartir\" del seu dispositiu mòbil per seleccionar fitxer d'una manera més fàcil.", + "nearbyDevices": "Dispositius propers", + "thisDevice": "Aquest dispositiu", "scan": "Cercar dispositius", - "selection": { - "files": "Fitxers: {files}", - "size": "Mida: {size}", - "title": "Selección" - }, + "manualSending": "Enviament manual", "sendMode": "Mode d'enviament", "sendModes": { "single": "Destí únic", @@ -75,9 +76,8 @@ "link": "Compartir via enllaç" }, "sendModeHelp": "Explicació", - "shareIntentInfo": "També pot utilitzar l'opció de \"Compartir\" del seu dispositiu mòbil per seleccionar fitxer d'una manera més fàcil.", - "thisDevice": "Aquest dispositiu", - "title": "Enviar" + "help": "Si us plau, asseguris que el destinatari està a la mateixa xarxa Wi-Fi.", + "placeItems": "Place items to share." }, "settingsTab": { "title": "Configuració", @@ -91,8 +91,8 @@ }, "color": "Color", "colorOptions": { - "oled": "OLED", - "system": "Sistema" + "system": "Sistema", + "oled": "OLED" }, "language": "Idioma", "languageOptions": { @@ -100,113 +100,113 @@ }, "saveWindowPlacement": "Surt: desa la ubicació de la finestra", "saveWindowPlacementWindows": "Desa la posició de la finestra després de sortir", - "showInContextMenu": "Mostrar LocalSend al menu contextual", "minimizeToTray": "Surt: Minimitzar a la safata", "launchAtStartup": "Inici automàtic després d'iniciar sessió", "launchMinimized": "Inici automàtic: Inici minimitzat", + "showInContextMenu": "Mostrar LocalSend al menu contextual", "animations": "Animacions" }, "receive": { - "autoFinish": "Finalització Automàtica", - "destination": "Destinació", - "downloads": "(Descàrregues)", + "title": "Rebre", "quickSave": "@:general.quickSave", "quickSaveFromFavorites": "@:general.quickSaveFromFavorites", "requirePin": "@:webSharePage.requirePin", + "autoFinish": "Finalització Automàtica", + "destination": "Destinació", + "downloads": "(Descàrregues)", "saveToGallery": "Desar media a la galeria", - "saveToHistory": "Desa a l'historial", - "title": "Rebre" + "saveToHistory": "Desa a l'historial" }, "send": { "title": "Enviar", "shareViaLinkAutoAccept": "Acceptar peticions automàticament amb el mode \"Compartir mitjançant enllaç\"" }, "network": { + "title": "Xarxa", + "needRestart": "Reiniciar el servidor per aplicar la configuració!", + "server": "Servidor", "alias": "Àlies", - "encryption": "Encriptació", "deviceType": "Tipus de dispositiu", "deviceModel": "Model de dispositiu", - "discoveryTimeout": "Temps d'espera de descobriment", - "generateRandomAlias": "Generar àlies aleatòriament", - "multicastGroup": "Multicast", - "multicastGroupWarning": "Podria no ser detectat per altres dispositius perquè està utilitzant una adreça multicast personalitzada. (per defecte: {defaultMulticast})", - "needRestart": "Reiniciar el servidor per aplicar la configuració!", "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})", - "server": "Servidor", - "title": "Xarxa", - "useSystemName": "Utilitzar nom del sistema" + "encryption": "Encriptació", + "multicastGroup": "Multicast", + "multicastGroupWarning": "Podria no ser detectat per altres dispositius perquè està utilitzant una adreça multicast personalitzada. (per defecte: {defaultMulticast})" }, "other": { + "title": "Altre", + "support": "Suport LocalSend", "donate": "Donació", "privacyPolicy": "Política Privacitat", - "support": "Suport LocalSend", - "termsOfUse": "Condicions d'ús", - "title": "Altre" + "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.", + "solution": "Solució:", "fixButton": "Corregir automàticament", "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" }, - "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." - }, "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": "Solució:", - "subTitle": "L'aplicació no funciona com s'espera? Aquí pot trobar la solucions dels problemes més comuns.", - "title": "Solucionar problemes" + "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." + } }, "receiveHistoryPage": { + "title": "Historial", + "openFolder": "Obrir carpeta", "deleteHistory": "Eliminar historial", "empty": "L'historial està buit.", "entryActions": { "open": "Obrir fitxer", + "showInFolder": "Mostrar a la carpeta", "info": "Informació", - "deleteFromHistory": "Eliminar de l'historial", - "showInFolder": "Mostrar a la carpeta" - }, - "openFolder": "Obrir carpeta", - "title": "Historial" + "deleteFromHistory": "Eliminar de l'historial" + } }, "apkPickerPage": { - "apps": "{n} Aplicacions", + "title": "Aplicacions (APK)", "excludeSystemApps": "Excloure aplicacions del sistema", "excludeAppsWithoutLaunchIntent": "Excloure aplicacions no executables", - "title": "Aplicacions (APK)" + "apps": "{n} Aplicacions" }, "selectedFilesPage": { "deleteAll": "Eliminar tot" }, "receivePage": { - "canceled": "El remitent ha cancelat la petició.", "subTitle": { "one": "vol enviar un fitxer", "other": "vol enviar {n} fitxers" }, + "subTitleMessage": "t'ha enviat un missatge:", "subTitleLink": "t'ha enviat un enllaç:", - "subTitleMessage": "t'ha enviat un missatge:" + "canceled": "El remitent ha cancelat la petició." }, "receiveOptionsPage": { - "appDirectory": "(Carpeta LocalSend)", + "title": "Opcions", "destination": "@:settingsTab.receive.destination", + "appDirectory": "(Carpeta LocalSend)", "saveToGallery": "@:settingsTab.receive.saveToGallery", - "saveToGalleryOff": "S'ha desactivat automàticament perquè hi ha carpetes.", - "title": "Opcions" + "saveToGalleryOff": "S'ha desactivat automàticament perquè hi ha carpetes." }, "sendPage": { - "busy": "El destinatari està ocupat amb una altra petició.", + "waiting": "Esperant una resposta...", "rejected": "El destinatari ha rebutjat la petició.", "tooManyAttempts": "@:web.tooManyAttempts", - "waiting": "Esperant una resposta..." + "busy": "El destinatari està ocupat amb una altra petició." }, "progressPage": { "titleSending": "Enviant fitxers", @@ -225,7 +225,6 @@ } }, "webSharePage": { - "autoAccept": "Acceptar peticions automàticament", "title": "Compartir via enllaç", "loading": "Iniciant servidor...", "stopping": "Parant servidor...", @@ -234,31 +233,32 @@ "one": "Obrir l'enllaç al navegador:", "other": "Obrir un d'aquests enllaços al navegador:" }, - "pinHint": "El PIN és \"{pin}\"", "requests": "Peticions", - "requirePin": "Requerir un PIN", "noRequests": "Encar ano 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.", "pendingRequests": "Peticions pendents: {n}" }, "aboutPage": { - "author": "Autor", - "contributors": "Col·laboradors", + "title": "Sobre 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." ], + "author": "Autor", + "contributors": "Col·laboradors", "packagers": "Empaquetadors", - "translators": "Traductors", - "title": "Sobre LocalSend" + "translators": "Traductors" }, "donationPage": { - "donate": "Donació {amount}", + "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ó.", - "restore": "Restaurar la compra", + "donate": "Donació {amount}", "thanks": "Moltes gràcies!", - "title": "Donació" + "restore": "Restaurar la compra" }, "changelogPage": { "title": "Registre de canvis" @@ -362,18 +362,6 @@ "errorDialog": { "title": "@:general.error" }, - "fileInfo": { - "title": "Informació del fitxer", - "fileName": "Nom del fitxer:", - "path": "Ruta:", - "size": "Mida:", - "sender": "Remitent:", - "time": "Temps:" - }, - "fileNameInput": { - "title": "Introdueixi el nom del fitxer", - "original": "Original: {original}" - }, "favoriteDialog": { "title": "Preferits", "noFavorites": "Encara no hi ha cap dispositiu preferit.", @@ -391,6 +379,18 @@ "ip": "Adreça IP", "port": "Port" }, + "fileInfo": { + "title": "Informació del fitxer", + "fileName": "Nom del fitxer:", + "path": "Ruta:", + "size": "Mida:", + "sender": "Remitent:", + "time": "Temps:" + }, + "fileNameInput": { + "title": "Introdueixi el nom del fitxer", + "original": "Original: {original}" + }, "historyClearDialog": { "title": "Netejar historial", "content": "Realment vol eliminar tot l'historial?" @@ -416,9 +416,6 @@ "title": "No disponible", "content": "Aquesta característica només està disponible a:" }, - "pin": { - "title": "Introduïr PIN" - }, "qr": { "title": "Codi QR" }, @@ -430,18 +427,21 @@ "sortBeforeCount": "Ordenar prèviament 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." + }, "quickSaveFromFavoritesNotice": { "title": "@:general.quickSaveFromFavorites" }, - "quickSaveNotice": { - "content": "Les sol·licituds d'arxiu s'accepten automàticament. Tingueu en compte que tothom a la xarxa local us pot enviar fitxers.", - "title": "@:general.quickSave" + "pin": { + "title": "Introduïr PIN" }, "sendModeHelp": { - "link": "Els destinataris que no tinguin LocalSend instal·lat poden descarregar els fitxers seleccionats obrint l'enllaç al seu navegador.", - "multiple": "Enviar fitxers a diversos destinataris. La selecció no s'esborrarà.", + "title": "Modes d'enviament", "single": "Enviar fitxers a un destinatari. La selecció s'esborrarà un cop finalitzada la transferència de fitxers.", - "title": "Modes d'enviament" + "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." }, "zoom": { "title": "URL" @@ -453,36 +453,39 @@ }, "tray": { "@info": "Apple Guidelines are very strict about the 'close' wording.", + "open": "@:general.open", "close": "Sortir de LocalSend", - "closeWindows": "Sortir", - "open": "@:general.open" + "closeWindows": "Sortir" }, "web": { + "waiting": "@:sendPage.waiting", "enterPin": "Introduïr PIN", "invalidPin": "PIN invàlid", + "tooManyAttempts": "Massa intents", + "rejected": "Rebutjat", "files": "Fitxers", "fileName": "Nom del fitxer", - "rejected": "Rebutjat", - "size": "Mida", - "tooManyAttempts": "Massa intents", - "waiting": "@:sendPage.waiting" + "size": "Mida" }, "assetPicker": { "@info": "Traduccions per a l'eina de selecció de mitjans per a Android i Iphone", - "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.", - "accessLimitedAssets": "Continuar amb accés limitat", - "accessiblePathName": "Fitxers accessibles", - "cancel": "Cancel·lar", - "changeAccessibleLimitedAssets": "Faci clic per actualitzar els fitxers accessibles", "confirm": "Confirmar", + "cancel": "Cancel·lar", "edit": "Editar", - "emptyList": "Llista buida", "gifIndicator": "GIF", - "goToSystemSettings": "Anar a la configuració del sistema", "loadFailed": "Càrrega fallida", "original": "Original", "preview": "Vista prèvia", "select": "Seleccioni", + "emptyList": "Llista buida", + "unSupportedAssetType": "Tipus de fitxer no suportat.", + "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", + "accessiblePathName": "Fitxers accessibles", "sTypeAudioLabel": "Àudio", "sTypeImageLabel": "Imatge", "sTypeVideoLabel": "Vídeo", @@ -493,9 +496,6 @@ "sActionSwitchPathLabel": "canviar ruta", "sActionUseCameraHint": "utilitzar càmera", "sNameDurationLabel": "duració", - "sUnitAssetCountLabel": "comptar", - "unSupportedAssetType": "Tipus de fitxer no suportat.", - "unableToAccessAll": "No es pot accedir a tots els fitxers del dispositiu.", - "viewingLimitedAssetsTip": "Visualitza només fitxers i àlbums accessibles per l'aplicació." + "sUnitAssetCountLabel": "comptar" } } diff --git a/app/assets/i18n/strings_el.json b/app/assets/i18n/strings_el.json index a5499535..25eda1d5 100644 --- a/app/assets/i18n/strings_el.json +++ b/app/assets/i18n/strings_el.json @@ -28,6 +28,7 @@ "open": "Άνοιγμα", "queue": "Ουρά", "quickSave": "Γρήγορη Αποθήκευση", + "quickSaveFromFavorites": "Γρήγορη Αποθήκευση των \"Αγαπημένων\"", "renamed": "Μετονομάστηκε", "reset": "Επαναφορά", "restart": "Επανεκκίνηση", @@ -38,8 +39,7 @@ "save": "Αποθήκευση", "unchanged": "Χωρίς αλλαγές", "unknown": "Αγνωστο", - "noItemInClipboard": "Κανένα στοιχείο στο Πρόχειρο", - "quickSaveFromFavorites": "Γρήγορη Αποθήκευση των \"Αγαπημένων\"" + "noItemInClipboard": "Κανένα στοιχείο στο Πρόχειρο" }, "receiveTab": { "title": "Λήψη", @@ -73,6 +73,7 @@ "nearbyDevices": "Κοντινές συσκευές", "thisDevice": "Αυτή η συσκευή", "scan": "Αναζήτηση για συσκευές", + "manualSending": "Χειροκίνητη αποστολή", "sendMode": "Λειτουργία αποστολής", "sendModes": { "single": "Ένας παραλήπτης", @@ -81,8 +82,7 @@ }, "sendModeHelp": "Επεξήγηση", "help": "Βεβαιωθείτε ότι ο επιθυμητός παραλήπτης βρίσκεται επίσης στο ίδιο δίκτυο Wi-Fi.", - "placeItems": "Τοποθετήστε στοιχεία για διαμοιρασμό.", - "manualSending": "Χειροκίνητη αποστολή" + "placeItems": "Τοποθετήστε στοιχεία για διαμοιρασμό." }, "settingsTab": { "title": "Ρυθμίσεις", @@ -104,23 +104,23 @@ "system": "Σύστημα" }, "saveWindowPlacement": "Έξοδος: Αποθήκευση θέσης παραθύρου", + "saveWindowPlacementWindows": "Αποθήκευση της θέσης του παραθύρου κατά την έξοδο", "minimizeToTray": "Έξοδος: Ελαχιστοποίηση στη γραμμή εργασιών/μενού", "launchAtStartup": "Αυτόματη εκκίνηση μετά τη σύνδεση", "launchMinimized": "Αυτόματη εκκίνηση: Έναρξη ελαχιστοποιημένο", - "animations": "Οπτικά εφέ", - "saveWindowPlacementWindows": "Αποθήκευση της θέσης του παραθύρου κατά την έξοδο", - "showInContextMenu": "Προβολή του LocalSend στο μενού του περιβάλλοντος εργασίας" + "showInContextMenu": "Προβολή του LocalSend στο μενού του περιβάλλοντος εργασίας", + "animations": "Οπτικά εφέ" }, "receive": { "title": "Λήψη", "quickSave": "@:general.quickSave", + "quickSaveFromFavorites": "@:general.quickSaveFromFavorites", + "requirePin": "@:webSharePage.requirePin", "autoFinish": "Αυτόματη ολοκλήρωση", "destination": "Προορισμός", "downloads": "(Λήψεις)", "saveToGallery": "Αποθήκευση μέσου στη συλλογή", - "saveToHistory": "Αποθήκευση στο ιστορικό", - "quickSaveFromFavorites": "@:general.quickSaveFromFavorites", - "requirePin": "@:webSharePage.requirePin" + "saveToHistory": "Αποθήκευση στο ιστορικό" }, "send": { "title": "Αποστολή", @@ -134,13 +134,13 @@ "deviceType": "Τύπος συσκευής", "deviceModel": "Μοντέλο συσκευής", "port": "Θύρα", + "discoveryTimeout": "Λήξη χρόνου ανακάλυψης", + "useSystemName": "Χρήση του ονόματος του συστήματος", + "generateRandomAlias": "Δημιουργία τυχαίου ψευδώνυμου", "portWarning": "Ενδέχεται να μην εντοπιστείτε από άλλες συσκευές επειδή χρησιμοποιείτε μια προσαρμοσμένη θύρα. (προεπιλογή: {defaultPort})", "encryption": "Κρυπτογράφηση", "multicastGroup": "Αναμετάδοση", - "multicastGroupWarning": "Ενδέχεται να μην εντοπιστείτε από άλλες συσκευές επειδή χρησιμοποιείτε μια προσαρμοσμένη διεύθυνση αναμετάδοσης. (προεπιλογή: {defaultMulticast})", - "discoveryTimeout": "Λήξη χρόνου ανακάλυψης", - "useSystemName": "Χρήση του ονόματος του συστήματος", - "generateRandomAlias": "Δημιουργία τυχαίου ψευδώνυμου" + "multicastGroupWarning": "Ενδέχεται να μην εντοπιστείτε από άλλες συσκευές επειδή χρησιμοποιείτε μια προσαρμοσμένη διεύθυνση αναμετάδοσης. (προεπιλογή: {defaultMulticast})" }, "other": { "title": "Άλλα", @@ -161,13 +161,13 @@ "solution": "Αυτό είναι πιθανότατα ένα ζήτημα του τείχους προστασίας. Μπορείτε να το λύσετε επιτρέποντας τις εισερχόμενες συνδέσεις (UDP και TCP) στη θύρα {port}.", "openFirewall": "Άνοιγμα Τείχους Προστασίας" }, - "noConnection": { - "symptom": "Και οι δύο συσκευές δεν μπορούν να ανακαλύψουν η μία την άλλη ούτε μπορούν να μοιραστούν αρχεία.", - "solution": "Υπάρχει το πρόβλημα και από τις δύο πλευρές; Πρέπει να βεβαιωθείτε ότι και οι δύο συσκευές βρίσκονται στο ίδιο δίκτυο Wi-Fi και μοιράζονται την ίδια διαμόρφωση (θύρα, διεύθυνση αναμετάδοσης, κρυπτογράφηση). Το wifi ενδέχεται να μην επιτρέπει την επικοινωνία μεταξύ των συμμετεχόντων. Σε αυτήν την περίπτωση, αυτή η επιλογή πρέπει να είναι ενεργοποιημένη στο δρομολογητή." - }, "noDiscovery": { "symptom": "Αυτή η συσκευή δεν μπορεί ανακαλυφθεί από άλλες συσεκυές.", "solution": "Βεβαιωθείτε ότι όλες οι συσκευές βρίσκονται στο ίδιο δίκτυο Wi-Fi και μοιράζονται την ίδια διαμόρφωση (θύρα, διεύθυνση multicast, κρυπτογράφηση). Μπορείτε να προσπαθήσετε να πληκτρολογήσετε τη διεύθυνση IP της συσκευής προορισμού με μη αυτόματο τρόπο. Εάν αυτό λειτουργεί, εξετάστε το ενδεχόμενο να προσθέσετε αυτήν τη συσκευή στα αγαπημένα, ώστε να μπορεί να ανακαλυφθεί αυτόματα στο μέλλον." + }, + "noConnection": { + "symptom": "Και οι δύο συσκευές δεν μπορούν να ανακαλύψουν η μία την άλλη ούτε μπορούν να μοιραστούν αρχεία.", + "solution": "Υπάρχει το πρόβλημα και από τις δύο πλευρές; Πρέπει να βεβαιωθείτε ότι και οι δύο συσκευές βρίσκονται στο ίδιο δίκτυο Wi-Fi και μοιράζονται την ίδια διαμόρφωση (θύρα, διεύθυνση αναμετάδοσης, κρυπτογράφηση). Το wifi ενδέχεται να μην επιτρέπει την επικοινωνία μεταξύ των συμμετεχόντων. Σε αυτήν την περίπτωση, αυτή η επιλογή πρέπει να είναι ενεργοποιημένη στο δρομολογητή." } }, "receiveHistoryPage": { @@ -177,9 +177,9 @@ "empty": "Το ιστορικό είναι κενό.", "entryActions": { "open": "Άνοιγμα αρχείου", + "showInFolder": "Προβολή στον φάκελο", "info": "Πληροφορίες", - "deleteFromHistory": "Διαγραφή από το ιστορικό", - "showInFolder": "Προβολή στον φάκελο" + "deleteFromHistory": "Διαγραφή από το ιστορικό" } }, "apkPickerPage": { @@ -210,8 +210,8 @@ "sendPage": { "waiting": "Αναμονή για απάντηση...", "rejected": "Ο παραλήπτης απέρριψε το αίτημα.", - "busy": "Ο παραλήπτης είναι απασχολημένος με άλλο αίτημα.", - "tooManyAttempts": "@:web.tooManyAttempts" + "tooManyAttempts": "@:web.tooManyAttempts", + "busy": "Ο παραλήπτης είναι απασχολημένος με άλλο αίτημα." }, "progressPage": { "titleSending": "Γίνεται αποστολή αρχείων", @@ -242,10 +242,10 @@ "noRequests": "Κανένα αίτμηα ακόμα.", "encryption": "@:settingsTab.network.encryption", "autoAccept": "Αυτόματη αποδοχή αιτημάτων", - "encryptionHint": "Το LocalSend χρησιμοποιεί αυτο-υπογεγραμμένο πιστοποιητικό. Χρειάζεται να το αποθεχτείτε στον φυλλομετρητή.", - "pendingRequests": "Αναμονή αιτημάτων: {n}", "requirePin": "Απαίτηση PIN", - "pinHint": "Το PIN είναι \"{pin}\"" + "pinHint": "Το PIN είναι \"{pin}\"", + "encryptionHint": "Το LocalSend χρησιμοποιεί αυτο-υπογεγραμμένο πιστοποιητικό. Χρειάζεται να το αποθεχτείτε στον φυλλομετρητή.", + "pendingRequests": "Αναμονή αιτημάτων: {n}" }, "aboutPage": { "title": "Σχετικά με το LocalSend", @@ -255,8 +255,8 @@ ], "author": "Δημιουργός", "contributors": "Συντελεστές", - "translators": "Μεταφραστές", - "packagers": "Συσκευαστές" + "packagers": "Συσκευαστές", + "translators": "Μεταφραστές" }, "donationPage": { "title": "Δωρεά", @@ -346,6 +346,10 @@ "title": "Προσθήκη στις επιλογές", "content": "Τι θέλετε να προστεθεί;" }, + "openFile": { + "title": "Άνοιγμα αρχείου", + "content": "Θέλετε να ανοιχτεί το ληφθέν αρχείο;" + }, "addressInput": { "title": "Εισαγωγή διεύθυνσης", "hashtag": "Hashtag", @@ -436,16 +440,6 @@ "title": "@:general.quickSave", "content": "Τα αιτήματα αρχείων γίνονται αυτόματα δεκτά. Έχετε υπόψη σας ότι όλοι στο τοπικό δίκτυο μπορούν να σας στείλουν αρχεία." }, - "sendModeHelp": { - "title": "Λειτουργίες αποστολής", - "single": "Στέλνει αρχεία σε έναν παραλήπτη. Η επιλογή θα διαγραφεί μετά την ολοκλήρωση της μεταφοράς του αρχείου.", - "multiple": "Στέλνει αρχεία σε πολλούς παραλήπτες. Η επιλογή δεν θα διαγραφεί.", - "link": "Οι παραλήπτες που δεν έχουν εγκαταστήσει το LocalSend μπορούν να πραγματοποιήσουν λήψη των επιλεγμένων αρχείων ανοίγοντας τον σύνδεσμο στον φυλλομετρητή τους." - }, - "openFile": { - "title": "Άνοιγμα αρχείου", - "content": "Θέλετε να ανοιχτεί το ληφθέν αρχείο;" - }, "quickSaveFromFavoritesNotice": { "title": "@:general.quickSaveFromFavorites", "content": [ @@ -457,6 +451,12 @@ "pin": { "title": "Εισαγωγή PIN" }, + "sendModeHelp": { + "title": "Λειτουργίες αποστολής", + "single": "Στέλνει αρχεία σε έναν παραλήπτη. Η επιλογή θα διαγραφεί μετά την ολοκλήρωση της μεταφοράς του αρχείου.", + "multiple": "Στέλνει αρχεία σε πολλούς παραλήπτες. Η επιλογή δεν θα διαγραφεί.", + "link": "Οι παραλήπτες που δεν έχουν εγκαταστήσει το LocalSend μπορούν να πραγματοποιήσουν λήψη των επιλεγμένων αρχείων ανοίγοντας τον σύνδεσμο στον φυλλομετρητή τους." + }, "zoom": { "title": "URL" } @@ -473,13 +473,13 @@ }, "web": { "waiting": "@:sendPage.waiting", + "enterPin": "Εισαγωγή PIN", + "invalidPin": "Μη έγκυρο PIN", + "tooManyAttempts": "Πάρα πολλές προσπάθειες", "rejected": "Απορρίφθηκε", "files": "Αρχεία", "fileName": "Όνομα αρχείου", - "size": "Μέγεθος", - "enterPin": "Εισαγωγή PIN", - "invalidPin": "Μη έγκυρο PIN", - "tooManyAttempts": "Πάρα πολλές προσπάθειες" + "size": "Μέγεθος" }, "assetPicker": { "@info": "Translations for the Media selection tool for Android and Iphone", diff --git a/app/assets/i18n/strings_en_IN.json b/app/assets/i18n/strings_en_IN.json index 871cf36f..df96f815 100644 --- a/app/assets/i18n/strings_en_IN.json +++ b/app/assets/i18n/strings_en_IN.json @@ -28,6 +28,7 @@ "open": "Open", "queue": "Queue", "quickSave": "Quick Save", + "quickSaveFromFavorites": "Quick Save for \"Favourites\"", "renamed": "Renamed", "reset": "Reset", "restart": "Restart", @@ -38,8 +39,7 @@ "save": "Save", "unchanged": "Unchanged", "unknown": "Unknown", - "noItemInClipboard": "No items in Clipboard.", - "quickSaveFromFavorites": "Quick Save for \"Favourites\"" + "noItemInClipboard": "No items in Clipboard." }, "receiveTab": { "title": "Receive", @@ -73,6 +73,7 @@ "nearbyDevices": "Nearby devices", "thisDevice": "This Device", "scan": "Look for devices", + "manualSending": "Manual Sending", "sendMode": "Send mode", "sendModes": { "single": "Single recipient", @@ -81,8 +82,7 @@ }, "sendModeHelp": "Explanation", "help": "Please ensure that the desired target is also on the same Wi-Fi network.", - "placeItems": "Place items to share.", - "manualSending": "Manual Sending" + "placeItems": "Place items to share." }, "settingsTab": { "title": "Settings", @@ -104,23 +104,23 @@ "system": "System" }, "saveWindowPlacement": "Quit: Save window placement", + "saveWindowPlacementWindows": "Save window position after exit", "minimizeToTray": "Quit: Minimize to Tray/Menu Bar", "launchAtStartup": "Autostart after login", "launchMinimized": "Autostart: Start hidden", "showInContextMenu": "Show LocalSend in context menu", - "animations": "Animations", - "saveWindowPlacementWindows": "Save window position after exit" + "animations": "Animations" }, "receive": { "title": "Receive", "quickSave": "@:general.quickSave", + "quickSaveFromFavorites": "@:general.quickSaveFromFavorites", "requirePin": "@:webSharePage.requirePin", "autoFinish": "Auto Finish", "destination": "Destination", "downloads": "(Downloads)", "saveToGallery": "Save media to gallery", - "saveToHistory": "Save to history", - "quickSaveFromFavorites": "@:general.quickSaveFromFavourites" + "saveToHistory": "Save to history" }, "send": { "title": "Send", @@ -135,12 +135,12 @@ "deviceModel": "Device model", "port": "Port", "discoveryTimeout": "Discovery Timeout", + "useSystemName": "Use system name", + "generateRandomAlias": "Generate random alias", "portWarning": "You might not be detected by other devices because you are using a custom port. (default: {defaultPort})", "encryption": "Encryption", "multicastGroup": "Multicast", - "multicastGroupWarning": "You might not be detected by other devices because you are using a custom multicast address. (default: {defaultMulticast})", - "generateRandomAlias": "Generate random alias", - "useSystemName": "Use system name" + "multicastGroupWarning": "You might not be detected by other devices because you are using a custom multicast address. (default: {defaultMulticast})" }, "other": { "title": "Other", @@ -161,13 +161,13 @@ "solution": "This is most likely a firewall issue. You can solve this by allowing incoming connections (UDP and TCP) on port {port}.", "openFirewall": "Open Firewall" }, - "noConnection": { - "symptom": "Both devices cannot discover each other nor can they share files.", - "solution": "Does the problem exist on both sides? If so, you need to make sure that both devices are on the same Wi-Fi network and share the same configuration (port, multicast address, encryption). The network may not allow communication between participants. In this case, this option must be enabled on the router." - }, "noDiscovery": { "symptom": "This device cannot discover other devices.", "solution": "Please make sure that all devices are on the same Wi-Fi network and share the same configuration (port, multicast address, encryption). You can try to type the IP address of the target device manually. If this works, consider adding this device to the favourites so it can be automatically discovered in the future." + }, + "noConnection": { + "symptom": "Both devices cannot discover each other nor can they share files.", + "solution": "Does the problem exist on both sides? If so, you need to make sure that both devices are on the same Wi-Fi network and share the same configuration (port, multicast address, encryption). The network may not allow communication between participants. In this case, this option must be enabled on the router." } }, "receiveHistoryPage": { @@ -255,8 +255,8 @@ ], "author": "Author", "contributors": "Contributors", - "translators": "Translators", - "packagers": "Packagers" + "packagers": "Packagers", + "translators": "Translators" }, "donationPage": { "title": "Donate", @@ -346,6 +346,10 @@ "title": "Add to selection", "content": "What do you want to add?" }, + "openFile": { + "title": "Open file", + "content": "Do you want to open the received file?" + }, "addressInput": { "title": "Enter address", "hashtag": "Hashtag", @@ -436,6 +440,14 @@ "title": "@:general.quickSave", "content": "File requests are automatically accepted. Be aware that everyone on the local network can send you files." }, + "quickSaveFromFavoritesNotice": { + "title": "@:general.quickSaveFromFavorites", + "content": [ + "File requests are now accepted automatically from devices in your favourites list.", + "Warning! Currently, this is not entirely secure, as a hacker who has the fingerprint of any device from your favourites list can send you files without restriction.", + "However, this option is still safer than allowing all users on the local network to send you files without restriction." + ] + }, "pin": { "title": "Enter PIN" }, @@ -447,18 +459,6 @@ }, "zoom": { "title": "URL" - }, - "quickSaveFromFavoritesNotice": { - "content": [ - "File requests are now accepted automatically from devices in your favourites list.", - "Warning! Currently, this is not entirely secure, as a hacker who has the fingerprint of any device from your favourites list can send you files without restriction.", - "However, this option is still safer than allowing all users on the local network to send you files without restriction." - ], - "title": "@:general.quickSaveFromFavourites" - }, - "openFile": { - "title": "Open file", - "content": "Do you want to open the received file?" } }, "sanitization": { diff --git a/app/assets/i18n/strings_fr.json b/app/assets/i18n/strings_fr.json index 3158e933..1a282895 100644 --- a/app/assets/i18n/strings_fr.json +++ b/app/assets/i18n/strings_fr.json @@ -276,6 +276,10 @@ "title": "Ajouter à la sélection", "content": "Que voulez-vous ajouter ?" }, + "openFile": { + "title": "Ouvrir le fichier", + "content": "Voulez-vous ouvrir le fichier reçu ?" + }, "addressInput": { "title": "Entrez l'adresse IP", "hashtag": "Hashtag", @@ -351,10 +355,6 @@ "title": "Non disponible", "content": "Cette fonctionnalité est disponible uniquement sur :" }, - "openFile": { - "title": "Ouvrir le fichier", - "content": "Voulez-vous ouvrir le fichier reçu ?" - }, "qr": { "title": "QR Code" }, diff --git a/app/assets/i18n/strings_hi.json b/app/assets/i18n/strings_hi.json index 11e67c4e..bba001cb 100644 --- a/app/assets/i18n/strings_hi.json +++ b/app/assets/i18n/strings_hi.json @@ -28,6 +28,7 @@ "open": "खोलें", "queue": "कतार", "quickSave": "त्वरित सहेजें", + "quickSaveFromFavorites": "\"पसंदीदा\" के लिए त्वरित सहेजें।", "renamed": "नाम बदला गया", "reset": "रीसेट करें", "restart": "पुनः प्रारंभ करें", @@ -38,8 +39,7 @@ "save": "सहेजें", "unchanged": "अपरिवर्तित", "unknown": "अज्ञात", - "noItemInClipboard": "क्लिपबोर्ड में कोई आइटम नहीं", - "quickSaveFromFavorites": "\"पसंदीदा\" के लिए त्वरित सहेजें।" + "noItemInClipboard": "क्लिपबोर्ड में कोई आइटम नहीं" }, "receiveTab": { "title": "प्राप्त करें", @@ -73,6 +73,7 @@ "nearbyDevices": "निकटवर्ती उपकरण", "thisDevice": "यह डिवाइस", "scan": "उपकरणों को खोजें", + "manualSending": "मैन्युअल भेजना", "sendMode": "भेजने का मोड", "sendModes": { "single": "एकल प्राप्तकर्ता", @@ -81,8 +82,7 @@ }, "sendModeHelp": "व्याख्या", "help": "कृपया सुनिश्चित करें कि वांछित लक्ष्य भी उसी वाई-फाई नेटवर्क पर हो।", - "placeItems": "साझा करने के लिए आइटम रखें।", - "manualSending": "मैन्युअल भेजना" + "placeItems": "साझा करने के लिए आइटम रखें।" }, "settingsTab": { "title": "सेटिंग्स", @@ -104,23 +104,23 @@ "system": "सिस्टम" }, "saveWindowPlacement": "बंद करें: विंडो प्लेसमेंट सहेजें", + "saveWindowPlacementWindows": "बाहर निकलने के बाद विंडो की स्थिति सहेजें।", "minimizeToTray": "बंद करें: ट्रे/मेनू बार में मिनिमाइज करें", "launchAtStartup": "लॉगिन के बाद ऑटोस्टार्ट", "launchMinimized": "ऑटोस्टार्ट: छुपा हुआ प्रारंभ करें", "showInContextMenu": "कॉन्टेक्स्ट मेनू में LocalSend दिखाएं", - "animations": "एनिमेशन", - "saveWindowPlacementWindows": "बाहर निकलने के बाद विंडो की स्थिति सहेजें।" + "animations": "एनिमेशन" }, "receive": { "title": "प्राप्त करें", "quickSave": "@:general.quickSave", + "quickSaveFromFavorites": "@:general.quickSaveFromFavorites", "requirePin": "@:webSharePage.requirePin", "autoFinish": "स्वतः समाप्त", "destination": "गंतव्य", "downloads": "(डाउनलोड्स)", "saveToGallery": "मीडिया को गैलरी में सहेजें", - "saveToHistory": "इतिहास में सहेजें", - "quickSaveFromFavorites": "@:general.quickSaveFromFavorites" + "saveToHistory": "इतिहास में सहेजें" }, "send": { "title": "भेजें", @@ -135,12 +135,12 @@ "deviceModel": "डिवाइस का मॉडल", "port": "पोर्ट", "discoveryTimeout": "खोज का समय समाप्त", + "useSystemName": "सिस्टम नाम का उपयोग करें", + "generateRandomAlias": "रैंडम उपनाम जनरेट करें", "portWarning": "आप कस्टम पोर्ट का उपयोग कर रहे हैं इसलिए अन्य डिवाइस आपको पहचान नहीं सकते हैं। (डिफ़ॉल्ट: {defaultPort})", "encryption": "एन्क्रिप्शन", "multicastGroup": "मल्टीकास्ट", - "multicastGroupWarning": "आप कस्टम मल्टीकास्ट पते का उपयोग कर रहे हैं इसलिए अन्य डिवाइस आपको पहचान नहीं सकते हैं। (डिफ़ॉल्ट: {defaultMulticast})", - "useSystemName": "सिस्टम नाम का उपयोग करें", - "generateRandomAlias": "रैंडम उपनाम जनरेट करें" + "multicastGroupWarning": "आप कस्टम मल्टीकास्ट पते का उपयोग कर रहे हैं इसलिए अन्य डिवाइस आपको पहचान नहीं सकते हैं। (डिफ़ॉल्ट: {defaultMulticast})" }, "other": { "title": "अन्य", @@ -161,13 +161,13 @@ "solution": "यह संभवतः फ़ायरवॉल समस्या है। आप इसे पोर्ट {port} पर आने वाले कनेक्शनों (UDP और TCP) को अनुमति देकर हल कर सकते हैं।", "openFirewall": "फायरवॉल खोलें" }, + "noDiscovery": { + "symptom": "यह डिवाइस अन्य डिवाइसों को ढूंढ नहीं सकता।", + "solution": "सुनिश्चित करें कि सभी डिवाइस एक ही वाई-फाई नेटवर्क से जुड़े हों। पोर्ट, मल्टीकास्ट पता और एन्क्रिप्शन की सेटिंग्स समान होनी चाहिए। यदि डिवाइस नहीं मिलता है, तो लक्ष्य डिवाइस का आईपी पता स्वयं दर्ज करें। अगर यह काम करता है, तो डिवाइस को पसंदीदा में सहेजें ताकि भविष्य में स्वचालित रूप से मिल सके।" + }, "noConnection": { "symptom": "दोनों उपकरण एक दूसरे को खोज नहीं सकते और न ही वे फाइल साझा कर सकते हैं।", "solution": "क्या समस्या दोनों तरफ मौजूद है? अगर हाँ, तो आपको यह सुनिश्चित करना होगा कि दोनों डिवाइस एक ही वाई-फ़ाई नेटवर्क पर हैं और एक ही कॉन्फ़िगरेशन (पोर्ट, मल्टीकास्ट पता, एन्क्रिप्शन) साझा करते हैं। नेटवर्क प्रतिभागियों के बीच संचार की अनुमति नहीं दे सकता है। इस मामले में, यह विकल्प राउटर पर सक्षम होना चाहिए।" - }, - "noDiscovery": { - "solution": "सुनिश्चित करें कि सभी डिवाइस एक ही वाई-फाई नेटवर्क से जुड़े हों। पोर्ट, मल्टीकास्ट पता और एन्क्रिप्शन की सेटिंग्स समान होनी चाहिए। यदि डिवाइस नहीं मिलता है, तो लक्ष्य डिवाइस का आईपी पता स्वयं दर्ज करें। अगर यह काम करता है, तो डिवाइस को पसंदीदा में सहेजें ताकि भविष्य में स्वचालित रूप से मिल सके।", - "symptom": "यह डिवाइस अन्य डिवाइसों को ढूंढ नहीं सकता।" } }, "receiveHistoryPage": { @@ -255,8 +255,8 @@ ], "author": "लेखक", "contributors": "योगदानकर्ताओं", - "translators": "अनुवादकों", - "packagers": "पैकेजर्स" + "packagers": "पैकेजर्स", + "translators": "अनुवादकों" }, "donationPage": { "title": "दान करें", @@ -346,6 +346,10 @@ "title": "फाइल जोड़ें", "content": "आप क्या जोड़ना चाहते हैं?" }, + "openFile": { + "title": "फ़ाइल खोलें", + "content": "क्या आप प्राप्त फ़ाइल खोलना चाहते हैं?" + }, "addressInput": { "title": "पता दर्ज करें", "hashtag": "हैशटैग", @@ -436,6 +440,14 @@ "title": "@:general.quickSave", "content": "फ़ाइल अनुरोध स्वचालित रूप से स्वीकार कर लिए जाते हैं। ध्यान दें कि स्थानीय नेटवर्क पर सभी लोग आपको फ़ाइलें भेज सकते हैं।" }, + "quickSaveFromFavoritesNotice": { + "title": "@:general.quickSaveFromFavorites", + "content": [ + "अब आपके पसंदीदा सूची में शामिल डिवाइसों से फ़ाइल अनुरोध स्वतः स्वीकार किए जाएंगे।", + "चेतावनी! वर्तमान में, यह पूरी तरह से सुरक्षित नहीं है, क्योंकि कोई हैकर जो आपकी पसंदीदा सूची में शामिल किसी भी डिवाइस का फ़िंगरप्रिंट प्राप्त कर लेता है, वह बिना किसी प्रतिबंध के आपको फ़ाइलें भेज सकता है।", + "हालांकि, यह विकल्प अभी भी उन सभी उपयोगकर्ताओं को बिना प्रतिबंध फ़ाइलें भेजने की अनुमति देने की तुलना में सुरक्षित है, जो स्थानीय नेटवर्क पर हैं।" + ] + }, "pin": { "title": "PIN दर्ज करें" }, @@ -447,18 +459,6 @@ }, "zoom": { "title": "URL" - }, - "openFile": { - "title": "फ़ाइल खोलें", - "content": "क्या आप प्राप्त फ़ाइल खोलना चाहते हैं?" - }, - "quickSaveFromFavoritesNotice": { - "title": "@:general.quickSaveFromFavorites", - "content": [ - "अब आपके पसंदीदा सूची में शामिल डिवाइसों से फ़ाइल अनुरोध स्वतः स्वीकार किए जाएंगे।", - "चेतावनी! वर्तमान में, यह पूरी तरह से सुरक्षित नहीं है, क्योंकि कोई हैकर जो आपकी पसंदीदा सूची में शामिल किसी भी डिवाइस का फ़िंगरप्रिंट प्राप्त कर लेता है, वह बिना किसी प्रतिबंध के आपको फ़ाइलें भेज सकता है।", - "हालांकि, यह विकल्प अभी भी उन सभी उपयोगकर्ताओं को बिना प्रतिबंध फ़ाइलें भेजने की अनुमति देने की तुलना में सुरक्षित है, जो स्थानीय नेटवर्क पर हैं।" - ] } }, "sanitization": { diff --git a/app/assets/i18n/strings_kab.json b/app/assets/i18n/strings_kab.json deleted file mode 100644 index 129e1def..00000000 --- a/app/assets/i18n/strings_kab.json +++ /dev/null @@ -1,211 +0,0 @@ -{ - "general": { - "copiedToClipboard": "Yettwanɣel ɣef afus", - "open": "Ldi", - "accepted": "Yettwaqbel", - "accept": "Qbel", - "advanced": "Talqayt", - "cancel": "Sefsex", - "close": "Mdel", - "continueStr": "Ddu", - "copy": "Nɣel", - "decline": "Agi", - "done": "Immed", - "delete": "Kkes", - "edit": "Ẓreg", - "error": "Tuccḍa", - "example": "Amedya", - "files": "Ifuyla", - "hide": "Ffer", - "restart": "Ales asenker", - "settings": "Iɣewwaṛen", - "stop": "Ḥbes", - "save": "Sekles", - "unknown": "Arussin", - "add": "Rnu", - "confirm": "Sentem", - "offline": "Beṛṛa n tuqqna", - "online": "Uqqin", - "finished": "Ifukk", - "off": "Yensa", - "on": "Yermed", - "quickSave": "Asekles uzrib", - "quickSaveFromFavorites": "Asekles uzrib i \"Yismenyafen\"", - "renamed": "Ibeddel isem", - "skipped": "Yettwazgel", - "start": "Bdu", - "reset": "Sefsex isenfal", - "unchanged": "War asenfel", - "noItemInClipboard": "Ulac iferdisen deg tecfawt." - }, - "receiveTab": { - "quickSave": { - "on": "@:general.on", - "off": "@:general.off", - "favorites": "Imenyafen" - }, - "infoBox": { - "ip": "IP:", - "port": "Tawwurt:", - "alias": "Isem n yibenk:" - }, - "title": "Nermes" - }, - "sendTab": { - "picker": { - "app": "Asnas", - "clipboard": "Senteḍ", - "file": "Afaylu", - "folder": "Akaram", - "media": "Amidya", - "text": "Aḍris" - }, - "title": "Azen", - "selection": { - "title": "Tafrant", - "files": "Ifuyla: {files}", - "size": "Teɣzi: {size}" - }, - "sendModeHelp": "Asegzi", - "thisDevice": "Ibenk-a", - "manualSending": "Tuzna s ufus", - "sendMode": "Askar n tuzna", - "shareIntentInfo": "Tzemreḍ daɣen ad tesqedceḍ tamahilt \"Bḍu\" n yibenk aziraz i wakken ad d-tferneḍ ifuyla s wugar n tefses.", - "nearbyDevices": "Ibenkan uqriben", - "scan": "Nadi ibenkan", - "sendModes": { - "link": "Bḍu s useɣwen" - } - }, - "locale": "Taqbaylit", - "appName": "LocalSend", - "settingsTab": { - "title": "Iɣewwaṛen", - "general": { - "title": "Amatu", - "brightness": "Asentel", - "brightnessOptions": { - "light": "Aceεlal", - "system": "Anagraw", - "dark": "Ubrik" - }, - "color": "Ini", - "colorOptions": { - "system": "Anagraw", - "oled": "OLED" - }, - "languageOptions": { - "system": "Anagraw" - }, - "animations": "Ismusuyen", - "language": "Tutlayt" - }, - "send": { - "title": "Azen" - }, - "network": { - "title": "Aẓeṭṭa", - "server": "Aqeddac", - "alias": "Isem n yibenk", - "deviceType": "Anaw n yibenk", - "port": "Tawwurt", - "encryption": "Awgelhen" - }, - "other": { - "privacyPolicy": "Tasertit n tbaḍnit", - "donate": "Mudd tawsa" - }, - "receive": { - "saveToGallery": "Sekles imidyaten deg gallery", - "saveToHistory": "Sekles deg uzray" - } - }, - "receiveHistoryPage": { - "title": "Amazray", - "openFolder": "Ldi akaram", - "entryActions": { - "info": "Talɣut", - "open": "Ldi afaylu" - } - }, - "apkPickerPage": { - "title": "Asnas (APK)" - }, - "selectedFilesPage": { - "deleteAll": "Kkes-iten akk" - }, - "receiveOptionsPage": { - "title": "Tinefrunin" - }, - "aboutPage": { - "author": "Ameskar", - "contributors": "Imttekkiyen", - "translators": "Imsuqlen" - }, - "donationPage": { - "title": "Mudd tawsa" - }, - "dialogs": { - "favoriteDialog": { - "title": "Imenyafen", - "addFavorite": "Rnu" - }, - "favoriteEditDialog": { - "titleEdit": "Iɣewwaṛen", - "port": "Tawwurt" - }, - "fileInfo": { - "size": "Tiddi:", - "path": "Abrid:", - "sender": "Amazan:" - }, - "localNetworkUnauthorized": { - "gotoSettings": "Iɣewwaṛen" - }, - "quickActions": { - "counter": "Amsiḍen" - }, - "zoom": { - "title": "URL" - } - }, - "tray": { - "closeWindows": "Ffeɣ" - }, - "web": { - "files": "Ifuyla", - "size": "Tiddi", - "invalidPin": "Tangalt PIN d tarameɣtut", - "tooManyAttempts": "Aṭas n yineεruḍen", - "rejected": "Yettwagi", - "fileName": "Isem n ufaylu" - }, - "assetPicker": { - "confirm": "Sentem", - "cancel": "Sefsex", - "edit": "Ẓreg", - "gifIndicator": "GIF", - "preview": "Taskant", - "select": "Fren", - "sTypeAudioLabel": "Imesli", - "sTypeImageLabel": "Tugna", - "sTypeVideoLabel": "Tavidyutt", - "sActionSelectHint": "fren", - "loadFailed": "Asali yecceḍ", - "original": "Aɣbalu", - "emptyList": "Tabdart d tilemt", - "unSupportedAssetType": "Anaw n ufaylu ur yettwasefrak ara.", - "sTypeOtherLabel": "Amidya wayeḍ", - "sActionPlayHint": "ɣeṛ", - "sActionPreviewHint": "taskant", - "sActionSwitchPathLabel": "beddel abrid", - "accessiblePathName": "Ifuyla wuɣur ara tawwḍeḍ", - "sActionUseCameraHint": "seqdec takamirat", - "sNameDurationLabel": "tanzagt", - "sUnitAssetCountLabel": "amḍan" - }, - "troubleshootPage": { - "solution": "Tifrat:", - "fixButton": "Ṣeggem s wudem awurman" - } -} diff --git a/app/assets/i18n/strings_lt.json b/app/assets/i18n/strings_lt.json deleted file mode 100644 index 7d898fad..00000000 --- a/app/assets/i18n/strings_lt.json +++ /dev/null @@ -1,9 +0,0 @@ -{ - "general": { - "accept": "Priimti", - "add": "Pridėti", - "accepted": "Priimta" - }, - "locale": "Lietuvių", - "appName": "LocalSend" -} diff --git a/app/assets/i18n/strings_ms.json b/app/assets/i18n/strings_ms.json index 24b2c40c..9fa939be 100644 --- a/app/assets/i18n/strings_ms.json +++ b/app/assets/i18n/strings_ms.json @@ -109,12 +109,12 @@ "title": "Terima", "quickSave": "@:general.quickSave", "quickSaveFromFavorites": "@:general.quickSaveFromFavorites", + "requirePin": "Memerlukan PIN", + "autoFinish": "Selesai Automatik", "destination": "Simpan ke folder", "downloads": "(Muat turun)", "saveToGallery": "Simpan media ke galeri", - "saveToHistory": "Simpan ke sejarah", - "requirePin": "Memerlukan PIN", - "autoFinish": "Selesai Automatik" + "saveToHistory": "Simpan ke sejarah" }, "send": { "title": "Hantar", @@ -128,13 +128,13 @@ "deviceType": "Jenis peranti", "deviceModel": "Model peranti", "port": "Port", + "discoveryTimeout": "Tamat Masa Penemuan", + "useSystemName": "Gunakan nama sistem", + "generateRandomAlias": "Jana alias rawak", "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})", - "discoveryTimeout": "Tamat Masa Penemuan", - "useSystemName": "Gunakan nama sistem", - "generateRandomAlias": "Jana alias rawak" + "multicastGroupWarning": "Anda mungkin tidak dapat dikesan oleh peranti lain kerana anda menggunakan alamat multicast tersuai. (lalai: {defaultMulticast})" }, "other": { "title": "Lain-lain", @@ -354,6 +354,23 @@ "errorDialog": { "title": "@:general.error" }, + "favoriteDialog": { + "title": "Kegemaran", + "noFavorites": "Tiada peranti kegemaran lagi.", + "addFavorite": "Tambah" + }, + "favoriteDeleteDialog": { + "title": "Padam dari kegemaran", + "content": "Adakah anda benar-benar mahu memadam \"{name}\" dari kegemaran?" + }, + "favoriteEditDialog": { + "titleAdd": "Tambah ke kegemaran", + "titleEdit": "Tetapan", + "name": "Nama peranti", + "auto": "(auto)", + "ip": "Alamat IP", + "port": "Port" + }, "fileInfo": { "title": "Maklumat fail", "fileName": "Nama fail:", @@ -409,36 +426,23 @@ "quickSaveFromFavoritesNotice": { "title": "@:general.quickSaveFromFavorites" }, + "pin": { + "title": "Masukkan PIN" + }, "sendModeHelp": { "title": "Mod penghantaran", "single": "Menghantar fail kepada satu penerima. Pilihan akan dibersihkan selepas pemindahan fail selesai.", "multiple": "Menghantar fail kepada beberapa penerima. Pilihan tidak akan dibersihkan.", "link": "Penerima yang tidak mempunyai LocalSend dipasang boleh memuat turun fail yang dipilih dengan membuka pautan dalam pelayar mereka." }, - "favoriteDialog": { - "title": "Kegemaran", - "noFavorites": "Tiada peranti kegemaran lagi.", - "addFavorite": "Tambah" - }, - "favoriteDeleteDialog": { - "title": "Padam dari kegemaran", - "content": "Adakah anda benar-benar mahu memadam \"{name}\" dari kegemaran?" - }, - "favoriteEditDialog": { - "titleAdd": "Tambah ke kegemaran", - "titleEdit": "Tetapan", - "name": "Nama peranti", - "auto": "(auto)", - "ip": "Alamat IP", - "port": "Port" - }, - "pin": { - "title": "Masukkan PIN" - }, "zoom": { "title": "URL" } }, + "sanitization": { + "empty": "Nama fail tidak boleh kosong", + "invalid": "Nama fail mengandungi aksara yang tidak sah" + }, "tray": { "open": "@:general.open", "close": "Keluar LocalSend", @@ -480,9 +484,5 @@ "sActionUseCameraHint": "guna kamera", "sNameDurationLabel": "tempoh", "sUnitAssetCountLabel": "kiraan" - }, - "sanitization": { - "empty": "Nama fail tidak boleh kosong", - "invalid": "Nama fail mengandungi aksara yang tidak sah" } } diff --git a/app/assets/i18n/strings_si.json b/app/assets/i18n/strings_si.json index e1f246c8..d815347c 100644 --- a/app/assets/i18n/strings_si.json +++ b/app/assets/i18n/strings_si.json @@ -1,57 +1,57 @@ { + "locale": "සිංහල", + "appName": "LocalSend", "general": { - "off": "ඕෆ් (Off)", - "on": "ඔන් (On)", - "accepted": "පිළිගත්", - "confirm": "තහවුරු කරන්න", - "cancel": "අවලංගු කරන්න", - "advanced": "ගැඹුරු", - "finished": "අවසන්", - "copiedToClipboard": "Clipboard වෙත කොපි කරන ලදි", - "close": "වසා දමන්න", - "error": "දෝෂය", - "edit": "සංස්කරණය", - "example": "උදාහරණය", - "files": "ගොනු", - "queue": "පෝලිම", "accept": "පිළිගන්න", + "accepted": "පිළිගත්", + "add": "ඇඩ් කරන්න", + "advanced": "ගැඹුරු", + "cancel": "අවලංගු කරන්න", + "close": "වසා දමන්න", + "confirm": "තහවුරු කරන්න", "continueStr": "ඉදිරියට", + "copy": "කොපි කරන්න", + "copiedToClipboard": "Clipboard වෙත කොපි කරන ලදි", "decline": "ප්‍රතික්ෂේප කරන්න", "done": "සම්පූර්ණයි", "delete": "මකන්න", - "copy": "කොපි කරන්න", + "edit": "සංස්කරණය", + "error": "දෝෂය", + "example": "උදාහරණය", + "files": "ගොනු", + "finished": "අවසන්", "hide": "සඟවන්න", - "online": "ඔන්ලයින්", + "off": "ඕෆ් (Off)", "offline": "ඕෆ්ලයින්", + "on": "ඔන් (On)", + "online": "ඔන්ලයින්", "open": "විවෘත කරන්න", - "renamed": "නම වෙනස් කරන ලදි", + "queue": "පෝලිම", "quickSave": "Quick සේව්", - "settings": "සැකසුම්", - "skipped": "මග හරින ලදි", - "unchanged": "නොවෙනස්", - "unknown": "නොදන්නා", "quickSaveFromFavorites": "\"ප්‍රියතම\" සඳහා Quick සේව් කරන්න", + "renamed": "නම වෙනස් කරන ලදි", "reset": "වෙනස්කම් අහෝසි කරන්න", "restart": "නැවත ආරම්භ කරන්න", - "save": "සේව් කරන්න", + "settings": "සැකසුම්", + "skipped": "මග හරින ලදි", + "start": "ආරම්භ කරන්න", "stop": "නවත්වන්න", - "noItemInClipboard": "Clipboard හි අයිතම නැත.", - "add": "ඇඩ් කරන්න", - "start": "ආරම්භ කරන්න" + "save": "සේව් කරන්න", + "unchanged": "නොවෙනස්", + "unknown": "නොදන්නා", + "noItemInClipboard": "Clipboard හි අයිතම නැත." }, - "locale": "සිංහල", - "appName": "LocalSend", "receiveTab": { "title": "ලබාගන්න", "infoBox": { - "alias": "උපාංගයේ නම:", + "ip": "IP:", "port": "Port:", - "ip": "IP:" + "alias": "උපාංගයේ නම:" }, "quickSave": { - "on": "@:general.on", "off": "@:general.off", - "favorites": "ප්‍රියතම" + "favorites": "ප්‍රියතම", + "on": "@:general.on" } }, "sendTab": { @@ -65,29 +65,36 @@ "file": "ගොනුව", "folder": "ෆෝල්ඩරය", "media": "මාධ්‍ය", - "clipboard": "පේස්ට් කරන්න", + "text": "පේළි (Text)", "app": "ඇප්", - "text": "පේළි (Text)" + "clipboard": "පේස්ට් කරන්න" }, - "scan": "උපාංග සොයන්න", - "manualSending": "Manual යැවීම", - "sendModes": { - "multiple": "බහු ලබන්නන්", - "single": "තනි ලබන්නා", - "link": "ලින්ක් (Link) ඔස්සේ බෙදාගන්න (Share)" - }, - "placeItems": "බෙදා (Share) ගැනීමට අවශ්‍ය දේ තබන්න.", + "shareIntentInfo": "ඔබට වඩාත් පහසුවෙන් ගොනු තේරීමට ඔබගේ ජංගම උපාංගයේ \"Share\" විශේෂාංගය භාවිතා කළ හැක.", "nearbyDevices": "ආසන්න උපාංග", "thisDevice": "මෙම උපාංගය", + "scan": "උපාංග සොයන්න", + "manualSending": "Manual යැවීම", "sendMode": "යැවීමේ ක්‍රමය", + "sendModes": { + "single": "තනි ලබන්නා", + "multiple": "බහු ලබන්නන්", + "link": "ලින්ක් (Link) ඔස්සේ බෙදාගන්න (Share)" + }, "sendModeHelp": "පැහැදිලි කිරීම", "help": "කරුණාකර ලබන්නාගේ උපාංගය හා ඔබේ උපාංගය එකම Wi-Fi ජාලයේ ඇති බව සහතික කර ගන්න.", - "shareIntentInfo": "ඔබට වඩාත් පහසුවෙන් ගොනු තේරීමට ඔබගේ ජංගම උපාංගයේ \"Share\" විශේෂාංගය භාවිතා කළ හැක." + "placeItems": "බෙදා (Share) ගැනීමට අවශ්‍ය දේ තබන්න." }, "settingsTab": { + "title": "සැකසුම්", "general": { "title": "සාමාන්‍ය", "brightness": "තේමාව", + "brightnessOptions": { + "system": "පද්ධතිය", + "dark": "අඳුරු", + "light": "එළිය" + }, + "color": "පාට", "colorOptions": { "system": "පද්ධතිය", "oled": "OLED" @@ -96,30 +103,24 @@ "languageOptions": { "system": "පද්ධතිය" }, - "color": "පාට", - "minimizeToTray": "වසා දැමීමේදී System Tray/Menu Bar වෙත අවම කරන්න", - "launchAtStartup": "පුරනය වීමෙන් පසු ස්වයංක්‍රීයව ආරම්භ කරන්න", - "showInContextMenu": "Context මෙනුව තුළ LocalSend පෙන්වන්න", - "animations": "ඇනිමේශන්", - "brightnessOptions": { - "light": "එළිය", - "system": "පද්ධතිය", - "dark": "අඳුරු" - }, "saveWindowPlacement": "ඉවත් වූ පසු කවුළුවේ පිහිටීම සුරකින්න", "saveWindowPlacementWindows": "පිටවීමෙන් පසු කවුළුවේ පිහිටීම සුරකින්න", - "launchMinimized": "ස්වයංක්‍රීය ආරම්භය: සඟවා ආරම්භ කරන්න" + "minimizeToTray": "වසා දැමීමේදී System Tray/Menu Bar වෙත අවම කරන්න", + "launchAtStartup": "පුරනය වීමෙන් පසු ස්වයංක්‍රීයව ආරම්භ කරන්න", + "launchMinimized": "ස්වයංක්‍රීය ආරම්භය: සඟවා ආරම්භ කරන්න", + "showInContextMenu": "Context මෙනුව තුළ LocalSend පෙන්වන්න", + "animations": "ඇනිමේශන්" }, "receive": { - "quickSave": "@:general.quickSave", - "downloads": "(බාගත කිරීම්)", - "autoFinish": "ස්වයංක්‍රීය අවසන් කිරීම", - "destination": "ෆෝල්ඩරය වෙත සුරකින්න", "title": "ලබාගන්න", - "saveToHistory": "ඉතිහාසයට සුරකින්න", + "quickSave": "@:general.quickSave", "quickSaveFromFavorites": "@:general.quickSaveFromFavorites", "requirePin": "@:webSharePage.requirePin", - "saveToGallery": "මාධ්‍ය ගැලරියට සුරකින්න" + "autoFinish": "ස්වයංක්‍රීය අවසන් කිරීම", + "destination": "ෆෝල්ඩරය වෙත සුරකින්න", + "downloads": "(බාගත කිරීම්)", + "saveToGallery": "මාධ්‍ය ගැලරියට සුරකින්න", + "saveToHistory": "ඉතිහාසයට සුරකින්න" }, "send": { "title": "යවන්න", @@ -129,37 +130,32 @@ "title": "ජාලය", "needRestart": "සැකසුම් යෙදීමට සේවාදායකය නැවත අරඹන්න!", "server": "සේවාදායකය", + "alias": "උපාංගයේ නම", + "deviceType": "උපාංගයේ වර් ගය", + "deviceModel": "උපාංගයේ ආකෘතිය", "port": "Port", "discoveryTimeout": "සොයා ගැනීමේ කාලසීමාව", + "useSystemName": "පද්ධති නම භාවිතා කරන්න", + "generateRandomAlias": "අහඹු නමක් ජනනය කරන්න", + "portWarning": "ඔබ custom port එකක් භාවිතා කරන්නේ නම්, වෙනත් උපාංග වලට ඔබව හඳුනා ගත නොහැක. (default: {defaultPort})", "encryption": "කේතනය", "multicastGroup": "Multicast ලිපිනය", - "multicastGroupWarning": "ඔබ custom multicast ලිපිනයක් භාවිතා කරන්නේ නම්, වෙනත් උපාංග වලට ඔබව හඳුනා ගත නොහැක. (default: {defaultMulticast})", - "generateRandomAlias": "අහඹු නමක් ජනනය කරන්න", - "alias": "උපාංගයේ නම", - "deviceModel": "උපාංගයේ ආකෘතිය", - "deviceType": "උපාංගයේ වර් ගය", - "useSystemName": "පද්ධති නම භාවිතා කරන්න", - "portWarning": "ඔබ custom port එකක් භාවිතා කරන්නේ නම්, වෙනත් උපාංග වලට ඔබව හඳුනා ගත නොහැක. (default: {defaultPort})" + "multicastGroupWarning": "ඔබ custom multicast ලිපිනයක් භාවිතා කරන්නේ නම්, වෙනත් උපාංග වලට ඔබව හඳුනා ගත නොහැක. (default: {defaultMulticast})" }, "other": { - "support": "LocalSend සඳහා සහය දක්වන්න", - "privacyPolicy": "පුද්ගලික තොරතුරු ප්‍රතිපත්තිය", - "donate": "ආධාර කරන්න", "title": "වෙනත්", + "support": "LocalSend සඳහා සහය දක්වන්න", + "donate": "ආධාර කරන්න", + "privacyPolicy": "පුද්ගලික තොරතුරු ප්‍රතිපත්තිය", "termsOfUse": "භාවිතා කිරීමේ කොන්දේසි" }, - "advancedSettings": "ගැඹුරු සැකසුම්", - "title": "සැකසුම්" + "advancedSettings": "ගැඹුරු සැකසුම්" }, "troubleshootPage": { "title": "ගැටලු විසඳන්න", - "fixButton": "ස්වයංක්‍රීයව නිවැරදි කරන්න", - "noConnection": { - "symptom": "දෙපාර්ශ්වයටම එකිනෙකාගේ උපාංග හඳුනාගැනීම හෝ ගොනු බෙදාගැනීම කළ නොහැක.", - "solution": "ගැටලුව දෙපාර්ශවයේම තිබේ ද? එසේ නම්, දෙපාර්ශවයේම උපාංග එකම Wi-Fi ජාලයක ඇති බවත්, එකම configuration (port, multicast address, encryption) එකක් ඇති බවත් තහවුරු කරගන්න. Access Point (AP) Isolation මඟින් Wi-Fi ජාලය තුළ සහභාගීවන්නන් අතර සන්නිවේදනය වාරණය විය හැක. එවැනි අවස්තාවක, මෙම විකල්පය (AP Isolation) රවුටරයේ අක්‍රීය කළ යුතුය." - }, - "solution": "විසඳුම:", "subTitle": "යෙදුම අපේක්ෂිත පරිදි ක්‍රියා නොකරන්නේද? මෙහි පොදු ගැටලු සඳහා විසඳුම් සොයා ගත හැක.", + "solution": "විසඳුම:", + "fixButton": "ස්වයංක්‍රීයව නිවැරදි කරන්න", "firewall": { "symptom": "මෙම උපාංගය මගින් වෙනත් උපාංගවලට ගොනු යැවිය හැක, නමුත් වෙනත් උපාංගවලින් මෙම උපාංගයට ගොනු යැවිය නොහැක.", "solution": "මෙය බොහෝවිට firewall සම්බන්ධ ගැටලුවක් විය හැක. විසඳීමට port {port} එක සඳහා 'Allow Incoming Connections\" (TCP සහ UDP) ලබා දෙන්න.", @@ -168,6 +164,10 @@ "noDiscovery": { "symptom": "මෙම උපාංගයට වෙනත් උපාංග සොයාගත නොහැක.", "solution": "කරුණාකර සියලුම උපාංග එකම Wi-Fi ජාලයක ඇති බවත්, එකම configuration (port, multicast address, encryption) එකක් ඇති බවත් තහවුරු කරගන්න. ඔබට ඉලක්කගත උපාංගයේ IP ලිපිනය අතින් ටයිප් කිරීමට උත්සාහ කළ හැකිය. මෙය ක්‍රියාත්මක නම්, මෙම උපාංගය ප්‍රියතමයන් අතරට එක් කිරීමට සලකා බලන්න, එවිට අනාගතයේදී එය ස්වයංක්‍රීයව සොයාගත හැක." + }, + "noConnection": { + "symptom": "දෙපාර්ශ්වයටම එකිනෙකාගේ උපාංග හඳුනාගැනීම හෝ ගොනු බෙදාගැනීම කළ නොහැක.", + "solution": "ගැටලුව දෙපාර්ශවයේම තිබේ ද? එසේ නම්, දෙපාර්ශවයේම උපාංග එකම Wi-Fi ජාලයක ඇති බවත්, එකම configuration (port, multicast address, encryption) එකක් ඇති බවත් තහවුරු කරගන්න. Access Point (AP) Isolation මඟින් Wi-Fi ජාලය තුළ සහභාගීවන්නන් අතර සන්නිවේදනය වාරණය විය හැක. එවැනි අවස්තාවක, මෙම විකල්පය (AP Isolation) රවුටරයේ අක්‍රීය කළ යුතුය." } }, "receiveHistoryPage": { @@ -188,10 +188,13 @@ "excludeAppsWithoutLaunchIntent": "ක්‍රියාත්මක කිරීමට නොහැකි ඇප් බැහැර කරන්න", "apps": "ඇප් {n}" }, + "selectedFilesPage": { + "deleteAll": "සියල්ල මකන්න" + }, "receivePage": { "subTitle": { - "other": "ඔබට ගොනු {n} එවීමට කැමතියි", - "one": "ඔබට ගොනුවක් එවීමට කැමතියි" + "one": "ඔබට ගොනුවක් එවීමට කැමතියි", + "other": "ඔබට ගොනු {n} එවීමට කැමතියි" }, "subTitleMessage": "ඔබට පණිවිඩයක් එවා ඇත:", "subTitleLink": "ඔබට ලින්ක් (Link) එකක් එවා ඇත:", @@ -199,9 +202,9 @@ }, "receiveOptionsPage": { "title": "විකල්ප", + "destination": "@:settingsTab.receive.destination", "appDirectory": "(LocalSend ෆෝල්ඩරය)", "saveToGallery": "@:settingsTab.receive.saveToGallery", - "destination": "@:settingsTab.receive.destination", "saveToGalleryOff": "ෆෝල්ඩර් නොමැති බැවින් ස්වයංක්‍රීයව ක්‍රියා විරහිත කරන ලදි." }, "sendPage": { @@ -212,44 +215,37 @@ }, "progressPage": { "titleSending": "ගොනු යවමින්", + "titleReceiving": "ගොනු ලබා ගනිමින්", "savedToGallery": "Photos තුළ සේව් කරන ලදි", "total": { "title": { + "sending": "සම්පූර්ණ ප්‍රගතිය ({time})", "finishedError": "දෝෂයක් සමඟ අවසන් විය", "canceledSender": "යවන්නා විසින් අවලංගු කරන ලදී", - "canceledReceiver": "ලැබුම්කරු විසින් අවලංගු කරන ලදී", - "sending": "සම්පූර්ණ ප්‍රගතිය ({time})" + "canceledReceiver": "ලැබුම්කරු විසින් අවලංගු කරන ලදී" }, "count": "ගොනු: {curr} / {n}", - "speed": "වේගය: {speed}/s", - "size": "විශාලත්වය: {curr} / {n}" - }, - "titleReceiving": "ගොනු ලබා ගනිමින්" + "size": "විශාලත්වය: {curr} / {n}", + "speed": "වේගය: {speed}/s" + } }, "webSharePage": { "title": "ලින්ක් (Link) ඔස්සේ බෙදාගන්න (Share)", "loading": "සේවාදායකය ආරම්භ කරමින්…", "stopping": "සේවාදායකය නවතමින්…", "error": "සේවාදායකය ආරම්භ කිරීමේදී දෝෂයක් සිදු විය.", + "openLink": { + "one": "මෙම ලින්ක් (Link) එක ඔබේ බ්‍රවුසරය (Browser) මගින් විවෘත කරන්න:", + "other": "මෙම ලින්ක් (Link) වලින් එකක් ඔබේ බ්‍රවුසරය (Browser) මගින් විවෘත කරන්න:" + }, "requests": "ඉල්ලීම්", "noRequests": "තවමත් කිසිදු ඉල්ලීමක් නැත.", "encryption": "@:settingsTab.network.encryption", "autoAccept": "ඉල්ලීම් ස්වයංක්‍රීයව පිළිගන්න", "requirePin": "PIN අවශ්‍යයි", "pinHint": "PIN එක \"{pin}\"", - "pendingRequests": "Pending වන ඉල්ලීම්: {n}", - "openLink": { - "one": "මෙම ලින්ක් (Link) එක ඔබේ බ්‍රවුසරය (Browser) මගින් විවෘත කරන්න:", - "other": "මෙම ලින්ක් (Link) වලින් එකක් ඔබේ බ්‍රවුසරය (Browser) මගින් විවෘත කරන්න:" - }, - "encryptionHint": "LocalSend self-signed certificate එකක් භාවිතා කරයි. ඔබ විසින් එය බ්‍රවුසරය (browser) තුළ දි පිළිගැනීම (accept) අවශ්‍ය වේ." - }, - "donationPage": { - "title": "ආධාර කරන්න", - "donate": "දායකත්වය {amount}", - "thanks": "ඔබට බොහොම ස්තූතියි!", - "restore": "මිලදී ගැනීම ප්‍රතිස්ථාපනය (Restore) කරන්න", - "info": "LocalSend නිදහස්, විවෘත-මූලාශ්‍ර වන අතර කිසිදු වෙළඳ දැන්වීමකින් තොර වේ. ඔබ මෙම ඇප් එකට කැමැති නම්, මෙහි සංවර්ධනය සඳහා මූල්‍යමය දායකත්වයක් ලබා දී සහය ලබා දීමට හැක." + "encryptionHint": "LocalSend self-signed certificate එකක් භාවිතා කරයි. ඔබ විසින් එය බ්‍රවුසරය (browser) තුළ දි පිළිගැනීම (accept) අවශ්‍ය වේ.", + "pendingRequests": "Pending වන ඉල්ලීම්: {n}" }, "aboutPage": { "title": "LocalSend පිළිබඳව", @@ -257,79 +253,58 @@ "LocalSend යනු ඔබට අන්තර්ජාල සම්බන්ධතාවයක අවශ්‍යතාවයකින් තොරව, local ජාලයක් තුළ, සමීප උපාංග සමඟ ගොනු සහ පණිවිඩ ආරක්ෂිතව බෙදා ගත හැකි නිදහස්, විවෘත-මූලාශ්‍රය (Free and open-source) ඇප් එකකි.", "මෙම ඇප් එක Android, iOS, macOS, Windows සහ Linux සඳහා පවතියි. එය ඩවුන්ලෝඩ් (Download) කරගත හැකි ආකාර අපේ අඩවියේ මුල් පිටුවෙන් සොයාගත හැක." ], + "author": "කතෲ", "contributors": "සහය දැක්වූවන්", - "translators": "පරිවර්තකයන්", "packagers": "පැකේජ්ර්ස්", - "author": "කතෲ" + "translators": "පරිවර්තකයන්" + }, + "donationPage": { + "title": "ආධාර කරන්න", + "info": "LocalSend නිදහස්, විවෘත-මූලාශ්‍ර වන අතර කිසිදු වෙළඳ දැන්වීමකින් තොර වේ. ඔබ මෙම ඇප් එකට කැමැති නම්, මෙහි සංවර්ධනය සඳහා මූල්‍යමය දායකත්වයක් ලබා දී සහය ලබා දීමට හැක.", + "donate": "දායකත්වය {amount}", + "thanks": "ඔබට බොහොම ස්තූතියි!", + "restore": "මිලදී ගැනීම ප්‍රතිස්ථාපනය (Restore) කරන්න" }, "changelogPage": { "title": "වෙනස්කම් ලේඛනය" }, + "aliasGenerator(ignoreMissing, ignoreGpt)": { + "@info": "විවිධ භාෂා වල වෙනස් වචන තිබිය හැකි අතර, එය සෑමව්ටිම 1:1 අනුපාතයේ නොතිබීමට හැකියාව ඇත" + }, "dialogs": { - "cannotOpenFile": { - "title": "ගොනුව විවෘත කළ නොහැක", - "content": "\"{file}\" විවෘත කිරීමට නොහැකි විය. මෙම ගොනුව වෙනත් තැනකට ගෙන ගොස් (moved) හෝ නැවත නම් කර (renamed) හෝ මකා දමා (deleted) තිබේද?" - }, - "errorDialog": { - "title": "@:general.error" - }, - "fileNameInput": { - "original": "මුල්: {original}", - "title": "ගොනුවේ නම ඇතුලත් කරන්න" - }, - "noFiles": { - "content": "කරුණාකර අවම වශයෙන් එක් ගොනුවක්වත් තෝරන්න.", - "title": "කිසිදු ගොනුවක් තෝරා නැත" - }, - "quickActions": { - "prefix": "Prefix", - "sortBeforeCount": "අකාරාදී පිළිවෙලට සකසන්න (A-Z)", - "random": "අහඹු", - "title": "Quick යෙදුම්", - "counter": "කවුන්ටරය", - "padZero": "Pad with zeros" - }, - "sendModeHelp": { - "title": "යැවීමේ ක්‍රම", - "link": "ලබන්නන් LocalSend ස්ථාපනය කර නොමැති නම්, ඔව්න්ගේ බ්‍රවුසර් (Browser) තුළ අදාල ලින්ක් (Link) එක විවෘත කර, ගොනු බාගත (Download) කළ හැක.", - "single": "එක් ලබන්නෙකුට පමණක් ගොනු යැවීම කරයි. ගොනු හුවමාරු කිරීමෙන් පසුව, තේරීම මකා දමනු ලැබේ.", - "multiple": "ලබන්නන් කිහිපදෙනෙකු වෙත ගොනු යැවීම කරයි. ගොනු හුවමාරු කිරීමෙන් පසුව ද තේරීම මකා දමන්නේ නැත." - }, "addFile": { "title": "තේරීමට ඇඩ් කරන්න", "content": "ඔබට ඇඩ් කිරීමට අවශ්‍ය මොනවා ද?" }, + "openFile": { + "title": "ගොනුව විවෘත කරන්න", + "content": "ලබාගත් ගොනුව විවෘත කිරීමට කැමතිද?" + }, "addressInput": { - "hashtag": "හැශ්ටැග්", "title": "ලිපිනය ඇතුලත් කරන්න", + "hashtag": "හැශ්ටැග්", "ip": "IP ලිපිනය", "recentlyUsed": "පෙර භාවිතා කළ: " }, - "openFile": { - "content": "ලබාගත් ගොනුව විවෘත කිරීමට කැමතිද?", - "title": "ගොනුව විවෘත කරන්න" - }, - "encryptionDisabledNotice": { - "content": "දැන් සන්නිවේදනය අනාරක්ශිත HTTP protocol හරහා සිදු වේ. HTTPS protocol භාවිතා කිරීමට, කේතනය නැවත සක්‍රීය කරන්න.", - "title": "කේතනය අක්‍රිය කර ඇත" - }, - "localNetworkUnauthorized": { - "title": "@:dialogs.noPermission.title", - "description": "ජාලය ස්කෑන් (Scan) කිරීමට අවසරයක් නොමැතිව, LocalSend හට අනෙකුත් උපාංග සොයාගත නොහැක. කාරුණිකව මෙම අවසරය සැකසුම් (Settings) තුළ ලබා දෙන්න.", - "gotoSettings": "සැකසුම්" - }, - "messageInput": { - "multiline": "බහු පේලි", - "title": "පණිවිඩය ටයිප් කරන්න" - }, "cancelSession": { "title": "ගොනු මාරු අවලංගු කරන්න", "content": "ඔබට ඇත්තටම ගොනු හුවමාරුව අවලංගු කිරීමට අවශ්‍යද?" }, + "cannotOpenFile": { + "title": "ගොනුව විවෘත කළ නොහැක", + "content": "\"{file}\" විවෘත කිරීමට නොහැකි විය. මෙම ගොනුව වෙනත් තැනකට ගෙන ගොස් (moved) හෝ නැවත නම් කර (renamed) හෝ මකා දමා (deleted) තිබේද?" + }, + "encryptionDisabledNotice": { + "title": "කේතනය අක්‍රිය කර ඇත", + "content": "දැන් සන්නිවේදනය අනාරක්ශිත HTTP protocol හරහා සිදු වේ. HTTPS protocol භාවිතා කිරීමට, කේතනය නැවත සක්‍රීය කරන්න." + }, + "errorDialog": { + "title": "@:general.error" + }, "favoriteDialog": { + "title": "ප්‍රියතම", "noFavorites": "තවමත් ප්‍රියතම උපාංග නැත.", - "addFavorite": "ඇඩ් කරන්න", - "title": "ප්‍රියතම" + "addFavorite": "ඇඩ් කරන්න" }, "favoriteDeleteDialog": { "title": "ප්‍රියතම වලින් මකන්න", @@ -337,24 +312,41 @@ }, "favoriteEditDialog": { "titleAdd": "ප්‍රියතම වෙත එක් කරන්න", + "titleEdit": "සැකසුම්", + "name": "උපාංගයේ නම", "auto": "(ස්වයංක්‍රීය)", "ip": "IP ලිපිනය", - "name": "උපාංගයේ නම", - "titleEdit": "සැකසුම්", "port": "Port" }, "fileInfo": { - "sender": "යවන්නා:", + "title": "ගොනු විස්තර", + "fileName": "ගොනු විස්තර:", "path": "පාත් (Path):", "size": "ප්‍රමාණය:", - "time": "වේලාව:", - "title": "ගොනු විස්තර", - "fileName": "ගොනු විස්තර:" + "sender": "යවන්නා:", + "time": "වේලාව:" + }, + "fileNameInput": { + "title": "ගොනුවේ නම ඇතුලත් කරන්න", + "original": "මුල්: {original}" }, "historyClearDialog": { "title": "ඉතිහාසය ඉවත් කරන්න", "content": "ඔබට ඇත්තටම ඉතිහාසය සම්පූර්ණයෙන් මකා දැමීමට අවශ්‍යද?" }, + "localNetworkUnauthorized": { + "title": "@:dialogs.noPermission.title", + "description": "ජාලය ස්කෑන් (Scan) කිරීමට අවසරයක් නොමැතිව, LocalSend හට අනෙකුත් උපාංග සොයාගත නොහැක. කාරුණිකව මෙම අවසරය සැකසුම් (Settings) තුළ ලබා දෙන්න.", + "gotoSettings": "සැකසුම්" + }, + "messageInput": { + "title": "පණිවිඩය ටයිප් කරන්න", + "multiline": "බහු පේලි" + }, + "noFiles": { + "title": "කිසිදු ගොනුවක් තෝරා නැත", + "content": "කරුණාකර අවම වශයෙන් එක් ගොනුවක්වත් තෝරන්න." + }, "noPermission": { "title": "අවසර නැත", "content": "අවශ්‍ය අවසර ලබා නොදී ඇත. මෙම අවසර සැකසුම් (Settings) තුළ ලබා දෙන්න." @@ -366,6 +358,14 @@ "qr": { "title": "QR කේතය" }, + "quickActions": { + "title": "Quick යෙදුම්", + "counter": "කවුන්ටරය", + "prefix": "Prefix", + "padZero": "Pad with zeros", + "sortBeforeCount": "අකාරාදී පිළිවෙලට සකසන්න (A-Z)", + "random": "අහඹු" + }, "quickSaveNotice": { "title": "@:general.quickSave", "content": "ගොනු ඉල්ලීම් දැන් ස්වයංක්‍රීයව පිළිගනු ලැබේ. ජාලයේ සිටින සෑම කෙනෙකුටම ඔබට ගොනු එවිය හැකි බව මතක තබා ගන්න." @@ -381,65 +381,65 @@ "pin": { "title": "PIN ඇතුල් කරන්න" }, + "sendModeHelp": { + "title": "යැවීමේ ක්‍රම", + "single": "එක් ලබන්නෙකුට පමණක් ගොනු යැවීම කරයි. ගොනු හුවමාරු කිරීමෙන් පසුව, තේරීම මකා දමනු ලැබේ.", + "multiple": "ලබන්නන් කිහිපදෙනෙකු වෙත ගොනු යැවීම කරයි. ගොනු හුවමාරු කිරීමෙන් පසුව ද තේරීම මකා දමන්නේ නැත.", + "link": "ලබන්නන් LocalSend ස්ථාපනය කර නොමැති නම්, ඔව්න්ගේ බ්‍රවුසර් (Browser) තුළ අදාල ලින්ක් (Link) එක විවෘත කර, ගොනු බාගත (Download) කළ හැක." + }, "zoom": { "title": "URL" } }, + "sanitization": { + "empty": "ගොනුවේ නම හිස් විය නොහැක", + "invalid": "ගොනු නාමයේ වලංගු නොවන අක්ෂර අඩංගු වේ" + }, "tray": { - "close": "LocalSend වෙතින් ඉවත් වෙන්න", - "closeWindows": "පිටවීම", + "@info": "\"close\" වචනය සම්බන්ධයෙන් Apple මාර්ගෝපදේශ ඉතා දැඩි ය.", "open": "@:general.open", - "@info": "\"close\" වචනය සම්බන්ධයෙන් Apple මාර්ගෝපදේශ ඉතා දැඩි ය." + "close": "LocalSend වෙතින් ඉවත් වෙන්න", + "closeWindows": "පිටවීම" }, "web": { "waiting": "@:sendPage.waiting", - "invalidPin": "වැරදි PIN", - "fileName": "ගොනුවේ නම", "enterPin": "PIN ඇතුල් කරන්න", - "size": "ප්‍රමාණය", + "invalidPin": "වැරදි PIN", "tooManyAttempts": "මේ සඳහා පමණට වඩා උත්සාහ කර ඇත", "rejected": "ප්‍රතික්ෂේප කරන ලදී", - "files": "ගොනු" + "files": "ගොනු", + "fileName": "ගොනුවේ නම", + "size": "ප්‍රමාණය" }, "assetPicker": { - "edit": "සංස්කරණය", - "original": "මූලාශ්‍රය", - "select": "තෝරන්න", - "emptyList": "හිස් ලැයිස්තුව", - "sActionUseCameraHint": "කැමරාව භාවිතා කරන්න", "@info": "Android සහ iPhone සඳහා මාධ්‍ය තේරීමේ මෙවලම සඳහා වූ භාෂා පරිවර්තන", + "confirm": "තහවුරු කරන්න", + "cancel": "අවලංගු කරන්න", + "edit": "සංස්කරණය", "gifIndicator": "GIF", "loadFailed": "Load කිරීම අසාර්ථක විය", + "original": "මූලාශ්‍රය", "preview": "පෙරදසුන", - "sActionPreviewHint": "පෙරදසුන", - "sActionSelectHint": "තෝරන්න", + "select": "තෝරන්න", + "emptyList": "හිස් ලැයිස්තුව", "unSupportedAssetType": "සහය නොමැති ගොනු වර්ගයකි.", "unableToAccessAll": "උපාංගයේ ඇති සියලුම ගොනු වෙත පිවිසීමට නොහැක", "viewingLimitedAssetsTip": "ඇප් එකට ප්‍රවේශ විය හැකි ගොනු සහ ඇල්බම් පමණක් බලන්න.", - "sUnitAssetCountLabel": "ගණන", - "accessAllTip": "ඇප් එකට ප්‍රවේශ විය හැක්කේ උපාංගයේ ඇති සමහර ගොනුවලට පමණි. පද්ධති සැකසීම් (Settings) වෙත ගොස් උපාංගයේ සියලුම මාධ්‍ය වෙත ප්‍රවේශ වීමට ඇප් එකට අවසර ලබා දෙන්න.", - "accessLimitedAssets": "සීමිත ප්‍රවේශය සමඟ කරගෙන යන්න", "changeAccessibleLimitedAssets": "ප්‍රවේශ කළ හැකි ගොනු යාවත්කාලීන (Update) කිරීමට ක්ලික් කරන්න", + "accessAllTip": "ඇප් එකට ප්‍රවේශ විය හැක්කේ උපාංගයේ ඇති සමහර ගොනුවලට පමණි. පද්ධති සැකසීම් (Settings) වෙත ගොස් උපාංගයේ සියලුම මාධ්‍ය වෙත ප්‍රවේශ වීමට ඇප් එකට අවසර ලබා දෙන්න.", "goToSystemSettings": "පද්ධති සැකසුම් වෙත යන්න", - "sActionPlayHint": "වාදනය කරන්න", - "sNameDurationLabel": "කාලසීමාව", + "accessLimitedAssets": "සීමිත ප්‍රවේශය සමඟ කරගෙන යන්න", "accessiblePathName": "ප්‍රවේශ කළ හැකි ගොනු", "sTypeAudioLabel": "හඬ", "sTypeImageLabel": "චායාරූප", "sTypeVideoLabel": "වීඩියෝ", "sTypeOtherLabel": "වෙනත් මාධ්‍ය", + "sActionPlayHint": "වාදනය කරන්න", + "sActionPreviewHint": "පෙරදසුන", + "sActionSelectHint": "තෝරන්න", "sActionSwitchPathLabel": "පාත් (Path) එක වෙනස් කරන්න", - "cancel": "අවලංගු කරන්න", - "confirm": "තහවුරු කරන්න" - }, - "selectedFilesPage": { - "deleteAll": "සියල්ල මකන්න" - }, - "aliasGenerator(ignoreMissing, ignoreGpt)": { - "@info": "විවිධ භාෂා වල වෙනස් වචන තිබිය හැකි අතර, එය සෑමව්ටිම 1:1 අනුපාතයේ නොතිබීමට හැකියාව ඇත" - }, - "sanitization": { - "empty": "ගොනුවේ නම හිස් විය නොහැක", - "invalid": "ගොනු නාමයේ වලංගු නොවන අක්ෂර අඩංගු වේ" + "sActionUseCameraHint": "කැමරාව භාවිතා කරන්න", + "sNameDurationLabel": "කාලසීමාව", + "sUnitAssetCountLabel": "ගණන" } } diff --git a/app/assets/i18n/strings_sv.json b/app/assets/i18n/strings_sv.json index 30503153..81fc64f1 100644 --- a/app/assets/i18n/strings_sv.json +++ b/app/assets/i18n/strings_sv.json @@ -14,6 +14,7 @@ "copiedToClipboard": "Kopierat till urklipp", "decline": "Avböj", "done": "Klar", + "delete": "Ta bort", "edit": "Redigera", "error": "Fel", "example": "Exempel", @@ -27,6 +28,7 @@ "open": "Öppna", "queue": "Kö", "quickSave": "Snabbspara", + "quickSaveFromFavorites": "Snabbspara för \"Favoriter\"", "renamed": "Bytt namn", "reset": "Återställ", "restart": "Starta om", @@ -37,8 +39,6 @@ "save": "Spara", "unchanged": "Oförändrad", "unknown": "Okänd", - "delete": "Ta bort", - "quickSaveFromFavorites": "Snabbspara för \"Favoriter\"", "noItemInClipboard": "Inga objekt i urklipp." }, "receiveTab": { @@ -49,8 +49,8 @@ "alias": "Alias:" }, "quickSave": { - "favorites": "Favoriter", "off": "@:general.off", + "favorites": "Favoriter", "on": "@:general.on" } }, @@ -73,6 +73,7 @@ "nearbyDevices": "Närbelägna enhter", "thisDevice": "Denna Enhet", "scan": "Leta efter enheter", + "manualSending": "Manuell sändning", "sendMode": "Sändningsläge", "sendModes": { "single": "En mottagare", @@ -81,8 +82,7 @@ }, "sendModeHelp": "Förklaring", "help": "Kontrollera att den sökta enheten är uppkopplad till samma wifi nätverk som din enhet.", - "placeItems": "Placera objekt att dela.", - "manualSending": "Manuell sändning" + "placeItems": "Placera objekt att dela." }, "settingsTab": { "title": "Inställningar", @@ -104,23 +104,27 @@ "system": "System" }, "saveWindowPlacement": "Avsluta: Spara fönsterplacering", + "saveWindowPlacementWindows": "Spara fönsterposition efter avslut", "minimizeToTray": "Lämna: minimera till tray", "launchAtStartup": "Starta automatiskt efter inloggning", "launchMinimized": "Starta automatiskt: starta gömd", - "animations": "Animationer", - "saveWindowPlacementWindows": "Spara fönsterposition efter avslut", - "showInContextMenu": "Visa LocalSend i snabbmenyn" + "showInContextMenu": "Visa LocalSend i snabbmenyn", + "animations": "Animationer" }, "receive": { "title": "Ta emot", "quickSave": "@:general.quickSave", + "quickSaveFromFavorites": "@:general.quickSaveFromFavorites", + "requirePin": "@:webSharePage.requirePin", + "autoFinish": "Automatisk avslutning", "destination": "Destination", "downloads": "(Hämtade)", "saveToGallery": "Spara media i galleriet", - "saveToHistory": "Spara till historik", - "autoFinish": "Automatisk avslutning", - "quickSaveFromFavorites": "@:general.quickSaveFromFavorites", - "requirePin": "@:webSharePage.requirePin" + "saveToHistory": "Spara till historik" + }, + "send": { + "title": "Skicka", + "shareViaLinkAutoAccept": "Acceptera förfrågningar automatiskt i läget \"Dela via länk\"" }, "network": { "title": "Nätverk", @@ -130,18 +134,13 @@ "deviceType": "Enhetstyp", "deviceModel": "Enhet modell", "port": "Port", + "discoveryTimeout": "Tidsgräns för upptäckt", + "useSystemName": "Använd systemnamn", + "generateRandomAlias": "Generera slumpmässigt alias", "portWarning": "Du kanske inte upptäcks av andra enheter eftersom du använder en anpassad port. (standard: {defaultPort})", "encryption": "Kryptering", "multicastGroup": "Multicast", - "multicastGroupWarning": "Du kanske inte upptäcks av andra enheter eftersom du använder en anpassad multicast-adress. (standard: {defaultMulticast})", - "discoveryTimeout": "Tidsgräns för upptäckt", - "useSystemName": "Använd systemnamn", - "generateRandomAlias": "Generera slumpmässigt alias" - }, - "advancedSettings": "Avancerade inställningar", - "send": { - "shareViaLinkAutoAccept": "Acceptera förfrågningar automatiskt i läget \"Dela via länk\"", - "title": "Skicka" + "multicastGroupWarning": "Du kanske inte upptäcks av andra enheter eftersom du använder en anpassad multicast-adress. (standard: {defaultMulticast})" }, "other": { "title": "Annat", @@ -149,7 +148,8 @@ "donate": "Donera", "privacyPolicy": "Sekretesspolicy", "termsOfUse": "Användarvillkor" - } + }, + "advancedSettings": "Avancerade inställningar" }, "troubleshootPage": { "title": "Felsökning", @@ -161,13 +161,13 @@ "solution": "Detta är troligtvis ett brandväggsproblem. Du kan lösa det genom att tillåta inkommande anslutningar (UDP och TCP) på port {port}.", "openFirewall": "Öppna brandväggen" }, + "noDiscovery": { + "symptom": "Denna enhet kan inte upptäcka andra enheter.", + "solution": "Se till att alla enheter är på samma Wi-Fi-nätverk och delar samma konfiguration (port, multicast-adress, kryptering). Du kan försöka skriva in IP-adressen för målenheten manuellt. Om detta fungerar, överväg att lägga till den här enheten till favoriterna så att den kan upptäckas automatiskt i framtiden." + }, "noConnection": { "symptom": "Båda enheterna kan inte upptäcka varandra eller dela filer.", "solution": "Problemet finns på båda sidor? Då måste du se till att båda enheterna är anslutna till samma wifi-nätverk och delar samma konfiguration (port, multicast-adress, kryptering). Wi-Fi kanske inte tillåter kommunikation mellan deltagare. I så fall måste alternativet vara aktiverat på routern." - }, - "noDiscovery": { - "solution": "Se till att alla enheter är på samma Wi-Fi-nätverk och delar samma konfiguration (port, multicast-adress, kryptering). Du kan försöka skriva in IP-adressen för målenheten manuellt. Om detta fungerar, överväg att lägga till den här enheten till favoriterna så att den kan upptäckas automatiskt i framtiden.", - "symptom": "Denna enhet kan inte upptäcka andra enheter." } }, "receiveHistoryPage": { @@ -177,9 +177,9 @@ "empty": "Historiken är tom.", "entryActions": { "open": "Öppna fil", + "showInFolder": "Visa i mapp", "info": "Information", - "deleteFromHistory": "Ta bort från historik", - "showInFolder": "Visa i mapp" + "deleteFromHistory": "Ta bort från historik" } }, "apkPickerPage": { @@ -210,8 +210,8 @@ "sendPage": { "waiting": "Väntar på svar…", "rejected": "Mottagaren har avvisat begäran.", - "busy": "Mottagaren är upptagen med en annan förfrågan.", - "tooManyAttempts": "@:web.tooManyAttempts" + "tooManyAttempts": "@:web.tooManyAttempts", + "busy": "Mottagaren är upptagen med en annan förfrågan." }, "progressPage": { "titleSending": "Skickar filer", @@ -241,11 +241,11 @@ "requests": "Förfrågningar", "noRequests": "Inga förfrågningar ännu.", "encryption": "@:settingsTab.network.encryption", - "encryptionHint": "LocalSend använder ett självsignerat certifikat. Du behöver acceptera det i webbläsaren.", - "pendingRequests": "Väntande förfrågningar: {n}", "autoAccept": "Acceptera förfrågningar automatiskt", "requirePin": "Kräv PIN-kod", - "pinHint": "PIN-koden är \"{pin}\"" + "pinHint": "PIN-koden är \"{pin}\"", + "encryptionHint": "LocalSend använder ett självsignerat certifikat. Du behöver acceptera det i webbläsaren.", + "pendingRequests": "Väntande förfrågningar: {n}" }, "aboutPage": { "title": "Om LocalSend", @@ -258,6 +258,13 @@ "packagers": "Förpackare", "translators": "Översättare" }, + "donationPage": { + "title": "Donera", + "info": "LocalSend är fri programvara med öppen källkod och utan några annonser. Om du gillar appen kan du stödja utvecklingen med en donation.", + "donate": "Donera {amount}", + "thanks": "Tack så mycket!", + "restore": "Återställ köp" + }, "changelogPage": { "title": "Ändringslog" }, @@ -339,6 +346,10 @@ "title": "Lägg till i val", "content": "Vad vill du lägga till?" }, + "openFile": { + "title": "Öppna fil", + "content": "Vill du öppna den mottagna filen?" + }, "addressInput": { "title": "Skriv in adress", "hashtag": "Hashtag", @@ -360,6 +371,23 @@ "errorDialog": { "title": "@:general.error" }, + "favoriteDialog": { + "title": "Favoriter", + "noFavorites": "Inga favoritenheter än.", + "addFavorite": "Lägg till" + }, + "favoriteDeleteDialog": { + "title": "Ta bort från favoriter", + "content": "Vill du verkligen ta bort från favoriterna \"{name}\"?" + }, + "favoriteEditDialog": { + "titleAdd": "Lägg till i favoriter", + "titleEdit": "Inställningar", + "name": "Enhetens namn", + "auto": "(auto)", + "ip": "IP-adress", + "port": "Port" + }, "fileInfo": { "title": "Filinformation", "fileName": "Filnamn:", @@ -372,6 +400,10 @@ "title": "Skriv in filnamn", "original": "Orginal: {original}" }, + "historyClearDialog": { + "title": "Rensa historik", + "content": "Vill du verkligen ta bort hela historiken?" + }, "localNetworkUnauthorized": { "title": "@:dialogs.noPermission.title", "description": "LocalSend kan inte hitta andra enheter utan att ha behörighet att skanna det lokala nätverket. Bevilja denna behörighet i inställningarna.", @@ -408,52 +440,31 @@ "title": "@:general.quickSave", "content": "Filförfrågningar accepteras automatiskt. Observera att alla i lokala nätverket kan skicka filer till dig." }, + "quickSaveFromFavoritesNotice": { + "title": "@:general.quickSaveFromFavorites", + "content": [ + "Filförfrågningar accepteras nu automatiskt från enheter i din favoritlista.", + "Varning! För närvarande är detta inte helt säkert, eftersom en hacker som har fingeravtrycket från vilken enhet som helst från din favoritlista kan skicka filer till dig utan begränsningar.", + "Detta alternativ är dock fortfarande säkrare än att låta alla användare på det lokala nätverket skicka filer till dig utan begränsningar." + ] + }, + "pin": { + "title": "Ange PIN-kod" + }, "sendModeHelp": { "title": "Sändningslägen", "single": "Skickar filer till en mottagare. Valet rensas efter avslutad filöverföring.", "multiple": "Skickar filer till flera mottagare. Valet rensas inte.", "link": "Mottagare som inte har LocalSend installerat kan ladda ner de valda filerna genom att öppna länken i deras webbläsare." }, - "quickSaveFromFavoritesNotice": { - "content": [ - "Filförfrågningar accepteras nu automatiskt från enheter i din favoritlista.", - "Varning! För närvarande är detta inte helt säkert, eftersom en hacker som har fingeravtrycket från vilken enhet som helst från din favoritlista kan skicka filer till dig utan begränsningar.", - "Detta alternativ är dock fortfarande säkrare än att låta alla användare på det lokala nätverket skicka filer till dig utan begränsningar." - ], - "title": "@:general.quickSaveFromFavorites" - }, - "historyClearDialog": { - "title": "Rensa historik", - "content": "Vill du verkligen ta bort hela historiken?" - }, - "favoriteDialog": { - "title": "Favoriter", - "noFavorites": "Inga favoritenheter än.", - "addFavorite": "Lägg till" - }, - "favoriteDeleteDialog": { - "title": "Ta bort från favoriter", - "content": "Vill du verkligen ta bort från favoriterna \"{name}\"?" - }, - "favoriteEditDialog": { - "titleAdd": "Lägg till i favoriter", - "titleEdit": "Inställningar", - "name": "Enhetens namn", - "ip": "IP-adress", - "auto": "(auto)", - "port": "Port" - }, - "openFile": { - "title": "Öppna fil", - "content": "Vill du öppna den mottagna filen?" - }, - "pin": { - "title": "Ange PIN-kod" - }, "zoom": { "title": "URL" } }, + "sanitization": { + "empty": "Filnamnet får inte vara tomt", + "invalid": "Filnamnet innehåller ogiltiga tecken" + }, "tray": { "@info": "Apples Riktlinjer är väldigt strikta kring 'stäng' formuleringen.", "open": "@:general.open", @@ -462,13 +473,13 @@ }, "web": { "waiting": "@:sendPage.waiting", + "enterPin": "Ange PIN-kod", + "invalidPin": "Ogiltig PIN-kod", + "tooManyAttempts": "För många försök", "rejected": "Avvisad", "files": "Filer", "fileName": "Filnamn", - "size": "Storlek", - "tooManyAttempts": "För många försök", - "enterPin": "Ange PIN-kod", - "invalidPin": "Ogiltig PIN-kod" + "size": "Storlek" }, "assetPicker": { "@info": "Translations for the Media selection tool for Android and Iphone", @@ -500,16 +511,5 @@ "sActionUseCameraHint": "använd kamera", "sNameDurationLabel": "längd", "sUnitAssetCountLabel": "antal" - }, - "donationPage": { - "restore": "Återställ köp", - "title": "Donera", - "info": "LocalSend är fri programvara med öppen källkod och utan några annonser. Om du gillar appen kan du stödja utvecklingen med en donation.", - "donate": "Donera {amount}", - "thanks": "Tack så mycket!" - }, - "sanitization": { - "empty": "Filnamnet får inte vara tomt", - "invalid": "Filnamnet innehåller ogiltiga tecken" } } diff --git a/app/assets/i18n/strings_tr.json b/app/assets/i18n/strings_tr.json index e17f8a82..c3963364 100644 --- a/app/assets/i18n/strings_tr.json +++ b/app/assets/i18n/strings_tr.json @@ -28,6 +28,7 @@ "open": "Aç", "queue": "Sıra", "quickSave": "Hızlı kaydetme", + "quickSaveFromFavorites": "Favoriler", "renamed": "Yeniden adlandırıldı", "reset": "Sıfırla", "restart": "Yeniden başlat", @@ -38,8 +39,7 @@ "save": "Kaydet", "unchanged": "Değiştirilmemiş", "unknown": "Bilinmiyor", - "noItemInClipboard": "Panoda öğe yok.", - "quickSaveFromFavorites": "Favoriler" + "noItemInClipboard": "Panoda öğe yok." }, "receiveTab": { "title": "Alım", diff --git a/app/lib/gen/strings.g.dart b/app/lib/gen/strings.g.dart index 64747788..b21f0f8e 100644 --- a/app/lib/gen/strings.g.dart +++ b/app/lib/gen/strings.g.dart @@ -3,8 +3,8 @@ /// Source: assets/i18n /// To regenerate, run: `dart run slang` /// -/// Locales: 45 -/// Strings: 14650 (325 per locale) +/// Locales: 47 +/// Strings: 15303 (325 per locale) // coverage:ignore-file // ignore_for_file: type=lint, unused_import @@ -16,6 +16,7 @@ import 'package:slang_flutter/slang_flutter.dart'; export 'package:slang_flutter/slang_flutter.dart'; import 'strings_ar.g.dart' deferred as l_ar; +import 'strings_bg.g.dart' deferred as l_bg; import 'strings_bn.g.dart' deferred as l_bn; import 'strings_ca.g.dart' deferred as l_ca; import 'strings_cs.g.dart' deferred as l_cs; @@ -46,6 +47,7 @@ import 'strings_pt_BR.g.dart' deferred as l_pt_BR; import 'strings_pt_PT.g.dart' deferred as l_pt_PT; import 'strings_ro.g.dart' deferred as l_ro; import 'strings_ru.g.dart' deferred as l_ru; +import 'strings_si.g.dart' deferred as l_si; import 'strings_sk.g.dart' deferred as l_sk; import 'strings_sl.g.dart' deferred as l_sl; import 'strings_sr.g.dart' deferred as l_sr; @@ -70,6 +72,7 @@ part 'strings_en.g.dart'; enum AppLocale with BaseAppLocale { en(languageCode: 'en'), ar(languageCode: 'ar'), + bg(languageCode: 'bg'), bn(languageCode: 'bn'), ca(languageCode: 'ca'), cs(languageCode: 'cs'), @@ -100,6 +103,7 @@ enum AppLocale with BaseAppLocale { ptPt(languageCode: 'pt', countryCode: 'PT'), ro(languageCode: 'ro'), ru(languageCode: 'ru'), + si(languageCode: 'si'), sk(languageCode: 'sk'), sl(languageCode: 'sl'), sr(languageCode: 'sr'), @@ -147,6 +151,13 @@ enum AppLocale with BaseAppLocale { cardinalResolver: cardinalResolver, ordinalResolver: ordinalResolver, ); + case AppLocale.bg: + await l_bg.loadLibrary(); + return l_bg.TranslationsBg( + overrides: overrides, + cardinalResolver: cardinalResolver, + ordinalResolver: ordinalResolver, + ); case AppLocale.bn: await l_bn.loadLibrary(); return l_bn.TranslationsBn( @@ -357,6 +368,13 @@ enum AppLocale with BaseAppLocale { cardinalResolver: cardinalResolver, ordinalResolver: ordinalResolver, ); + case AppLocale.si: + await l_si.loadLibrary(); + return l_si.TranslationsSi( + overrides: overrides, + cardinalResolver: cardinalResolver, + ordinalResolver: ordinalResolver, + ); case AppLocale.sk: await l_sk.loadLibrary(); return l_sk.TranslationsSk( @@ -470,6 +488,12 @@ enum AppLocale with BaseAppLocale { cardinalResolver: cardinalResolver, ordinalResolver: ordinalResolver, ); + case AppLocale.bg: + return l_bg.TranslationsBg( + overrides: overrides, + cardinalResolver: cardinalResolver, + ordinalResolver: ordinalResolver, + ); case AppLocale.bn: return l_bn.TranslationsBn( overrides: overrides, @@ -650,6 +674,12 @@ enum AppLocale with BaseAppLocale { cardinalResolver: cardinalResolver, ordinalResolver: ordinalResolver, ); + case AppLocale.si: + return l_si.TranslationsSi( + overrides: overrides, + cardinalResolver: cardinalResolver, + ordinalResolver: ordinalResolver, + ); case AppLocale.sk: return l_sk.TranslationsSk( overrides: overrides, diff --git a/app/lib/gen/strings_bg.g.dart b/app/lib/gen/strings_bg.g.dart new file mode 100644 index 00000000..240be637 --- /dev/null +++ b/app/lib/gen/strings_bg.g.dart @@ -0,0 +1,1278 @@ +/// +/// Generated file. Do not edit. +/// +// coverage:ignore-file +// ignore_for_file: type=lint, unused_import + +import 'package:flutter/widgets.dart'; +import 'package:intl/intl.dart'; +import 'package:slang/generated.dart'; +import 'strings.g.dart'; + +// Path: +class TranslationsBg extends Translations { + /// You can call this constructor and build your own translation instance of this locale. + /// Constructing via the enum [AppLocale.build] is preferred. + TranslationsBg({Map? overrides, PluralResolver? cardinalResolver, PluralResolver? ordinalResolver}) + : assert(overrides == null, 'Set "translation_overrides: true" in order to enable this feature.'), + $meta = TranslationMetadata( + locale: AppLocale.bg, + overrides: overrides ?? {}, + cardinalResolver: cardinalResolver, + ordinalResolver: ordinalResolver, + ), + super(cardinalResolver: cardinalResolver, ordinalResolver: ordinalResolver); + + /// Metadata for the translations of . + @override + final TranslationMetadata $meta; + + late final TranslationsBg _root = this; // ignore: unused_field + + // Translations + @override + String get locale => 'Български'; + @override + String get appName => 'LocalSend'; + @override + late final _TranslationsGeneralBg general = _TranslationsGeneralBg._(_root); + @override + late final _TranslationsReceiveTabBg receiveTab = _TranslationsReceiveTabBg._(_root); + @override + late final _TranslationsSendTabBg sendTab = _TranslationsSendTabBg._(_root); + @override + late final _TranslationsSettingsTabBg settingsTab = _TranslationsSettingsTabBg._(_root); + @override + late final _TranslationsTroubleshootPageBg troubleshootPage = _TranslationsTroubleshootPageBg._(_root); + @override + late final _TranslationsReceiveHistoryPageBg receiveHistoryPage = _TranslationsReceiveHistoryPageBg._(_root); + @override + late final _TranslationsApkPickerPageBg apkPickerPage = _TranslationsApkPickerPageBg._(_root); + @override + late final _TranslationsSelectedFilesPageBg selectedFilesPage = _TranslationsSelectedFilesPageBg._(_root); + @override + late final _TranslationsReceivePageBg receivePage = _TranslationsReceivePageBg._(_root); + @override + late final _TranslationsReceiveOptionsPageBg receiveOptionsPage = _TranslationsReceiveOptionsPageBg._(_root); + @override + late final _TranslationsSendPageBg sendPage = _TranslationsSendPageBg._(_root); + @override + late final _TranslationsProgressPageBg progressPage = _TranslationsProgressPageBg._(_root); + @override + late final _TranslationsWebSharePageBg webSharePage = _TranslationsWebSharePageBg._(_root); + @override + late final _TranslationsAboutPageBg aboutPage = _TranslationsAboutPageBg._(_root); + @override + late final _TranslationsDonationPageBg donationPage = _TranslationsDonationPageBg._(_root); + @override + late final _TranslationsChangelogPageBg changelogPage = _TranslationsChangelogPageBg._(_root); + @override + late final _TranslationsAliasGeneratorBg aliasGenerator = _TranslationsAliasGeneratorBg._(_root); + @override + late final _TranslationsDialogsBg dialogs = _TranslationsDialogsBg._(_root); +} + +// Path: general +class _TranslationsGeneralBg extends TranslationsGeneralEn { + _TranslationsGeneralBg._(TranslationsBg root) + : this._root = root, + super.internal(root); + + final TranslationsBg _root; // ignore: unused_field + + // Translations + @override + String get accept => 'Приеми'; + @override + String get accepted => 'Прието'; + @override + String get add => 'Добави'; + @override + String get advanced => 'Разширено'; + @override + String get cancel => 'Отказ'; + @override + String get close => 'Затвори'; + @override + String get confirm => 'Потвърди'; + @override + String get continueStr => 'Продължи'; + @override + String get copy => 'Копирай'; + @override + String get copiedToClipboard => 'Копирано в клипборда'; + @override + String get decline => 'Откажи'; + @override + String get done => 'Готово'; + @override + String get delete => 'Изтрий'; + @override + String get edit => 'Редактирай'; + @override + String get error => 'Грешка'; + @override + String get example => 'Пример'; + @override + String get files => 'Файлове'; + @override + String get finished => 'Завършено'; + @override + String get hide => 'Скрий'; + @override + String get off => 'Изключено'; + @override + String get offline => 'Офлайн'; + @override + String get on => 'Включено'; + @override + String get online => 'Онлайн'; + @override + String get open => 'Отвори'; + @override + String get queue => 'Опашка'; + @override + String get quickSave => 'Бързо запазване'; + @override + String get quickSaveFromFavorites => 'Бързо запазване за „Любими“'; + @override + String get renamed => 'Преименуван'; + @override + String get reset => 'Отмяна на промените'; + @override + String get restart => 'Рестартирай'; + @override + String get settings => 'Настройки'; + @override + String get skipped => 'Пропуснато'; + @override + String get start => 'Започни'; + @override + String get stop => 'Спри'; + @override + String get save => 'Запази'; + @override + String get unchanged => 'Непроменено'; + @override + String get unknown => 'Неизвестно'; + @override + String get noItemInClipboard => 'Няма елементи в клипборда.'; +} + +// Path: receiveTab +class _TranslationsReceiveTabBg extends TranslationsReceiveTabEn { + _TranslationsReceiveTabBg._(TranslationsBg root) + : this._root = root, + super.internal(root); + + final TranslationsBg _root; // ignore: unused_field + + // Translations + @override + String get title => 'Получаване'; + @override + late final _TranslationsReceiveTabInfoBoxBg infoBox = _TranslationsReceiveTabInfoBoxBg._(_root); + @override + late final _TranslationsReceiveTabQuickSaveBg quickSave = _TranslationsReceiveTabQuickSaveBg._(_root); +} + +// Path: sendTab +class _TranslationsSendTabBg extends TranslationsSendTabEn { + _TranslationsSendTabBg._(TranslationsBg root) + : this._root = root, + super.internal(root); + + final TranslationsBg _root; // ignore: unused_field + + // Translations + @override + String get title => 'Изпрати'; + @override + late final _TranslationsSendTabSelectionBg selection = _TranslationsSendTabSelectionBg._(_root); + @override + late final _TranslationsSendTabPickerBg picker = _TranslationsSendTabPickerBg._(_root); + @override + String get shareIntentInfo => 'Можете също да използвате функцията „Споделяне“ на вашето мобилно устройство, за да избирате файлове по-лесно.'; + @override + String get nearbyDevices => 'Устройства в близост'; + @override + String get thisDevice => 'Това устройство'; + @override + String get scan => 'Търсене на устройства'; + @override + String get manualSending => 'Ръчно изпращане'; + @override + String get sendMode => 'Режим на изпращане'; + @override + late final _TranslationsSendTabSendModesBg sendModes = _TranslationsSendTabSendModesBg._(_root); + @override + String get sendModeHelp => 'Обяснение'; + @override + String get help => 'Моля, уверете се, че желаната цел също е в същата Wi-Fi мрежа.'; + @override + String get placeItems => 'Поставете елементи за споделяне.'; +} + +// Path: settingsTab +class _TranslationsSettingsTabBg extends TranslationsSettingsTabEn { + _TranslationsSettingsTabBg._(TranslationsBg root) + : this._root = root, + super.internal(root); + + final TranslationsBg _root; // ignore: unused_field + + // Translations + @override + String get title => 'Настройки'; + @override + late final _TranslationsSettingsTabGeneralBg general = _TranslationsSettingsTabGeneralBg._(_root); + @override + late final _TranslationsSettingsTabReceiveBg receive = _TranslationsSettingsTabReceiveBg._(_root); + @override + late final _TranslationsSettingsTabSendBg send = _TranslationsSettingsTabSendBg._(_root); + @override + late final _TranslationsSettingsTabNetworkBg network = _TranslationsSettingsTabNetworkBg._(_root); + @override + late final _TranslationsSettingsTabOtherBg other = _TranslationsSettingsTabOtherBg._(_root); + @override + String get advancedSettings => 'Разширени настройки'; +} + +// Path: troubleshootPage +class _TranslationsTroubleshootPageBg extends TranslationsTroubleshootPageEn { + _TranslationsTroubleshootPageBg._(TranslationsBg root) + : this._root = root, + super.internal(root); + + final TranslationsBg _root; // ignore: unused_field + + // Translations + @override + String get title => 'Отстраняване на неизправност'; + @override + String get subTitle => 'Приложението не работи ли според очакванията? Тук можете да намерите някои общи решения на проблеми.'; + @override + String get solution => 'Решение:'; + @override + String get fixButton => 'Автоматично поправяне'; + @override + late final _TranslationsTroubleshootPageFirewallBg firewall = _TranslationsTroubleshootPageFirewallBg._(_root); + @override + late final _TranslationsTroubleshootPageNoDiscoveryBg noDiscovery = _TranslationsTroubleshootPageNoDiscoveryBg._(_root); + @override + late final _TranslationsTroubleshootPageNoConnectionBg noConnection = _TranslationsTroubleshootPageNoConnectionBg._(_root); +} + +// Path: receiveHistoryPage +class _TranslationsReceiveHistoryPageBg extends TranslationsReceiveHistoryPageEn { + _TranslationsReceiveHistoryPageBg._(TranslationsBg root) + : this._root = root, + super.internal(root); + + final TranslationsBg _root; // ignore: unused_field + + // Translations + @override + String get title => 'История'; + @override + String get openFolder => 'Отворете папка'; + @override + String get deleteHistory => 'Изтриване на историята'; + @override + String get empty => 'Историята е празна.'; + @override + late final _TranslationsReceiveHistoryPageEntryActionsBg entryActions = _TranslationsReceiveHistoryPageEntryActionsBg._(_root); +} + +// Path: apkPickerPage +class _TranslationsApkPickerPageBg extends TranslationsApkPickerPageEn { + _TranslationsApkPickerPageBg._(TranslationsBg root) + : this._root = root, + super.internal(root); + + final TranslationsBg _root; // ignore: unused_field + + // Translations + @override + String get title => 'Приложения (APK)'; + @override + String get excludeSystemApps => 'Изключване на системни приложения'; + @override + String get excludeAppsWithoutLaunchIntent => 'Изключване на приложения, които не могат да се стартират'; + @override + String apps({required Object n}) => '${n} Приложения'; +} + +// Path: selectedFilesPage +class _TranslationsSelectedFilesPageBg extends TranslationsSelectedFilesPageEn { + _TranslationsSelectedFilesPageBg._(TranslationsBg root) + : this._root = root, + super.internal(root); + + final TranslationsBg _root; // ignore: unused_field + + // Translations + @override + String get deleteAll => 'Изтрий всички'; +} + +// Path: receivePage +class _TranslationsReceivePageBg extends TranslationsReceivePageEn { + _TranslationsReceivePageBg._(TranslationsBg root) + : this._root = root, + super.internal(root); + + final TranslationsBg _root; // ignore: unused_field + + // Translations + @override + String subTitle({required num n}) => (_root.$meta.cardinalResolver ?? PluralResolvers.cardinal('bg'))( + n, + one: 'иска да ви изпрати файл', + other: 'иска да ви изпрати ${n} файлове', + ); + @override + String get subTitleMessage => 'ти изпрати съобщение:'; + @override + String get subTitleLink => 'ти изпрати връзка:'; + @override + String get canceled => 'Подателят е отменил заявката.'; +} + +// Path: receiveOptionsPage +class _TranslationsReceiveOptionsPageBg extends TranslationsReceiveOptionsPageEn { + _TranslationsReceiveOptionsPageBg._(TranslationsBg root) + : this._root = root, + super.internal(root); + + final TranslationsBg _root; // ignore: unused_field + + // Translations + @override + String get title => 'Опции'; + @override + String get destination => _root.settingsTab.receive.destination; + @override + String get appDirectory => '(LocalSend папка)'; + @override + String get saveToGallery => _root.settingsTab.receive.saveToGallery; + @override + String get saveToGalleryOff => 'Изключва се автоматично, защото има папки.'; +} + +// Path: sendPage +class _TranslationsSendPageBg extends TranslationsSendPageEn { + _TranslationsSendPageBg._(TranslationsBg root) + : this._root = root, + super.internal(root); + + final TranslationsBg _root; // ignore: unused_field + + // Translations + @override + String get waiting => 'В очакване на отговор…'; + @override + String get rejected => 'Получателят е отхвърлил заявката.'; + @override + String get busy => 'Получателят е зает с друга заявка.'; +} + +// Path: progressPage +class _TranslationsProgressPageBg extends TranslationsProgressPageEn { + _TranslationsProgressPageBg._(TranslationsBg root) + : this._root = root, + super.internal(root); + + final TranslationsBg _root; // ignore: unused_field + + // Translations + @override + String get titleSending => 'Изпращане на файлове'; + @override + String get titleReceiving => 'Получаване на файлове'; + @override + String get savedToGallery => 'Запазено в Снимки'; + @override + late final _TranslationsProgressPageTotalBg total = _TranslationsProgressPageTotalBg._(_root); +} + +// Path: webSharePage +class _TranslationsWebSharePageBg extends TranslationsWebSharePageEn { + _TranslationsWebSharePageBg._(TranslationsBg root) + : this._root = root, + super.internal(root); + + final TranslationsBg _root; // ignore: unused_field + + // Translations + @override + String get title => 'Споделете чрез връзка'; + @override + String get loading => 'Стартиране на сървъра…'; + @override + String get stopping => 'Спиране на сървъра…'; + @override + String get error => 'Възникна грешка при стартиране на сървъра.'; + @override + String openLink({required num n}) => (_root.$meta.cardinalResolver ?? PluralResolvers.cardinal('bg'))( + n, + one: 'Отворете тази връзка във вашия браузър:', + other: 'Отворете една от тези връзки във вашия браузър:', + ); + @override + String get requests => 'Заявки'; + @override + String get noRequests => 'Все още няма заявки.'; + @override + String get encryption => _root.settingsTab.network.encryption; + @override + String get autoAccept => 'Автоматично приемане на заявки'; + @override + String get requirePin => 'Изискване на ПИН код'; + @override + String pinHint({required Object pin}) => 'ПИН кодът е „${pin}“'; + @override + String get encryptionHint => 'LocalSend използва самоподписан сертификат. Трябва да го приемете във вашия браузър.'; + @override + String pendingRequests({required Object n}) => 'Чакащи заявки: ${n}'; +} + +// Path: aboutPage +class _TranslationsAboutPageBg extends TranslationsAboutPageEn { + _TranslationsAboutPageBg._(TranslationsBg root) + : this._root = root, + super.internal(root); + + final TranslationsBg _root; // ignore: unused_field + + // Translations + @override + String get title => 'Относно LocalSend'; + @override + List get description => [ + 'LocalSend е безплатно приложение с отворен код, което ви позволява сигурно да споделяте файлове и съобщения с устройства наблизо през вашата локална мрежа, без да се нуждаете от интернет връзка.', + 'Това приложение е достъпно за Android, iOS, macOS, Windows и Linux. Можете да намерите всички опции за изтегляне на официалната домашна страница.', + ]; + @override + String get author => 'Автор'; + @override + String get contributors => 'Сътрудници'; + @override + String get packagers => 'Опаковчици'; + @override + String get translators => 'Преводачи'; +} + +// Path: donationPage +class _TranslationsDonationPageBg extends TranslationsDonationPageEn { + _TranslationsDonationPageBg._(TranslationsBg root) + : this._root = root, + super.internal(root); + + final TranslationsBg _root; // ignore: unused_field + + // Translations + @override + String get title => 'Дарете'; + @override + String get info => + 'LocalSend е безплатен, с отворен код и без никакви реклами. Ако харесвате приложението, можете да подкрепите разработката с дарение.'; + @override + String donate({required Object amount}) => 'Дарете ${amount}'; + @override + String get thanks => 'Благодаря много!'; + @override + String get restore => 'Възстановяване на покупка'; +} + +// Path: changelogPage +class _TranslationsChangelogPageBg extends TranslationsChangelogPageEn { + _TranslationsChangelogPageBg._(TranslationsBg root) + : this._root = root, + super.internal(root); + + final TranslationsBg _root; // ignore: unused_field + + // Translations + @override + String get title => 'Дневник на промените'; +} + +// Path: aliasGenerator +class _TranslationsAliasGeneratorBg extends TranslationsAliasGeneratorEn { + _TranslationsAliasGeneratorBg._(TranslationsBg root) + : this._root = root, + super.internal(root); + + final TranslationsBg _root; // ignore: unused_field + + // Translations +} + +// Path: dialogs +class _TranslationsDialogsBg extends TranslationsDialogsEn { + _TranslationsDialogsBg._(TranslationsBg root) + : this._root = root, + super.internal(root); + + final TranslationsBg _root; // ignore: unused_field + + // Translations + @override + late final _TranslationsDialogsAddFileBg addFile = _TranslationsDialogsAddFileBg._(_root); + @override + late final _TranslationsDialogsOpenFileBg openFile = _TranslationsDialogsOpenFileBg._(_root); + @override + late final _TranslationsDialogsAddressInputBg addressInput = _TranslationsDialogsAddressInputBg._(_root); + @override + late final _TranslationsDialogsCancelSessionBg cancelSession = _TranslationsDialogsCancelSessionBg._(_root); + @override + late final _TranslationsDialogsCannotOpenFileBg cannotOpenFile = _TranslationsDialogsCannotOpenFileBg._(_root); + @override + late final _TranslationsDialogsEncryptionDisabledNoticeBg encryptionDisabledNotice = _TranslationsDialogsEncryptionDisabledNoticeBg._(_root); + @override + late final _TranslationsDialogsErrorDialogBg errorDialog = _TranslationsDialogsErrorDialogBg._(_root); + @override + late final _TranslationsDialogsFavoriteDialogBg favoriteDialog = _TranslationsDialogsFavoriteDialogBg._(_root); + @override + late final _TranslationsDialogsFavoriteDeleteDialogBg favoriteDeleteDialog = _TranslationsDialogsFavoriteDeleteDialogBg._(_root); + @override + late final _TranslationsDialogsFavoriteEditDialogBg favoriteEditDialog = _TranslationsDialogsFavoriteEditDialogBg._(_root); + @override + late final _TranslationsDialogsFileInfoBg fileInfo = _TranslationsDialogsFileInfoBg._(_root); + @override + late final _TranslationsDialogsFileNameInputBg fileNameInput = _TranslationsDialogsFileNameInputBg._(_root); + @override + late final _TranslationsDialogsHistoryClearDialogBg historyClearDialog = _TranslationsDialogsHistoryClearDialogBg._(_root); + @override + late final _TranslationsDialogsLocalNetworkUnauthorizedBg localNetworkUnauthorized = _TranslationsDialogsLocalNetworkUnauthorizedBg._(_root); + @override + late final _TranslationsDialogsMessageInputBg messageInput = _TranslationsDialogsMessageInputBg._(_root); + @override + late final _TranslationsDialogsNoFilesBg noFiles = _TranslationsDialogsNoFilesBg._(_root); + @override + late final _TranslationsDialogsNoPermissionBg noPermission = _TranslationsDialogsNoPermissionBg._(_root); + @override + late final _TranslationsDialogsNotAvailableOnPlatformBg notAvailableOnPlatform = _TranslationsDialogsNotAvailableOnPlatformBg._(_root); + @override + late final _TranslationsDialogsQrBg qr = _TranslationsDialogsQrBg._(_root); + @override + late final _TranslationsDialogsQuickActionsBg quickActions = _TranslationsDialogsQuickActionsBg._(_root); +} + +// Path: receiveTab.infoBox +class _TranslationsReceiveTabInfoBoxBg extends TranslationsReceiveTabInfoBoxEn { + _TranslationsReceiveTabInfoBoxBg._(TranslationsBg root) + : this._root = root, + super.internal(root); + + final TranslationsBg _root; // ignore: unused_field + + // Translations + @override + String get ip => 'IP:'; + @override + String get port => 'Порт:'; + @override + String get alias => 'Име на устройството:'; +} + +// Path: receiveTab.quickSave +class _TranslationsReceiveTabQuickSaveBg extends TranslationsReceiveTabQuickSaveEn { + _TranslationsReceiveTabQuickSaveBg._(TranslationsBg root) + : this._root = root, + super.internal(root); + + final TranslationsBg _root; // ignore: unused_field + + // Translations + @override + String get off => _root.general.off; + @override + String get favorites => 'Любими'; + @override + String get on => _root.general.on; +} + +// Path: sendTab.selection +class _TranslationsSendTabSelectionBg extends TranslationsSendTabSelectionEn { + _TranslationsSendTabSelectionBg._(TranslationsBg root) + : this._root = root, + super.internal(root); + + final TranslationsBg _root; // ignore: unused_field + + // Translations + @override + String get title => 'Избор'; + @override + String files({required Object files}) => 'Файлове: ${files}'; + @override + String size({required Object size}) => 'Размер: ${size}'; +} + +// Path: sendTab.picker +class _TranslationsSendTabPickerBg extends TranslationsSendTabPickerEn { + _TranslationsSendTabPickerBg._(TranslationsBg root) + : this._root = root, + super.internal(root); + + final TranslationsBg _root; // ignore: unused_field + + // Translations + @override + String get file => 'Файл'; + @override + String get folder => 'Папка'; + @override + String get media => 'Медия'; + @override + String get text => 'Текст'; + @override + String get app => 'Приложение'; + @override + String get clipboard => 'Постави'; +} + +// Path: sendTab.sendModes +class _TranslationsSendTabSendModesBg extends TranslationsSendTabSendModesEn { + _TranslationsSendTabSendModesBg._(TranslationsBg root) + : this._root = root, + super.internal(root); + + final TranslationsBg _root; // ignore: unused_field + + // Translations + @override + String get single => 'Единичен получател'; + @override + String get multiple => 'Множество получатели'; + @override + String get link => 'Споделете чрез връзка'; +} + +// Path: settingsTab.general +class _TranslationsSettingsTabGeneralBg extends TranslationsSettingsTabGeneralEn { + _TranslationsSettingsTabGeneralBg._(TranslationsBg root) + : this._root = root, + super.internal(root); + + final TranslationsBg _root; // ignore: unused_field + + // Translations + @override + String get title => 'Общи'; + @override + String get brightness => 'Тема'; + @override + late final _TranslationsSettingsTabGeneralBrightnessOptionsBg brightnessOptions = _TranslationsSettingsTabGeneralBrightnessOptionsBg._(_root); + @override + String get color => 'Цвят'; + @override + late final _TranslationsSettingsTabGeneralColorOptionsBg colorOptions = _TranslationsSettingsTabGeneralColorOptionsBg._(_root); + @override + String get language => 'Език'; + @override + late final _TranslationsSettingsTabGeneralLanguageOptionsBg languageOptions = _TranslationsSettingsTabGeneralLanguageOptionsBg._(_root); + @override + String get saveWindowPlacement => 'Запази позицията на прозореца след напускане'; + @override + String get saveWindowPlacementWindows => 'Запази позицията на прозореца след излизане'; + @override + String get minimizeToTray => 'Минимизиране до Системна област/Лента с менюта при затваряне'; + @override + String get launchAtStartup => 'Автоматично стартиране след влизане'; + @override + String get launchMinimized => 'Автоматично стартиране: Стартирай скрито'; + @override + String get showInContextMenu => 'Показване на LocalSend в контекстното меню'; + @override + String get animations => 'Анимации'; +} + +// Path: settingsTab.receive +class _TranslationsSettingsTabReceiveBg extends TranslationsSettingsTabReceiveEn { + _TranslationsSettingsTabReceiveBg._(TranslationsBg root) + : this._root = root, + super.internal(root); + + final TranslationsBg _root; // ignore: unused_field + + // Translations + @override + String get title => 'Получаване'; + @override + String get quickSave => _root.general.quickSave; + @override + String get quickSaveFromFavorites => _root.general.quickSaveFromFavorites; + @override + String get requirePin => _root.webSharePage.requirePin; + @override + String get autoFinish => 'Автоматично завършване'; + @override + String get destination => 'Запази в папка'; + @override + String get downloads => '(Изтегляния)'; + @override + String get saveToGallery => 'Запази медия в галерия'; + @override + String get saveToHistory => 'Запази в история'; +} + +// Path: settingsTab.send +class _TranslationsSettingsTabSendBg extends TranslationsSettingsTabSendEn { + _TranslationsSettingsTabSendBg._(TranslationsBg root) + : this._root = root, + super.internal(root); + + final TranslationsBg _root; // ignore: unused_field + + // Translations + @override + String get title => 'Изпрати'; + @override + String get shareViaLinkAutoAccept => 'Автоматично приемане на заявки в режим "Споделяне чрез връзка"'; +} + +// Path: settingsTab.network +class _TranslationsSettingsTabNetworkBg extends TranslationsSettingsTabNetworkEn { + _TranslationsSettingsTabNetworkBg._(TranslationsBg root) + : this._root = root, + super.internal(root); + + final TranslationsBg _root; // ignore: unused_field + + // Translations + @override + String get title => 'Мрежа'; + @override + String get needRestart => 'Рестартирай сървъра, за да приложите настройките!'; + @override + String get server => 'Сървър'; + @override + String get alias => 'Име на устройството'; + @override + String get deviceType => 'Тип устройството'; + @override + String get deviceModel => 'Модел на устройството'; + @override + String get port => 'Порт'; + @override + String get discoveryTimeout => 'Изчакване за откриване'; + @override + String get useSystemName => 'Използвай системно име'; + @override + String get generateRandomAlias => 'Създаване на случаен псевдоним'; + @override + String portWarning({required Object defaultPort}) => + 'Възможно е да не бъдете открити от други устройства, защото използвате персонализиран порт. (default: ${defaultPort})'; + @override + String get encryption => 'Шифроване'; + @override + String get multicastGroup => 'Адрес за множествено предаване'; + @override + String multicastGroupWarning({required Object defaultMulticast}) => + 'Възможно е да не бъдете открити от други устройства, защото използвате персонализиран адрес за множествено предаване. (default: ${defaultMulticast})'; +} + +// Path: settingsTab.other +class _TranslationsSettingsTabOtherBg extends TranslationsSettingsTabOtherEn { + _TranslationsSettingsTabOtherBg._(TranslationsBg root) + : this._root = root, + super.internal(root); + + final TranslationsBg _root; // ignore: unused_field + + // Translations + @override + String get title => 'Други'; + @override + String get support => 'Поддръжка на LocalSend'; + @override + String get donate => 'Дарете'; + @override + String get privacyPolicy => 'Политика за поверителност'; + @override + String get termsOfUse => 'Условия за ползване'; +} + +// Path: troubleshootPage.firewall +class _TranslationsTroubleshootPageFirewallBg extends TranslationsTroubleshootPageFirewallEn { + _TranslationsTroubleshootPageFirewallBg._(TranslationsBg root) + : this._root = root, + super.internal(root); + + final TranslationsBg _root; // ignore: unused_field + + // Translations + @override + String get symptom => + 'Това устройство може да изпраща файлове на други устройства, но други устройства не могат да изпращат файлове на това устройство.'; + @override + String solution({required Object port}) => + 'Това най-вероятно е проблем със защитната стена. Можете да разрешите това, като разрешите входящи връзки (UDP и TCP) на порт ${port}.'; + @override + String get openFirewall => 'Отворете защитната стена'; +} + +// Path: troubleshootPage.noDiscovery +class _TranslationsTroubleshootPageNoDiscoveryBg extends TranslationsTroubleshootPageNoDiscoveryEn { + _TranslationsTroubleshootPageNoDiscoveryBg._(TranslationsBg root) + : this._root = root, + super.internal(root); + + final TranslationsBg _root; // ignore: unused_field + + // Translations + @override + String get symptom => 'Това устройство не може да открие други устройства.'; + @override + String get solution => + 'Моля, уверете се, че всички устройства са в една и съща Wi-Fi мрежа и споделят една и съща конфигурация (порт, адрес за множествено предаване, криптиране). Можете да опитате да въведете ръчно IP адреса на целевото устройство. Ако това работи, обмислете добавянето на това устройство към любими, за да може да бъде автоматично открито в бъдеще.'; +} + +// Path: troubleshootPage.noConnection +class _TranslationsTroubleshootPageNoConnectionBg extends TranslationsTroubleshootPageNoConnectionEn { + _TranslationsTroubleshootPageNoConnectionBg._(TranslationsBg root) + : this._root = root, + super.internal(root); + + final TranslationsBg _root; // ignore: unused_field + + // Translations + @override + String get symptom => 'И двете устройства не могат да се откриват, нито могат да споделят файлове.'; + @override + String get solution => + 'Проблемът и от двете страни ли съществува? Ако е така, трябва да се уверите, че и двете устройства са в една и съща Wi-Fi мрежа и споделят една и съща конфигурация (порт, адрес за множествено предаване, криптиране). Wi-Fi мрежата може да не позволява комуникация между участниците поради изолация на точката за достъп (AP). В този случай тази опция трябва да бъде деактивирана на рутера.'; +} + +// Path: receiveHistoryPage.entryActions +class _TranslationsReceiveHistoryPageEntryActionsBg extends TranslationsReceiveHistoryPageEntryActionsEn { + _TranslationsReceiveHistoryPageEntryActionsBg._(TranslationsBg root) + : this._root = root, + super.internal(root); + + final TranslationsBg _root; // ignore: unused_field + + // Translations + @override + String get open => 'Отворете файл'; + @override + String get showInFolder => 'Показване в папка'; + @override + String get info => 'Информация'; + @override + String get deleteFromHistory => 'Изтриване от историята'; +} + +// Path: progressPage.total +class _TranslationsProgressPageTotalBg extends TranslationsProgressPageTotalEn { + _TranslationsProgressPageTotalBg._(TranslationsBg root) + : this._root = root, + super.internal(root); + + final TranslationsBg _root; // ignore: unused_field + + // Translations + @override + late final _TranslationsProgressPageTotalTitleBg title = _TranslationsProgressPageTotalTitleBg._(_root); + @override + String count({required Object curr, required Object n}) => 'Файлове: ${curr} / ${n}'; + @override + String size({required Object curr, required Object n}) => 'Размер: ${curr} / ${n}'; + @override + String speed({required Object speed}) => 'Скорост: ${speed}/s'; +} + +// Path: dialogs.addFile +class _TranslationsDialogsAddFileBg extends TranslationsDialogsAddFileEn { + _TranslationsDialogsAddFileBg._(TranslationsBg root) + : this._root = root, + super.internal(root); + + final TranslationsBg _root; // ignore: unused_field + + // Translations + @override + String get title => 'Добави към избора'; + @override + String get content => 'Какво искате да добавите?'; +} + +// Path: dialogs.openFile +class _TranslationsDialogsOpenFileBg extends TranslationsDialogsOpenFileEn { + _TranslationsDialogsOpenFileBg._(TranslationsBg root) + : this._root = root, + super.internal(root); + + final TranslationsBg _root; // ignore: unused_field + + // Translations + @override + String get title => 'Отворете файл'; + @override + String get content => 'Искате ли да отворите получения файл?'; +} + +// Path: dialogs.addressInput +class _TranslationsDialogsAddressInputBg extends TranslationsDialogsAddressInputEn { + _TranslationsDialogsAddressInputBg._(TranslationsBg root) + : this._root = root, + super.internal(root); + + final TranslationsBg _root; // ignore: unused_field + + // Translations + @override + String get title => 'Въведете адрес'; + @override + String get hashtag => 'Хаштаг'; + @override + String get ip => 'IP адрес'; + @override + String get recentlyUsed => 'Наскоро използван: '; +} + +// Path: dialogs.cancelSession +class _TranslationsDialogsCancelSessionBg extends TranslationsDialogsCancelSessionEn { + _TranslationsDialogsCancelSessionBg._(TranslationsBg root) + : this._root = root, + super.internal(root); + + final TranslationsBg _root; // ignore: unused_field + + // Translations + @override + String get title => 'Отмени прехвърлянето на файлове'; + @override + String get content => 'Наистина ли искате да отмените прехвърлянето на файлове?'; +} + +// Path: dialogs.cannotOpenFile +class _TranslationsDialogsCannotOpenFileBg extends TranslationsDialogsCannotOpenFileEn { + _TranslationsDialogsCannotOpenFileBg._(TranslationsBg root) + : this._root = root, + super.internal(root); + + final TranslationsBg _root; // ignore: unused_field + + // Translations + @override + String get title => 'Не може да се отвори файл'; + @override + String content({required Object file}) => 'Не може да се отвори "${file}". Този файл бил ли е преместен, преименуван или изтрит?'; +} + +// Path: dialogs.encryptionDisabledNotice +class _TranslationsDialogsEncryptionDisabledNoticeBg extends TranslationsDialogsEncryptionDisabledNoticeEn { + _TranslationsDialogsEncryptionDisabledNoticeBg._(TranslationsBg root) + : this._root = root, + super.internal(root); + + final TranslationsBg _root; // ignore: unused_field + + // Translations + @override + String get title => 'Шифроването е деактивирано'; + @override + String get content => + 'Комуникацията вече се осъществява чрез некриптиран HTTP протокол. За да използвате HTTPS протокол, активирайте криптирането отново.'; +} + +// Path: dialogs.errorDialog +class _TranslationsDialogsErrorDialogBg extends TranslationsDialogsErrorDialogEn { + _TranslationsDialogsErrorDialogBg._(TranslationsBg root) + : this._root = root, + super.internal(root); + + final TranslationsBg _root; // ignore: unused_field + + // Translations + @override + String get title => _root.general.error; +} + +// Path: dialogs.favoriteDialog +class _TranslationsDialogsFavoriteDialogBg extends TranslationsDialogsFavoriteDialogEn { + _TranslationsDialogsFavoriteDialogBg._(TranslationsBg root) + : this._root = root, + super.internal(root); + + final TranslationsBg _root; // ignore: unused_field + + // Translations + @override + String get title => 'Любими'; + @override + String get noFavorites => 'Все още няма любими устройства.'; + @override + String get addFavorite => 'Добави'; +} + +// Path: dialogs.favoriteDeleteDialog +class _TranslationsDialogsFavoriteDeleteDialogBg extends TranslationsDialogsFavoriteDeleteDialogEn { + _TranslationsDialogsFavoriteDeleteDialogBg._(TranslationsBg root) + : this._root = root, + super.internal(root); + + final TranslationsBg _root; // ignore: unused_field + + // Translations + @override + String get title => 'Изтриване от любими'; + @override + String content({required Object name}) => 'Наистина ли искате да изтриете от любими "${name}"?'; +} + +// Path: dialogs.favoriteEditDialog +class _TranslationsDialogsFavoriteEditDialogBg extends TranslationsDialogsFavoriteEditDialogEn { + _TranslationsDialogsFavoriteEditDialogBg._(TranslationsBg root) + : this._root = root, + super.internal(root); + + final TranslationsBg _root; // ignore: unused_field + + // Translations + @override + String get titleAdd => 'Добави към любими'; + @override + String get titleEdit => 'Настройки'; + @override + String get name => 'Име на устройство'; + @override + String get auto => '(автоматично)'; + @override + String get ip => 'IP адрес'; + @override + String get port => 'Порт'; +} + +// Path: dialogs.fileInfo +class _TranslationsDialogsFileInfoBg extends TranslationsDialogsFileInfoEn { + _TranslationsDialogsFileInfoBg._(TranslationsBg root) + : this._root = root, + super.internal(root); + + final TranslationsBg _root; // ignore: unused_field + + // Translations + @override + String get title => 'Информация за файла'; + @override + String get fileName => 'Име на файл:'; + @override + String get path => 'Път:'; + @override + String get size => 'Размер:'; + @override + String get sender => 'Подател:'; + @override + String get time => 'Време:'; +} + +// Path: dialogs.fileNameInput +class _TranslationsDialogsFileNameInputBg extends TranslationsDialogsFileNameInputEn { + _TranslationsDialogsFileNameInputBg._(TranslationsBg root) + : this._root = root, + super.internal(root); + + final TranslationsBg _root; // ignore: unused_field + + // Translations + @override + String get title => 'Въведете име на файл'; + @override + String original({required Object original}) => 'Оригинално: ${original}'; +} + +// Path: dialogs.historyClearDialog +class _TranslationsDialogsHistoryClearDialogBg extends TranslationsDialogsHistoryClearDialogEn { + _TranslationsDialogsHistoryClearDialogBg._(TranslationsBg root) + : this._root = root, + super.internal(root); + + final TranslationsBg _root; // ignore: unused_field + + // Translations + @override + String get title => 'Изчистване на история'; + @override + String get content => 'Наистина ли искате да изтриете цялата история?'; +} + +// Path: dialogs.localNetworkUnauthorized +class _TranslationsDialogsLocalNetworkUnauthorizedBg extends TranslationsDialogsLocalNetworkUnauthorizedEn { + _TranslationsDialogsLocalNetworkUnauthorizedBg._(TranslationsBg root) + : this._root = root, + super.internal(root); + + final TranslationsBg _root; // ignore: unused_field + + // Translations + @override + String get title => _root.dialogs.noPermission.title; + @override + String get description => + 'LocalSend не може да намери други устройства, без да има разрешение за сканиране на локалната мрежа. Моля, дайте това разрешение в настройките.'; + @override + String get gotoSettings => 'Настройки'; +} + +// Path: dialogs.messageInput +class _TranslationsDialogsMessageInputBg extends TranslationsDialogsMessageInputEn { + _TranslationsDialogsMessageInputBg._(TranslationsBg root) + : this._root = root, + super.internal(root); + + final TranslationsBg _root; // ignore: unused_field + + // Translations + @override + String get title => 'Въведете съобщение'; + @override + String get multiline => 'Многоредов'; +} + +// Path: dialogs.noFiles +class _TranslationsDialogsNoFilesBg extends TranslationsDialogsNoFilesEn { + _TranslationsDialogsNoFilesBg._(TranslationsBg root) + : this._root = root, + super.internal(root); + + final TranslationsBg _root; // ignore: unused_field + + // Translations + @override + String get title => 'Няма избрани файлове'; + @override + String get content => 'Моля, изберете поне един файл.'; +} + +// Path: dialogs.noPermission +class _TranslationsDialogsNoPermissionBg extends TranslationsDialogsNoPermissionEn { + _TranslationsDialogsNoPermissionBg._(TranslationsBg root) + : this._root = root, + super.internal(root); + + final TranslationsBg _root; // ignore: unused_field + + // Translations + @override + String get title => 'Няма разрешение'; + @override + String get content => 'Не сте предоставили необходимите разрешения. Моля, дайте ги в настройките.'; +} + +// Path: dialogs.notAvailableOnPlatform +class _TranslationsDialogsNotAvailableOnPlatformBg extends TranslationsDialogsNotAvailableOnPlatformEn { + _TranslationsDialogsNotAvailableOnPlatformBg._(TranslationsBg root) + : this._root = root, + super.internal(root); + + final TranslationsBg _root; // ignore: unused_field + + // Translations + @override + String get title => 'Не е налична'; + @override + String get content => 'Тази функция е достъпна само на:'; +} + +// Path: dialogs.qr +class _TranslationsDialogsQrBg extends TranslationsDialogsQrEn { + _TranslationsDialogsQrBg._(TranslationsBg root) + : this._root = root, + super.internal(root); + + final TranslationsBg _root; // ignore: unused_field + + // Translations + @override + String get title => 'QR код'; +} + +// Path: dialogs.quickActions +class _TranslationsDialogsQuickActionsBg extends TranslationsDialogsQuickActionsEn { + _TranslationsDialogsQuickActionsBg._(TranslationsBg root) + : this._root = root, + super.internal(root); + + final TranslationsBg _root; // ignore: unused_field + + // Translations + @override + String get title => 'Бързи действия'; + @override + String get counter => 'Брояч'; + @override + String get prefix => 'Префикс'; + @override + String get padZero => 'Подложка с нули'; + @override + String get sortBeforeCount => 'Сортирай по азбучен ред предварително (A-Z)'; +} + +// Path: settingsTab.general.brightnessOptions +class _TranslationsSettingsTabGeneralBrightnessOptionsBg extends TranslationsSettingsTabGeneralBrightnessOptionsEn { + _TranslationsSettingsTabGeneralBrightnessOptionsBg._(TranslationsBg root) + : this._root = root, + super.internal(root); + + final TranslationsBg _root; // ignore: unused_field + + // Translations + @override + String get system => 'Система'; + @override + String get dark => 'Тъмна'; + @override + String get light => 'Светла'; +} + +// Path: settingsTab.general.colorOptions +class _TranslationsSettingsTabGeneralColorOptionsBg extends TranslationsSettingsTabGeneralColorOptionsEn { + _TranslationsSettingsTabGeneralColorOptionsBg._(TranslationsBg root) + : this._root = root, + super.internal(root); + + final TranslationsBg _root; // ignore: unused_field + + // Translations + @override + String get system => 'Система'; + @override + String get oled => 'OLED'; +} + +// Path: settingsTab.general.languageOptions +class _TranslationsSettingsTabGeneralLanguageOptionsBg extends TranslationsSettingsTabGeneralLanguageOptionsEn { + _TranslationsSettingsTabGeneralLanguageOptionsBg._(TranslationsBg root) + : this._root = root, + super.internal(root); + + final TranslationsBg _root; // ignore: unused_field + + // Translations + @override + String get system => 'Система'; +} + +// Path: progressPage.total.title +class _TranslationsProgressPageTotalTitleBg extends TranslationsProgressPageTotalTitleEn { + _TranslationsProgressPageTotalTitleBg._(TranslationsBg root) + : this._root = root, + super.internal(root); + + final TranslationsBg _root; // ignore: unused_field + + // Translations + @override + String sending({required Object time}) => 'Общ напредък (${time})'; + @override + String get finishedError => 'Завършено с грешка'; + @override + String get canceledSender => 'Отменено от подателя'; + @override + String get canceledReceiver => 'Отменено от получателя'; +} diff --git a/app/lib/gen/strings_ca.g.dart b/app/lib/gen/strings_ca.g.dart index 58f16cc7..ad2646e7 100644 --- a/app/lib/gen/strings_ca.g.dart +++ b/app/lib/gen/strings_ca.g.dart @@ -112,10 +112,10 @@ class _TranslationsGeneralCa extends TranslationsGeneralEn { @override String get decline => 'Rebutjar'; @override - String get delete => 'Eliminar'; - @override String get done => 'Fet'; @override + String get delete => 'Eliminar'; + @override String get edit => 'Editar'; @override String get error => 'Error'; @@ -128,8 +128,6 @@ class _TranslationsGeneralCa extends TranslationsGeneralEn { @override String get hide => 'Amagar'; @override - String get noItemInClipboard => 'No hi ha elements al porta-papers.'; - @override String get off => 'Apagat'; @override String get offline => 'Desconnectat'; @@ -165,6 +163,8 @@ class _TranslationsGeneralCa extends TranslationsGeneralEn { String get unchanged => 'Sense canvis'; @override String get unknown => 'Desconegut'; + @override + String get noItemInClipboard => 'No hi ha elements al porta-papers.'; } // Path: receiveTab @@ -192,19 +192,22 @@ class _TranslationsSendTabCa extends TranslationsSendTabEn { // Translations @override - String get help => 'Si us plau, asseguris que el destinatari està a la mateixa xarxa Wi-Fi.'; + String get title => 'Enviar'; @override - String get manualSending => 'Enviament manual'; - @override - String get nearbyDevices => 'Dispositius propers'; + late final _TranslationsSendTabSelectionCa selection = _TranslationsSendTabSelectionCa._(_root); @override late final _TranslationsSendTabPickerCa picker = _TranslationsSendTabPickerCa._(_root); @override - String get placeItems => 'Place items to share.'; + String get shareIntentInfo => + 'També pot utilitzar l\'opció de "Compartir" del seu dispositiu mòbil per seleccionar fitxer d\'una manera més fàcil.'; + @override + String get nearbyDevices => 'Dispositius propers'; + @override + String get thisDevice => 'Aquest dispositiu'; @override String get scan => 'Cercar dispositius'; @override - late final _TranslationsSendTabSelectionCa selection = _TranslationsSendTabSelectionCa._(_root); + String get manualSending => 'Enviament manual'; @override String get sendMode => 'Mode d\'enviament'; @override @@ -212,12 +215,9 @@ class _TranslationsSendTabCa extends TranslationsSendTabEn { @override String get sendModeHelp => 'Explicació'; @override - String get shareIntentInfo => - 'També pot utilitzar l\'opció de "Compartir" del seu dispositiu mòbil per seleccionar fitxer d\'una manera més fàcil.'; + String get help => 'Si us plau, asseguris que el destinatari està a la mateixa xarxa Wi-Fi.'; @override - String get thisDevice => 'Aquest dispositiu'; - @override - String get title => 'Enviar'; + String get placeItems => 'Place items to share.'; } // Path: settingsTab @@ -255,19 +255,19 @@ class _TranslationsTroubleshootPageCa extends TranslationsTroubleshootPageEn { // Translations @override + String get title => 'Solucionar problemes'; + @override + String get subTitle => 'L\'aplicació no funciona com s\'espera? Aquí pot trobar la solucions dels problemes més comuns.'; + @override + String get solution => 'Solució:'; + @override String get fixButton => 'Corregir automàticament'; @override late final _TranslationsTroubleshootPageFirewallCa firewall = _TranslationsTroubleshootPageFirewallCa._(_root); @override - late final _TranslationsTroubleshootPageNoConnectionCa noConnection = _TranslationsTroubleshootPageNoConnectionCa._(_root); - @override late final _TranslationsTroubleshootPageNoDiscoveryCa noDiscovery = _TranslationsTroubleshootPageNoDiscoveryCa._(_root); @override - String get solution => 'Solució:'; - @override - String get subTitle => 'L\'aplicació no funciona com s\'espera? Aquí pot trobar la solucions dels problemes més comuns.'; - @override - String get title => 'Solucionar problemes'; + late final _TranslationsTroubleshootPageNoConnectionCa noConnection = _TranslationsTroubleshootPageNoConnectionCa._(_root); } // Path: receiveHistoryPage @@ -280,15 +280,15 @@ class _TranslationsReceiveHistoryPageCa extends TranslationsReceiveHistoryPageEn // Translations @override + String get title => 'Historial'; + @override + String get openFolder => 'Obrir carpeta'; + @override String get deleteHistory => 'Eliminar historial'; @override String get empty => 'L\'historial està buit.'; @override late final _TranslationsReceiveHistoryPageEntryActionsCa entryActions = _TranslationsReceiveHistoryPageEntryActionsCa._(_root); - @override - String get openFolder => 'Obrir carpeta'; - @override - String get title => 'Historial'; } // Path: apkPickerPage @@ -301,13 +301,13 @@ class _TranslationsApkPickerPageCa extends TranslationsApkPickerPageEn { // Translations @override - String apps({required Object n}) => '${n} Aplicacions'; + String get title => 'Aplicacions (APK)'; @override String get excludeSystemApps => 'Excloure aplicacions del sistema'; @override String get excludeAppsWithoutLaunchIntent => 'Excloure aplicacions no executables'; @override - String get title => 'Aplicacions (APK)'; + String apps({required Object n}) => '${n} Aplicacions'; } // Path: selectedFilesPage @@ -333,17 +333,17 @@ class _TranslationsReceivePageCa extends TranslationsReceivePageEn { // Translations @override - String get canceled => 'El remitent ha cancelat la petició.'; - @override String subTitle({required num n}) => (_root.$meta.cardinalResolver ?? PluralResolvers.cardinal('ca'))( n, one: 'vol enviar un fitxer', other: 'vol enviar ${n} fitxers', ); @override + String get subTitleMessage => 't\'ha enviat un missatge:'; + @override String get subTitleLink => 't\'ha enviat un enllaç:'; @override - String get subTitleMessage => 't\'ha enviat un missatge:'; + String get canceled => 'El remitent ha cancelat la petició.'; } // Path: receiveOptionsPage @@ -356,15 +356,15 @@ class _TranslationsReceiveOptionsPageCa extends TranslationsReceiveOptionsPageEn // Translations @override - String get appDirectory => '(Carpeta LocalSend)'; + String get title => 'Opcions'; @override String get destination => _root.settingsTab.receive.destination; @override + String get appDirectory => '(Carpeta LocalSend)'; + @override String get saveToGallery => _root.settingsTab.receive.saveToGallery; @override String get saveToGalleryOff => 'S\'ha desactivat automàticament perquè hi ha carpetes.'; - @override - String get title => 'Opcions'; } // Path: sendPage @@ -377,13 +377,13 @@ class _TranslationsSendPageCa extends TranslationsSendPageEn { // Translations @override - String get busy => 'El destinatari està ocupat amb una altra petició.'; + String get waiting => 'Esperant una resposta...'; @override String get rejected => 'El destinatari ha rebutjat la petició.'; @override String get tooManyAttempts => _root.web.tooManyAttempts; @override - String get waiting => 'Esperant una resposta...'; + String get busy => 'El destinatari està ocupat amb una altra petició.'; } // Path: progressPage @@ -415,8 +415,6 @@ class _TranslationsWebSharePageCa extends TranslationsWebSharePageEn { // Translations @override - String get autoAccept => 'Acceptar peticions automàticament'; - @override String get title => 'Compartir via enllaç'; @override String get loading => 'Iniciant servidor...'; @@ -431,16 +429,18 @@ class _TranslationsWebSharePageCa extends TranslationsWebSharePageEn { other: 'Obrir un d\'aquests enllaços al navegador:', ); @override - String pinHint({required Object pin}) => 'El PIN és "${pin}"'; - @override String get requests => 'Peticions'; @override - String get requirePin => 'Requerir un PIN'; - @override String get noRequests => 'Encar ano hi ha peticions.'; @override String get encryption => _root.settingsTab.network.encryption; @override + String get autoAccept => 'Acceptar peticions automàticament'; + @override + String get requirePin => 'Requerir un PIN'; + @override + String pinHint({required Object pin}) => 'El PIN és "${pin}"'; + @override String get encryptionHint => 'LocalSend utilitza un certificat auto-signat. Cal que l\'accepteu al navegador.'; @override String pendingRequests({required Object n}) => 'Peticions pendents: ${n}'; @@ -456,20 +456,20 @@ class _TranslationsAboutPageCa extends TranslationsAboutPageEn { // Translations @override - String get author => 'Autor'; - @override - String get contributors => 'Col·laboradors'; + String get title => 'Sobre LocalSend'; @override List get 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.', ]; @override + String get author => 'Autor'; + @override + String get contributors => 'Col·laboradors'; + @override String get packagers => 'Empaquetadors'; @override String get translators => 'Traductors'; - @override - String get title => 'Sobre LocalSend'; } // Path: donationPage @@ -482,16 +482,16 @@ class _TranslationsDonationPageCa extends TranslationsDonationPageEn { // Translations @override - String donate({required Object amount}) => 'Donació ${amount}'; + String get title => 'Donació'; @override String get 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ó.'; @override - String get restore => 'Restaurar la compra'; + String donate({required Object amount}) => 'Donació ${amount}'; @override String get thanks => 'Moltes gràcies!'; @override - String get title => 'Donació'; + String get restore => 'Restaurar la compra'; } // Path: changelogPage @@ -614,16 +614,16 @@ class _TranslationsDialogsCa extends TranslationsDialogsEn { @override late final _TranslationsDialogsErrorDialogCa errorDialog = _TranslationsDialogsErrorDialogCa._(_root); @override - late final _TranslationsDialogsFileInfoCa fileInfo = _TranslationsDialogsFileInfoCa._(_root); - @override - late final _TranslationsDialogsFileNameInputCa fileNameInput = _TranslationsDialogsFileNameInputCa._(_root); - @override late final _TranslationsDialogsFavoriteDialogCa favoriteDialog = _TranslationsDialogsFavoriteDialogCa._(_root); @override late final _TranslationsDialogsFavoriteDeleteDialogCa favoriteDeleteDialog = _TranslationsDialogsFavoriteDeleteDialogCa._(_root); @override late final _TranslationsDialogsFavoriteEditDialogCa favoriteEditDialog = _TranslationsDialogsFavoriteEditDialogCa._(_root); @override + late final _TranslationsDialogsFileInfoCa fileInfo = _TranslationsDialogsFileInfoCa._(_root); + @override + late final _TranslationsDialogsFileNameInputCa fileNameInput = _TranslationsDialogsFileNameInputCa._(_root); + @override late final _TranslationsDialogsHistoryClearDialogCa historyClearDialog = _TranslationsDialogsHistoryClearDialogCa._(_root); @override late final _TranslationsDialogsLocalNetworkUnauthorizedCa localNetworkUnauthorized = _TranslationsDialogsLocalNetworkUnauthorizedCa._(_root); @@ -636,16 +636,16 @@ class _TranslationsDialogsCa extends TranslationsDialogsEn { @override late final _TranslationsDialogsNotAvailableOnPlatformCa notAvailableOnPlatform = _TranslationsDialogsNotAvailableOnPlatformCa._(_root); @override - late final _TranslationsDialogsPinCa pin = _TranslationsDialogsPinCa._(_root); - @override late final _TranslationsDialogsQrCa qr = _TranslationsDialogsQrCa._(_root); @override late final _TranslationsDialogsQuickActionsCa quickActions = _TranslationsDialogsQuickActionsCa._(_root); @override + late final _TranslationsDialogsQuickSaveNoticeCa quickSaveNotice = _TranslationsDialogsQuickSaveNoticeCa._(_root); + @override late final _TranslationsDialogsQuickSaveFromFavoritesNoticeCa quickSaveFromFavoritesNotice = _TranslationsDialogsQuickSaveFromFavoritesNoticeCa._(_root); @override - late final _TranslationsDialogsQuickSaveNoticeCa quickSaveNotice = _TranslationsDialogsQuickSaveNoticeCa._(_root); + late final _TranslationsDialogsPinCa pin = _TranslationsDialogsPinCa._(_root); @override late final _TranslationsDialogsSendModeHelpCa sendModeHelp = _TranslationsDialogsSendModeHelpCa._(_root); @override @@ -677,11 +677,11 @@ class _TranslationsTrayCa extends TranslationsTrayEn { // Translations @override + String get open => _root.general.open; + @override String get close => 'Sortir de LocalSend'; @override String get closeWindows => 'Sortir'; - @override - String get open => _root.general.open; } // Path: web @@ -694,21 +694,21 @@ class _TranslationsWebCa extends TranslationsWebEn { // Translations @override + String get waiting => _root.sendPage.waiting; + @override String get enterPin => 'Introduïr PIN'; @override String get invalidPin => 'PIN invàlid'; @override + String get tooManyAttempts => 'Massa intents'; + @override + String get rejected => 'Rebutjat'; + @override String get files => 'Fitxers'; @override String get fileName => 'Nom del fitxer'; @override - String get rejected => 'Rebutjat'; - @override String get size => 'Mida'; - @override - String get tooManyAttempts => 'Massa intents'; - @override - String get waiting => _root.sendPage.waiting; } // Path: assetPicker @@ -721,27 +721,14 @@ class _TranslationsAssetPickerCa extends TranslationsAssetPickerEn { // Translations @override - String get 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.'; - @override - String get accessLimitedAssets => 'Continuar amb accés limitat'; - @override - String get accessiblePathName => 'Fitxers accessibles'; + String get confirm => 'Confirmar'; @override String get cancel => 'Cancel·lar'; @override - String get changeAccessibleLimitedAssets => 'Faci clic per actualitzar els fitxers accessibles'; - @override - String get confirm => 'Confirmar'; - @override String get edit => 'Editar'; @override - String get emptyList => 'Llista buida'; - @override String get gifIndicator => 'GIF'; @override - String get goToSystemSettings => 'Anar a la configuració del sistema'; - @override String get loadFailed => 'Càrrega fallida'; @override String get original => 'Original'; @@ -750,6 +737,25 @@ class _TranslationsAssetPickerCa extends TranslationsAssetPickerEn { @override String get select => 'Seleccioni'; @override + String get emptyList => 'Llista buida'; + @override + String get unSupportedAssetType => 'Tipus de fitxer no suportat.'; + @override + String get unableToAccessAll => 'No es pot accedir a tots els fitxers del dispositiu.'; + @override + String get viewingLimitedAssetsTip => 'Visualitza només fitxers i àlbums accessibles per l\'aplicació.'; + @override + String get changeAccessibleLimitedAssets => 'Faci clic per actualitzar els fitxers accessibles'; + @override + String get 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.'; + @override + String get goToSystemSettings => 'Anar a la configuració del sistema'; + @override + String get accessLimitedAssets => 'Continuar amb accés limitat'; + @override + String get accessiblePathName => 'Fitxers accessibles'; + @override String get sTypeAudioLabel => 'Àudio'; @override String get sTypeImageLabel => 'Imatge'; @@ -771,12 +777,6 @@ class _TranslationsAssetPickerCa extends TranslationsAssetPickerEn { String get sNameDurationLabel => 'duració'; @override String get sUnitAssetCountLabel => 'comptar'; - @override - String get unSupportedAssetType => 'Tipus de fitxer no suportat.'; - @override - String get unableToAccessAll => 'No es pot accedir a tots els fitxers del dispositiu.'; - @override - String get viewingLimitedAssetsTip => 'Visualitza només fitxers i àlbums accessibles per l\'aplicació.'; } // Path: receiveTab.infoBox @@ -789,34 +789,11 @@ class _TranslationsReceiveTabInfoBoxCa extends TranslationsReceiveTabInfoBoxEn { // Translations @override - String get alias => 'Àlies:'; - @override String get ip => 'IP:'; @override String get port => 'Port:'; -} - -// Path: sendTab.picker -class _TranslationsSendTabPickerCa extends TranslationsSendTabPickerEn { - _TranslationsSendTabPickerCa._(TranslationsCa root) - : this._root = root, - super.internal(root); - - final TranslationsCa _root; // ignore: unused_field - - // Translations @override - String get app => 'App'; - @override - String get clipboard => 'Enganxar'; - @override - String get file => 'Fitxer'; - @override - String get folder => 'Carpeta'; - @override - String get media => 'Media'; - @override - String get text => 'Text'; + String get alias => 'Àlies:'; } // Path: sendTab.selection @@ -829,11 +806,34 @@ class _TranslationsSendTabSelectionCa extends TranslationsSendTabSelectionEn { // Translations @override + String get title => 'Selección'; + @override String files({required Object files}) => 'Fitxers: ${files}'; @override String size({required Object size}) => 'Mida: ${size}'; +} + +// Path: sendTab.picker +class _TranslationsSendTabPickerCa extends TranslationsSendTabPickerEn { + _TranslationsSendTabPickerCa._(TranslationsCa root) + : this._root = root, + super.internal(root); + + final TranslationsCa _root; // ignore: unused_field + + // Translations @override - String get title => 'Selección'; + String get file => 'Fitxer'; + @override + String get folder => 'Carpeta'; + @override + String get media => 'Media'; + @override + String get text => 'Text'; + @override + String get app => 'App'; + @override + String get clipboard => 'Enganxar'; } // Path: sendTab.sendModes @@ -881,14 +881,14 @@ class _TranslationsSettingsTabGeneralCa extends TranslationsSettingsTabGeneralEn @override String get saveWindowPlacementWindows => 'Desa la posició de la finestra després de sortir'; @override - String get showInContextMenu => 'Mostrar LocalSend al menu contextual'; - @override String get minimizeToTray => 'Surt: Minimitzar a la safata'; @override String get launchAtStartup => 'Inici automàtic després d\'iniciar sessió'; @override String get launchMinimized => 'Inici automàtic: Inici minimitzat'; @override + String get showInContextMenu => 'Mostrar LocalSend al menu contextual'; + @override String get animations => 'Animacions'; } @@ -902,11 +902,7 @@ class _TranslationsSettingsTabReceiveCa extends TranslationsSettingsTabReceiveEn // Translations @override - String get autoFinish => 'Finalització Automàtica'; - @override - String get destination => 'Destinació'; - @override - String get downloads => '(Descàrregues)'; + String get title => 'Rebre'; @override String get quickSave => _root.general.quickSave; @override @@ -914,11 +910,15 @@ class _TranslationsSettingsTabReceiveCa extends TranslationsSettingsTabReceiveEn @override String get requirePin => _root.webSharePage.requirePin; @override + String get autoFinish => 'Finalització Automàtica'; + @override + String get destination => 'Destinació'; + @override + String get downloads => '(Descàrregues)'; + @override String get saveToGallery => 'Desar media a la galeria'; @override String get saveToHistory => 'Desa a l\'historial'; - @override - String get title => 'Rebre'; } // Path: settingsTab.send @@ -946,35 +946,35 @@ class _TranslationsSettingsTabNetworkCa extends TranslationsSettingsTabNetworkEn // Translations @override - String get alias => 'Àlies'; + String get title => 'Xarxa'; @override - String get encryption => 'Encriptació'; + String get needRestart => 'Reiniciar el servidor per aplicar la configuració!'; + @override + String get server => 'Servidor'; + @override + String get alias => 'Àlies'; @override String get deviceType => 'Tipus de dispositiu'; @override String get deviceModel => 'Model de dispositiu'; @override + String get port => 'Port'; + @override String get discoveryTimeout => 'Temps d\'espera de descobriment'; @override + String get useSystemName => 'Utilitzar nom del sistema'; + @override String get generateRandomAlias => 'Generar àlies aleatòriament'; @override + String portWarning({required Object defaultPort}) => + 'Podria no ser detectat per altres dispositius perquè està utilitzant un port personalitzat. (per defecte: ${defaultPort})'; + @override + String get encryption => 'Encriptació'; + @override String get multicastGroup => 'Multicast'; @override String multicastGroupWarning({required Object defaultMulticast}) => 'Podria no ser detectat per altres dispositius perquè està utilitzant una adreça multicast personalitzada. (per defecte: ${defaultMulticast})'; - @override - String get needRestart => 'Reiniciar el servidor per aplicar la configuració!'; - @override - String get port => 'Port'; - @override - String portWarning({required Object defaultPort}) => - 'Podria no ser detectat per altres dispositius perquè està utilitzant un port personalitzat. (per defecte: ${defaultPort})'; - @override - String get server => 'Servidor'; - @override - String get title => 'Xarxa'; - @override - String get useSystemName => 'Utilitzar nom del sistema'; } // Path: settingsTab.other @@ -987,15 +987,15 @@ class _TranslationsSettingsTabOtherCa extends TranslationsSettingsTabOtherEn { // Translations @override + String get title => 'Altre'; + @override + String get support => 'Suport LocalSend'; + @override String get donate => 'Donació'; @override String get privacyPolicy => 'Política Privacitat'; @override - String get support => 'Suport LocalSend'; - @override String get termsOfUse => 'Condicions d\'ús'; - @override - String get title => 'Altre'; } // Path: troubleshootPage.firewall @@ -1016,22 +1016,6 @@ class _TranslationsTroubleshootPageFirewallCa extends TranslationsTroubleshootPa String get openFirewall => 'Obrir Tallafocs'; } -// Path: troubleshootPage.noConnection -class _TranslationsTroubleshootPageNoConnectionCa extends TranslationsTroubleshootPageNoConnectionEn { - _TranslationsTroubleshootPageNoConnectionCa._(TranslationsCa root) - : this._root = root, - super.internal(root); - - final TranslationsCa _root; // ignore: unused_field - - // Translations - @override - String get symptom => 'Ambdós dispositius no poden trobar-se ni compartir fitxers.'; - @override - String get 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.'; -} - // Path: troubleshootPage.noDiscovery class _TranslationsTroubleshootPageNoDiscoveryCa extends TranslationsTroubleshootPageNoDiscoveryEn { _TranslationsTroubleshootPageNoDiscoveryCa._(TranslationsCa root) @@ -1048,6 +1032,22 @@ class _TranslationsTroubleshootPageNoDiscoveryCa extends TranslationsTroubleshoo '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.'; } +// Path: troubleshootPage.noConnection +class _TranslationsTroubleshootPageNoConnectionCa extends TranslationsTroubleshootPageNoConnectionEn { + _TranslationsTroubleshootPageNoConnectionCa._(TranslationsCa root) + : this._root = root, + super.internal(root); + + final TranslationsCa _root; // ignore: unused_field + + // Translations + @override + String get symptom => 'Ambdós dispositius no poden trobar-se ni compartir fitxers.'; + @override + String get 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.'; +} + // Path: receiveHistoryPage.entryActions class _TranslationsReceiveHistoryPageEntryActionsCa extends TranslationsReceiveHistoryPageEntryActionsEn { _TranslationsReceiveHistoryPageEntryActionsCa._(TranslationsCa root) @@ -1060,11 +1060,11 @@ class _TranslationsReceiveHistoryPageEntryActionsCa extends TranslationsReceiveH @override String get open => 'Obrir fitxer'; @override + String get showInFolder => 'Mostrar a la carpeta'; + @override String get info => 'Informació'; @override String get deleteFromHistory => 'Eliminar de l\'historial'; - @override - String get showInFolder => 'Mostrar a la carpeta'; } // Path: progressPage.total @@ -1178,44 +1178,6 @@ class _TranslationsDialogsErrorDialogCa extends TranslationsDialogsErrorDialogEn String get title => _root.general.error; } -// Path: dialogs.fileInfo -class _TranslationsDialogsFileInfoCa extends TranslationsDialogsFileInfoEn { - _TranslationsDialogsFileInfoCa._(TranslationsCa root) - : this._root = root, - super.internal(root); - - final TranslationsCa _root; // ignore: unused_field - - // Translations - @override - String get title => 'Informació del fitxer'; - @override - String get fileName => 'Nom del fitxer:'; - @override - String get path => 'Ruta:'; - @override - String get size => 'Mida:'; - @override - String get sender => 'Remitent:'; - @override - String get time => 'Temps:'; -} - -// Path: dialogs.fileNameInput -class _TranslationsDialogsFileNameInputCa extends TranslationsDialogsFileNameInputEn { - _TranslationsDialogsFileNameInputCa._(TranslationsCa root) - : this._root = root, - super.internal(root); - - final TranslationsCa _root; // ignore: unused_field - - // Translations - @override - String get title => 'Introdueixi el nom del fitxer'; - @override - String original({required Object original}) => 'Original: ${original}'; -} - // Path: dialogs.favoriteDialog class _TranslationsDialogsFavoriteDialogCa extends TranslationsDialogsFavoriteDialogEn { _TranslationsDialogsFavoriteDialogCa._(TranslationsCa root) @@ -1271,6 +1233,44 @@ class _TranslationsDialogsFavoriteEditDialogCa extends TranslationsDialogsFavori String get port => 'Port'; } +// Path: dialogs.fileInfo +class _TranslationsDialogsFileInfoCa extends TranslationsDialogsFileInfoEn { + _TranslationsDialogsFileInfoCa._(TranslationsCa root) + : this._root = root, + super.internal(root); + + final TranslationsCa _root; // ignore: unused_field + + // Translations + @override + String get title => 'Informació del fitxer'; + @override + String get fileName => 'Nom del fitxer:'; + @override + String get path => 'Ruta:'; + @override + String get size => 'Mida:'; + @override + String get sender => 'Remitent:'; + @override + String get time => 'Temps:'; +} + +// Path: dialogs.fileNameInput +class _TranslationsDialogsFileNameInputCa extends TranslationsDialogsFileNameInputEn { + _TranslationsDialogsFileNameInputCa._(TranslationsCa root) + : this._root = root, + super.internal(root); + + final TranslationsCa _root; // ignore: unused_field + + // Translations + @override + String get title => 'Introdueixi el nom del fitxer'; + @override + String original({required Object original}) => 'Original: ${original}'; +} + // Path: dialogs.historyClearDialog class _TranslationsDialogsHistoryClearDialogCa extends TranslationsDialogsHistoryClearDialogEn { _TranslationsDialogsHistoryClearDialogCa._(TranslationsCa root) @@ -1364,19 +1364,6 @@ class _TranslationsDialogsNotAvailableOnPlatformCa extends TranslationsDialogsNo String get content => 'Aquesta característica només està disponible a:'; } -// Path: dialogs.pin -class _TranslationsDialogsPinCa extends TranslationsDialogsPinEn { - _TranslationsDialogsPinCa._(TranslationsCa root) - : this._root = root, - super.internal(root); - - final TranslationsCa _root; // ignore: unused_field - - // Translations - @override - String get title => 'Introduïr PIN'; -} - // Path: dialogs.qr class _TranslationsDialogsQrCa extends TranslationsDialogsQrEn { _TranslationsDialogsQrCa._(TranslationsCa root) @@ -1413,6 +1400,21 @@ class _TranslationsDialogsQuickActionsCa extends TranslationsDialogsQuickActions String get random => 'Aleatori'; } +// Path: dialogs.quickSaveNotice +class _TranslationsDialogsQuickSaveNoticeCa extends TranslationsDialogsQuickSaveNoticeEn { + _TranslationsDialogsQuickSaveNoticeCa._(TranslationsCa root) + : this._root = root, + super.internal(root); + + final TranslationsCa _root; // ignore: unused_field + + // Translations + @override + String get title => _root.general.quickSave; + @override + String get content => 'Les sol·licituds d\'arxiu s\'accepten automàticament. Tingueu en compte que tothom a la xarxa local us pot enviar fitxers.'; +} + // Path: dialogs.quickSaveFromFavoritesNotice class _TranslationsDialogsQuickSaveFromFavoritesNoticeCa extends TranslationsDialogsQuickSaveFromFavoritesNoticeEn { _TranslationsDialogsQuickSaveFromFavoritesNoticeCa._(TranslationsCa root) @@ -1426,9 +1428,9 @@ class _TranslationsDialogsQuickSaveFromFavoritesNoticeCa extends TranslationsDia String get title => _root.general.quickSaveFromFavorites; } -// Path: dialogs.quickSaveNotice -class _TranslationsDialogsQuickSaveNoticeCa extends TranslationsDialogsQuickSaveNoticeEn { - _TranslationsDialogsQuickSaveNoticeCa._(TranslationsCa root) +// Path: dialogs.pin +class _TranslationsDialogsPinCa extends TranslationsDialogsPinEn { + _TranslationsDialogsPinCa._(TranslationsCa root) : this._root = root, super.internal(root); @@ -1436,9 +1438,7 @@ class _TranslationsDialogsQuickSaveNoticeCa extends TranslationsDialogsQuickSave // Translations @override - String get content => 'Les sol·licituds d\'arxiu s\'accepten automàticament. Tingueu en compte que tothom a la xarxa local us pot enviar fitxers.'; - @override - String get title => _root.general.quickSave; + String get title => 'Introduïr PIN'; } // Path: dialogs.sendModeHelp @@ -1451,14 +1451,14 @@ class _TranslationsDialogsSendModeHelpCa extends TranslationsDialogsSendModeHelp // Translations @override - String get link => - 'Els destinataris que no tinguin LocalSend instal·lat poden descarregar els fitxers seleccionats obrint l\'enllaç al seu navegador.'; - @override - String get multiple => 'Enviar fitxers a diversos destinataris. La selecció no s\'esborrarà.'; + String get title => 'Modes d\'enviament'; @override String get single => 'Enviar fitxers a un destinatari. La selecció s\'esborrarà un cop finalitzada la transferència de fitxers.'; @override - String get title => 'Modes d\'enviament'; + String get multiple => 'Enviar fitxers a diversos destinataris. La selecció no s\'esborrarà.'; + @override + String get link => + 'Els destinataris que no tinguin LocalSend instal·lat poden descarregar els fitxers seleccionats obrint l\'enllaç al seu navegador.'; } // Path: dialogs.zoom @@ -1501,9 +1501,9 @@ class _TranslationsSettingsTabGeneralColorOptionsCa extends TranslationsSettings // Translations @override - String get oled => 'OLED'; - @override String get system => 'Sistema'; + @override + String get oled => 'OLED'; } // Path: settingsTab.general.languageOptions diff --git a/app/lib/gen/strings_el.g.dart b/app/lib/gen/strings_el.g.dart index 2b7fca37..dd11dead 100644 --- a/app/lib/gen/strings_el.g.dart +++ b/app/lib/gen/strings_el.g.dart @@ -128,11 +128,11 @@ class _TranslationsGeneralEl extends TranslationsGeneralEn { @override String get hide => 'Απόκρυψη'; @override - String get off => 'Απενεργοποίηση'; + String get off => 'Ανενεργή'; @override String get offline => 'Εκτός σύνδεσης'; @override - String get on => 'Ενεργοποίηση'; + String get on => 'Ενεργή'; @override String get online => 'Σε σύνδεση'; @override @@ -142,6 +142,8 @@ class _TranslationsGeneralEl extends TranslationsGeneralEn { @override String get quickSave => 'Γρήγορη Αποθήκευση'; @override + String get quickSaveFromFavorites => 'Γρήγορη Αποθήκευση των "Αγαπημένων"'; + @override String get renamed => 'Μετονομάστηκε'; @override String get reset => 'Επαναφορά'; @@ -163,8 +165,6 @@ class _TranslationsGeneralEl extends TranslationsGeneralEn { String get unknown => 'Αγνωστο'; @override String get noItemInClipboard => 'Κανένα στοιχείο στο Πρόχειρο'; - @override - String get quickSaveFromFavorites => 'Γρήγορη Αποθήκευση των "Αγαπημένων"'; } // Path: receiveTab @@ -209,6 +209,8 @@ class _TranslationsSendTabEl extends TranslationsSendTabEn { @override String get scan => 'Αναζήτηση για συσκευές'; @override + String get manualSending => 'Χειροκίνητη αποστολή'; + @override String get sendMode => 'Λειτουργία αποστολής'; @override late final _TranslationsSendTabSendModesEl sendModes = _TranslationsSendTabSendModesEl._(_root); @@ -218,8 +220,6 @@ class _TranslationsSendTabEl extends TranslationsSendTabEn { String get help => 'Βεβαιωθείτε ότι ο επιθυμητός παραλήπτης βρίσκεται επίσης στο ίδιο δίκτυο Wi-Fi.'; @override String get placeItems => 'Τοποθετήστε στοιχεία για διαμοιρασμό.'; - @override - String get manualSending => 'Χειροκίνητη αποστολή'; } // Path: settingsTab @@ -267,9 +267,9 @@ class _TranslationsTroubleshootPageEl extends TranslationsTroubleshootPageEn { @override late final _TranslationsTroubleshootPageFirewallEl firewall = _TranslationsTroubleshootPageFirewallEl._(_root); @override - late final _TranslationsTroubleshootPageNoConnectionEl noConnection = _TranslationsTroubleshootPageNoConnectionEl._(_root); - @override late final _TranslationsTroubleshootPageNoDiscoveryEl noDiscovery = _TranslationsTroubleshootPageNoDiscoveryEl._(_root); + @override + late final _TranslationsTroubleshootPageNoConnectionEl noConnection = _TranslationsTroubleshootPageNoConnectionEl._(_root); } // Path: receiveHistoryPage @@ -383,9 +383,9 @@ class _TranslationsSendPageEl extends TranslationsSendPageEn { @override String get rejected => 'Ο παραλήπτης απέρριψε το αίτημα.'; @override - String get busy => 'Ο παραλήπτης είναι απασχολημένος με άλλο αίτημα.'; - @override String get tooManyAttempts => _root.web.tooManyAttempts; + @override + String get busy => 'Ο παραλήπτης είναι απασχολημένος με άλλο αίτημα.'; } // Path: progressPage @@ -439,13 +439,13 @@ class _TranslationsWebSharePageEl extends TranslationsWebSharePageEn { @override String get autoAccept => 'Αυτόματη αποδοχή αιτημάτων'; @override - String get encryptionHint => 'Το LocalSend χρησιμοποιεί αυτο-υπογεγραμμένο πιστοποιητικό. Χρειάζεται να το αποθεχτείτε στον φυλλομετρητή.'; - @override - String pendingRequests({required Object n}) => 'Αναμονή αιτημάτων: ${n}'; - @override String get requirePin => 'Απαίτηση PIN'; @override String pinHint({required Object pin}) => 'Το PIN είναι "${pin}"'; + @override + String get encryptionHint => 'Το LocalSend χρησιμοποιεί αυτο-υπογεγραμμένο πιστοποιητικό. Χρειάζεται να το αποθεχτείτε στον φυλλομετρητή.'; + @override + String pendingRequests({required Object n}) => 'Αναμονή αιτημάτων: ${n}'; } // Path: aboutPage @@ -469,9 +469,9 @@ class _TranslationsAboutPageEl extends TranslationsAboutPageEn { @override String get contributors => 'Συντελεστές'; @override - String get translators => 'Μεταφραστές'; - @override String get packagers => 'Συσκευαστές'; + @override + String get translators => 'Μεταφραστές'; } // Path: donationPage @@ -493,7 +493,7 @@ class _TranslationsDonationPageEl extends TranslationsDonationPageEn { @override String get thanks => 'Ευχαριστούμε πολύ!'; @override - String get restore => 'Ε[παναφορά αγοράς'; + String get restore => 'Επαναφορά αγοράς'; } // Path: changelogPage @@ -606,6 +606,8 @@ class _TranslationsDialogsEl extends TranslationsDialogsEn { @override late final _TranslationsDialogsAddFileEl addFile = _TranslationsDialogsAddFileEl._(_root); @override + late final _TranslationsDialogsOpenFileEl openFile = _TranslationsDialogsOpenFileEl._(_root); + @override late final _TranslationsDialogsAddressInputEl addressInput = _TranslationsDialogsAddressInputEl._(_root); @override late final _TranslationsDialogsCancelSessionEl cancelSession = _TranslationsDialogsCancelSessionEl._(_root); @@ -644,15 +646,13 @@ class _TranslationsDialogsEl extends TranslationsDialogsEn { @override late final _TranslationsDialogsQuickSaveNoticeEl quickSaveNotice = _TranslationsDialogsQuickSaveNoticeEl._(_root); @override - late final _TranslationsDialogsSendModeHelpEl sendModeHelp = _TranslationsDialogsSendModeHelpEl._(_root); - @override - late final _TranslationsDialogsOpenFileEl openFile = _TranslationsDialogsOpenFileEl._(_root); - @override late final _TranslationsDialogsQuickSaveFromFavoritesNoticeEl quickSaveFromFavoritesNotice = _TranslationsDialogsQuickSaveFromFavoritesNoticeEl._(_root); @override late final _TranslationsDialogsPinEl pin = _TranslationsDialogsPinEl._(_root); @override + late final _TranslationsDialogsSendModeHelpEl sendModeHelp = _TranslationsDialogsSendModeHelpEl._(_root); + @override late final _TranslationsDialogsZoomEl zoom = _TranslationsDialogsZoomEl._(_root); } @@ -700,6 +700,12 @@ class _TranslationsWebEl extends TranslationsWebEn { @override String get waiting => _root.sendPage.waiting; @override + String get enterPin => 'Εισαγωγή PIN'; + @override + String get invalidPin => 'Μη έγκυρο PIN'; + @override + String get tooManyAttempts => 'Πάρα πολλές προσπάθειες'; + @override String get rejected => 'Απορρίφθηκε'; @override String get files => 'Αρχεία'; @@ -707,12 +713,6 @@ class _TranslationsWebEl extends TranslationsWebEn { String get fileName => 'Όνομα αρχείου'; @override String get size => 'Μέγεθος'; - @override - String get enterPin => 'Εισαγωγή PIN'; - @override - String get invalidPin => 'Μη έγκυρο PIN'; - @override - String get tooManyAttempts => 'Πάρα πολλές προσπάθειες'; } // Path: assetPicker @@ -900,17 +900,17 @@ class _TranslationsSettingsTabGeneralEl extends TranslationsSettingsTabGeneralEn @override String get saveWindowPlacement => 'Έξοδος: Αποθήκευση θέσης παραθύρου'; @override + String get saveWindowPlacementWindows => 'Αποθήκευση της θέσης του παραθύρου κατά την έξοδο'; + @override String get minimizeToTray => 'Έξοδος: Ελαχιστοποίηση στη γραμμή εργασιών/μενού'; @override String get launchAtStartup => 'Αυτόματη εκκίνηση μετά τη σύνδεση'; @override String get launchMinimized => 'Αυτόματη εκκίνηση: Έναρξη ελαχιστοποιημένο'; @override - String get animations => 'Οπτικά εφέ'; - @override - String get saveWindowPlacementWindows => 'Αποθήκευση της θέσης του παραθύρου κατά την έξοδο'; - @override String get showInContextMenu => 'Προβολή του LocalSend στο μενού του περιβάλλοντος εργασίας'; + @override + String get animations => 'Οπτικά εφέ'; } // Path: settingsTab.receive @@ -927,6 +927,10 @@ class _TranslationsSettingsTabReceiveEl extends TranslationsSettingsTabReceiveEn @override String get quickSave => _root.general.quickSave; @override + String get quickSaveFromFavorites => _root.general.quickSaveFromFavorites; + @override + String get requirePin => _root.webSharePage.requirePin; + @override String get autoFinish => 'Αυτόματη ολοκλήρωση'; @override String get destination => 'Προορισμός'; @@ -936,10 +940,6 @@ class _TranslationsSettingsTabReceiveEl extends TranslationsSettingsTabReceiveEn String get saveToGallery => 'Αποθήκευση μέσου στη συλλογή'; @override String get saveToHistory => 'Αποθήκευση στο ιστορικό'; - @override - String get quickSaveFromFavorites => _root.general.quickSaveFromFavorites; - @override - String get requirePin => _root.webSharePage.requirePin; } // Path: settingsTab.send @@ -981,6 +981,12 @@ class _TranslationsSettingsTabNetworkEl extends TranslationsSettingsTabNetworkEn @override String get port => 'Θύρα'; @override + String get discoveryTimeout => 'Λήξη χρόνου ανακάλυψης'; + @override + String get useSystemName => 'Χρήση του ονόματος του συστήματος'; + @override + String get generateRandomAlias => 'Δημιουργία τυχαίου ψευδώνυμου'; + @override String portWarning({required Object defaultPort}) => 'Ενδέχεται να μην εντοπιστείτε από άλλες συσκευές επειδή χρησιμοποιείτε μια προσαρμοσμένη θύρα. (προεπιλογή: ${defaultPort})'; @override @@ -990,12 +996,6 @@ class _TranslationsSettingsTabNetworkEl extends TranslationsSettingsTabNetworkEn @override String multicastGroupWarning({required Object defaultMulticast}) => 'Ενδέχεται να μην εντοπιστείτε από άλλες συσκευές επειδή χρησιμοποιείτε μια προσαρμοσμένη διεύθυνση αναμετάδοσης. (προεπιλογή: ${defaultMulticast})'; - @override - String get discoveryTimeout => 'Λήξη χρόνου ανακάλυψης'; - @override - String get useSystemName => 'Χρήση του ονόματος του συστήματος'; - @override - String get generateRandomAlias => 'Δημιουργία τυχαίου ψευδώνυμου'; } // Path: settingsTab.other @@ -1038,22 +1038,6 @@ class _TranslationsTroubleshootPageFirewallEl extends TranslationsTroubleshootPa String get openFirewall => 'Άνοιγμα Τείχους Προστασίας'; } -// Path: troubleshootPage.noConnection -class _TranslationsTroubleshootPageNoConnectionEl extends TranslationsTroubleshootPageNoConnectionEn { - _TranslationsTroubleshootPageNoConnectionEl._(TranslationsEl root) - : this._root = root, - super.internal(root); - - final TranslationsEl _root; // ignore: unused_field - - // Translations - @override - String get symptom => 'Και οι δύο συσκευές δεν μπορούν να ανακαλύψουν η μία την άλλη ούτε μπορούν να μοιραστούν αρχεία.'; - @override - String get solution => - 'Υπάρχει το πρόβλημα και από τις δύο πλευρές; Πρέπει να βεβαιωθείτε ότι και οι δύο συσκευές βρίσκονται στο ίδιο δίκτυο Wi-Fi και μοιράζονται την ίδια διαμόρφωση (θύρα, διεύθυνση αναμετάδοσης, κρυπτογράφηση). Το wifi ενδέχεται να μην επιτρέπει την επικοινωνία μεταξύ των συμμετεχόντων. Σε αυτήν την περίπτωση, αυτή η επιλογή πρέπει να είναι ενεργοποιημένη στο δρομολογητή.'; -} - // Path: troubleshootPage.noDiscovery class _TranslationsTroubleshootPageNoDiscoveryEl extends TranslationsTroubleshootPageNoDiscoveryEn { _TranslationsTroubleshootPageNoDiscoveryEl._(TranslationsEl root) @@ -1070,6 +1054,22 @@ class _TranslationsTroubleshootPageNoDiscoveryEl extends TranslationsTroubleshoo 'Βεβαιωθείτε ότι όλες οι συσκευές βρίσκονται στο ίδιο δίκτυο Wi-Fi και μοιράζονται την ίδια διαμόρφωση (θύρα, διεύθυνση multicast, κρυπτογράφηση). Μπορείτε να προσπαθήσετε να πληκτρολογήσετε τη διεύθυνση IP της συσκευής προορισμού με μη αυτόματο τρόπο. Εάν αυτό λειτουργεί, εξετάστε το ενδεχόμενο να προσθέσετε αυτήν τη συσκευή στα αγαπημένα, ώστε να μπορεί να ανακαλυφθεί αυτόματα στο μέλλον.'; } +// Path: troubleshootPage.noConnection +class _TranslationsTroubleshootPageNoConnectionEl extends TranslationsTroubleshootPageNoConnectionEn { + _TranslationsTroubleshootPageNoConnectionEl._(TranslationsEl root) + : this._root = root, + super.internal(root); + + final TranslationsEl _root; // ignore: unused_field + + // Translations + @override + String get symptom => 'Και οι δύο συσκευές δεν μπορούν να ανακαλύψουν η μία την άλλη ούτε μπορούν να μοιραστούν αρχεία.'; + @override + String get solution => + 'Υπάρχει το πρόβλημα και από τις δύο πλευρές; Πρέπει να βεβαιωθείτε ότι και οι δύο συσκευές βρίσκονται στο ίδιο δίκτυο Wi-Fi και μοιράζονται την ίδια διαμόρφωση (θύρα, διεύθυνση αναμετάδοσης, κρυπτογράφηση). Το wifi ενδέχεται να μην επιτρέπει την επικοινωνία μεταξύ των συμμετεχόντων. Σε αυτήν την περίπτωση, αυτή η επιλογή πρέπει να είναι ενεργοποιημένη στο δρομολογητή.'; +} + // Path: receiveHistoryPage.entryActions class _TranslationsReceiveHistoryPageEntryActionsEl extends TranslationsReceiveHistoryPageEntryActionsEn { _TranslationsReceiveHistoryPageEntryActionsEl._(TranslationsEl root) @@ -1082,11 +1082,11 @@ class _TranslationsReceiveHistoryPageEntryActionsEl extends TranslationsReceiveH @override String get open => 'Άνοιγμα αρχείου'; @override + String get showInFolder => 'Προβολή στον φάκελο'; + @override String get info => 'Πληροφορίες'; @override String get deleteFromHistory => 'Διαγραφή από το ιστορικό'; - @override - String get showInFolder => 'Προβολή στον φάκελο'; } // Path: progressPage.total @@ -1123,6 +1123,21 @@ class _TranslationsDialogsAddFileEl extends TranslationsDialogsAddFileEn { String get content => 'Τι θέλετε να προστεθεί;'; } +// Path: dialogs.openFile +class _TranslationsDialogsOpenFileEl extends TranslationsDialogsOpenFileEn { + _TranslationsDialogsOpenFileEl._(TranslationsEl root) + : this._root = root, + super.internal(root); + + final TranslationsEl _root; // ignore: unused_field + + // Translations + @override + String get title => 'Άνοιγμα αρχείου'; + @override + String get content => 'Θέλετε να ανοιχτεί το ληφθέν αρχείο;'; +} + // Path: dialogs.addressInput class _TranslationsDialogsAddressInputEl extends TranslationsDialogsAddressInputEn { _TranslationsDialogsAddressInputEl._(TranslationsEl root) @@ -1438,41 +1453,6 @@ class _TranslationsDialogsQuickSaveNoticeEl extends TranslationsDialogsQuickSave String get content => 'Τα αιτήματα αρχείων γίνονται αυτόματα δεκτά. Έχετε υπόψη σας ότι όλοι στο τοπικό δίκτυο μπορούν να σας στείλουν αρχεία.'; } -// Path: dialogs.sendModeHelp -class _TranslationsDialogsSendModeHelpEl extends TranslationsDialogsSendModeHelpEn { - _TranslationsDialogsSendModeHelpEl._(TranslationsEl root) - : this._root = root, - super.internal(root); - - final TranslationsEl _root; // ignore: unused_field - - // Translations - @override - String get title => 'Λειτουργίες αποστολής'; - @override - String get single => 'Στέλνει αρχεία σε έναν παραλήπτη. Η επιλογή θα διαγραφεί μετά την ολοκλήρωση της μεταφοράς του αρχείου.'; - @override - String get multiple => 'Στέλνει αρχεία σε πολλούς παραλήπτες. Η επιλογή δεν θα διαγραφεί.'; - @override - String get link => - 'Οι παραλήπτες που δεν έχουν εγκαταστήσει το LocalSend μπορούν να πραγματοποιήσουν λήψη των επιλεγμένων αρχείων ανοίγοντας τον σύνδεσμο στον φυλλομετρητή τους.'; -} - -// Path: dialogs.openFile -class _TranslationsDialogsOpenFileEl extends TranslationsDialogsOpenFileEn { - _TranslationsDialogsOpenFileEl._(TranslationsEl root) - : this._root = root, - super.internal(root); - - final TranslationsEl _root; // ignore: unused_field - - // Translations - @override - String get title => 'Άνοιγμα αρχείου'; - @override - String get content => 'Θέλετε να ανοιχτεί το ληφθέν αρχείο;'; -} - // Path: dialogs.quickSaveFromFavoritesNotice class _TranslationsDialogsQuickSaveFromFavoritesNoticeEl extends TranslationsDialogsQuickSaveFromFavoritesNoticeEn { _TranslationsDialogsQuickSaveFromFavoritesNoticeEl._(TranslationsEl root) @@ -1505,6 +1485,26 @@ class _TranslationsDialogsPinEl extends TranslationsDialogsPinEn { String get title => 'Εισαγωγή PIN'; } +// Path: dialogs.sendModeHelp +class _TranslationsDialogsSendModeHelpEl extends TranslationsDialogsSendModeHelpEn { + _TranslationsDialogsSendModeHelpEl._(TranslationsEl root) + : this._root = root, + super.internal(root); + + final TranslationsEl _root; // ignore: unused_field + + // Translations + @override + String get title => 'Λειτουργίες αποστολής'; + @override + String get single => 'Στέλνει αρχεία σε έναν παραλήπτη. Η επιλογή θα διαγραφεί μετά την ολοκλήρωση της μεταφοράς του αρχείου.'; + @override + String get multiple => 'Στέλνει αρχεία σε πολλούς παραλήπτες. Η επιλογή δεν θα διαγραφεί.'; + @override + String get link => + 'Οι παραλήπτες που δεν έχουν εγκαταστήσει το LocalSend μπορούν να πραγματοποιήσουν λήψη των επιλεγμένων αρχείων ανοίγοντας τον σύνδεσμο στον φυλλομετρητή τους.'; +} + // Path: dialogs.zoom class _TranslationsDialogsZoomEl extends TranslationsDialogsZoomEn { _TranslationsDialogsZoomEl._(TranslationsEl root) diff --git a/app/lib/gen/strings_en_IN.g.dart b/app/lib/gen/strings_en_IN.g.dart index 4bd908a2..7bffc812 100644 --- a/app/lib/gen/strings_en_IN.g.dart +++ b/app/lib/gen/strings_en_IN.g.dart @@ -142,6 +142,8 @@ class _TranslationsGeneralEnIn extends TranslationsGeneralEn { @override String get quickSave => 'Quick Save'; @override + String get quickSaveFromFavorites => 'Quick Save for "Favourites"'; + @override String get renamed => 'Renamed'; @override String get reset => 'Reset'; @@ -162,7 +164,7 @@ class _TranslationsGeneralEnIn extends TranslationsGeneralEn { @override String get unknown => 'Unknown'; @override - String get noItemInClipboard => 'No items in Clipboard'; + String get noItemInClipboard => 'No items in Clipboard.'; } // Path: receiveTab @@ -178,6 +180,8 @@ class _TranslationsReceiveTabEnIn extends TranslationsReceiveTabEn { String get title => 'Receive'; @override late final _TranslationsReceiveTabInfoBoxEnIn infoBox = _TranslationsReceiveTabInfoBoxEnIn._(_root); + @override + late final _TranslationsReceiveTabQuickSaveEnIn quickSave = _TranslationsReceiveTabQuickSaveEnIn._(_root); } // Path: sendTab @@ -204,6 +208,8 @@ class _TranslationsSendTabEnIn extends TranslationsSendTabEn { @override String get scan => 'Look for devices'; @override + String get manualSending => 'Manual Sending'; + @override String get sendMode => 'Send mode'; @override late final _TranslationsSendTabSendModesEnIn sendModes = _TranslationsSendTabSendModesEnIn._(_root); @@ -260,6 +266,8 @@ class _TranslationsTroubleshootPageEnIn extends TranslationsTroubleshootPageEn { @override late final _TranslationsTroubleshootPageFirewallEnIn firewall = _TranslationsTroubleshootPageFirewallEnIn._(_root); @override + late final _TranslationsTroubleshootPageNoDiscoveryEnIn noDiscovery = _TranslationsTroubleshootPageNoDiscoveryEnIn._(_root); + @override late final _TranslationsTroubleshootPageNoConnectionEnIn noConnection = _TranslationsTroubleshootPageNoConnectionEnIn._(_root); } @@ -370,7 +378,7 @@ class _TranslationsSendPageEnIn extends TranslationsSendPageEn { // Translations @override - String get waiting => 'Waiting for response...'; + String get waiting => 'Waiting for response…'; @override String get rejected => 'The recipient has rejected the request.'; @override @@ -410,9 +418,9 @@ class _TranslationsWebSharePageEnIn extends TranslationsWebSharePageEn { @override String get title => 'Share via link'; @override - String get loading => 'Starting server...'; + String get loading => 'Starting server…'; @override - String get stopping => 'Stopping server...'; + String get stopping => 'Stopping server…'; @override String get error => 'An error occurred while starting the server.'; @override @@ -460,6 +468,8 @@ class _TranslationsAboutPageEnIn extends TranslationsAboutPageEn { @override String get contributors => 'Contributors'; @override + String get packagers => 'Packagers'; + @override String get translators => 'Translators'; } @@ -594,6 +604,8 @@ class _TranslationsDialogsEnIn extends TranslationsDialogsEn { @override late final _TranslationsDialogsAddFileEnIn addFile = _TranslationsDialogsAddFileEnIn._(_root); @override + late final _TranslationsDialogsOpenFileEnIn openFile = _TranslationsDialogsOpenFileEnIn._(_root); + @override late final _TranslationsDialogsAddressInputEnIn addressInput = _TranslationsDialogsAddressInputEnIn._(_root); @override late final _TranslationsDialogsCancelSessionEnIn cancelSession = _TranslationsDialogsCancelSessionEnIn._(_root); @@ -632,6 +644,9 @@ class _TranslationsDialogsEnIn extends TranslationsDialogsEn { @override late final _TranslationsDialogsQuickSaveNoticeEnIn quickSaveNotice = _TranslationsDialogsQuickSaveNoticeEnIn._(_root); @override + late final _TranslationsDialogsQuickSaveFromFavoritesNoticeEnIn quickSaveFromFavoritesNotice = + _TranslationsDialogsQuickSaveFromFavoritesNoticeEnIn._(_root); + @override late final _TranslationsDialogsPinEnIn pin = _TranslationsDialogsPinEnIn._(_root); @override late final _TranslationsDialogsSendModeHelpEnIn sendModeHelp = _TranslationsDialogsSendModeHelpEnIn._(_root); @@ -667,6 +682,8 @@ class _TranslationsTrayEnIn extends TranslationsTrayEn { String get open => _root.general.open; @override String get close => 'Quit LocalSend'; + @override + String get closeWindows => 'Exit'; } // Path: web @@ -781,6 +798,23 @@ class _TranslationsReceiveTabInfoBoxEnIn extends TranslationsReceiveTabInfoBoxEn String get alias => 'Device name:'; } +// Path: receiveTab.quickSave +class _TranslationsReceiveTabQuickSaveEnIn extends TranslationsReceiveTabQuickSaveEn { + _TranslationsReceiveTabQuickSaveEnIn._(TranslationsEnIn root) + : this._root = root, + super.internal(root); + + final TranslationsEnIn _root; // ignore: unused_field + + // Translations + @override + String get off => _root.general.off; + @override + String get favorites => 'Favourites'; + @override + String get on => _root.general.on; +} + // Path: sendTab.selection class _TranslationsSendTabSelectionEnIn extends TranslationsSendTabSelectionEn { _TranslationsSendTabSelectionEnIn._(TranslationsEnIn root) @@ -864,6 +898,8 @@ class _TranslationsSettingsTabGeneralEnIn extends TranslationsSettingsTabGeneral @override String get saveWindowPlacement => 'Quit: Save window placement'; @override + String get saveWindowPlacementWindows => 'Save window position after exit'; + @override String get minimizeToTray => 'Quit: Minimize to Tray/Menu Bar'; @override String get launchAtStartup => 'Autostart after login'; @@ -889,6 +925,8 @@ class _TranslationsSettingsTabReceiveEnIn extends TranslationsSettingsTabReceive @override String get quickSave => _root.general.quickSave; @override + String get quickSaveFromFavorites => _root.general.quickSaveFromFavorites; + @override String get requirePin => _root.webSharePage.requirePin; @override String get autoFinish => 'Auto Finish'; @@ -943,6 +981,10 @@ class _TranslationsSettingsTabNetworkEnIn extends TranslationsSettingsTabNetwork @override String get discoveryTimeout => 'Discovery Timeout'; @override + String get useSystemName => 'Use system name'; + @override + String get generateRandomAlias => 'Generate random alias'; + @override String portWarning({required Object defaultPort}) => 'You might not be detected by other devices because you are using a custom port. (default: ${defaultPort})'; @override @@ -993,6 +1035,22 @@ class _TranslationsTroubleshootPageFirewallEnIn extends TranslationsTroubleshoot String get openFirewall => 'Open Firewall'; } +// Path: troubleshootPage.noDiscovery +class _TranslationsTroubleshootPageNoDiscoveryEnIn extends TranslationsTroubleshootPageNoDiscoveryEn { + _TranslationsTroubleshootPageNoDiscoveryEnIn._(TranslationsEnIn root) + : this._root = root, + super.internal(root); + + final TranslationsEnIn _root; // ignore: unused_field + + // Translations + @override + String get symptom => 'This device cannot discover other devices.'; + @override + String get solution => + 'Please make sure that all devices are on the same Wi-Fi network and share the same configuration (port, multicast address, encryption). You can try to type the IP address of the target device manually. If this works, consider adding this device to the favourites so it can be automatically discovered in the future.'; +} + // Path: troubleshootPage.noConnection class _TranslationsTroubleshootPageNoConnectionEnIn extends TranslationsTroubleshootPageNoConnectionEn { _TranslationsTroubleshootPageNoConnectionEnIn._(TranslationsEnIn root) @@ -1062,6 +1120,21 @@ class _TranslationsDialogsAddFileEnIn extends TranslationsDialogsAddFileEn { String get content => 'What do you want to add?'; } +// Path: dialogs.openFile +class _TranslationsDialogsOpenFileEnIn extends TranslationsDialogsOpenFileEn { + _TranslationsDialogsOpenFileEnIn._(TranslationsEnIn root) + : this._root = root, + super.internal(root); + + final TranslationsEnIn _root; // ignore: unused_field + + // Translations + @override + String get title => 'Open file'; + @override + String get content => 'Do you want to open the received file?'; +} + // Path: dialogs.addressInput class _TranslationsDialogsAddressInputEnIn extends TranslationsDialogsAddressInputEn { _TranslationsDialogsAddressInputEnIn._(TranslationsEnIn root) @@ -1376,6 +1449,25 @@ class _TranslationsDialogsQuickSaveNoticeEnIn extends TranslationsDialogsQuickSa String get content => 'File requests are automatically accepted. Be aware that everyone on the local network can send you files.'; } +// Path: dialogs.quickSaveFromFavoritesNotice +class _TranslationsDialogsQuickSaveFromFavoritesNoticeEnIn extends TranslationsDialogsQuickSaveFromFavoritesNoticeEn { + _TranslationsDialogsQuickSaveFromFavoritesNoticeEnIn._(TranslationsEnIn root) + : this._root = root, + super.internal(root); + + final TranslationsEnIn _root; // ignore: unused_field + + // Translations + @override + String get title => _root.general.quickSaveFromFavorites; + @override + List get content => [ + 'File requests are now accepted automatically from devices in your favourites list.', + 'Warning! Currently, this is not entirely secure, as a hacker who has the fingerprint of any device from your favourites list can send you files without restriction.', + 'However, this option is still safer than allowing all users on the local network to send you files without restriction.', + ]; +} + // Path: dialogs.pin class _TranslationsDialogsPinEnIn extends TranslationsDialogsPinEn { _TranslationsDialogsPinEnIn._(TranslationsEnIn root) diff --git a/app/lib/gen/strings_fr.g.dart b/app/lib/gen/strings_fr.g.dart index 148cb9d5..71b0eff2 100644 --- a/app/lib/gen/strings_fr.g.dart +++ b/app/lib/gen/strings_fr.g.dart @@ -164,7 +164,7 @@ class _TranslationsGeneralFr extends TranslationsGeneralEn { @override String get unknown => 'Inconnu'; @override - String get noItemInClipboard => 'Aucun élément dans le presse-papiers'; + String get noItemInClipboard => 'Aucun élément dans le presse-papiers.'; } // Path: receiveTab @@ -261,7 +261,7 @@ class _TranslationsTroubleshootPageFr extends TranslationsTroubleshootPageEn { @override String get subTitle => 'Cette application ne fonctionne pas comme vous l\'espérez ? Vous trouverez ici des solutions aux problèmes communs.'; @override - String get solution => 'Solution:'; + String get solution => 'Solution :'; @override String get fixButton => 'Corriger automatiquement'; @override @@ -379,7 +379,7 @@ class _TranslationsSendPageFr extends TranslationsSendPageEn { // Translations @override - String get waiting => 'En attente d\'une réponse...'; + String get waiting => 'En attente d\'une réponse …'; @override String get rejected => 'Le destinataire a rejeté la demande.'; @override @@ -419,9 +419,9 @@ class _TranslationsWebSharePageFr extends TranslationsWebSharePageEn { @override String get title => 'Partager via un lien'; @override - String get loading => 'Démarrage du serveur...'; + String get loading => 'Démarrage du serveur …'; @override - String get stopping => 'Arrêt du serveur...'; + String get stopping => 'Arrêt du serveur …'; @override String get error => 'Une erreur est survenue lors du démarrage du serveur.'; @override @@ -445,7 +445,7 @@ class _TranslationsWebSharePageFr extends TranslationsWebSharePageEn { @override String get encryptionHint => 'LocalSend utilise un certificat auto-signé. Vous devez l\'accepter dans le navigateur.'; @override - String pendingRequests({required Object n}) => 'Requêtes en attente: ${n}'; + String pendingRequests({required Object n}) => 'Requêtes en attente : ${n}'; } // Path: aboutPage @@ -532,6 +532,8 @@ class _TranslationsDialogsFr extends TranslationsDialogsEn { @override late final _TranslationsDialogsAddFileFr addFile = _TranslationsDialogsAddFileFr._(_root); @override + late final _TranslationsDialogsOpenFileFr openFile = _TranslationsDialogsOpenFileFr._(_root); + @override late final _TranslationsDialogsAddressInputFr addressInput = _TranslationsDialogsAddressInputFr._(_root); @override late final _TranslationsDialogsCancelSessionFr cancelSession = _TranslationsDialogsCancelSessionFr._(_root); @@ -564,8 +566,6 @@ class _TranslationsDialogsFr extends TranslationsDialogsEn { @override late final _TranslationsDialogsNotAvailableOnPlatformFr notAvailableOnPlatform = _TranslationsDialogsNotAvailableOnPlatformFr._(_root); @override - late final _TranslationsDialogsOpenFileFr openFile = _TranslationsDialogsOpenFileFr._(_root); - @override late final _TranslationsDialogsQrFr qr = _TranslationsDialogsQrFr._(_root); @override late final _TranslationsDialogsQuickActionsFr quickActions = _TranslationsDialogsQuickActionsFr._(_root); @@ -719,11 +719,11 @@ class _TranslationsReceiveTabInfoBoxFr extends TranslationsReceiveTabInfoBoxEn { // Translations @override - String get ip => 'IP:'; + String get ip => 'IP :'; @override - String get port => 'Port:'; + String get port => 'Port :'; @override - String get alias => 'Alias:'; + String get alias => 'Nom du périphérique :'; } // Path: receiveTab.quickSave @@ -755,9 +755,9 @@ class _TranslationsSendTabSelectionFr extends TranslationsSendTabSelectionEn { @override String get title => 'Sélection'; @override - String files({required Object files}) => 'Fichiers: ${files}'; + String files({required Object files}) => 'Fichiers : ${files}'; @override - String size({required Object size}) => 'Taille: ${size}'; + String size({required Object size}) => 'Taille : ${size}'; } // Path: sendTab.picker @@ -1026,11 +1026,11 @@ class _TranslationsProgressPageTotalFr extends TranslationsProgressPageTotalEn { @override late final _TranslationsProgressPageTotalTitleFr title = _TranslationsProgressPageTotalTitleFr._(_root); @override - String count({required Object curr, required Object n}) => 'Fichiers: ${curr} / ${n}'; + String count({required Object curr, required Object n}) => 'Fichiers : ${curr} / ${n}'; @override - String size({required Object curr, required Object n}) => 'Taille: ${curr} / ${n}'; + String size({required Object curr, required Object n}) => 'Taille : ${curr} / ${n}'; @override - String speed({required Object speed}) => 'Vitesse: ${speed}/s'; + String speed({required Object speed}) => 'Vitesse : ${speed}/s'; } // Path: dialogs.addFile @@ -1048,6 +1048,21 @@ class _TranslationsDialogsAddFileFr extends TranslationsDialogsAddFileEn { String get content => 'Que voulez-vous ajouter ?'; } +// Path: dialogs.openFile +class _TranslationsDialogsOpenFileFr extends TranslationsDialogsOpenFileEn { + _TranslationsDialogsOpenFileFr._(TranslationsFr root) + : this._root = root, + super.internal(root); + + final TranslationsFr _root; // ignore: unused_field + + // Translations + @override + String get title => 'Ouvrir le fichier'; + @override + String get content => 'Voulez-vous ouvrir le fichier reçu ?'; +} + // Path: dialogs.addressInput class _TranslationsDialogsAddressInputFr extends TranslationsDialogsAddressInputEn { _TranslationsDialogsAddressInputFr._(TranslationsFr root) @@ -1064,7 +1079,7 @@ class _TranslationsDialogsAddressInputFr extends TranslationsDialogsAddressInput @override String get ip => 'Adresse IP'; @override - String get recentlyUsed => 'Récemment utilisé :'; + String get recentlyUsed => 'Récemment utilisé : '; } // Path: dialogs.cancelSession @@ -1215,7 +1230,7 @@ class _TranslationsDialogsFileNameInputFr extends TranslationsDialogsFileNameInp @override String get title => 'Entrez le nom du fichier'; @override - String original({required Object original}) => 'Original: ${original}'; + String original({required Object original}) => 'Original : ${original}'; } // Path: dialogs.historyClearDialog @@ -1308,22 +1323,7 @@ class _TranslationsDialogsNotAvailableOnPlatformFr extends TranslationsDialogsNo @override String get title => 'Non disponible'; @override - String get content => 'Cette fonctionalité est disponible uniquement sur:'; -} - -// Path: dialogs.openFile -class _TranslationsDialogsOpenFileFr extends TranslationsDialogsOpenFileEn { - _TranslationsDialogsOpenFileFr._(TranslationsFr root) - : this._root = root, - super.internal(root); - - final TranslationsFr _root; // ignore: unused_field - - // Translations - @override - String get title => 'Ouvrir le fichier'; - @override - String get content => 'Voulez-vous ouvrir le fichier reçu ?'; + String get content => 'Cette fonctionnalité est disponible uniquement sur :'; } // Path: dialogs.qr diff --git a/app/lib/gen/strings_hi.g.dart b/app/lib/gen/strings_hi.g.dart index 66d20b3f..e5d6e274 100644 --- a/app/lib/gen/strings_hi.g.dart +++ b/app/lib/gen/strings_hi.g.dart @@ -96,7 +96,7 @@ class _TranslationsGeneralHi extends TranslationsGeneralEn { @override String get add => 'जोड़ें'; @override - String get advanced => 'उन्नत'; + String get advanced => 'एडवांस्ड'; @override String get cancel => 'रद्द करें'; @override @@ -142,6 +142,8 @@ class _TranslationsGeneralHi extends TranslationsGeneralEn { @override String get quickSave => 'त्वरित सहेजें'; @override + String get quickSaveFromFavorites => '"पसंदीदा" के लिए त्वरित सहेजें।'; + @override String get renamed => 'नाम बदला गया'; @override String get reset => 'रीसेट करें'; @@ -178,6 +180,8 @@ class _TranslationsReceiveTabHi extends TranslationsReceiveTabEn { String get title => 'प्राप्त करें'; @override late final _TranslationsReceiveTabInfoBoxHi infoBox = _TranslationsReceiveTabInfoBoxHi._(_root); + @override + late final _TranslationsReceiveTabQuickSaveHi quickSave = _TranslationsReceiveTabQuickSaveHi._(_root); } // Path: sendTab @@ -204,6 +208,8 @@ class _TranslationsSendTabHi extends TranslationsSendTabEn { @override String get scan => 'उपकरणों को खोजें'; @override + String get manualSending => 'मैन्युअल भेजना'; + @override String get sendMode => 'भेजने का मोड'; @override late final _TranslationsSendTabSendModesHi sendModes = _TranslationsSendTabSendModesHi._(_root); @@ -260,6 +266,8 @@ class _TranslationsTroubleshootPageHi extends TranslationsTroubleshootPageEn { @override late final _TranslationsTroubleshootPageFirewallHi firewall = _TranslationsTroubleshootPageFirewallHi._(_root); @override + late final _TranslationsTroubleshootPageNoDiscoveryHi noDiscovery = _TranslationsTroubleshootPageNoDiscoveryHi._(_root); + @override late final _TranslationsTroubleshootPageNoConnectionHi noConnection = _TranslationsTroubleshootPageNoConnectionHi._(_root); } @@ -460,6 +468,8 @@ class _TranslationsAboutPageHi extends TranslationsAboutPageEn { @override String get contributors => 'योगदानकर्ताओं'; @override + String get packagers => 'पैकेजर्स'; + @override String get translators => 'अनुवादकों'; } @@ -594,6 +604,8 @@ class _TranslationsDialogsHi extends TranslationsDialogsEn { @override late final _TranslationsDialogsAddFileHi addFile = _TranslationsDialogsAddFileHi._(_root); @override + late final _TranslationsDialogsOpenFileHi openFile = _TranslationsDialogsOpenFileHi._(_root); + @override late final _TranslationsDialogsAddressInputHi addressInput = _TranslationsDialogsAddressInputHi._(_root); @override late final _TranslationsDialogsCancelSessionHi cancelSession = _TranslationsDialogsCancelSessionHi._(_root); @@ -632,6 +644,9 @@ class _TranslationsDialogsHi extends TranslationsDialogsEn { @override late final _TranslationsDialogsQuickSaveNoticeHi quickSaveNotice = _TranslationsDialogsQuickSaveNoticeHi._(_root); @override + late final _TranslationsDialogsQuickSaveFromFavoritesNoticeHi quickSaveFromFavoritesNotice = + _TranslationsDialogsQuickSaveFromFavoritesNoticeHi._(_root); + @override late final _TranslationsDialogsPinHi pin = _TranslationsDialogsPinHi._(_root); @override late final _TranslationsDialogsSendModeHelpHi sendModeHelp = _TranslationsDialogsSendModeHelpHi._(_root); @@ -667,6 +682,8 @@ class _TranslationsTrayHi extends TranslationsTrayEn { String get open => _root.general.open; @override String get close => 'LocalSend बंद करें'; + @override + String get closeWindows => 'बाहर जाएं।'; } // Path: web @@ -781,6 +798,23 @@ class _TranslationsReceiveTabInfoBoxHi extends TranslationsReceiveTabInfoBoxEn { String get alias => 'डिवाइस का नाम:'; } +// Path: receiveTab.quickSave +class _TranslationsReceiveTabQuickSaveHi extends TranslationsReceiveTabQuickSaveEn { + _TranslationsReceiveTabQuickSaveHi._(TranslationsHi root) + : this._root = root, + super.internal(root); + + final TranslationsHi _root; // ignore: unused_field + + // Translations + @override + String get off => _root.general.off; + @override + String get favorites => 'पसंदीदा'; + @override + String get on => _root.general.on; +} + // Path: sendTab.selection class _TranslationsSendTabSelectionHi extends TranslationsSendTabSelectionEn { _TranslationsSendTabSelectionHi._(TranslationsHi root) @@ -864,6 +898,8 @@ class _TranslationsSettingsTabGeneralHi extends TranslationsSettingsTabGeneralEn @override String get saveWindowPlacement => 'बंद करें: विंडो प्लेसमेंट सहेजें'; @override + String get saveWindowPlacementWindows => 'बाहर निकलने के बाद विंडो की स्थिति सहेजें।'; + @override String get minimizeToTray => 'बंद करें: ट्रे/मेनू बार में मिनिमाइज करें'; @override String get launchAtStartup => 'लॉगिन के बाद ऑटोस्टार्ट'; @@ -889,6 +925,8 @@ class _TranslationsSettingsTabReceiveHi extends TranslationsSettingsTabReceiveEn @override String get quickSave => _root.general.quickSave; @override + String get quickSaveFromFavorites => _root.general.quickSaveFromFavorites; + @override String get requirePin => _root.webSharePage.requirePin; @override String get autoFinish => 'स्वतः समाप्त'; @@ -943,6 +981,10 @@ class _TranslationsSettingsTabNetworkHi extends TranslationsSettingsTabNetworkEn @override String get discoveryTimeout => 'खोज का समय समाप्त'; @override + String get useSystemName => 'सिस्टम नाम का उपयोग करें'; + @override + String get generateRandomAlias => 'रैंडम उपनाम जनरेट करें'; + @override String portWarning({required Object defaultPort}) => 'आप कस्टम पोर्ट का उपयोग कर रहे हैं इसलिए अन्य डिवाइस आपको पहचान नहीं सकते हैं। (डिफ़ॉल्ट: ${defaultPort})'; @override @@ -993,6 +1035,22 @@ class _TranslationsTroubleshootPageFirewallHi extends TranslationsTroubleshootPa String get openFirewall => 'फायरवॉल खोलें'; } +// Path: troubleshootPage.noDiscovery +class _TranslationsTroubleshootPageNoDiscoveryHi extends TranslationsTroubleshootPageNoDiscoveryEn { + _TranslationsTroubleshootPageNoDiscoveryHi._(TranslationsHi root) + : this._root = root, + super.internal(root); + + final TranslationsHi _root; // ignore: unused_field + + // Translations + @override + String get symptom => 'यह डिवाइस अन्य डिवाइसों को ढूंढ नहीं सकता।'; + @override + String get solution => + 'सुनिश्चित करें कि सभी डिवाइस एक ही वाई-फाई नेटवर्क से जुड़े हों। पोर्ट, मल्टीकास्ट पता और एन्क्रिप्शन की सेटिंग्स समान होनी चाहिए। यदि डिवाइस नहीं मिलता है, तो लक्ष्य डिवाइस का आईपी पता स्वयं दर्ज करें। अगर यह काम करता है, तो डिवाइस को पसंदीदा में सहेजें ताकि भविष्य में स्वचालित रूप से मिल सके।'; +} + // Path: troubleshootPage.noConnection class _TranslationsTroubleshootPageNoConnectionHi extends TranslationsTroubleshootPageNoConnectionEn { _TranslationsTroubleshootPageNoConnectionHi._(TranslationsHi root) @@ -1062,6 +1120,21 @@ class _TranslationsDialogsAddFileHi extends TranslationsDialogsAddFileEn { String get content => 'आप क्या जोड़ना चाहते हैं?'; } +// Path: dialogs.openFile +class _TranslationsDialogsOpenFileHi extends TranslationsDialogsOpenFileEn { + _TranslationsDialogsOpenFileHi._(TranslationsHi root) + : this._root = root, + super.internal(root); + + final TranslationsHi _root; // ignore: unused_field + + // Translations + @override + String get title => 'फ़ाइल खोलें'; + @override + String get content => 'क्या आप प्राप्त फ़ाइल खोलना चाहते हैं?'; +} + // Path: dialogs.addressInput class _TranslationsDialogsAddressInputHi extends TranslationsDialogsAddressInputEn { _TranslationsDialogsAddressInputHi._(TranslationsHi root) @@ -1377,6 +1450,25 @@ class _TranslationsDialogsQuickSaveNoticeHi extends TranslationsDialogsQuickSave String get content => 'फ़ाइल अनुरोध स्वचालित रूप से स्वीकार कर लिए जाते हैं। ध्यान दें कि स्थानीय नेटवर्क पर सभी लोग आपको फ़ाइलें भेज सकते हैं।'; } +// Path: dialogs.quickSaveFromFavoritesNotice +class _TranslationsDialogsQuickSaveFromFavoritesNoticeHi extends TranslationsDialogsQuickSaveFromFavoritesNoticeEn { + _TranslationsDialogsQuickSaveFromFavoritesNoticeHi._(TranslationsHi root) + : this._root = root, + super.internal(root); + + final TranslationsHi _root; // ignore: unused_field + + // Translations + @override + String get title => _root.general.quickSaveFromFavorites; + @override + List get content => [ + 'अब आपके पसंदीदा सूची में शामिल डिवाइसों से फ़ाइल अनुरोध स्वतः स्वीकार किए जाएंगे।', + 'चेतावनी! वर्तमान में, यह पूरी तरह से सुरक्षित नहीं है, क्योंकि कोई हैकर जो आपकी पसंदीदा सूची में शामिल किसी भी डिवाइस का फ़िंगरप्रिंट प्राप्त कर लेता है, वह बिना किसी प्रतिबंध के आपको फ़ाइलें भेज सकता है।', + 'हालांकि, यह विकल्प अभी भी उन सभी उपयोगकर्ताओं को बिना प्रतिबंध फ़ाइलें भेजने की अनुमति देने की तुलना में सुरक्षित है, जो स्थानीय नेटवर्क पर हैं।', + ]; +} + // Path: dialogs.pin class _TranslationsDialogsPinHi extends TranslationsDialogsPinEn { _TranslationsDialogsPinHi._(TranslationsHi root) diff --git a/app/lib/gen/strings_it.g.dart b/app/lib/gen/strings_it.g.dart index 6f2b2815..c352d6e8 100644 --- a/app/lib/gen/strings_it.g.dart +++ b/app/lib/gen/strings_it.g.dart @@ -378,7 +378,7 @@ class _TranslationsSendPageIt extends TranslationsSendPageEn { // Translations @override - String get waiting => 'In attesa di risposta...'; + String get waiting => 'In attesa di risposta…'; @override String get rejected => 'Il destinatario ha rifiutato la richiesta.'; @override @@ -418,9 +418,9 @@ class _TranslationsWebSharePageIt extends TranslationsWebSharePageEn { @override String get title => 'Condividi tramite link'; @override - String get loading => 'Avvio del server...'; + String get loading => 'Avvio del server…'; @override - String get stopping => 'Arresto del server...'; + String get stopping => 'Arresto del server…'; @override String get error => 'Si è verificato un errore durante l\'avvio del server.'; @override @@ -913,14 +913,14 @@ class _TranslationsSettingsTabNetworkIt extends TranslationsSettingsTabNetworkEn String get generateRandomAlias => 'Genera un alias casuale'; @override String portWarning({required Object defaultPort}) => - 'Potresti non essere rilevato da altri dispositivi perché stai utilizzando una porta personalizzata (default: ${defaultPort}).'; + 'Potresti non essere rilevato da altri dispositivi perché stai utilizzando una porta personalizzata. (predefinita: ${defaultPort})'; @override String get encryption => 'Crittografia'; @override String get multicastGroup => 'Indirizzo Multicast'; @override String multicastGroupWarning({required Object defaultMulticast}) => - 'Potresti non essere rilevato dagli altri dispositivi perché stai utilizzando un indirizzo multicast personalizzato (predefinito: ${defaultMulticast}).'; + 'Potresti non essere rilevato dagli altri dispositivi perché stai utilizzando un indirizzo multicast personalizzato. (predefinito: ${defaultMulticast})'; } // Path: settingsTab.other diff --git a/app/lib/gen/strings_ms.g.dart b/app/lib/gen/strings_ms.g.dart index 23516406..e1b7b84d 100644 --- a/app/lib/gen/strings_ms.g.dart +++ b/app/lib/gen/strings_ms.g.dart @@ -71,13 +71,13 @@ class TranslationsMs extends Translations { @override late final _TranslationsDialogsMs dialogs = _TranslationsDialogsMs._(_root); @override + late final _TranslationsSanitizationMs sanitization = _TranslationsSanitizationMs._(_root); + @override late final _TranslationsTrayMs tray = _TranslationsTrayMs._(_root); @override late final _TranslationsWebMs web = _TranslationsWebMs._(_root); @override late final _TranslationsAssetPickerMs assetPicker = _TranslationsAssetPickerMs._(_root); - @override - late final _TranslationsSanitizationMs sanitization = _TranslationsSanitizationMs._(_root); } // Path: general @@ -604,6 +604,12 @@ class _TranslationsDialogsMs extends TranslationsDialogsEn { @override late final _TranslationsDialogsErrorDialogMs errorDialog = _TranslationsDialogsErrorDialogMs._(_root); @override + late final _TranslationsDialogsFavoriteDialogMs favoriteDialog = _TranslationsDialogsFavoriteDialogMs._(_root); + @override + late final _TranslationsDialogsFavoriteDeleteDialogMs favoriteDeleteDialog = _TranslationsDialogsFavoriteDeleteDialogMs._(_root); + @override + late final _TranslationsDialogsFavoriteEditDialogMs favoriteEditDialog = _TranslationsDialogsFavoriteEditDialogMs._(_root); + @override late final _TranslationsDialogsFileInfoMs fileInfo = _TranslationsDialogsFileInfoMs._(_root); @override late final _TranslationsDialogsFileNameInputMs fileNameInput = _TranslationsDialogsFileNameInputMs._(_root); @@ -629,19 +635,28 @@ class _TranslationsDialogsMs extends TranslationsDialogsEn { late final _TranslationsDialogsQuickSaveFromFavoritesNoticeMs quickSaveFromFavoritesNotice = _TranslationsDialogsQuickSaveFromFavoritesNoticeMs._(_root); @override - late final _TranslationsDialogsSendModeHelpMs sendModeHelp = _TranslationsDialogsSendModeHelpMs._(_root); - @override - late final _TranslationsDialogsFavoriteDialogMs favoriteDialog = _TranslationsDialogsFavoriteDialogMs._(_root); - @override - late final _TranslationsDialogsFavoriteDeleteDialogMs favoriteDeleteDialog = _TranslationsDialogsFavoriteDeleteDialogMs._(_root); - @override - late final _TranslationsDialogsFavoriteEditDialogMs favoriteEditDialog = _TranslationsDialogsFavoriteEditDialogMs._(_root); - @override late final _TranslationsDialogsPinMs pin = _TranslationsDialogsPinMs._(_root); @override + late final _TranslationsDialogsSendModeHelpMs sendModeHelp = _TranslationsDialogsSendModeHelpMs._(_root); + @override late final _TranslationsDialogsZoomMs zoom = _TranslationsDialogsZoomMs._(_root); } +// Path: sanitization +class _TranslationsSanitizationMs extends TranslationsSanitizationEn { + _TranslationsSanitizationMs._(TranslationsMs root) + : this._root = root, + super.internal(root); + + final TranslationsMs _root; // ignore: unused_field + + // Translations + @override + String get empty => 'Nama fail tidak boleh kosong'; + @override + String get invalid => 'Nama fail mengandungi aksara yang tidak sah'; +} + // Path: tray class _TranslationsTrayMs extends TranslationsTrayEn { _TranslationsTrayMs._(TranslationsMs root) @@ -748,21 +763,6 @@ class _TranslationsAssetPickerMs extends TranslationsAssetPickerEn { String get sUnitAssetCountLabel => 'kiraan'; } -// Path: sanitization -class _TranslationsSanitizationMs extends TranslationsSanitizationEn { - _TranslationsSanitizationMs._(TranslationsMs root) - : this._root = root, - super.internal(root); - - final TranslationsMs _root; // ignore: unused_field - - // Translations - @override - String get empty => 'Nama fail tidak boleh kosong'; - @override - String get invalid => 'Nama fail mengandungi aksara yang tidak sah'; -} - // Path: receiveTab.infoBox class _TranslationsReceiveTabInfoBoxMs extends TranslationsReceiveTabInfoBoxEn { _TranslationsReceiveTabInfoBoxMs._(TranslationsMs root) @@ -890,6 +890,10 @@ class _TranslationsSettingsTabReceiveMs extends TranslationsSettingsTabReceiveEn @override String get quickSaveFromFavorites => _root.general.quickSaveFromFavorites; @override + String get requirePin => 'Memerlukan PIN'; + @override + String get autoFinish => 'Selesai Automatik'; + @override String get destination => 'Simpan ke folder'; @override String get downloads => '(Muat turun)'; @@ -897,10 +901,6 @@ class _TranslationsSettingsTabReceiveMs extends TranslationsSettingsTabReceiveEn String get saveToGallery => 'Simpan media ke galeri'; @override String get saveToHistory => 'Simpan ke sejarah'; - @override - String get requirePin => 'Memerlukan PIN'; - @override - String get autoFinish => 'Selesai Automatik'; } // Path: settingsTab.send @@ -942,6 +942,12 @@ class _TranslationsSettingsTabNetworkMs extends TranslationsSettingsTabNetworkEn @override String get port => 'Port'; @override + String get discoveryTimeout => 'Tamat Masa Penemuan'; + @override + String get useSystemName => 'Gunakan nama sistem'; + @override + String get generateRandomAlias => 'Jana alias rawak'; + @override String portWarning({required Object defaultPort}) => 'Anda mungkin tidak dapat dikesan oleh peranti lain kerana anda menggunakan port tersuai. (lalai: ${defaultPort})'; @override @@ -951,12 +957,6 @@ class _TranslationsSettingsTabNetworkMs extends TranslationsSettingsTabNetworkEn @override String multicastGroupWarning({required Object defaultMulticast}) => 'Anda mungkin tidak dapat dikesan oleh peranti lain kerana anda menggunakan alamat multicast tersuai. (lalai: ${defaultMulticast})'; - @override - String get discoveryTimeout => 'Tamat Masa Penemuan'; - @override - String get useSystemName => 'Gunakan nama sistem'; - @override - String get generateRandomAlias => 'Jana alias rawak'; } // Path: settingsTab.other @@ -1161,6 +1161,61 @@ class _TranslationsDialogsErrorDialogMs extends TranslationsDialogsErrorDialogEn String get title => _root.general.error; } +// Path: dialogs.favoriteDialog +class _TranslationsDialogsFavoriteDialogMs extends TranslationsDialogsFavoriteDialogEn { + _TranslationsDialogsFavoriteDialogMs._(TranslationsMs root) + : this._root = root, + super.internal(root); + + final TranslationsMs _root; // ignore: unused_field + + // Translations + @override + String get title => 'Kegemaran'; + @override + String get noFavorites => 'Tiada peranti kegemaran lagi.'; + @override + String get addFavorite => 'Tambah'; +} + +// Path: dialogs.favoriteDeleteDialog +class _TranslationsDialogsFavoriteDeleteDialogMs extends TranslationsDialogsFavoriteDeleteDialogEn { + _TranslationsDialogsFavoriteDeleteDialogMs._(TranslationsMs root) + : this._root = root, + super.internal(root); + + final TranslationsMs _root; // ignore: unused_field + + // Translations + @override + String get title => 'Padam dari kegemaran'; + @override + String content({required Object name}) => 'Adakah anda benar-benar mahu memadam "${name}" dari kegemaran?'; +} + +// Path: dialogs.favoriteEditDialog +class _TranslationsDialogsFavoriteEditDialogMs extends TranslationsDialogsFavoriteEditDialogEn { + _TranslationsDialogsFavoriteEditDialogMs._(TranslationsMs root) + : this._root = root, + super.internal(root); + + final TranslationsMs _root; // ignore: unused_field + + // Translations + @override + String get titleAdd => 'Tambah ke kegemaran'; + @override + String get titleEdit => 'Tetapan'; + @override + String get name => 'Nama peranti'; + @override + String get auto => '(auto)'; + @override + String get ip => 'Alamat IP'; + @override + String get port => 'Port'; +} + // Path: dialogs.fileInfo class _TranslationsDialogsFileInfoMs extends TranslationsDialogsFileInfoEn { _TranslationsDialogsFileInfoMs._(TranslationsMs root) @@ -1357,6 +1412,19 @@ class _TranslationsDialogsQuickSaveFromFavoritesNoticeMs extends TranslationsDia String get title => _root.general.quickSaveFromFavorites; } +// Path: dialogs.pin +class _TranslationsDialogsPinMs extends TranslationsDialogsPinEn { + _TranslationsDialogsPinMs._(TranslationsMs root) + : this._root = root, + super.internal(root); + + final TranslationsMs _root; // ignore: unused_field + + // Translations + @override + String get title => 'Masukkan PIN'; +} + // Path: dialogs.sendModeHelp class _TranslationsDialogsSendModeHelpMs extends TranslationsDialogsSendModeHelpEn { _TranslationsDialogsSendModeHelpMs._(TranslationsMs root) @@ -1377,74 +1445,6 @@ class _TranslationsDialogsSendModeHelpMs extends TranslationsDialogsSendModeHelp 'Penerima yang tidak mempunyai LocalSend dipasang boleh memuat turun fail yang dipilih dengan membuka pautan dalam pelayar mereka.'; } -// Path: dialogs.favoriteDialog -class _TranslationsDialogsFavoriteDialogMs extends TranslationsDialogsFavoriteDialogEn { - _TranslationsDialogsFavoriteDialogMs._(TranslationsMs root) - : this._root = root, - super.internal(root); - - final TranslationsMs _root; // ignore: unused_field - - // Translations - @override - String get title => 'Kegemaran'; - @override - String get noFavorites => 'Tiada peranti kegemaran lagi.'; - @override - String get addFavorite => 'Tambah'; -} - -// Path: dialogs.favoriteDeleteDialog -class _TranslationsDialogsFavoriteDeleteDialogMs extends TranslationsDialogsFavoriteDeleteDialogEn { - _TranslationsDialogsFavoriteDeleteDialogMs._(TranslationsMs root) - : this._root = root, - super.internal(root); - - final TranslationsMs _root; // ignore: unused_field - - // Translations - @override - String get title => 'Padam dari kegemaran'; - @override - String content({required Object name}) => 'Adakah anda benar-benar mahu memadam "${name}" dari kegemaran?'; -} - -// Path: dialogs.favoriteEditDialog -class _TranslationsDialogsFavoriteEditDialogMs extends TranslationsDialogsFavoriteEditDialogEn { - _TranslationsDialogsFavoriteEditDialogMs._(TranslationsMs root) - : this._root = root, - super.internal(root); - - final TranslationsMs _root; // ignore: unused_field - - // Translations - @override - String get titleAdd => 'Tambah ke kegemaran'; - @override - String get titleEdit => 'Tetapan'; - @override - String get name => 'Nama peranti'; - @override - String get auto => '(auto)'; - @override - String get ip => 'Alamat IP'; - @override - String get port => 'Port'; -} - -// Path: dialogs.pin -class _TranslationsDialogsPinMs extends TranslationsDialogsPinEn { - _TranslationsDialogsPinMs._(TranslationsMs root) - : this._root = root, - super.internal(root); - - final TranslationsMs _root; // ignore: unused_field - - // Translations - @override - String get title => 'Masukkan PIN'; -} - // Path: dialogs.zoom class _TranslationsDialogsZoomMs extends TranslationsDialogsZoomEn { _TranslationsDialogsZoomMs._(TranslationsMs root) diff --git a/app/lib/gen/strings_ro.g.dart b/app/lib/gen/strings_ro.g.dart index 97baf15e..bf14427f 100644 --- a/app/lib/gen/strings_ro.g.dart +++ b/app/lib/gen/strings_ro.g.dart @@ -96,7 +96,7 @@ class _TranslationsGeneralRo extends TranslationsGeneralEn { @override String get add => 'Adaugă'; @override - String get advanced => 'Advansat'; + String get advanced => 'Avansat'; @override String get cancel => 'Anulare'; @override diff --git a/app/lib/gen/strings_si.g.dart b/app/lib/gen/strings_si.g.dart new file mode 100644 index 00000000..fe7e5f49 --- /dev/null +++ b/app/lib/gen/strings_si.g.dart @@ -0,0 +1,1508 @@ +/// +/// Generated file. Do not edit. +/// +// coverage:ignore-file +// ignore_for_file: type=lint, unused_import + +import 'package:flutter/widgets.dart'; +import 'package:intl/intl.dart'; +import 'package:slang/generated.dart'; +import 'strings.g.dart'; + +// Path: +class TranslationsSi extends Translations { + /// You can call this constructor and build your own translation instance of this locale. + /// Constructing via the enum [AppLocale.build] is preferred. + TranslationsSi({Map? overrides, PluralResolver? cardinalResolver, PluralResolver? ordinalResolver}) + : assert(overrides == null, 'Set "translation_overrides: true" in order to enable this feature.'), + $meta = TranslationMetadata( + locale: AppLocale.si, + overrides: overrides ?? {}, + cardinalResolver: cardinalResolver, + ordinalResolver: ordinalResolver, + ), + super(cardinalResolver: cardinalResolver, ordinalResolver: ordinalResolver); + + /// Metadata for the translations of . + @override + final TranslationMetadata $meta; + + late final TranslationsSi _root = this; // ignore: unused_field + + // Translations + @override + String get locale => 'සිංහල'; + @override + String get appName => 'LocalSend'; + @override + late final _TranslationsGeneralSi general = _TranslationsGeneralSi._(_root); + @override + late final _TranslationsReceiveTabSi receiveTab = _TranslationsReceiveTabSi._(_root); + @override + late final _TranslationsSendTabSi sendTab = _TranslationsSendTabSi._(_root); + @override + late final _TranslationsSettingsTabSi settingsTab = _TranslationsSettingsTabSi._(_root); + @override + late final _TranslationsTroubleshootPageSi troubleshootPage = _TranslationsTroubleshootPageSi._(_root); + @override + late final _TranslationsReceiveHistoryPageSi receiveHistoryPage = _TranslationsReceiveHistoryPageSi._(_root); + @override + late final _TranslationsApkPickerPageSi apkPickerPage = _TranslationsApkPickerPageSi._(_root); + @override + late final _TranslationsSelectedFilesPageSi selectedFilesPage = _TranslationsSelectedFilesPageSi._(_root); + @override + late final _TranslationsReceivePageSi receivePage = _TranslationsReceivePageSi._(_root); + @override + late final _TranslationsReceiveOptionsPageSi receiveOptionsPage = _TranslationsReceiveOptionsPageSi._(_root); + @override + late final _TranslationsSendPageSi sendPage = _TranslationsSendPageSi._(_root); + @override + late final _TranslationsProgressPageSi progressPage = _TranslationsProgressPageSi._(_root); + @override + late final _TranslationsWebSharePageSi webSharePage = _TranslationsWebSharePageSi._(_root); + @override + late final _TranslationsAboutPageSi aboutPage = _TranslationsAboutPageSi._(_root); + @override + late final _TranslationsDonationPageSi donationPage = _TranslationsDonationPageSi._(_root); + @override + late final _TranslationsChangelogPageSi changelogPage = _TranslationsChangelogPageSi._(_root); + @override + late final _TranslationsAliasGeneratorSi aliasGenerator = _TranslationsAliasGeneratorSi._(_root); + @override + late final _TranslationsDialogsSi dialogs = _TranslationsDialogsSi._(_root); + @override + late final _TranslationsSanitizationSi sanitization = _TranslationsSanitizationSi._(_root); + @override + late final _TranslationsTraySi tray = _TranslationsTraySi._(_root); + @override + late final _TranslationsWebSi web = _TranslationsWebSi._(_root); + @override + late final _TranslationsAssetPickerSi assetPicker = _TranslationsAssetPickerSi._(_root); +} + +// Path: general +class _TranslationsGeneralSi extends TranslationsGeneralEn { + _TranslationsGeneralSi._(TranslationsSi root) + : this._root = root, + super.internal(root); + + final TranslationsSi _root; // ignore: unused_field + + // Translations + @override + String get accept => 'පිළිගන්න'; + @override + String get accepted => 'පිළිගත්'; + @override + String get add => 'ඇඩ් කරන්න'; + @override + String get advanced => 'ගැඹුරු'; + @override + String get cancel => 'අවලංගු කරන්න'; + @override + String get close => 'වසා දමන්න'; + @override + String get confirm => 'තහවුරු කරන්න'; + @override + String get continueStr => 'ඉදිරියට'; + @override + String get copy => 'කොපි කරන්න'; + @override + String get copiedToClipboard => 'Clipboard වෙත කොපි කරන ලදි'; + @override + String get decline => 'ප්‍රතික්ෂේප කරන්න'; + @override + String get done => 'සම්පූර්ණයි'; + @override + String get delete => 'මකන්න'; + @override + String get edit => 'සංස්කරණය'; + @override + String get error => 'දෝෂය'; + @override + String get example => 'උදාහරණය'; + @override + String get files => 'ගොනු'; + @override + String get finished => 'අවසන්'; + @override + String get hide => 'සඟවන්න'; + @override + String get off => 'ඕෆ් (Off)'; + @override + String get offline => 'ඕෆ්ලයින්'; + @override + String get on => 'ඔන් (On)'; + @override + String get online => 'ඔන්ලයින්'; + @override + String get open => 'විවෘත කරන්න'; + @override + String get queue => 'පෝලිම'; + @override + String get quickSave => 'Quick සේව්'; + @override + String get quickSaveFromFavorites => '"ප්‍රියතම" සඳහා Quick සේව් කරන්න'; + @override + String get renamed => 'නම වෙනස් කරන ලදි'; + @override + String get reset => 'වෙනස්කම් අහෝසි කරන්න'; + @override + String get restart => 'නැවත ආරම්භ කරන්න'; + @override + String get settings => 'සැකසුම්'; + @override + String get skipped => 'මග හරින ලදි'; + @override + String get start => 'ආරම්භ කරන්න'; + @override + String get stop => 'නවත්වන්න'; + @override + String get save => 'සේව් කරන්න'; + @override + String get unchanged => 'නොවෙනස්'; + @override + String get unknown => 'නොදන්නා'; + @override + String get noItemInClipboard => 'Clipboard හි අයිතම නැත.'; +} + +// Path: receiveTab +class _TranslationsReceiveTabSi extends TranslationsReceiveTabEn { + _TranslationsReceiveTabSi._(TranslationsSi root) + : this._root = root, + super.internal(root); + + final TranslationsSi _root; // ignore: unused_field + + // Translations + @override + String get title => 'ලබාගන්න'; + @override + late final _TranslationsReceiveTabInfoBoxSi infoBox = _TranslationsReceiveTabInfoBoxSi._(_root); + @override + late final _TranslationsReceiveTabQuickSaveSi quickSave = _TranslationsReceiveTabQuickSaveSi._(_root); +} + +// Path: sendTab +class _TranslationsSendTabSi extends TranslationsSendTabEn { + _TranslationsSendTabSi._(TranslationsSi root) + : this._root = root, + super.internal(root); + + final TranslationsSi _root; // ignore: unused_field + + // Translations + @override + String get title => 'යවන්න'; + @override + late final _TranslationsSendTabSelectionSi selection = _TranslationsSendTabSelectionSi._(_root); + @override + late final _TranslationsSendTabPickerSi picker = _TranslationsSendTabPickerSi._(_root); + @override + String get shareIntentInfo => 'ඔබට වඩාත් පහසුවෙන් ගොනු තේරීමට ඔබගේ ජංගම උපාංගයේ "Share" විශේෂාංගය භාවිතා කළ හැක.'; + @override + String get nearbyDevices => 'ආසන්න උපාංග'; + @override + String get thisDevice => 'මෙම උපාංගය'; + @override + String get scan => 'උපාංග සොයන්න'; + @override + String get manualSending => 'Manual යැවීම'; + @override + String get sendMode => 'යැවීමේ ක්‍රමය'; + @override + late final _TranslationsSendTabSendModesSi sendModes = _TranslationsSendTabSendModesSi._(_root); + @override + String get sendModeHelp => 'පැහැදිලි කිරීම'; + @override + String get help => 'කරුණාකර ලබන්නාගේ උපාංගය හා ඔබේ උපාංගය එකම Wi-Fi ජාලයේ ඇති බව සහතික කර ගන්න.'; + @override + String get placeItems => 'බෙදා (Share) ගැනීමට අවශ්‍ය දේ තබන්න.'; +} + +// Path: settingsTab +class _TranslationsSettingsTabSi extends TranslationsSettingsTabEn { + _TranslationsSettingsTabSi._(TranslationsSi root) + : this._root = root, + super.internal(root); + + final TranslationsSi _root; // ignore: unused_field + + // Translations + @override + String get title => 'සැකසුම්'; + @override + late final _TranslationsSettingsTabGeneralSi general = _TranslationsSettingsTabGeneralSi._(_root); + @override + late final _TranslationsSettingsTabReceiveSi receive = _TranslationsSettingsTabReceiveSi._(_root); + @override + late final _TranslationsSettingsTabSendSi send = _TranslationsSettingsTabSendSi._(_root); + @override + late final _TranslationsSettingsTabNetworkSi network = _TranslationsSettingsTabNetworkSi._(_root); + @override + late final _TranslationsSettingsTabOtherSi other = _TranslationsSettingsTabOtherSi._(_root); + @override + String get advancedSettings => 'ගැඹුරු සැකසුම්'; +} + +// Path: troubleshootPage +class _TranslationsTroubleshootPageSi extends TranslationsTroubleshootPageEn { + _TranslationsTroubleshootPageSi._(TranslationsSi root) + : this._root = root, + super.internal(root); + + final TranslationsSi _root; // ignore: unused_field + + // Translations + @override + String get title => 'ගැටලු විසඳන්න'; + @override + String get subTitle => 'යෙදුම අපේක්ෂිත පරිදි ක්‍රියා නොකරන්නේද? මෙහි පොදු ගැටලු සඳහා විසඳුම් සොයා ගත හැක.'; + @override + String get solution => 'විසඳුම:'; + @override + String get fixButton => 'ස්වයංක්‍රීයව නිවැරදි කරන්න'; + @override + late final _TranslationsTroubleshootPageFirewallSi firewall = _TranslationsTroubleshootPageFirewallSi._(_root); + @override + late final _TranslationsTroubleshootPageNoDiscoverySi noDiscovery = _TranslationsTroubleshootPageNoDiscoverySi._(_root); + @override + late final _TranslationsTroubleshootPageNoConnectionSi noConnection = _TranslationsTroubleshootPageNoConnectionSi._(_root); +} + +// Path: receiveHistoryPage +class _TranslationsReceiveHistoryPageSi extends TranslationsReceiveHistoryPageEn { + _TranslationsReceiveHistoryPageSi._(TranslationsSi root) + : this._root = root, + super.internal(root); + + final TranslationsSi _root; // ignore: unused_field + + // Translations + @override + String get title => 'ඉතිහාසය'; + @override + String get openFolder => 'ෆෝල්ඩරය විවෘත කරන්න'; + @override + String get deleteHistory => 'ඉතිහාසය මකන්න'; + @override + String get empty => 'ඉතිහාසයේ කිසිවක් නැත.'; + @override + late final _TranslationsReceiveHistoryPageEntryActionsSi entryActions = _TranslationsReceiveHistoryPageEntryActionsSi._(_root); +} + +// Path: apkPickerPage +class _TranslationsApkPickerPageSi extends TranslationsApkPickerPageEn { + _TranslationsApkPickerPageSi._(TranslationsSi root) + : this._root = root, + super.internal(root); + + final TranslationsSi _root; // ignore: unused_field + + // Translations + @override + String get title => 'ඇප් (APK)'; + @override + String get excludeSystemApps => 'පද්ධති යෙදුම් (System Apps) බැහැර කරන්න'; + @override + String get excludeAppsWithoutLaunchIntent => 'ක්‍රියාත්මක කිරීමට නොහැකි ඇප් බැහැර කරන්න'; + @override + String apps({required Object n}) => 'ඇප් ${n}'; +} + +// Path: selectedFilesPage +class _TranslationsSelectedFilesPageSi extends TranslationsSelectedFilesPageEn { + _TranslationsSelectedFilesPageSi._(TranslationsSi root) + : this._root = root, + super.internal(root); + + final TranslationsSi _root; // ignore: unused_field + + // Translations + @override + String get deleteAll => 'සියල්ල මකන්න'; +} + +// Path: receivePage +class _TranslationsReceivePageSi extends TranslationsReceivePageEn { + _TranslationsReceivePageSi._(TranslationsSi root) + : this._root = root, + super.internal(root); + + final TranslationsSi _root; // ignore: unused_field + + // Translations + @override + String subTitle({required num n}) => (_root.$meta.cardinalResolver ?? PluralResolvers.cardinal('si'))( + n, + one: 'ඔබට ගොනුවක් එවීමට කැමතියි', + other: 'ඔබට ගොනු ${n} එවීමට කැමතියි', + ); + @override + String get subTitleMessage => 'ඔබට පණිවිඩයක් එවා ඇත:'; + @override + String get subTitleLink => 'ඔබට ලින්ක් (Link) එකක් එවා ඇත:'; + @override + String get canceled => 'යවන්නා ඉල්ලීම අවලංගු කර ඇත.'; +} + +// Path: receiveOptionsPage +class _TranslationsReceiveOptionsPageSi extends TranslationsReceiveOptionsPageEn { + _TranslationsReceiveOptionsPageSi._(TranslationsSi root) + : this._root = root, + super.internal(root); + + final TranslationsSi _root; // ignore: unused_field + + // Translations + @override + String get title => 'විකල්ප'; + @override + String get destination => _root.settingsTab.receive.destination; + @override + String get appDirectory => '(LocalSend ෆෝල්ඩරය)'; + @override + String get saveToGallery => _root.settingsTab.receive.saveToGallery; + @override + String get saveToGalleryOff => 'ෆෝල්ඩර් නොමැති බැවින් ස්වයංක්‍රීයව ක්‍රියා විරහිත කරන ලදි.'; +} + +// Path: sendPage +class _TranslationsSendPageSi extends TranslationsSendPageEn { + _TranslationsSendPageSi._(TranslationsSi root) + : this._root = root, + super.internal(root); + + final TranslationsSi _root; // ignore: unused_field + + // Translations + @override + String get waiting => 'ප්‍රතිචාරයක් බලාපොරොත්තු වෙමින්…'; + @override + String get rejected => 'ලැබුම්කරු ඉල්ලීම ප්‍රතික්ෂේප කර ඇත.'; + @override + String get tooManyAttempts => _root.web.tooManyAttempts; + @override + String get busy => 'ලැබුම්කරු වෙනත් ඉල්ලීමක් නිසා කාර්‍යබහුලව ඇත.'; +} + +// Path: progressPage +class _TranslationsProgressPageSi extends TranslationsProgressPageEn { + _TranslationsProgressPageSi._(TranslationsSi root) + : this._root = root, + super.internal(root); + + final TranslationsSi _root; // ignore: unused_field + + // Translations + @override + String get titleSending => 'ගොනු යවමින්'; + @override + String get titleReceiving => 'ගොනු ලබා ගනිමින්'; + @override + String get savedToGallery => 'Photos තුළ සේව් කරන ලදි'; + @override + late final _TranslationsProgressPageTotalSi total = _TranslationsProgressPageTotalSi._(_root); +} + +// Path: webSharePage +class _TranslationsWebSharePageSi extends TranslationsWebSharePageEn { + _TranslationsWebSharePageSi._(TranslationsSi root) + : this._root = root, + super.internal(root); + + final TranslationsSi _root; // ignore: unused_field + + // Translations + @override + String get title => 'ලින්ක් (Link) ඔස්සේ බෙදාගන්න (Share)'; + @override + String get loading => 'සේවාදායකය ආරම්භ කරමින්…'; + @override + String get stopping => 'සේවාදායකය නවතමින්…'; + @override + String get error => 'සේවාදායකය ආරම්භ කිරීමේදී දෝෂයක් සිදු විය.'; + @override + String openLink({required num n}) => (_root.$meta.cardinalResolver ?? PluralResolvers.cardinal('si'))( + n, + one: 'මෙම ලින්ක් (Link) එක ඔබේ බ්‍රවුසරය (Browser) මගින් විවෘත කරන්න:', + other: 'මෙම ලින්ක් (Link) වලින් එකක් ඔබේ බ්‍රවුසරය (Browser) මගින් විවෘත කරන්න:', + ); + @override + String get requests => 'ඉල්ලීම්'; + @override + String get noRequests => 'තවමත් කිසිදු ඉල්ලීමක් නැත.'; + @override + String get encryption => _root.settingsTab.network.encryption; + @override + String get autoAccept => 'ඉල්ලීම් ස්වයංක්‍රීයව පිළිගන්න'; + @override + String get requirePin => 'PIN අවශ්‍යයි'; + @override + String pinHint({required Object pin}) => 'PIN එක "${pin}"'; + @override + String get encryptionHint => + 'LocalSend self-signed certificate එකක් භාවිතා කරයි. ඔබ විසින් එය බ්‍රවුසරය (browser) තුළ දි පිළිගැනීම (accept) අවශ්‍ය වේ.'; + @override + String pendingRequests({required Object n}) => 'Pending වන ඉල්ලීම්: ${n}'; +} + +// Path: aboutPage +class _TranslationsAboutPageSi extends TranslationsAboutPageEn { + _TranslationsAboutPageSi._(TranslationsSi root) + : this._root = root, + super.internal(root); + + final TranslationsSi _root; // ignore: unused_field + + // Translations + @override + String get title => 'LocalSend පිළිබඳව'; + @override + List get description => [ + 'LocalSend යනු ඔබට අන්තර්ජාල සම්බන්ධතාවයක අවශ්‍යතාවයකින් තොරව, local ජාලයක් තුළ, සමීප උපාංග සමඟ ගොනු සහ පණිවිඩ ආරක්ෂිතව බෙදා ගත හැකි නිදහස්, විවෘත-මූලාශ්‍රය (Free and open-source) ඇප් එකකි.', + 'මෙම ඇප් එක Android, iOS, macOS, Windows සහ Linux සඳහා පවතියි. එය ඩවුන්ලෝඩ් (Download) කරගත හැකි ආකාර අපේ අඩවියේ මුල් පිටුවෙන් සොයාගත හැක.', + ]; + @override + String get author => 'කතෲ'; + @override + String get contributors => 'සහය දැක්වූවන්'; + @override + String get packagers => 'පැකේජ්ර්ස්'; + @override + String get translators => 'පරිවර්තකයන්'; +} + +// Path: donationPage +class _TranslationsDonationPageSi extends TranslationsDonationPageEn { + _TranslationsDonationPageSi._(TranslationsSi root) + : this._root = root, + super.internal(root); + + final TranslationsSi _root; // ignore: unused_field + + // Translations + @override + String get title => 'ආධාර කරන්න'; + @override + String get info => + 'LocalSend නිදහස්, විවෘත-මූලාශ්‍ර වන අතර කිසිදු වෙළඳ දැන්වීමකින් තොර වේ. ඔබ මෙම ඇප් එකට කැමැති නම්, මෙහි සංවර්ධනය සඳහා මූල්‍යමය දායකත්වයක් ලබා දී සහය ලබා දීමට හැක.'; + @override + String donate({required Object amount}) => 'දායකත්වය ${amount}'; + @override + String get thanks => 'ඔබට බොහොම ස්තූතියි!'; + @override + String get restore => 'මිලදී ගැනීම ප්‍රතිස්ථාපනය (Restore) කරන්න'; +} + +// Path: changelogPage +class _TranslationsChangelogPageSi extends TranslationsChangelogPageEn { + _TranslationsChangelogPageSi._(TranslationsSi root) + : this._root = root, + super.internal(root); + + final TranslationsSi _root; // ignore: unused_field + + // Translations + @override + String get title => 'වෙනස්කම් ලේඛනය'; +} + +// Path: aliasGenerator +class _TranslationsAliasGeneratorSi extends TranslationsAliasGeneratorEn { + _TranslationsAliasGeneratorSi._(TranslationsSi root) + : this._root = root, + super.internal(root); + + final TranslationsSi _root; // ignore: unused_field + + // Translations +} + +// Path: dialogs +class _TranslationsDialogsSi extends TranslationsDialogsEn { + _TranslationsDialogsSi._(TranslationsSi root) + : this._root = root, + super.internal(root); + + final TranslationsSi _root; // ignore: unused_field + + // Translations + @override + late final _TranslationsDialogsAddFileSi addFile = _TranslationsDialogsAddFileSi._(_root); + @override + late final _TranslationsDialogsOpenFileSi openFile = _TranslationsDialogsOpenFileSi._(_root); + @override + late final _TranslationsDialogsAddressInputSi addressInput = _TranslationsDialogsAddressInputSi._(_root); + @override + late final _TranslationsDialogsCancelSessionSi cancelSession = _TranslationsDialogsCancelSessionSi._(_root); + @override + late final _TranslationsDialogsCannotOpenFileSi cannotOpenFile = _TranslationsDialogsCannotOpenFileSi._(_root); + @override + late final _TranslationsDialogsEncryptionDisabledNoticeSi encryptionDisabledNotice = _TranslationsDialogsEncryptionDisabledNoticeSi._(_root); + @override + late final _TranslationsDialogsErrorDialogSi errorDialog = _TranslationsDialogsErrorDialogSi._(_root); + @override + late final _TranslationsDialogsFavoriteDialogSi favoriteDialog = _TranslationsDialogsFavoriteDialogSi._(_root); + @override + late final _TranslationsDialogsFavoriteDeleteDialogSi favoriteDeleteDialog = _TranslationsDialogsFavoriteDeleteDialogSi._(_root); + @override + late final _TranslationsDialogsFavoriteEditDialogSi favoriteEditDialog = _TranslationsDialogsFavoriteEditDialogSi._(_root); + @override + late final _TranslationsDialogsFileInfoSi fileInfo = _TranslationsDialogsFileInfoSi._(_root); + @override + late final _TranslationsDialogsFileNameInputSi fileNameInput = _TranslationsDialogsFileNameInputSi._(_root); + @override + late final _TranslationsDialogsHistoryClearDialogSi historyClearDialog = _TranslationsDialogsHistoryClearDialogSi._(_root); + @override + late final _TranslationsDialogsLocalNetworkUnauthorizedSi localNetworkUnauthorized = _TranslationsDialogsLocalNetworkUnauthorizedSi._(_root); + @override + late final _TranslationsDialogsMessageInputSi messageInput = _TranslationsDialogsMessageInputSi._(_root); + @override + late final _TranslationsDialogsNoFilesSi noFiles = _TranslationsDialogsNoFilesSi._(_root); + @override + late final _TranslationsDialogsNoPermissionSi noPermission = _TranslationsDialogsNoPermissionSi._(_root); + @override + late final _TranslationsDialogsNotAvailableOnPlatformSi notAvailableOnPlatform = _TranslationsDialogsNotAvailableOnPlatformSi._(_root); + @override + late final _TranslationsDialogsQrSi qr = _TranslationsDialogsQrSi._(_root); + @override + late final _TranslationsDialogsQuickActionsSi quickActions = _TranslationsDialogsQuickActionsSi._(_root); + @override + late final _TranslationsDialogsQuickSaveNoticeSi quickSaveNotice = _TranslationsDialogsQuickSaveNoticeSi._(_root); + @override + late final _TranslationsDialogsQuickSaveFromFavoritesNoticeSi quickSaveFromFavoritesNotice = + _TranslationsDialogsQuickSaveFromFavoritesNoticeSi._(_root); + @override + late final _TranslationsDialogsPinSi pin = _TranslationsDialogsPinSi._(_root); + @override + late final _TranslationsDialogsSendModeHelpSi sendModeHelp = _TranslationsDialogsSendModeHelpSi._(_root); + @override + late final _TranslationsDialogsZoomSi zoom = _TranslationsDialogsZoomSi._(_root); +} + +// Path: sanitization +class _TranslationsSanitizationSi extends TranslationsSanitizationEn { + _TranslationsSanitizationSi._(TranslationsSi root) + : this._root = root, + super.internal(root); + + final TranslationsSi _root; // ignore: unused_field + + // Translations + @override + String get empty => 'ගොනුවේ නම හිස් විය නොහැක'; + @override + String get invalid => 'ගොනු නාමයේ වලංගු නොවන අක්ෂර අඩංගු වේ'; +} + +// Path: tray +class _TranslationsTraySi extends TranslationsTrayEn { + _TranslationsTraySi._(TranslationsSi root) + : this._root = root, + super.internal(root); + + final TranslationsSi _root; // ignore: unused_field + + // Translations + @override + String get open => _root.general.open; + @override + String get close => 'LocalSend වෙතින් ඉවත් වෙන්න'; + @override + String get closeWindows => 'පිටවීම'; +} + +// Path: web +class _TranslationsWebSi extends TranslationsWebEn { + _TranslationsWebSi._(TranslationsSi root) + : this._root = root, + super.internal(root); + + final TranslationsSi _root; // ignore: unused_field + + // Translations + @override + String get waiting => _root.sendPage.waiting; + @override + String get enterPin => 'PIN ඇතුල් කරන්න'; + @override + String get invalidPin => 'වැරදි PIN'; + @override + String get tooManyAttempts => 'මේ සඳහා පමණට වඩා උත්සාහ කර ඇත'; + @override + String get rejected => 'ප්‍රතික්ෂේප කරන ලදී'; + @override + String get files => 'ගොනු'; + @override + String get fileName => 'ගොනුවේ නම'; + @override + String get size => 'ප්‍රමාණය'; +} + +// Path: assetPicker +class _TranslationsAssetPickerSi extends TranslationsAssetPickerEn { + _TranslationsAssetPickerSi._(TranslationsSi root) + : this._root = root, + super.internal(root); + + final TranslationsSi _root; // ignore: unused_field + + // Translations + @override + String get confirm => 'තහවුරු කරන්න'; + @override + String get cancel => 'අවලංගු කරන්න'; + @override + String get edit => 'සංස්කරණය'; + @override + String get gifIndicator => 'GIF'; + @override + String get loadFailed => 'Load කිරීම අසාර්ථක විය'; + @override + String get original => 'මූලාශ්‍රය'; + @override + String get preview => 'පෙරදසුන'; + @override + String get select => 'තෝරන්න'; + @override + String get emptyList => 'හිස් ලැයිස්තුව'; + @override + String get unSupportedAssetType => 'සහය නොමැති ගොනු වර්ගයකි.'; + @override + String get unableToAccessAll => 'උපාංගයේ ඇති සියලුම ගොනු වෙත පිවිසීමට නොහැක'; + @override + String get viewingLimitedAssetsTip => 'ඇප් එකට ප්‍රවේශ විය හැකි ගොනු සහ ඇල්බම් පමණක් බලන්න.'; + @override + String get changeAccessibleLimitedAssets => 'ප්‍රවේශ කළ හැකි ගොනු යාවත්කාලීන (Update) කිරීමට ක්ලික් කරන්න'; + @override + String get accessAllTip => + 'ඇප් එකට ප්‍රවේශ විය හැක්කේ උපාංගයේ ඇති සමහර ගොනුවලට පමණි. පද්ධති සැකසීම් (Settings) වෙත ගොස් උපාංගයේ සියලුම මාධ්‍ය වෙත ප්‍රවේශ වීමට ඇප් එකට අවසර ලබා දෙන්න.'; + @override + String get goToSystemSettings => 'පද්ධති සැකසුම් වෙත යන්න'; + @override + String get accessLimitedAssets => 'සීමිත ප්‍රවේශය සමඟ කරගෙන යන්න'; + @override + String get accessiblePathName => 'ප්‍රවේශ කළ හැකි ගොනු'; + @override + String get sTypeAudioLabel => 'හඬ'; + @override + String get sTypeImageLabel => 'චායාරූප'; + @override + String get sTypeVideoLabel => 'වීඩියෝ'; + @override + String get sTypeOtherLabel => 'වෙනත් මාධ්‍ය'; + @override + String get sActionPlayHint => 'වාදනය කරන්න'; + @override + String get sActionPreviewHint => 'පෙරදසුන'; + @override + String get sActionSelectHint => 'තෝරන්න'; + @override + String get sActionSwitchPathLabel => 'පාත් (Path) එක වෙනස් කරන්න'; + @override + String get sActionUseCameraHint => 'කැමරාව භාවිතා කරන්න'; + @override + String get sNameDurationLabel => 'කාලසීමාව'; + @override + String get sUnitAssetCountLabel => 'ගණන'; +} + +// Path: receiveTab.infoBox +class _TranslationsReceiveTabInfoBoxSi extends TranslationsReceiveTabInfoBoxEn { + _TranslationsReceiveTabInfoBoxSi._(TranslationsSi root) + : this._root = root, + super.internal(root); + + final TranslationsSi _root; // ignore: unused_field + + // Translations + @override + String get ip => 'IP:'; + @override + String get port => 'Port:'; + @override + String get alias => 'උපාංගයේ නම:'; +} + +// Path: receiveTab.quickSave +class _TranslationsReceiveTabQuickSaveSi extends TranslationsReceiveTabQuickSaveEn { + _TranslationsReceiveTabQuickSaveSi._(TranslationsSi root) + : this._root = root, + super.internal(root); + + final TranslationsSi _root; // ignore: unused_field + + // Translations + @override + String get off => _root.general.off; + @override + String get favorites => 'ප්‍රියතම'; + @override + String get on => _root.general.on; +} + +// Path: sendTab.selection +class _TranslationsSendTabSelectionSi extends TranslationsSendTabSelectionEn { + _TranslationsSendTabSelectionSi._(TranslationsSi root) + : this._root = root, + super.internal(root); + + final TranslationsSi _root; // ignore: unused_field + + // Translations + @override + String get title => 'තේරීම'; + @override + String files({required Object files}) => 'ගොනු: ${files}'; + @override + String size({required Object size}) => 'ප්‍රමාණය: ${size}'; +} + +// Path: sendTab.picker +class _TranslationsSendTabPickerSi extends TranslationsSendTabPickerEn { + _TranslationsSendTabPickerSi._(TranslationsSi root) + : this._root = root, + super.internal(root); + + final TranslationsSi _root; // ignore: unused_field + + // Translations + @override + String get file => 'ගොනුව'; + @override + String get folder => 'ෆෝල්ඩරය'; + @override + String get media => 'මාධ්‍ය'; + @override + String get text => 'පේළි (Text)'; + @override + String get app => 'ඇප්'; + @override + String get clipboard => 'පේස්ට් කරන්න'; +} + +// Path: sendTab.sendModes +class _TranslationsSendTabSendModesSi extends TranslationsSendTabSendModesEn { + _TranslationsSendTabSendModesSi._(TranslationsSi root) + : this._root = root, + super.internal(root); + + final TranslationsSi _root; // ignore: unused_field + + // Translations + @override + String get single => 'තනි ලබන්නා'; + @override + String get multiple => 'බහු ලබන්නන්'; + @override + String get link => 'ලින්ක් (Link) ඔස්සේ බෙදාගන්න (Share)'; +} + +// Path: settingsTab.general +class _TranslationsSettingsTabGeneralSi extends TranslationsSettingsTabGeneralEn { + _TranslationsSettingsTabGeneralSi._(TranslationsSi root) + : this._root = root, + super.internal(root); + + final TranslationsSi _root; // ignore: unused_field + + // Translations + @override + String get title => 'සාමාන්‍ය'; + @override + String get brightness => 'තේමාව'; + @override + late final _TranslationsSettingsTabGeneralBrightnessOptionsSi brightnessOptions = _TranslationsSettingsTabGeneralBrightnessOptionsSi._(_root); + @override + String get color => 'පාට'; + @override + late final _TranslationsSettingsTabGeneralColorOptionsSi colorOptions = _TranslationsSettingsTabGeneralColorOptionsSi._(_root); + @override + String get language => 'භාෂාව'; + @override + late final _TranslationsSettingsTabGeneralLanguageOptionsSi languageOptions = _TranslationsSettingsTabGeneralLanguageOptionsSi._(_root); + @override + String get saveWindowPlacement => 'ඉවත් වූ පසු කවුළුවේ පිහිටීම සුරකින්න'; + @override + String get saveWindowPlacementWindows => 'පිටවීමෙන් පසු කවුළුවේ පිහිටීම සුරකින්න'; + @override + String get minimizeToTray => 'වසා දැමීමේදී System Tray/Menu Bar වෙත අවම කරන්න'; + @override + String get launchAtStartup => 'පුරනය වීමෙන් පසු ස්වයංක්‍රීයව ආරම්භ කරන්න'; + @override + String get launchMinimized => 'ස්වයංක්‍රීය ආරම්භය: සඟවා ආරම්භ කරන්න'; + @override + String get showInContextMenu => 'Context මෙනුව තුළ LocalSend පෙන්වන්න'; + @override + String get animations => 'ඇනිමේශන්'; +} + +// Path: settingsTab.receive +class _TranslationsSettingsTabReceiveSi extends TranslationsSettingsTabReceiveEn { + _TranslationsSettingsTabReceiveSi._(TranslationsSi root) + : this._root = root, + super.internal(root); + + final TranslationsSi _root; // ignore: unused_field + + // Translations + @override + String get title => 'ලබාගන්න'; + @override + String get quickSave => _root.general.quickSave; + @override + String get quickSaveFromFavorites => _root.general.quickSaveFromFavorites; + @override + String get requirePin => _root.webSharePage.requirePin; + @override + String get autoFinish => 'ස්වයංක්‍රීය අවසන් කිරීම'; + @override + String get destination => 'ෆෝල්ඩරය වෙත සුරකින්න'; + @override + String get downloads => '(බාගත කිරීම්)'; + @override + String get saveToGallery => 'මාධ්‍ය ගැලරියට සුරකින්න'; + @override + String get saveToHistory => 'ඉතිහාසයට සුරකින්න'; +} + +// Path: settingsTab.send +class _TranslationsSettingsTabSendSi extends TranslationsSettingsTabSendEn { + _TranslationsSettingsTabSendSi._(TranslationsSi root) + : this._root = root, + super.internal(root); + + final TranslationsSi _root; // ignore: unused_field + + // Translations + @override + String get title => 'යවන්න'; + @override + String get shareViaLinkAutoAccept => '"ලින්ක් (Link) ඔස්සේ බෙදාගන්න (Share)" මාදිලියේ ඉල්ලීම් ස්වයංක්‍රීයව පිළිගන්න'; +} + +// Path: settingsTab.network +class _TranslationsSettingsTabNetworkSi extends TranslationsSettingsTabNetworkEn { + _TranslationsSettingsTabNetworkSi._(TranslationsSi root) + : this._root = root, + super.internal(root); + + final TranslationsSi _root; // ignore: unused_field + + // Translations + @override + String get title => 'ජාලය'; + @override + String get needRestart => 'සැකසුම් යෙදීමට සේවාදායකය නැවත අරඹන්න!'; + @override + String get server => 'සේවාදායකය'; + @override + String get alias => 'උපාංගයේ නම'; + @override + String get deviceType => 'උපාංගයේ වර් ගය'; + @override + String get deviceModel => 'උපාංගයේ ආකෘතිය'; + @override + String get port => 'Port'; + @override + String get discoveryTimeout => 'සොයා ගැනීමේ කාලසීමාව'; + @override + String get useSystemName => 'පද්ධති නම භාවිතා කරන්න'; + @override + String get generateRandomAlias => 'අහඹු නමක් ජනනය කරන්න'; + @override + String portWarning({required Object defaultPort}) => + 'ඔබ custom port එකක් භාවිතා කරන්නේ නම්, වෙනත් උපාංග වලට ඔබව හඳුනා ගත නොහැක. (default: ${defaultPort})'; + @override + String get encryption => 'කේතනය'; + @override + String get multicastGroup => 'Multicast ලිපිනය'; + @override + String multicastGroupWarning({required Object defaultMulticast}) => + 'ඔබ custom multicast ලිපිනයක් භාවිතා කරන්නේ නම්, වෙනත් උපාංග වලට ඔබව හඳුනා ගත නොහැක. (default: ${defaultMulticast})'; +} + +// Path: settingsTab.other +class _TranslationsSettingsTabOtherSi extends TranslationsSettingsTabOtherEn { + _TranslationsSettingsTabOtherSi._(TranslationsSi root) + : this._root = root, + super.internal(root); + + final TranslationsSi _root; // ignore: unused_field + + // Translations + @override + String get title => 'වෙනත්'; + @override + String get support => 'LocalSend සඳහා සහය දක්වන්න'; + @override + String get donate => 'ආධාර කරන්න'; + @override + String get privacyPolicy => 'පුද්ගලික තොරතුරු ප්‍රතිපත්තිය'; + @override + String get termsOfUse => 'භාවිතා කිරීමේ කොන්දේසි'; +} + +// Path: troubleshootPage.firewall +class _TranslationsTroubleshootPageFirewallSi extends TranslationsTroubleshootPageFirewallEn { + _TranslationsTroubleshootPageFirewallSi._(TranslationsSi root) + : this._root = root, + super.internal(root); + + final TranslationsSi _root; // ignore: unused_field + + // Translations + @override + String get symptom => 'මෙම උපාංගය මගින් වෙනත් උපාංගවලට ගොනු යැවිය හැක, නමුත් වෙනත් උපාංගවලින් මෙම උපාංගයට ගොනු යැවිය නොහැක.'; + @override + String solution({required Object port}) => + 'මෙය බොහෝවිට firewall සම්බන්ධ ගැටලුවක් විය හැක. විසඳීමට port ${port} එක සඳහා \'Allow Incoming Connections" (TCP සහ UDP) ලබා දෙන්න.'; + @override + String get openFirewall => 'Firewall විවෘත කරන්න'; +} + +// Path: troubleshootPage.noDiscovery +class _TranslationsTroubleshootPageNoDiscoverySi extends TranslationsTroubleshootPageNoDiscoveryEn { + _TranslationsTroubleshootPageNoDiscoverySi._(TranslationsSi root) + : this._root = root, + super.internal(root); + + final TranslationsSi _root; // ignore: unused_field + + // Translations + @override + String get symptom => 'මෙම උපාංගයට වෙනත් උපාංග සොයාගත නොහැක.'; + @override + String get solution => + 'කරුණාකර සියලුම උපාංග එකම Wi-Fi ජාලයක ඇති බවත්, එකම configuration (port, multicast address, encryption) එකක් ඇති බවත් තහවුරු කරගන්න. ඔබට ඉලක්කගත උපාංගයේ IP ලිපිනය අතින් ටයිප් කිරීමට උත්සාහ කළ හැකිය. මෙය ක්‍රියාත්මක නම්, මෙම උපාංගය ප්‍රියතමයන් අතරට එක් කිරීමට සලකා බලන්න, එවිට අනාගතයේදී එය ස්වයංක්‍රීයව සොයාගත හැක.'; +} + +// Path: troubleshootPage.noConnection +class _TranslationsTroubleshootPageNoConnectionSi extends TranslationsTroubleshootPageNoConnectionEn { + _TranslationsTroubleshootPageNoConnectionSi._(TranslationsSi root) + : this._root = root, + super.internal(root); + + final TranslationsSi _root; // ignore: unused_field + + // Translations + @override + String get symptom => 'දෙපාර්ශ්වයටම එකිනෙකාගේ උපාංග හඳුනාගැනීම හෝ ගොනු බෙදාගැනීම කළ නොහැක.'; + @override + String get solution => + 'ගැටලුව දෙපාර්ශවයේම තිබේ ද? එසේ නම්, දෙපාර්ශවයේම උපාංග එකම Wi-Fi ජාලයක ඇති බවත්, එකම configuration (port, multicast address, encryption) එකක් ඇති බවත් තහවුරු කරගන්න. Access Point (AP) Isolation මඟින් Wi-Fi ජාලය තුළ සහභාගීවන්නන් අතර සන්නිවේදනය වාරණය විය හැක. එවැනි අවස්තාවක, මෙම විකල්පය (AP Isolation) රවුටරයේ අක්‍රීය කළ යුතුය.'; +} + +// Path: receiveHistoryPage.entryActions +class _TranslationsReceiveHistoryPageEntryActionsSi extends TranslationsReceiveHistoryPageEntryActionsEn { + _TranslationsReceiveHistoryPageEntryActionsSi._(TranslationsSi root) + : this._root = root, + super.internal(root); + + final TranslationsSi _root; // ignore: unused_field + + // Translations + @override + String get open => 'ගොනුව විවෘත කරන්න'; + @override + String get showInFolder => 'ෆෝල්ඩරය තුළ පෙන්වන්න'; + @override + String get info => 'තොරතුරු'; + @override + String get deleteFromHistory => 'ඉතිහාසයෙන් මකන්න'; +} + +// Path: progressPage.total +class _TranslationsProgressPageTotalSi extends TranslationsProgressPageTotalEn { + _TranslationsProgressPageTotalSi._(TranslationsSi root) + : this._root = root, + super.internal(root); + + final TranslationsSi _root; // ignore: unused_field + + // Translations + @override + late final _TranslationsProgressPageTotalTitleSi title = _TranslationsProgressPageTotalTitleSi._(_root); + @override + String count({required Object curr, required Object n}) => 'ගොනු: ${curr} / ${n}'; + @override + String size({required Object curr, required Object n}) => 'විශාලත්වය: ${curr} / ${n}'; + @override + String speed({required Object speed}) => 'වේගය: ${speed}/s'; +} + +// Path: dialogs.addFile +class _TranslationsDialogsAddFileSi extends TranslationsDialogsAddFileEn { + _TranslationsDialogsAddFileSi._(TranslationsSi root) + : this._root = root, + super.internal(root); + + final TranslationsSi _root; // ignore: unused_field + + // Translations + @override + String get title => 'තේරීමට ඇඩ් කරන්න'; + @override + String get content => 'ඔබට ඇඩ් කිරීමට අවශ්‍ය මොනවා ද?'; +} + +// Path: dialogs.openFile +class _TranslationsDialogsOpenFileSi extends TranslationsDialogsOpenFileEn { + _TranslationsDialogsOpenFileSi._(TranslationsSi root) + : this._root = root, + super.internal(root); + + final TranslationsSi _root; // ignore: unused_field + + // Translations + @override + String get title => 'ගොනුව විවෘත කරන්න'; + @override + String get content => 'ලබාගත් ගොනුව විවෘත කිරීමට කැමතිද?'; +} + +// Path: dialogs.addressInput +class _TranslationsDialogsAddressInputSi extends TranslationsDialogsAddressInputEn { + _TranslationsDialogsAddressInputSi._(TranslationsSi root) + : this._root = root, + super.internal(root); + + final TranslationsSi _root; // ignore: unused_field + + // Translations + @override + String get title => 'ලිපිනය ඇතුලත් කරන්න'; + @override + String get hashtag => 'හැශ්ටැග්'; + @override + String get ip => 'IP ලිපිනය'; + @override + String get recentlyUsed => 'පෙර භාවිතා කළ: '; +} + +// Path: dialogs.cancelSession +class _TranslationsDialogsCancelSessionSi extends TranslationsDialogsCancelSessionEn { + _TranslationsDialogsCancelSessionSi._(TranslationsSi root) + : this._root = root, + super.internal(root); + + final TranslationsSi _root; // ignore: unused_field + + // Translations + @override + String get title => 'ගොනු මාරු අවලංගු කරන්න'; + @override + String get content => 'ඔබට ඇත්තටම ගොනු හුවමාරුව අවලංගු කිරීමට අවශ්‍යද?'; +} + +// Path: dialogs.cannotOpenFile +class _TranslationsDialogsCannotOpenFileSi extends TranslationsDialogsCannotOpenFileEn { + _TranslationsDialogsCannotOpenFileSi._(TranslationsSi root) + : this._root = root, + super.internal(root); + + final TranslationsSi _root; // ignore: unused_field + + // Translations + @override + String get title => 'ගොනුව විවෘත කළ නොහැක'; + @override + String content({required Object file}) => + '"${file}" විවෘත කිරීමට නොහැකි විය. මෙම ගොනුව වෙනත් තැනකට ගෙන ගොස් (moved) හෝ නැවත නම් කර (renamed) හෝ මකා දමා (deleted) තිබේද?'; +} + +// Path: dialogs.encryptionDisabledNotice +class _TranslationsDialogsEncryptionDisabledNoticeSi extends TranslationsDialogsEncryptionDisabledNoticeEn { + _TranslationsDialogsEncryptionDisabledNoticeSi._(TranslationsSi root) + : this._root = root, + super.internal(root); + + final TranslationsSi _root; // ignore: unused_field + + // Translations + @override + String get title => 'කේතනය අක්‍රිය කර ඇත'; + @override + String get content => 'දැන් සන්නිවේදනය අනාරක්ශිත HTTP protocol හරහා සිදු වේ. HTTPS protocol භාවිතා කිරීමට, කේතනය නැවත සක්‍රීය කරන්න.'; +} + +// Path: dialogs.errorDialog +class _TranslationsDialogsErrorDialogSi extends TranslationsDialogsErrorDialogEn { + _TranslationsDialogsErrorDialogSi._(TranslationsSi root) + : this._root = root, + super.internal(root); + + final TranslationsSi _root; // ignore: unused_field + + // Translations + @override + String get title => _root.general.error; +} + +// Path: dialogs.favoriteDialog +class _TranslationsDialogsFavoriteDialogSi extends TranslationsDialogsFavoriteDialogEn { + _TranslationsDialogsFavoriteDialogSi._(TranslationsSi root) + : this._root = root, + super.internal(root); + + final TranslationsSi _root; // ignore: unused_field + + // Translations + @override + String get title => 'ප්‍රියතම'; + @override + String get noFavorites => 'තවමත් ප්‍රියතම උපාංග නැත.'; + @override + String get addFavorite => 'ඇඩ් කරන්න'; +} + +// Path: dialogs.favoriteDeleteDialog +class _TranslationsDialogsFavoriteDeleteDialogSi extends TranslationsDialogsFavoriteDeleteDialogEn { + _TranslationsDialogsFavoriteDeleteDialogSi._(TranslationsSi root) + : this._root = root, + super.internal(root); + + final TranslationsSi _root; // ignore: unused_field + + // Translations + @override + String get title => 'ප්‍රියතම වලින් මකන්න'; + @override + String content({required Object name}) => 'ඔබට ඇත්තටම "${name}" ප්‍රියතම වෙතින් මැකීමට අවශ්‍යද?'; +} + +// Path: dialogs.favoriteEditDialog +class _TranslationsDialogsFavoriteEditDialogSi extends TranslationsDialogsFavoriteEditDialogEn { + _TranslationsDialogsFavoriteEditDialogSi._(TranslationsSi root) + : this._root = root, + super.internal(root); + + final TranslationsSi _root; // ignore: unused_field + + // Translations + @override + String get titleAdd => 'ප්‍රියතම වෙත එක් කරන්න'; + @override + String get titleEdit => 'සැකසුම්'; + @override + String get name => 'උපාංගයේ නම'; + @override + String get auto => '(ස්වයංක්‍රීය)'; + @override + String get ip => 'IP ලිපිනය'; + @override + String get port => 'Port'; +} + +// Path: dialogs.fileInfo +class _TranslationsDialogsFileInfoSi extends TranslationsDialogsFileInfoEn { + _TranslationsDialogsFileInfoSi._(TranslationsSi root) + : this._root = root, + super.internal(root); + + final TranslationsSi _root; // ignore: unused_field + + // Translations + @override + String get title => 'ගොනු විස්තර'; + @override + String get fileName => 'ගොනු විස්තර:'; + @override + String get path => 'පාත් (Path):'; + @override + String get size => 'ප්‍රමාණය:'; + @override + String get sender => 'යවන්නා:'; + @override + String get time => 'වේලාව:'; +} + +// Path: dialogs.fileNameInput +class _TranslationsDialogsFileNameInputSi extends TranslationsDialogsFileNameInputEn { + _TranslationsDialogsFileNameInputSi._(TranslationsSi root) + : this._root = root, + super.internal(root); + + final TranslationsSi _root; // ignore: unused_field + + // Translations + @override + String get title => 'ගොනුවේ නම ඇතුලත් කරන්න'; + @override + String original({required Object original}) => 'මුල්: ${original}'; +} + +// Path: dialogs.historyClearDialog +class _TranslationsDialogsHistoryClearDialogSi extends TranslationsDialogsHistoryClearDialogEn { + _TranslationsDialogsHistoryClearDialogSi._(TranslationsSi root) + : this._root = root, + super.internal(root); + + final TranslationsSi _root; // ignore: unused_field + + // Translations + @override + String get title => 'ඉතිහාසය ඉවත් කරන්න'; + @override + String get content => 'ඔබට ඇත්තටම ඉතිහාසය සම්පූර්ණයෙන් මකා දැමීමට අවශ්‍යද?'; +} + +// Path: dialogs.localNetworkUnauthorized +class _TranslationsDialogsLocalNetworkUnauthorizedSi extends TranslationsDialogsLocalNetworkUnauthorizedEn { + _TranslationsDialogsLocalNetworkUnauthorizedSi._(TranslationsSi root) + : this._root = root, + super.internal(root); + + final TranslationsSi _root; // ignore: unused_field + + // Translations + @override + String get title => _root.dialogs.noPermission.title; + @override + String get description => + 'ජාලය ස්කෑන් (Scan) කිරීමට අවසරයක් නොමැතිව, LocalSend හට අනෙකුත් උපාංග සොයාගත නොහැක. කාරුණිකව මෙම අවසරය සැකසුම් (Settings) තුළ ලබා දෙන්න.'; + @override + String get gotoSettings => 'සැකසුම්'; +} + +// Path: dialogs.messageInput +class _TranslationsDialogsMessageInputSi extends TranslationsDialogsMessageInputEn { + _TranslationsDialogsMessageInputSi._(TranslationsSi root) + : this._root = root, + super.internal(root); + + final TranslationsSi _root; // ignore: unused_field + + // Translations + @override + String get title => 'පණිවිඩය ටයිප් කරන්න'; + @override + String get multiline => 'බහු පේලි'; +} + +// Path: dialogs.noFiles +class _TranslationsDialogsNoFilesSi extends TranslationsDialogsNoFilesEn { + _TranslationsDialogsNoFilesSi._(TranslationsSi root) + : this._root = root, + super.internal(root); + + final TranslationsSi _root; // ignore: unused_field + + // Translations + @override + String get title => 'කිසිදු ගොනුවක් තෝරා නැත'; + @override + String get content => 'කරුණාකර අවම වශයෙන් එක් ගොනුවක්වත් තෝරන්න.'; +} + +// Path: dialogs.noPermission +class _TranslationsDialogsNoPermissionSi extends TranslationsDialogsNoPermissionEn { + _TranslationsDialogsNoPermissionSi._(TranslationsSi root) + : this._root = root, + super.internal(root); + + final TranslationsSi _root; // ignore: unused_field + + // Translations + @override + String get title => 'අවසර නැත'; + @override + String get content => 'අවශ්‍ය අවසර ලබා නොදී ඇත. මෙම අවසර සැකසුම් (Settings) තුළ ලබා දෙන්න.'; +} + +// Path: dialogs.notAvailableOnPlatform +class _TranslationsDialogsNotAvailableOnPlatformSi extends TranslationsDialogsNotAvailableOnPlatformEn { + _TranslationsDialogsNotAvailableOnPlatformSi._(TranslationsSi root) + : this._root = root, + super.internal(root); + + final TranslationsSi _root; // ignore: unused_field + + // Translations + @override + String get title => 'ලබා ගත නොහැක'; + @override + String get content => 'මෙම විශේෂාංගය ලබා ගත හැක්කේ පහත ක්‍රමවේද තුල පමණි:'; +} + +// Path: dialogs.qr +class _TranslationsDialogsQrSi extends TranslationsDialogsQrEn { + _TranslationsDialogsQrSi._(TranslationsSi root) + : this._root = root, + super.internal(root); + + final TranslationsSi _root; // ignore: unused_field + + // Translations + @override + String get title => 'QR කේතය'; +} + +// Path: dialogs.quickActions +class _TranslationsDialogsQuickActionsSi extends TranslationsDialogsQuickActionsEn { + _TranslationsDialogsQuickActionsSi._(TranslationsSi root) + : this._root = root, + super.internal(root); + + final TranslationsSi _root; // ignore: unused_field + + // Translations + @override + String get title => 'Quick යෙදුම්'; + @override + String get counter => 'කවුන්ටරය'; + @override + String get prefix => 'Prefix'; + @override + String get padZero => 'Pad with zeros'; + @override + String get sortBeforeCount => 'අකාරාදී පිළිවෙලට සකසන්න (A-Z)'; + @override + String get random => 'අහඹු'; +} + +// Path: dialogs.quickSaveNotice +class _TranslationsDialogsQuickSaveNoticeSi extends TranslationsDialogsQuickSaveNoticeEn { + _TranslationsDialogsQuickSaveNoticeSi._(TranslationsSi root) + : this._root = root, + super.internal(root); + + final TranslationsSi _root; // ignore: unused_field + + // Translations + @override + String get title => _root.general.quickSave; + @override + String get content => 'ගොනු ඉල්ලීම් දැන් ස්වයංක්‍රීයව පිළිගනු ලැබේ. ජාලයේ සිටින සෑම කෙනෙකුටම ඔබට ගොනු එවිය හැකි බව මතක තබා ගන්න.'; +} + +// Path: dialogs.quickSaveFromFavoritesNotice +class _TranslationsDialogsQuickSaveFromFavoritesNoticeSi extends TranslationsDialogsQuickSaveFromFavoritesNoticeEn { + _TranslationsDialogsQuickSaveFromFavoritesNoticeSi._(TranslationsSi root) + : this._root = root, + super.internal(root); + + final TranslationsSi _root; // ignore: unused_field + + // Translations + @override + String get title => _root.general.quickSaveFromFavorites; + @override + List get content => [ + 'ඔබගේ ප්‍රියතම ලැයිස්තුවේ ඇති උපාංගවලින් ලැබෙන ගොනු ඉල්ලීම් දැන් ස්වයංක්‍රීයව පිළිගනු ලැබේ.', + 'අවවාදයයි! දැනට, මෙය සම්පූර්ණයෙන්ම ආරක්ෂිත නැත, ඔබේ ප්‍රියතම ලැයිස්තුවේ ඇති ඕනෑම උපාංගයක ඇඟිලි සලකුණක් සහිත හැකර්වරයෙකුට (Hacker) කිසිඳු සීමාවකින් තොරව ඔබ වෙත ගොනු එවිය හැක.', + 'කෙසේ වෙතත්, මෙම විකල්පය ජාලයේ සියලුම පරිශීලකයින්ට කිසිඳු සීමාවකින් තොරව ගොනු එවීමට ඉඩ දීමට වඩා ආරක්ෂිත වේ.', + ]; +} + +// Path: dialogs.pin +class _TranslationsDialogsPinSi extends TranslationsDialogsPinEn { + _TranslationsDialogsPinSi._(TranslationsSi root) + : this._root = root, + super.internal(root); + + final TranslationsSi _root; // ignore: unused_field + + // Translations + @override + String get title => 'PIN ඇතුල් කරන්න'; +} + +// Path: dialogs.sendModeHelp +class _TranslationsDialogsSendModeHelpSi extends TranslationsDialogsSendModeHelpEn { + _TranslationsDialogsSendModeHelpSi._(TranslationsSi root) + : this._root = root, + super.internal(root); + + final TranslationsSi _root; // ignore: unused_field + + // Translations + @override + String get title => 'යැවීමේ ක්‍රම'; + @override + String get single => 'එක් ලබන්නෙකුට පමණක් ගොනු යැවීම කරයි. ගොනු හුවමාරු කිරීමෙන් පසුව, තේරීම මකා දමනු ලැබේ.'; + @override + String get multiple => 'ලබන්නන් කිහිපදෙනෙකු වෙත ගොනු යැවීම කරයි. ගොනු හුවමාරු කිරීමෙන් පසුව ද තේරීම මකා දමන්නේ නැත.'; + @override + String get link => + 'ලබන්නන් LocalSend ස්ථාපනය කර නොමැති නම්, ඔව්න්ගේ බ්‍රවුසර් (Browser) තුළ අදාල ලින්ක් (Link) එක විවෘත කර, ගොනු බාගත (Download) කළ හැක.'; +} + +// Path: dialogs.zoom +class _TranslationsDialogsZoomSi extends TranslationsDialogsZoomEn { + _TranslationsDialogsZoomSi._(TranslationsSi root) + : this._root = root, + super.internal(root); + + final TranslationsSi _root; // ignore: unused_field + + // Translations + @override + String get title => 'URL'; +} + +// Path: settingsTab.general.brightnessOptions +class _TranslationsSettingsTabGeneralBrightnessOptionsSi extends TranslationsSettingsTabGeneralBrightnessOptionsEn { + _TranslationsSettingsTabGeneralBrightnessOptionsSi._(TranslationsSi root) + : this._root = root, + super.internal(root); + + final TranslationsSi _root; // ignore: unused_field + + // Translations + @override + String get system => 'පද්ධතිය'; + @override + String get dark => 'අඳුරු'; + @override + String get light => 'එළිය'; +} + +// Path: settingsTab.general.colorOptions +class _TranslationsSettingsTabGeneralColorOptionsSi extends TranslationsSettingsTabGeneralColorOptionsEn { + _TranslationsSettingsTabGeneralColorOptionsSi._(TranslationsSi root) + : this._root = root, + super.internal(root); + + final TranslationsSi _root; // ignore: unused_field + + // Translations + @override + String get system => 'පද්ධතිය'; + @override + String get oled => 'OLED'; +} + +// Path: settingsTab.general.languageOptions +class _TranslationsSettingsTabGeneralLanguageOptionsSi extends TranslationsSettingsTabGeneralLanguageOptionsEn { + _TranslationsSettingsTabGeneralLanguageOptionsSi._(TranslationsSi root) + : this._root = root, + super.internal(root); + + final TranslationsSi _root; // ignore: unused_field + + // Translations + @override + String get system => 'පද්ධතිය'; +} + +// Path: progressPage.total.title +class _TranslationsProgressPageTotalTitleSi extends TranslationsProgressPageTotalTitleEn { + _TranslationsProgressPageTotalTitleSi._(TranslationsSi root) + : this._root = root, + super.internal(root); + + final TranslationsSi _root; // ignore: unused_field + + // Translations + @override + String sending({required Object time}) => 'සම්පූර්ණ ප්‍රගතිය (${time})'; + @override + String get finishedError => 'දෝෂයක් සමඟ අවසන් විය'; + @override + String get canceledSender => 'යවන්නා විසින් අවලංගු කරන ලදී'; + @override + String get canceledReceiver => 'ලැබුම්කරු විසින් අවලංගු කරන ලදී'; +} diff --git a/app/lib/gen/strings_sv.g.dart b/app/lib/gen/strings_sv.g.dart index 3f985e07..37be7aed 100644 --- a/app/lib/gen/strings_sv.g.dart +++ b/app/lib/gen/strings_sv.g.dart @@ -63,12 +63,16 @@ class TranslationsSv extends Translations { @override late final _TranslationsAboutPageSv aboutPage = _TranslationsAboutPageSv._(_root); @override + late final _TranslationsDonationPageSv donationPage = _TranslationsDonationPageSv._(_root); + @override late final _TranslationsChangelogPageSv changelogPage = _TranslationsChangelogPageSv._(_root); @override late final _TranslationsAliasGeneratorSv aliasGenerator = _TranslationsAliasGeneratorSv._(_root); @override late final _TranslationsDialogsSv dialogs = _TranslationsDialogsSv._(_root); @override + late final _TranslationsSanitizationSv sanitization = _TranslationsSanitizationSv._(_root); + @override late final _TranslationsTraySv tray = _TranslationsTraySv._(_root); @override late final _TranslationsWebSv web = _TranslationsWebSv._(_root); @@ -110,6 +114,8 @@ class _TranslationsGeneralSv extends TranslationsGeneralEn { @override String get done => 'Klar'; @override + String get delete => 'Ta bort'; + @override String get edit => 'Redigera'; @override String get error => 'Fel'; @@ -136,6 +142,8 @@ class _TranslationsGeneralSv extends TranslationsGeneralEn { @override String get quickSave => 'Snabbspara'; @override + String get quickSaveFromFavorites => 'Snabbspara för "Favoriter"'; + @override String get renamed => 'Bytt namn'; @override String get reset => 'Återställ'; @@ -148,13 +156,15 @@ class _TranslationsGeneralSv extends TranslationsGeneralEn { @override String get start => 'Börja'; @override - String get stop => 'Avsluta'; + String get stop => 'Stopp'; @override String get save => 'Spara'; @override String get unchanged => 'Oförändrad'; @override String get unknown => 'Okänd'; + @override + String get noItemInClipboard => 'Inga objekt i urklipp.'; } // Path: receiveTab @@ -170,6 +180,8 @@ class _TranslationsReceiveTabSv extends TranslationsReceiveTabEn { String get title => 'Ta emot'; @override late final _TranslationsReceiveTabInfoBoxSv infoBox = _TranslationsReceiveTabInfoBoxSv._(_root); + @override + late final _TranslationsReceiveTabQuickSaveSv quickSave = _TranslationsReceiveTabQuickSaveSv._(_root); } // Path: sendTab @@ -196,6 +208,8 @@ class _TranslationsSendTabSv extends TranslationsSendTabEn { @override String get scan => 'Leta efter enheter'; @override + String get manualSending => 'Manuell sändning'; + @override String get sendMode => 'Sändningsläge'; @override late final _TranslationsSendTabSendModesSv sendModes = _TranslationsSendTabSendModesSv._(_root); @@ -204,7 +218,7 @@ class _TranslationsSendTabSv extends TranslationsSendTabEn { @override String get help => 'Kontrollera att den sökta enheten är uppkopplad till samma wifi nätverk som din enhet.'; @override - String get placeItems => 'Placera objekt att dela'; + String get placeItems => 'Placera objekt att dela.'; } // Path: settingsTab @@ -223,8 +237,12 @@ class _TranslationsSettingsTabSv extends TranslationsSettingsTabEn { @override late final _TranslationsSettingsTabReceiveSv receive = _TranslationsSettingsTabReceiveSv._(_root); @override + late final _TranslationsSettingsTabSendSv send = _TranslationsSettingsTabSendSv._(_root); + @override late final _TranslationsSettingsTabNetworkSv network = _TranslationsSettingsTabNetworkSv._(_root); @override + late final _TranslationsSettingsTabOtherSv other = _TranslationsSettingsTabOtherSv._(_root); + @override String get advancedSettings => 'Avancerade inställningar'; } @@ -248,6 +266,8 @@ class _TranslationsTroubleshootPageSv extends TranslationsTroubleshootPageEn { @override late final _TranslationsTroubleshootPageFirewallSv firewall = _TranslationsTroubleshootPageFirewallSv._(_root); @override + late final _TranslationsTroubleshootPageNoDiscoverySv noDiscovery = _TranslationsTroubleshootPageNoDiscoverySv._(_root); + @override late final _TranslationsTroubleshootPageNoConnectionSv noConnection = _TranslationsTroubleshootPageNoConnectionSv._(_root); } @@ -358,10 +378,12 @@ class _TranslationsSendPageSv extends TranslationsSendPageEn { // Translations @override - String get waiting => 'Väntar på svar...'; + String get waiting => 'Väntar på svar…'; @override String get rejected => 'Mottagaren har avvisat begäran.'; @override + String get tooManyAttempts => _root.web.tooManyAttempts; + @override String get busy => 'Mottagaren är upptagen med en annan förfrågan.'; } @@ -396,9 +418,9 @@ class _TranslationsWebSharePageSv extends TranslationsWebSharePageEn { @override String get title => 'Dela via länk'; @override - String get loading => 'Startar server...'; + String get loading => 'Startar server…'; @override - String get stopping => 'Stoppar servern...'; + String get stopping => 'Stoppar servern…'; @override String get error => 'Ett fel inträffade vid start av servern.'; @override @@ -414,6 +436,12 @@ class _TranslationsWebSharePageSv extends TranslationsWebSharePageEn { @override String get encryption => _root.settingsTab.network.encryption; @override + String get autoAccept => 'Acceptera förfrågningar automatiskt'; + @override + String get requirePin => 'Kräv PIN-kod'; + @override + String pinHint({required Object pin}) => 'PIN-koden är "${pin}"'; + @override String get encryptionHint => 'LocalSend använder ett självsignerat certifikat. Du behöver acceptera det i webbläsaren.'; @override String pendingRequests({required Object n}) => 'Väntande förfrågningar: ${n}'; @@ -430,6 +458,41 @@ class _TranslationsAboutPageSv extends TranslationsAboutPageEn { // Translations @override String get title => 'Om LocalSend'; + @override + List get description => [ + 'LocalSend är fri programvara med öppen källkod som låter dig säkert dela filer och meddelanden med enheter i närheten över ditt lokala nätverk utan att behöva en internetanslutning.', + 'Denna app är tillgänglig på Android, iOS, macOS, Windows och Linux. Du kan hitta alla nedladdningsalternativ på den officiella hemsidan.', + ]; + @override + String get author => 'Upphovsman'; + @override + String get contributors => 'Bidragsgivare'; + @override + String get packagers => 'Förpackare'; + @override + String get translators => 'Översättare'; +} + +// Path: donationPage +class _TranslationsDonationPageSv extends TranslationsDonationPageEn { + _TranslationsDonationPageSv._(TranslationsSv root) + : this._root = root, + super.internal(root); + + final TranslationsSv _root; // ignore: unused_field + + // Translations + @override + String get title => 'Donera'; + @override + String get info => + 'LocalSend är fri programvara med öppen källkod och utan några annonser. Om du gillar appen kan du stödja utvecklingen med en donation.'; + @override + String donate({required Object amount}) => 'Donera ${amount}'; + @override + String get thanks => 'Tack så mycket!'; + @override + String get restore => 'Återställ köp'; } // Path: changelogPage @@ -542,6 +605,8 @@ class _TranslationsDialogsSv extends TranslationsDialogsEn { @override late final _TranslationsDialogsAddFileSv addFile = _TranslationsDialogsAddFileSv._(_root); @override + late final _TranslationsDialogsOpenFileSv openFile = _TranslationsDialogsOpenFileSv._(_root); + @override late final _TranslationsDialogsAddressInputSv addressInput = _TranslationsDialogsAddressInputSv._(_root); @override late final _TranslationsDialogsCancelSessionSv cancelSession = _TranslationsDialogsCancelSessionSv._(_root); @@ -552,10 +617,18 @@ class _TranslationsDialogsSv extends TranslationsDialogsEn { @override late final _TranslationsDialogsErrorDialogSv errorDialog = _TranslationsDialogsErrorDialogSv._(_root); @override + late final _TranslationsDialogsFavoriteDialogSv favoriteDialog = _TranslationsDialogsFavoriteDialogSv._(_root); + @override + late final _TranslationsDialogsFavoriteDeleteDialogSv favoriteDeleteDialog = _TranslationsDialogsFavoriteDeleteDialogSv._(_root); + @override + late final _TranslationsDialogsFavoriteEditDialogSv favoriteEditDialog = _TranslationsDialogsFavoriteEditDialogSv._(_root); + @override late final _TranslationsDialogsFileInfoSv fileInfo = _TranslationsDialogsFileInfoSv._(_root); @override late final _TranslationsDialogsFileNameInputSv fileNameInput = _TranslationsDialogsFileNameInputSv._(_root); @override + late final _TranslationsDialogsHistoryClearDialogSv historyClearDialog = _TranslationsDialogsHistoryClearDialogSv._(_root); + @override late final _TranslationsDialogsLocalNetworkUnauthorizedSv localNetworkUnauthorized = _TranslationsDialogsLocalNetworkUnauthorizedSv._(_root); @override late final _TranslationsDialogsMessageInputSv messageInput = _TranslationsDialogsMessageInputSv._(_root); @@ -572,7 +645,29 @@ class _TranslationsDialogsSv extends TranslationsDialogsEn { @override late final _TranslationsDialogsQuickSaveNoticeSv quickSaveNotice = _TranslationsDialogsQuickSaveNoticeSv._(_root); @override + late final _TranslationsDialogsQuickSaveFromFavoritesNoticeSv quickSaveFromFavoritesNotice = + _TranslationsDialogsQuickSaveFromFavoritesNoticeSv._(_root); + @override + late final _TranslationsDialogsPinSv pin = _TranslationsDialogsPinSv._(_root); + @override late final _TranslationsDialogsSendModeHelpSv sendModeHelp = _TranslationsDialogsSendModeHelpSv._(_root); + @override + late final _TranslationsDialogsZoomSv zoom = _TranslationsDialogsZoomSv._(_root); +} + +// Path: sanitization +class _TranslationsSanitizationSv extends TranslationsSanitizationEn { + _TranslationsSanitizationSv._(TranslationsSv root) + : this._root = root, + super.internal(root); + + final TranslationsSv _root; // ignore: unused_field + + // Translations + @override + String get empty => 'Filnamnet får inte vara tomt'; + @override + String get invalid => 'Filnamnet innehåller ogiltiga tecken'; } // Path: tray @@ -588,6 +683,8 @@ class _TranslationsTraySv extends TranslationsTrayEn { String get open => _root.general.open; @override String get close => 'Avsluta LocalSend'; + @override + String get closeWindows => 'Avsluta'; } // Path: web @@ -602,6 +699,12 @@ class _TranslationsWebSv extends TranslationsWebEn { @override String get waiting => _root.sendPage.waiting; @override + String get enterPin => 'Ange PIN-kod'; + @override + String get invalidPin => 'Ogiltig PIN-kod'; + @override + String get tooManyAttempts => 'För många försök'; + @override String get rejected => 'Avvisad'; @override String get files => 'Filer'; @@ -696,6 +799,23 @@ class _TranslationsReceiveTabInfoBoxSv extends TranslationsReceiveTabInfoBoxEn { String get alias => 'Alias:'; } +// Path: receiveTab.quickSave +class _TranslationsReceiveTabQuickSaveSv extends TranslationsReceiveTabQuickSaveEn { + _TranslationsReceiveTabQuickSaveSv._(TranslationsSv root) + : this._root = root, + super.internal(root); + + final TranslationsSv _root; // ignore: unused_field + + // Translations + @override + String get off => _root.general.off; + @override + String get favorites => 'Favoriter'; + @override + String get on => _root.general.on; +} + // Path: sendTab.selection class _TranslationsSendTabSelectionSv extends TranslationsSendTabSelectionEn { _TranslationsSendTabSelectionSv._(TranslationsSv root) @@ -732,6 +852,8 @@ class _TranslationsSendTabPickerSv extends TranslationsSendTabPickerEn { String get text => 'Text'; @override String get app => 'App'; + @override + String get clipboard => 'Klistra in'; } // Path: sendTab.sendModes @@ -777,12 +899,16 @@ class _TranslationsSettingsTabGeneralSv extends TranslationsSettingsTabGeneralEn @override String get saveWindowPlacement => 'Avsluta: Spara fönsterplacering'; @override + String get saveWindowPlacementWindows => 'Spara fönsterposition efter avslut'; + @override String get minimizeToTray => 'Lämna: minimera till tray'; @override String get launchAtStartup => 'Starta automatiskt efter inloggning'; @override String get launchMinimized => 'Starta automatiskt: starta gömd'; @override + String get showInContextMenu => 'Visa LocalSend i snabbmenyn'; + @override String get animations => 'Animationer'; } @@ -800,6 +926,12 @@ class _TranslationsSettingsTabReceiveSv extends TranslationsSettingsTabReceiveEn @override String get quickSave => _root.general.quickSave; @override + String get quickSaveFromFavorites => _root.general.quickSaveFromFavorites; + @override + String get requirePin => _root.webSharePage.requirePin; + @override + String get autoFinish => 'Automatisk avslutning'; + @override String get destination => 'Destination'; @override String get downloads => '(Hämtade)'; @@ -809,6 +941,21 @@ class _TranslationsSettingsTabReceiveSv extends TranslationsSettingsTabReceiveEn String get saveToHistory => 'Spara till historik'; } +// Path: settingsTab.send +class _TranslationsSettingsTabSendSv extends TranslationsSettingsTabSendEn { + _TranslationsSettingsTabSendSv._(TranslationsSv root) + : this._root = root, + super.internal(root); + + final TranslationsSv _root; // ignore: unused_field + + // Translations + @override + String get title => 'Skicka'; + @override + String get shareViaLinkAutoAccept => 'Acceptera förfrågningar automatiskt i läget "Dela via länk"'; +} + // Path: settingsTab.network class _TranslationsSettingsTabNetworkSv extends TranslationsSettingsTabNetworkEn { _TranslationsSettingsTabNetworkSv._(TranslationsSv root) @@ -833,6 +980,12 @@ class _TranslationsSettingsTabNetworkSv extends TranslationsSettingsTabNetworkEn @override String get port => 'Port'; @override + String get discoveryTimeout => 'Tidsgräns för upptäckt'; + @override + String get useSystemName => 'Använd systemnamn'; + @override + String get generateRandomAlias => 'Generera slumpmässigt alias'; + @override String portWarning({required Object defaultPort}) => 'Du kanske inte upptäcks av andra enheter eftersom du använder en anpassad port. (standard: ${defaultPort})'; @override @@ -844,6 +997,27 @@ class _TranslationsSettingsTabNetworkSv extends TranslationsSettingsTabNetworkEn 'Du kanske inte upptäcks av andra enheter eftersom du använder en anpassad multicast-adress. (standard: ${defaultMulticast})'; } +// Path: settingsTab.other +class _TranslationsSettingsTabOtherSv extends TranslationsSettingsTabOtherEn { + _TranslationsSettingsTabOtherSv._(TranslationsSv root) + : this._root = root, + super.internal(root); + + final TranslationsSv _root; // ignore: unused_field + + // Translations + @override + String get title => 'Annat'; + @override + String get support => 'Stöd LocalSend'; + @override + String get donate => 'Donera'; + @override + String get privacyPolicy => 'Sekretesspolicy'; + @override + String get termsOfUse => 'Användarvillkor'; +} + // Path: troubleshootPage.firewall class _TranslationsTroubleshootPageFirewallSv extends TranslationsTroubleshootPageFirewallEn { _TranslationsTroubleshootPageFirewallSv._(TranslationsSv root) @@ -862,6 +1036,22 @@ class _TranslationsTroubleshootPageFirewallSv extends TranslationsTroubleshootPa String get openFirewall => 'Öppna brandväggen'; } +// Path: troubleshootPage.noDiscovery +class _TranslationsTroubleshootPageNoDiscoverySv extends TranslationsTroubleshootPageNoDiscoveryEn { + _TranslationsTroubleshootPageNoDiscoverySv._(TranslationsSv root) + : this._root = root, + super.internal(root); + + final TranslationsSv _root; // ignore: unused_field + + // Translations + @override + String get symptom => 'Denna enhet kan inte upptäcka andra enheter.'; + @override + String get solution => + 'Se till att alla enheter är på samma Wi-Fi-nätverk och delar samma konfiguration (port, multicast-adress, kryptering). Du kan försöka skriva in IP-adressen för målenheten manuellt. Om detta fungerar, överväg att lägga till den här enheten till favoriterna så att den kan upptäckas automatiskt i framtiden.'; +} + // Path: troubleshootPage.noConnection class _TranslationsTroubleshootPageNoConnectionSv extends TranslationsTroubleshootPageNoConnectionEn { _TranslationsTroubleshootPageNoConnectionSv._(TranslationsSv root) @@ -890,6 +1080,8 @@ class _TranslationsReceiveHistoryPageEntryActionsSv extends TranslationsReceiveH @override String get open => 'Öppna fil'; @override + String get showInFolder => 'Visa i mapp'; + @override String get info => 'Information'; @override String get deleteFromHistory => 'Ta bort från historik'; @@ -929,6 +1121,21 @@ class _TranslationsDialogsAddFileSv extends TranslationsDialogsAddFileEn { String get content => 'Vad vill du lägga till?'; } +// Path: dialogs.openFile +class _TranslationsDialogsOpenFileSv extends TranslationsDialogsOpenFileEn { + _TranslationsDialogsOpenFileSv._(TranslationsSv root) + : this._root = root, + super.internal(root); + + final TranslationsSv _root; // ignore: unused_field + + // Translations + @override + String get title => 'Öppna fil'; + @override + String get content => 'Vill du öppna den mottagna filen?'; +} + // Path: dialogs.addressInput class _TranslationsDialogsAddressInputSv extends TranslationsDialogsAddressInputEn { _TranslationsDialogsAddressInputSv._(TranslationsSv root) @@ -1006,6 +1213,61 @@ class _TranslationsDialogsErrorDialogSv extends TranslationsDialogsErrorDialogEn String get title => _root.general.error; } +// Path: dialogs.favoriteDialog +class _TranslationsDialogsFavoriteDialogSv extends TranslationsDialogsFavoriteDialogEn { + _TranslationsDialogsFavoriteDialogSv._(TranslationsSv root) + : this._root = root, + super.internal(root); + + final TranslationsSv _root; // ignore: unused_field + + // Translations + @override + String get title => 'Favoriter'; + @override + String get noFavorites => 'Inga favoritenheter än.'; + @override + String get addFavorite => 'Lägg till'; +} + +// Path: dialogs.favoriteDeleteDialog +class _TranslationsDialogsFavoriteDeleteDialogSv extends TranslationsDialogsFavoriteDeleteDialogEn { + _TranslationsDialogsFavoriteDeleteDialogSv._(TranslationsSv root) + : this._root = root, + super.internal(root); + + final TranslationsSv _root; // ignore: unused_field + + // Translations + @override + String get title => 'Ta bort från favoriter'; + @override + String content({required Object name}) => 'Vill du verkligen ta bort från favoriterna "${name}"?'; +} + +// Path: dialogs.favoriteEditDialog +class _TranslationsDialogsFavoriteEditDialogSv extends TranslationsDialogsFavoriteEditDialogEn { + _TranslationsDialogsFavoriteEditDialogSv._(TranslationsSv root) + : this._root = root, + super.internal(root); + + final TranslationsSv _root; // ignore: unused_field + + // Translations + @override + String get titleAdd => 'Lägg till i favoriter'; + @override + String get titleEdit => 'Inställningar'; + @override + String get name => 'Enhetens namn'; + @override + String get auto => '(auto)'; + @override + String get ip => 'IP-adress'; + @override + String get port => 'Port'; +} + // Path: dialogs.fileInfo class _TranslationsDialogsFileInfoSv extends TranslationsDialogsFileInfoEn { _TranslationsDialogsFileInfoSv._(TranslationsSv root) @@ -1044,6 +1306,21 @@ class _TranslationsDialogsFileNameInputSv extends TranslationsDialogsFileNameInp String original({required Object original}) => 'Orginal: ${original}'; } +// Path: dialogs.historyClearDialog +class _TranslationsDialogsHistoryClearDialogSv extends TranslationsDialogsHistoryClearDialogEn { + _TranslationsDialogsHistoryClearDialogSv._(TranslationsSv root) + : this._root = root, + super.internal(root); + + final TranslationsSv _root; // ignore: unused_field + + // Translations + @override + String get title => 'Rensa historik'; + @override + String get content => 'Vill du verkligen ta bort hela historiken?'; +} + // Path: dialogs.localNetworkUnauthorized class _TranslationsDialogsLocalNetworkUnauthorizedSv extends TranslationsDialogsLocalNetworkUnauthorizedEn { _TranslationsDialogsLocalNetworkUnauthorizedSv._(TranslationsSv root) @@ -1151,7 +1428,7 @@ class _TranslationsDialogsQuickActionsSv extends TranslationsDialogsQuickActions @override String get prefix => 'Prefix'; @override - String get padZero => 'Stoppa med nollor'; + String get padZero => 'Block med nollor'; @override String get sortBeforeCount => 'Sortera alphabetiskt innan'; @override @@ -1173,6 +1450,38 @@ class _TranslationsDialogsQuickSaveNoticeSv extends TranslationsDialogsQuickSave String get content => 'Filförfrågningar accepteras automatiskt. Observera att alla i lokala nätverket kan skicka filer till dig.'; } +// Path: dialogs.quickSaveFromFavoritesNotice +class _TranslationsDialogsQuickSaveFromFavoritesNoticeSv extends TranslationsDialogsQuickSaveFromFavoritesNoticeEn { + _TranslationsDialogsQuickSaveFromFavoritesNoticeSv._(TranslationsSv root) + : this._root = root, + super.internal(root); + + final TranslationsSv _root; // ignore: unused_field + + // Translations + @override + String get title => _root.general.quickSaveFromFavorites; + @override + List get content => [ + 'Filförfrågningar accepteras nu automatiskt från enheter i din favoritlista.', + 'Varning! För närvarande är detta inte helt säkert, eftersom en hacker som har fingeravtrycket från vilken enhet som helst från din favoritlista kan skicka filer till dig utan begränsningar.', + 'Detta alternativ är dock fortfarande säkrare än att låta alla användare på det lokala nätverket skicka filer till dig utan begränsningar.', + ]; +} + +// Path: dialogs.pin +class _TranslationsDialogsPinSv extends TranslationsDialogsPinEn { + _TranslationsDialogsPinSv._(TranslationsSv root) + : this._root = root, + super.internal(root); + + final TranslationsSv _root; // ignore: unused_field + + // Translations + @override + String get title => 'Ange PIN-kod'; +} + // Path: dialogs.sendModeHelp class _TranslationsDialogsSendModeHelpSv extends TranslationsDialogsSendModeHelpEn { _TranslationsDialogsSendModeHelpSv._(TranslationsSv root) @@ -1192,6 +1501,19 @@ class _TranslationsDialogsSendModeHelpSv extends TranslationsDialogsSendModeHelp String get link => 'Mottagare som inte har LocalSend installerat kan ladda ner de valda filerna genom att öppna länken i deras webbläsare.'; } +// Path: dialogs.zoom +class _TranslationsDialogsZoomSv extends TranslationsDialogsZoomEn { + _TranslationsDialogsZoomSv._(TranslationsSv root) + : this._root = root, + super.internal(root); + + final TranslationsSv _root; // ignore: unused_field + + // Translations + @override + String get title => 'URL'; +} + // Path: settingsTab.general.brightnessOptions class _TranslationsSettingsTabGeneralBrightnessOptionsSv extends TranslationsSettingsTabGeneralBrightnessOptionsEn { _TranslationsSettingsTabGeneralBrightnessOptionsSv._(TranslationsSv root) @@ -1220,6 +1542,8 @@ class _TranslationsSettingsTabGeneralColorOptionsSv extends TranslationsSettings // Translations @override String get system => 'System'; + @override + String get oled => 'OLED'; } // Path: settingsTab.general.languageOptions @@ -1245,7 +1569,7 @@ class _TranslationsProgressPageTotalTitleSv extends TranslationsProgressPageTota // Translations @override - String sending({required Object time}) => 'Total (${time})'; + String sending({required Object time}) => 'Totalt förlopp (${time})'; @override String get finishedError => 'Avslutad med fel'; @override diff --git a/app/lib/gen/strings_tr.g.dart b/app/lib/gen/strings_tr.g.dart index f7a08553..e682b321 100644 --- a/app/lib/gen/strings_tr.g.dart +++ b/app/lib/gen/strings_tr.g.dart @@ -142,6 +142,8 @@ class _TranslationsGeneralTr extends TranslationsGeneralEn { @override String get quickSave => 'Hızlı kaydetme'; @override + String get quickSaveFromFavorites => 'Favoriler'; + @override String get renamed => 'Yeniden adlandırıldı'; @override String get reset => 'Sıfırla'; @@ -162,7 +164,7 @@ class _TranslationsGeneralTr extends TranslationsGeneralEn { @override String get unknown => 'Bilinmiyor'; @override - String get noItemInClipboard => 'Panoda öğe yok'; + String get noItemInClipboard => 'Panoda öğe yok.'; } // Path: receiveTab @@ -374,7 +376,7 @@ class _TranslationsSendPageTr extends TranslationsSendPageEn { // Translations @override - String get waiting => 'Alıcıdan cevap bekleniyor...'; + String get waiting => 'Alıcıdan cevap bekleniyor…'; @override String get rejected => 'Alıcı isteği reddetti.'; @override @@ -414,9 +416,9 @@ class _TranslationsWebSharePageTr extends TranslationsWebSharePageEn { @override String get title => 'Link üzerinden paylaşın'; @override - String get loading => 'Sunucu başlıyor...'; + String get loading => 'Sunucu başlıyor…'; @override - String get stopping => 'Sunucu durduruluyor ...'; + String get stopping => 'Sunucu durduruluyor…'; @override String get error => 'Sunucuyu başlatırken bir hata oluştu.'; @override @@ -959,7 +961,7 @@ class _TranslationsTroubleshootPageNoConnectionTr extends TranslationsTroublesho String get symptom => 'Her iki cihaz da birbirini keşfedemez ve dosya paylaşamazlar.'; @override String get solution => - 'Sorun her iki tarafta da var mı? O zaman her iki cihazın da aynı WiFi ağında olduğundan ve aynı yapılandırmayı (bağlantı noktası, çoklu yayın adresi, şifreleme) paylaştığından emin olmanız gerekir. WiFi, katılımcılar arasında iletişime izin vermeyebilir. Bu durumda, bu seçenek yönlendiricide etkinleştirilmelidir. '; + 'Sorun her iki tarafta da var mı? O zaman her iki cihazın da aynı WiFi ağında olduğundan ve aynı yapılandırmayı (bağlantı noktası, çoklu yayın adresi, şifreleme) paylaştığından emin olmanız gerekir. WiFi, katılımcılar arasında iletişime izin vermeyebilir. Bu durumda, bu seçenek yönlendiricide etkinleştirilmelidir.'; } // Path: receiveHistoryPage.entryActions diff --git a/app/lib/gen/strings_zh_CN.g.dart b/app/lib/gen/strings_zh_CN.g.dart index 8656ec50..a29a8720 100644 --- a/app/lib/gen/strings_zh_CN.g.dart +++ b/app/lib/gen/strings_zh_CN.g.dart @@ -218,7 +218,7 @@ class _TranslationsSendTabZhCn extends TranslationsSendTabEn { @override String get help => '请确保目标连接的是同一个 Wi‑Fi 网络'; @override - String get placeItems => '列出要分享的文件'; + String get placeItems => '列出要分享的项目'; } // Path: settingsTab @@ -336,8 +336,8 @@ class _TranslationsReceivePageZhCn extends TranslationsReceivePageEn { @override String subTitle({required num n}) => (_root.$meta.cardinalResolver ?? PluralResolvers.cardinal('zh'))( n, - one: '想要发送给你一个文件。', - other: '想要发送给你 ${n} 个文件。', + one: '想要发送给你一个文件', + other: '想要发送给你 ${n} 个文件', ); @override String get subTitleMessage => '发送给你了一条消息:'; @@ -662,9 +662,9 @@ class _TranslationsSanitizationZhCn extends TranslationsSanitizationEn { // Translations @override - String get empty => '文件名不能为空。'; + String get empty => '文件名不能为空'; @override - String get invalid => '文件名包含无效字符。'; + String get invalid => '文件名包含无效字符'; } // Path: tray @@ -700,7 +700,7 @@ class _TranslationsWebZhCn extends TranslationsWebEn { @override String get invalidPin => 'PIN 无效'; @override - String get tooManyAttempts => '尝试次数过多,请稍后再试。'; + String get tooManyAttempts => '尝试次数过多'; @override String get rejected => '已拒绝'; @override @@ -1143,7 +1143,7 @@ class _TranslationsDialogsAddressInputZhCn extends TranslationsDialogsAddressInp @override String get ip => 'IP 地址'; @override - String get recentlyUsed => '最近使用:'; + String get recentlyUsed => '最近使用: '; } // Path: dialogs.cancelSession