Merge branch 'main' into advance_image_editor
This commit is contained in:
@@ -44,8 +44,7 @@ jobs:
|
||||
# If triggered by a tag, checkout photosd-$tag from the source
|
||||
# repository. Otherwise checkout $source (default: "main").
|
||||
repository: ente-io/ente
|
||||
ref:
|
||||
"${{ startsWith(github.ref, 'refs/tags/v') &&
|
||||
ref: "${{ startsWith(github.ref, 'refs/tags/v') &&
|
||||
format('photosd-{0}', github.ref_name) || ( inputs.source
|
||||
|| 'main' ) }}"
|
||||
|
||||
@@ -110,8 +109,7 @@ jobs:
|
||||
env:
|
||||
# macOS notarization credentials key details
|
||||
APPLE_ID: ${{ secrets.APPLE_ID }}
|
||||
APPLE_APP_SPECIFIC_PASSWORD:
|
||||
${{ secrets.APPLE_APP_SPECIFIC_PASSWORD }}
|
||||
APPLE_APP_SPECIFIC_PASSWORD: ${{ secrets.APPLE_APP_SPECIFIC_PASSWORD }}
|
||||
APPLE_TEAM_ID: ${{ secrets.APPLE_TEAM_ID }}
|
||||
# Windows Azure Trusted Signing related values
|
||||
# https://www.electron.build/code-signing-win#using-azure-trusted-signing-beta
|
||||
|
||||
@@ -1,6 +1,5 @@
|
||||
{
|
||||
"tabWidth": 4,
|
||||
"proseWrap": "always",
|
||||
"objectWrap": "collapse",
|
||||
"plugins": [
|
||||
"prettier-plugin-organize-imports",
|
||||
|
||||
@@ -1,4 +1,3 @@
|
||||
{
|
||||
"tabWidth": 4,
|
||||
"proseWrap": "always"
|
||||
"tabWidth": 4
|
||||
}
|
||||
|
||||
@@ -1,7 +1,6 @@
|
||||
---
|
||||
title: Migrating to Ente Auth
|
||||
description:
|
||||
Guides for migrating your existing 2FA tokens into or out of Ente Auth
|
||||
description: Guides for migrating your existing 2FA tokens into or out of Ente Auth
|
||||
---
|
||||
|
||||
# Migrating to/from Ente Auth
|
||||
|
||||
@@ -1,7 +1,6 @@
|
||||
---
|
||||
title: Desktop app FAQ
|
||||
description:
|
||||
An assortment of frequently asked questions about Ente Photos desktop app
|
||||
description: An assortment of frequently asked questions about Ente Photos desktop app
|
||||
---
|
||||
|
||||
# Desktop app FAQ
|
||||
|
||||
@@ -1,7 +1,6 @@
|
||||
---
|
||||
title: Security and Privacy FAQ
|
||||
description:
|
||||
Comprehensive information about security and privacy measures in Ente Photos
|
||||
description: Comprehensive information about security and privacy measures in Ente Photos
|
||||
---
|
||||
|
||||
# Security and Privacy FAQ
|
||||
|
||||
@@ -1,7 +1,6 @@
|
||||
---
|
||||
title: Cast
|
||||
description:
|
||||
Casting your photos on to a large screen or a TV or a Chromecast device
|
||||
description: Casting your photos on to a large screen or a TV or a Chromecast device
|
||||
---
|
||||
|
||||
# Cast
|
||||
|
||||
@@ -1,7 +1,6 @@
|
||||
---
|
||||
title: Family plans
|
||||
description:
|
||||
Share your Ente Photos plan with your family members with no extra cost
|
||||
description: Share your Ente Photos plan with your family members with no extra cost
|
||||
---
|
||||
|
||||
# Family plans
|
||||
|
||||
@@ -1,7 +1,6 @@
|
||||
---
|
||||
title: Watch folder
|
||||
description:
|
||||
Automatic syncing of selected folders using the Ente Photos desktop app
|
||||
description: Automatic syncing of selected folders using the Ente Photos desktop app
|
||||
---
|
||||
|
||||
# Watch folders
|
||||
|
||||
@@ -1,7 +1,6 @@
|
||||
---
|
||||
title: Import from local hard disk
|
||||
description:
|
||||
Migrating to Ente Photos by importing data from your local hard disk
|
||||
description: Migrating to Ente Photos by importing data from your local hard disk
|
||||
---
|
||||
|
||||
# Import photos from your local hard disk
|
||||
|
||||
@@ -1,7 +1,6 @@
|
||||
---
|
||||
title: Files not uploading
|
||||
description:
|
||||
Troubleshooting when files are not uploading from your Ente Photos app
|
||||
description: Troubleshooting when files are not uploading from your Ente Photos app
|
||||
---
|
||||
|
||||
# Files not uploading
|
||||
|
||||
@@ -1,6 +1,5 @@
|
||||
{
|
||||
"tabWidth": 4,
|
||||
"proseWrap": "always",
|
||||
"plugins": [
|
||||
"prettier-plugin-organize-imports",
|
||||
"prettier-plugin-packagejson"
|
||||
|
||||
@@ -1,4 +1,3 @@
|
||||
{
|
||||
"tabWidth": 4,
|
||||
"proseWrap": "always"
|
||||
"tabWidth": 4
|
||||
}
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"account": "الحساب",
|
||||
"unlock": "فتح القُفْل",
|
||||
"unlock": "فتح القفل",
|
||||
"recoveryKey": "مفتاح الاسترداد",
|
||||
"counterAppBarTitle": "العداد",
|
||||
"@counterAppBarTitle": {
|
||||
@@ -9,8 +9,8 @@
|
||||
"onBoardingBody": "النسخ الاحتياطي لشيفرات الاستيثاق ذي العاملين",
|
||||
"onBoardingGetStarted": "ابدأ الآن",
|
||||
"setupFirstAccount": "إعداد الحساب الأول الخاص بك",
|
||||
"importScanQrCode": "مسح شيفرة الاستجابة السريعة",
|
||||
"qrCode": "شيفرة الاستجابة السريعة",
|
||||
"importScanQrCode": "مسح رمز QR",
|
||||
"qrCode": "رمز QR",
|
||||
"importEnterSetupKey": "أدخِل مفتاح الإعداد",
|
||||
"importAccountPageTitle": "أدخل تفاصيل الحساب",
|
||||
"secretCanNotBeEmpty": "لا يمكن أن يكون رمز السر فارغ",
|
||||
@@ -36,7 +36,7 @@
|
||||
"codeAccountHint": "الحساب (you@domain.com)",
|
||||
"codeTagHint": "وسم",
|
||||
"accountKeyType": "نوع المفتاح",
|
||||
"sessionExpired": "انتهت صَلاحِيَة الجِلسة",
|
||||
"sessionExpired": "انتهت صلاحية الجلسة",
|
||||
"@sessionExpired": {
|
||||
"description": "Title of the dialog when the users current session is invalid/expired"
|
||||
},
|
||||
@@ -106,7 +106,7 @@
|
||||
"importSelectJsonFile": "انتقِ ملف JSON",
|
||||
"importSelectAppExport": "حدد ملف التصدير الخاص بـ{appName}",
|
||||
"importEnteEncGuide": "اختر ملف JSON المشفر المصدَّر من Ente",
|
||||
"importRaivoGuide": "استخدم خيار \"صدر كلمات المرور لمرة واحدة إلى أرشيف Zip\" في إعدادات Raivo.\n\nاستخرج ملف الـzip واسترد ملف الـJSON.",
|
||||
"importRaivoGuide": "استخدم خيار تصدير OTP إلى أرشيف Zip في إعدادات Raivo.\n\nاستخرج ملف zip واسترد ملف JSON.",
|
||||
"importBitwardenGuide": "استخدم خيار \"تصدير خزانة\" داخل أدوات Bitwarden واستيراد ملف JSON غير مشفر.",
|
||||
"importAegisGuide": "استخدم خيار \"Export the vault\" في إعدادات Aegis.\n\nإذا كان المخزن الخاص بك مشفرًا، فستحتاج إلى إدخال كلمة مرور المخزن لفك تشفير المخزن.",
|
||||
"import2FasGuide": "استخدم خيار \"الإعدادات -> النسخ الاحتياطي - التصدير\" في 2FAS.\n\nإذا تم تشفير النسخة الاحتياطية، سوف تحتاج إلى إدخال كلمة المرور لفك تشفير النسخة الاحتياطية",
|
||||
|
||||
@@ -52,6 +52,7 @@
|
||||
"trashCodeMessage": "Вы сапраўды хочаце выдаліць код для {account}?",
|
||||
"trash": "Сметніца",
|
||||
"viewLogsAction": "Паглядзець журналы",
|
||||
"sendLogsDescription": "Гэта абагуліць вашы журналы з намі і дапаможа адладзіць вашу праблему. Хоць мы і прымаем захады, каб канфідэнцыяльныя звесткі не рэгістраваліся, але рэкамендуецца прагледзець гэтыя журналы перад адпраўкай.",
|
||||
"preparingLogsTitle": "Падрыхтоўка журналаў...",
|
||||
"emailLogsTitle": "Адправіць журнал па электроннай пошце",
|
||||
"emailLogsMessage": "Адпраўце журналы на {email}",
|
||||
@@ -83,12 +84,15 @@
|
||||
"pleaseWait": "Пачакайце...",
|
||||
"generatingEncryptionKeysTitle": "Генерацыя ключоў шыфравання...",
|
||||
"recreatePassword": "Стварыць пароль паўторна",
|
||||
"recreatePasswordMessage": "У бягучай прылады недастаткова вылічальнай здольнасці для праверкі вашага паролю, таму неабходна регенерыраваць яго адзін раз такім чынам, каб гэта працавала з усімі прыладамі.\n\nУвайдзіце, выкарыстоўваючы свой ключа аднаўлення і регенерыруйце свой пароль (калі хочаце, то можаце выбраць папярэдні пароль).",
|
||||
"useRecoveryKey": "Выкарыстоўваць ключ аднаўлення",
|
||||
"incorrectPasswordTitle": "Няправільны пароль",
|
||||
"welcomeBack": "З вяртаннем!",
|
||||
"emailAlreadyRegistered": "Электронная пошта ўжо зарэгістравана.",
|
||||
"emailNotRegistered": "Электронная пошта не зарэгістравана.",
|
||||
"madeWithLoveAtPrefix": "зроблена з ❤️ у ",
|
||||
"supportDevs": "Падпішыцеся на <bold-green>ente</bold-green>, каб падтрымаць нас",
|
||||
"supportDiscount": "Выкарыстоўвайце купон з кодам «AUTH», каб атрымаць скідку ў памеры 10% за першы год",
|
||||
"changeEmail": "Змяніць адрас электроннай пошты",
|
||||
"changePassword": "Змяніць пароль",
|
||||
"data": "Даныя",
|
||||
@@ -98,13 +102,29 @@
|
||||
"passwordForDecryptingExport": "Пароль для дэшыфроўкі экспартавання",
|
||||
"passwordEmptyError": "Пароль не можа быць пустым",
|
||||
"importFromApp": "Імпартаваць коды з {appName}",
|
||||
"importGoogleAuthGuide": "Экспартуйце свае ўліковыя запісы з Google Authenticator у QR-код з дапамогай параметра «Перанесці ўліковыя запісы». Потым скарыстайцеся іншай прыладай, якая можа адсканіраваць QR-код.\n\nПарада: вы можаце скарыстацца вэб-камерай свайго ноўтбука, каб сфатаграфаваць QR-код.",
|
||||
"importSelectJsonFile": "Выбраць файл JSON",
|
||||
"importSelectAppExport": "Выберыце файл экспартавання {appName}",
|
||||
"importEnteEncGuide": "Выберыце зашыфраваны файл JSON, які экспартаваны з Ente",
|
||||
"importRaivoGuide": "Скарыстайцеся параметрам «Экспартаваць OTP у архіў ZIP» у наладах Raivo.\n\nВыньце файл ZIP і імпартуйце файл JSON.",
|
||||
"importBitwardenGuide": "Скарыстайцеся параметрам «Экспартаваць сховішча» ў Bitwarden Tools і імпартуйце файл JSON.",
|
||||
"importAegisGuide": "Скарыстайцеся параметрам «Экспартаваць сховішча» ў наладах Aegis.\n\nВам спатрэбіцца ўвесці пароль ад сховішча, каб дэшыфраваць яго (у выпадку, калі яно было зашыфравана раней).",
|
||||
"import2FasGuide": "Скарыстайцеся параметрам «Налады -> Рэзервовае капіяванне -Экспартаванне» ў наладах 2FAS.\n\nВам спатрэбіцца ўвесці пароль, каб дэшыфраваць рэзервовую копію (у выпадку, калі яна была зашыфравана раней)",
|
||||
"importLastpassGuide": "Скарыстайцеся параметрам «Перанесці ўліковыя запісы» ў налады Lastpass Authenticator і націсніце «Экспартаваць уліковыя запісы ў файл».",
|
||||
"exportCodes": "Экспартаваць коды",
|
||||
"importLabel": "Імпарт",
|
||||
"importInstruction": "Выберыце файл, які змяшчае спіс вашых кодаў у наступным фармаце",
|
||||
"importCodeDelimiterInfo": "Коды могуць быць адасоблены коскамі або новым радком",
|
||||
"selectFile": "Выбраць файл",
|
||||
"emailVerificationToggle": "Праверка эл. пошты",
|
||||
"emailVerificationEnableWarning": "Пераканайцеся, што ў вас захавана копія 2ФА ад вашай электроннай пошты па-за межамі праграмы Ente Auth перад тым, як уключаць праверку электроннай пошты. Гэта дазволіць пазбегнуць блакіроўкі вашага ўліковага запісу.",
|
||||
"authToChangeEmailVerificationSetting": "Прайдзіце аўтэнтыфікацыю, каб змяніць праверку адраса электроннай пошты",
|
||||
"authenticateGeneric": "Прайдзіце аўтэнтыфікацыю",
|
||||
"authToViewYourRecoveryKey": "Прайдзіце аўтэнтыфікацыю для прагляду свайго ключа аднаўлення",
|
||||
"authToChangeYourEmail": "Прайдзіце аўтэнтыфікацыю, каб змяніць сваю электронную пошту",
|
||||
"authToChangeYourPassword": "Прайдзіце аўтэнтыфікацыю, каб змяніць свой пароль",
|
||||
"authToViewSecrets": "Прайдзіце аўтэнтыфікацыю для прагляду сваіх сакрэтаў",
|
||||
"authToInitiateSignIn": "Прайдзіце аўтэнтыфікацыю, каб пачаць уваход для рэзервовай копіі.",
|
||||
"ok": "OK",
|
||||
"cancel": "Скасаваць",
|
||||
"yes": "Так",
|
||||
@@ -123,12 +143,17 @@
|
||||
"oops": "Вой",
|
||||
"suggestFeatures": "Прапанаваць функцыю",
|
||||
"faq": "Частыя пытанні",
|
||||
"somethingWentWrongMessage": "Нешта пайшло не так. Паспрабуйце яшчэ раз",
|
||||
"leaveFamily": "Пакінуць сямейны план",
|
||||
"leaveFamilyMessage": "Вы ўпэўнены, што хочаце выйсці з сямейнага плана?",
|
||||
"inFamilyPlanMessage": "Вы ўдзельнік сямейнага плана!",
|
||||
"hintForMobile": "Доўгі націск на код для рэдагавання або выдалення.",
|
||||
"hintForDesktop": "Правы націск на код для рэдагавання або выдалення.",
|
||||
"scan": "Сканіраваць",
|
||||
"scanACode": "Сканіраваць код",
|
||||
"verify": "Праверыць",
|
||||
"verifyEmail": "Праверыць электронную пошту",
|
||||
"enterCodeHint": "Увядзіце шасцізначны код з\nвашай праграмы аўтэнтыфікацыі",
|
||||
"lostDeviceTitle": "Згубілі прыладу?",
|
||||
"twoFactorAuthTitle": "Двухфактарная аўтэнтыфікацыя",
|
||||
"passkeyAuthTitle": "Праверка ключа доступу",
|
||||
@@ -137,14 +162,25 @@
|
||||
"recoverAccount": "Аднавіць уліковы запіс",
|
||||
"enterRecoveryKeyHint": "Увядзіце свой ключ аднаўлення",
|
||||
"recover": "Аднавіць",
|
||||
"contactSupportViaEmailMessage": "Адпраўце ліст на {email} з вашага зарэгістраванага адраса электроннай пошты",
|
||||
"@contactSupportViaEmailMessage": {
|
||||
"placeholders": {
|
||||
"email": {
|
||||
"type": "String"
|
||||
}
|
||||
}
|
||||
},
|
||||
"invalidQRCode": "Памылковы QR-код",
|
||||
"noRecoveryKeyTitle": "Няма ключа аднаўлення?",
|
||||
"enterEmailHint": "Увядзіце свой адрас электроннай пошты",
|
||||
"enterNewEmailHint": "Увядзіце свой новы адрас электроннай пошты",
|
||||
"invalidEmailTitle": "Памылковы адрас электроннай пошты",
|
||||
"invalidEmailMessage": "Увядзіце сапраўдны адрас электронная пошты.",
|
||||
"deleteAccount": "Выдаліць уліковы запіс",
|
||||
"deleteAccountQuery": "Вельмі шкада, што вы пакідаеце нас. Вы сутыкнуліся з нейкай праблемай?",
|
||||
"yesSendFeedbackAction": "Так. Адправіць водгук",
|
||||
"noDeleteAccountAction": "Не, выдаліць уліковы запіс",
|
||||
"initiateAccountDeleteTitle": "Прайдзіце аўтэнтыфікацыю, каб пачаць выдаленне ўліковага запісу",
|
||||
"sendEmail": "Адправіць ліст",
|
||||
"createNewAccount": "Стварыць новы ўліковы запіс",
|
||||
"weakStrength": "Ненадзейны",
|
||||
@@ -158,9 +194,13 @@
|
||||
"social": "Сацыяльныя сеткі",
|
||||
"security": "Бяспека",
|
||||
"lockscreen": "Экран блакіроўкі",
|
||||
"authToChangeLockscreenSetting": "Прайдзіце аўтэнтыфікацыю, каб змяніць налады блакіроўкі экрана",
|
||||
"deviceLockEnablePreSteps": "Наладзьце код доступу да прылады або блакіроўку экрана ў наладах вашай сістэме, каб уключыць блакіроўку прылады.",
|
||||
"viewActiveSessions": "Паглядзець актыўныя сеансы",
|
||||
"authToViewYourActiveSessions": "Прайдзіце аўтэнтыфікацыю для прагляду сваіх актыўных сеансаў",
|
||||
"searchHint": "Пошук...",
|
||||
"search": "Пошук",
|
||||
"sorryUnableToGenCode": "Немагчыма згенерыраваць код з {issuerName}",
|
||||
"noResult": "Няма вынікаў",
|
||||
"addCode": "Дадаць код",
|
||||
"scanAQrCode": "Сканіраваць QR-код",
|
||||
@@ -168,18 +208,36 @@
|
||||
"edit": "Рэдагаваць",
|
||||
"share": "Абагуліць",
|
||||
"shareCodes": "Абагуліць коды",
|
||||
"shareCodesDuration": "Выберыце працягласць, на якую вы хочаце абагуліць коды.",
|
||||
"restore": "Аднавіць",
|
||||
"copiedToClipboard": "Скапіявана ў буфер абмену",
|
||||
"copiedNextToClipboard": "Скапіяваць наступны код у буфер абмену",
|
||||
"error": "Памылка",
|
||||
"recoveryKeyCopiedToClipboard": "Ключ аднаўлення скапіяваны ў буфер абмену",
|
||||
"recoveryKeyOnForgotPassword": "Адзіным спосабам аднавіць вашы даныя з'яўляецца гэты ключ, калі вы забылі свой пароль.",
|
||||
"recoveryKeySaveDescription": "Захавайце гэты ключ, які складаецца з 24 слоў, у наедзеным месцы. Ён не захоўваецца на нашым серверы.",
|
||||
"doThisLater": "Зрабіць гэта пазней",
|
||||
"saveKey": "Захаваць ключ",
|
||||
"save": "Захаваць",
|
||||
"send": "Адправіць",
|
||||
"saveOrSendDescription": "Вы сапраўды хочаце захаваць гэта ў сваім сховішчы (прадвызначана папка са спампоўваннямі) або адправіць у іншыя праграмы?",
|
||||
"saveOnlyDescription": "Вы сапраўды хочаце захаваць гэта ў сваім сховішчы (прадвызначана папка са спампоўваннямі)?",
|
||||
"back": "Назад",
|
||||
"createAccount": "Стварыць уліковы запіс",
|
||||
"passwordStrength": "Надзейнасць пароля: {passwordStrengthValue}",
|
||||
"@passwordStrength": {
|
||||
"description": "Text to indicate the password strength",
|
||||
"placeholders": {
|
||||
"passwordStrengthValue": {
|
||||
"description": "The strength of the password as a string",
|
||||
"type": "String",
|
||||
"example": "Weak or Moderate or Strong"
|
||||
}
|
||||
},
|
||||
"message": "Password Strength: {passwordStrengthText}"
|
||||
},
|
||||
"password": "Пароль",
|
||||
"signUpTerms": "Я пагаджаюся з <u-terms>умовамі абслугоўвання</u-terms> і <u-policy>палітыкай прыватнасці</u-policy>",
|
||||
"privacyPolicyTitle": "Палітыка прыватнасці",
|
||||
"termsOfServicesTitle": "Умовы",
|
||||
"encryption": "Шыфраванне",
|
||||
@@ -187,11 +245,17 @@
|
||||
"changePasswordTitle": "Змяніць пароль",
|
||||
"resetPasswordTitle": "Скінуць пароль",
|
||||
"encryptionKeys": "Ключы шыфравання",
|
||||
"passwordWarning": "Мы не захоўваем гэты пароль і <underline>мы не зможам расшыфраваць вашы даныя</underline>, калі вы забудзеце яго",
|
||||
"enterPasswordToEncrypt": "Увядзіце пароль, каб была магчымасць выкарыстаць яго для расшыфроўкі вашых даных",
|
||||
"enterNewPasswordToEncrypt": "Увядзіце новы пароль, каб мы маглі выкарыстаць яго для расшыфроўкі вашых даных",
|
||||
"passwordChangedSuccessfully": "Пароль паспяхова зменены",
|
||||
"generatingEncryptionKeys": "Генерацыя ключоў шыфравання...",
|
||||
"continueLabel": "Працягнуць",
|
||||
"insecureDevice": "Небяспечная прылада",
|
||||
"sorryWeCouldNotGenerateSecureKeysOnThisDevicennplease": "Немагчыма згенерыраваць ключы бяспекі на гэтай прыладзе.\n\nЗарэгіструйцеся з іншай прылады.",
|
||||
"howItWorks": "Як гэта працуе",
|
||||
"ackPasswordLostWarning": "Я ўсведамляю, што калі я страчу свой пароль, то я магу згубіць свае даныя, бо мае даныя абаронены <underline>скразным шыфраваннем</underline>.",
|
||||
"loginTerms": "Націскаючы ўвайсці, я згаджаюся з <u-terms>умовамі абслугоўвання</u-terms> і <u-policy>палітыкай прыватнасці</u-policy>",
|
||||
"logInLabel": "Увайсці",
|
||||
"logout": "Выйсці",
|
||||
"areYouSureYouWantToLogout": "Вы сапраўды хочаце выйсці?",
|
||||
@@ -203,6 +267,7 @@
|
||||
"systemTheme": "Сістэманая",
|
||||
"verifyingRecoveryKey": "Праверка ключа аднаўлення...",
|
||||
"recoveryKeyVerified": "Ключ аднаўлення правераны",
|
||||
"recoveryKeySuccessBody": "Усё ў парадку! Вашы ключ аднаўлення з'яўляецца сапраўдным.\n\nНе забывайце захоўваць ваш ключ аднаўлення ў надзейным месцы.",
|
||||
"recreatePasswordTitle": "Стварыць пароль паўторна",
|
||||
"invalidKey": "Памылковы ключ",
|
||||
"tryAgain": "Паспрабуйце яшчэ раз",
|
||||
@@ -254,20 +319,40 @@
|
||||
"checkInboxAndSpamFolder": "Праверце свае ўваходныя лісты (і спам) для завяршэння праверкі",
|
||||
"tapToEnterCode": "Націсніце, каб увесці код",
|
||||
"resendEmail": "Адправіць ліст яшчэ раз",
|
||||
"weHaveSendEmailTo": "Ліст адпраўлены на электронную пошту <green>{email}</green>",
|
||||
"@weHaveSendEmailTo": {
|
||||
"description": "Text to indicate that we have sent a mail to the user",
|
||||
"placeholders": {
|
||||
"email": {
|
||||
"description": "The email address of the user",
|
||||
"type": "String",
|
||||
"example": "example@ente.io"
|
||||
}
|
||||
}
|
||||
},
|
||||
"manualSort": "Карыстальніцкая",
|
||||
"editOrder": "Рэдагаваць заказ",
|
||||
"mostFrequentlyUsed": "Часта выкарыстоўваюцца",
|
||||
"mostRecentlyUsed": "Нядаўна выкарыстаныя",
|
||||
"activeSessions": "Актыўныя сеансы",
|
||||
"somethingWentWrongPleaseTryAgain": "Нешта пайшло не так. Паспрабуйце яшчэ раз",
|
||||
"thisWillLogYouOutOfThisDevice": "Гэта дзеянне завершыць сеанс на вашай прыладзе!",
|
||||
"thisWillLogYouOutOfTheFollowingDevice": "Гэта дзеянне завершыць сеанс наступнай прылады:",
|
||||
"terminateSession": "Перарваць сеанс?",
|
||||
"terminate": "Перарваць",
|
||||
"thisDevice": "Гэта прылада",
|
||||
"toResetVerifyEmail": "Спачатку праверце электронную пошту, каб скінуць свой пароль.",
|
||||
"thisEmailIsAlreadyInUse": "Гэта электронная пошта ўжо выкарыстоўваецца",
|
||||
"verificationFailedPleaseTryAgain": "Збой праверкі. Паспрабуйце яшчэ раз",
|
||||
"yourVerificationCodeHasExpired": "Ваш праверачны код пратэрмінаваны",
|
||||
"incorrectCode": "Няправільны код",
|
||||
"sorryTheCodeYouveEnteredIsIncorrect": "Уведзены вамі код з'яўляецца няправільным",
|
||||
"emailChangedTo": "Электронная пошта зменена на {newEmail}",
|
||||
"authenticationFailedPleaseTryAgain": "Збой аўтэнтыфікацыі. Паспрабуйце яшчэ раз",
|
||||
"authenticationSuccessful": "Аўтэнтыфікацыя паспяхова пройдзена!",
|
||||
"twofactorAuthenticationSuccessfullyReset": "Двухфактарная аўтэнтыфікацыя паспяхова скінута",
|
||||
"incorrectRecoveryKey": "Няправільны ключ аднаўлення",
|
||||
"theRecoveryKeyYouEnteredIsIncorrect": "Вы ўвялі памылковы ключ аднаўлення",
|
||||
"enterPassword": "Увядзіце пароль",
|
||||
"selectExportFormat": "Выберыце фармат экспартавання",
|
||||
"exportDialogDesc": "Зашыфраванае экспартаванне будзе абаронена паролем, які вы выберыце.",
|
||||
@@ -332,14 +417,19 @@
|
||||
"description": "Message showed on a button that the user can click to leave the current dialog. It is used on iOS side. Maximum 30 characters."
|
||||
},
|
||||
"noInternetConnection": "Адсутнічае падключэнне да інтэрнэту",
|
||||
"pleaseCheckYourInternetConnectionAndTryAgain": "Праверце злучэнне з інтэрнэтам і паспрабуйце яшчэ раз.",
|
||||
"signOutFromOtherDevices": "Выйсці з іншых прылад",
|
||||
"signOutOtherDevices": "Выйсці на іншых прыладах",
|
||||
"doNotSignOut": "Не выходзіць",
|
||||
"hearUsWhereTitle": "Адкуль вы пачулі пра Ente? (неабавязкова)",
|
||||
"recoveryKeySaved": "Ключ аднаўлення захаваны ў папцы «Спампоўкі»!",
|
||||
"waitingForBrowserRequest": "Чаканне запыту браўзера...",
|
||||
"waitingForVerification": "Чаканне праверкі...",
|
||||
"passkey": "Ключ доступу",
|
||||
"passKeyPendingVerification": "Праверка пакуль яшчэ не завершана",
|
||||
"loginSessionExpired": "Сеанс завяршыўся",
|
||||
"loginSessionExpiredDetails": "Ваш сеанс завяршыўся. Увайдзіце яшчэ раз.",
|
||||
"developerSettingsWarning": "Вы ўпэўнены, што хочаце змяніць налады распрацоўшчыка?",
|
||||
"developerSettings": "Налады распрацоўшчыка",
|
||||
"serverEndpoint": "Канцавы пункт сервера",
|
||||
"invalidEndpoint": "Памылковы канцавы пункт",
|
||||
@@ -356,6 +446,7 @@
|
||||
"create": "Стварыць",
|
||||
"editTag": "Рэдагаванне тэг",
|
||||
"deleteTagTitle": "Выдаліць тэг?",
|
||||
"somethingWentWrongParsingCode": "Немагчыма прааналізаваць коды (колькасць: {x}).",
|
||||
"updateNotAvailable": "Абнаўленне недаступна",
|
||||
"viewRawCodes": "Паглядзець неапрацаваныя коды",
|
||||
"rawCodes": "Неапрацаваныя коды",
|
||||
@@ -372,12 +463,17 @@
|
||||
"setNewPassword": "Задаць новы пароль",
|
||||
"deviceLock": "Блакіроўка прылады",
|
||||
"hideContent": "Схаваць змест",
|
||||
"hideContentDescriptioniOS": "Хаваць змесціва праграмы ў пераключальніку праграм",
|
||||
"pinLock": "Блакіроўка PIN'ам",
|
||||
"enterPin": "Увядзіце PIN-код",
|
||||
"setNewPin": "Задаць новы PIN",
|
||||
"importFailureDescNew": "Не ўдалося прааналізаваць выбраны файл.",
|
||||
"appLockNotEnabled": "Блакіроўка праграмы не ўключана",
|
||||
"appLockNotEnabledDescription": "Уключыце блакіроўку праграмы ў раздзеле «Бяспека» -> «Блакіроўка праграмы»",
|
||||
"authToViewPasskey": "Прайдзіце аўтэнтыфікацыю, каб паглядзець ключ доступу",
|
||||
"duplicateCodes": "Дублікаты кадоў",
|
||||
"noDuplicates": "✨ Няма дублікатаў",
|
||||
"youveNoDuplicateCodesThatCanBeCleared": "У вас адсутнічаць дубліраваныя коды, які можна ачысціць",
|
||||
"deduplicateCodes": "Дубліраваныя кады",
|
||||
"deselectAll": "Зняць выбар з усіх",
|
||||
"selectAll": "Выбраць усе",
|
||||
@@ -386,8 +482,12 @@
|
||||
"tellUsWhatYouThink": "Раскажыце, што вы думаеце",
|
||||
"dropReviewiOS": "Пакіньце водгук у App Store",
|
||||
"dropReviewAndroid": "Пакіньце водгук у Play Store",
|
||||
"supportEnte": "Падтрымка <bold-green>ente</bold-green>",
|
||||
"giveUsAStarOnGithub": "Адзначце нас зоркай на Github",
|
||||
"free5GB": "Бясплатна 5 ГБ на <bold-green>ente</bold-green> Photos",
|
||||
"loginWithAuthAccount": "Увайдзіце з дапамогай уліковага запісу Auth",
|
||||
"freeStorageOffer": "Скідка ў памеры 10% на <bold-green>ente</bold-green> Photos",
|
||||
"freeStorageOfferDescription": "Выкарыстоўвайце код «AUTH», каб атрымаць скідку ў памеры 10% за першы год",
|
||||
"advanced": "Пашыраныя",
|
||||
"algorithm": "Алгарытм",
|
||||
"type": "Тып",
|
||||
|
||||
@@ -347,14 +347,14 @@
|
||||
"terminate": "Quitter",
|
||||
"thisDevice": "Cet appareil",
|
||||
"toResetVerifyEmail": "Pour réinitialiser votre mot de passe, veuillez d'abord vérifier votre e-mail.",
|
||||
"thisEmailIsAlreadyInUse": "Cette adresse mail est déjà utilisé",
|
||||
"thisEmailIsAlreadyInUse": "Cette adresse mail est déjà utilisée",
|
||||
"verificationFailedPleaseTryAgain": "La vérification a échouée, veuillez réessayer",
|
||||
"yourVerificationCodeHasExpired": "Votre code de vérification a expiré",
|
||||
"incorrectCode": "Code non valide",
|
||||
"sorryTheCodeYouveEnteredIsIncorrect": "Le code que vous avez saisi est incorrect",
|
||||
"emailChangedTo": "L'e-mail a été changé en {newEmail}",
|
||||
"authenticationFailedPleaseTryAgain": "L'authentification a échouée, veuillez réessayer",
|
||||
"authenticationSuccessful": "Authentification réussie!",
|
||||
"authenticationSuccessful": "Authentification réussie !",
|
||||
"twofactorAuthenticationSuccessfullyReset": "L'authentification à deux facteurs a été réinitialisée avec succès ",
|
||||
"incorrectRecoveryKey": "Clé de récupération non valide",
|
||||
"theRecoveryKeyYouEnteredIsIncorrect": "La clé de récupération que vous avez entrée est incorrecte",
|
||||
|
||||
@@ -173,6 +173,7 @@
|
||||
"invalidQRCode": "Netinkamas QR kodas.",
|
||||
"noRecoveryKeyTitle": "Neturite atkūrimo rakto?",
|
||||
"enterEmailHint": "Įveskite savo el. pašto adresą",
|
||||
"enterNewEmailHint": "Įveskite savo naują el. pašto adresą",
|
||||
"invalidEmailTitle": "Netinkamas el. pašto adresas",
|
||||
"invalidEmailMessage": "Įveskite tinkamą el. pašto adresą.",
|
||||
"deleteAccount": "Ištrinti paskyrą",
|
||||
|
||||
@@ -91,7 +91,7 @@
|
||||
"emailAlreadyRegistered": "Email đã được đăng ký.",
|
||||
"emailNotRegistered": "Email chưa được đăng ký.",
|
||||
"madeWithLoveAtPrefix": "lập trình bằng ❤️ bởi ",
|
||||
"supportDevs": "Đăng ký <bold-green>ente</bold-green> để hỗ trợ dự án này.",
|
||||
"supportDevs": "Đăng ký <bold-green>ente</bold-green> để hỗ trợ chúng tôi",
|
||||
"supportDiscount": "Dùng mã \"AUTH\" để được giảm 10% trong năm đầu tiên",
|
||||
"changeEmail": "Đổi email",
|
||||
"changePassword": "Đổi mật khẩu",
|
||||
@@ -513,8 +513,8 @@
|
||||
"giveUsAStarOnGithub": "Tặng sao trên GitHub",
|
||||
"free5GB": "Miễn phí 5GB cho <bold-green>ente</bold-green> Photos",
|
||||
"loginWithAuthAccount": "Đăng nhập bằng tài khoản Ente Auth",
|
||||
"freeStorageOffer": "Giảm giá 10% cho <bold-green>ente</bold-green> Photos",
|
||||
"freeStorageOfferDescription": "Dùng mã \"AUTH\" để được giảm 10% trong năm đầu tiên",
|
||||
"freeStorageOffer": "Giảm 10% <bold-green>ente</bold-green> Photos",
|
||||
"freeStorageOfferDescription": "Dùng mã \"AUTH\" để giảm 10% năm đầu tiên",
|
||||
"advanced": "Nâng cao",
|
||||
"algorithm": "Thuật toán",
|
||||
"type": "Loại",
|
||||
|
||||
@@ -484,7 +484,7 @@
|
||||
"backupOverMobileData": "Kurti atsargines kopijas per mobiliuosius duomenis",
|
||||
"backupVideos": "Kurti atsargines vaizdo įrašų kopijas",
|
||||
"disableAutoLock": "Išjungti automatinį užraktą",
|
||||
"deviceLockExplanation": "Išjunkite įrenginio ekrano užraktą, kai „Ente“ yra priekiniame fone ir kuriama atsarginės kopijos. Paprastai to nereikia, bet tai gali padėti greičiau užbaigti didelius įkėlimus ir pradinį didelių bibliotekų importą.",
|
||||
"deviceLockExplanation": "Išjunkite įrenginio ekrano užraktą, kai „Ente“ yra priekiniame fone ir kuriama atsarginės kopijos. Paprastai to nereikia, bet tai gali padėti sparčiau užbaigti didelius įkėlimus ir pradinį didelių bibliotekų importą.",
|
||||
"about": "Apie",
|
||||
"weAreOpenSource": "Esame atviro kodo!",
|
||||
"privacy": "Privatumas",
|
||||
@@ -1049,7 +1049,7 @@
|
||||
"searchPeopleEmptySection": "Pakvieskite asmenis ir čia matysite visas jų bendrinamas nuotraukas.",
|
||||
"searchAlbumsEmptySection": "Albumai",
|
||||
"searchFileTypesAndNamesEmptySection": "Failų tipai ir pavadinimai",
|
||||
"searchCaptionEmptySection": "Pridėkite aprašymus, pavyzdžiui, „#kelionė“, į nuotraukos informaciją, kad greičiau jas čia rastumėte.",
|
||||
"searchCaptionEmptySection": "Pridėkite aprašus, pavyzdžiui, „#kelionė“, į nuotraukos informaciją, kad sparčiau jas čia rastumėte.",
|
||||
"language": "Kalba",
|
||||
"selectLanguage": "Pasirinkite kalbą",
|
||||
"locationName": "Vietovės pavadinimas",
|
||||
@@ -1264,11 +1264,11 @@
|
||||
"joinDiscord": "Jungtis prie „Discord“",
|
||||
"locations": "Vietovės",
|
||||
"addAName": "Pridėti vardą",
|
||||
"findThemQuickly": "Raskite juos greitai",
|
||||
"findThemQuickly": "Raskite juos sparčiai",
|
||||
"@findThemQuickly": {
|
||||
"description": "Subtitle to indicate that the user can find people quickly by name"
|
||||
},
|
||||
"findPeopleByName": "Greitai suraskite žmones pagal vardą",
|
||||
"findPeopleByName": "Sparčiai suraskite asmenis pagal vardą",
|
||||
"addViewers": "{count, plural, =0 {Pridėti žiūrėtojų} =1 {Pridėti žiūrėtoją} other {Pridėti žiūrėtojų}}",
|
||||
"addCollaborators": "{count, plural, =0 {Pridėti bendradarbių} =1 {Pridėti bendradarbį} other {Pridėti bendradarbių}}",
|
||||
"longPressAnEmailToVerifyEndToEndEncryption": "Ilgai paspauskite el. paštą, kad patvirtintumėte visapusį šifravimą.",
|
||||
@@ -1755,5 +1755,40 @@
|
||||
"receiveRemindersOnBirthdays": "Gaukite priminimus, kai yra kažkieno gimtadienis. Paliesdami pranešimą, pateksite į gimtadienio šventės asmens nuotraukas.",
|
||||
"happyBirthday": "Su gimtadieniu! 🥳",
|
||||
"birthdays": "Gimtadieniai",
|
||||
"wishThemAHappyBirthday": "Palinkėkite {name} su gimtadieniu! 🎉"
|
||||
"wishThemAHappyBirthday": "Palinkėkite {name} su gimtadieniu! 🎉",
|
||||
"areYouSureRemoveThisFaceFromPerson": "Ar tikrai norite pašalinti šį veidą iš šio asmens?",
|
||||
"otherDetectedFaces": "Kiti aptikti veidai",
|
||||
"areThey": "Ar jie ",
|
||||
"questionmark": "?",
|
||||
"saveAsAnotherPerson": "Išsaugoti kaip kitą asmenį",
|
||||
"showLessFaces": "Rodyti mažiau veidų",
|
||||
"showMoreFaces": "Rodyti daugiau veidų",
|
||||
"ignore": "Ignoruoti",
|
||||
"merge": "Sujungti",
|
||||
"reset": "Atkurti",
|
||||
"areYouSureYouWantToIgnoreThisPerson": "Ar tikrai norite ignoruoti šį asmenį?",
|
||||
"areYouSureYouWantToIgnoreThesePersons": "Ar tikrai norite ignoruoti šiuos asmenis?",
|
||||
"thePersonGroupsWillNotBeDisplayed": "Asmenų grupės nebebus rodomos asmenų sekcijoje. Nuotraukos liks nepakitusios.",
|
||||
"thePersonWillNotBeDisplayed": "Asmuo nebebus rodomas asmenų sekcijoje. Nuotraukos liks nepakitusios.",
|
||||
"areYouSureYouWantToMergeThem": "Ar tikrai norite juos sujungti?",
|
||||
"allUnnamedGroupsWillBeMergedIntoTheSelectedPerson": "Visos nepavadintos grupės bus sujungtos su pasirinktu asmeniu. Tai vis dar galima atšaukti iš asmens pasiūlymų istorijos apžvalgos.",
|
||||
"yesIgnore": "Taip, ignoruoti",
|
||||
"same": "Tas pats",
|
||||
"different": "Skirtingas",
|
||||
"sameperson": "Tas pats asmuo?",
|
||||
"cLTitle1": "Įkeliami dideli vaizdo įrašų failai",
|
||||
"cLDesc1": "Po vaizdo įrašų srauto perdavimo beta versijos ir darbo prie tęsiamų įkėlimų ir atsisiuntimų, dabar padidinome failų įkėlimo ribą iki 10 GB. Tai dabar pasiekiama tiek kompiuterinėse, tiek mobiliosiose programėlėse.",
|
||||
"cLTitle2": "Fono įkėlimas",
|
||||
"cLDesc2": "Fono įkėlimai dabar palaikomi ir sistemoje „iOS“ bei „Android“ įrenginiuose. Nebereikia atverti programėlės, kad būtų galima sukurti naujausių nuotraukų ir vaizdo įrašų atsarginę kopiją.",
|
||||
"cLTitle3": "Automatiniai peržiūros prisiminimai",
|
||||
"cLDesc3": "Mes žymiai patobulinome prisiminimų patirtį, įskaitant automatinį peržiūrėjimą, braukimą į kitą prisiminimą ir daug daugiau.",
|
||||
"cLTitle4": "Patobulintas veido atpažinimas",
|
||||
"cLDesc4": "Kartu su daugybe vidinių patobulinimų, dabar daug lengviau matyti visus aptiktus veidus, pateikti atsiliepimus apie panašius veidus ir pridėti / pašalinti veidus iš vienos nuotraukos.",
|
||||
"cLTitle5": "Gimtadienio pranešimai",
|
||||
"cLDesc5": "Dabar gausite pranešimą apie galimybę atsisakyti visų gimtadienių, kuriuos išsaugojote platformoje „Ente“, kartu su geriausių jų nuotraukų rinkiniu.",
|
||||
"cLTitle6": "Tęsiami įkėlimai ir atsisiuntimai",
|
||||
"cLDesc6": "Nebereikia laukti įkėlimų / atsisiuntimų užbaigti, kad užvertumėte programėlę. Dabar visus įkėlimus ir atsisiuntimus galima pristabdyti ir tęsti nuo tos vietos, kurioje sustojote.",
|
||||
"indexingPausedStatusDescription": "Indeksavimas pristabdytas. Jis bus automatiškai tęsiamas, kai įrenginys bus parengtas. Įrenginys laikomas parengtu, kai jo akumuliatoriaus įkrovos lygis, akumuliatoriaus būklė ir terminė būklė yra normos ribose.",
|
||||
"faceThumbnailGenerationFailed": "Nepavyksta sugeneruoti veido miniatiūrų.",
|
||||
"fileAnalysisFailed": "Nepavyksta išanalizuoti failo."
|
||||
}
|
||||
@@ -870,9 +870,9 @@
|
||||
"youCanTrySearchingForADifferentQuery": "Bạn có thể thử tìm kiếm một truy vấn khác.",
|
||||
"noResultsFound": "Không tìm thấy kết quả",
|
||||
"addedBy": "Được thêm bởi {emailOrName}",
|
||||
"loadingExifData": "Đang tải thông số Exif...",
|
||||
"loadingExifData": "Đang lấy thông số Exif...",
|
||||
"viewAllExifData": "Xem thông số Exif",
|
||||
"noExifData": "Không có thông số Exif",
|
||||
"noExifData": "Không có Exif",
|
||||
"thisImageHasNoExifData": "Ảnh này không có thông số Exif",
|
||||
"exif": "Exif",
|
||||
"noResults": "Không có kết quả",
|
||||
@@ -1217,7 +1217,7 @@
|
||||
"searchHint4": "Vị trí",
|
||||
"searchHint5": "Sắp ra mắt: Nhận diện khuôn mặt & tìm kiếm vi diệu ✨",
|
||||
"addYourPhotosNow": "Thêm ảnh của bạn ngay bây giờ",
|
||||
"searchResultCount": "{count, plural, other{{count} kết quả được tìm thấy}}",
|
||||
"searchResultCount": "{count, plural, other{{count} kết quả đã tìm thấy}}",
|
||||
"@searchResultCount": {
|
||||
"description": "Text to tell user how many results were found for their search query",
|
||||
"placeholders": {
|
||||
|
||||
@@ -53,18 +53,22 @@ Future<DecodedImage> decodeImageFromPath(
|
||||
final Map<String, IfdTag> exifData = await readExifFromBytes(imageData);
|
||||
final int orientation =
|
||||
exifData['Image Orientation']?.values.firstAsInt() ?? 1;
|
||||
final format = imagePath.split('.').last.toLowerCase();
|
||||
if (orientation > 1 && includeRgbaBytes) {
|
||||
_logger.severe("Image EXIF orientation $orientation is not supported");
|
||||
throw Exception(
|
||||
'UnhandledExifOrientation: exif orientation $orientation',
|
||||
);
|
||||
if (format == 'heic' || format == 'heif') {
|
||||
_logger
|
||||
.info("Decoding HEIC/HEIF image with EXIF orientation $orientation");
|
||||
} else {
|
||||
_logger.warning(
|
||||
"Decoding image with EXIF orientation $orientation, for format $format",
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
late Image image;
|
||||
try {
|
||||
image = await decodeImageFromData(imageData);
|
||||
} catch (e, s) {
|
||||
final format = imagePath.split('.').last;
|
||||
_logger.info(
|
||||
'Cannot decode $format on ${Platform.isAndroid ? "Android" : "iOS"}, converting to jpeg',
|
||||
);
|
||||
|
||||
@@ -1,6 +1,5 @@
|
||||
{
|
||||
"tabWidth": 4,
|
||||
"proseWrap": "always",
|
||||
"objectWrap": "collapse",
|
||||
"plugins": [
|
||||
"prettier-plugin-organize-imports",
|
||||
|
||||
@@ -162,7 +162,7 @@
|
||||
"ok": "Gerai",
|
||||
"success": "Pavyko",
|
||||
"error": "Klaida",
|
||||
"note": "",
|
||||
"note": "Pastaba",
|
||||
"offline_message": "Esate neprisijungę. Rodomi prisiminimai iš podėlio.",
|
||||
"install": "Diegti",
|
||||
"install_mobile_app": "Įdiekite mūsų <a>„Android“</a> arba <b>„iOS“</b> programą, kad automatiškai sukurtumėte atsargines visų nuotraukų kopijas",
|
||||
@@ -685,5 +685,5 @@
|
||||
"person_favorites": "{{name}} mėgstami",
|
||||
"shared_favorites": "Bendrinami mėgstami",
|
||||
"added_by_name": "Įtraukė {{name}}",
|
||||
"unowned_files_not_processed": ""
|
||||
"unowned_files_not_processed": "Kiti naudotojai pridėti failai nebuvo apdoroti"
|
||||
}
|
||||
|
||||
@@ -283,7 +283,7 @@
|
||||
"disable_maps_confirm_message": "<p>Ảnh của bạn sẽ thôi hiển thị trên bản đồ thế giới.</p><p>Bạn có thể bật tính năng này bất cứ lúc nào từ Cài đặt.</p>",
|
||||
"details": "Chi tiết",
|
||||
"view_exif": "Xem thông số Exif",
|
||||
"no_exif": "No Exif data",
|
||||
"no_exif": "Không có Exif",
|
||||
"exif": "Exif",
|
||||
"two_factor": "Xác thực 2 bước",
|
||||
"two_factor_authentication": "Xác thực 2 bước",
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
import { decryptMetadataJSON, encryptMetadataJSON } from "ente-base/crypto";
|
||||
import { nullishToZero } from "ente-utils/transform";
|
||||
import { z } from "zod/v4";
|
||||
|
||||
/**
|
||||
@@ -10,7 +11,7 @@ import { z } from "zod/v4";
|
||||
*/
|
||||
export const RemoteMagicMetadata = z.object({
|
||||
version: z.number(),
|
||||
count: z.number(),
|
||||
count: z.number().nullish().transform(nullishToZero),
|
||||
data: z.string(),
|
||||
header: z.string(),
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user