mirror of
https://github.com/tinyhumansai/openhuman.git
synced 2026-07-28 13:32:23 +00:00
i18n(openhuman-link): localize account-status and notification strings (#3702)
This commit is contained in:
@@ -0,0 +1,28 @@
|
||||
import { describe, expect, it } from 'vitest';
|
||||
|
||||
import type { AccountStatus } from '../types/accounts';
|
||||
import { statusDisplay } from './OpenhumanLinkModal';
|
||||
|
||||
describe('statusDisplay', () => {
|
||||
it('maps every account lifecycle status to a translation key and dot color', () => {
|
||||
const cases: Array<[AccountStatus, string, string]> = [
|
||||
['open', 'app.openhumanLink.status.connected', 'bg-emerald-500'],
|
||||
['loading', 'app.openhumanLink.status.loading', 'bg-amber-400'],
|
||||
['pending', 'app.openhumanLink.status.needsSignIn', 'bg-amber-400'],
|
||||
['timeout', 'app.openhumanLink.status.timedOut', 'bg-red-400'],
|
||||
['error', 'app.openhumanLink.status.error', 'bg-red-400'],
|
||||
['closed', 'app.openhumanLink.status.closed', 'bg-stone-300'],
|
||||
];
|
||||
|
||||
for (const [status, labelKey, dotClass] of cases) {
|
||||
expect(statusDisplay(status)).toEqual({ labelKey, dotClass });
|
||||
}
|
||||
});
|
||||
|
||||
it('returns a key under the app.openhumanLink.status namespace for every status', () => {
|
||||
const statuses: AccountStatus[] = ['open', 'loading', 'pending', 'timeout', 'error', 'closed'];
|
||||
for (const status of statuses) {
|
||||
expect(statusDisplay(status).labelKey).toMatch(/^app\.openhumanLink\.status\./);
|
||||
}
|
||||
});
|
||||
});
|
||||
@@ -227,9 +227,7 @@ const NotificationsBody = ({ close }: { close: () => void }) => {
|
||||
try {
|
||||
if (!isTauri()) {
|
||||
setStatus('error');
|
||||
setError(
|
||||
'Native notifications are only available in the desktop app (run `pnpm dev:app`).'
|
||||
);
|
||||
setError(t('app.openhumanLink.notifications.desktopOnly'));
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -238,22 +236,17 @@ const NotificationsBody = ({ close }: { close: () => void }) => {
|
||||
const nextState = await getNotificationPermissionState({ requestIfNeeded: false });
|
||||
setPermissionState(nextState);
|
||||
setStatus('error');
|
||||
setError(
|
||||
'Notification permission is off. Enable OpenHuman in System Settings → Notifications, then retry.'
|
||||
);
|
||||
setError(t('app.openhumanLink.notifications.permissionOff'));
|
||||
return;
|
||||
}
|
||||
const sendResult = await showNativeNotification({
|
||||
title: 'OpenHuman is good to go',
|
||||
body: 'You will get pings here when something needs your attention.',
|
||||
title: t('app.openhumanLink.notifications.welcomeTitle'),
|
||||
body: t('app.openhumanLink.notifications.welcomeBody'),
|
||||
tag: 'welcome-notification-test',
|
||||
});
|
||||
if (!sendResult.delivered) {
|
||||
setStatus('error');
|
||||
setError(
|
||||
sendResult.error ??
|
||||
'OpenHuman could not trigger a system notification. Check OS notification settings and retry.'
|
||||
);
|
||||
setError(sendResult.error ?? t('app.openhumanLink.notifications.triggerFailed'));
|
||||
return;
|
||||
}
|
||||
setPermissionState('granted');
|
||||
@@ -438,21 +431,25 @@ function makeAccountId(): string {
|
||||
return `acct-${Date.now().toString(36)}`;
|
||||
}
|
||||
|
||||
/** Status label + color for a given account lifecycle status. */
|
||||
function statusDisplay(status: AccountStatus): { label: string; dotClass: string } {
|
||||
/**
|
||||
* Translation key + color for a given account lifecycle status. Returns a
|
||||
* `labelKey` (not a literal) so the caller can localize it via `useT()` —
|
||||
* this is a module-level helper with no hook scope of its own.
|
||||
*/
|
||||
export function statusDisplay(status: AccountStatus): { labelKey: string; dotClass: string } {
|
||||
switch (status) {
|
||||
case 'open':
|
||||
return { label: 'Connected', dotClass: 'bg-emerald-500' };
|
||||
return { labelKey: 'app.openhumanLink.status.connected', dotClass: 'bg-emerald-500' };
|
||||
case 'loading':
|
||||
return { label: 'Loading…', dotClass: 'bg-amber-400' };
|
||||
return { labelKey: 'app.openhumanLink.status.loading', dotClass: 'bg-amber-400' };
|
||||
case 'pending':
|
||||
return { label: 'Needs sign-in', dotClass: 'bg-amber-400' };
|
||||
return { labelKey: 'app.openhumanLink.status.needsSignIn', dotClass: 'bg-amber-400' };
|
||||
case 'timeout':
|
||||
return { label: 'Timed out', dotClass: 'bg-red-400' };
|
||||
return { labelKey: 'app.openhumanLink.status.timedOut', dotClass: 'bg-red-400' };
|
||||
case 'error':
|
||||
return { label: 'Error', dotClass: 'bg-red-400' };
|
||||
return { labelKey: 'app.openhumanLink.status.error', dotClass: 'bg-red-400' };
|
||||
case 'closed':
|
||||
return { label: 'Closed', dotClass: 'bg-stone-300' };
|
||||
return { labelKey: 'app.openhumanLink.status.closed', dotClass: 'bg-stone-300' };
|
||||
}
|
||||
}
|
||||
|
||||
@@ -549,7 +546,7 @@ const AccountsSetupBody = ({ close }: { close: () => void }) => {
|
||||
className={`inline-block h-1.5 w-1.5 rounded-full ${statusDisplay(status).dotClass}`}
|
||||
/>
|
||||
<span className="text-xs text-stone-500 dark:text-neutral-400">
|
||||
{statusDisplay(status).label}
|
||||
{t(statusDisplay(status).labelKey)}
|
||||
</span>
|
||||
</div>
|
||||
) : (
|
||||
|
||||
@@ -2541,6 +2541,20 @@ const messages: TranslationMap = {
|
||||
'نعتذر — حدث خطأ من جانبنا. نحاول تسجيل هذه الأخطاء تلقائيًا، لكن مشاركة التفاصيل على Discord تساعدنا على إصلاحها بشكل أسرع.',
|
||||
'app.openhumanLink.discordReport.openDiscord': 'فتح Discord',
|
||||
'app.openhumanLink.done': 'تم',
|
||||
'app.openhumanLink.notifications.desktopOnly':
|
||||
'الإشعارات الأصلية متاحة فقط في تطبيق سطح المكتب (شغّل `pnpm dev:app`).',
|
||||
'app.openhumanLink.notifications.permissionOff':
|
||||
'إذن الإشعارات معطّل. فعّل OpenHuman في إعدادات النظام → الإشعارات، ثم أعد المحاولة.',
|
||||
'app.openhumanLink.notifications.triggerFailed':
|
||||
'تعذّر على OpenHuman إطلاق إشعار النظام. تحقّق من إعدادات إشعارات نظام التشغيل وأعد المحاولة.',
|
||||
'app.openhumanLink.notifications.welcomeBody': 'ستصلك تنبيهات هنا عندما يتطلب أمر ما انتباهك.',
|
||||
'app.openhumanLink.notifications.welcomeTitle': 'OpenHuman جاهز للعمل',
|
||||
'app.openhumanLink.status.closed': 'مغلق',
|
||||
'app.openhumanLink.status.connected': 'متصل',
|
||||
'app.openhumanLink.status.error': 'خطأ',
|
||||
'app.openhumanLink.status.loading': 'جارٍ التحميل…',
|
||||
'app.openhumanLink.status.needsSignIn': 'يتطلب تسجيل الدخول',
|
||||
'app.openhumanLink.status.timedOut': 'انتهت المهلة',
|
||||
'app.openhumanLink.loadingChannelSetup': 'جارٍ تحميل إعداد القناة',
|
||||
'app.openhumanLink.maybeLater': 'ربما لاحقًا',
|
||||
'app.openhumanLink.notifications.asking': 'جارٍ الاستفسار من نظام التشغيل…',
|
||||
|
||||
@@ -2594,6 +2594,21 @@ const messages: TranslationMap = {
|
||||
'দুঃখিত — আমাদের দিক থেকে কিছু ভুল হয়েছে। আমরা এগুলো স্বয়ংক্রিয়ভাবে লগ করার চেষ্টা করি, তবে Discord-এ বিবরণ শেয়ার করলে আমরা দ্রুত সমাধান করতে পারি।',
|
||||
'app.openhumanLink.discordReport.openDiscord': 'Discord খুলুন',
|
||||
'app.openhumanLink.done': 'সম্পন্ন',
|
||||
'app.openhumanLink.notifications.desktopOnly':
|
||||
'নেটিভ বিজ্ঞপ্তি শুধুমাত্র ডেস্কটপ অ্যাপে উপলব্ধ (`pnpm dev:app` চালান)।',
|
||||
'app.openhumanLink.notifications.permissionOff':
|
||||
'বিজ্ঞপ্তির অনুমতি বন্ধ আছে। সিস্টেম সেটিংস → বিজ্ঞপ্তি-তে OpenHuman সক্রিয় করুন, তারপর পুনরায় চেষ্টা করুন।',
|
||||
'app.openhumanLink.notifications.triggerFailed':
|
||||
'OpenHuman একটি সিস্টেম বিজ্ঞপ্তি চালু করতে পারেনি। OS-এর বিজ্ঞপ্তি সেটিংস যাচাই করুন এবং পুনরায় চেষ্টা করুন।',
|
||||
'app.openhumanLink.notifications.welcomeBody':
|
||||
'যখন কোনো কিছুতে আপনার মনোযোগ প্রয়োজন হবে, তখন আপনি এখানে পিং পাবেন।',
|
||||
'app.openhumanLink.notifications.welcomeTitle': 'OpenHuman ব্যবহারের জন্য প্রস্তুত',
|
||||
'app.openhumanLink.status.closed': 'বন্ধ',
|
||||
'app.openhumanLink.status.connected': 'সংযুক্ত',
|
||||
'app.openhumanLink.status.error': 'ত্রুটি',
|
||||
'app.openhumanLink.status.loading': 'লোড হচ্ছে…',
|
||||
'app.openhumanLink.status.needsSignIn': 'সাইন-ইন প্রয়োজন',
|
||||
'app.openhumanLink.status.timedOut': 'সময় শেষ',
|
||||
'app.openhumanLink.loadingChannelSetup': 'চ্যানেল সেটআপ লোড হচ্ছে',
|
||||
'app.openhumanLink.maybeLater': 'হয়তো পরে',
|
||||
'app.openhumanLink.notifications.asking': 'OS-এ জিজ্ঞেস করছে…',
|
||||
|
||||
@@ -2654,6 +2654,21 @@ const messages: TranslationMap = {
|
||||
'Entschuldigung — bei uns ist etwas schiefgelaufen. Wir versuchen, solche Fehler automatisch zu protokollieren, aber wenn du die Details auf Discord teilst, können wir sie schneller beheben.',
|
||||
'app.openhumanLink.discordReport.openDiscord': 'Discord öffnen',
|
||||
'app.openhumanLink.done': 'Fertig',
|
||||
'app.openhumanLink.notifications.desktopOnly':
|
||||
'Native Benachrichtigungen sind nur in der Desktop-App verfügbar (führe `pnpm dev:app` aus).',
|
||||
'app.openhumanLink.notifications.permissionOff':
|
||||
'Die Benachrichtigungsberechtigung ist deaktiviert. Aktiviere OpenHuman in den Systemeinstellungen → Benachrichtigungen und versuche es erneut.',
|
||||
'app.openhumanLink.notifications.triggerFailed':
|
||||
'OpenHuman konnte keine Systembenachrichtigung auslösen. Überprüfe die Benachrichtigungseinstellungen des Betriebssystems und versuche es erneut.',
|
||||
'app.openhumanLink.notifications.welcomeBody':
|
||||
'Du erhältst hier Hinweise, wenn etwas deine Aufmerksamkeit erfordert.',
|
||||
'app.openhumanLink.notifications.welcomeTitle': 'OpenHuman ist startklar',
|
||||
'app.openhumanLink.status.closed': 'Geschlossen',
|
||||
'app.openhumanLink.status.connected': 'Verbunden',
|
||||
'app.openhumanLink.status.error': 'Fehler',
|
||||
'app.openhumanLink.status.loading': 'Wird geladen…',
|
||||
'app.openhumanLink.status.needsSignIn': 'Anmeldung erforderlich',
|
||||
'app.openhumanLink.status.timedOut': 'Zeitüberschreitung',
|
||||
'app.openhumanLink.loadingChannelSetup': 'Kanal-Setup wird geladen',
|
||||
'app.openhumanLink.maybeLater': 'Vielleicht später',
|
||||
'app.openhumanLink.notifications.asking': 'Frag dein Betriebssystem ...',
|
||||
|
||||
@@ -3112,6 +3112,21 @@ const en: TranslationMap = {
|
||||
'Sorry — something broke on our end. We try to log these automatically, but sharing the details on Discord helps us fix it faster.',
|
||||
'app.openhumanLink.discordReport.openDiscord': 'Open Discord',
|
||||
'app.openhumanLink.done': 'Done',
|
||||
'app.openhumanLink.notifications.desktopOnly':
|
||||
'Native notifications are only available in the desktop app (run `pnpm dev:app`).',
|
||||
'app.openhumanLink.notifications.permissionOff':
|
||||
'Notification permission is off. Enable OpenHuman in System Settings → Notifications, then retry.',
|
||||
'app.openhumanLink.notifications.triggerFailed':
|
||||
'OpenHuman could not trigger a system notification. Check OS notification settings and retry.',
|
||||
'app.openhumanLink.notifications.welcomeBody':
|
||||
'You will get pings here when something needs your attention.',
|
||||
'app.openhumanLink.notifications.welcomeTitle': 'OpenHuman is good to go',
|
||||
'app.openhumanLink.status.closed': 'Closed',
|
||||
'app.openhumanLink.status.connected': 'Connected',
|
||||
'app.openhumanLink.status.error': 'Error',
|
||||
'app.openhumanLink.status.loading': 'Loading…',
|
||||
'app.openhumanLink.status.needsSignIn': 'Needs sign-in',
|
||||
'app.openhumanLink.status.timedOut': 'Timed out',
|
||||
'app.openhumanLink.loadingChannelSetup': 'Loading channel setup',
|
||||
'app.openhumanLink.maybeLater': 'Maybe later',
|
||||
'app.openhumanLink.notifications.asking': 'Asking your OS…',
|
||||
|
||||
@@ -2641,6 +2641,21 @@ const messages: TranslationMap = {
|
||||
'Lo sentimos — algo falló de nuestra parte. Intentamos registrar estos errores automáticamente, pero compartir los detalles en Discord nos ayuda a solucionarlo más rápido.',
|
||||
'app.openhumanLink.discordReport.openDiscord': 'Abrir Discord',
|
||||
'app.openhumanLink.done': 'Listo',
|
||||
'app.openhumanLink.notifications.desktopOnly':
|
||||
'Las notificaciones nativas solo están disponibles en la aplicación de escritorio (ejecuta `pnpm dev:app`).',
|
||||
'app.openhumanLink.notifications.permissionOff':
|
||||
'El permiso de notificaciones está desactivado. Habilita OpenHuman en Configuración del sistema → Notificaciones y vuelve a intentarlo.',
|
||||
'app.openhumanLink.notifications.triggerFailed':
|
||||
'OpenHuman no pudo activar una notificación del sistema. Revisa la configuración de notificaciones del sistema operativo y vuelve a intentarlo.',
|
||||
'app.openhumanLink.notifications.welcomeBody':
|
||||
'Recibirás avisos aquí cuando algo necesite tu atención.',
|
||||
'app.openhumanLink.notifications.welcomeTitle': 'OpenHuman está listo',
|
||||
'app.openhumanLink.status.closed': 'Cerrado',
|
||||
'app.openhumanLink.status.connected': 'Conectado',
|
||||
'app.openhumanLink.status.error': 'Error',
|
||||
'app.openhumanLink.status.loading': 'Cargando…',
|
||||
'app.openhumanLink.status.needsSignIn': 'Requiere iniciar sesión',
|
||||
'app.openhumanLink.status.timedOut': 'Tiempo agotado',
|
||||
'app.openhumanLink.loadingChannelSetup': 'Cargando configuración de canal',
|
||||
'app.openhumanLink.maybeLater': 'Quizás después',
|
||||
'app.openhumanLink.notifications.asking': 'Consultando tu sistema operativo…',
|
||||
|
||||
@@ -2653,6 +2653,21 @@ const messages: TranslationMap = {
|
||||
"Désolé — quelque chose s'est mal passé de notre côté. Nous essayons de journaliser ces erreurs automatiquement, mais partager les détails sur Discord nous aide à les corriger plus vite.",
|
||||
'app.openhumanLink.discordReport.openDiscord': 'Ouvrir Discord',
|
||||
'app.openhumanLink.done': 'Terminé',
|
||||
'app.openhumanLink.notifications.desktopOnly':
|
||||
"Les notifications natives ne sont disponibles que dans l'application de bureau (exécutez `pnpm dev:app`).",
|
||||
'app.openhumanLink.notifications.permissionOff':
|
||||
"L'autorisation des notifications est désactivée. Activez OpenHuman dans Réglages système → Notifications, puis réessayez.",
|
||||
'app.openhumanLink.notifications.triggerFailed':
|
||||
"OpenHuman n'a pas pu déclencher de notification système. Vérifiez les paramètres de notification du système d'exploitation et réessayez.",
|
||||
'app.openhumanLink.notifications.welcomeBody':
|
||||
"Vous recevrez des alertes ici lorsqu'une chose nécessitera votre attention.",
|
||||
'app.openhumanLink.notifications.welcomeTitle': 'OpenHuman est prêt',
|
||||
'app.openhumanLink.status.closed': 'Fermé',
|
||||
'app.openhumanLink.status.connected': 'Connecté',
|
||||
'app.openhumanLink.status.error': 'Erreur',
|
||||
'app.openhumanLink.status.loading': 'Chargement…',
|
||||
'app.openhumanLink.status.needsSignIn': 'Connexion requise',
|
||||
'app.openhumanLink.status.timedOut': 'Délai dépassé',
|
||||
'app.openhumanLink.loadingChannelSetup': 'Chargement de la configuration du canal',
|
||||
'app.openhumanLink.maybeLater': 'Peut-être plus tard',
|
||||
'app.openhumanLink.notifications.asking': 'Demande à ton OS…',
|
||||
|
||||
@@ -2592,6 +2592,21 @@ const messages: TranslationMap = {
|
||||
'माफ करें — हमारी तरफ से कुछ गड़बड़ हुई। हम इन्हें स्वचालित रूप से लॉग करने की कोशिश करते हैं, लेकिन Discord पर विवरण साझा करने से हमें इसे जल्दी ठीक करने में मदद मिलती है।',
|
||||
'app.openhumanLink.discordReport.openDiscord': 'Discord खोलें',
|
||||
'app.openhumanLink.done': 'हो गया',
|
||||
'app.openhumanLink.notifications.desktopOnly':
|
||||
'मूल सूचनाएँ केवल डेस्कटॉप ऐप में उपलब्ध हैं (`pnpm dev:app` चलाएँ)।',
|
||||
'app.openhumanLink.notifications.permissionOff':
|
||||
'सूचना अनुमति बंद है। सिस्टम सेटिंग्स → सूचनाएँ में OpenHuman को सक्षम करें, फिर पुनः प्रयास करें।',
|
||||
'app.openhumanLink.notifications.triggerFailed':
|
||||
'OpenHuman सिस्टम सूचना ट्रिगर नहीं कर सका। OS की सूचना सेटिंग्स जाँचें और पुनः प्रयास करें।',
|
||||
'app.openhumanLink.notifications.welcomeBody':
|
||||
'जब किसी चीज़ पर आपका ध्यान चाहिए होगा, तो आपको यहाँ अलर्ट मिलेंगे।',
|
||||
'app.openhumanLink.notifications.welcomeTitle': 'OpenHuman उपयोग के लिए तैयार है',
|
||||
'app.openhumanLink.status.closed': 'बंद',
|
||||
'app.openhumanLink.status.connected': 'कनेक्टेड',
|
||||
'app.openhumanLink.status.error': 'त्रुटि',
|
||||
'app.openhumanLink.status.loading': 'लोड हो रहा है…',
|
||||
'app.openhumanLink.status.needsSignIn': 'साइन-इन आवश्यक',
|
||||
'app.openhumanLink.status.timedOut': 'समय समाप्त',
|
||||
'app.openhumanLink.loadingChannelSetup': 'चैनल सेटअप लोड हो रहा है',
|
||||
'app.openhumanLink.maybeLater': 'शायद बाद में',
|
||||
'app.openhumanLink.notifications.asking': 'OS से पूछ रहे हैं…',
|
||||
|
||||
@@ -2597,6 +2597,21 @@ const messages: TranslationMap = {
|
||||
'Mohon maaf — terjadi kesalahan di pihak kami. Kami berusaha mencatat error ini secara otomatis, tetapi membagikan detailnya di Discord membantu kami memperbaikinya lebih cepat.',
|
||||
'app.openhumanLink.discordReport.openDiscord': 'Buka Discord',
|
||||
'app.openhumanLink.done': 'Selesai',
|
||||
'app.openhumanLink.notifications.desktopOnly':
|
||||
'Notifikasi native hanya tersedia di aplikasi desktop (jalankan `pnpm dev:app`).',
|
||||
'app.openhumanLink.notifications.permissionOff':
|
||||
'Izin notifikasi nonaktif. Aktifkan OpenHuman di Pengaturan Sistem → Notifikasi, lalu coba lagi.',
|
||||
'app.openhumanLink.notifications.triggerFailed':
|
||||
'OpenHuman tidak dapat memicu notifikasi sistem. Periksa pengaturan notifikasi OS dan coba lagi.',
|
||||
'app.openhumanLink.notifications.welcomeBody':
|
||||
'Anda akan menerima pemberitahuan di sini saat ada hal yang memerlukan perhatian Anda.',
|
||||
'app.openhumanLink.notifications.welcomeTitle': 'OpenHuman siap digunakan',
|
||||
'app.openhumanLink.status.closed': 'Tertutup',
|
||||
'app.openhumanLink.status.connected': 'Terhubung',
|
||||
'app.openhumanLink.status.error': 'Kesalahan',
|
||||
'app.openhumanLink.status.loading': 'Memuat…',
|
||||
'app.openhumanLink.status.needsSignIn': 'Perlu masuk',
|
||||
'app.openhumanLink.status.timedOut': 'Waktu habis',
|
||||
'app.openhumanLink.loadingChannelSetup': 'Memuat pengaturan kanal',
|
||||
'app.openhumanLink.maybeLater': 'Mungkin nanti',
|
||||
'app.openhumanLink.notifications.asking': 'Menanyakan ke OS Anda...',
|
||||
|
||||
@@ -2634,6 +2634,21 @@ const messages: TranslationMap = {
|
||||
'Ci scusiamo — qualcosa è andato storto da parte nostra. Proviamo a registrare questi errori automaticamente, ma condividere i dettagli su Discord ci aiuta a risolverli più velocemente.',
|
||||
'app.openhumanLink.discordReport.openDiscord': 'Apri Discord',
|
||||
'app.openhumanLink.done': 'Fatto',
|
||||
'app.openhumanLink.notifications.desktopOnly':
|
||||
"Le notifiche native sono disponibili solo nell'app desktop (esegui `pnpm dev:app`).",
|
||||
'app.openhumanLink.notifications.permissionOff':
|
||||
"L'autorizzazione alle notifiche è disattivata. Abilita OpenHuman in Impostazioni di sistema → Notifiche, quindi riprova.",
|
||||
'app.openhumanLink.notifications.triggerFailed':
|
||||
'OpenHuman non è riuscito ad attivare una notifica di sistema. Controlla le impostazioni di notifica del sistema operativo e riprova.',
|
||||
'app.openhumanLink.notifications.welcomeBody':
|
||||
'Riceverai avvisi qui quando qualcosa richiederà la tua attenzione.',
|
||||
'app.openhumanLink.notifications.welcomeTitle': "OpenHuman è pronto all'uso",
|
||||
'app.openhumanLink.status.closed': 'Chiuso',
|
||||
'app.openhumanLink.status.connected': 'Connesso',
|
||||
'app.openhumanLink.status.error': 'Errore',
|
||||
'app.openhumanLink.status.loading': 'Caricamento…',
|
||||
'app.openhumanLink.status.needsSignIn': 'Accesso richiesto',
|
||||
'app.openhumanLink.status.timedOut': 'Tempo scaduto',
|
||||
'app.openhumanLink.loadingChannelSetup': 'Caricamento configurazione canale',
|
||||
'app.openhumanLink.maybeLater': 'Forse più tardi',
|
||||
'app.openhumanLink.notifications.asking': 'Richiesta al tuo OS…',
|
||||
|
||||
@@ -2568,6 +2568,21 @@ const messages: TranslationMap = {
|
||||
'죄송합니다 — 저희 측에서 오류가 발생했습니다. 이러한 오류를 자동으로 기록하려고 하지만, Discord에 세부 정보를 공유해 주시면 더 빠르게 해결할 수 있습니다.',
|
||||
'app.openhumanLink.discordReport.openDiscord': 'Discord 열기',
|
||||
'app.openhumanLink.done': '완료',
|
||||
'app.openhumanLink.notifications.desktopOnly':
|
||||
'기본 알림은 데스크톱 앱에서만 사용할 수 있습니다 (`pnpm dev:app` 실행).',
|
||||
'app.openhumanLink.notifications.permissionOff':
|
||||
'알림 권한이 꺼져 있습니다. 시스템 설정 → 알림에서 OpenHuman을 활성화한 후 다시 시도하세요.',
|
||||
'app.openhumanLink.notifications.triggerFailed':
|
||||
'OpenHuman이 시스템 알림을 발생시킬 수 없습니다. 운영체제 알림 설정을 확인한 후 다시 시도하세요.',
|
||||
'app.openhumanLink.notifications.welcomeBody':
|
||||
'주의가 필요한 일이 생기면 여기에서 알림을 받게 됩니다.',
|
||||
'app.openhumanLink.notifications.welcomeTitle': 'OpenHuman 준비 완료',
|
||||
'app.openhumanLink.status.closed': '닫힘',
|
||||
'app.openhumanLink.status.connected': '연결됨',
|
||||
'app.openhumanLink.status.error': '오류',
|
||||
'app.openhumanLink.status.loading': '로드 중…',
|
||||
'app.openhumanLink.status.needsSignIn': '로그인 필요',
|
||||
'app.openhumanLink.status.timedOut': '시간 초과',
|
||||
'app.openhumanLink.loadingChannelSetup': '채널 설정 불러오는 중',
|
||||
'app.openhumanLink.maybeLater': '나중에',
|
||||
'app.openhumanLink.notifications.asking': 'OS에 요청 중…',
|
||||
|
||||
@@ -2620,6 +2620,21 @@ const messages: TranslationMap = {
|
||||
'Przepraszamy — coś poszło nie tak po naszej stronie. Staramy się rejestrować takie błędy automatycznie, ale udostępnienie szczegółów na Discord pomaga nam szybciej je naprawić.',
|
||||
'app.openhumanLink.discordReport.openDiscord': 'Otwórz Discord',
|
||||
'app.openhumanLink.done': 'Gotowe',
|
||||
'app.openhumanLink.notifications.desktopOnly':
|
||||
'Natywne powiadomienia są dostępne tylko w aplikacji desktopowej (uruchom `pnpm dev:app`).',
|
||||
'app.openhumanLink.notifications.permissionOff':
|
||||
'Uprawnienie do powiadomień jest wyłączone. Włącz OpenHuman w Ustawieniach systemu → Powiadomienia, a następnie spróbuj ponownie.',
|
||||
'app.openhumanLink.notifications.triggerFailed':
|
||||
'OpenHuman nie mógł wywołać powiadomienia systemowego. Sprawdź ustawienia powiadomień systemu operacyjnego i spróbuj ponownie.',
|
||||
'app.openhumanLink.notifications.welcomeBody':
|
||||
'Otrzymasz tutaj powiadomienia, gdy coś będzie wymagać Twojej uwagi.',
|
||||
'app.openhumanLink.notifications.welcomeTitle': 'OpenHuman jest gotowy do pracy',
|
||||
'app.openhumanLink.status.closed': 'Zamknięte',
|
||||
'app.openhumanLink.status.connected': 'Połączono',
|
||||
'app.openhumanLink.status.error': 'Błąd',
|
||||
'app.openhumanLink.status.loading': 'Ładowanie…',
|
||||
'app.openhumanLink.status.needsSignIn': 'Wymagane logowanie',
|
||||
'app.openhumanLink.status.timedOut': 'Przekroczono czas',
|
||||
'app.openhumanLink.loadingChannelSetup': 'Wczytywanie konfiguracji kanału',
|
||||
'app.openhumanLink.maybeLater': 'Może później',
|
||||
'app.openhumanLink.notifications.asking': 'Pytanie systemu operacyjnego…',
|
||||
|
||||
@@ -2640,6 +2640,21 @@ const messages: TranslationMap = {
|
||||
'Desculpe — algo deu errado do nosso lado. Tentamos registrar esses erros automaticamente, mas compartilhar os detalhes no Discord nos ajuda a corrigi-lo mais rápido.',
|
||||
'app.openhumanLink.discordReport.openDiscord': 'Abrir Discord',
|
||||
'app.openhumanLink.done': 'Concluído',
|
||||
'app.openhumanLink.notifications.desktopOnly':
|
||||
'As notificações nativas só estão disponíveis no aplicativo de desktop (execute `pnpm dev:app`).',
|
||||
'app.openhumanLink.notifications.permissionOff':
|
||||
'A permissão de notificações está desativada. Ative o OpenHuman em Configurações do sistema → Notificações e tente novamente.',
|
||||
'app.openhumanLink.notifications.triggerFailed':
|
||||
'O OpenHuman não conseguiu disparar uma notificação do sistema. Verifique as configurações de notificação do sistema operacional e tente novamente.',
|
||||
'app.openhumanLink.notifications.welcomeBody':
|
||||
'Você receberá avisos aqui quando algo precisar da sua atenção.',
|
||||
'app.openhumanLink.notifications.welcomeTitle': 'O OpenHuman está pronto',
|
||||
'app.openhumanLink.status.closed': 'Fechado',
|
||||
'app.openhumanLink.status.connected': 'Conectado',
|
||||
'app.openhumanLink.status.error': 'Erro',
|
||||
'app.openhumanLink.status.loading': 'Carregando…',
|
||||
'app.openhumanLink.status.needsSignIn': 'Requer login',
|
||||
'app.openhumanLink.status.timedOut': 'Tempo esgotado',
|
||||
'app.openhumanLink.loadingChannelSetup': 'Carregando configuração do canal',
|
||||
'app.openhumanLink.maybeLater': 'Talvez depois',
|
||||
'app.openhumanLink.notifications.asking': 'Solicitando ao SO…',
|
||||
|
||||
@@ -2614,6 +2614,21 @@ const messages: TranslationMap = {
|
||||
'Приносим извинения — что-то пошло не так с нашей стороны. Мы стараемся фиксировать такие ошибки автоматически, но если вы поделитесь подробностями в Discord, мы исправим их быстрее.',
|
||||
'app.openhumanLink.discordReport.openDiscord': 'Открыть Discord',
|
||||
'app.openhumanLink.done': 'Готово',
|
||||
'app.openhumanLink.notifications.desktopOnly':
|
||||
'Нативные уведомления доступны только в настольном приложении (выполните `pnpm dev:app`).',
|
||||
'app.openhumanLink.notifications.permissionOff':
|
||||
'Разрешение на уведомления отключено. Включите OpenHuman в Системных настройках → Уведомления, затем повторите попытку.',
|
||||
'app.openhumanLink.notifications.triggerFailed':
|
||||
'OpenHuman не удалось вызвать системное уведомление. Проверьте настройки уведомлений операционной системы и повторите попытку.',
|
||||
'app.openhumanLink.notifications.welcomeBody':
|
||||
'Вы будете получать оповещения здесь, когда что-то потребует вашего внимания.',
|
||||
'app.openhumanLink.notifications.welcomeTitle': 'OpenHuman готов к работе',
|
||||
'app.openhumanLink.status.closed': 'Закрыто',
|
||||
'app.openhumanLink.status.connected': 'Подключено',
|
||||
'app.openhumanLink.status.error': 'Ошибка',
|
||||
'app.openhumanLink.status.loading': 'Загрузка…',
|
||||
'app.openhumanLink.status.needsSignIn': 'Требуется вход',
|
||||
'app.openhumanLink.status.timedOut': 'Время истекло',
|
||||
'app.openhumanLink.loadingChannelSetup': 'Загрузка настроек канала',
|
||||
'app.openhumanLink.maybeLater': 'Может, потом',
|
||||
'app.openhumanLink.notifications.asking': 'Запрос у ОС…',
|
||||
|
||||
@@ -2468,6 +2468,20 @@ const messages: TranslationMap = {
|
||||
'抱歉 — 我们这边出错了。我们会尝试自动记录这些错误,但在 Discord 上分享详情能帮助我们更快地修复问题。',
|
||||
'app.openhumanLink.discordReport.openDiscord': '打开 Discord',
|
||||
'app.openhumanLink.done': '完成',
|
||||
'app.openhumanLink.notifications.desktopOnly':
|
||||
'原生通知仅在桌面应用中可用(运行 `pnpm dev:app`)。',
|
||||
'app.openhumanLink.notifications.permissionOff':
|
||||
'通知权限已关闭。请在“系统设置 → 通知”中启用 OpenHuman,然后重试。',
|
||||
'app.openhumanLink.notifications.triggerFailed':
|
||||
'OpenHuman 无法触发系统通知。请检查操作系统的通知设置,然后重试。',
|
||||
'app.openhumanLink.notifications.welcomeBody': '当有事情需要您关注时,您将在此处收到提醒。',
|
||||
'app.openhumanLink.notifications.welcomeTitle': 'OpenHuman 已准备就绪',
|
||||
'app.openhumanLink.status.closed': '已关闭',
|
||||
'app.openhumanLink.status.connected': '已连接',
|
||||
'app.openhumanLink.status.error': '错误',
|
||||
'app.openhumanLink.status.loading': '加载中…',
|
||||
'app.openhumanLink.status.needsSignIn': '需要登录',
|
||||
'app.openhumanLink.status.timedOut': '已超时',
|
||||
'app.openhumanLink.loadingChannelSetup': '正在加载渠道设置',
|
||||
'app.openhumanLink.maybeLater': '稍后再说',
|
||||
'app.openhumanLink.notifications.asking': '正在请求系统权限…',
|
||||
|
||||
Reference in New Issue
Block a user