diff --git a/src/chrome/src/ui/locales/ar.js b/src/chrome/src/ui/locales/ar.js index d86133b9c..0ef0676cc 100644 --- a/src/chrome/src/ui/locales/ar.js +++ b/src/chrome/src/ui/locales/ar.js @@ -990,4 +990,46 @@ export default { "sp.workflows.healing.saved": "تم تحديث {count} محددات في «{name}».", "sp.workflows.healing.not_saved": "لم يُحفظ المحدد الموافق عليه لـ «{name}» لأن سير العمل تغيّر أو لأن التحقق لم يكن حاسماً.", 'st.display.cost_allowance_scope': 'Applies only to usage-billed cloud and router providers. WebBrain Cloud and local providers are excluded.', + "st.sync.title": "مزامنة السحابة المشفرة", + "st.sync.lede_html": "أعضاء WebBrain Cloud فقط. مزامنة الذكريات والملء التلقائي للملف الشخصي وإعدادات موفر مفتاح واجهة برمجة التطبيقات عبر الأجهزة. يتم تشفير كل شيء باستخدام كلمة مرور المزامنة الخاصة بك قبل التحميل. لا يستطيع WebBrain قراءته أو استعادته. لا تتم مزامنة سجل الدردشة وتسجيلات الدخول عبر OAuth.", + "st.sync.email.label": "البريد الإلكتروني السحابي WebBrain", + "st.sync.password.label": "مزامنة كلمة المرور للتشفير (+12 حرفًا)", + "st.sync.confirm.label": "تأكيد كلمة مرور المزامنة", + "st.sync.action.auth": "إرسال رابط تسجيل الدخول", + "st.sync.action.enable": "قم بتشغيل المزامنة المشفرة", + "st.sync.action.unlock": "فتح المزامنة المشفرة", + "st.sync.action.now": "مزامنة الآن", + "st.sync.action.lock": "قفل", + "st.sync.action.change_password": "تغيير كلمة مرور المزامنة", + "st.sync.action.disable": "قم بإيقاف تشغيل المزامنة على هذا الجهاز", + "st.sync.action.reset": "استبدل النسخة السحابية بهذا الجهاز", + "st.sync.status.syncing": "جارٍ تحديث المزامنة المشفرة…", + "st.sync.status.offline": "المزامنة المشفرة في انتظار الاتصال.", + "st.sync.status.subscription": "عضوية WebBrain Cloud مطلوبة للمزامنة المشفرة.", + "st.sync.status.error": "المزامنة المشفرة تحتاج إلى الاهتمام.", + "st.sync.status.auth_required": "قم بتسجيل الدخول باستخدام البريد الإلكتروني WebBrain Cloud الخاص بك لاستخدام المزامنة المشفرة.", + "st.sync.status.password_required": "تم تسجيل الدخول. اختر كلمة مرور المزامنة لتشغيل المزامنة المشفرة.", + "st.sync.status.unlocked": "المزامنة المشفرة قيد التشغيل لهذا الجهاز.", + "st.sync.status.locked": "المزامنة المشفرة مقفلة. أدخل كلمة مرور المزامنة لإلغاء قفلها على هذا الجهاز.", + "st.sync.result.updated": "تم تحديث المزامنة المشفرة.", + "st.sync.result.current": "المزامنة المشفرة محدثة.", + "st.sync.pending.syncing": "جارٍ مزامنة النسخة السحابية المشفرة…", + "st.sync.pending.syncing_short": "جارٍ المزامنة…", + "st.sync.error.generic": "فشلت المزامنة المشفرة: {error}", + "st.sync.error.unknown": "خطأ غير معروف", + "st.sync.validation.email_required": "أدخل البريد الإلكتروني الخاص بفواتير WebBrain Cloud.", + "st.sync.validation.password_length": "استخدم كلمة مرور مزامنة مكونة من 12 حرفًا على الأقل.", + "st.sync.validation.confirm_required": "قم بتأكيد كلمة مرور المزامنة.", + "st.sync.validation.password_mismatch": "كلمات مرور المزامنة غير متطابقة.", + "st.sync.prompt.new_password": "كلمة مرور المزامنة الجديدة", + "st.sync.prompt.password": "{label} (+12 حرفًا):", + "st.sync.prompt.confirm_password": "تأكيد كلمة مرور المزامنة:", + "st.sync.prompt.current_password": "كلمة مرور المزامنة الحالية:", + "st.sync.prompt.replacement_password": "مزامنة كلمة المرور للنسخة السحابية البديلة", + "st.sync.auth.check_email": "تحقق من بريدك الإلكتروني، ووافق على رابط تسجيل الدخول إلى WebBrain Cloud، ثم ارجع إلى هنا.", + "st.sync.auth.success": "تمت مصادقة المزامنة السحابية. قم بتعيين كلمة مرور وتمكين المزامنة.", + "st.sync.confirm.disable": "هل تريد إيقاف المزامنة المشفرة على هذا الجهاز؟ ستبقى البيانات المحلية.", + "st.sync.confirm.reset": "هل تريد استبدال النسخة السحابية المشفرة بإعداد WebBrain الحالي لهذا الجهاز؟", + "st.sync.consent.legacy": "هل تريد تفعيل المزامنة المشفرة؟ سيرسل WebBrain نسخة مشفرة من طرف إلى طرف من ذكرياتك، والملء التلقائي لملفك الشخصي، وإعدادات موفر مفتاح واجهة برمجة التطبيقات (API) إلى WebBrain Cloud. لا تتم مزامنة سجل الدردشة وتسجيلات الدخول عبر OAuth.", + "st.sync.consent.denied": "لم يتم منح إذن المزامنة المشفرة.", }; diff --git a/src/chrome/src/ui/locales/bn.js b/src/chrome/src/ui/locales/bn.js index 3222c1811..4102a2352 100644 --- a/src/chrome/src/ui/locales/bn.js +++ b/src/chrome/src/ui/locales/bn.js @@ -988,4 +988,46 @@ export default { "sp.workflows.healing.saved": "“{name}”-এ {count}টি লোকেটর আপডেট করা হয়েছে।", "sp.workflows.healing.not_saved": "ওয়ার্কফ্লো পরিবর্তিত হওয়ায় বা যাচাই অনিশ্চিত থাকায় “{name}”-এর অনুমোদিত লোকেটর সংরক্ষিত হয়নি।", 'st.display.cost_allowance_scope': 'Applies only to usage-billed cloud and router providers. WebBrain Cloud and local providers are excluded.', + "st.sync.title": "এনক্রিপ্ট করা ক্লাউড সিঙ্ক", + "st.sync.lede_html": "শুধুমাত্র WebBrain Cloud সদস্য। সমস্ত ডিভাইস জুড়ে স্মৃতি, প্রোফাইল অটোফিল এবং API-কী প্রদানকারী সেটিংস সিঙ্ক করুন। আপলোড করার আগে আপনার সিঙ্ক পাসওয়ার্ড দিয়ে সবকিছু এনক্রিপ্ট করা হয়েছে। WebBrain এটি পড়তে বা পুনরুদ্ধার করতে পারে না। চ্যাট ইতিহাস এবং OAuth সাইন-ইন সিঙ্ক করা হয় না।", + "st.sync.email.label": "WebBrain Cloud ইমেল", + "st.sync.password.label": "এনক্রিপশনের জন্য সিঙ্ক পাসওয়ার্ড (12+ অক্ষর)", + "st.sync.confirm.label": "সিঙ্ক পাসওয়ার্ড নিশ্চিত করুন", + "st.sync.action.auth": "সাইন-ইন লিঙ্ক পাঠান", + "st.sync.action.enable": "এনক্রিপ্ট করা সিঙ্ক চালু করুন", + "st.sync.action.unlock": "এনক্রিপ্ট করা সিঙ্ক আনলক করুন", + "st.sync.action.now": "এখন সিঙ্ক করুন", + "st.sync.action.lock": "তালা", + "st.sync.action.change_password": "সিঙ্ক পাসওয়ার্ড পরিবর্তন করুন", + "st.sync.action.disable": "এই ডিভাইসে সিঙ্ক বন্ধ করুন", + "st.sync.action.reset": "এই ডিভাইসের সাথে ক্লাউড কপি প্রতিস্থাপন করুন", + "st.sync.status.syncing": "এনক্রিপ্ট করা সিঙ্ক আপডেট হচ্ছে...", + "st.sync.status.offline": "এনক্রিপ্ট করা সিঙ্ক একটি সংযোগের জন্য অপেক্ষা করছে৷", + "st.sync.status.subscription": "এনক্রিপ্ট করা সিঙ্কের জন্য WebBrain ক্লাউড সদস্যতা প্রয়োজন।", + "st.sync.status.error": "এনক্রিপ্ট করা সিঙ্ক মনোযোগ প্রয়োজন.", + "st.sync.status.auth_required": "এনক্রিপ্টেড সিঙ্ক ব্যবহার করতে আপনার WebBrain ক্লাউড ইমেল দিয়ে সাইন ইন করুন।", + "st.sync.status.password_required": "সাইন ইন করেছেন৷ এনক্রিপ্ট করা সিঙ্ক চালু করতে একটি সিঙ্ক পাসওয়ার্ড চয়ন করুন৷", + "st.sync.status.unlocked": "এই ডিভাইসের জন্য এনক্রিপ্ট করা সিঙ্ক চালু আছে।", + "st.sync.status.locked": "এনক্রিপ্ট করা সিঙ্ক লক করা আছে। এই ডিভাইসে এটি আনলক করতে আপনার সিঙ্ক পাসওয়ার্ড লিখুন৷", + "st.sync.result.updated": "এনক্রিপ্ট করা সিঙ্ক আপডেট করা হয়েছে।", + "st.sync.result.current": "এনক্রিপ্ট করা সিঙ্ক আপ টু ডেট৷", + "st.sync.pending.syncing": "এনক্রিপ্ট করা ক্লাউড কপি সিঙ্ক হচ্ছে...", + "st.sync.pending.syncing_short": "সিঙ্ক হচ্ছে...", + "st.sync.error.generic": "এনক্রিপ্ট করা সিঙ্ক ব্যর্থ হয়েছে: {error}৷", + "st.sync.error.unknown": "অজানা ত্রুটি", + "st.sync.validation.email_required": "আপনার WebBrain ক্লাউড বিলিং ইমেল লিখুন।", + "st.sync.validation.password_length": "কমপক্ষে 12টি অক্ষরের একটি সিঙ্ক পাসওয়ার্ড ব্যবহার করুন৷", + "st.sync.validation.confirm_required": "সিঙ্ক পাসওয়ার্ড নিশ্চিত করুন.", + "st.sync.validation.password_mismatch": "সিঙ্ক পাসওয়ার্ড মেলে না.", + "st.sync.prompt.new_password": "নতুন সিঙ্ক পাসওয়ার্ড", + "st.sync.prompt.password": "{label} (12+ অক্ষর):", + "st.sync.prompt.confirm_password": "সিঙ্ক পাসওয়ার্ড নিশ্চিত করুন:", + "st.sync.prompt.current_password": "বর্তমান সিঙ্ক পাসওয়ার্ড:", + "st.sync.prompt.replacement_password": "প্রতিস্থাপন ক্লাউড কপির জন্য পাসওয়ার্ড সিঙ্ক করুন", + "st.sync.auth.check_email": "আপনার ইমেল চেক করুন, WebBrain ক্লাউড সাইন-ইন লিঙ্ক অনুমোদন করুন, তারপর এখানে ফিরে যান।", + "st.sync.auth.success": "ক্লাউড সিঙ্ক প্রমাণীকৃত। একটি পাসওয়ার্ড সেট করুন এবং সিঙ্ক সক্ষম করুন।", + "st.sync.confirm.disable": "এই ডিভাইসে এনক্রিপ্ট করা সিঙ্ক বন্ধ করবেন? স্থানীয় তথ্য থাকবে।", + "st.sync.confirm.reset": "এই ডিভাইসের বর্তমান WebBrain সেটআপ দিয়ে এনক্রিপ্ট করা ক্লাউড কপি প্রতিস্থাপন করবেন?", + "st.sync.consent.legacy": "এনক্রিপ্ট করা সিঙ্ক চালু করবেন? WebBrain আপনার স্মৃতি, প্রোফাইল অটোফিল এবং API-কী প্রদানকারী সেটিংসের একটি এন্ড-টু-এন্ড এনক্রিপ্টেড কপি WebBrain Cloud-এ প্রেরণ করবে। চ্যাট ইতিহাস এবং OAuth সাইন-ইন সিঙ্ক করা হয় না।", + "st.sync.consent.denied": "এনক্রিপ্ট করা সিঙ্ক অনুমতি দেওয়া হয়নি।", }; diff --git a/src/chrome/src/ui/locales/de.js b/src/chrome/src/ui/locales/de.js index 8abe5f537..f55f960f9 100644 --- a/src/chrome/src/ui/locales/de.js +++ b/src/chrome/src/ui/locales/de.js @@ -961,4 +961,46 @@ export default { "sp.workflows.healing.saved": "{count} Locator in „{name}“ aktualisiert.", "sp.workflows.healing.not_saved": "Der bestätigte Locator für „{name}“ wurde nicht gespeichert, weil sich der Workflow geändert hat oder die Prüfung nicht eindeutig war.", 'st.display.cost_allowance_scope': 'Applies only to usage-billed cloud and router providers. WebBrain Cloud and local providers are excluded.', + "st.sync.title": "Verschlüsselte Cloud-Synchronisierung", + "st.sync.lede_html": "Nur für WebBrain Cloud-Mitglieder. Synchronisieren Sie Erinnerungen, das automatische Ausfüllen von Profilen und die Einstellungen des API-Schlüsselanbieters geräteübergreifend. Vor dem Hochladen wird alles mit Ihrem Synchronisierungskennwort verschlüsselt. WebBrain kann es nicht lesen oder wiederherstellen. Chatverlauf und OAuth-Anmeldungen werden nicht synchronisiert.", + "st.sync.email.label": "WebBrain Cloud-E-Mail", + "st.sync.password.label": "Synchronisierungspasswort zur Verschlüsselung (12+ Zeichen)", + "st.sync.confirm.label": "Bestätigen Sie das Synchronisierungskennwort", + "st.sync.action.auth": "Anmeldelink senden", + "st.sync.action.enable": "Aktivieren Sie die verschlüsselte Synchronisierung", + "st.sync.action.unlock": "Entsperren Sie die verschlüsselte Synchronisierung", + "st.sync.action.now": "Jetzt synchronisieren", + "st.sync.action.lock": "Sperren", + "st.sync.action.change_password": "Synchronisierungskennwort ändern", + "st.sync.action.disable": "Schalten Sie die Synchronisierung auf diesem Gerät aus", + "st.sync.action.reset": "Ersetzen Sie die Cloud-Kopie durch dieses Gerät", + "st.sync.status.syncing": "Die verschlüsselte Synchronisierung wird aktualisiert…", + "st.sync.status.offline": "Die verschlüsselte Synchronisierung wartet auf eine Verbindung.", + "st.sync.status.subscription": "Für die verschlüsselte Synchronisierung ist eine WebBrain Cloud-Mitgliedschaft erforderlich.", + "st.sync.status.error": "Die verschlüsselte Synchronisierung erfordert Aufmerksamkeit.", + "st.sync.status.auth_required": "Melden Sie sich mit Ihrer WebBrain Cloud-E-Mail-Adresse an, um die verschlüsselte Synchronisierung zu verwenden.", + "st.sync.status.password_required": "Angemeldet. Wählen Sie ein Synchronisierungskennwort, um die verschlüsselte Synchronisierung zu aktivieren.", + "st.sync.status.unlocked": "Für dieses Gerät ist die verschlüsselte Synchronisierung aktiviert.", + "st.sync.status.locked": "Die verschlüsselte Synchronisierung ist gesperrt. Geben Sie Ihr Synchronisierungskennwort ein, um es auf diesem Gerät zu entsperren.", + "st.sync.result.updated": "Verschlüsselte Synchronisierung aktualisiert.", + "st.sync.result.current": "Die verschlüsselte Synchronisierung ist aktuell.", + "st.sync.pending.syncing": "Verschlüsselte Cloud-Kopie wird synchronisiert…", + "st.sync.pending.syncing_short": "Synchronisierung…", + "st.sync.error.generic": "Verschlüsselte Synchronisierung fehlgeschlagen: {error}", + "st.sync.error.unknown": "Unbekannter Fehler", + "st.sync.validation.email_required": "Geben Sie Ihre WebBrain Cloud-Rechnungs-E-Mail-Adresse ein.", + "st.sync.validation.password_length": "Verwenden Sie ein Synchronisierungskennwort mit mindestens 12 Zeichen.", + "st.sync.validation.confirm_required": "Bestätigen Sie das Synchronisierungskennwort.", + "st.sync.validation.password_mismatch": "Synchronisierungskennwörter stimmen nicht überein.", + "st.sync.prompt.new_password": "Neues Synchronisierungskennwort", + "st.sync.prompt.password": "{label} (12+ Zeichen):", + "st.sync.prompt.confirm_password": "Synchronisierungspasswort bestätigen:", + "st.sync.prompt.current_password": "Aktuelles Synchronisierungskennwort:", + "st.sync.prompt.replacement_password": "Synchronisierungskennwort für die Ersatz-Cloud-Kopie", + "st.sync.auth.check_email": "Überprüfen Sie Ihre E-Mails, genehmigen Sie den WebBrain Cloud-Anmeldelink und kehren Sie dann hierher zurück.", + "st.sync.auth.success": "Cloud Sync authentifiziert. Legen Sie ein Passwort fest und aktivieren Sie die Synchronisierung.", + "st.sync.confirm.disable": "Verschlüsselte Synchronisierung auf diesem Gerät deaktivieren? Lokale Daten bleiben erhalten.", + "st.sync.confirm.reset": "Die verschlüsselte Cloud-Kopie durch das aktuelle WebBrain-Setup dieses Geräts ersetzen?", + "st.sync.consent.legacy": "Verschlüsselte Synchronisierung aktivieren? WebBrain überträgt eine Ende-zu-Ende-verschlüsselte Kopie Ihrer Erinnerungen, des automatischen Ausfüllens Ihres Profils und der Einstellungen des API-Schlüsselanbieters an die WebBrain Cloud. Chatverlauf und OAuth-Anmeldungen werden nicht synchronisiert.", + "st.sync.consent.denied": "Die Berechtigung zur verschlüsselten Synchronisierung wurde nicht erteilt.", }; diff --git a/src/chrome/src/ui/locales/en.js b/src/chrome/src/ui/locales/en.js index 79b574f20..c064d4364 100644 --- a/src/chrome/src/ui/locales/en.js +++ b/src/chrome/src/ui/locales/en.js @@ -992,4 +992,46 @@ export default { "sp.workflows.healing.saved": "Updated {count} locator(s) in “{name}”.", "sp.workflows.healing.not_saved": "The approved locator for “{name}” was not saved because the workflow changed or verification was inconclusive.", 'st.display.cost_allowance_scope': 'Applies only to usage-billed cloud and router providers. WebBrain Cloud and local providers are excluded.', + 'st.sync.title': 'Encrypted Cloud Sync', + 'st.sync.lede_html': 'WebBrain Cloud members only. Sync memories, profile autofill, and API-key provider settings across devices. Everything is encrypted with your sync password before upload. WebBrain cannot read or recover it. Chat history and OAuth sign-ins are not synced.', + 'st.sync.email.label': 'WebBrain Cloud email', + 'st.sync.password.label': 'Sync password for encryption (12+ characters)', + 'st.sync.confirm.label': 'Confirm sync password', + 'st.sync.action.auth': 'Send sign-in link', + 'st.sync.action.enable': 'Turn on encrypted sync', + 'st.sync.action.unlock': 'Unlock encrypted sync', + 'st.sync.action.now': 'Sync now', + 'st.sync.action.lock': 'Lock', + 'st.sync.action.change_password': 'Change sync password', + 'st.sync.action.disable': 'Turn off sync on this device', + 'st.sync.action.reset': 'Replace cloud copy with this device', + 'st.sync.status.syncing': 'Encrypted sync is updating…', + 'st.sync.status.offline': 'Encrypted sync is waiting for a connection.', + 'st.sync.status.subscription': 'WebBrain Cloud membership is required for encrypted sync.', + 'st.sync.status.error': 'Encrypted sync needs attention.', + 'st.sync.status.auth_required': 'Sign in with your WebBrain Cloud email to use encrypted sync.', + 'st.sync.status.password_required': 'Signed in. Choose a sync password to turn on encrypted sync.', + 'st.sync.status.unlocked': 'Encrypted sync is on for this device.', + 'st.sync.status.locked': 'Encrypted sync is locked. Enter your sync password to unlock it on this device.', + 'st.sync.result.updated': 'Encrypted sync updated.', + 'st.sync.result.current': 'Encrypted sync is up to date.', + 'st.sync.pending.syncing': 'Syncing encrypted cloud copy…', + 'st.sync.pending.syncing_short': 'Syncing…', + 'st.sync.error.generic': 'Encrypted sync failed: {error}', + 'st.sync.error.unknown': 'Unknown error', + 'st.sync.validation.email_required': 'Enter your WebBrain Cloud billing email.', + 'st.sync.validation.password_length': 'Use a sync password of at least 12 characters.', + 'st.sync.validation.confirm_required': 'Confirm the sync password.', + 'st.sync.validation.password_mismatch': 'Sync passwords do not match.', + 'st.sync.prompt.new_password': 'New sync password', + 'st.sync.prompt.password': '{label} (12+ characters):', + 'st.sync.prompt.confirm_password': 'Confirm sync password:', + 'st.sync.prompt.current_password': 'Current sync password:', + 'st.sync.prompt.replacement_password': 'Sync password for the replacement cloud copy', + 'st.sync.auth.check_email': 'Check your email, approve the WebBrain Cloud sign-in link, then return here.', + 'st.sync.auth.success': 'Cloud Sync authenticated. Set a password and enable sync.', + 'st.sync.confirm.disable': 'Turn off encrypted sync on this device? Local data will remain.', + 'st.sync.confirm.reset': 'Replace the encrypted cloud copy with this device’s current WebBrain setup?', + 'st.sync.consent.legacy': 'Turn on encrypted sync? WebBrain will transmit an end-to-end encrypted copy of your memories, profile autofill, and API-key provider settings to WebBrain Cloud. Chat history and OAuth sign-ins are not synced.', + 'st.sync.consent.denied': 'Encrypted sync permission was not granted.', }; diff --git a/src/chrome/src/ui/locales/es.js b/src/chrome/src/ui/locales/es.js index 45da1b0b3..8f641f5d7 100644 --- a/src/chrome/src/ui/locales/es.js +++ b/src/chrome/src/ui/locales/es.js @@ -990,4 +990,46 @@ export default { "sp.workflows.healing.saved": "Se actualizaron {count} localizadores en «{name}».", "sp.workflows.healing.not_saved": "El localizador aprobado para «{name}» no se guardó porque el flujo cambió o la verificación no fue concluyente.", 'st.display.cost_allowance_scope': 'Applies only to usage-billed cloud and router providers. WebBrain Cloud and local providers are excluded.', + "st.sync.title": "Sincronización encriptada en la nube", + "st.sync.lede_html": "Solo miembros de WebBrain Cloud. Sincronice memorias, autocompletar perfiles y configuraciones del proveedor de claves API en todos los dispositivos. Todo está cifrado con su contraseña de sincronización antes de cargarlo. WebBrain no puede leerlo ni recuperarlo. El historial de chat y los inicios de sesión de OAuth no están sincronizados.", + "st.sync.email.label": "Correo electrónico en la nube de WebBrain", + "st.sync.password.label": "Contraseña de sincronización para cifrado (más de 12 caracteres)", + "st.sync.confirm.label": "Confirmar contraseña de sincronización", + "st.sync.action.auth": "Enviar enlace de inicio de sesión", + "st.sync.action.enable": "Activar la sincronización cifrada", + "st.sync.action.unlock": "Desbloquear sincronización cifrada", + "st.sync.action.now": "Sincronizar ahora", + "st.sync.action.lock": "Bloquear", + "st.sync.action.change_password": "Cambiar contraseña de sincronización", + "st.sync.action.disable": "Desactivar la sincronización en este dispositivo", + "st.sync.action.reset": "Reemplace la copia en la nube con este dispositivo", + "st.sync.status.syncing": "La sincronización cifrada se está actualizando...", + "st.sync.status.offline": "La sincronización cifrada está esperando una conexión.", + "st.sync.status.subscription": "Se requiere membresía de WebBrain Cloud para la sincronización cifrada.", + "st.sync.status.error": "La sincronización cifrada necesita atención.", + "st.sync.status.auth_required": "Inicie sesión con su correo electrónico de WebBrain Cloud para utilizar la sincronización cifrada.", + "st.sync.status.password_required": "Ha iniciado sesión. Elija una contraseña de sincronización para activar la sincronización cifrada.", + "st.sync.status.unlocked": "La sincronización cifrada está activada para este dispositivo.", + "st.sync.status.locked": "La sincronización cifrada está bloqueada. Ingrese su contraseña de sincronización para desbloquearla en este dispositivo.", + "st.sync.result.updated": "Sincronización cifrada actualizada.", + "st.sync.result.current": "La sincronización cifrada está actualizada.", + "st.sync.pending.syncing": "Sincronizando copia cifrada en la nube...", + "st.sync.pending.syncing_short": "Sincronizando…", + "st.sync.error.generic": "Error de sincronización cifrada: {error}", + "st.sync.error.unknown": "Error desconocido", + "st.sync.validation.email_required": "Ingrese su correo electrónico de facturación de WebBrain Cloud.", + "st.sync.validation.password_length": "Utilice una contraseña de sincronización de al menos 12 caracteres.", + "st.sync.validation.confirm_required": "Confirme la contraseña de sincronización.", + "st.sync.validation.password_mismatch": "Las contraseñas de sincronización no coinciden.", + "st.sync.prompt.new_password": "Nueva contraseña de sincronización", + "st.sync.prompt.password": "{label} (más de 12 caracteres):", + "st.sync.prompt.confirm_password": "Confirmar contraseña de sincronización:", + "st.sync.prompt.current_password": "Contraseña de sincronización actual:", + "st.sync.prompt.replacement_password": "Contraseña de sincronización para la copia en la nube de reemplazo", + "st.sync.auth.check_email": "Revise su correo electrónico, apruebe el enlace de inicio de sesión de WebBrain Cloud y luego regrese aquí.", + "st.sync.auth.success": "Sincronización en la nube autenticada. Establezca una contraseña y habilite la sincronización.", + "st.sync.confirm.disable": "¿Desactivar la sincronización cifrada en este dispositivo? Los datos locales permanecerán.", + "st.sync.confirm.reset": "¿Reemplazar la copia cifrada en la nube con la configuración actual de WebBrain de este dispositivo?", + "st.sync.consent.legacy": "¿Activar sincronización cifrada? WebBrain transmitirá una copia cifrada de extremo a extremo de sus recuerdos, el autocompletado de perfiles y la configuración del proveedor de claves API a WebBrain Cloud. El historial de chat y los inicios de sesión de OAuth no están sincronizados.", + "st.sync.consent.denied": "No se concedió el permiso de sincronización cifrada.", }; diff --git a/src/chrome/src/ui/locales/fa.js b/src/chrome/src/ui/locales/fa.js index 10b01fe65..977e01826 100644 --- a/src/chrome/src/ui/locales/fa.js +++ b/src/chrome/src/ui/locales/fa.js @@ -988,4 +988,46 @@ export default { "sp.workflows.healing.saved": "{count} مکان‌یاب در «{name}» به‌روزرسانی شد.", "sp.workflows.healing.not_saved": "مکان‌یاب تأییدشدهٔ «{name}» ذخیره نشد، زیرا گردش‌کار تغییر کرده بود یا نتیجهٔ تأیید قطعی نبود.", 'st.display.cost_allowance_scope': 'Applies only to usage-billed cloud and router providers. WebBrain Cloud and local providers are excluded.', + "st.sync.title": "همگام سازی ابری رمزگذاری شده", + "st.sync.lede_html": "فقط اعضای WebBrain Cloud. حافظه‌ها، تکمیل خودکار نمایه و تنظیمات ارائه‌دهنده کلید API را در دستگاه‌ها همگام‌سازی کنید. همه چیز قبل از آپلود با رمز عبور همگام شما رمزگذاری می شود. WebBrain نمی تواند آن را بخواند یا بازیابی کند. سابقه گپ و ورود به سیستم OAuth همگام سازی نمی شوند.", + "st.sync.email.label": "ایمیل WebBrain Cloud", + "st.sync.password.label": "همگام سازی رمز عبور برای رمزگذاری (12+ کاراکتر)", + "st.sync.confirm.label": "رمز عبور همگام سازی را تأیید کنید", + "st.sync.action.auth": "ارسال لینک ورود", + "st.sync.action.enable": "همگام سازی رمزگذاری شده را روشن کنید", + "st.sync.action.unlock": "باز کردن قفل همگام سازی رمزگذاری شده", + "st.sync.action.now": "اکنون همگام سازی کنید", + "st.sync.action.lock": "قفل کنید", + "st.sync.action.change_password": "تغییر رمز عبور همگام سازی", + "st.sync.action.disable": "همگام سازی را در این دستگاه خاموش کنید", + "st.sync.action.reset": "کپی ابری را با این دستگاه جایگزین کنید", + "st.sync.status.syncing": "همگام سازی رمزگذاری شده در حال به روز رسانی است…", + "st.sync.status.offline": "همگام سازی رمزگذاری شده در انتظار اتصال است.", + "st.sync.status.subscription": "عضویت WebBrain Cloud برای همگام سازی رمزگذاری شده لازم است.", + "st.sync.status.error": "همگام سازی رمزگذاری شده نیاز به توجه دارد.", + "st.sync.status.auth_required": "با ایمیل WebBrain Cloud خود وارد شوید تا از همگام سازی رمزگذاری شده استفاده کنید.", + "st.sync.status.password_required": "وارد سیستم شده‌اید. برای روشن کردن همگام‌سازی رمزگذاری‌شده، رمز عبور همگام‌سازی را انتخاب کنید.", + "st.sync.status.unlocked": "همگام سازی رمزگذاری شده برای این دستگاه روشن است.", + "st.sync.status.locked": "همگام سازی رمزگذاری شده قفل شده است. رمز عبور همگام‌سازی خود را وارد کنید تا قفل آن در این دستگاه باز شود.", + "st.sync.result.updated": "همگام سازی رمزگذاری شده به روز شد.", + "st.sync.result.current": "همگام سازی رمزگذاری شده به روز است.", + "st.sync.pending.syncing": "در حال همگام سازی نسخه ابری رمزگذاری شده…", + "st.sync.pending.syncing_short": "در حال همگام سازی…", + "st.sync.error.generic": "همگام سازی رمزگذاری شده انجام نشد: {error}", + "st.sync.error.unknown": "خطای ناشناخته", + "st.sync.validation.email_required": "ایمیل صورتحساب WebBrain Cloud خود را وارد کنید.", + "st.sync.validation.password_length": "از رمز عبور همگام سازی حداقل 12 کاراکتر استفاده کنید.", + "st.sync.validation.confirm_required": "رمز عبور همگام سازی را تأیید کنید.", + "st.sync.validation.password_mismatch": "گذرواژه‌های همگام‌سازی مطابقت ندارند.", + "st.sync.prompt.new_password": "رمز عبور همگام سازی جدید", + "st.sync.prompt.password": "{label} (12+ نویسه):", + "st.sync.prompt.confirm_password": "تایید رمز عبور همگام سازی:", + "st.sync.prompt.current_password": "رمز عبور همگام سازی فعلی:", + "st.sync.prompt.replacement_password": "رمز عبور را برای نسخه ابری جایگزین همگام کنید", + "st.sync.auth.check_email": "ایمیل خود را بررسی کنید، پیوند ورود به WebBrain Cloud را تأیید کنید، سپس به اینجا بازگردید.", + "st.sync.auth.success": "Cloud Sync احراز هویت شد. رمز عبور تنظیم کنید و همگام سازی را فعال کنید.", + "st.sync.confirm.disable": "همگام سازی رمزگذاری شده در این دستگاه خاموش شود؟ داده های محلی باقی خواهند ماند.", + "st.sync.confirm.reset": "کپی ابری رمزگذاری شده با راه‌اندازی فعلی WebBrain این دستگاه جایگزین شود؟", + "st.sync.consent.legacy": "همگام سازی رمزگذاری شده روشن شود؟ WebBrain یک نسخه رمزگذاری شده سرتاسر از خاطرات، تکمیل خودکار نمایه و تنظیمات ارائه دهنده کلید API شما را به WebBrain Cloud منتقل می کند. سابقه گپ و ورود به سیستم OAuth همگام سازی نمی شوند.", + "st.sync.consent.denied": "مجوز همگام‌سازی رمزگذاری شده داده نشد.", }; diff --git a/src/chrome/src/ui/locales/fr.js b/src/chrome/src/ui/locales/fr.js index 3345dd3f9..d0e10ebef 100644 --- a/src/chrome/src/ui/locales/fr.js +++ b/src/chrome/src/ui/locales/fr.js @@ -990,4 +990,46 @@ export default { "sp.workflows.healing.saved": "{count} localisateur(s) mis à jour dans « {name} ».", "sp.workflows.healing.not_saved": "Le localisateur approuvé pour « {name} » n’a pas été enregistré, car le workflow a changé ou la vérification était incertaine.", 'st.display.cost_allowance_scope': 'Applies only to usage-billed cloud and router providers. WebBrain Cloud and local providers are excluded.', + "st.sync.title": "Synchronisation cloud cryptée", + "st.sync.lede_html": "Membres WebBrain Cloud uniquement. Synchronisez les mémoires, le remplissage automatique du profil et les paramètres du fournisseur de clé API sur tous les appareils. Tout est crypté avec votre mot de passe de synchronisation avant le téléchargement. WebBrain ne peut pas le lire ou le récupérer. L'historique des discussions et les connexions OAuth ne sont pas synchronisés.", + "st.sync.email.label": "E-mail WebBrain Cloud", + "st.sync.password.label": "Mot de passe de synchronisation pour le cryptage (12+ caractères)", + "st.sync.confirm.label": "Confirmer le mot de passe de synchronisation", + "st.sync.action.auth": "Envoyer le lien de connexion", + "st.sync.action.enable": "Activer la synchronisation chiffrée", + "st.sync.action.unlock": "Débloquez la synchronisation cryptée", + "st.sync.action.now": "Synchronisez maintenant", + "st.sync.action.lock": "Verrouiller", + "st.sync.action.change_password": "Changer le mot de passe de synchronisation", + "st.sync.action.disable": "Désactiver la synchronisation sur cet appareil", + "st.sync.action.reset": "Remplacer la copie cloud par cet appareil", + "st.sync.status.syncing": "La synchronisation cryptée est en cours de mise à jour…", + "st.sync.status.offline": "La synchronisation cryptée attend une connexion.", + "st.sync.status.subscription": "L'adhésion à WebBrain Cloud est requise pour la synchronisation cryptée.", + "st.sync.status.error": "La synchronisation cryptée nécessite votre attention.", + "st.sync.status.auth_required": "Connectez-vous avec votre adresse e-mail WebBrain Cloud pour utiliser la synchronisation cryptée.", + "st.sync.status.password_required": "Connecté. Choisissez un mot de passe de synchronisation pour activer la synchronisation cryptée.", + "st.sync.status.unlocked": "La synchronisation chiffrée est activée pour cet appareil.", + "st.sync.status.locked": "La synchronisation cryptée est verrouillée. Entrez votre mot de passe de synchronisation pour le déverrouiller sur cet appareil.", + "st.sync.result.updated": "Synchronisation cryptée mise à jour.", + "st.sync.result.current": "La synchronisation cryptée est à jour.", + "st.sync.pending.syncing": "Synchronisation de la copie cloud cryptée…", + "st.sync.pending.syncing_short": "Synchronisation…", + "st.sync.error.generic": "Échec de la synchronisation chiffrée : {error}", + "st.sync.error.unknown": "Erreur inconnue", + "st.sync.validation.email_required": "Saisissez votre e-mail de facturation WebBrain Cloud.", + "st.sync.validation.password_length": "Utilisez un mot de passe de synchronisation d'au moins 12 caractères.", + "st.sync.validation.confirm_required": "Confirmez le mot de passe de synchronisation.", + "st.sync.validation.password_mismatch": "Les mots de passe de synchronisation ne correspondent pas.", + "st.sync.prompt.new_password": "Nouveau mot de passe de synchronisation", + "st.sync.prompt.password": "{label} (12+ caractères) :", + "st.sync.prompt.confirm_password": "Confirmez le mot de passe de synchronisation :", + "st.sync.prompt.current_password": "Mot de passe de synchronisation actuel :", + "st.sync.prompt.replacement_password": "Mot de passe de synchronisation pour la copie cloud de remplacement", + "st.sync.auth.check_email": "Vérifiez votre courrier électronique, approuvez le lien de connexion WebBrain Cloud, puis revenez ici.", + "st.sync.auth.success": "Cloud Sync authentifié. Définissez un mot de passe et activez la synchronisation.", + "st.sync.confirm.disable": "Désactiver la synchronisation chiffrée sur cet appareil ? Les données locales resteront.", + "st.sync.confirm.reset": "Remplacer la copie cloud cryptée par la configuration WebBrain actuelle de cet appareil ?", + "st.sync.consent.legacy": "Activer la synchronisation chiffrée ? WebBrain transmettra une copie cryptée de bout en bout de vos souvenirs, du remplissage automatique de votre profil et des paramètres du fournisseur de clé API à WebBrain Cloud. L'historique des discussions et les connexions OAuth ne sont pas synchronisés.", + "st.sync.consent.denied": "L'autorisation de synchronisation chiffrée n'a pas été accordée.", }; diff --git a/src/chrome/src/ui/locales/he.js b/src/chrome/src/ui/locales/he.js index e4134d9bb..ba9f53073 100644 --- a/src/chrome/src/ui/locales/he.js +++ b/src/chrome/src/ui/locales/he.js @@ -943,4 +943,46 @@ export default { "sp.workflows.healing.saved": "עודכנו {count} מאתרים ב־„{name}”.", "sp.workflows.healing.not_saved": "המאתר שאושר עבור „{name}” לא נשמר משום שתהליך העבודה השתנה או שהאימות לא היה חד־משמעי.", 'st.display.cost_allowance_scope': 'Applies only to usage-billed cloud and router providers. WebBrain Cloud and local providers are excluded.', + "st.sync.title": "סנכרון ענן מוצפן", + "st.sync.lede_html": "חברי WebBrain Cloud בלבד. סנכרן זיכרונות, מילוי אוטומטי של פרופילים והגדרות ספק מפתח API בין מכשירים. הכל מוצפן עם סיסמת הסנכרון שלך לפני ההעלאה. WebBrain לא יכול לקרוא או לשחזר אותו. היסטוריית הצ'אט וכניסות OAuth אינן מסונכרנות.", + "st.sync.email.label": "דוא\"ל של WebBrain Cloud", + "st.sync.password.label": "סיסמת סנכרון להצפנה (12+ תווים)", + "st.sync.confirm.label": "אשר את סיסמת הסנכרון", + "st.sync.action.auth": "שלח קישור כניסה", + "st.sync.action.enable": "הפעל סנכרון מוצפן", + "st.sync.action.unlock": "בטל את הנעילה של סנכרון מוצפן", + "st.sync.action.now": "סנכרן עכשיו", + "st.sync.action.lock": "מנעול", + "st.sync.action.change_password": "שנה את סיסמת הסנכרון", + "st.sync.action.disable": "כבה את הסנכרון במכשיר זה", + "st.sync.action.reset": "החלף עותק ענן במכשיר זה", + "st.sync.status.syncing": "סנכרון מוצפן מתעדכן...", + "st.sync.status.offline": "סנכרון מוצפן ממתין לחיבור.", + "st.sync.status.subscription": "נדרשת חברות ב-WebBrain Cloud לסנכרון מוצפן.", + "st.sync.status.error": "סנכרון מוצפן דורש תשומת לב.", + "st.sync.status.auth_required": "היכנס עם האימייל שלך ב-WebBrain Cloud כדי להשתמש בסנכרון מוצפן.", + "st.sync.status.password_required": "מחובר. בחר סיסמת סנכרון כדי להפעיל סנכרון מוצפן.", + "st.sync.status.unlocked": "סנכרון מוצפן מופעל עבור מכשיר זה.", + "st.sync.status.locked": "סנכרון מוצפן נעול. הזן את סיסמת הסנכרון שלך כדי לבטל את נעילתה במכשיר זה.", + "st.sync.result.updated": "סנכרון מוצפן עודכן.", + "st.sync.result.current": "סנכרון מוצפן מעודכן.", + "st.sync.pending.syncing": "מסנכרן עותק מוצפן בענן...", + "st.sync.pending.syncing_short": "מסנכרן...", + "st.sync.error.generic": "סנכרון מוצפן נכשל: {error}", + "st.sync.error.unknown": "שגיאה לא ידועה", + "st.sync.validation.email_required": "הזן את דוא\"ל החיוב שלך ב-WebBrain Cloud.", + "st.sync.validation.password_length": "השתמש בסיסמת סנכרון של לפחות 12 תווים.", + "st.sync.validation.confirm_required": "אשר את סיסמת הסנכרון.", + "st.sync.validation.password_mismatch": "סיסמאות סנכרון אינן תואמות.", + "st.sync.prompt.new_password": "סיסמת סנכרון חדשה", + "st.sync.prompt.password": "{label} (12+ תווים):", + "st.sync.prompt.confirm_password": "אשר את סיסמת הסנכרון:", + "st.sync.prompt.current_password": "סיסמת סנכרון נוכחית:", + "st.sync.prompt.replacement_password": "סיסמת סנכרון עבור עותק הענן החלופי", + "st.sync.auth.check_email": "בדוק את הדוא\"ל שלך, אשר את קישור הכניסה של WebBrain Cloud ואז חזור לכאן.", + "st.sync.auth.success": "Cloud Sync מאומת. הגדר סיסמה והפעל סנכרון.", + "st.sync.confirm.disable": "לכבות את הסנכרון המוצפן במכשיר הזה? הנתונים המקומיים יישארו.", + "st.sync.confirm.reset": "האם להחליף את עותק הענן המוצפן בהגדרות WebBrain הנוכחיות של המכשיר הזה?", + "st.sync.consent.legacy": "להפעיל סנכרון מוצפן? WebBrain ישדר עותק מוצפן מקצה לקצה של הזיכרונות, המילוי האוטומטי של הפרופיל והגדרות ספק מפתח ה-API שלך ל-WebBrain Cloud. היסטוריית הצ'אט וכניסות OAuth אינן מסונכרנות.", + "st.sync.consent.denied": "הרשאת סנכרון מוצפן לא ניתנה.", }; diff --git a/src/chrome/src/ui/locales/hi.js b/src/chrome/src/ui/locales/hi.js index 7c7361bdf..0c6723b63 100644 --- a/src/chrome/src/ui/locales/hi.js +++ b/src/chrome/src/ui/locales/hi.js @@ -988,4 +988,46 @@ export default { "sp.workflows.healing.saved": "“{name}” में {count} लोकेटर अपडेट किए गए।", "sp.workflows.healing.not_saved": "“{name}” के लिए स्वीकृत लोकेटर सहेजा नहीं गया क्योंकि वर्कफ़्लो बदल गया था या सत्यापन निर्णायक नहीं था।", 'st.display.cost_allowance_scope': 'Applies only to usage-billed cloud and router providers. WebBrain Cloud and local providers are excluded.', + "st.sync.title": "एन्क्रिप्टेड क्लाउड सिंक", + "st.sync.lede_html": "केवल WebBrain Cloud सदस्यों के लिए। डिवाइसों के बीच यादें, प्रोफ़ाइल ऑटोफ़िल और API-कुंजी प्रदाता सेटिंग्स सिंक करें। अपलोड से पहले सब कुछ आपके सिंक पासवर्ड से एन्क्रिप्ट किया जाता है। WebBrain इसे पढ़ या पुनर्प्राप्त नहीं कर सकता। चैट इतिहास और OAuth साइन-इन सिंक नहीं किए जाते।", + "st.sync.email.label": "WebBrain Cloud ईमेल", + "st.sync.password.label": "एन्क्रिप्शन के लिए सिंक पासवर्ड (12+ अक्षर)", + "st.sync.confirm.label": "सिंक पासवर्ड की पुष्टि करें", + "st.sync.action.auth": "साइन-इन लिंक भेजें", + "st.sync.action.enable": "एन्क्रिप्टेड सिंक चालू करें", + "st.sync.action.unlock": "एन्क्रिप्टेड सिंक अनलॉक करें", + "st.sync.action.now": "अभी सिंक करें", + "st.sync.action.lock": "ताला", + "st.sync.action.change_password": "सिंक पासवर्ड बदलें", + "st.sync.action.disable": "इस डिवाइस पर सिंक बंद करें", + "st.sync.action.reset": "इस डिवाइस से क्लाउड कॉपी बदलें", + "st.sync.status.syncing": "एन्क्रिप्टेड सिंक अपडेट हो रहा है...", + "st.sync.status.offline": "एन्क्रिप्टेड सिंक कनेक्शन की प्रतीक्षा कर रहा है.", + "st.sync.status.subscription": "एन्क्रिप्टेड सिंक के लिए WebBrain Cloud सदस्यता आवश्यक है।", + "st.sync.status.error": "एन्क्रिप्टेड सिंक पर ध्यान देने की जरूरत है।", + "st.sync.status.auth_required": "एन्क्रिप्टेड सिंक का उपयोग करने के लिए अपने WebBrain Cloud ईमेल से साइन इन करें।", + "st.sync.status.password_required": "साइन इन हो गया। एन्क्रिप्टेड सिंक चालू करने के लिए एक सिंक पासवर्ड चुनें।", + "st.sync.status.unlocked": "इस डिवाइस के लिए एन्क्रिप्टेड सिंक चालू है.", + "st.sync.status.locked": "एन्क्रिप्टेड सिंक लॉक है। इस डिवाइस पर इसे अनलॉक करने के लिए अपना सिंक पासवर्ड दर्ज करें।", + "st.sync.result.updated": "एन्क्रिप्टेड सिंक अपडेट किया गया.", + "st.sync.result.current": "एन्क्रिप्टेड सिंक अद्यतित है.", + "st.sync.pending.syncing": "एन्क्रिप्टेड क्लाउड कॉपी सिंक हो रही है…", + "st.sync.pending.syncing_short": "सिंक हो रहा है...", + "st.sync.error.generic": "एन्क्रिप्टेड सिंक विफल: {error}", + "st.sync.error.unknown": "अज्ञात त्रुटि", + "st.sync.validation.email_required": "अपना WebBrain Cloud बिलिंग ईमेल दर्ज करें।", + "st.sync.validation.password_length": "कम से कम 12 अक्षरों का सिंक पासवर्ड उपयोग करें।", + "st.sync.validation.confirm_required": "सिंक पासवर्ड की पुष्टि करें.", + "st.sync.validation.password_mismatch": "सिंक पासवर्ड मेल नहीं खाते.", + "st.sync.prompt.new_password": "नया सिंक पासवर्ड", + "st.sync.prompt.password": "{label} (12+ अक्षर):", + "st.sync.prompt.confirm_password": "सिंक पासवर्ड की पुष्टि करें:", + "st.sync.prompt.current_password": "वर्तमान सिंक पासवर्ड:", + "st.sync.prompt.replacement_password": "प्रतिस्थापन क्लाउड कॉपी के लिए सिंक पासवर्ड", + "st.sync.auth.check_email": "अपना ईमेल देखें, WebBrain Cloud साइन-इन लिंक को स्वीकृत करें, फिर यहां लौटें।", + "st.sync.auth.success": "क्लाउड सिंक प्रमाणित। एक पासवर्ड सेट करें और सिंक सक्षम करें।", + "st.sync.confirm.disable": "इस डिवाइस पर एन्क्रिप्टेड सिंक बंद करें? स्थानीय डेटा रहेगा.", + "st.sync.confirm.reset": "क्या एन्क्रिप्टेड क्लाउड कॉपी को इस डिवाइस के मौजूदा WebBrain सेटअप से बदलना है?", + "st.sync.consent.legacy": "एन्क्रिप्टेड सिंक चालू करें? WebBrain आपकी यादों, प्रोफ़ाइल ऑटोफ़िल और API-कुंजी प्रदाता सेटिंग्स की एंड-टू-एंड एन्क्रिप्टेड कॉपी WebBrain Cloud को भेजेगा। चैट इतिहास और OAuth साइन-इन सिंक नहीं किए जाते।", + "st.sync.consent.denied": "एन्क्रिप्टेड सिंक अनुमति नहीं दी गई थी.", }; diff --git a/src/chrome/src/ui/locales/id.js b/src/chrome/src/ui/locales/id.js index 33823fe1a..cc6cc2f34 100644 --- a/src/chrome/src/ui/locales/id.js +++ b/src/chrome/src/ui/locales/id.js @@ -990,4 +990,46 @@ export default { "sp.workflows.healing.saved": "Memperbarui {count} locator di “{name}”.", "sp.workflows.healing.not_saved": "Locator yang disetujui untuk “{name}” tidak disimpan karena alur kerja berubah atau verifikasi tidak meyakinkan.", 'st.display.cost_allowance_scope': 'Applies only to usage-billed cloud and router providers. WebBrain Cloud and local providers are excluded.', + "st.sync.title": "Sinkronisasi Cloud Terenkripsi", + "st.sync.lede_html": "Khusus anggota WebBrain Cloud. Menyinkronkan memori, pengisian otomatis profil, dan pengaturan penyedia kunci API di seluruh perangkat. Semuanya dienkripsi dengan kata sandi sinkronisasi Anda sebelum diunggah. WebBrain tidak dapat membaca atau memulihkannya. Riwayat obrolan dan proses masuk OAuth tidak disinkronkan.", + "st.sync.email.label": "Email Cloud WebBrain", + "st.sync.password.label": "Sinkronkan kata sandi untuk enkripsi (12+ karakter)", + "st.sync.confirm.label": "Konfirmasikan kata sandi sinkronisasi", + "st.sync.action.auth": "Kirim tautan masuk", + "st.sync.action.enable": "Aktifkan sinkronisasi terenkripsi", + "st.sync.action.unlock": "Buka kunci sinkronisasi terenkripsi", + "st.sync.action.now": "Sinkronkan sekarang", + "st.sync.action.lock": "Kunci", + "st.sync.action.change_password": "Ubah kata sandi sinkronisasi", + "st.sync.action.disable": "Nonaktifkan sinkronisasi pada perangkat ini", + "st.sync.action.reset": "Ganti salinan cloud dengan perangkat ini", + "st.sync.status.syncing": "Sinkronisasi terenkripsi sedang diperbarui…", + "st.sync.status.offline": "Sinkronisasi terenkripsi sedang menunggu koneksi.", + "st.sync.status.subscription": "Keanggotaan WebBrain Cloud diperlukan untuk sinkronisasi terenkripsi.", + "st.sync.status.error": "Sinkronisasi terenkripsi memerlukan perhatian.", + "st.sync.status.auth_required": "Masuk dengan email WebBrain Cloud Anda untuk menggunakan sinkronisasi terenkripsi.", + "st.sync.status.password_required": "Masuk. Pilih kata sandi sinkronisasi untuk mengaktifkan sinkronisasi terenkripsi.", + "st.sync.status.unlocked": "Sinkronisasi terenkripsi aktif untuk perangkat ini.", + "st.sync.status.locked": "Sinkronisasi terenkripsi terkunci. Masukkan kata sandi sinkronisasi Anda untuk membuka kuncinya di perangkat ini.", + "st.sync.result.updated": "Sinkronisasi terenkripsi diperbarui.", + "st.sync.result.current": "Sinkronisasi terenkripsi adalah yang terbaru.", + "st.sync.pending.syncing": "Menyinkronkan salinan cloud terenkripsi…", + "st.sync.pending.syncing_short": "Menyinkronkan…", + "st.sync.error.generic": "Sinkronisasi terenkripsi gagal: {error}", + "st.sync.error.unknown": "Kesalahan tidak diketahui", + "st.sync.validation.email_required": "Masukkan email penagihan WebBrain Cloud Anda.", + "st.sync.validation.password_length": "Gunakan kata sandi sinkronisasi minimal 12 karakter.", + "st.sync.validation.confirm_required": "Konfirmasikan kata sandi sinkronisasi.", + "st.sync.validation.password_mismatch": "Kata sandi sinkronisasi tidak cocok.", + "st.sync.prompt.new_password": "Kata sandi sinkronisasi baru", + "st.sync.prompt.password": "{label} (12+ karakter):", + "st.sync.prompt.confirm_password": "Konfirmasikan kata sandi sinkronisasi:", + "st.sync.prompt.current_password": "Kata sandi sinkronisasi saat ini:", + "st.sync.prompt.replacement_password": "Sinkronkan kata sandi untuk salinan cloud pengganti", + "st.sync.auth.check_email": "Periksa email Anda, setujui tautan masuk WebBrain Cloud, lalu kembali ke sini.", + "st.sync.auth.success": "Sinkronisasi Cloud diautentikasi. Tetapkan kata sandi dan aktifkan sinkronisasi.", + "st.sync.confirm.disable": "Nonaktifkan sinkronisasi terenkripsi di perangkat ini? Data lokal akan tetap ada.", + "st.sync.confirm.reset": "Ganti salinan cloud terenkripsi dengan pengaturan WebBrain perangkat ini saat ini?", + "st.sync.consent.legacy": "Aktifkan sinkronisasi terenkripsi? WebBrain akan mengirimkan salinan memori Anda yang terenkripsi ujung ke ujung, pengisian otomatis profil, dan pengaturan penyedia kunci API ke WebBrain Cloud. Riwayat obrolan dan proses masuk OAuth tidak disinkronkan.", + "st.sync.consent.denied": "Izin sinkronisasi terenkripsi tidak diberikan.", }; diff --git a/src/chrome/src/ui/locales/ja.js b/src/chrome/src/ui/locales/ja.js index 57ef21c82..cc2867729 100644 --- a/src/chrome/src/ui/locales/ja.js +++ b/src/chrome/src/ui/locales/ja.js @@ -990,4 +990,46 @@ export default { "sp.workflows.healing.saved": "「{name}」のロケーターを {count} 件更新しました。", "sp.workflows.healing.not_saved": "ワークフローが変更されたか検証結果が不確実だったため、「{name}」で承認されたロケーターは保存されませんでした。", 'st.display.cost_allowance_scope': 'Applies only to usage-billed cloud and router providers. WebBrain Cloud and local providers are excluded.', + "st.sync.title": "暗号化されたクラウド同期", + "st.sync.lede_html": "WebBrain Cloud メンバーのみ デバイス間でメモリ、プロファイルの自動入力、API キー プロバイダーの設定を同期します。アップロード前に、すべてが同期パスワードで暗号化されます。 WebBrain はそれを読み取ることも回復することもできません。チャット履歴と OAuth サインインは同期されません。", + "st.sync.email.label": "WebBrain クラウドメール", + "st.sync.password.label": "暗号化用の同期パスワード (12 文字以上)", + "st.sync.confirm.label": "同期パスワードの確認", + "st.sync.action.auth": "サインインリンクを送信する", + "st.sync.action.enable": "暗号化された同期をオンにする", + "st.sync.action.unlock": "暗号化された同期のロックを解除する", + "st.sync.action.now": "今すぐ同期する", + "st.sync.action.lock": "ロック", + "st.sync.action.change_password": "同期パスワードを変更する", + "st.sync.action.disable": "このデバイスの同期をオフにする", + "st.sync.action.reset": "クラウドコピーをこのデバイスに置き換えます", + "st.sync.status.syncing": "暗号化された同期を更新中です…", + "st.sync.status.offline": "暗号化された同期は接続を待機しています。", + "st.sync.status.subscription": "暗号化同期には WebBrain Cloud メンバーシップが必要です。", + "st.sync.status.error": "暗号化された同期には注意が必要です。", + "st.sync.status.auth_required": "暗号化された同期を使用するには、WebBrain Cloud メールでサインインします。", + "st.sync.status.password_required": "サインインしています。同期パスワードを選択して、暗号化された同期を有効にします。", + "st.sync.status.unlocked": "このデバイスでは暗号化された同期がオンになっています。", + "st.sync.status.locked": "暗号化された同期はロックされています。同期パスワードを入力して、このデバイスのロックを解除します。", + "st.sync.result.updated": "暗号化された同期が更新されました。", + "st.sync.result.current": "暗号化された同期は最新です。", + "st.sync.pending.syncing": "暗号化されたクラウド コピーを同期しています…", + "st.sync.pending.syncing_short": "同期中…", + "st.sync.error.generic": "暗号化された同期が失敗しました: {error}", + "st.sync.error.unknown": "不明なエラー", + "st.sync.validation.email_required": "WebBrain Cloud の請求先メールアドレスを入力します。", + "st.sync.validation.password_length": "少なくとも 12 文字の同期パスワードを使用してください。", + "st.sync.validation.confirm_required": "同期パスワードを確認します。", + "st.sync.validation.password_mismatch": "同期パスワードが一致しません。", + "st.sync.prompt.new_password": "新しい同期パスワード", + "st.sync.prompt.password": "{label} (12 文字以上):", + "st.sync.prompt.confirm_password": "同期パスワードを確認します:", + "st.sync.prompt.current_password": "現在の同期パスワード:", + "st.sync.prompt.replacement_password": "置換クラウドコピーの同期パスワード", + "st.sync.auth.check_email": "メールを確認し、WebBrain Cloud サインイン リンクを承認して、ここに戻ってください。", + "st.sync.auth.success": "クラウド同期が認証されました。パスワードを設定し、同期を有効にします。", + "st.sync.confirm.disable": "このデバイスの暗号化された同期をオフにしますか?ローカルデータは残ります。", + "st.sync.confirm.reset": "暗号化されたクラウド コピーをこのデバイスの現在の WebBrain セットアップに置き換えますか?", + "st.sync.consent.legacy": "暗号化された同期をオンにしますか? WebBrain は、エンドツーエンドで暗号化された思い出、プロファイルの自動入力、API キー プロバイダー設定のコピーを WebBrain Cloud に送信します。チャット履歴と OAuth サインインは同期されません。", + "st.sync.consent.denied": "暗号化された同期権限が付与されませんでした。", }; diff --git a/src/chrome/src/ui/locales/ko.js b/src/chrome/src/ui/locales/ko.js index cabe74da0..43125380c 100644 --- a/src/chrome/src/ui/locales/ko.js +++ b/src/chrome/src/ui/locales/ko.js @@ -990,4 +990,46 @@ export default { "sp.workflows.healing.saved": "“{name}”에서 로케이터 {count}개를 업데이트했습니다.", "sp.workflows.healing.not_saved": "워크플로가 변경되었거나 검증 결과가 불확실하여 “{name}”에서 승인한 로케이터를 저장하지 않았습니다.", 'st.display.cost_allowance_scope': 'Applies only to usage-billed cloud and router providers. WebBrain Cloud and local providers are excluded.', + "st.sync.title": "암호화된 클라우드 동기화", + "st.sync.lede_html": "WebBrain Cloud 회원 전용. 여러 기기에서 추억, 프로필 자동 완성, API 키 제공자 설정을 동기화합니다. 업로드하기 전에 모든 것이 동기화 비밀번호로 암호화됩니다. WebBrain은 이를 읽거나 복구할 수 없습니다. 채팅 기록과 OAuth 로그인은 동기화되지 않습니다.", + "st.sync.email.label": "WebBrain Cloud 이메일", + "st.sync.password.label": "암호화를 위한 동기화 비밀번호(12자 이상)", + "st.sync.confirm.label": "동기화 비밀번호 확인", + "st.sync.action.auth": "로그인 링크 보내기", + "st.sync.action.enable": "암호화된 동기화 켜기", + "st.sync.action.unlock": "암호화된 동기화 잠금 해제", + "st.sync.action.now": "지금 동기화", + "st.sync.action.lock": "잠금", + "st.sync.action.change_password": "동기화 비밀번호 변경", + "st.sync.action.disable": "이 기기에서 동기화 끄기", + "st.sync.action.reset": "클라우드 사본을 이 장치로 교체", + "st.sync.status.syncing": "암호화된 동기화가 업데이트 중입니다…", + "st.sync.status.offline": "암호화된 동기화가 연결을 기다리고 있습니다.", + "st.sync.status.subscription": "암호화된 동기화를 위해서는 WebBrain Cloud 멤버십이 필요합니다.", + "st.sync.status.error": "암호화된 동기화에는 주의가 필요합니다.", + "st.sync.status.auth_required": "암호화된 동기화를 사용하려면 WebBrain Cloud 이메일로 로그인하세요.", + "st.sync.status.password_required": "로그인했습니다. 암호화된 동기화를 켜려면 동기화 비밀번호를 선택하세요.", + "st.sync.status.unlocked": "이 기기에 암호화된 동기화가 켜져 있습니다.", + "st.sync.status.locked": "암호화된 동기화가 잠겨 있습니다. 이 기기에서 잠금을 해제하려면 동기화 비밀번호를 입력하세요.", + "st.sync.result.updated": "암호화된 동기화가 업데이트되었습니다.", + "st.sync.result.current": "암호화된 동기화가 최신 상태입니다.", + "st.sync.pending.syncing": "암호화된 클라우드 사본 동기화 중…", + "st.sync.pending.syncing_short": "동기화 중…", + "st.sync.error.generic": "암호화된 동기화 실패: {error}", + "st.sync.error.unknown": "알 수 없는 오류", + "st.sync.validation.email_required": "WebBrain Cloud 청구 이메일을 입력하세요.", + "st.sync.validation.password_length": "12자 이상의 동기화 비밀번호를 사용하세요.", + "st.sync.validation.confirm_required": "동기화 비밀번호를 확인하세요.", + "st.sync.validation.password_mismatch": "동기화 비밀번호가 일치하지 않습니다.", + "st.sync.prompt.new_password": "새 동기화 비밀번호", + "st.sync.prompt.password": "{label}(12자 이상):", + "st.sync.prompt.confirm_password": "동기화 비밀번호 확인:", + "st.sync.prompt.current_password": "현재 동기화 비밀번호:", + "st.sync.prompt.replacement_password": "대체 클라우드 사본에 대한 동기화 비밀번호", + "st.sync.auth.check_email": "이메일을 확인하고 WebBrain Cloud 로그인 링크를 승인한 후 여기로 돌아오세요.", + "st.sync.auth.success": "클라우드 동기화가 인증되었습니다. 비밀번호를 설정하고 동기화를 활성화하세요.", + "st.sync.confirm.disable": "이 기기에서 암호화된 동기화를 끄시겠습니까? 로컬 데이터는 그대로 유지됩니다.", + "st.sync.confirm.reset": "암호화된 클라우드 사본을 이 기기의 현재 WebBrain 설정으로 바꾸시겠습니까?", + "st.sync.consent.legacy": "암호화된 동기화를 사용하시겠습니까? WebBrain은 추억, 프로필 자동 완성 및 API 키 제공자 설정의 엔드 투 엔드 암호화 사본을 WebBrain Cloud로 전송합니다. 채팅 기록과 OAuth 로그인은 동기화되지 않습니다.", + "st.sync.consent.denied": "암호화된 동기화 권한이 부여되지 않았습니다.", }; diff --git a/src/chrome/src/ui/locales/ms.js b/src/chrome/src/ui/locales/ms.js index 315b740d0..aee4a8575 100644 --- a/src/chrome/src/ui/locales/ms.js +++ b/src/chrome/src/ui/locales/ms.js @@ -990,4 +990,46 @@ export default { "sp.workflows.healing.saved": "Mengemas kini {count} pencari dalam “{name}”.", "sp.workflows.healing.not_saved": "Pencari yang diluluskan untuk “{name}” tidak disimpan kerana aliran kerja berubah atau pengesahan tidak muktamad.", 'st.display.cost_allowance_scope': 'Applies only to usage-billed cloud and router providers. WebBrain Cloud and local providers are excluded.', + "st.sync.title": "Penyegerakan Awan Disulitkan", + "st.sync.lede_html": "Ahli WebBrain Cloud sahaja. Segerakkan kenangan, autoisi profil dan tetapan pembekal kunci API merentas peranti. Semuanya disulitkan dengan kata laluan penyegerakan anda sebelum memuat naik. WebBrain tidak boleh membaca atau memulihkannya. Sejarah sembang dan log masuk OAuth tidak disegerakkan.", + "st.sync.email.label": "E-mel WebBrain Cloud", + "st.sync.password.label": "Segerakkan kata laluan untuk penyulitan (12+ aksara)", + "st.sync.confirm.label": "Sahkan kata laluan penyegerakan", + "st.sync.action.auth": "Hantar pautan log masuk", + "st.sync.action.enable": "Hidupkan penyegerakan yang disulitkan", + "st.sync.action.unlock": "Buka kunci penyegerakan yang disulitkan", + "st.sync.action.now": "Segerakkan sekarang", + "st.sync.action.lock": "Kunci", + "st.sync.action.change_password": "Tukar kata laluan penyegerakan", + "st.sync.action.disable": "Matikan penyegerakan pada peranti ini", + "st.sync.action.reset": "Gantikan salinan awan dengan peranti ini", + "st.sync.status.syncing": "Penyegerakan yang disulitkan sedang mengemas kini…", + "st.sync.status.offline": "Penyegerakan yang disulitkan sedang menunggu sambungan.", + "st.sync.status.subscription": "Keahlian WebBrain Cloud diperlukan untuk penyegerakan yang disulitkan.", + "st.sync.status.error": "Penyegerakan yang disulitkan memerlukan perhatian.", + "st.sync.status.auth_required": "Log masuk dengan e-mel WebBrain Cloud anda untuk menggunakan penyegerakan yang disulitkan.", + "st.sync.status.password_required": "Log masuk. Pilih kata laluan penyegerakan untuk menghidupkan penyegerakan yang disulitkan.", + "st.sync.status.unlocked": "Penyegerakan yang disulitkan dihidupkan untuk peranti ini.", + "st.sync.status.locked": "Penyegerakan yang disulitkan dikunci. Masukkan kata laluan penyegerakan anda untuk membuka kuncinya pada peranti ini.", + "st.sync.result.updated": "Penyegerakan yang disulitkan dikemas kini.", + "st.sync.result.current": "Penyegerakan yang disulitkan adalah terkini.", + "st.sync.pending.syncing": "Menyegerakkan salinan awan yang disulitkan…", + "st.sync.pending.syncing_short": "Menyegerakkan…", + "st.sync.error.generic": "Penyegerakan yang disulitkan gagal: {error}", + "st.sync.error.unknown": "Ralat tidak diketahui", + "st.sync.validation.email_required": "Masukkan e-mel pengebilan WebBrain Cloud anda.", + "st.sync.validation.password_length": "Gunakan kata laluan penyegerakan sekurang-kurangnya 12 aksara.", + "st.sync.validation.confirm_required": "Sahkan kata laluan penyegerakan.", + "st.sync.validation.password_mismatch": "Kata laluan penyegerakan tidak sepadan.", + "st.sync.prompt.new_password": "Kata laluan penyegerakan baharu", + "st.sync.prompt.password": "{label} (12+ aksara):", + "st.sync.prompt.confirm_password": "Sahkan kata laluan penyegerakan:", + "st.sync.prompt.current_password": "Kata laluan penyegerakan semasa:", + "st.sync.prompt.replacement_password": "Segerakkan kata laluan untuk salinan awan gantian", + "st.sync.auth.check_email": "Semak e-mel anda, luluskan pautan log masuk WebBrain Cloud, kemudian kembali ke sini.", + "st.sync.auth.success": "Cloud Sync disahkan. Tetapkan kata laluan dan dayakan penyegerakan.", + "st.sync.confirm.disable": "Matikan penyegerakan yang disulitkan pada peranti ini? Data tempatan akan kekal.", + "st.sync.confirm.reset": "Gantikan salinan awan yang disulitkan dengan persediaan WebBrain semasa peranti ini?", + "st.sync.consent.legacy": "Hidupkan penyegerakan yang disulitkan? WebBrain akan menghantar salinan memori anda yang disulitkan hujung ke hujung, autolengkap profil dan tetapan pembekal kunci API ke WebBrain Cloud. Sejarah sembang dan log masuk OAuth tidak disegerakkan.", + "st.sync.consent.denied": "Kebenaran penyegerakan yang disulitkan tidak diberikan.", }; diff --git a/src/chrome/src/ui/locales/nl.js b/src/chrome/src/ui/locales/nl.js index 5e8c3224f..f079a96e8 100644 --- a/src/chrome/src/ui/locales/nl.js +++ b/src/chrome/src/ui/locales/nl.js @@ -941,4 +941,46 @@ export default { "sp.workflows.healing.saved": "{count} locator(s) in ‘{name}’ bijgewerkt.", "sp.workflows.healing.not_saved": "De goedgekeurde locator voor ‘{name}’ is niet opgeslagen omdat de workflow was gewijzigd of de verificatie niet overtuigend was.", 'st.display.cost_allowance_scope': 'Applies only to usage-billed cloud and router providers. WebBrain Cloud and local providers are excluded.', + "st.sync.title": "Gecodeerde cloudsynchronisatie", + "st.sync.lede_html": "Alleen voor WebBrain Cloud-leden. Synchroniseer herinneringen, automatisch aanvullen van profielen en instellingen van de API-sleutelprovider op verschillende apparaten. Alles wordt vóór het uploaden gecodeerd met uw synchronisatiewachtwoord. WebBrain kan het niet lezen of herstellen. Chatgeschiedenis en OAuth-aanmeldingen worden niet gesynchroniseerd.", + "st.sync.email.label": "WebBrain Cloud-e-mail", + "st.sync.password.label": "Synchronisatiewachtwoord voor codering (12+ tekens)", + "st.sync.confirm.label": "Bevestig het synchronisatiewachtwoord", + "st.sync.action.auth": "Inloglink verzenden", + "st.sync.action.enable": "Schakel gecodeerde synchronisatie in", + "st.sync.action.unlock": "Ontgrendel gecodeerde synchronisatie", + "st.sync.action.now": "Synchroniseer nu", + "st.sync.action.lock": "Vergrendelen", + "st.sync.action.change_password": "Wijzig het synchronisatiewachtwoord", + "st.sync.action.disable": "Schakel synchronisatie uit op dit apparaat", + "st.sync.action.reset": "Vervang cloudkopie door dit apparaat", + "st.sync.status.syncing": "Gecodeerde synchronisatie wordt bijgewerkt…", + "st.sync.status.offline": "Gecodeerde synchronisatie wacht op een verbinding.", + "st.sync.status.subscription": "WebBrain Cloud-lidmaatschap is vereist voor gecodeerde synchronisatie.", + "st.sync.status.error": "Gecodeerde synchronisatie heeft aandacht nodig.", + "st.sync.status.auth_required": "Meld u aan met uw WebBrain Cloud-e-mailadres om gecodeerde synchronisatie te gebruiken.", + "st.sync.status.password_required": "Ingelogd. Kies een synchronisatiewachtwoord om gecodeerde synchronisatie in te schakelen.", + "st.sync.status.unlocked": "Versleutelde synchronisatie staat aan voor dit apparaat.", + "st.sync.status.locked": "Gecodeerde synchronisatie is vergrendeld. Voer uw synchronisatiewachtwoord in om het op dit apparaat te ontgrendelen.", + "st.sync.result.updated": "Gecodeerde synchronisatie bijgewerkt.", + "st.sync.result.current": "Gecodeerde synchronisatie is up-to-date.", + "st.sync.pending.syncing": "Versleutelde cloudkopie synchroniseren…", + "st.sync.pending.syncing_short": "Synchroniseren…", + "st.sync.error.generic": "Gecodeerde synchronisatie mislukt: {error}", + "st.sync.error.unknown": "Onbekende fout", + "st.sync.validation.email_required": "Voer uw WebBrain Cloud-facturerings-e-mailadres in.", + "st.sync.validation.password_length": "Gebruik een synchronisatiewachtwoord van minimaal 12 tekens.", + "st.sync.validation.confirm_required": "Bevestig het synchronisatiewachtwoord.", + "st.sync.validation.password_mismatch": "Synchronisatiewachtwoorden komen niet overeen.", + "st.sync.prompt.new_password": "Nieuw synchronisatiewachtwoord", + "st.sync.prompt.password": "{label} (12+ tekens):", + "st.sync.prompt.confirm_password": "Synchronisatiewachtwoord bevestigen:", + "st.sync.prompt.current_password": "Huidig synchronisatiewachtwoord:", + "st.sync.prompt.replacement_password": "Synchroniseer het wachtwoord voor de vervangende cloudkopie", + "st.sync.auth.check_email": "Controleer uw e-mail, keur de aanmeldingslink voor WebBrain Cloud goed en kom dan hier terug.", + "st.sync.auth.success": "Cloudsynchronisatie geverifieerd. Stel een wachtwoord in en schakel synchronisatie in.", + "st.sync.confirm.disable": "Versleutelde synchronisatie op dit apparaat uitschakelen? Lokale gegevens blijven behouden.", + "st.sync.confirm.reset": "De gecodeerde cloudkopie vervangen door de huidige WebBrain-installatie van dit apparaat?", + "st.sync.consent.legacy": "Versleutelde synchronisatie inschakelen? WebBrain verzendt een end-to-end gecodeerde kopie van uw herinneringen, automatisch aanvullen van profielen en API-sleutelproviderinstellingen naar WebBrain Cloud. Chatgeschiedenis en OAuth-aanmeldingen worden niet gesynchroniseerd.", + "st.sync.consent.denied": "Er is geen versleutelde synchronisatietoestemming verleend.", }; diff --git a/src/chrome/src/ui/locales/pl.js b/src/chrome/src/ui/locales/pl.js index 3435e27d5..68787c542 100644 --- a/src/chrome/src/ui/locales/pl.js +++ b/src/chrome/src/ui/locales/pl.js @@ -950,4 +950,46 @@ export default { "sp.workflows.healing.saved": "Zaktualizowano {count} lokalizatorów w „{name}”.", "sp.workflows.healing.not_saved": "Zatwierdzony lokalizator dla „{name}” nie został zapisany, ponieważ przepływ się zmienił lub weryfikacja nie była jednoznaczna.", 'st.display.cost_allowance_scope': 'Applies only to usage-billed cloud and router providers. WebBrain Cloud and local providers are excluded.', + "st.sync.title": "Szyfrowana synchronizacja w chmurze", + "st.sync.lede_html": "Tylko członkowie WebBrain Cloud. Synchronizuj wspomnienia, automatyczne uzupełnianie profili i ustawienia dostawcy klucza API na różnych urządzeniach. Przed przesłaniem wszystko jest szyfrowane przy użyciu hasła synchronizacji. WebBrain nie może go odczytać ani odzyskać. Historia czatów i logowania OAuth nie są synchronizowane.", + "st.sync.email.label": "Poczta e-mail w chmurze WebBrain", + "st.sync.password.label": "Hasło synchronizacji do szyfrowania (ponad 12 znaków)", + "st.sync.confirm.label": "Potwierdź hasło synchronizacji", + "st.sync.action.auth": "Wyślij link do logowania", + "st.sync.action.enable": "Włącz szyfrowaną synchronizację", + "st.sync.action.unlock": "Odblokuj szyfrowaną synchronizację", + "st.sync.action.now": "Zsynchronizuj teraz", + "st.sync.action.lock": "Blokada", + "st.sync.action.change_password": "Zmień hasło synchronizacji", + "st.sync.action.disable": "Wyłącz synchronizację na tym urządzeniu", + "st.sync.action.reset": "Zamień kopię w chmurze na to urządzenie", + "st.sync.status.syncing": "Szyfrowana synchronizacja jest aktualizowana…", + "st.sync.status.offline": "Szyfrowana synchronizacja oczekuje na połączenie.", + "st.sync.status.subscription": "Do szyfrowanej synchronizacji wymagane jest członkostwo w WebBrain Cloud.", + "st.sync.status.error": "Szyfrowana synchronizacja wymaga uwagi.", + "st.sync.status.auth_required": "Zaloguj się przy użyciu adresu e-mail WebBrain Cloud, aby korzystać z szyfrowanej synchronizacji.", + "st.sync.status.password_required": "Zalogowano. Wybierz hasło synchronizacji, aby włączyć szyfrowaną synchronizację.", + "st.sync.status.unlocked": "Szyfrowana synchronizacja jest włączona na tym urządzeniu.", + "st.sync.status.locked": "Szyfrowana synchronizacja jest zablokowana. Wprowadź hasło synchronizacji, aby odblokować je na tym urządzeniu.", + "st.sync.result.updated": "Zaktualizowano szyfrowaną synchronizację.", + "st.sync.result.current": "Szyfrowana synchronizacja jest aktualna.", + "st.sync.pending.syncing": "Synchronizowanie zaszyfrowanej kopii w chmurze…", + "st.sync.pending.syncing_short": "Synchronizowanie…", + "st.sync.error.generic": "Szyfrowana synchronizacja nie powiodła się: {error}", + "st.sync.error.unknown": "Nieznany błąd", + "st.sync.validation.email_required": "Wpisz swój adres e-mail rozliczeniowy WebBrain Cloud.", + "st.sync.validation.password_length": "Użyj hasła synchronizacji składającego się z co najmniej 12 znaków.", + "st.sync.validation.confirm_required": "Potwierdź hasło synchronizacji.", + "st.sync.validation.password_mismatch": "Hasła synchronizacji nie są zgodne.", + "st.sync.prompt.new_password": "Nowe hasło synchronizacji", + "st.sync.prompt.password": "{label} (ponad 12 znaków):", + "st.sync.prompt.confirm_password": "Potwierdź hasło synchronizacji:", + "st.sync.prompt.current_password": "Aktualne hasło synchronizacji:", + "st.sync.prompt.replacement_password": "Zsynchronizuj hasło dla zastępczej kopii w chmurze", + "st.sync.auth.check_email": "Sprawdź swoją pocztę e-mail, zatwierdź link logowania do WebBrain Cloud, a następnie wróć tutaj.", + "st.sync.auth.success": "Uwierzytelniona synchronizacja w chmurze. Ustaw hasło i włącz synchronizację.", + "st.sync.confirm.disable": "Wyłączyć szyfrowaną synchronizację na tym urządzeniu? Dane lokalne pozostaną.", + "st.sync.confirm.reset": "Zastąpić zaszyfrowaną kopię w chmurze bieżącą konfiguracją WebBrain tego urządzenia?", + "st.sync.consent.legacy": "Włączyć szyfrowaną synchronizację? WebBrain prześle kompleksowo zaszyfrowaną kopię Twoich wspomnień, autouzupełniania profilu i ustawień dostawcy klucza API do chmury WebBrain. Historia czatów i logowania OAuth nie są synchronizowane.", + "st.sync.consent.denied": "Nie przyznano zezwolenia na szyfrowaną synchronizację.", }; diff --git a/src/chrome/src/ui/locales/pt.js b/src/chrome/src/ui/locales/pt.js index 9b8655eb9..971324474 100644 --- a/src/chrome/src/ui/locales/pt.js +++ b/src/chrome/src/ui/locales/pt.js @@ -988,4 +988,46 @@ export default { "sp.workflows.healing.saved": "Foram atualizados {count} localizadores em “{name}”.", "sp.workflows.healing.not_saved": "O localizador aprovado para “{name}” não foi salvo porque o fluxo mudou ou a verificação foi inconclusiva.", 'st.display.cost_allowance_scope': 'Applies only to usage-billed cloud and router providers. WebBrain Cloud and local providers are excluded.', + "st.sync.title": "Sincronização em nuvem criptografada", + "st.sync.lede_html": "Apenas para membros do WebBrain Cloud. Sincronize memórias, preenchimento automático de perfil e configurações de provedor de chave de API entre dispositivos. Tudo é criptografado com sua senha de sincronização antes do upload. O WebBrain não pode lê-lo ou recuperá-lo. O histórico de bate-papo e os logins do OAuth não são sincronizados.", + "st.sync.email.label": "E-mail WebBrain Cloud", + "st.sync.password.label": "Senha de sincronização para criptografia (mais de 12 caracteres)", + "st.sync.confirm.label": "Confirme a senha de sincronização", + "st.sync.action.auth": "Enviar link de login", + "st.sync.action.enable": "Ative a sincronização criptografada", + "st.sync.action.unlock": "Desbloquear sincronização criptografada", + "st.sync.action.now": "Sincronize agora", + "st.sync.action.lock": "Bloquear", + "st.sync.action.change_password": "Alterar senha de sincronização", + "st.sync.action.disable": "Desative a sincronização neste dispositivo", + "st.sync.action.reset": "Substitua a cópia na nuvem por este dispositivo", + "st.sync.status.syncing": "A sincronização criptografada está sendo atualizada…", + "st.sync.status.offline": "A sincronização criptografada está aguardando uma conexão.", + "st.sync.status.subscription": "A associação ao WebBrain Cloud é necessária para sincronização criptografada.", + "st.sync.status.error": "A sincronização criptografada precisa de atenção.", + "st.sync.status.auth_required": "Faça login com seu e-mail WebBrain Cloud para usar a sincronização criptografada.", + "st.sync.status.password_required": "Conectado. Escolha uma senha de sincronização para ativar a sincronização criptografada.", + "st.sync.status.unlocked": "A sincronização criptografada está ativada para este dispositivo.", + "st.sync.status.locked": "A sincronização criptografada está bloqueada. Digite sua senha de sincronização para desbloqueá-la neste dispositivo.", + "st.sync.result.updated": "Sincronização criptografada atualizada.", + "st.sync.result.current": "A sincronização criptografada está atualizada.", + "st.sync.pending.syncing": "Sincronizando cópia criptografada na nuvem…", + "st.sync.pending.syncing_short": "Sincronizando…", + "st.sync.error.generic": "Falha na sincronização criptografada: {error}", + "st.sync.error.unknown": "Erro desconhecido", + "st.sync.validation.email_required": "Digite seu e-mail de cobrança do WebBrain Cloud.", + "st.sync.validation.password_length": "Use uma senha de sincronização de pelo menos 12 caracteres.", + "st.sync.validation.confirm_required": "Confirme a senha de sincronização.", + "st.sync.validation.password_mismatch": "As senhas de sincronização não correspondem.", + "st.sync.prompt.new_password": "Nova senha de sincronização", + "st.sync.prompt.password": "{label} (mais de 12 caracteres):", + "st.sync.prompt.confirm_password": "Confirme a senha de sincronização:", + "st.sync.prompt.current_password": "Senha de sincronização atual:", + "st.sync.prompt.replacement_password": "Senha de sincronização para a cópia substituta na nuvem", + "st.sync.auth.check_email": "Verifique seu e-mail, aprove o link de login do WebBrain Cloud e retorne aqui.", + "st.sync.auth.success": "Cloud Sync autenticado. Defina uma senha e ative a sincronização.", + "st.sync.confirm.disable": "Desativar a sincronização criptografada neste dispositivo? Os dados locais permanecerão.", + "st.sync.confirm.reset": "Substituir a cópia criptografada na nuvem pela configuração atual do WebBrain deste dispositivo?", + "st.sync.consent.legacy": "Ativar a sincronização criptografada? O WebBrain transmitirá uma cópia criptografada de ponta a ponta de suas memórias, preenchimento automático de perfil e configurações do provedor de chave API para o WebBrain Cloud. O histórico de bate-papo e os logins do OAuth não são sincronizados.", + "st.sync.consent.denied": "A permissão de sincronização criptografada não foi concedida.", }; diff --git a/src/chrome/src/ui/locales/ru.js b/src/chrome/src/ui/locales/ru.js index ee686a113..c4dc12d06 100644 --- a/src/chrome/src/ui/locales/ru.js +++ b/src/chrome/src/ui/locales/ru.js @@ -990,4 +990,46 @@ export default { "sp.workflows.healing.saved": "Обновлено локаторов в «{name}»: {count}.", "sp.workflows.healing.not_saved": "Одобренный локатор для «{name}» не сохранён: сценарий изменился или результат проверки оказался неоднозначным.", 'st.display.cost_allowance_scope': 'Applies only to usage-billed cloud and router providers. WebBrain Cloud and local providers are excluded.', + "st.sync.title": "Зашифрованная облачная синхронизация", + "st.sync.lede_html": "Только для участников WebBrain Cloud. Синхронизация памяти, автозаполнение профиля и настройки поставщика ключей API на всех устройствах. Перед загрузкой все шифруется вашим паролем синхронизации. WebBrain не может прочитать или восстановить его. История чата и входы по OAuth не синхронизируются.", + "st.sync.email.label": "Электронная почта WebBrain Cloud", + "st.sync.password.label": "Пароль синхронизации для шифрования (12+ символов)", + "st.sync.confirm.label": "Подтвердите пароль синхронизации", + "st.sync.action.auth": "Отправить ссылку для входа", + "st.sync.action.enable": "Включить шифрованную синхронизацию", + "st.sync.action.unlock": "Разблокировать зашифрованную синхронизацию", + "st.sync.action.now": "Синхронизировать сейчас", + "st.sync.action.lock": "Блокировка", + "st.sync.action.change_password": "Изменить пароль синхронизации", + "st.sync.action.disable": "Отключить синхронизацию на этом устройстве", + "st.sync.action.reset": "Заменить облачную копию этим устройством", + "st.sync.status.syncing": "Зашифрованная синхронизация обновляется…", + "st.sync.status.offline": "Зашифрованная синхронизация ожидает соединения.", + "st.sync.status.subscription": "Для зашифрованной синхронизации требуется членство в WebBrain Cloud.", + "st.sync.status.error": "Зашифрованная синхронизация требует внимания.", + "st.sync.status.auth_required": "Войдите в систему, используя адрес электронной почты WebBrain Cloud, чтобы использовать зашифрованную синхронизацию.", + "st.sync.status.password_required": "Выполнен вход. Выберите пароль синхронизации, чтобы включить зашифрованную синхронизацию.", + "st.sync.status.unlocked": "Для этого устройства включена шифрованная синхронизация.", + "st.sync.status.locked": "Зашифрованная синхронизация заблокирована. Введите пароль синхронизации, чтобы разблокировать его на этом устройстве.", + "st.sync.result.updated": "Шифрованная синхронизация обновлена.", + "st.sync.result.current": "Зашифрованная синхронизация актуальна.", + "st.sync.pending.syncing": "Синхронизация зашифрованной облачной копии…", + "st.sync.pending.syncing_short": "Синхронизация…", + "st.sync.error.generic": "Ошибка зашифрованной синхронизации: {error}", + "st.sync.error.unknown": "Неизвестная ошибка", + "st.sync.validation.email_required": "Введите адрес электронной почты для выставления счета в WebBrain Cloud.", + "st.sync.validation.password_length": "Используйте пароль синхронизации длиной не менее 12 символов.", + "st.sync.validation.confirm_required": "Подтвердите пароль синхронизации.", + "st.sync.validation.password_mismatch": "Пароли синхронизации не совпадают.", + "st.sync.prompt.new_password": "Новый пароль синхронизации", + "st.sync.prompt.password": "{label} (12+ символов):", + "st.sync.prompt.confirm_password": "Подтвердите пароль синхронизации:", + "st.sync.prompt.current_password": "Текущий пароль синхронизации:", + "st.sync.prompt.replacement_password": "Пароль синхронизации для замены облачной копии", + "st.sync.auth.check_email": "Проверьте свою электронную почту, подтвердите ссылку для входа в WebBrain Cloud, а затем вернитесь сюда.", + "st.sync.auth.success": "Cloud Sync прошел проверку подлинности. Установите пароль и включите синхронизацию.", + "st.sync.confirm.disable": "Отключить шифрованную синхронизацию на этом устройстве? Локальные данные останутся.", + "st.sync.confirm.reset": "Заменить зашифрованную облачную копию текущей настройкой WebBrain этого устройства?", + "st.sync.consent.legacy": "Включить шифрованную синхронизацию? WebBrain передаст сквозную зашифрованную копию ваших воспоминаний, автозаполнение профиля и настройки поставщика ключей API в WebBrain Cloud. История чата и входы по OAuth не синхронизируются.", + "st.sync.consent.denied": "Разрешение на зашифрованную синхронизацию не предоставлено.", }; diff --git a/src/chrome/src/ui/locales/th.js b/src/chrome/src/ui/locales/th.js index 9063d1426..a4dfd2476 100644 --- a/src/chrome/src/ui/locales/th.js +++ b/src/chrome/src/ui/locales/th.js @@ -990,4 +990,46 @@ export default { "sp.workflows.healing.saved": "อัปเดตตัวระบุตำแหน่ง {count} รายการใน “{name}” แล้ว", "sp.workflows.healing.not_saved": "ไม่ได้บันทึกตัวระบุตำแหน่งที่อนุมัติสำหรับ “{name}” เพราะเวิร์กโฟลว์เปลี่ยนแปลงหรือผลการยืนยันไม่ชัดเจน", 'st.display.cost_allowance_scope': 'Applies only to usage-billed cloud and router providers. WebBrain Cloud and local providers are excluded.', + "st.sync.title": "การซิงค์คลาวด์ที่เข้ารหัส", + "st.sync.lede_html": "สมาชิก WebBrain Cloud เท่านั้น ซิงค์ความทรงจำ การกรอกโปรไฟล์อัตโนมัติ และการตั้งค่าผู้ให้บริการคีย์ API ในอุปกรณ์ต่างๆ ทุกอย่างถูกเข้ารหัสด้วยรหัสผ่านการซิงค์ของคุณก่อนอัปโหลด WebBrain ไม่สามารถอ่านหรือกู้คืนได้ ประวัติการแชทและการลงชื่อเข้าใช้ OAuth จะไม่ซิงค์กัน", + "st.sync.email.label": "อีเมล WebBrain Cloud", + "st.sync.password.label": "ซิงค์รหัสผ่านสำหรับการเข้ารหัส (12+ ตัวอักษร)", + "st.sync.confirm.label": "ยืนยันรหัสผ่านการซิงค์", + "st.sync.action.auth": "ส่งลิงก์ลงชื่อเข้าใช้", + "st.sync.action.enable": "เปิดการซิงค์ที่เข้ารหัส", + "st.sync.action.unlock": "ปลดล็อกการซิงค์ที่เข้ารหัส", + "st.sync.action.now": "ซิงค์เลย", + "st.sync.action.lock": "ล็อค", + "st.sync.action.change_password": "เปลี่ยนรหัสผ่านการซิงค์", + "st.sync.action.disable": "ปิดการซิงค์บนอุปกรณ์นี้", + "st.sync.action.reset": "แทนที่สำเนาบนคลาวด์ด้วยอุปกรณ์นี้", + "st.sync.status.syncing": "กำลังอัปเดตการซิงค์ที่เข้ารหัส...", + "st.sync.status.offline": "การซิงค์ที่เข้ารหัสกำลังรอการเชื่อมต่อ", + "st.sync.status.subscription": "จำเป็นต้องเป็นสมาชิก WebBrain Cloud สำหรับการซิงค์ที่เข้ารหัส", + "st.sync.status.error": "การซิงค์ที่เข้ารหัสต้องได้รับการดูแล", + "st.sync.status.auth_required": "ลงชื่อเข้าใช้ด้วยอีเมล WebBrain Cloud ของคุณเพื่อใช้การซิงค์ที่เข้ารหัส", + "st.sync.status.password_required": "ลงชื่อเข้าใช้แล้ว เลือกรหัสผ่านการซิงค์เพื่อเปิดการซิงค์ที่เข้ารหัส", + "st.sync.status.unlocked": "การซิงค์ที่เข้ารหัสเปิดอยู่สำหรับอุปกรณ์นี้", + "st.sync.status.locked": "การซิงค์ที่เข้ารหัสถูกล็อค ป้อนรหัสผ่านการซิงค์ของคุณเพื่อปลดล็อคบนอุปกรณ์นี้", + "st.sync.result.updated": "อัปเดตการซิงค์ที่เข้ารหัสแล้ว", + "st.sync.result.current": "การซิงค์ที่เข้ารหัสเป็นข้อมูลล่าสุด", + "st.sync.pending.syncing": "กำลังซิงค์สำเนาบนคลาวด์ที่เข้ารหัส...", + "st.sync.pending.syncing_short": "กำลังซิงค์...", + "st.sync.error.generic": "การซิงค์ที่เข้ารหัสล้มเหลว: {error}", + "st.sync.error.unknown": "ข้อผิดพลาดที่ไม่รู้จัก", + "st.sync.validation.email_required": "กรอกอีเมลเรียกเก็บเงิน WebBrain Cloud ของคุณ", + "st.sync.validation.password_length": "ใช้รหัสผ่านการซิงค์ที่มีความยาวอย่างน้อย 12 ตัวอักษร", + "st.sync.validation.confirm_required": "ยืนยันรหัสผ่านการซิงค์", + "st.sync.validation.password_mismatch": "รหัสผ่านการซิงค์ไม่ตรงกัน", + "st.sync.prompt.new_password": "รหัสผ่านการซิงค์ใหม่", + "st.sync.prompt.password": "{label} (12+ ตัวอักษร):", + "st.sync.prompt.confirm_password": "ยืนยันรหัสผ่านการซิงค์:", + "st.sync.prompt.current_password": "รหัสผ่านการซิงค์ปัจจุบัน:", + "st.sync.prompt.replacement_password": "ซิงค์รหัสผ่านสำหรับสำเนาคลาวด์ทดแทน", + "st.sync.auth.check_email": "ตรวจสอบอีเมลของคุณ อนุมัติลิงก์ลงชื่อเข้าใช้ WebBrain Cloud จากนั้นกลับมาที่นี่", + "st.sync.auth.success": "ตรวจสอบสิทธิ์ Cloud Sync แล้ว ตั้งรหัสผ่านและเปิดใช้งานการซิงค์", + "st.sync.confirm.disable": "ปิดการซิงค์ที่เข้ารหัสบนอุปกรณ์นี้ไหม ข้อมูลในเครื่องจะยังคงอยู่", + "st.sync.confirm.reset": "แทนที่สำเนาบนคลาวด์ที่เข้ารหัสด้วยการตั้งค่า WebBrain ปัจจุบันของอุปกรณ์นี้หรือไม่", + "st.sync.consent.legacy": "เปิดการซิงค์ที่เข้ารหัสไหม WebBrain จะส่งสำเนาความทรงจำของคุณ การกรอกโปรไฟล์อัตโนมัติ และการตั้งค่าผู้ให้บริการคีย์ API ที่เข้ารหัสจากต้นทางถึงปลายทางไปยัง WebBrain Cloud ประวัติการแชทและการลงชื่อเข้าใช้ OAuth จะไม่ซิงค์กัน", + "st.sync.consent.denied": "ไม่ได้รับสิทธิ์การซิงค์ที่เข้ารหัส", }; diff --git a/src/chrome/src/ui/locales/tl.js b/src/chrome/src/ui/locales/tl.js index 54542a732..c46b1d95d 100644 --- a/src/chrome/src/ui/locales/tl.js +++ b/src/chrome/src/ui/locales/tl.js @@ -990,4 +990,46 @@ export default { "sp.workflows.healing.saved": "Na-update ang {count} locator sa “{name}”.", "sp.workflows.healing.not_saved": "Hindi na-save ang inaprubahang locator para sa “{name}” dahil nagbago ang workflow o hindi tiyak ang beripikasyon.", 'st.display.cost_allowance_scope': 'Applies only to usage-billed cloud and router providers. WebBrain Cloud and local providers are excluded.', + "st.sync.title": "Naka-encrypt na Cloud Sync", + "st.sync.lede_html": "Mga miyembro lang ng WebBrain Cloud. I-sync ang mga memory, autofill ng profile, at mga setting ng provider ng API-key sa mga device. Ang lahat ay naka-encrypt gamit ang iyong password sa pag-sync bago mag-upload. Hindi ito mabasa o mabawi ng WebBrain. Hindi naka-sync ang history ng chat at OAuth sign-in.", + "st.sync.email.label": "Email sa WebBrain Cloud", + "st.sync.password.label": "I-sync ang password para sa pag-encrypt (12+ character)", + "st.sync.confirm.label": "Kumpirmahin ang password sa pag-sync", + "st.sync.action.auth": "Magpadala ng link sa pag-sign in", + "st.sync.action.enable": "I-on ang naka-encrypt na pag-sync", + "st.sync.action.unlock": "I-unlock ang naka-encrypt na pag-sync", + "st.sync.action.now": "I-sync ngayon", + "st.sync.action.lock": "I-lock", + "st.sync.action.change_password": "Baguhin ang password sa pag-sync", + "st.sync.action.disable": "I-off ang pag-sync sa device na ito", + "st.sync.action.reset": "Palitan ang cloud copy ng device na ito", + "st.sync.status.syncing": "Ina-update ang naka-encrypt na pag-sync…", + "st.sync.status.offline": "Ang naka-encrypt na pag-sync ay naghihintay para sa isang koneksyon.", + "st.sync.status.subscription": "Kinakailangan ang membership sa WebBrain Cloud para sa naka-encrypt na pag-sync.", + "st.sync.status.error": "Ang naka-encrypt na pag-sync ay nangangailangan ng pansin.", + "st.sync.status.auth_required": "Mag-sign in gamit ang iyong WebBrain Cloud email upang magamit ang naka-encrypt na pag-sync.", + "st.sync.status.password_required": "Naka-sign in. Pumili ng password sa pag-sync para i-on ang naka-encrypt na pag-sync.", + "st.sync.status.unlocked": "Naka-on ang naka-encrypt na pag-sync para sa device na ito.", + "st.sync.status.locked": "Naka-lock ang naka-encrypt na pag-sync. Ilagay ang iyong password sa pag-sync upang i-unlock ito sa device na ito.", + "st.sync.result.updated": "Na-update ang naka-encrypt na pag-sync.", + "st.sync.result.current": "Napapanahon ang naka-encrypt na pag-sync.", + "st.sync.pending.syncing": "Sini-sync ang naka-encrypt na cloud copy...", + "st.sync.pending.syncing_short": "Sini-sync…", + "st.sync.error.generic": "Nabigo ang naka-encrypt na pag-sync: {error}", + "st.sync.error.unknown": "Hindi kilalang error", + "st.sync.validation.email_required": "Ilagay ang iyong email sa pagsingil sa WebBrain Cloud.", + "st.sync.validation.password_length": "Gumamit ng password sa pag-sync ng hindi bababa sa 12 character.", + "st.sync.validation.confirm_required": "Kumpirmahin ang password sa pag-sync.", + "st.sync.validation.password_mismatch": "Hindi tugma ang mga password sa pag-sync.", + "st.sync.prompt.new_password": "Bagong password sa pag-sync", + "st.sync.prompt.password": "{label} (12+ character):", + "st.sync.prompt.confirm_password": "Kumpirmahin ang password sa pag-sync:", + "st.sync.prompt.current_password": "Kasalukuyang password sa pag-sync:", + "st.sync.prompt.replacement_password": "I-sync ang password para sa kapalit na kopya ng cloud", + "st.sync.auth.check_email": "Tingnan ang iyong email, aprubahan ang link sa pag-sign in sa WebBrain Cloud, pagkatapos ay bumalik dito.", + "st.sync.auth.success": "Na-authenticate ang Cloud Sync. Magtakda ng password at paganahin ang pag-sync.", + "st.sync.confirm.disable": "I-off ang naka-encrypt na pag-sync sa device na ito? Mananatili ang lokal na data.", + "st.sync.confirm.reset": "Palitan ang naka-encrypt na cloud copy ng kasalukuyang setup ng WebBrain ng device na ito?", + "st.sync.consent.legacy": "I-on ang naka-encrypt na pag-sync? Magpapadala ang WebBrain ng end-to-end na naka-encrypt na kopya ng iyong mga alaala, profile autofill, at API-key na mga setting ng provider sa WebBrain Cloud. Hindi naka-sync ang history ng chat at OAuth sign-in.", + "st.sync.consent.denied": "Hindi ibinigay ang naka-encrypt na pahintulot sa pag-sync.", }; diff --git a/src/chrome/src/ui/locales/tr.js b/src/chrome/src/ui/locales/tr.js index aa71c0d30..4e3d51853 100644 --- a/src/chrome/src/ui/locales/tr.js +++ b/src/chrome/src/ui/locales/tr.js @@ -989,4 +989,46 @@ export default { "sp.workflows.healing.saved": "“{name}” içinde {count} bulucu güncellendi.", "sp.workflows.healing.not_saved": "İş akışı değiştiği veya doğrulama kesin olmadığı için “{name}” için onaylanan bulucu kaydedilmedi.", 'st.display.cost_allowance_scope': 'Applies only to usage-billed cloud and router providers. WebBrain Cloud and local providers are excluded.', + "st.sync.title": "Şifreli Bulut Senkronizasyonu", + "st.sync.lede_html": "Yalnızca WebBrain Cloud üyeleri. Cihazlar arasında anıları, profil otomatik doldurmayı ve API anahtarı sağlayıcı ayarlarını senkronize edin. Yüklemeden önce her şey senkronizasyon şifrenizle şifrelenir. WebBrain bunu okuyamaz veya kurtaramaz. Sohbet geçmişi ve OAuth oturum açma işlemleri senkronize edilmez.", + "st.sync.email.label": "WebBrain Bulut e-postası", + "st.sync.password.label": "Şifreleme için şifreyi senkronize et (12+ karakter)", + "st.sync.confirm.label": "Senkronizasyon şifresini onaylayın", + "st.sync.action.auth": "Oturum açma bağlantısını gönder", + "st.sync.action.enable": "Şifreli senkronizasyonu aç", + "st.sync.action.unlock": "Şifrelenmiş senkronizasyonun kilidini açın", + "st.sync.action.now": "Şimdi senkronize et", + "st.sync.action.lock": "Kilit", + "st.sync.action.change_password": "Senkronizasyon şifresini değiştir", + "st.sync.action.disable": "Bu cihazda senkronizasyonu kapat", + "st.sync.action.reset": "Bulut kopyasını bu cihazla değiştirin", + "st.sync.status.syncing": "Şifreli senkronizasyon güncelleniyor…", + "st.sync.status.offline": "Şifreli senkronizasyon bir bağlantı bekliyor.", + "st.sync.status.subscription": "Şifreli senkronizasyon için WebBrain Cloud üyeliği gereklidir.", + "st.sync.status.error": "Şifreli senkronizasyona dikkat edilmesi gerekiyor.", + "st.sync.status.auth_required": "Şifreli senkronizasyonu kullanmak için WebBrain Cloud e-postanızla oturum açın.", + "st.sync.status.password_required": "Oturum açıldı. Şifreli senkronizasyonu açmak için bir senkronizasyon şifresi seçin.", + "st.sync.status.unlocked": "Bu cihaz için şifreli senkronizasyon açık.", + "st.sync.status.locked": "Şifreli senkronizasyon kilitlendi. Bu cihazda kilidini açmak için senkronizasyon şifrenizi girin.", + "st.sync.result.updated": "Şifreli senkronizasyon güncellendi.", + "st.sync.result.current": "Şifreli senkronizasyon güncel.", + "st.sync.pending.syncing": "Şifrelenmiş bulut kopyası senkronize ediliyor…", + "st.sync.pending.syncing_short": "Senkronize ediliyor…", + "st.sync.error.generic": "Şifreli senkronizasyon başarısız oldu: {error}", + "st.sync.error.unknown": "Bilinmeyen hata", + "st.sync.validation.email_required": "WebBrain Cloud faturalandırma e-postanızı girin.", + "st.sync.validation.password_length": "En az 12 karakterden oluşan bir senkronizasyon şifresi kullanın.", + "st.sync.validation.confirm_required": "Senkronizasyon şifresini onaylayın.", + "st.sync.validation.password_mismatch": "Senkronizasyon şifreleri eşleşmiyor.", + "st.sync.prompt.new_password": "Yeni senkronizasyon şifresi", + "st.sync.prompt.password": "{label} (12+ karakter):", + "st.sync.prompt.confirm_password": "Senkronizasyon şifresini onaylayın:", + "st.sync.prompt.current_password": "Geçerli senkronizasyon şifresi:", + "st.sync.prompt.replacement_password": "Yedek bulut kopyası için şifreyi senkronize edin", + "st.sync.auth.check_email": "E-postanızı kontrol edin, WebBrain Cloud oturum açma bağlantısını onaylayın ve ardından buraya geri dönün.", + "st.sync.auth.success": "Bulut Senkronizasyonu doğrulandı. Bir şifre belirleyin ve senkronizasyonu etkinleştirin.", + "st.sync.confirm.disable": "Bu cihazda şifreli senkronizasyon kapatılsın mı? Yerel veriler kalacak.", + "st.sync.confirm.reset": "Şifrelenmiş bulut kopyası bu cihazın mevcut WebBrain kurulumuyla değiştirilsin mi?", + "st.sync.consent.legacy": "Şifreli senkronizasyon açılsın mı? WebBrain, anılarınızın, profil otomatik doldurmanızın ve API anahtarı sağlayıcı ayarlarınızın uçtan uca şifrelenmiş bir kopyasını WebBrain Cloud'a iletecektir. Sohbet geçmişi ve OAuth oturum açma işlemleri senkronize edilmez.", + "st.sync.consent.denied": "Şifrelenmiş senkronizasyon izni verilmedi.", }; diff --git a/src/chrome/src/ui/locales/uk.js b/src/chrome/src/ui/locales/uk.js index 54177d46f..973c17a48 100644 --- a/src/chrome/src/ui/locales/uk.js +++ b/src/chrome/src/ui/locales/uk.js @@ -990,4 +990,46 @@ export default { "sp.workflows.healing.saved": "Оновлено локаторів у «{name}»: {count}.", "sp.workflows.healing.not_saved": "Схвалений локатор для «{name}» не збережено: робочий процес змінився або результат перевірки був неоднозначним.", 'st.display.cost_allowance_scope': 'Applies only to usage-billed cloud and router providers. WebBrain Cloud and local providers are excluded.', + "st.sync.title": "Зашифрована хмарна синхронізація", + "st.sync.lede_html": "Лише для членів WebBrain Cloud. Синхронізуйте спогади, автозаповнення профілю та налаштування постачальника ключа API на всіх пристроях. Перед завантаженням усе шифрується вашим паролем синхронізації. WebBrain не може прочитати або відновити його. Історія чату та вхід OAuth не синхронізуються.", + "st.sync.email.label": "Електронна пошта WebBrain Cloud", + "st.sync.password.label": "Пароль синхронізації для шифрування (12+ символів)", + "st.sync.confirm.label": "Підтвердьте пароль синхронізації", + "st.sync.action.auth": "Надіслати посилання для входу", + "st.sync.action.enable": "Увімкніть зашифровану синхронізацію", + "st.sync.action.unlock": "Розблокуйте зашифровану синхронізацію", + "st.sync.action.now": "Синхронізувати зараз", + "st.sync.action.lock": "Замок", + "st.sync.action.change_password": "Змінити пароль синхронізації", + "st.sync.action.disable": "Вимкніть синхронізацію на цьому пристрої", + "st.sync.action.reset": "Замініть хмарну копію цим пристроєм", + "st.sync.status.syncing": "Зашифрована синхронізація оновлюється…", + "st.sync.status.offline": "Зашифрована синхронізація очікує з’єднання.", + "st.sync.status.subscription": "Для зашифрованої синхронізації потрібне членство в WebBrain Cloud.", + "st.sync.status.error": "Зашифрована синхронізація потребує уваги.", + "st.sync.status.auth_required": "Увійдіть за допомогою електронної пошти WebBrain Cloud, щоб використовувати зашифровану синхронізацію.", + "st.sync.status.password_required": "Ви ввійшли. Виберіть пароль синхронізації, щоб увімкнути зашифровану синхронізацію.", + "st.sync.status.unlocked": "Для цього пристрою ввімкнено зашифровану синхронізацію.", + "st.sync.status.locked": "Зашифровану синхронізацію заблоковано. Введіть пароль синхронізації, щоб розблокувати його на цьому пристрої.", + "st.sync.result.updated": "Оновлено зашифровану синхронізацію.", + "st.sync.result.current": "Зашифрована синхронізація актуальна.", + "st.sync.pending.syncing": "Синхронізація зашифрованої хмарної копії…", + "st.sync.pending.syncing_short": "Синхронізація…", + "st.sync.error.generic": "Помилка зашифрованої синхронізації: {error}", + "st.sync.error.unknown": "Невідома помилка", + "st.sync.validation.email_required": "Введіть платіжну електронну адресу WebBrain Cloud.", + "st.sync.validation.password_length": "Використовуйте пароль для синхронізації щонайменше з 12 символів.", + "st.sync.validation.confirm_required": "Підтвердьте пароль синхронізації.", + "st.sync.validation.password_mismatch": "Паролі синхронізації не збігаються.", + "st.sync.prompt.new_password": "Новий пароль синхронізації", + "st.sync.prompt.password": "{label} (12+ символів):", + "st.sync.prompt.confirm_password": "Підтвердьте пароль синхронізації:", + "st.sync.prompt.current_password": "Поточний пароль синхронізації:", + "st.sync.prompt.replacement_password": "Синхронізація пароля для резервної хмарної копії", + "st.sync.auth.check_email": "Перевірте свою електронну пошту, підтвердьте посилання для входу в WebBrain Cloud і поверніться сюди.", + "st.sync.auth.success": "Cloud Sync автентифіковано. Встановіть пароль і ввімкніть синхронізацію.", + "st.sync.confirm.disable": "Вимкнути зашифровану синхронізацію на цьому пристрої? Локальні дані залишаться.", + "st.sync.confirm.reset": "Замінити зашифровану хмарну копію на поточні налаштування WebBrain цього пристрою?", + "st.sync.consent.legacy": "Увімкнути зашифровану синхронізацію? WebBrain передасть наскрізну зашифровану копію ваших спогадів, автозаповнення профілю та налаштувань постачальника ключа API до WebBrain Cloud. Історія чату та вхід OAuth не синхронізуються.", + "st.sync.consent.denied": "Дозвіл на зашифровану синхронізацію не надано.", }; diff --git a/src/chrome/src/ui/locales/vi.js b/src/chrome/src/ui/locales/vi.js index d9d549acb..854d7fa77 100644 --- a/src/chrome/src/ui/locales/vi.js +++ b/src/chrome/src/ui/locales/vi.js @@ -988,4 +988,46 @@ export default { "sp.workflows.healing.saved": "Đã cập nhật {count} bộ định vị trong “{name}”.", "sp.workflows.healing.not_saved": "Bộ định vị đã phê duyệt cho “{name}” không được lưu vì quy trình đã thay đổi hoặc kết quả xác minh chưa rõ ràng.", 'st.display.cost_allowance_scope': 'Applies only to usage-billed cloud and router providers. WebBrain Cloud and local providers are excluded.', + "st.sync.title": "Đồng bộ hóa đám mây được mã hóa", + "st.sync.lede_html": "Chỉ dành cho thành viên WebBrain Cloud. Đồng bộ hóa bộ nhớ, tự động điền hồ sơ và cài đặt nhà cung cấp khóa API trên các thiết bị. Mọi thứ đều được mã hóa bằng mật khẩu đồng bộ hóa của bạn trước khi tải lên. WebBrain không thể đọc hoặc khôi phục nó. Lịch sử trò chuyện và thông tin đăng nhập OAuth không được đồng bộ hóa.", + "st.sync.email.label": "Email đám mây WebBrain", + "st.sync.password.label": "Đồng bộ hóa mật khẩu để mã hóa (hơn 12 ký tự)", + "st.sync.confirm.label": "Xác nhận mật khẩu đồng bộ hóa", + "st.sync.action.auth": "Gửi liên kết đăng nhập", + "st.sync.action.enable": "Bật đồng bộ hóa được mã hóa", + "st.sync.action.unlock": "Mở khóa đồng bộ hóa được mã hóa", + "st.sync.action.now": "Đồng bộ hóa ngay bây giờ", + "st.sync.action.lock": "Khóa", + "st.sync.action.change_password": "Thay đổi mật khẩu đồng bộ hóa", + "st.sync.action.disable": "Tắt đồng bộ hóa trên thiết bị này", + "st.sync.action.reset": "Thay thế bản sao đám mây bằng thiết bị này", + "st.sync.status.syncing": "Đang cập nhật tính năng đồng bộ hóa được mã hóa…", + "st.sync.status.offline": "Đồng bộ hóa được mã hóa đang chờ kết nối.", + "st.sync.status.subscription": "Cần có tư cách thành viên WebBrain Cloud để đồng bộ hóa được mã hóa.", + "st.sync.status.error": "Đồng bộ hóa được mã hóa cần được chú ý.", + "st.sync.status.auth_required": "Đăng nhập bằng email WebBrain Cloud của bạn để sử dụng đồng bộ hóa được mã hóa.", + "st.sync.status.password_required": "Đã đăng nhập. Chọn mật khẩu đồng bộ hóa để bật đồng bộ hóa được mã hóa.", + "st.sync.status.unlocked": "Đồng bộ hóa được mã hóa đang bật cho thiết bị này.", + "st.sync.status.locked": "Đồng bộ hóa được mã hóa đã bị khóa. Nhập mật khẩu đồng bộ hóa của bạn để mở khóa trên thiết bị này.", + "st.sync.result.updated": "Đã cập nhật đồng bộ hóa được mã hóa.", + "st.sync.result.current": "Đồng bộ hóa được mã hóa đã được cập nhật.", + "st.sync.pending.syncing": "Đang đồng bộ hóa bản sao đám mây được mã hóa…", + "st.sync.pending.syncing_short": "Đang đồng bộ hóa…", + "st.sync.error.generic": "Đồng bộ hóa được mã hóa không thành công: {error}", + "st.sync.error.unknown": "Lỗi không xác định", + "st.sync.validation.email_required": "Nhập email thanh toán WebBrain Cloud của bạn.", + "st.sync.validation.password_length": "Sử dụng mật khẩu đồng bộ có ít nhất 12 ký tự.", + "st.sync.validation.confirm_required": "Xác nhận mật khẩu đồng bộ hóa.", + "st.sync.validation.password_mismatch": "Mật khẩu đồng bộ hóa không khớp.", + "st.sync.prompt.new_password": "Mật khẩu đồng bộ hóa mới", + "st.sync.prompt.password": "{label} (12+ ký tự):", + "st.sync.prompt.confirm_password": "Xác nhận mật khẩu đồng bộ:", + "st.sync.prompt.current_password": "Mật khẩu đồng bộ hiện tại:", + "st.sync.prompt.replacement_password": "Đồng bộ hóa mật khẩu cho bản sao đám mây thay thế", + "st.sync.auth.check_email": "Kiểm tra email của bạn, phê duyệt liên kết đăng nhập WebBrain Cloud, sau đó quay lại đây.", + "st.sync.auth.success": "Cloud Sync đã được xác thực. Đặt mật khẩu và kích hoạt đồng bộ hóa.", + "st.sync.confirm.disable": "Tắt tính năng đồng bộ hóa được mã hóa trên thiết bị này? Dữ liệu cục bộ sẽ vẫn còn.", + "st.sync.confirm.reset": "Thay thế bản sao đám mây được mã hóa bằng thiết lập WebBrain hiện tại của thiết bị này?", + "st.sync.consent.legacy": "Bật đồng bộ hóa được mã hóa? WebBrain sẽ truyền bản sao được mã hóa nối đầu các ký ức của bạn, tự động điền hồ sơ và cài đặt nhà cung cấp khóa API tới WebBrain Cloud. Lịch sử trò chuyện và thông tin đăng nhập OAuth không được đồng bộ hóa.", + "st.sync.consent.denied": "Quyền đồng bộ hóa được mã hóa không được cấp.", }; diff --git a/src/chrome/src/ui/locales/zh.js b/src/chrome/src/ui/locales/zh.js index 954510226..46de93443 100644 --- a/src/chrome/src/ui/locales/zh.js +++ b/src/chrome/src/ui/locales/zh.js @@ -990,4 +990,46 @@ export default { "sp.workflows.healing.saved": "已更新“{name}”中的 {count} 个定位器。", "sp.workflows.healing.not_saved": "“{name}”中已批准的定位器未保存,因为工作流已发生变化或验证结果不确定。", 'st.display.cost_allowance_scope': 'Applies only to usage-billed cloud and router providers. WebBrain Cloud and local providers are excluded.', + "st.sync.title": "加密云同步", + "st.sync.lede_html": "仅限 WebBrain Cloud 会员。跨设备同步内存、个人资料自动填充和 API 密钥提供商设置。上传之前,所有内容都会使用您的同步密码进行加密。 WebBrain 无法读取或恢复它。聊天历史记录和 OAuth 登录不同步。", + "st.sync.email.label": "WebBrain 云电子邮件", + "st.sync.password.label": "同步加密密码(12+字符)", + "st.sync.confirm.label": "确认同步密码", + "st.sync.action.auth": "发送登录链接", + "st.sync.action.enable": "开启加密同步", + "st.sync.action.unlock": "解锁加密同步", + "st.sync.action.now": "立即同步", + "st.sync.action.lock": "锁", + "st.sync.action.change_password": "更改同步密码", + "st.sync.action.disable": "关闭此设备上的同步", + "st.sync.action.reset": "使用此设备替换云副本", + "st.sync.status.syncing": "加密同步正在更新...", + "st.sync.status.offline": "加密同步正在等待连接。", + "st.sync.status.subscription": "加密同步需要 WebBrain Cloud 会员资格。", + "st.sync.status.error": "加密同步需要注意。", + "st.sync.status.auth_required": "使用您的 WebBrain Cloud 电子邮件登录以使用加密同步。", + "st.sync.status.password_required": "已登录。选择同步密码以打开加密同步。", + "st.sync.status.unlocked": "此设备已启用加密同步。", + "st.sync.status.locked": "加密同步已锁定。输入您的同步密码以在此设备上解锁。", + "st.sync.result.updated": "已更新加密同步。", + "st.sync.result.current": "加密同步是最新的。", + "st.sync.pending.syncing": "正在同步加密云副本...", + "st.sync.pending.syncing_short": "正在同步...", + "st.sync.error.generic": "加密同步失败:{error}", + "st.sync.error.unknown": "未知错误", + "st.sync.validation.email_required": "输入您的 WebBrain Cloud 账单电子邮件。", + "st.sync.validation.password_length": "使用至少 12 个字符的同步密码。", + "st.sync.validation.confirm_required": "确认同步密码。", + "st.sync.validation.password_mismatch": "同步密码不匹配。", + "st.sync.prompt.new_password": "新的同步密码", + "st.sync.prompt.password": "{label}(12+字符):", + "st.sync.prompt.confirm_password": "确认同步密码:", + "st.sync.prompt.current_password": "当前同步密码:", + "st.sync.prompt.replacement_password": "替换云副本的同步密码", + "st.sync.auth.check_email": "检查您的电子邮件,批准 WebBrain Cloud 登录链接,然后返回此处。", + "st.sync.auth.success": "云同步已通过身份验证。设置密码并启用同步。", + "st.sync.confirm.disable": "关闭此设备上的加密同步吗?本地数据将保留。", + "st.sync.confirm.reset": "使用该设备当前的 WebBrain 设置替换加密的云副本?", + "st.sync.consent.legacy": "开启加密同步? WebBrain 会将您的记忆、个人资料自动填充和 API 密钥提供商设置的端到端加密副本传输到 WebBrain Cloud。聊天历史记录和 OAuth 登录不同步。", + "st.sync.consent.denied": "未授予加密同步权限。", }; diff --git a/src/chrome/src/ui/settings.html b/src/chrome/src/ui/settings.html index d759dae4c..3fff47b3b 100644 --- a/src/chrome/src/ui/settings.html +++ b/src/chrome/src/ui/settings.html @@ -1701,25 +1701,25 @@

-

Encrypted Cloud Sync

-
WebBrain Cloud members only. Sync memories, profile autofill, and API-key provider settings across devices. Everything is encrypted with your sync password before upload. WebBrain cannot read or recover it. Chat history and OAuth sign-ins are not synced.
+

+
-
-
-
+
+
+
- - - - + + + +
- Advanced +
- - - - + + + +
diff --git a/src/chrome/src/ui/settings.js b/src/chrome/src/ui/settings.js index 3c96046eb..a7b399db7 100644 --- a/src/chrome/src/ui/settings.js +++ b/src/chrome/src/ui/settings.js @@ -301,6 +301,7 @@ if (languageSelect) { if (providersContainer) renderProviders(); renderSkills(); renderPermissions(); + refreshProfileSyncState(); }); } @@ -1616,14 +1617,14 @@ let profileSyncChallenge = null; function showProfileSyncResult(ok, text) { if (!profileSyncResult) return; profileSyncResult.className = `test-result show ${ok ? 'ok' : 'fail'}`; profileSyncResult.textContent = text; } function setProfileSyncVisible(el, visible) { if (el) el.hidden = !visible; } function describeProfileSyncState(state) { - if (state.status === 'syncing') return 'Encrypted sync is updating...'; - if (state.status === 'offline') return 'Encrypted sync is waiting for a connection.'; - if (state.status === 'subscription') return 'WebBrain Cloud membership is required for encrypted sync.'; - if (state.status === 'error') return state.error || 'Encrypted sync needs attention.'; - if (!state.authenticated) return 'Sign in with your WebBrain Cloud email to use encrypted sync.'; - if (!state.enabled || state.status === 'empty') return 'Signed in. Choose a sync password to turn on encrypted sync.'; - if (state.unlocked) return 'Encrypted sync is on for this device.'; - return 'Encrypted sync is locked. Enter your sync password to unlock it on this device.'; + if (state.status === 'syncing') return t('st.sync.status.syncing'); + if (state.status === 'offline') return t('st.sync.status.offline'); + if (state.status === 'subscription') return t('st.sync.status.subscription'); + if (state.status === 'error') return state.error || t('st.sync.status.error'); + if (!state.authenticated) return t('st.sync.status.auth_required'); + if (!state.enabled || state.status === 'empty') return t('st.sync.status.password_required'); + if (state.unlocked) return t('st.sync.status.unlocked'); + return t('st.sync.status.locked'); } function renderProfileSyncState(state) { const authenticated = !!state.authenticated; @@ -1658,39 +1659,39 @@ async function profileSyncAction(action, data = {}, options = {}) { if (options.pending) showProfileSyncResult(true, options.pending); const result = await sendToBackground(action, data); if (['profile_sync_unlock', 'profile_sync_now', 'profile_sync_reset'].includes(action)) await reloadProfileSyncData(); - showProfileSyncResult(true, options.success || 'Encrypted sync updated.'); + showProfileSyncResult(true, options.success || t('st.sync.result.updated')); await refreshProfileSyncState(); return result; } catch (error) { - showProfileSyncResult(false, error?.message || 'Encrypted sync failed.'); + showProfileSyncResult(false, t('st.sync.error.generic', { error: error?.message || t('st.sync.error.unknown') })); throw error; } finally { restoreButton(); } } -function checkedSyncPassword(requireConfirmation = false) { const password = profileSyncPassword?.value || ''; const confirmation = profileSyncConfirm?.value || ''; if (password.length < 12) throw new Error('Use a sync password of at least 12 characters.'); if (requireConfirmation && !confirmation) throw new Error('Confirm the new sync password.'); if (confirmation && password !== confirmation) throw new Error('Sync passwords do not match.'); return password; } -function promptConfirmedSyncPassword(label = 'New sync password') { - const password = window.prompt(`${label} (12+ characters):`); +function checkedSyncPassword(requireConfirmation = false) { const password = profileSyncPassword?.value || ''; const confirmation = profileSyncConfirm?.value || ''; if (password.length < 12) throw new Error(t('st.sync.validation.password_length')); if (requireConfirmation && !confirmation) throw new Error(t('st.sync.validation.confirm_required')); if (confirmation && password !== confirmation) throw new Error(t('st.sync.validation.password_mismatch')); return password; } +function promptConfirmedSyncPassword(label = t('st.sync.prompt.new_password')) { + const password = window.prompt(t('st.sync.prompt.password', { label })); if (!password) return null; - if (password.length < 12) throw new Error('Use a sync password of at least 12 characters.'); - const confirmation = window.prompt('Confirm sync password:'); - if (!confirmation) throw new Error('Confirm the sync password.'); - if (password !== confirmation) throw new Error('Sync passwords do not match.'); + if (password.length < 12) throw new Error(t('st.sync.validation.password_length')); + const confirmation = window.prompt(t('st.sync.prompt.confirm_password')); + if (!confirmation) throw new Error(t('st.sync.validation.confirm_required')); + if (password !== confirmation) throw new Error(t('st.sync.validation.password_mismatch')); return password; } btnProfileSyncAuth?.addEventListener('click', async () => { - const email = (profileSyncEmail?.value || '').trim(); if (!email) return showProfileSyncResult(false, 'Enter your WebBrain Cloud billing email.'); - try { profileSyncChallenge = await profileSyncAction('profile_sync_auth_start', { email }); showProfileSyncResult(true, 'Check your email, approve the WebBrain Cloud sign-in link, then return here.'); - const poll = setInterval(async () => { if (!profileSyncChallenge) return clearInterval(poll); try { const result = await sendToBackground('profile_sync_auth_status', { challengeId: profileSyncChallenge.challenge_id, verifier: profileSyncChallenge.verifier }); if (result.token) { clearInterval(poll); profileSyncChallenge = null; showProfileSyncResult(true, 'Cloud Sync authenticated. Set a password and enable sync.'); await refreshProfileSyncState(); } } catch (error) { clearInterval(poll); profileSyncChallenge = null; showProfileSyncResult(false, error.message); } }, 3000); setTimeout(() => clearInterval(poll), 30 * 60 * 1000); + const email = (profileSyncEmail?.value || '').trim(); if (!email) return showProfileSyncResult(false, t('st.sync.validation.email_required')); + try { profileSyncChallenge = await profileSyncAction('profile_sync_auth_start', { email }); showProfileSyncResult(true, t('st.sync.auth.check_email')); + const poll = setInterval(async () => { if (!profileSyncChallenge) return clearInterval(poll); try { const result = await sendToBackground('profile_sync_auth_status', { challengeId: profileSyncChallenge.challenge_id, verifier: profileSyncChallenge.verifier }); if (result.token) { clearInterval(poll); profileSyncChallenge = null; showProfileSyncResult(true, t('st.sync.auth.success')); await refreshProfileSyncState(); } } catch (error) { clearInterval(poll); profileSyncChallenge = null; showProfileSyncResult(false, t('st.sync.error.generic', { error: error?.message || t('st.sync.error.unknown') })); } }, 3000); setTimeout(() => clearInterval(poll), 30 * 60 * 1000); } catch { /* helper displayed the error */ } }); -btnProfileSyncEnable?.addEventListener('click', () => { try { profileSyncAction('profile_sync_unlock', { password: checkedSyncPassword(true), create: true }); } catch (e) { showProfileSyncResult(false, e.message); } }); -btnProfileSyncUnlock?.addEventListener('click', () => { try { profileSyncAction('profile_sync_unlock', { password: checkedSyncPassword(), create: false }); } catch (e) { showProfileSyncResult(false, e.message); } }); -btnProfileSyncNow?.addEventListener('click', () => profileSyncAction('profile_sync_now', {}, { button: btnProfileSyncNow, pending: 'Syncing encrypted cloud copy...', pendingLabel: 'Syncing...', success: 'Encrypted sync is up to date.' }).catch(() => {})); -btnProfileSyncLock?.addEventListener('click', () => profileSyncAction('profile_sync_lock')); -btnProfileSyncChange?.addEventListener('click', () => { const oldPassword = window.prompt('Current sync password:'); if (!oldPassword) return; try { const newPassword = promptConfirmedSyncPassword('New sync password'); if (newPassword) profileSyncAction('profile_sync_change_password', { oldPassword, newPassword }); } catch (e) { showProfileSyncResult(false, e.message); } }); -btnProfileSyncDisable?.addEventListener('click', () => { if (window.confirm('Turn off encrypted sync on this device? Local data will remain.')) profileSyncAction('profile_sync_disable'); }); -btnProfileSyncReset?.addEventListener('click', () => { if (!window.confirm('Replace the encrypted cloud copy with this device’s current WebBrain setup?')) return; try { const password = promptConfirmedSyncPassword('Sync password for the replacement cloud copy'); if (password) profileSyncAction('profile_sync_reset', { password }); } catch (e) { showProfileSyncResult(false, e.message); } }); +btnProfileSyncEnable?.addEventListener('click', async () => { let password; try { password = checkedSyncPassword(true); } catch (e) { showProfileSyncResult(false, e.message); return; } await profileSyncAction('profile_sync_unlock', { password, create: true }).catch(() => {}); }); +btnProfileSyncUnlock?.addEventListener('click', async () => { let password; try { password = checkedSyncPassword(); } catch (e) { showProfileSyncResult(false, e.message); return; } await profileSyncAction('profile_sync_unlock', { password, create: false }).catch(() => {}); }); +btnProfileSyncNow?.addEventListener('click', () => profileSyncAction('profile_sync_now', {}, { button: btnProfileSyncNow, pending: t('st.sync.pending.syncing'), pendingLabel: t('st.sync.pending.syncing_short'), success: t('st.sync.result.current') }).catch(() => {})); +btnProfileSyncLock?.addEventListener('click', () => profileSyncAction('profile_sync_lock').catch(() => {})); +btnProfileSyncChange?.addEventListener('click', async () => { const oldPassword = window.prompt(t('st.sync.prompt.current_password')); if (!oldPassword) return; let newPassword; try { newPassword = promptConfirmedSyncPassword(); } catch (e) { showProfileSyncResult(false, e.message); return; } if (newPassword) await profileSyncAction('profile_sync_change_password', { oldPassword, newPassword }).catch(() => {}); }); +btnProfileSyncDisable?.addEventListener('click', () => { if (window.confirm(t('st.sync.confirm.disable'))) profileSyncAction('profile_sync_disable').catch(() => {}); }); +btnProfileSyncReset?.addEventListener('click', async () => { if (!window.confirm(t('st.sync.confirm.reset'))) return; let password; try { password = promptConfirmedSyncPassword(t('st.sync.prompt.replacement_password')); } catch (e) { showProfileSyncResult(false, e.message); return; } if (password) await profileSyncAction('profile_sync_reset', { password }).catch(() => {}); }); refreshProfileSyncState(); // Persisted to chrome.storage.local in plaintext; the agent picks the diff --git a/src/firefox/src/ui/locales/ar.js b/src/firefox/src/ui/locales/ar.js index 978d3884b..df0f45e54 100644 --- a/src/firefox/src/ui/locales/ar.js +++ b/src/firefox/src/ui/locales/ar.js @@ -952,4 +952,46 @@ export default { "sp.workflows.healing.saved": "تم تحديث {count} محددات في «{name}».", "sp.workflows.healing.not_saved": "لم يُحفظ المحدد الموافق عليه لـ «{name}» لأن سير العمل تغيّر أو لأن التحقق لم يكن حاسماً.", 'st.display.cost_allowance_scope': 'Applies only to usage-billed cloud and router providers. WebBrain Cloud and local providers are excluded.', + "st.sync.title": "مزامنة السحابة المشفرة", + "st.sync.lede_html": "أعضاء WebBrain Cloud فقط. مزامنة الذكريات والملء التلقائي للملف الشخصي وإعدادات موفر مفتاح واجهة برمجة التطبيقات عبر الأجهزة. يتم تشفير كل شيء باستخدام كلمة مرور المزامنة الخاصة بك قبل التحميل. لا يستطيع WebBrain قراءته أو استعادته. لا تتم مزامنة سجل الدردشة وتسجيلات الدخول عبر OAuth.", + "st.sync.email.label": "البريد الإلكتروني السحابي WebBrain", + "st.sync.password.label": "مزامنة كلمة المرور للتشفير (+12 حرفًا)", + "st.sync.confirm.label": "تأكيد كلمة مرور المزامنة", + "st.sync.action.auth": "إرسال رابط تسجيل الدخول", + "st.sync.action.enable": "قم بتشغيل المزامنة المشفرة", + "st.sync.action.unlock": "فتح المزامنة المشفرة", + "st.sync.action.now": "مزامنة الآن", + "st.sync.action.lock": "قفل", + "st.sync.action.change_password": "تغيير كلمة مرور المزامنة", + "st.sync.action.disable": "قم بإيقاف تشغيل المزامنة على هذا الجهاز", + "st.sync.action.reset": "استبدل النسخة السحابية بهذا الجهاز", + "st.sync.status.syncing": "جارٍ تحديث المزامنة المشفرة…", + "st.sync.status.offline": "المزامنة المشفرة في انتظار الاتصال.", + "st.sync.status.subscription": "عضوية WebBrain Cloud مطلوبة للمزامنة المشفرة.", + "st.sync.status.error": "المزامنة المشفرة تحتاج إلى الاهتمام.", + "st.sync.status.auth_required": "قم بتسجيل الدخول باستخدام البريد الإلكتروني WebBrain Cloud الخاص بك لاستخدام المزامنة المشفرة.", + "st.sync.status.password_required": "تم تسجيل الدخول. اختر كلمة مرور المزامنة لتشغيل المزامنة المشفرة.", + "st.sync.status.unlocked": "المزامنة المشفرة قيد التشغيل لهذا الجهاز.", + "st.sync.status.locked": "المزامنة المشفرة مقفلة. أدخل كلمة مرور المزامنة لإلغاء قفلها على هذا الجهاز.", + "st.sync.result.updated": "تم تحديث المزامنة المشفرة.", + "st.sync.result.current": "المزامنة المشفرة محدثة.", + "st.sync.pending.syncing": "جارٍ مزامنة النسخة السحابية المشفرة…", + "st.sync.pending.syncing_short": "جارٍ المزامنة…", + "st.sync.error.generic": "فشلت المزامنة المشفرة: {error}", + "st.sync.error.unknown": "خطأ غير معروف", + "st.sync.validation.email_required": "أدخل البريد الإلكتروني الخاص بفواتير WebBrain Cloud.", + "st.sync.validation.password_length": "استخدم كلمة مرور مزامنة مكونة من 12 حرفًا على الأقل.", + "st.sync.validation.confirm_required": "قم بتأكيد كلمة مرور المزامنة.", + "st.sync.validation.password_mismatch": "كلمات مرور المزامنة غير متطابقة.", + "st.sync.prompt.new_password": "كلمة مرور المزامنة الجديدة", + "st.sync.prompt.password": "{label} (+12 حرفًا):", + "st.sync.prompt.confirm_password": "تأكيد كلمة مرور المزامنة:", + "st.sync.prompt.current_password": "كلمة مرور المزامنة الحالية:", + "st.sync.prompt.replacement_password": "مزامنة كلمة المرور للنسخة السحابية البديلة", + "st.sync.auth.check_email": "تحقق من بريدك الإلكتروني، ووافق على رابط تسجيل الدخول إلى WebBrain Cloud، ثم ارجع إلى هنا.", + "st.sync.auth.success": "تمت مصادقة المزامنة السحابية. قم بتعيين كلمة مرور وتمكين المزامنة.", + "st.sync.confirm.disable": "هل تريد إيقاف المزامنة المشفرة على هذا الجهاز؟ ستبقى البيانات المحلية.", + "st.sync.confirm.reset": "هل تريد استبدال النسخة السحابية المشفرة بإعداد WebBrain الحالي لهذا الجهاز؟", + "st.sync.consent.legacy": "هل تريد تفعيل المزامنة المشفرة؟ سيرسل WebBrain نسخة مشفرة من طرف إلى طرف من ذكرياتك، والملء التلقائي لملفك الشخصي، وإعدادات موفر مفتاح واجهة برمجة التطبيقات (API) إلى WebBrain Cloud. لا تتم مزامنة سجل الدردشة وتسجيلات الدخول عبر OAuth.", + "st.sync.consent.denied": "لم يتم منح إذن المزامنة المشفرة.", }; diff --git a/src/firefox/src/ui/locales/bn.js b/src/firefox/src/ui/locales/bn.js index b4e93056a..62b4de876 100644 --- a/src/firefox/src/ui/locales/bn.js +++ b/src/firefox/src/ui/locales/bn.js @@ -972,4 +972,46 @@ export default { "sp.workflows.healing.saved": "“{name}”-এ {count}টি লোকেটর আপডেট করা হয়েছে।", "sp.workflows.healing.not_saved": "ওয়ার্কফ্লো পরিবর্তিত হওয়ায় বা যাচাই অনিশ্চিত থাকায় “{name}”-এর অনুমোদিত লোকেটর সংরক্ষিত হয়নি।", 'st.display.cost_allowance_scope': 'Applies only to usage-billed cloud and router providers. WebBrain Cloud and local providers are excluded.', + "st.sync.title": "এনক্রিপ্ট করা ক্লাউড সিঙ্ক", + "st.sync.lede_html": "শুধুমাত্র WebBrain Cloud সদস্য। সমস্ত ডিভাইস জুড়ে স্মৃতি, প্রোফাইল অটোফিল এবং API-কী প্রদানকারী সেটিংস সিঙ্ক করুন। আপলোড করার আগে আপনার সিঙ্ক পাসওয়ার্ড দিয়ে সবকিছু এনক্রিপ্ট করা হয়েছে। WebBrain এটি পড়তে বা পুনরুদ্ধার করতে পারে না। চ্যাট ইতিহাস এবং OAuth সাইন-ইন সিঙ্ক করা হয় না।", + "st.sync.email.label": "WebBrain Cloud ইমেল", + "st.sync.password.label": "এনক্রিপশনের জন্য সিঙ্ক পাসওয়ার্ড (12+ অক্ষর)", + "st.sync.confirm.label": "সিঙ্ক পাসওয়ার্ড নিশ্চিত করুন", + "st.sync.action.auth": "সাইন-ইন লিঙ্ক পাঠান", + "st.sync.action.enable": "এনক্রিপ্ট করা সিঙ্ক চালু করুন", + "st.sync.action.unlock": "এনক্রিপ্ট করা সিঙ্ক আনলক করুন", + "st.sync.action.now": "এখন সিঙ্ক করুন", + "st.sync.action.lock": "তালা", + "st.sync.action.change_password": "সিঙ্ক পাসওয়ার্ড পরিবর্তন করুন", + "st.sync.action.disable": "এই ডিভাইসে সিঙ্ক বন্ধ করুন", + "st.sync.action.reset": "এই ডিভাইসের সাথে ক্লাউড কপি প্রতিস্থাপন করুন", + "st.sync.status.syncing": "এনক্রিপ্ট করা সিঙ্ক আপডেট হচ্ছে...", + "st.sync.status.offline": "এনক্রিপ্ট করা সিঙ্ক একটি সংযোগের জন্য অপেক্ষা করছে৷", + "st.sync.status.subscription": "এনক্রিপ্ট করা সিঙ্কের জন্য WebBrain ক্লাউড সদস্যতা প্রয়োজন।", + "st.sync.status.error": "এনক্রিপ্ট করা সিঙ্ক মনোযোগ প্রয়োজন.", + "st.sync.status.auth_required": "এনক্রিপ্টেড সিঙ্ক ব্যবহার করতে আপনার WebBrain ক্লাউড ইমেল দিয়ে সাইন ইন করুন।", + "st.sync.status.password_required": "সাইন ইন করেছেন৷ এনক্রিপ্ট করা সিঙ্ক চালু করতে একটি সিঙ্ক পাসওয়ার্ড চয়ন করুন৷", + "st.sync.status.unlocked": "এই ডিভাইসের জন্য এনক্রিপ্ট করা সিঙ্ক চালু আছে।", + "st.sync.status.locked": "এনক্রিপ্ট করা সিঙ্ক লক করা আছে। এই ডিভাইসে এটি আনলক করতে আপনার সিঙ্ক পাসওয়ার্ড লিখুন৷", + "st.sync.result.updated": "এনক্রিপ্ট করা সিঙ্ক আপডেট করা হয়েছে।", + "st.sync.result.current": "এনক্রিপ্ট করা সিঙ্ক আপ টু ডেট৷", + "st.sync.pending.syncing": "এনক্রিপ্ট করা ক্লাউড কপি সিঙ্ক হচ্ছে...", + "st.sync.pending.syncing_short": "সিঙ্ক হচ্ছে...", + "st.sync.error.generic": "এনক্রিপ্ট করা সিঙ্ক ব্যর্থ হয়েছে: {error}৷", + "st.sync.error.unknown": "অজানা ত্রুটি", + "st.sync.validation.email_required": "আপনার WebBrain ক্লাউড বিলিং ইমেল লিখুন।", + "st.sync.validation.password_length": "কমপক্ষে 12টি অক্ষরের একটি সিঙ্ক পাসওয়ার্ড ব্যবহার করুন৷", + "st.sync.validation.confirm_required": "সিঙ্ক পাসওয়ার্ড নিশ্চিত করুন.", + "st.sync.validation.password_mismatch": "সিঙ্ক পাসওয়ার্ড মেলে না.", + "st.sync.prompt.new_password": "নতুন সিঙ্ক পাসওয়ার্ড", + "st.sync.prompt.password": "{label} (12+ অক্ষর):", + "st.sync.prompt.confirm_password": "সিঙ্ক পাসওয়ার্ড নিশ্চিত করুন:", + "st.sync.prompt.current_password": "বর্তমান সিঙ্ক পাসওয়ার্ড:", + "st.sync.prompt.replacement_password": "প্রতিস্থাপন ক্লাউড কপির জন্য পাসওয়ার্ড সিঙ্ক করুন", + "st.sync.auth.check_email": "আপনার ইমেল চেক করুন, WebBrain ক্লাউড সাইন-ইন লিঙ্ক অনুমোদন করুন, তারপর এখানে ফিরে যান।", + "st.sync.auth.success": "ক্লাউড সিঙ্ক প্রমাণীকৃত। একটি পাসওয়ার্ড সেট করুন এবং সিঙ্ক সক্ষম করুন।", + "st.sync.confirm.disable": "এই ডিভাইসে এনক্রিপ্ট করা সিঙ্ক বন্ধ করবেন? স্থানীয় তথ্য থাকবে।", + "st.sync.confirm.reset": "এই ডিভাইসের বর্তমান WebBrain সেটআপ দিয়ে এনক্রিপ্ট করা ক্লাউড কপি প্রতিস্থাপন করবেন?", + "st.sync.consent.legacy": "এনক্রিপ্ট করা সিঙ্ক চালু করবেন? WebBrain আপনার স্মৃতি, প্রোফাইল অটোফিল এবং API-কী প্রদানকারী সেটিংসের একটি এন্ড-টু-এন্ড এনক্রিপ্টেড কপি WebBrain Cloud-এ প্রেরণ করবে। চ্যাট ইতিহাস এবং OAuth সাইন-ইন সিঙ্ক করা হয় না।", + "st.sync.consent.denied": "এনক্রিপ্ট করা সিঙ্ক অনুমতি দেওয়া হয়নি।", }; diff --git a/src/firefox/src/ui/locales/de.js b/src/firefox/src/ui/locales/de.js index bda8d1e45..2f0359736 100644 --- a/src/firefox/src/ui/locales/de.js +++ b/src/firefox/src/ui/locales/de.js @@ -945,4 +945,46 @@ export default { "sp.workflows.healing.saved": "{count} Locator in „{name}“ aktualisiert.", "sp.workflows.healing.not_saved": "Der bestätigte Locator für „{name}“ wurde nicht gespeichert, weil sich der Workflow geändert hat oder die Prüfung nicht eindeutig war.", 'st.display.cost_allowance_scope': 'Applies only to usage-billed cloud and router providers. WebBrain Cloud and local providers are excluded.', + "st.sync.title": "Verschlüsselte Cloud-Synchronisierung", + "st.sync.lede_html": "Nur für WebBrain Cloud-Mitglieder. Synchronisieren Sie Erinnerungen, das automatische Ausfüllen von Profilen und die Einstellungen des API-Schlüsselanbieters geräteübergreifend. Vor dem Hochladen wird alles mit Ihrem Synchronisierungskennwort verschlüsselt. WebBrain kann es nicht lesen oder wiederherstellen. Chatverlauf und OAuth-Anmeldungen werden nicht synchronisiert.", + "st.sync.email.label": "WebBrain Cloud-E-Mail", + "st.sync.password.label": "Synchronisierungspasswort zur Verschlüsselung (12+ Zeichen)", + "st.sync.confirm.label": "Bestätigen Sie das Synchronisierungskennwort", + "st.sync.action.auth": "Anmeldelink senden", + "st.sync.action.enable": "Aktivieren Sie die verschlüsselte Synchronisierung", + "st.sync.action.unlock": "Entsperren Sie die verschlüsselte Synchronisierung", + "st.sync.action.now": "Jetzt synchronisieren", + "st.sync.action.lock": "Sperren", + "st.sync.action.change_password": "Synchronisierungskennwort ändern", + "st.sync.action.disable": "Schalten Sie die Synchronisierung auf diesem Gerät aus", + "st.sync.action.reset": "Ersetzen Sie die Cloud-Kopie durch dieses Gerät", + "st.sync.status.syncing": "Die verschlüsselte Synchronisierung wird aktualisiert…", + "st.sync.status.offline": "Die verschlüsselte Synchronisierung wartet auf eine Verbindung.", + "st.sync.status.subscription": "Für die verschlüsselte Synchronisierung ist eine WebBrain Cloud-Mitgliedschaft erforderlich.", + "st.sync.status.error": "Die verschlüsselte Synchronisierung erfordert Aufmerksamkeit.", + "st.sync.status.auth_required": "Melden Sie sich mit Ihrer WebBrain Cloud-E-Mail-Adresse an, um die verschlüsselte Synchronisierung zu verwenden.", + "st.sync.status.password_required": "Angemeldet. Wählen Sie ein Synchronisierungskennwort, um die verschlüsselte Synchronisierung zu aktivieren.", + "st.sync.status.unlocked": "Für dieses Gerät ist die verschlüsselte Synchronisierung aktiviert.", + "st.sync.status.locked": "Die verschlüsselte Synchronisierung ist gesperrt. Geben Sie Ihr Synchronisierungskennwort ein, um es auf diesem Gerät zu entsperren.", + "st.sync.result.updated": "Verschlüsselte Synchronisierung aktualisiert.", + "st.sync.result.current": "Die verschlüsselte Synchronisierung ist aktuell.", + "st.sync.pending.syncing": "Verschlüsselte Cloud-Kopie wird synchronisiert…", + "st.sync.pending.syncing_short": "Synchronisierung…", + "st.sync.error.generic": "Verschlüsselte Synchronisierung fehlgeschlagen: {error}", + "st.sync.error.unknown": "Unbekannter Fehler", + "st.sync.validation.email_required": "Geben Sie Ihre WebBrain Cloud-Rechnungs-E-Mail-Adresse ein.", + "st.sync.validation.password_length": "Verwenden Sie ein Synchronisierungskennwort mit mindestens 12 Zeichen.", + "st.sync.validation.confirm_required": "Bestätigen Sie das Synchronisierungskennwort.", + "st.sync.validation.password_mismatch": "Synchronisierungskennwörter stimmen nicht überein.", + "st.sync.prompt.new_password": "Neues Synchronisierungskennwort", + "st.sync.prompt.password": "{label} (12+ Zeichen):", + "st.sync.prompt.confirm_password": "Synchronisierungspasswort bestätigen:", + "st.sync.prompt.current_password": "Aktuelles Synchronisierungskennwort:", + "st.sync.prompt.replacement_password": "Synchronisierungskennwort für die Ersatz-Cloud-Kopie", + "st.sync.auth.check_email": "Überprüfen Sie Ihre E-Mails, genehmigen Sie den WebBrain Cloud-Anmeldelink und kehren Sie dann hierher zurück.", + "st.sync.auth.success": "Cloud Sync authentifiziert. Legen Sie ein Passwort fest und aktivieren Sie die Synchronisierung.", + "st.sync.confirm.disable": "Verschlüsselte Synchronisierung auf diesem Gerät deaktivieren? Lokale Daten bleiben erhalten.", + "st.sync.confirm.reset": "Die verschlüsselte Cloud-Kopie durch das aktuelle WebBrain-Setup dieses Geräts ersetzen?", + "st.sync.consent.legacy": "Verschlüsselte Synchronisierung aktivieren? WebBrain überträgt eine Ende-zu-Ende-verschlüsselte Kopie Ihrer Erinnerungen, des automatischen Ausfüllens Ihres Profils und der Einstellungen des API-Schlüsselanbieters an die WebBrain Cloud. Chatverlauf und OAuth-Anmeldungen werden nicht synchronisiert.", + "st.sync.consent.denied": "Die Berechtigung zur verschlüsselten Synchronisierung wurde nicht erteilt.", }; diff --git a/src/firefox/src/ui/locales/en.js b/src/firefox/src/ui/locales/en.js index 0cb9ff773..1716080b6 100644 --- a/src/firefox/src/ui/locales/en.js +++ b/src/firefox/src/ui/locales/en.js @@ -974,4 +974,46 @@ export default { "sp.workflows.healing.saved": "Updated {count} locator(s) in “{name}”.", "sp.workflows.healing.not_saved": "The approved locator for “{name}” was not saved because the workflow changed or verification was inconclusive.", 'st.display.cost_allowance_scope': 'Applies only to usage-billed cloud and router providers. WebBrain Cloud and local providers are excluded.', + 'st.sync.title': 'Encrypted Cloud Sync', + 'st.sync.lede_html': 'WebBrain Cloud members only. Sync memories, profile autofill, and API-key provider settings across devices. Everything is encrypted with your sync password before upload. WebBrain cannot read or recover it. Chat history and OAuth sign-ins are not synced.', + 'st.sync.email.label': 'WebBrain Cloud email', + 'st.sync.password.label': 'Sync password for encryption (12+ characters)', + 'st.sync.confirm.label': 'Confirm sync password', + 'st.sync.action.auth': 'Send sign-in link', + 'st.sync.action.enable': 'Turn on encrypted sync', + 'st.sync.action.unlock': 'Unlock encrypted sync', + 'st.sync.action.now': 'Sync now', + 'st.sync.action.lock': 'Lock', + 'st.sync.action.change_password': 'Change sync password', + 'st.sync.action.disable': 'Turn off sync on this device', + 'st.sync.action.reset': 'Replace cloud copy with this device', + 'st.sync.status.syncing': 'Encrypted sync is updating…', + 'st.sync.status.offline': 'Encrypted sync is waiting for a connection.', + 'st.sync.status.subscription': 'WebBrain Cloud membership is required for encrypted sync.', + 'st.sync.status.error': 'Encrypted sync needs attention.', + 'st.sync.status.auth_required': 'Sign in with your WebBrain Cloud email to use encrypted sync.', + 'st.sync.status.password_required': 'Signed in. Choose a sync password to turn on encrypted sync.', + 'st.sync.status.unlocked': 'Encrypted sync is on for this device.', + 'st.sync.status.locked': 'Encrypted sync is locked. Enter your sync password to unlock it on this device.', + 'st.sync.result.updated': 'Encrypted sync updated.', + 'st.sync.result.current': 'Encrypted sync is up to date.', + 'st.sync.pending.syncing': 'Syncing encrypted cloud copy…', + 'st.sync.pending.syncing_short': 'Syncing…', + 'st.sync.error.generic': 'Encrypted sync failed: {error}', + 'st.sync.error.unknown': 'Unknown error', + 'st.sync.validation.email_required': 'Enter your WebBrain Cloud billing email.', + 'st.sync.validation.password_length': 'Use a sync password of at least 12 characters.', + 'st.sync.validation.confirm_required': 'Confirm the sync password.', + 'st.sync.validation.password_mismatch': 'Sync passwords do not match.', + 'st.sync.prompt.new_password': 'New sync password', + 'st.sync.prompt.password': '{label} (12+ characters):', + 'st.sync.prompt.confirm_password': 'Confirm sync password:', + 'st.sync.prompt.current_password': 'Current sync password:', + 'st.sync.prompt.replacement_password': 'Sync password for the replacement cloud copy', + 'st.sync.auth.check_email': 'Check your email, approve the WebBrain Cloud sign-in link, then return here.', + 'st.sync.auth.success': 'Cloud Sync authenticated. Set a password and enable sync.', + 'st.sync.confirm.disable': 'Turn off encrypted sync on this device? Local data will remain.', + 'st.sync.confirm.reset': 'Replace the encrypted cloud copy with this device’s current WebBrain setup?', + 'st.sync.consent.legacy': 'Turn on encrypted sync? WebBrain will transmit an end-to-end encrypted copy of your memories, profile autofill, and API-key provider settings to WebBrain Cloud. Chat history and OAuth sign-ins are not synced.', + 'st.sync.consent.denied': 'Encrypted sync permission was not granted.', }; diff --git a/src/firefox/src/ui/locales/es.js b/src/firefox/src/ui/locales/es.js index e68677964..ac0d97c9e 100644 --- a/src/firefox/src/ui/locales/es.js +++ b/src/firefox/src/ui/locales/es.js @@ -952,4 +952,46 @@ export default { "sp.workflows.healing.saved": "Se actualizaron {count} localizadores en «{name}».", "sp.workflows.healing.not_saved": "El localizador aprobado para «{name}» no se guardó porque el flujo cambió o la verificación no fue concluyente.", 'st.display.cost_allowance_scope': 'Applies only to usage-billed cloud and router providers. WebBrain Cloud and local providers are excluded.', + "st.sync.title": "Sincronización encriptada en la nube", + "st.sync.lede_html": "Solo miembros de WebBrain Cloud. Sincronice memorias, autocompletar perfiles y configuraciones del proveedor de claves API en todos los dispositivos. Todo está cifrado con su contraseña de sincronización antes de cargarlo. WebBrain no puede leerlo ni recuperarlo. El historial de chat y los inicios de sesión de OAuth no están sincronizados.", + "st.sync.email.label": "Correo electrónico en la nube de WebBrain", + "st.sync.password.label": "Contraseña de sincronización para cifrado (más de 12 caracteres)", + "st.sync.confirm.label": "Confirmar contraseña de sincronización", + "st.sync.action.auth": "Enviar enlace de inicio de sesión", + "st.sync.action.enable": "Activar la sincronización cifrada", + "st.sync.action.unlock": "Desbloquear sincronización cifrada", + "st.sync.action.now": "Sincronizar ahora", + "st.sync.action.lock": "Bloquear", + "st.sync.action.change_password": "Cambiar contraseña de sincronización", + "st.sync.action.disable": "Desactivar la sincronización en este dispositivo", + "st.sync.action.reset": "Reemplace la copia en la nube con este dispositivo", + "st.sync.status.syncing": "La sincronización cifrada se está actualizando...", + "st.sync.status.offline": "La sincronización cifrada está esperando una conexión.", + "st.sync.status.subscription": "Se requiere membresía de WebBrain Cloud para la sincronización cifrada.", + "st.sync.status.error": "La sincronización cifrada necesita atención.", + "st.sync.status.auth_required": "Inicie sesión con su correo electrónico de WebBrain Cloud para utilizar la sincronización cifrada.", + "st.sync.status.password_required": "Ha iniciado sesión. Elija una contraseña de sincronización para activar la sincronización cifrada.", + "st.sync.status.unlocked": "La sincronización cifrada está activada para este dispositivo.", + "st.sync.status.locked": "La sincronización cifrada está bloqueada. Ingrese su contraseña de sincronización para desbloquearla en este dispositivo.", + "st.sync.result.updated": "Sincronización cifrada actualizada.", + "st.sync.result.current": "La sincronización cifrada está actualizada.", + "st.sync.pending.syncing": "Sincronizando copia cifrada en la nube...", + "st.sync.pending.syncing_short": "Sincronizando…", + "st.sync.error.generic": "Error de sincronización cifrada: {error}", + "st.sync.error.unknown": "Error desconocido", + "st.sync.validation.email_required": "Ingrese su correo electrónico de facturación de WebBrain Cloud.", + "st.sync.validation.password_length": "Utilice una contraseña de sincronización de al menos 12 caracteres.", + "st.sync.validation.confirm_required": "Confirme la contraseña de sincronización.", + "st.sync.validation.password_mismatch": "Las contraseñas de sincronización no coinciden.", + "st.sync.prompt.new_password": "Nueva contraseña de sincronización", + "st.sync.prompt.password": "{label} (más de 12 caracteres):", + "st.sync.prompt.confirm_password": "Confirmar contraseña de sincronización:", + "st.sync.prompt.current_password": "Contraseña de sincronización actual:", + "st.sync.prompt.replacement_password": "Contraseña de sincronización para la copia en la nube de reemplazo", + "st.sync.auth.check_email": "Revise su correo electrónico, apruebe el enlace de inicio de sesión de WebBrain Cloud y luego regrese aquí.", + "st.sync.auth.success": "Sincronización en la nube autenticada. Establezca una contraseña y habilite la sincronización.", + "st.sync.confirm.disable": "¿Desactivar la sincronización cifrada en este dispositivo? Los datos locales permanecerán.", + "st.sync.confirm.reset": "¿Reemplazar la copia cifrada en la nube con la configuración actual de WebBrain de este dispositivo?", + "st.sync.consent.legacy": "¿Activar sincronización cifrada? WebBrain transmitirá una copia cifrada de extremo a extremo de sus recuerdos, el autocompletado de perfiles y la configuración del proveedor de claves API a WebBrain Cloud. El historial de chat y los inicios de sesión de OAuth no están sincronizados.", + "st.sync.consent.denied": "No se concedió el permiso de sincronización cifrada.", }; diff --git a/src/firefox/src/ui/locales/fa.js b/src/firefox/src/ui/locales/fa.js index 790d6c583..de7d14ea1 100644 --- a/src/firefox/src/ui/locales/fa.js +++ b/src/firefox/src/ui/locales/fa.js @@ -972,4 +972,46 @@ export default { "sp.workflows.healing.saved": "{count} مکان‌یاب در «{name}» به‌روزرسانی شد.", "sp.workflows.healing.not_saved": "مکان‌یاب تأییدشدهٔ «{name}» ذخیره نشد، زیرا گردش‌کار تغییر کرده بود یا نتیجهٔ تأیید قطعی نبود.", 'st.display.cost_allowance_scope': 'Applies only to usage-billed cloud and router providers. WebBrain Cloud and local providers are excluded.', + "st.sync.title": "همگام سازی ابری رمزگذاری شده", + "st.sync.lede_html": "فقط اعضای WebBrain Cloud. حافظه‌ها، تکمیل خودکار نمایه و تنظیمات ارائه‌دهنده کلید API را در دستگاه‌ها همگام‌سازی کنید. همه چیز قبل از آپلود با رمز عبور همگام شما رمزگذاری می شود. WebBrain نمی تواند آن را بخواند یا بازیابی کند. سابقه گپ و ورود به سیستم OAuth همگام سازی نمی شوند.", + "st.sync.email.label": "ایمیل WebBrain Cloud", + "st.sync.password.label": "همگام سازی رمز عبور برای رمزگذاری (12+ کاراکتر)", + "st.sync.confirm.label": "رمز عبور همگام سازی را تأیید کنید", + "st.sync.action.auth": "ارسال لینک ورود", + "st.sync.action.enable": "همگام سازی رمزگذاری شده را روشن کنید", + "st.sync.action.unlock": "باز کردن قفل همگام سازی رمزگذاری شده", + "st.sync.action.now": "اکنون همگام سازی کنید", + "st.sync.action.lock": "قفل کنید", + "st.sync.action.change_password": "تغییر رمز عبور همگام سازی", + "st.sync.action.disable": "همگام سازی را در این دستگاه خاموش کنید", + "st.sync.action.reset": "کپی ابری را با این دستگاه جایگزین کنید", + "st.sync.status.syncing": "همگام سازی رمزگذاری شده در حال به روز رسانی است…", + "st.sync.status.offline": "همگام سازی رمزگذاری شده در انتظار اتصال است.", + "st.sync.status.subscription": "عضویت WebBrain Cloud برای همگام سازی رمزگذاری شده لازم است.", + "st.sync.status.error": "همگام سازی رمزگذاری شده نیاز به توجه دارد.", + "st.sync.status.auth_required": "با ایمیل WebBrain Cloud خود وارد شوید تا از همگام سازی رمزگذاری شده استفاده کنید.", + "st.sync.status.password_required": "وارد سیستم شده‌اید. برای روشن کردن همگام‌سازی رمزگذاری‌شده، رمز عبور همگام‌سازی را انتخاب کنید.", + "st.sync.status.unlocked": "همگام سازی رمزگذاری شده برای این دستگاه روشن است.", + "st.sync.status.locked": "همگام سازی رمزگذاری شده قفل شده است. رمز عبور همگام‌سازی خود را وارد کنید تا قفل آن در این دستگاه باز شود.", + "st.sync.result.updated": "همگام سازی رمزگذاری شده به روز شد.", + "st.sync.result.current": "همگام سازی رمزگذاری شده به روز است.", + "st.sync.pending.syncing": "در حال همگام سازی نسخه ابری رمزگذاری شده…", + "st.sync.pending.syncing_short": "در حال همگام سازی…", + "st.sync.error.generic": "همگام سازی رمزگذاری شده انجام نشد: {error}", + "st.sync.error.unknown": "خطای ناشناخته", + "st.sync.validation.email_required": "ایمیل صورتحساب WebBrain Cloud خود را وارد کنید.", + "st.sync.validation.password_length": "از رمز عبور همگام سازی حداقل 12 کاراکتر استفاده کنید.", + "st.sync.validation.confirm_required": "رمز عبور همگام سازی را تأیید کنید.", + "st.sync.validation.password_mismatch": "گذرواژه‌های همگام‌سازی مطابقت ندارند.", + "st.sync.prompt.new_password": "رمز عبور همگام سازی جدید", + "st.sync.prompt.password": "{label} (12+ نویسه):", + "st.sync.prompt.confirm_password": "تایید رمز عبور همگام سازی:", + "st.sync.prompt.current_password": "رمز عبور همگام سازی فعلی:", + "st.sync.prompt.replacement_password": "رمز عبور را برای نسخه ابری جایگزین همگام کنید", + "st.sync.auth.check_email": "ایمیل خود را بررسی کنید، پیوند ورود به WebBrain Cloud را تأیید کنید، سپس به اینجا بازگردید.", + "st.sync.auth.success": "Cloud Sync احراز هویت شد. رمز عبور تنظیم کنید و همگام سازی را فعال کنید.", + "st.sync.confirm.disable": "همگام سازی رمزگذاری شده در این دستگاه خاموش شود؟ داده های محلی باقی خواهند ماند.", + "st.sync.confirm.reset": "کپی ابری رمزگذاری شده با راه‌اندازی فعلی WebBrain این دستگاه جایگزین شود؟", + "st.sync.consent.legacy": "همگام سازی رمزگذاری شده روشن شود؟ WebBrain یک نسخه رمزگذاری شده سرتاسر از خاطرات، تکمیل خودکار نمایه و تنظیمات ارائه دهنده کلید API شما را به WebBrain Cloud منتقل می کند. سابقه گپ و ورود به سیستم OAuth همگام سازی نمی شوند.", + "st.sync.consent.denied": "مجوز همگام‌سازی رمزگذاری شده داده نشد.", }; diff --git a/src/firefox/src/ui/locales/fr.js b/src/firefox/src/ui/locales/fr.js index de042bc3e..781da24ba 100644 --- a/src/firefox/src/ui/locales/fr.js +++ b/src/firefox/src/ui/locales/fr.js @@ -952,4 +952,46 @@ export default { "sp.workflows.healing.saved": "{count} localisateur(s) mis à jour dans « {name} ».", "sp.workflows.healing.not_saved": "Le localisateur approuvé pour « {name} » n’a pas été enregistré, car le workflow a changé ou la vérification était incertaine.", 'st.display.cost_allowance_scope': 'Applies only to usage-billed cloud and router providers. WebBrain Cloud and local providers are excluded.', + "st.sync.title": "Synchronisation cloud cryptée", + "st.sync.lede_html": "Membres WebBrain Cloud uniquement. Synchronisez les mémoires, le remplissage automatique du profil et les paramètres du fournisseur de clé API sur tous les appareils. Tout est crypté avec votre mot de passe de synchronisation avant le téléchargement. WebBrain ne peut pas le lire ou le récupérer. L'historique des discussions et les connexions OAuth ne sont pas synchronisés.", + "st.sync.email.label": "E-mail WebBrain Cloud", + "st.sync.password.label": "Mot de passe de synchronisation pour le cryptage (12+ caractères)", + "st.sync.confirm.label": "Confirmer le mot de passe de synchronisation", + "st.sync.action.auth": "Envoyer le lien de connexion", + "st.sync.action.enable": "Activer la synchronisation chiffrée", + "st.sync.action.unlock": "Débloquez la synchronisation cryptée", + "st.sync.action.now": "Synchronisez maintenant", + "st.sync.action.lock": "Verrouiller", + "st.sync.action.change_password": "Changer le mot de passe de synchronisation", + "st.sync.action.disable": "Désactiver la synchronisation sur cet appareil", + "st.sync.action.reset": "Remplacer la copie cloud par cet appareil", + "st.sync.status.syncing": "La synchronisation cryptée est en cours de mise à jour…", + "st.sync.status.offline": "La synchronisation cryptée attend une connexion.", + "st.sync.status.subscription": "L'adhésion à WebBrain Cloud est requise pour la synchronisation cryptée.", + "st.sync.status.error": "La synchronisation cryptée nécessite votre attention.", + "st.sync.status.auth_required": "Connectez-vous avec votre adresse e-mail WebBrain Cloud pour utiliser la synchronisation cryptée.", + "st.sync.status.password_required": "Connecté. Choisissez un mot de passe de synchronisation pour activer la synchronisation cryptée.", + "st.sync.status.unlocked": "La synchronisation chiffrée est activée pour cet appareil.", + "st.sync.status.locked": "La synchronisation cryptée est verrouillée. Entrez votre mot de passe de synchronisation pour le déverrouiller sur cet appareil.", + "st.sync.result.updated": "Synchronisation cryptée mise à jour.", + "st.sync.result.current": "La synchronisation cryptée est à jour.", + "st.sync.pending.syncing": "Synchronisation de la copie cloud cryptée…", + "st.sync.pending.syncing_short": "Synchronisation…", + "st.sync.error.generic": "Échec de la synchronisation chiffrée : {error}", + "st.sync.error.unknown": "Erreur inconnue", + "st.sync.validation.email_required": "Saisissez votre e-mail de facturation WebBrain Cloud.", + "st.sync.validation.password_length": "Utilisez un mot de passe de synchronisation d'au moins 12 caractères.", + "st.sync.validation.confirm_required": "Confirmez le mot de passe de synchronisation.", + "st.sync.validation.password_mismatch": "Les mots de passe de synchronisation ne correspondent pas.", + "st.sync.prompt.new_password": "Nouveau mot de passe de synchronisation", + "st.sync.prompt.password": "{label} (12+ caractères) :", + "st.sync.prompt.confirm_password": "Confirmez le mot de passe de synchronisation :", + "st.sync.prompt.current_password": "Mot de passe de synchronisation actuel :", + "st.sync.prompt.replacement_password": "Mot de passe de synchronisation pour la copie cloud de remplacement", + "st.sync.auth.check_email": "Vérifiez votre courrier électronique, approuvez le lien de connexion WebBrain Cloud, puis revenez ici.", + "st.sync.auth.success": "Cloud Sync authentifié. Définissez un mot de passe et activez la synchronisation.", + "st.sync.confirm.disable": "Désactiver la synchronisation chiffrée sur cet appareil ? Les données locales resteront.", + "st.sync.confirm.reset": "Remplacer la copie cloud cryptée par la configuration WebBrain actuelle de cet appareil ?", + "st.sync.consent.legacy": "Activer la synchronisation chiffrée ? WebBrain transmettra une copie cryptée de bout en bout de vos souvenirs, du remplissage automatique de votre profil et des paramètres du fournisseur de clé API à WebBrain Cloud. L'historique des discussions et les connexions OAuth ne sont pas synchronisés.", + "st.sync.consent.denied": "L'autorisation de synchronisation chiffrée n'a pas été accordée.", }; diff --git a/src/firefox/src/ui/locales/he.js b/src/firefox/src/ui/locales/he.js index 0b08302a6..3d197cb27 100644 --- a/src/firefox/src/ui/locales/he.js +++ b/src/firefox/src/ui/locales/he.js @@ -905,4 +905,46 @@ export default { "sp.workflows.healing.saved": "עודכנו {count} מאתרים ב־„{name}”.", "sp.workflows.healing.not_saved": "המאתר שאושר עבור „{name}” לא נשמר משום שתהליך העבודה השתנה או שהאימות לא היה חד־משמעי.", 'st.display.cost_allowance_scope': 'Applies only to usage-billed cloud and router providers. WebBrain Cloud and local providers are excluded.', + "st.sync.title": "סנכרון ענן מוצפן", + "st.sync.lede_html": "חברי WebBrain Cloud בלבד. סנכרן זיכרונות, מילוי אוטומטי של פרופילים והגדרות ספק מפתח API בין מכשירים. הכל מוצפן עם סיסמת הסנכרון שלך לפני ההעלאה. WebBrain לא יכול לקרוא או לשחזר אותו. היסטוריית הצ'אט וכניסות OAuth אינן מסונכרנות.", + "st.sync.email.label": "דוא\"ל של WebBrain Cloud", + "st.sync.password.label": "סיסמת סנכרון להצפנה (12+ תווים)", + "st.sync.confirm.label": "אשר את סיסמת הסנכרון", + "st.sync.action.auth": "שלח קישור כניסה", + "st.sync.action.enable": "הפעל סנכרון מוצפן", + "st.sync.action.unlock": "בטל את הנעילה של סנכרון מוצפן", + "st.sync.action.now": "סנכרן עכשיו", + "st.sync.action.lock": "מנעול", + "st.sync.action.change_password": "שנה את סיסמת הסנכרון", + "st.sync.action.disable": "כבה את הסנכרון במכשיר זה", + "st.sync.action.reset": "החלף עותק ענן במכשיר זה", + "st.sync.status.syncing": "סנכרון מוצפן מתעדכן...", + "st.sync.status.offline": "סנכרון מוצפן ממתין לחיבור.", + "st.sync.status.subscription": "נדרשת חברות ב-WebBrain Cloud לסנכרון מוצפן.", + "st.sync.status.error": "סנכרון מוצפן דורש תשומת לב.", + "st.sync.status.auth_required": "היכנס עם האימייל שלך ב-WebBrain Cloud כדי להשתמש בסנכרון מוצפן.", + "st.sync.status.password_required": "מחובר. בחר סיסמת סנכרון כדי להפעיל סנכרון מוצפן.", + "st.sync.status.unlocked": "סנכרון מוצפן מופעל עבור מכשיר זה.", + "st.sync.status.locked": "סנכרון מוצפן נעול. הזן את סיסמת הסנכרון שלך כדי לבטל את נעילתה במכשיר זה.", + "st.sync.result.updated": "סנכרון מוצפן עודכן.", + "st.sync.result.current": "סנכרון מוצפן מעודכן.", + "st.sync.pending.syncing": "מסנכרן עותק מוצפן בענן...", + "st.sync.pending.syncing_short": "מסנכרן...", + "st.sync.error.generic": "סנכרון מוצפן נכשל: {error}", + "st.sync.error.unknown": "שגיאה לא ידועה", + "st.sync.validation.email_required": "הזן את דוא\"ל החיוב שלך ב-WebBrain Cloud.", + "st.sync.validation.password_length": "השתמש בסיסמת סנכרון של לפחות 12 תווים.", + "st.sync.validation.confirm_required": "אשר את סיסמת הסנכרון.", + "st.sync.validation.password_mismatch": "סיסמאות סנכרון אינן תואמות.", + "st.sync.prompt.new_password": "סיסמת סנכרון חדשה", + "st.sync.prompt.password": "{label} (12+ תווים):", + "st.sync.prompt.confirm_password": "אשר את סיסמת הסנכרון:", + "st.sync.prompt.current_password": "סיסמת סנכרון נוכחית:", + "st.sync.prompt.replacement_password": "סיסמת סנכרון עבור עותק הענן החלופי", + "st.sync.auth.check_email": "בדוק את הדוא\"ל שלך, אשר את קישור הכניסה של WebBrain Cloud ואז חזור לכאן.", + "st.sync.auth.success": "Cloud Sync מאומת. הגדר סיסמה והפעל סנכרון.", + "st.sync.confirm.disable": "לכבות את הסנכרון המוצפן במכשיר הזה? הנתונים המקומיים יישארו.", + "st.sync.confirm.reset": "האם להחליף את עותק הענן המוצפן בהגדרות WebBrain הנוכחיות של המכשיר הזה?", + "st.sync.consent.legacy": "להפעיל סנכרון מוצפן? WebBrain ישדר עותק מוצפן מקצה לקצה של הזיכרונות, המילוי האוטומטי של הפרופיל והגדרות ספק מפתח ה-API שלך ל-WebBrain Cloud. היסטוריית הצ'אט וכניסות OAuth אינן מסונכרנות.", + "st.sync.consent.denied": "הרשאת סנכרון מוצפן לא ניתנה.", }; diff --git a/src/firefox/src/ui/locales/hi.js b/src/firefox/src/ui/locales/hi.js index 99cc77ccf..6e9457782 100644 --- a/src/firefox/src/ui/locales/hi.js +++ b/src/firefox/src/ui/locales/hi.js @@ -972,4 +972,46 @@ export default { "sp.workflows.healing.saved": "“{name}” में {count} लोकेटर अपडेट किए गए।", "sp.workflows.healing.not_saved": "“{name}” के लिए स्वीकृत लोकेटर सहेजा नहीं गया क्योंकि वर्कफ़्लो बदल गया था या सत्यापन निर्णायक नहीं था।", 'st.display.cost_allowance_scope': 'Applies only to usage-billed cloud and router providers. WebBrain Cloud and local providers are excluded.', + "st.sync.title": "एन्क्रिप्टेड क्लाउड सिंक", + "st.sync.lede_html": "केवल WebBrain Cloud सदस्यों के लिए। डिवाइसों के बीच यादें, प्रोफ़ाइल ऑटोफ़िल और API-कुंजी प्रदाता सेटिंग्स सिंक करें। अपलोड से पहले सब कुछ आपके सिंक पासवर्ड से एन्क्रिप्ट किया जाता है। WebBrain इसे पढ़ या पुनर्प्राप्त नहीं कर सकता। चैट इतिहास और OAuth साइन-इन सिंक नहीं किए जाते।", + "st.sync.email.label": "WebBrain Cloud ईमेल", + "st.sync.password.label": "एन्क्रिप्शन के लिए सिंक पासवर्ड (12+ अक्षर)", + "st.sync.confirm.label": "सिंक पासवर्ड की पुष्टि करें", + "st.sync.action.auth": "साइन-इन लिंक भेजें", + "st.sync.action.enable": "एन्क्रिप्टेड सिंक चालू करें", + "st.sync.action.unlock": "एन्क्रिप्टेड सिंक अनलॉक करें", + "st.sync.action.now": "अभी सिंक करें", + "st.sync.action.lock": "ताला", + "st.sync.action.change_password": "सिंक पासवर्ड बदलें", + "st.sync.action.disable": "इस डिवाइस पर सिंक बंद करें", + "st.sync.action.reset": "इस डिवाइस से क्लाउड कॉपी बदलें", + "st.sync.status.syncing": "एन्क्रिप्टेड सिंक अपडेट हो रहा है...", + "st.sync.status.offline": "एन्क्रिप्टेड सिंक कनेक्शन की प्रतीक्षा कर रहा है.", + "st.sync.status.subscription": "एन्क्रिप्टेड सिंक के लिए WebBrain Cloud सदस्यता आवश्यक है।", + "st.sync.status.error": "एन्क्रिप्टेड सिंक पर ध्यान देने की जरूरत है।", + "st.sync.status.auth_required": "एन्क्रिप्टेड सिंक का उपयोग करने के लिए अपने WebBrain Cloud ईमेल से साइन इन करें।", + "st.sync.status.password_required": "साइन इन हो गया। एन्क्रिप्टेड सिंक चालू करने के लिए एक सिंक पासवर्ड चुनें।", + "st.sync.status.unlocked": "इस डिवाइस के लिए एन्क्रिप्टेड सिंक चालू है.", + "st.sync.status.locked": "एन्क्रिप्टेड सिंक लॉक है। इस डिवाइस पर इसे अनलॉक करने के लिए अपना सिंक पासवर्ड दर्ज करें।", + "st.sync.result.updated": "एन्क्रिप्टेड सिंक अपडेट किया गया.", + "st.sync.result.current": "एन्क्रिप्टेड सिंक अद्यतित है.", + "st.sync.pending.syncing": "एन्क्रिप्टेड क्लाउड कॉपी सिंक हो रही है…", + "st.sync.pending.syncing_short": "सिंक हो रहा है...", + "st.sync.error.generic": "एन्क्रिप्टेड सिंक विफल: {error}", + "st.sync.error.unknown": "अज्ञात त्रुटि", + "st.sync.validation.email_required": "अपना WebBrain Cloud बिलिंग ईमेल दर्ज करें।", + "st.sync.validation.password_length": "कम से कम 12 अक्षरों का सिंक पासवर्ड उपयोग करें।", + "st.sync.validation.confirm_required": "सिंक पासवर्ड की पुष्टि करें.", + "st.sync.validation.password_mismatch": "सिंक पासवर्ड मेल नहीं खाते.", + "st.sync.prompt.new_password": "नया सिंक पासवर्ड", + "st.sync.prompt.password": "{label} (12+ अक्षर):", + "st.sync.prompt.confirm_password": "सिंक पासवर्ड की पुष्टि करें:", + "st.sync.prompt.current_password": "वर्तमान सिंक पासवर्ड:", + "st.sync.prompt.replacement_password": "प्रतिस्थापन क्लाउड कॉपी के लिए सिंक पासवर्ड", + "st.sync.auth.check_email": "अपना ईमेल देखें, WebBrain Cloud साइन-इन लिंक को स्वीकृत करें, फिर यहां लौटें।", + "st.sync.auth.success": "क्लाउड सिंक प्रमाणित। एक पासवर्ड सेट करें और सिंक सक्षम करें।", + "st.sync.confirm.disable": "इस डिवाइस पर एन्क्रिप्टेड सिंक बंद करें? स्थानीय डेटा रहेगा.", + "st.sync.confirm.reset": "क्या एन्क्रिप्टेड क्लाउड कॉपी को इस डिवाइस के मौजूदा WebBrain सेटअप से बदलना है?", + "st.sync.consent.legacy": "एन्क्रिप्टेड सिंक चालू करें? WebBrain आपकी यादों, प्रोफ़ाइल ऑटोफ़िल और API-कुंजी प्रदाता सेटिंग्स की एंड-टू-एंड एन्क्रिप्टेड कॉपी WebBrain Cloud को भेजेगा। चैट इतिहास और OAuth साइन-इन सिंक नहीं किए जाते।", + "st.sync.consent.denied": "एन्क्रिप्टेड सिंक अनुमति नहीं दी गई थी.", }; diff --git a/src/firefox/src/ui/locales/id.js b/src/firefox/src/ui/locales/id.js index 091895582..0fc31efbf 100644 --- a/src/firefox/src/ui/locales/id.js +++ b/src/firefox/src/ui/locales/id.js @@ -952,4 +952,46 @@ export default { "sp.workflows.healing.saved": "Memperbarui {count} locator di “{name}”.", "sp.workflows.healing.not_saved": "Locator yang disetujui untuk “{name}” tidak disimpan karena alur kerja berubah atau verifikasi tidak meyakinkan.", 'st.display.cost_allowance_scope': 'Applies only to usage-billed cloud and router providers. WebBrain Cloud and local providers are excluded.', + "st.sync.title": "Sinkronisasi Cloud Terenkripsi", + "st.sync.lede_html": "Khusus anggota WebBrain Cloud. Menyinkronkan memori, pengisian otomatis profil, dan pengaturan penyedia kunci API di seluruh perangkat. Semuanya dienkripsi dengan kata sandi sinkronisasi Anda sebelum diunggah. WebBrain tidak dapat membaca atau memulihkannya. Riwayat obrolan dan proses masuk OAuth tidak disinkronkan.", + "st.sync.email.label": "Email Cloud WebBrain", + "st.sync.password.label": "Sinkronkan kata sandi untuk enkripsi (12+ karakter)", + "st.sync.confirm.label": "Konfirmasikan kata sandi sinkronisasi", + "st.sync.action.auth": "Kirim tautan masuk", + "st.sync.action.enable": "Aktifkan sinkronisasi terenkripsi", + "st.sync.action.unlock": "Buka kunci sinkronisasi terenkripsi", + "st.sync.action.now": "Sinkronkan sekarang", + "st.sync.action.lock": "Kunci", + "st.sync.action.change_password": "Ubah kata sandi sinkronisasi", + "st.sync.action.disable": "Nonaktifkan sinkronisasi pada perangkat ini", + "st.sync.action.reset": "Ganti salinan cloud dengan perangkat ini", + "st.sync.status.syncing": "Sinkronisasi terenkripsi sedang diperbarui…", + "st.sync.status.offline": "Sinkronisasi terenkripsi sedang menunggu koneksi.", + "st.sync.status.subscription": "Keanggotaan WebBrain Cloud diperlukan untuk sinkronisasi terenkripsi.", + "st.sync.status.error": "Sinkronisasi terenkripsi memerlukan perhatian.", + "st.sync.status.auth_required": "Masuk dengan email WebBrain Cloud Anda untuk menggunakan sinkronisasi terenkripsi.", + "st.sync.status.password_required": "Masuk. Pilih kata sandi sinkronisasi untuk mengaktifkan sinkronisasi terenkripsi.", + "st.sync.status.unlocked": "Sinkronisasi terenkripsi aktif untuk perangkat ini.", + "st.sync.status.locked": "Sinkronisasi terenkripsi terkunci. Masukkan kata sandi sinkronisasi Anda untuk membuka kuncinya di perangkat ini.", + "st.sync.result.updated": "Sinkronisasi terenkripsi diperbarui.", + "st.sync.result.current": "Sinkronisasi terenkripsi adalah yang terbaru.", + "st.sync.pending.syncing": "Menyinkronkan salinan cloud terenkripsi…", + "st.sync.pending.syncing_short": "Menyinkronkan…", + "st.sync.error.generic": "Sinkronisasi terenkripsi gagal: {error}", + "st.sync.error.unknown": "Kesalahan tidak diketahui", + "st.sync.validation.email_required": "Masukkan email penagihan WebBrain Cloud Anda.", + "st.sync.validation.password_length": "Gunakan kata sandi sinkronisasi minimal 12 karakter.", + "st.sync.validation.confirm_required": "Konfirmasikan kata sandi sinkronisasi.", + "st.sync.validation.password_mismatch": "Kata sandi sinkronisasi tidak cocok.", + "st.sync.prompt.new_password": "Kata sandi sinkronisasi baru", + "st.sync.prompt.password": "{label} (12+ karakter):", + "st.sync.prompt.confirm_password": "Konfirmasikan kata sandi sinkronisasi:", + "st.sync.prompt.current_password": "Kata sandi sinkronisasi saat ini:", + "st.sync.prompt.replacement_password": "Sinkronkan kata sandi untuk salinan cloud pengganti", + "st.sync.auth.check_email": "Periksa email Anda, setujui tautan masuk WebBrain Cloud, lalu kembali ke sini.", + "st.sync.auth.success": "Sinkronisasi Cloud diautentikasi. Tetapkan kata sandi dan aktifkan sinkronisasi.", + "st.sync.confirm.disable": "Nonaktifkan sinkronisasi terenkripsi di perangkat ini? Data lokal akan tetap ada.", + "st.sync.confirm.reset": "Ganti salinan cloud terenkripsi dengan pengaturan WebBrain perangkat ini saat ini?", + "st.sync.consent.legacy": "Aktifkan sinkronisasi terenkripsi? WebBrain akan mengirimkan salinan memori Anda yang terenkripsi ujung ke ujung, pengisian otomatis profil, dan pengaturan penyedia kunci API ke WebBrain Cloud. Riwayat obrolan dan proses masuk OAuth tidak disinkronkan.", + "st.sync.consent.denied": "Izin sinkronisasi terenkripsi tidak diberikan.", }; diff --git a/src/firefox/src/ui/locales/ja.js b/src/firefox/src/ui/locales/ja.js index cec5540c2..5642f36d0 100644 --- a/src/firefox/src/ui/locales/ja.js +++ b/src/firefox/src/ui/locales/ja.js @@ -952,4 +952,46 @@ export default { "sp.workflows.healing.saved": "「{name}」のロケーターを {count} 件更新しました。", "sp.workflows.healing.not_saved": "ワークフローが変更されたか検証結果が不確実だったため、「{name}」で承認されたロケーターは保存されませんでした。", 'st.display.cost_allowance_scope': 'Applies only to usage-billed cloud and router providers. WebBrain Cloud and local providers are excluded.', + "st.sync.title": "暗号化されたクラウド同期", + "st.sync.lede_html": "WebBrain Cloud メンバーのみ デバイス間でメモリ、プロファイルの自動入力、API キー プロバイダーの設定を同期します。アップロード前に、すべてが同期パスワードで暗号化されます。 WebBrain はそれを読み取ることも回復することもできません。チャット履歴と OAuth サインインは同期されません。", + "st.sync.email.label": "WebBrain クラウドメール", + "st.sync.password.label": "暗号化用の同期パスワード (12 文字以上)", + "st.sync.confirm.label": "同期パスワードの確認", + "st.sync.action.auth": "サインインリンクを送信する", + "st.sync.action.enable": "暗号化された同期をオンにする", + "st.sync.action.unlock": "暗号化された同期のロックを解除する", + "st.sync.action.now": "今すぐ同期する", + "st.sync.action.lock": "ロック", + "st.sync.action.change_password": "同期パスワードを変更する", + "st.sync.action.disable": "このデバイスの同期をオフにする", + "st.sync.action.reset": "クラウドコピーをこのデバイスに置き換えます", + "st.sync.status.syncing": "暗号化された同期を更新中です…", + "st.sync.status.offline": "暗号化された同期は接続を待機しています。", + "st.sync.status.subscription": "暗号化同期には WebBrain Cloud メンバーシップが必要です。", + "st.sync.status.error": "暗号化された同期には注意が必要です。", + "st.sync.status.auth_required": "暗号化された同期を使用するには、WebBrain Cloud メールでサインインします。", + "st.sync.status.password_required": "サインインしています。同期パスワードを選択して、暗号化された同期を有効にします。", + "st.sync.status.unlocked": "このデバイスでは暗号化された同期がオンになっています。", + "st.sync.status.locked": "暗号化された同期はロックされています。同期パスワードを入力して、このデバイスのロックを解除します。", + "st.sync.result.updated": "暗号化された同期が更新されました。", + "st.sync.result.current": "暗号化された同期は最新です。", + "st.sync.pending.syncing": "暗号化されたクラウド コピーを同期しています…", + "st.sync.pending.syncing_short": "同期中…", + "st.sync.error.generic": "暗号化された同期が失敗しました: {error}", + "st.sync.error.unknown": "不明なエラー", + "st.sync.validation.email_required": "WebBrain Cloud の請求先メールアドレスを入力します。", + "st.sync.validation.password_length": "少なくとも 12 文字の同期パスワードを使用してください。", + "st.sync.validation.confirm_required": "同期パスワードを確認します。", + "st.sync.validation.password_mismatch": "同期パスワードが一致しません。", + "st.sync.prompt.new_password": "新しい同期パスワード", + "st.sync.prompt.password": "{label} (12 文字以上):", + "st.sync.prompt.confirm_password": "同期パスワードを確認します:", + "st.sync.prompt.current_password": "現在の同期パスワード:", + "st.sync.prompt.replacement_password": "置換クラウドコピーの同期パスワード", + "st.sync.auth.check_email": "メールを確認し、WebBrain Cloud サインイン リンクを承認して、ここに戻ってください。", + "st.sync.auth.success": "クラウド同期が認証されました。パスワードを設定し、同期を有効にします。", + "st.sync.confirm.disable": "このデバイスの暗号化された同期をオフにしますか?ローカルデータは残ります。", + "st.sync.confirm.reset": "暗号化されたクラウド コピーをこのデバイスの現在の WebBrain セットアップに置き換えますか?", + "st.sync.consent.legacy": "暗号化された同期をオンにしますか? WebBrain は、エンドツーエンドで暗号化された思い出、プロファイルの自動入力、API キー プロバイダー設定のコピーを WebBrain Cloud に送信します。チャット履歴と OAuth サインインは同期されません。", + "st.sync.consent.denied": "暗号化された同期権限が付与されませんでした。", }; diff --git a/src/firefox/src/ui/locales/ko.js b/src/firefox/src/ui/locales/ko.js index 70af464a7..dcbf46dd0 100644 --- a/src/firefox/src/ui/locales/ko.js +++ b/src/firefox/src/ui/locales/ko.js @@ -952,4 +952,46 @@ export default { "sp.workflows.healing.saved": "“{name}”에서 로케이터 {count}개를 업데이트했습니다.", "sp.workflows.healing.not_saved": "워크플로가 변경되었거나 검증 결과가 불확실하여 “{name}”에서 승인한 로케이터를 저장하지 않았습니다.", 'st.display.cost_allowance_scope': 'Applies only to usage-billed cloud and router providers. WebBrain Cloud and local providers are excluded.', + "st.sync.title": "암호화된 클라우드 동기화", + "st.sync.lede_html": "WebBrain Cloud 회원 전용. 여러 기기에서 추억, 프로필 자동 완성, API 키 제공자 설정을 동기화합니다. 업로드하기 전에 모든 것이 동기화 비밀번호로 암호화됩니다. WebBrain은 이를 읽거나 복구할 수 없습니다. 채팅 기록과 OAuth 로그인은 동기화되지 않습니다.", + "st.sync.email.label": "WebBrain Cloud 이메일", + "st.sync.password.label": "암호화를 위한 동기화 비밀번호(12자 이상)", + "st.sync.confirm.label": "동기화 비밀번호 확인", + "st.sync.action.auth": "로그인 링크 보내기", + "st.sync.action.enable": "암호화된 동기화 켜기", + "st.sync.action.unlock": "암호화된 동기화 잠금 해제", + "st.sync.action.now": "지금 동기화", + "st.sync.action.lock": "잠금", + "st.sync.action.change_password": "동기화 비밀번호 변경", + "st.sync.action.disable": "이 기기에서 동기화 끄기", + "st.sync.action.reset": "클라우드 사본을 이 장치로 교체", + "st.sync.status.syncing": "암호화된 동기화가 업데이트 중입니다…", + "st.sync.status.offline": "암호화된 동기화가 연결을 기다리고 있습니다.", + "st.sync.status.subscription": "암호화된 동기화를 위해서는 WebBrain Cloud 멤버십이 필요합니다.", + "st.sync.status.error": "암호화된 동기화에는 주의가 필요합니다.", + "st.sync.status.auth_required": "암호화된 동기화를 사용하려면 WebBrain Cloud 이메일로 로그인하세요.", + "st.sync.status.password_required": "로그인했습니다. 암호화된 동기화를 켜려면 동기화 비밀번호를 선택하세요.", + "st.sync.status.unlocked": "이 기기에 암호화된 동기화가 켜져 있습니다.", + "st.sync.status.locked": "암호화된 동기화가 잠겨 있습니다. 이 기기에서 잠금을 해제하려면 동기화 비밀번호를 입력하세요.", + "st.sync.result.updated": "암호화된 동기화가 업데이트되었습니다.", + "st.sync.result.current": "암호화된 동기화가 최신 상태입니다.", + "st.sync.pending.syncing": "암호화된 클라우드 사본 동기화 중…", + "st.sync.pending.syncing_short": "동기화 중…", + "st.sync.error.generic": "암호화된 동기화 실패: {error}", + "st.sync.error.unknown": "알 수 없는 오류", + "st.sync.validation.email_required": "WebBrain Cloud 청구 이메일을 입력하세요.", + "st.sync.validation.password_length": "12자 이상의 동기화 비밀번호를 사용하세요.", + "st.sync.validation.confirm_required": "동기화 비밀번호를 확인하세요.", + "st.sync.validation.password_mismatch": "동기화 비밀번호가 일치하지 않습니다.", + "st.sync.prompt.new_password": "새 동기화 비밀번호", + "st.sync.prompt.password": "{label}(12자 이상):", + "st.sync.prompt.confirm_password": "동기화 비밀번호 확인:", + "st.sync.prompt.current_password": "현재 동기화 비밀번호:", + "st.sync.prompt.replacement_password": "대체 클라우드 사본에 대한 동기화 비밀번호", + "st.sync.auth.check_email": "이메일을 확인하고 WebBrain Cloud 로그인 링크를 승인한 후 여기로 돌아오세요.", + "st.sync.auth.success": "클라우드 동기화가 인증되었습니다. 비밀번호를 설정하고 동기화를 활성화하세요.", + "st.sync.confirm.disable": "이 기기에서 암호화된 동기화를 끄시겠습니까? 로컬 데이터는 그대로 유지됩니다.", + "st.sync.confirm.reset": "암호화된 클라우드 사본을 이 기기의 현재 WebBrain 설정으로 바꾸시겠습니까?", + "st.sync.consent.legacy": "암호화된 동기화를 사용하시겠습니까? WebBrain은 추억, 프로필 자동 완성 및 API 키 제공자 설정의 엔드 투 엔드 암호화 사본을 WebBrain Cloud로 전송합니다. 채팅 기록과 OAuth 로그인은 동기화되지 않습니다.", + "st.sync.consent.denied": "암호화된 동기화 권한이 부여되지 않았습니다.", }; diff --git a/src/firefox/src/ui/locales/ms.js b/src/firefox/src/ui/locales/ms.js index 9ad2a7a7a..a0088e4bb 100644 --- a/src/firefox/src/ui/locales/ms.js +++ b/src/firefox/src/ui/locales/ms.js @@ -952,4 +952,46 @@ export default { "sp.workflows.healing.saved": "Mengemas kini {count} pencari dalam “{name}”.", "sp.workflows.healing.not_saved": "Pencari yang diluluskan untuk “{name}” tidak disimpan kerana aliran kerja berubah atau pengesahan tidak muktamad.", 'st.display.cost_allowance_scope': 'Applies only to usage-billed cloud and router providers. WebBrain Cloud and local providers are excluded.', + "st.sync.title": "Penyegerakan Awan Disulitkan", + "st.sync.lede_html": "Ahli WebBrain Cloud sahaja. Segerakkan kenangan, autoisi profil dan tetapan pembekal kunci API merentas peranti. Semuanya disulitkan dengan kata laluan penyegerakan anda sebelum memuat naik. WebBrain tidak boleh membaca atau memulihkannya. Sejarah sembang dan log masuk OAuth tidak disegerakkan.", + "st.sync.email.label": "E-mel WebBrain Cloud", + "st.sync.password.label": "Segerakkan kata laluan untuk penyulitan (12+ aksara)", + "st.sync.confirm.label": "Sahkan kata laluan penyegerakan", + "st.sync.action.auth": "Hantar pautan log masuk", + "st.sync.action.enable": "Hidupkan penyegerakan yang disulitkan", + "st.sync.action.unlock": "Buka kunci penyegerakan yang disulitkan", + "st.sync.action.now": "Segerakkan sekarang", + "st.sync.action.lock": "Kunci", + "st.sync.action.change_password": "Tukar kata laluan penyegerakan", + "st.sync.action.disable": "Matikan penyegerakan pada peranti ini", + "st.sync.action.reset": "Gantikan salinan awan dengan peranti ini", + "st.sync.status.syncing": "Penyegerakan yang disulitkan sedang mengemas kini…", + "st.sync.status.offline": "Penyegerakan yang disulitkan sedang menunggu sambungan.", + "st.sync.status.subscription": "Keahlian WebBrain Cloud diperlukan untuk penyegerakan yang disulitkan.", + "st.sync.status.error": "Penyegerakan yang disulitkan memerlukan perhatian.", + "st.sync.status.auth_required": "Log masuk dengan e-mel WebBrain Cloud anda untuk menggunakan penyegerakan yang disulitkan.", + "st.sync.status.password_required": "Log masuk. Pilih kata laluan penyegerakan untuk menghidupkan penyegerakan yang disulitkan.", + "st.sync.status.unlocked": "Penyegerakan yang disulitkan dihidupkan untuk peranti ini.", + "st.sync.status.locked": "Penyegerakan yang disulitkan dikunci. Masukkan kata laluan penyegerakan anda untuk membuka kuncinya pada peranti ini.", + "st.sync.result.updated": "Penyegerakan yang disulitkan dikemas kini.", + "st.sync.result.current": "Penyegerakan yang disulitkan adalah terkini.", + "st.sync.pending.syncing": "Menyegerakkan salinan awan yang disulitkan…", + "st.sync.pending.syncing_short": "Menyegerakkan…", + "st.sync.error.generic": "Penyegerakan yang disulitkan gagal: {error}", + "st.sync.error.unknown": "Ralat tidak diketahui", + "st.sync.validation.email_required": "Masukkan e-mel pengebilan WebBrain Cloud anda.", + "st.sync.validation.password_length": "Gunakan kata laluan penyegerakan sekurang-kurangnya 12 aksara.", + "st.sync.validation.confirm_required": "Sahkan kata laluan penyegerakan.", + "st.sync.validation.password_mismatch": "Kata laluan penyegerakan tidak sepadan.", + "st.sync.prompt.new_password": "Kata laluan penyegerakan baharu", + "st.sync.prompt.password": "{label} (12+ aksara):", + "st.sync.prompt.confirm_password": "Sahkan kata laluan penyegerakan:", + "st.sync.prompt.current_password": "Kata laluan penyegerakan semasa:", + "st.sync.prompt.replacement_password": "Segerakkan kata laluan untuk salinan awan gantian", + "st.sync.auth.check_email": "Semak e-mel anda, luluskan pautan log masuk WebBrain Cloud, kemudian kembali ke sini.", + "st.sync.auth.success": "Cloud Sync disahkan. Tetapkan kata laluan dan dayakan penyegerakan.", + "st.sync.confirm.disable": "Matikan penyegerakan yang disulitkan pada peranti ini? Data tempatan akan kekal.", + "st.sync.confirm.reset": "Gantikan salinan awan yang disulitkan dengan persediaan WebBrain semasa peranti ini?", + "st.sync.consent.legacy": "Hidupkan penyegerakan yang disulitkan? WebBrain akan menghantar salinan memori anda yang disulitkan hujung ke hujung, autolengkap profil dan tetapan pembekal kunci API ke WebBrain Cloud. Sejarah sembang dan log masuk OAuth tidak disegerakkan.", + "st.sync.consent.denied": "Kebenaran penyegerakan yang disulitkan tidak diberikan.", }; diff --git a/src/firefox/src/ui/locales/nl.js b/src/firefox/src/ui/locales/nl.js index bba35efe2..d92bb9263 100644 --- a/src/firefox/src/ui/locales/nl.js +++ b/src/firefox/src/ui/locales/nl.js @@ -925,4 +925,46 @@ export default { "sp.workflows.healing.saved": "{count} locator(s) in ‘{name}’ bijgewerkt.", "sp.workflows.healing.not_saved": "De goedgekeurde locator voor ‘{name}’ is niet opgeslagen omdat de workflow was gewijzigd of de verificatie niet overtuigend was.", 'st.display.cost_allowance_scope': 'Applies only to usage-billed cloud and router providers. WebBrain Cloud and local providers are excluded.', + "st.sync.title": "Gecodeerde cloudsynchronisatie", + "st.sync.lede_html": "Alleen voor WebBrain Cloud-leden. Synchroniseer herinneringen, automatisch aanvullen van profielen en instellingen van de API-sleutelprovider op verschillende apparaten. Alles wordt vóór het uploaden gecodeerd met uw synchronisatiewachtwoord. WebBrain kan het niet lezen of herstellen. Chatgeschiedenis en OAuth-aanmeldingen worden niet gesynchroniseerd.", + "st.sync.email.label": "WebBrain Cloud-e-mail", + "st.sync.password.label": "Synchronisatiewachtwoord voor codering (12+ tekens)", + "st.sync.confirm.label": "Bevestig het synchronisatiewachtwoord", + "st.sync.action.auth": "Inloglink verzenden", + "st.sync.action.enable": "Schakel gecodeerde synchronisatie in", + "st.sync.action.unlock": "Ontgrendel gecodeerde synchronisatie", + "st.sync.action.now": "Synchroniseer nu", + "st.sync.action.lock": "Vergrendelen", + "st.sync.action.change_password": "Wijzig het synchronisatiewachtwoord", + "st.sync.action.disable": "Schakel synchronisatie uit op dit apparaat", + "st.sync.action.reset": "Vervang cloudkopie door dit apparaat", + "st.sync.status.syncing": "Gecodeerde synchronisatie wordt bijgewerkt…", + "st.sync.status.offline": "Gecodeerde synchronisatie wacht op een verbinding.", + "st.sync.status.subscription": "WebBrain Cloud-lidmaatschap is vereist voor gecodeerde synchronisatie.", + "st.sync.status.error": "Gecodeerde synchronisatie heeft aandacht nodig.", + "st.sync.status.auth_required": "Meld u aan met uw WebBrain Cloud-e-mailadres om gecodeerde synchronisatie te gebruiken.", + "st.sync.status.password_required": "Ingelogd. Kies een synchronisatiewachtwoord om gecodeerde synchronisatie in te schakelen.", + "st.sync.status.unlocked": "Versleutelde synchronisatie staat aan voor dit apparaat.", + "st.sync.status.locked": "Gecodeerde synchronisatie is vergrendeld. Voer uw synchronisatiewachtwoord in om het op dit apparaat te ontgrendelen.", + "st.sync.result.updated": "Gecodeerde synchronisatie bijgewerkt.", + "st.sync.result.current": "Gecodeerde synchronisatie is up-to-date.", + "st.sync.pending.syncing": "Versleutelde cloudkopie synchroniseren…", + "st.sync.pending.syncing_short": "Synchroniseren…", + "st.sync.error.generic": "Gecodeerde synchronisatie mislukt: {error}", + "st.sync.error.unknown": "Onbekende fout", + "st.sync.validation.email_required": "Voer uw WebBrain Cloud-facturerings-e-mailadres in.", + "st.sync.validation.password_length": "Gebruik een synchronisatiewachtwoord van minimaal 12 tekens.", + "st.sync.validation.confirm_required": "Bevestig het synchronisatiewachtwoord.", + "st.sync.validation.password_mismatch": "Synchronisatiewachtwoorden komen niet overeen.", + "st.sync.prompt.new_password": "Nieuw synchronisatiewachtwoord", + "st.sync.prompt.password": "{label} (12+ tekens):", + "st.sync.prompt.confirm_password": "Synchronisatiewachtwoord bevestigen:", + "st.sync.prompt.current_password": "Huidig synchronisatiewachtwoord:", + "st.sync.prompt.replacement_password": "Synchroniseer het wachtwoord voor de vervangende cloudkopie", + "st.sync.auth.check_email": "Controleer uw e-mail, keur de aanmeldingslink voor WebBrain Cloud goed en kom dan hier terug.", + "st.sync.auth.success": "Cloudsynchronisatie geverifieerd. Stel een wachtwoord in en schakel synchronisatie in.", + "st.sync.confirm.disable": "Versleutelde synchronisatie op dit apparaat uitschakelen? Lokale gegevens blijven behouden.", + "st.sync.confirm.reset": "De gecodeerde cloudkopie vervangen door de huidige WebBrain-installatie van dit apparaat?", + "st.sync.consent.legacy": "Versleutelde synchronisatie inschakelen? WebBrain verzendt een end-to-end gecodeerde kopie van uw herinneringen, automatisch aanvullen van profielen en API-sleutelproviderinstellingen naar WebBrain Cloud. Chatgeschiedenis en OAuth-aanmeldingen worden niet gesynchroniseerd.", + "st.sync.consent.denied": "Er is geen versleutelde synchronisatietoestemming verleend.", }; diff --git a/src/firefox/src/ui/locales/pl.js b/src/firefox/src/ui/locales/pl.js index bd2ad7c0a..d5457126e 100644 --- a/src/firefox/src/ui/locales/pl.js +++ b/src/firefox/src/ui/locales/pl.js @@ -912,4 +912,46 @@ export default { "sp.workflows.healing.saved": "Zaktualizowano {count} lokalizatorów w „{name}”.", "sp.workflows.healing.not_saved": "Zatwierdzony lokalizator dla „{name}” nie został zapisany, ponieważ przepływ się zmienił lub weryfikacja nie była jednoznaczna.", 'st.display.cost_allowance_scope': 'Applies only to usage-billed cloud and router providers. WebBrain Cloud and local providers are excluded.', + "st.sync.title": "Szyfrowana synchronizacja w chmurze", + "st.sync.lede_html": "Tylko członkowie WebBrain Cloud. Synchronizuj wspomnienia, automatyczne uzupełnianie profili i ustawienia dostawcy klucza API na różnych urządzeniach. Przed przesłaniem wszystko jest szyfrowane przy użyciu hasła synchronizacji. WebBrain nie może go odczytać ani odzyskać. Historia czatów i logowania OAuth nie są synchronizowane.", + "st.sync.email.label": "Poczta e-mail w chmurze WebBrain", + "st.sync.password.label": "Hasło synchronizacji do szyfrowania (ponad 12 znaków)", + "st.sync.confirm.label": "Potwierdź hasło synchronizacji", + "st.sync.action.auth": "Wyślij link do logowania", + "st.sync.action.enable": "Włącz szyfrowaną synchronizację", + "st.sync.action.unlock": "Odblokuj szyfrowaną synchronizację", + "st.sync.action.now": "Zsynchronizuj teraz", + "st.sync.action.lock": "Blokada", + "st.sync.action.change_password": "Zmień hasło synchronizacji", + "st.sync.action.disable": "Wyłącz synchronizację na tym urządzeniu", + "st.sync.action.reset": "Zamień kopię w chmurze na to urządzenie", + "st.sync.status.syncing": "Szyfrowana synchronizacja jest aktualizowana…", + "st.sync.status.offline": "Szyfrowana synchronizacja oczekuje na połączenie.", + "st.sync.status.subscription": "Do szyfrowanej synchronizacji wymagane jest członkostwo w WebBrain Cloud.", + "st.sync.status.error": "Szyfrowana synchronizacja wymaga uwagi.", + "st.sync.status.auth_required": "Zaloguj się przy użyciu adresu e-mail WebBrain Cloud, aby korzystać z szyfrowanej synchronizacji.", + "st.sync.status.password_required": "Zalogowano. Wybierz hasło synchronizacji, aby włączyć szyfrowaną synchronizację.", + "st.sync.status.unlocked": "Szyfrowana synchronizacja jest włączona na tym urządzeniu.", + "st.sync.status.locked": "Szyfrowana synchronizacja jest zablokowana. Wprowadź hasło synchronizacji, aby odblokować je na tym urządzeniu.", + "st.sync.result.updated": "Zaktualizowano szyfrowaną synchronizację.", + "st.sync.result.current": "Szyfrowana synchronizacja jest aktualna.", + "st.sync.pending.syncing": "Synchronizowanie zaszyfrowanej kopii w chmurze…", + "st.sync.pending.syncing_short": "Synchronizowanie…", + "st.sync.error.generic": "Szyfrowana synchronizacja nie powiodła się: {error}", + "st.sync.error.unknown": "Nieznany błąd", + "st.sync.validation.email_required": "Wpisz swój adres e-mail rozliczeniowy WebBrain Cloud.", + "st.sync.validation.password_length": "Użyj hasła synchronizacji składającego się z co najmniej 12 znaków.", + "st.sync.validation.confirm_required": "Potwierdź hasło synchronizacji.", + "st.sync.validation.password_mismatch": "Hasła synchronizacji nie są zgodne.", + "st.sync.prompt.new_password": "Nowe hasło synchronizacji", + "st.sync.prompt.password": "{label} (ponad 12 znaków):", + "st.sync.prompt.confirm_password": "Potwierdź hasło synchronizacji:", + "st.sync.prompt.current_password": "Aktualne hasło synchronizacji:", + "st.sync.prompt.replacement_password": "Zsynchronizuj hasło dla zastępczej kopii w chmurze", + "st.sync.auth.check_email": "Sprawdź swoją pocztę e-mail, zatwierdź link logowania do WebBrain Cloud, a następnie wróć tutaj.", + "st.sync.auth.success": "Uwierzytelniona synchronizacja w chmurze. Ustaw hasło i włącz synchronizację.", + "st.sync.confirm.disable": "Wyłączyć szyfrowaną synchronizację na tym urządzeniu? Dane lokalne pozostaną.", + "st.sync.confirm.reset": "Zastąpić zaszyfrowaną kopię w chmurze bieżącą konfiguracją WebBrain tego urządzenia?", + "st.sync.consent.legacy": "Włączyć szyfrowaną synchronizację? WebBrain prześle kompleksowo zaszyfrowaną kopię Twoich wspomnień, autouzupełniania profilu i ustawień dostawcy klucza API do chmury WebBrain. Historia czatów i logowania OAuth nie są synchronizowane.", + "st.sync.consent.denied": "Nie przyznano zezwolenia na szyfrowaną synchronizację.", }; diff --git a/src/firefox/src/ui/locales/pt.js b/src/firefox/src/ui/locales/pt.js index 9f1c7bed6..cdab7b922 100644 --- a/src/firefox/src/ui/locales/pt.js +++ b/src/firefox/src/ui/locales/pt.js @@ -972,4 +972,46 @@ export default { "sp.workflows.healing.saved": "Foram atualizados {count} localizadores em “{name}”.", "sp.workflows.healing.not_saved": "O localizador aprovado para “{name}” não foi salvo porque o fluxo mudou ou a verificação foi inconclusiva.", 'st.display.cost_allowance_scope': 'Applies only to usage-billed cloud and router providers. WebBrain Cloud and local providers are excluded.', + "st.sync.title": "Sincronização em nuvem criptografada", + "st.sync.lede_html": "Apenas para membros do WebBrain Cloud. Sincronize memórias, preenchimento automático de perfil e configurações de provedor de chave de API entre dispositivos. Tudo é criptografado com sua senha de sincronização antes do upload. O WebBrain não pode lê-lo ou recuperá-lo. O histórico de bate-papo e os logins do OAuth não são sincronizados.", + "st.sync.email.label": "E-mail WebBrain Cloud", + "st.sync.password.label": "Senha de sincronização para criptografia (mais de 12 caracteres)", + "st.sync.confirm.label": "Confirme a senha de sincronização", + "st.sync.action.auth": "Enviar link de login", + "st.sync.action.enable": "Ative a sincronização criptografada", + "st.sync.action.unlock": "Desbloquear sincronização criptografada", + "st.sync.action.now": "Sincronize agora", + "st.sync.action.lock": "Bloquear", + "st.sync.action.change_password": "Alterar senha de sincronização", + "st.sync.action.disable": "Desative a sincronização neste dispositivo", + "st.sync.action.reset": "Substitua a cópia na nuvem por este dispositivo", + "st.sync.status.syncing": "A sincronização criptografada está sendo atualizada…", + "st.sync.status.offline": "A sincronização criptografada está aguardando uma conexão.", + "st.sync.status.subscription": "A associação ao WebBrain Cloud é necessária para sincronização criptografada.", + "st.sync.status.error": "A sincronização criptografada precisa de atenção.", + "st.sync.status.auth_required": "Faça login com seu e-mail WebBrain Cloud para usar a sincronização criptografada.", + "st.sync.status.password_required": "Conectado. Escolha uma senha de sincronização para ativar a sincronização criptografada.", + "st.sync.status.unlocked": "A sincronização criptografada está ativada para este dispositivo.", + "st.sync.status.locked": "A sincronização criptografada está bloqueada. Digite sua senha de sincronização para desbloqueá-la neste dispositivo.", + "st.sync.result.updated": "Sincronização criptografada atualizada.", + "st.sync.result.current": "A sincronização criptografada está atualizada.", + "st.sync.pending.syncing": "Sincronizando cópia criptografada na nuvem…", + "st.sync.pending.syncing_short": "Sincronizando…", + "st.sync.error.generic": "Falha na sincronização criptografada: {error}", + "st.sync.error.unknown": "Erro desconhecido", + "st.sync.validation.email_required": "Digite seu e-mail de cobrança do WebBrain Cloud.", + "st.sync.validation.password_length": "Use uma senha de sincronização de pelo menos 12 caracteres.", + "st.sync.validation.confirm_required": "Confirme a senha de sincronização.", + "st.sync.validation.password_mismatch": "As senhas de sincronização não correspondem.", + "st.sync.prompt.new_password": "Nova senha de sincronização", + "st.sync.prompt.password": "{label} (mais de 12 caracteres):", + "st.sync.prompt.confirm_password": "Confirme a senha de sincronização:", + "st.sync.prompt.current_password": "Senha de sincronização atual:", + "st.sync.prompt.replacement_password": "Senha de sincronização para a cópia substituta na nuvem", + "st.sync.auth.check_email": "Verifique seu e-mail, aprove o link de login do WebBrain Cloud e retorne aqui.", + "st.sync.auth.success": "Cloud Sync autenticado. Defina uma senha e ative a sincronização.", + "st.sync.confirm.disable": "Desativar a sincronização criptografada neste dispositivo? Os dados locais permanecerão.", + "st.sync.confirm.reset": "Substituir a cópia criptografada na nuvem pela configuração atual do WebBrain deste dispositivo?", + "st.sync.consent.legacy": "Ativar a sincronização criptografada? O WebBrain transmitirá uma cópia criptografada de ponta a ponta de suas memórias, preenchimento automático de perfil e configurações do provedor de chave API para o WebBrain Cloud. O histórico de bate-papo e os logins do OAuth não são sincronizados.", + "st.sync.consent.denied": "A permissão de sincronização criptografada não foi concedida.", }; diff --git a/src/firefox/src/ui/locales/ru.js b/src/firefox/src/ui/locales/ru.js index 4dcd2bd4c..939af3b2b 100644 --- a/src/firefox/src/ui/locales/ru.js +++ b/src/firefox/src/ui/locales/ru.js @@ -952,4 +952,46 @@ export default { "sp.workflows.healing.saved": "Обновлено локаторов в «{name}»: {count}.", "sp.workflows.healing.not_saved": "Одобренный локатор для «{name}» не сохранён: сценарий изменился или результат проверки оказался неоднозначным.", 'st.display.cost_allowance_scope': 'Applies only to usage-billed cloud and router providers. WebBrain Cloud and local providers are excluded.', + "st.sync.title": "Зашифрованная облачная синхронизация", + "st.sync.lede_html": "Только для участников WebBrain Cloud. Синхронизация памяти, автозаполнение профиля и настройки поставщика ключей API на всех устройствах. Перед загрузкой все шифруется вашим паролем синхронизации. WebBrain не может прочитать или восстановить его. История чата и входы по OAuth не синхронизируются.", + "st.sync.email.label": "Электронная почта WebBrain Cloud", + "st.sync.password.label": "Пароль синхронизации для шифрования (12+ символов)", + "st.sync.confirm.label": "Подтвердите пароль синхронизации", + "st.sync.action.auth": "Отправить ссылку для входа", + "st.sync.action.enable": "Включить шифрованную синхронизацию", + "st.sync.action.unlock": "Разблокировать зашифрованную синхронизацию", + "st.sync.action.now": "Синхронизировать сейчас", + "st.sync.action.lock": "Блокировка", + "st.sync.action.change_password": "Изменить пароль синхронизации", + "st.sync.action.disable": "Отключить синхронизацию на этом устройстве", + "st.sync.action.reset": "Заменить облачную копию этим устройством", + "st.sync.status.syncing": "Зашифрованная синхронизация обновляется…", + "st.sync.status.offline": "Зашифрованная синхронизация ожидает соединения.", + "st.sync.status.subscription": "Для зашифрованной синхронизации требуется членство в WebBrain Cloud.", + "st.sync.status.error": "Зашифрованная синхронизация требует внимания.", + "st.sync.status.auth_required": "Войдите в систему, используя адрес электронной почты WebBrain Cloud, чтобы использовать зашифрованную синхронизацию.", + "st.sync.status.password_required": "Выполнен вход. Выберите пароль синхронизации, чтобы включить зашифрованную синхронизацию.", + "st.sync.status.unlocked": "Для этого устройства включена шифрованная синхронизация.", + "st.sync.status.locked": "Зашифрованная синхронизация заблокирована. Введите пароль синхронизации, чтобы разблокировать его на этом устройстве.", + "st.sync.result.updated": "Шифрованная синхронизация обновлена.", + "st.sync.result.current": "Зашифрованная синхронизация актуальна.", + "st.sync.pending.syncing": "Синхронизация зашифрованной облачной копии…", + "st.sync.pending.syncing_short": "Синхронизация…", + "st.sync.error.generic": "Ошибка зашифрованной синхронизации: {error}", + "st.sync.error.unknown": "Неизвестная ошибка", + "st.sync.validation.email_required": "Введите адрес электронной почты для выставления счета в WebBrain Cloud.", + "st.sync.validation.password_length": "Используйте пароль синхронизации длиной не менее 12 символов.", + "st.sync.validation.confirm_required": "Подтвердите пароль синхронизации.", + "st.sync.validation.password_mismatch": "Пароли синхронизации не совпадают.", + "st.sync.prompt.new_password": "Новый пароль синхронизации", + "st.sync.prompt.password": "{label} (12+ символов):", + "st.sync.prompt.confirm_password": "Подтвердите пароль синхронизации:", + "st.sync.prompt.current_password": "Текущий пароль синхронизации:", + "st.sync.prompt.replacement_password": "Пароль синхронизации для замены облачной копии", + "st.sync.auth.check_email": "Проверьте свою электронную почту, подтвердите ссылку для входа в WebBrain Cloud, а затем вернитесь сюда.", + "st.sync.auth.success": "Cloud Sync прошел проверку подлинности. Установите пароль и включите синхронизацию.", + "st.sync.confirm.disable": "Отключить шифрованную синхронизацию на этом устройстве? Локальные данные останутся.", + "st.sync.confirm.reset": "Заменить зашифрованную облачную копию текущей настройкой WebBrain этого устройства?", + "st.sync.consent.legacy": "Включить шифрованную синхронизацию? WebBrain передаст сквозную зашифрованную копию ваших воспоминаний, автозаполнение профиля и настройки поставщика ключей API в WebBrain Cloud. История чата и входы по OAuth не синхронизируются.", + "st.sync.consent.denied": "Разрешение на зашифрованную синхронизацию не предоставлено.", }; diff --git a/src/firefox/src/ui/locales/th.js b/src/firefox/src/ui/locales/th.js index 379d225f2..413ffe973 100644 --- a/src/firefox/src/ui/locales/th.js +++ b/src/firefox/src/ui/locales/th.js @@ -952,4 +952,46 @@ export default { "sp.workflows.healing.saved": "อัปเดตตัวระบุตำแหน่ง {count} รายการใน “{name}” แล้ว", "sp.workflows.healing.not_saved": "ไม่ได้บันทึกตัวระบุตำแหน่งที่อนุมัติสำหรับ “{name}” เพราะเวิร์กโฟลว์เปลี่ยนแปลงหรือผลการยืนยันไม่ชัดเจน", 'st.display.cost_allowance_scope': 'Applies only to usage-billed cloud and router providers. WebBrain Cloud and local providers are excluded.', + "st.sync.title": "การซิงค์คลาวด์ที่เข้ารหัส", + "st.sync.lede_html": "สมาชิก WebBrain Cloud เท่านั้น ซิงค์ความทรงจำ การกรอกโปรไฟล์อัตโนมัติ และการตั้งค่าผู้ให้บริการคีย์ API ในอุปกรณ์ต่างๆ ทุกอย่างถูกเข้ารหัสด้วยรหัสผ่านการซิงค์ของคุณก่อนอัปโหลด WebBrain ไม่สามารถอ่านหรือกู้คืนได้ ประวัติการแชทและการลงชื่อเข้าใช้ OAuth จะไม่ซิงค์กัน", + "st.sync.email.label": "อีเมล WebBrain Cloud", + "st.sync.password.label": "ซิงค์รหัสผ่านสำหรับการเข้ารหัส (12+ ตัวอักษร)", + "st.sync.confirm.label": "ยืนยันรหัสผ่านการซิงค์", + "st.sync.action.auth": "ส่งลิงก์ลงชื่อเข้าใช้", + "st.sync.action.enable": "เปิดการซิงค์ที่เข้ารหัส", + "st.sync.action.unlock": "ปลดล็อกการซิงค์ที่เข้ารหัส", + "st.sync.action.now": "ซิงค์เลย", + "st.sync.action.lock": "ล็อค", + "st.sync.action.change_password": "เปลี่ยนรหัสผ่านการซิงค์", + "st.sync.action.disable": "ปิดการซิงค์บนอุปกรณ์นี้", + "st.sync.action.reset": "แทนที่สำเนาบนคลาวด์ด้วยอุปกรณ์นี้", + "st.sync.status.syncing": "กำลังอัปเดตการซิงค์ที่เข้ารหัส...", + "st.sync.status.offline": "การซิงค์ที่เข้ารหัสกำลังรอการเชื่อมต่อ", + "st.sync.status.subscription": "จำเป็นต้องเป็นสมาชิก WebBrain Cloud สำหรับการซิงค์ที่เข้ารหัส", + "st.sync.status.error": "การซิงค์ที่เข้ารหัสต้องได้รับการดูแล", + "st.sync.status.auth_required": "ลงชื่อเข้าใช้ด้วยอีเมล WebBrain Cloud ของคุณเพื่อใช้การซิงค์ที่เข้ารหัส", + "st.sync.status.password_required": "ลงชื่อเข้าใช้แล้ว เลือกรหัสผ่านการซิงค์เพื่อเปิดการซิงค์ที่เข้ารหัส", + "st.sync.status.unlocked": "การซิงค์ที่เข้ารหัสเปิดอยู่สำหรับอุปกรณ์นี้", + "st.sync.status.locked": "การซิงค์ที่เข้ารหัสถูกล็อค ป้อนรหัสผ่านการซิงค์ของคุณเพื่อปลดล็อคบนอุปกรณ์นี้", + "st.sync.result.updated": "อัปเดตการซิงค์ที่เข้ารหัสแล้ว", + "st.sync.result.current": "การซิงค์ที่เข้ารหัสเป็นข้อมูลล่าสุด", + "st.sync.pending.syncing": "กำลังซิงค์สำเนาบนคลาวด์ที่เข้ารหัส...", + "st.sync.pending.syncing_short": "กำลังซิงค์...", + "st.sync.error.generic": "การซิงค์ที่เข้ารหัสล้มเหลว: {error}", + "st.sync.error.unknown": "ข้อผิดพลาดที่ไม่รู้จัก", + "st.sync.validation.email_required": "กรอกอีเมลเรียกเก็บเงิน WebBrain Cloud ของคุณ", + "st.sync.validation.password_length": "ใช้รหัสผ่านการซิงค์ที่มีความยาวอย่างน้อย 12 ตัวอักษร", + "st.sync.validation.confirm_required": "ยืนยันรหัสผ่านการซิงค์", + "st.sync.validation.password_mismatch": "รหัสผ่านการซิงค์ไม่ตรงกัน", + "st.sync.prompt.new_password": "รหัสผ่านการซิงค์ใหม่", + "st.sync.prompt.password": "{label} (12+ ตัวอักษร):", + "st.sync.prompt.confirm_password": "ยืนยันรหัสผ่านการซิงค์:", + "st.sync.prompt.current_password": "รหัสผ่านการซิงค์ปัจจุบัน:", + "st.sync.prompt.replacement_password": "ซิงค์รหัสผ่านสำหรับสำเนาคลาวด์ทดแทน", + "st.sync.auth.check_email": "ตรวจสอบอีเมลของคุณ อนุมัติลิงก์ลงชื่อเข้าใช้ WebBrain Cloud จากนั้นกลับมาที่นี่", + "st.sync.auth.success": "ตรวจสอบสิทธิ์ Cloud Sync แล้ว ตั้งรหัสผ่านและเปิดใช้งานการซิงค์", + "st.sync.confirm.disable": "ปิดการซิงค์ที่เข้ารหัสบนอุปกรณ์นี้ไหม ข้อมูลในเครื่องจะยังคงอยู่", + "st.sync.confirm.reset": "แทนที่สำเนาบนคลาวด์ที่เข้ารหัสด้วยการตั้งค่า WebBrain ปัจจุบันของอุปกรณ์นี้หรือไม่", + "st.sync.consent.legacy": "เปิดการซิงค์ที่เข้ารหัสไหม WebBrain จะส่งสำเนาความทรงจำของคุณ การกรอกโปรไฟล์อัตโนมัติ และการตั้งค่าผู้ให้บริการคีย์ API ที่เข้ารหัสจากต้นทางถึงปลายทางไปยัง WebBrain Cloud ประวัติการแชทและการลงชื่อเข้าใช้ OAuth จะไม่ซิงค์กัน", + "st.sync.consent.denied": "ไม่ได้รับสิทธิ์การซิงค์ที่เข้ารหัส", }; diff --git a/src/firefox/src/ui/locales/tl.js b/src/firefox/src/ui/locales/tl.js index 528148561..d236a4da9 100644 --- a/src/firefox/src/ui/locales/tl.js +++ b/src/firefox/src/ui/locales/tl.js @@ -952,4 +952,46 @@ export default { "sp.workflows.healing.saved": "Na-update ang {count} locator sa “{name}”.", "sp.workflows.healing.not_saved": "Hindi na-save ang inaprubahang locator para sa “{name}” dahil nagbago ang workflow o hindi tiyak ang beripikasyon.", 'st.display.cost_allowance_scope': 'Applies only to usage-billed cloud and router providers. WebBrain Cloud and local providers are excluded.', + "st.sync.title": "Naka-encrypt na Cloud Sync", + "st.sync.lede_html": "Mga miyembro lang ng WebBrain Cloud. I-sync ang mga memory, autofill ng profile, at mga setting ng provider ng API-key sa mga device. Ang lahat ay naka-encrypt gamit ang iyong password sa pag-sync bago mag-upload. Hindi ito mabasa o mabawi ng WebBrain. Hindi naka-sync ang history ng chat at OAuth sign-in.", + "st.sync.email.label": "Email sa WebBrain Cloud", + "st.sync.password.label": "I-sync ang password para sa pag-encrypt (12+ character)", + "st.sync.confirm.label": "Kumpirmahin ang password sa pag-sync", + "st.sync.action.auth": "Magpadala ng link sa pag-sign in", + "st.sync.action.enable": "I-on ang naka-encrypt na pag-sync", + "st.sync.action.unlock": "I-unlock ang naka-encrypt na pag-sync", + "st.sync.action.now": "I-sync ngayon", + "st.sync.action.lock": "I-lock", + "st.sync.action.change_password": "Baguhin ang password sa pag-sync", + "st.sync.action.disable": "I-off ang pag-sync sa device na ito", + "st.sync.action.reset": "Palitan ang cloud copy ng device na ito", + "st.sync.status.syncing": "Ina-update ang naka-encrypt na pag-sync…", + "st.sync.status.offline": "Ang naka-encrypt na pag-sync ay naghihintay para sa isang koneksyon.", + "st.sync.status.subscription": "Kinakailangan ang membership sa WebBrain Cloud para sa naka-encrypt na pag-sync.", + "st.sync.status.error": "Ang naka-encrypt na pag-sync ay nangangailangan ng pansin.", + "st.sync.status.auth_required": "Mag-sign in gamit ang iyong WebBrain Cloud email upang magamit ang naka-encrypt na pag-sync.", + "st.sync.status.password_required": "Naka-sign in. Pumili ng password sa pag-sync para i-on ang naka-encrypt na pag-sync.", + "st.sync.status.unlocked": "Naka-on ang naka-encrypt na pag-sync para sa device na ito.", + "st.sync.status.locked": "Naka-lock ang naka-encrypt na pag-sync. Ilagay ang iyong password sa pag-sync upang i-unlock ito sa device na ito.", + "st.sync.result.updated": "Na-update ang naka-encrypt na pag-sync.", + "st.sync.result.current": "Napapanahon ang naka-encrypt na pag-sync.", + "st.sync.pending.syncing": "Sini-sync ang naka-encrypt na cloud copy...", + "st.sync.pending.syncing_short": "Sini-sync…", + "st.sync.error.generic": "Nabigo ang naka-encrypt na pag-sync: {error}", + "st.sync.error.unknown": "Hindi kilalang error", + "st.sync.validation.email_required": "Ilagay ang iyong email sa pagsingil sa WebBrain Cloud.", + "st.sync.validation.password_length": "Gumamit ng password sa pag-sync ng hindi bababa sa 12 character.", + "st.sync.validation.confirm_required": "Kumpirmahin ang password sa pag-sync.", + "st.sync.validation.password_mismatch": "Hindi tugma ang mga password sa pag-sync.", + "st.sync.prompt.new_password": "Bagong password sa pag-sync", + "st.sync.prompt.password": "{label} (12+ character):", + "st.sync.prompt.confirm_password": "Kumpirmahin ang password sa pag-sync:", + "st.sync.prompt.current_password": "Kasalukuyang password sa pag-sync:", + "st.sync.prompt.replacement_password": "I-sync ang password para sa kapalit na kopya ng cloud", + "st.sync.auth.check_email": "Tingnan ang iyong email, aprubahan ang link sa pag-sign in sa WebBrain Cloud, pagkatapos ay bumalik dito.", + "st.sync.auth.success": "Na-authenticate ang Cloud Sync. Magtakda ng password at paganahin ang pag-sync.", + "st.sync.confirm.disable": "I-off ang naka-encrypt na pag-sync sa device na ito? Mananatili ang lokal na data.", + "st.sync.confirm.reset": "Palitan ang naka-encrypt na cloud copy ng kasalukuyang setup ng WebBrain ng device na ito?", + "st.sync.consent.legacy": "I-on ang naka-encrypt na pag-sync? Magpapadala ang WebBrain ng end-to-end na naka-encrypt na kopya ng iyong mga alaala, profile autofill, at API-key na mga setting ng provider sa WebBrain Cloud. Hindi naka-sync ang history ng chat at OAuth sign-in.", + "st.sync.consent.denied": "Hindi ibinigay ang naka-encrypt na pahintulot sa pag-sync.", }; diff --git a/src/firefox/src/ui/locales/tr.js b/src/firefox/src/ui/locales/tr.js index 50dbdc64f..42b06fc1d 100644 --- a/src/firefox/src/ui/locales/tr.js +++ b/src/firefox/src/ui/locales/tr.js @@ -951,4 +951,46 @@ export default { "sp.workflows.healing.saved": "“{name}” içinde {count} bulucu güncellendi.", "sp.workflows.healing.not_saved": "İş akışı değiştiği veya doğrulama kesin olmadığı için “{name}” için onaylanan bulucu kaydedilmedi.", 'st.display.cost_allowance_scope': 'Applies only to usage-billed cloud and router providers. WebBrain Cloud and local providers are excluded.', + "st.sync.title": "Şifreli Bulut Senkronizasyonu", + "st.sync.lede_html": "Yalnızca WebBrain Cloud üyeleri. Cihazlar arasında anıları, profil otomatik doldurmayı ve API anahtarı sağlayıcı ayarlarını senkronize edin. Yüklemeden önce her şey senkronizasyon şifrenizle şifrelenir. WebBrain bunu okuyamaz veya kurtaramaz. Sohbet geçmişi ve OAuth oturum açma işlemleri senkronize edilmez.", + "st.sync.email.label": "WebBrain Bulut e-postası", + "st.sync.password.label": "Şifreleme için şifreyi senkronize et (12+ karakter)", + "st.sync.confirm.label": "Senkronizasyon şifresini onaylayın", + "st.sync.action.auth": "Oturum açma bağlantısını gönder", + "st.sync.action.enable": "Şifreli senkronizasyonu aç", + "st.sync.action.unlock": "Şifrelenmiş senkronizasyonun kilidini açın", + "st.sync.action.now": "Şimdi senkronize et", + "st.sync.action.lock": "Kilit", + "st.sync.action.change_password": "Senkronizasyon şifresini değiştir", + "st.sync.action.disable": "Bu cihazda senkronizasyonu kapat", + "st.sync.action.reset": "Bulut kopyasını bu cihazla değiştirin", + "st.sync.status.syncing": "Şifreli senkronizasyon güncelleniyor…", + "st.sync.status.offline": "Şifreli senkronizasyon bir bağlantı bekliyor.", + "st.sync.status.subscription": "Şifreli senkronizasyon için WebBrain Cloud üyeliği gereklidir.", + "st.sync.status.error": "Şifreli senkronizasyona dikkat edilmesi gerekiyor.", + "st.sync.status.auth_required": "Şifreli senkronizasyonu kullanmak için WebBrain Cloud e-postanızla oturum açın.", + "st.sync.status.password_required": "Oturum açıldı. Şifreli senkronizasyonu açmak için bir senkronizasyon şifresi seçin.", + "st.sync.status.unlocked": "Bu cihaz için şifreli senkronizasyon açık.", + "st.sync.status.locked": "Şifreli senkronizasyon kilitlendi. Bu cihazda kilidini açmak için senkronizasyon şifrenizi girin.", + "st.sync.result.updated": "Şifreli senkronizasyon güncellendi.", + "st.sync.result.current": "Şifreli senkronizasyon güncel.", + "st.sync.pending.syncing": "Şifrelenmiş bulut kopyası senkronize ediliyor…", + "st.sync.pending.syncing_short": "Senkronize ediliyor…", + "st.sync.error.generic": "Şifreli senkronizasyon başarısız oldu: {error}", + "st.sync.error.unknown": "Bilinmeyen hata", + "st.sync.validation.email_required": "WebBrain Cloud faturalandırma e-postanızı girin.", + "st.sync.validation.password_length": "En az 12 karakterden oluşan bir senkronizasyon şifresi kullanın.", + "st.sync.validation.confirm_required": "Senkronizasyon şifresini onaylayın.", + "st.sync.validation.password_mismatch": "Senkronizasyon şifreleri eşleşmiyor.", + "st.sync.prompt.new_password": "Yeni senkronizasyon şifresi", + "st.sync.prompt.password": "{label} (12+ karakter):", + "st.sync.prompt.confirm_password": "Senkronizasyon şifresini onaylayın:", + "st.sync.prompt.current_password": "Geçerli senkronizasyon şifresi:", + "st.sync.prompt.replacement_password": "Yedek bulut kopyası için şifreyi senkronize edin", + "st.sync.auth.check_email": "E-postanızı kontrol edin, WebBrain Cloud oturum açma bağlantısını onaylayın ve ardından buraya geri dönün.", + "st.sync.auth.success": "Bulut Senkronizasyonu doğrulandı. Bir şifre belirleyin ve senkronizasyonu etkinleştirin.", + "st.sync.confirm.disable": "Bu cihazda şifreli senkronizasyon kapatılsın mı? Yerel veriler kalacak.", + "st.sync.confirm.reset": "Şifrelenmiş bulut kopyası bu cihazın mevcut WebBrain kurulumuyla değiştirilsin mi?", + "st.sync.consent.legacy": "Şifreli senkronizasyon açılsın mı? WebBrain, anılarınızın, profil otomatik doldurmanızın ve API anahtarı sağlayıcı ayarlarınızın uçtan uca şifrelenmiş bir kopyasını WebBrain Cloud'a iletecektir. Sohbet geçmişi ve OAuth oturum açma işlemleri senkronize edilmez.", + "st.sync.consent.denied": "Şifrelenmiş senkronizasyon izni verilmedi.", }; diff --git a/src/firefox/src/ui/locales/uk.js b/src/firefox/src/ui/locales/uk.js index d6f4f653c..a449cebf8 100644 --- a/src/firefox/src/ui/locales/uk.js +++ b/src/firefox/src/ui/locales/uk.js @@ -952,4 +952,46 @@ export default { "sp.workflows.healing.saved": "Оновлено локаторів у «{name}»: {count}.", "sp.workflows.healing.not_saved": "Схвалений локатор для «{name}» не збережено: робочий процес змінився або результат перевірки був неоднозначним.", 'st.display.cost_allowance_scope': 'Applies only to usage-billed cloud and router providers. WebBrain Cloud and local providers are excluded.', + "st.sync.title": "Зашифрована хмарна синхронізація", + "st.sync.lede_html": "Лише для членів WebBrain Cloud. Синхронізуйте спогади, автозаповнення профілю та налаштування постачальника ключа API на всіх пристроях. Перед завантаженням усе шифрується вашим паролем синхронізації. WebBrain не може прочитати або відновити його. Історія чату та вхід OAuth не синхронізуються.", + "st.sync.email.label": "Електронна пошта WebBrain Cloud", + "st.sync.password.label": "Пароль синхронізації для шифрування (12+ символів)", + "st.sync.confirm.label": "Підтвердьте пароль синхронізації", + "st.sync.action.auth": "Надіслати посилання для входу", + "st.sync.action.enable": "Увімкніть зашифровану синхронізацію", + "st.sync.action.unlock": "Розблокуйте зашифровану синхронізацію", + "st.sync.action.now": "Синхронізувати зараз", + "st.sync.action.lock": "Замок", + "st.sync.action.change_password": "Змінити пароль синхронізації", + "st.sync.action.disable": "Вимкніть синхронізацію на цьому пристрої", + "st.sync.action.reset": "Замініть хмарну копію цим пристроєм", + "st.sync.status.syncing": "Зашифрована синхронізація оновлюється…", + "st.sync.status.offline": "Зашифрована синхронізація очікує з’єднання.", + "st.sync.status.subscription": "Для зашифрованої синхронізації потрібне членство в WebBrain Cloud.", + "st.sync.status.error": "Зашифрована синхронізація потребує уваги.", + "st.sync.status.auth_required": "Увійдіть за допомогою електронної пошти WebBrain Cloud, щоб використовувати зашифровану синхронізацію.", + "st.sync.status.password_required": "Ви ввійшли. Виберіть пароль синхронізації, щоб увімкнути зашифровану синхронізацію.", + "st.sync.status.unlocked": "Для цього пристрою ввімкнено зашифровану синхронізацію.", + "st.sync.status.locked": "Зашифровану синхронізацію заблоковано. Введіть пароль синхронізації, щоб розблокувати його на цьому пристрої.", + "st.sync.result.updated": "Оновлено зашифровану синхронізацію.", + "st.sync.result.current": "Зашифрована синхронізація актуальна.", + "st.sync.pending.syncing": "Синхронізація зашифрованої хмарної копії…", + "st.sync.pending.syncing_short": "Синхронізація…", + "st.sync.error.generic": "Помилка зашифрованої синхронізації: {error}", + "st.sync.error.unknown": "Невідома помилка", + "st.sync.validation.email_required": "Введіть платіжну електронну адресу WebBrain Cloud.", + "st.sync.validation.password_length": "Використовуйте пароль для синхронізації щонайменше з 12 символів.", + "st.sync.validation.confirm_required": "Підтвердьте пароль синхронізації.", + "st.sync.validation.password_mismatch": "Паролі синхронізації не збігаються.", + "st.sync.prompt.new_password": "Новий пароль синхронізації", + "st.sync.prompt.password": "{label} (12+ символів):", + "st.sync.prompt.confirm_password": "Підтвердьте пароль синхронізації:", + "st.sync.prompt.current_password": "Поточний пароль синхронізації:", + "st.sync.prompt.replacement_password": "Синхронізація пароля для резервної хмарної копії", + "st.sync.auth.check_email": "Перевірте свою електронну пошту, підтвердьте посилання для входу в WebBrain Cloud і поверніться сюди.", + "st.sync.auth.success": "Cloud Sync автентифіковано. Встановіть пароль і ввімкніть синхронізацію.", + "st.sync.confirm.disable": "Вимкнути зашифровану синхронізацію на цьому пристрої? Локальні дані залишаться.", + "st.sync.confirm.reset": "Замінити зашифровану хмарну копію на поточні налаштування WebBrain цього пристрою?", + "st.sync.consent.legacy": "Увімкнути зашифровану синхронізацію? WebBrain передасть наскрізну зашифровану копію ваших спогадів, автозаповнення профілю та налаштувань постачальника ключа API до WebBrain Cloud. Історія чату та вхід OAuth не синхронізуються.", + "st.sync.consent.denied": "Дозвіл на зашифровану синхронізацію не надано.", }; diff --git a/src/firefox/src/ui/locales/vi.js b/src/firefox/src/ui/locales/vi.js index 024a457ba..b3e67fa67 100644 --- a/src/firefox/src/ui/locales/vi.js +++ b/src/firefox/src/ui/locales/vi.js @@ -972,4 +972,46 @@ export default { "sp.workflows.healing.saved": "Đã cập nhật {count} bộ định vị trong “{name}”.", "sp.workflows.healing.not_saved": "Bộ định vị đã phê duyệt cho “{name}” không được lưu vì quy trình đã thay đổi hoặc kết quả xác minh chưa rõ ràng.", 'st.display.cost_allowance_scope': 'Applies only to usage-billed cloud and router providers. WebBrain Cloud and local providers are excluded.', + "st.sync.title": "Đồng bộ hóa đám mây được mã hóa", + "st.sync.lede_html": "Chỉ dành cho thành viên WebBrain Cloud. Đồng bộ hóa bộ nhớ, tự động điền hồ sơ và cài đặt nhà cung cấp khóa API trên các thiết bị. Mọi thứ đều được mã hóa bằng mật khẩu đồng bộ hóa của bạn trước khi tải lên. WebBrain không thể đọc hoặc khôi phục nó. Lịch sử trò chuyện và thông tin đăng nhập OAuth không được đồng bộ hóa.", + "st.sync.email.label": "Email đám mây WebBrain", + "st.sync.password.label": "Đồng bộ hóa mật khẩu để mã hóa (hơn 12 ký tự)", + "st.sync.confirm.label": "Xác nhận mật khẩu đồng bộ hóa", + "st.sync.action.auth": "Gửi liên kết đăng nhập", + "st.sync.action.enable": "Bật đồng bộ hóa được mã hóa", + "st.sync.action.unlock": "Mở khóa đồng bộ hóa được mã hóa", + "st.sync.action.now": "Đồng bộ hóa ngay bây giờ", + "st.sync.action.lock": "Khóa", + "st.sync.action.change_password": "Thay đổi mật khẩu đồng bộ hóa", + "st.sync.action.disable": "Tắt đồng bộ hóa trên thiết bị này", + "st.sync.action.reset": "Thay thế bản sao đám mây bằng thiết bị này", + "st.sync.status.syncing": "Đang cập nhật tính năng đồng bộ hóa được mã hóa…", + "st.sync.status.offline": "Đồng bộ hóa được mã hóa đang chờ kết nối.", + "st.sync.status.subscription": "Cần có tư cách thành viên WebBrain Cloud để đồng bộ hóa được mã hóa.", + "st.sync.status.error": "Đồng bộ hóa được mã hóa cần được chú ý.", + "st.sync.status.auth_required": "Đăng nhập bằng email WebBrain Cloud của bạn để sử dụng đồng bộ hóa được mã hóa.", + "st.sync.status.password_required": "Đã đăng nhập. Chọn mật khẩu đồng bộ hóa để bật đồng bộ hóa được mã hóa.", + "st.sync.status.unlocked": "Đồng bộ hóa được mã hóa đang bật cho thiết bị này.", + "st.sync.status.locked": "Đồng bộ hóa được mã hóa đã bị khóa. Nhập mật khẩu đồng bộ hóa của bạn để mở khóa trên thiết bị này.", + "st.sync.result.updated": "Đã cập nhật đồng bộ hóa được mã hóa.", + "st.sync.result.current": "Đồng bộ hóa được mã hóa đã được cập nhật.", + "st.sync.pending.syncing": "Đang đồng bộ hóa bản sao đám mây được mã hóa…", + "st.sync.pending.syncing_short": "Đang đồng bộ hóa…", + "st.sync.error.generic": "Đồng bộ hóa được mã hóa không thành công: {error}", + "st.sync.error.unknown": "Lỗi không xác định", + "st.sync.validation.email_required": "Nhập email thanh toán WebBrain Cloud của bạn.", + "st.sync.validation.password_length": "Sử dụng mật khẩu đồng bộ có ít nhất 12 ký tự.", + "st.sync.validation.confirm_required": "Xác nhận mật khẩu đồng bộ hóa.", + "st.sync.validation.password_mismatch": "Mật khẩu đồng bộ hóa không khớp.", + "st.sync.prompt.new_password": "Mật khẩu đồng bộ hóa mới", + "st.sync.prompt.password": "{label} (12+ ký tự):", + "st.sync.prompt.confirm_password": "Xác nhận mật khẩu đồng bộ:", + "st.sync.prompt.current_password": "Mật khẩu đồng bộ hiện tại:", + "st.sync.prompt.replacement_password": "Đồng bộ hóa mật khẩu cho bản sao đám mây thay thế", + "st.sync.auth.check_email": "Kiểm tra email của bạn, phê duyệt liên kết đăng nhập WebBrain Cloud, sau đó quay lại đây.", + "st.sync.auth.success": "Cloud Sync đã được xác thực. Đặt mật khẩu và kích hoạt đồng bộ hóa.", + "st.sync.confirm.disable": "Tắt tính năng đồng bộ hóa được mã hóa trên thiết bị này? Dữ liệu cục bộ sẽ vẫn còn.", + "st.sync.confirm.reset": "Thay thế bản sao đám mây được mã hóa bằng thiết lập WebBrain hiện tại của thiết bị này?", + "st.sync.consent.legacy": "Bật đồng bộ hóa được mã hóa? WebBrain sẽ truyền bản sao được mã hóa nối đầu các ký ức của bạn, tự động điền hồ sơ và cài đặt nhà cung cấp khóa API tới WebBrain Cloud. Lịch sử trò chuyện và thông tin đăng nhập OAuth không được đồng bộ hóa.", + "st.sync.consent.denied": "Quyền đồng bộ hóa được mã hóa không được cấp.", }; diff --git a/src/firefox/src/ui/locales/zh.js b/src/firefox/src/ui/locales/zh.js index 23f9060f2..2eb278072 100644 --- a/src/firefox/src/ui/locales/zh.js +++ b/src/firefox/src/ui/locales/zh.js @@ -952,4 +952,46 @@ export default { "sp.workflows.healing.saved": "已更新“{name}”中的 {count} 个定位器。", "sp.workflows.healing.not_saved": "“{name}”中已批准的定位器未保存,因为工作流已发生变化或验证结果不确定。", 'st.display.cost_allowance_scope': 'Applies only to usage-billed cloud and router providers. WebBrain Cloud and local providers are excluded.', + "st.sync.title": "加密云同步", + "st.sync.lede_html": "仅限 WebBrain Cloud 会员。跨设备同步内存、个人资料自动填充和 API 密钥提供商设置。上传之前,所有内容都会使用您的同步密码进行加密。 WebBrain 无法读取或恢复它。聊天历史记录和 OAuth 登录不同步。", + "st.sync.email.label": "WebBrain 云电子邮件", + "st.sync.password.label": "同步加密密码(12+字符)", + "st.sync.confirm.label": "确认同步密码", + "st.sync.action.auth": "发送登录链接", + "st.sync.action.enable": "开启加密同步", + "st.sync.action.unlock": "解锁加密同步", + "st.sync.action.now": "立即同步", + "st.sync.action.lock": "锁", + "st.sync.action.change_password": "更改同步密码", + "st.sync.action.disable": "关闭此设备上的同步", + "st.sync.action.reset": "使用此设备替换云副本", + "st.sync.status.syncing": "加密同步正在更新...", + "st.sync.status.offline": "加密同步正在等待连接。", + "st.sync.status.subscription": "加密同步需要 WebBrain Cloud 会员资格。", + "st.sync.status.error": "加密同步需要注意。", + "st.sync.status.auth_required": "使用您的 WebBrain Cloud 电子邮件登录以使用加密同步。", + "st.sync.status.password_required": "已登录。选择同步密码以打开加密同步。", + "st.sync.status.unlocked": "此设备已启用加密同步。", + "st.sync.status.locked": "加密同步已锁定。输入您的同步密码以在此设备上解锁。", + "st.sync.result.updated": "已更新加密同步。", + "st.sync.result.current": "加密同步是最新的。", + "st.sync.pending.syncing": "正在同步加密云副本...", + "st.sync.pending.syncing_short": "正在同步...", + "st.sync.error.generic": "加密同步失败:{error}", + "st.sync.error.unknown": "未知错误", + "st.sync.validation.email_required": "输入您的 WebBrain Cloud 账单电子邮件。", + "st.sync.validation.password_length": "使用至少 12 个字符的同步密码。", + "st.sync.validation.confirm_required": "确认同步密码。", + "st.sync.validation.password_mismatch": "同步密码不匹配。", + "st.sync.prompt.new_password": "新的同步密码", + "st.sync.prompt.password": "{label}(12+字符):", + "st.sync.prompt.confirm_password": "确认同步密码:", + "st.sync.prompt.current_password": "当前同步密码:", + "st.sync.prompt.replacement_password": "替换云副本的同步密码", + "st.sync.auth.check_email": "检查您的电子邮件,批准 WebBrain Cloud 登录链接,然后返回此处。", + "st.sync.auth.success": "云同步已通过身份验证。设置密码并启用同步。", + "st.sync.confirm.disable": "关闭此设备上的加密同步吗?本地数据将保留。", + "st.sync.confirm.reset": "使用该设备当前的 WebBrain 设置替换加密的云副本?", + "st.sync.consent.legacy": "开启加密同步? WebBrain 会将您的记忆、个人资料自动填充和 API 密钥提供商设置的端到端加密副本传输到 WebBrain Cloud。聊天历史记录和 OAuth 登录不同步。", + "st.sync.consent.denied": "未授予加密同步权限。", }; diff --git a/src/firefox/src/ui/settings.html b/src/firefox/src/ui/settings.html index ec643a215..0af6c564d 100644 --- a/src/firefox/src/ui/settings.html +++ b/src/firefox/src/ui/settings.html @@ -1598,25 +1598,25 @@

-

Encrypted Cloud Sync

-
WebBrain Cloud members only. Sync memories, profile autofill, and API-key provider settings across devices. Everything is encrypted with your sync password before upload. WebBrain cannot read or recover it. Chat history and OAuth sign-ins are not synced.
+

+
-
-
-
+
+
+
- - - - + + + +
- Advanced +
- - - - + + + +
diff --git a/src/firefox/src/ui/settings.js b/src/firefox/src/ui/settings.js index e93d1e499..c35bb96df 100644 --- a/src/firefox/src/ui/settings.js +++ b/src/firefox/src/ui/settings.js @@ -296,6 +296,7 @@ if (languageSelect) { if (providersContainer) renderProviders(); renderSkills(); renderPermissions(); + refreshProfileSyncState(); }); } @@ -1370,14 +1371,14 @@ let profileSyncChallenge = null; function showProfileSyncResult(ok, text) { if (!profileSyncResult) return; profileSyncResult.className = `test-result show ${ok ? 'ok' : 'fail'}`; profileSyncResult.textContent = text; } function setProfileSyncVisible(el, visible) { if (el) el.hidden = !visible; } function describeProfileSyncState(state) { - if (state.status === 'syncing') return 'Encrypted sync is updating...'; - if (state.status === 'offline') return 'Encrypted sync is waiting for a connection.'; - if (state.status === 'subscription') return 'WebBrain Cloud membership is required for encrypted sync.'; - if (state.status === 'error') return state.error || 'Encrypted sync needs attention.'; - if (!state.authenticated) return 'Sign in with your WebBrain Cloud email to use encrypted sync.'; - if (!state.enabled || state.status === 'empty') return 'Signed in. Choose a sync password to turn on encrypted sync.'; - if (state.unlocked) return 'Encrypted sync is on for this device.'; - return 'Encrypted sync is locked. Enter your sync password to unlock it on this device.'; + if (state.status === 'syncing') return t('st.sync.status.syncing'); + if (state.status === 'offline') return t('st.sync.status.offline'); + if (state.status === 'subscription') return t('st.sync.status.subscription'); + if (state.status === 'error') return state.error || t('st.sync.status.error'); + if (!state.authenticated) return t('st.sync.status.auth_required'); + if (!state.enabled || state.status === 'empty') return t('st.sync.status.password_required'); + if (state.unlocked) return t('st.sync.status.unlocked'); + return t('st.sync.status.locked'); } function renderProfileSyncState(state) { const authenticated = !!state.authenticated; @@ -1398,7 +1399,7 @@ function renderProfileSyncState(state) { } async function refreshProfileSyncState() { const state = await sendToBackground('profile_sync_state').catch(e => ({ status: 'error', error: e.message })); renderProfileSyncState(state); return state; } async function reloadProfileSyncData() { const stored = await browser.storage.local.get(['profileEnabled', 'profileText', 'visionModel', 'transcriptionModel']); if (profileEnabledToggle) profileEnabledToggle.checked = !!stored.profileEnabled; if (profileTextArea) profileTextArea.value = stored.profileText || ''; const vision = stored.visionModel || {}; visionBaseUrlInput.value = vision.baseUrl || ''; visionApiKeyInput.value = vision.apiKey || ''; visionModelInput.value = vision.model || ''; const transcription = stored.transcriptionModel || {}; if (transcriptionBaseUrlInput) transcriptionBaseUrlInput.value = transcription.baseUrl || ''; if (transcriptionApiKeyInput) transcriptionApiKeyInput.value = transcription.apiKey || ''; if (transcriptionModelInput) transcriptionModelInput.value = transcription.model || ''; updateMultimodalDetectedProvider('vision'); updateMultimodalDetectedProvider('transcription'); await loadUserMemorySettings(); const res = await sendToBackground('get_providers'); providersData = res.providers; activeProviderId = res.active; renderProviders(); } -async function requestProfileSyncDataConsent() { const permissions = await browser.permissions.getAll(); if (!Object.hasOwn(permissions, 'data_collection')) return window.confirm('Turn on encrypted sync? WebBrain will transmit an end-to-end encrypted copy of your memories, profile autofill, and API-key provider settings to WebBrain Cloud. Chat history and OAuth sign-ins are not synced.'); return browser.permissions.request({ data_collection: ['personallyIdentifyingInfo', 'authenticationInfo', 'personalCommunications', 'websiteContent', 'technicalAndInteraction'] }); } +async function requestProfileSyncDataConsent() { const permissions = await browser.permissions.getAll(); if (!Object.hasOwn(permissions, 'data_collection')) return window.confirm(t('st.sync.consent.legacy')); return browser.permissions.request({ data_collection: ['personallyIdentifyingInfo', 'authenticationInfo', 'personalCommunications', 'websiteContent', 'technicalAndInteraction'] }); } function profileSyncButtonRestore(button, pendingLabel) { if (!button) return () => {}; const previousDisabled = button.disabled; @@ -1413,26 +1414,26 @@ async function profileSyncAction(action, data = {}, options = {}) { if (options.pending) showProfileSyncResult(true, options.pending); const result = await sendToBackground(action, data); if (['profile_sync_unlock', 'profile_sync_now', 'profile_sync_reset'].includes(action)) await reloadProfileSyncData(); - showProfileSyncResult(true, options.success || 'Encrypted sync updated.'); + showProfileSyncResult(true, options.success || t('st.sync.result.updated')); await refreshProfileSyncState(); return result; } catch (error) { - showProfileSyncResult(false, error?.message || 'Encrypted sync failed.'); + showProfileSyncResult(false, t('st.sync.error.generic', { error: error?.message || t('st.sync.error.unknown') })); throw error; } finally { restoreButton(); } } -function checkedSyncPassword(requireConfirmation = false) { const password = profileSyncPassword?.value || ''; const confirmation = profileSyncConfirm?.value || ''; if (password.length < 12) throw new Error('Use a sync password of at least 12 characters.'); if (requireConfirmation && !confirmation) throw new Error('Confirm the new sync password.'); if (confirmation && password !== confirmation) throw new Error('Sync passwords do not match.'); return password; } -function promptConfirmedSyncPassword(label = 'New sync password') { const password = window.prompt(`${label} (12+ characters):`); if (!password) return null; if (password.length < 12) throw new Error('Use a sync password of at least 12 characters.'); const confirmation = window.prompt('Confirm sync password:'); if (!confirmation) throw new Error('Confirm the sync password.'); if (password !== confirmation) throw new Error('Sync passwords do not match.'); return password; } -btnProfileSyncAuth?.addEventListener('click', async () => { const email = (profileSyncEmail?.value || '').trim(); if (!email) return showProfileSyncResult(false, 'Enter your WebBrain Cloud billing email.'); try { profileSyncChallenge = await profileSyncAction('profile_sync_auth_start', { email }); showProfileSyncResult(true, 'Check your email, approve the WebBrain Cloud sign-in link, then return here.'); const poll = setInterval(async () => { if (!profileSyncChallenge) return clearInterval(poll); try { const result = await sendToBackground('profile_sync_auth_status', { challengeId: profileSyncChallenge.challenge_id, verifier: profileSyncChallenge.verifier }); if (result.token) { clearInterval(poll); profileSyncChallenge = null; showProfileSyncResult(true, 'Cloud Sync authenticated. Set a password and enable sync.'); await refreshProfileSyncState(); } } catch (error) { clearInterval(poll); profileSyncChallenge = null; showProfileSyncResult(false, error.message); } }, 3000); setTimeout(() => clearInterval(poll), 30 * 60 * 1000); } catch { } }); -btnProfileSyncEnable?.addEventListener('click', async () => { try { const password = checkedSyncPassword(true); if (!await requestProfileSyncDataConsent()) throw new Error('Encrypted sync permission was not granted.'); await profileSyncAction('profile_sync_unlock', { password, create: true }); } catch (e) { showProfileSyncResult(false, e.message); } }); -btnProfileSyncUnlock?.addEventListener('click', async () => { try { const password = checkedSyncPassword(); if (!await requestProfileSyncDataConsent()) throw new Error('Encrypted sync permission was not granted.'); await profileSyncAction('profile_sync_unlock', { password, create: false }); } catch (e) { showProfileSyncResult(false, e.message); } }); -btnProfileSyncNow?.addEventListener('click', () => profileSyncAction('profile_sync_now', {}, { button: btnProfileSyncNow, pending: 'Syncing encrypted cloud copy...', pendingLabel: 'Syncing...', success: 'Encrypted sync is up to date.' }).catch(() => {})); -btnProfileSyncLock?.addEventListener('click', () => profileSyncAction('profile_sync_lock')); -btnProfileSyncChange?.addEventListener('click', () => { const oldPassword = window.prompt('Current sync password:'); if (!oldPassword) return; try { const newPassword = promptConfirmedSyncPassword('New sync password'); if (newPassword) profileSyncAction('profile_sync_change_password', { oldPassword, newPassword }); } catch (e) { showProfileSyncResult(false, e.message); } }); -btnProfileSyncDisable?.addEventListener('click', () => { if (window.confirm('Turn off encrypted sync on this device? Local data will remain.')) profileSyncAction('profile_sync_disable'); }); -btnProfileSyncReset?.addEventListener('click', () => { if (!window.confirm('Replace the encrypted cloud copy with this device’s current WebBrain setup?')) return; try { const password = promptConfirmedSyncPassword('Sync password for the replacement cloud copy'); if (password) profileSyncAction('profile_sync_reset', { password }); } catch (e) { showProfileSyncResult(false, e.message); } }); +function checkedSyncPassword(requireConfirmation = false) { const password = profileSyncPassword?.value || ''; const confirmation = profileSyncConfirm?.value || ''; if (password.length < 12) throw new Error(t('st.sync.validation.password_length')); if (requireConfirmation && !confirmation) throw new Error(t('st.sync.validation.confirm_required')); if (confirmation && password !== confirmation) throw new Error(t('st.sync.validation.password_mismatch')); return password; } +function promptConfirmedSyncPassword(label = t('st.sync.prompt.new_password')) { const password = window.prompt(t('st.sync.prompt.password', { label })); if (!password) return null; if (password.length < 12) throw new Error(t('st.sync.validation.password_length')); const confirmation = window.prompt(t('st.sync.prompt.confirm_password')); if (!confirmation) throw new Error(t('st.sync.validation.confirm_required')); if (password !== confirmation) throw new Error(t('st.sync.validation.password_mismatch')); return password; } +btnProfileSyncAuth?.addEventListener('click', async () => { const email = (profileSyncEmail?.value || '').trim(); if (!email) return showProfileSyncResult(false, t('st.sync.validation.email_required')); try { profileSyncChallenge = await profileSyncAction('profile_sync_auth_start', { email }); showProfileSyncResult(true, t('st.sync.auth.check_email')); const poll = setInterval(async () => { if (!profileSyncChallenge) return clearInterval(poll); try { const result = await sendToBackground('profile_sync_auth_status', { challengeId: profileSyncChallenge.challenge_id, verifier: profileSyncChallenge.verifier }); if (result.token) { clearInterval(poll); profileSyncChallenge = null; showProfileSyncResult(true, t('st.sync.auth.success')); await refreshProfileSyncState(); } } catch (error) { clearInterval(poll); profileSyncChallenge = null; showProfileSyncResult(false, t('st.sync.error.generic', { error: error?.message || t('st.sync.error.unknown') })); } }, 3000); setTimeout(() => clearInterval(poll), 30 * 60 * 1000); } catch { } }); +btnProfileSyncEnable?.addEventListener('click', async () => { let password; try { password = checkedSyncPassword(true); if (!await requestProfileSyncDataConsent()) throw new Error(t('st.sync.consent.denied')); } catch (e) { showProfileSyncResult(false, e.message); return; } await profileSyncAction('profile_sync_unlock', { password, create: true }).catch(() => {}); }); +btnProfileSyncUnlock?.addEventListener('click', async () => { let password; try { password = checkedSyncPassword(); if (!await requestProfileSyncDataConsent()) throw new Error(t('st.sync.consent.denied')); } catch (e) { showProfileSyncResult(false, e.message); return; } await profileSyncAction('profile_sync_unlock', { password, create: false }).catch(() => {}); }); +btnProfileSyncNow?.addEventListener('click', () => profileSyncAction('profile_sync_now', {}, { button: btnProfileSyncNow, pending: t('st.sync.pending.syncing'), pendingLabel: t('st.sync.pending.syncing_short'), success: t('st.sync.result.current') }).catch(() => {})); +btnProfileSyncLock?.addEventListener('click', () => profileSyncAction('profile_sync_lock').catch(() => {})); +btnProfileSyncChange?.addEventListener('click', async () => { const oldPassword = window.prompt(t('st.sync.prompt.current_password')); if (!oldPassword) return; let newPassword; try { newPassword = promptConfirmedSyncPassword(); } catch (e) { showProfileSyncResult(false, e.message); return; } if (newPassword) await profileSyncAction('profile_sync_change_password', { oldPassword, newPassword }).catch(() => {}); }); +btnProfileSyncDisable?.addEventListener('click', () => { if (window.confirm(t('st.sync.confirm.disable'))) profileSyncAction('profile_sync_disable').catch(() => {}); }); +btnProfileSyncReset?.addEventListener('click', async () => { if (!window.confirm(t('st.sync.confirm.reset'))) return; let password; try { password = promptConfirmedSyncPassword(t('st.sync.prompt.replacement_password')); } catch (e) { showProfileSyncResult(false, e.message); return; } if (password) await profileSyncAction('profile_sync_reset', { password }).catch(() => {}); }); refreshProfileSyncState(); // Persisted to browser.storage.local in plaintext; the agent picks the diff --git a/test/run.js b/test/run.js index aae66a093..5871c6429 100644 --- a/test/run.js +++ b/test/run.js @@ -20016,6 +20016,86 @@ test('all locales cover English keys and preserve interpolation placeholders', a } }); +test('Cloud Sync settings localize security-sensitive copy in every browser locale', async () => { + const requiredKeys = [ + 'st.sync.title', + 'st.sync.lede_html', + 'st.sync.email.label', + 'st.sync.password.label', + 'st.sync.confirm.label', + 'st.sync.action.auth', + 'st.sync.action.enable', + 'st.sync.action.unlock', + 'st.sync.action.now', + 'st.sync.action.lock', + 'st.sync.action.change_password', + 'st.sync.action.disable', + 'st.sync.action.reset', + 'st.sync.status.syncing', + 'st.sync.status.offline', + 'st.sync.status.subscription', + 'st.sync.status.error', + 'st.sync.status.auth_required', + 'st.sync.status.password_required', + 'st.sync.status.unlocked', + 'st.sync.status.locked', + 'st.sync.result.updated', + 'st.sync.result.current', + 'st.sync.pending.syncing', + 'st.sync.pending.syncing_short', + 'st.sync.error.generic', + 'st.sync.error.unknown', + 'st.sync.validation.email_required', + 'st.sync.validation.password_length', + 'st.sync.validation.confirm_required', + 'st.sync.validation.password_mismatch', + 'st.sync.prompt.new_password', + 'st.sync.prompt.password', + 'st.sync.prompt.confirm_password', + 'st.sync.prompt.current_password', + 'st.sync.prompt.replacement_password', + 'st.sync.auth.check_email', + 'st.sync.auth.success', + 'st.sync.confirm.disable', + 'st.sync.confirm.reset', + 'st.sync.consent.legacy', + 'st.sync.consent.denied', + ]; + + for (const browser of ['chrome', 'firefox']) { + const prefix = path.join(ROOT, `src/${browser}/src/ui`); + const html = fs.readFileSync(path.join(prefix, 'settings.html'), 'utf8'); + const script = fs.readFileSync(path.join(prefix, 'settings.js'), 'utf8'); + const cardStart = html.indexOf('
'); + const cardEnd = html.indexOf('
', cardStart); + const card = html.slice(cardStart, cardEnd); + + assert.ok(cardStart >= 0 && cardEnd > cardStart, `${browser}: Cloud Sync card missing`); + for (const key of requiredKeys.slice(0, 13)) { + assert.ok(card.includes(`data-i18n="${key}"`) || card.includes(`data-i18n-html="${key}"`), `${browser}: Cloud Sync markup bypasses ${key}`); + } + assert.doesNotMatch(card, />\s*(?:Encrypted Cloud Sync|WebBrain Cloud email|Sync password|Send sign-in link|Replace cloud copy)[^<]* name.endsWith('.js')).sort(); + const english = (await import(pathToFileURL(path.join(localeDir, 'en.js')).href)).default; + assert.deepEqual(Object.keys(english).filter((key) => key.startsWith('st.sync.')), requiredKeys, `${browser}/en: unexpected Cloud Sync locale surface`); + for (const key of requiredKeys) assert.equal(typeof english[key], 'string', `${browser}/en: missing ${key}`); + for (const filename of filenames) { + const locale = (await import(pathToFileURL(path.join(localeDir, filename)).href)).default; + for (const key of requiredKeys) assert.equal(typeof locale[key], 'string', `${browser}/${filename}: missing ${key}`); + if (filename !== 'en.js') { + const translated = requiredKeys.filter((key) => locale[key] !== english[key]).length; + assert.ok(translated >= requiredKeys.length * 0.8, `${browser}/${filename}: Cloud Sync copy should be translated, not copied from English`); + } + } + } +}); + test('locale helpers apply RTL direction for Arabic, Hebrew, and Persian', () => { for (const [label, rel] of [ ['chrome', 'src/chrome/src/ui/i18n.js'],