diff --git a/package.json b/package.json index 61c944a9..90fc9573 100644 --- a/package.json +++ b/package.json @@ -18,7 +18,9 @@ "format": "prettier --write .", "preview": "vite preview", "test": "vitest", - "test:run": "vitest run" + "test:run": "vitest run", + "i18n:sync": "npx tsx scripts/sync-i18n-locales.ts && prettier --write \"src/i18n/locales/*.ts\"", + "i18n:audit": "npx tsx scripts/i18n-audit.ts" }, "dependencies": { "@asciidoctor/core": "^3.0.4", diff --git a/scripts/i18n-audit.ts b/scripts/i18n-audit.ts new file mode 100644 index 00000000..60d0bdaa --- /dev/null +++ b/scripts/i18n-audit.ts @@ -0,0 +1,65 @@ +/** + * Audit: t('...') keys in src vs en translation. + * Run: npx tsx scripts/i18n-audit.ts + */ +import fs from 'fs' +import path from 'path' +import { fileURLToPath } from 'url' +import en from '../src/i18n/locales/en' + +const __dirname = path.dirname(fileURLToPath(import.meta.url)) + +function walk(dir: string, acc: string[] = []): string[] { + for (const name of fs.readdirSync(dir)) { + const p = path.join(dir, name) + const st = fs.statSync(p) + if (st.isDirectory()) { + if (name === 'node_modules' || name === 'dist') continue + walk(p, acc) + } else if (/\.(tsx|ts)$/.test(name)) acc.push(p) + } + return acc +} + +function unquoteSingle(s: string) { + return s.replace(/\\'/g, "'").replace(/\\\\/g, '\\') +} +function unquoteDouble(s: string) { + return s.replace(/\\"/g, '"').replace(/\\\\/g, '\\') +} + +function extractTKeys(content: string): Set { + const keys = new Set() + const re1 = /\bt\(\s*'((?:\\.|[^'\\])*)'/g + let m + while ((m = re1.exec(content)) !== null) { + const raw = unquoteSingle(m[1]) + if (raw.length > 0 && raw.length < 400) keys.add(raw) + } + const re2 = /\bt\(\s*"((?:\\.|[^"\\])*)"/g + while ((m = re2.exec(content)) !== null) { + const raw = unquoteDouble(m[1]) + if (raw.length > 0 && raw.length < 400) keys.add(raw) + } + return keys +} + +const root = path.join(__dirname, '..') +const srcDir = path.join(root, 'src') +const files = walk(srcDir) +const used = new Set() +for (const f of files) { + const c = fs.readFileSync(f, 'utf8') + for (const k of extractTKeys(c)) used.add(k) +} + +const enKeys = new Set(Object.keys(en.translation)) +const missingInEn = [...used].filter((k) => !enKeys.has(k)).sort() +const orphanInEn = [...enKeys].filter((k) => !used.has(k)).sort() + +console.log('Used t() keys:', used.size) +console.log('en keys:', enKeys.size) +console.log('Used but missing in en:', missingInEn.length) +if (missingInEn.length) console.log(missingInEn.join('\n')) +console.log('In en but not in t()-scan (may be dynamic / false orphan):', orphanInEn.length) +if (orphanInEn.length) console.log(orphanInEn.slice(0, 100).join('\n')) diff --git a/scripts/sync-i18n-locales.ts b/scripts/sync-i18n-locales.ts new file mode 100644 index 00000000..cbfc3f13 --- /dev/null +++ b/scripts/sync-i18n-locales.ts @@ -0,0 +1,132 @@ +/** + * Merge t() keys from src into en, then regenerate all locale files with the same key set. + * Missing non-English strings fall back to English. + * + * Run: npx tsx scripts/sync-i18n-locales.ts && npx prettier --write "src/i18n/locales/*.ts" + */ +import fs from 'fs' +import path from 'path' +import { fileURLToPath } from 'url' +import ar from '../src/i18n/locales/ar' +import de from '../src/i18n/locales/de' +import en from '../src/i18n/locales/en' +import es from '../src/i18n/locales/es' +import fa from '../src/i18n/locales/fa' +import fr from '../src/i18n/locales/fr' +import hi from '../src/i18n/locales/hi' +import it from '../src/i18n/locales/it' +import ja from '../src/i18n/locales/ja' +import ko from '../src/i18n/locales/ko' +import pl from '../src/i18n/locales/pl' +import pt_BR from '../src/i18n/locales/pt-BR' +import pt_PT from '../src/i18n/locales/pt-PT' +import ru from '../src/i18n/locales/ru' +import th from '../src/i18n/locales/th' +import zh from '../src/i18n/locales/zh' + +const __dirname = path.dirname(fileURLToPath(import.meta.url)) +const srcDir = path.join(__dirname, '..', 'src') +const localesDir = path.join(__dirname, '..', 'src/i18n/locales') + +const PACKAGES: { file: string; translation: Record; header?: string }[] = [ + { file: 'ar.ts', translation: ar.translation }, + { file: 'de.ts', translation: de.translation, header: '// NOTE: Untranslated strings fall back to English.\n' }, + { file: 'en.ts', translation: en.translation }, + { file: 'es.ts', translation: es.translation }, + { file: 'fa.ts', translation: fa.translation }, + { file: 'fr.ts', translation: fr.translation }, + { file: 'hi.ts', translation: hi.translation }, + { file: 'it.ts', translation: it.translation }, + { file: 'ja.ts', translation: ja.translation }, + { file: 'ko.ts', translation: ko.translation }, + { file: 'pl.ts', translation: pl.translation }, + { file: 'pt-BR.ts', translation: pt_BR.translation }, + { file: 'pt-PT.ts', translation: pt_PT.translation }, + { file: 'ru.ts', translation: ru.translation }, + { file: 'th.ts', translation: th.translation }, + { file: 'zh.ts', translation: zh.translation } +] + +function walk(dir: string, acc: string[] = []): string[] { + for (const name of fs.readdirSync(dir)) { + const p = path.join(dir, name) + const st = fs.statSync(p) + if (st.isDirectory()) { + if (name === 'node_modules' || name === 'dist') continue + walk(p, acc) + } else if (/\.(tsx|ts)$/.test(name)) acc.push(p) + } + return acc +} + +function unquoteSingle(s: string) { + return s.replace(/\\'/g, "'").replace(/\\\\/g, '\\') +} +function unquoteDouble(s: string) { + return s.replace(/\\"/g, '"').replace(/\\\\/g, '\\') +} + +function extractTKeys(content: string): Set { + const keys = new Set() + const re1 = /\bt\(\s*'((?:\\.|[^'\\])*)'/g + let m + while ((m = re1.exec(content)) !== null) { + const raw = unquoteSingle(m[1]) + if (raw.length > 0 && raw.length < 500) keys.add(raw) + } + const re2 = /\bt\(\s*"((?:\\.|[^"\\])*)"/g + while ((m = re2.exec(content)) !== null) { + const raw = unquoteDouble(m[1]) + if (raw.length > 0 && raw.length < 500) keys.add(raw) + } + return keys +} + +function formatKey(k: string): string { + if (/^[A-Za-z_$][\w$]*$/.test(k)) return k + return JSON.stringify(k) +} + +function formatValue(v: string): string { + return JSON.stringify(v) +} + +function emitLocaleFile(translation: Record, keyOrder: string[], headerComment?: string): string { + const lines: string[] = ['export default {', ' translation: {'] + if (headerComment) lines.push(` ${headerComment}`) + for (const k of keyOrder) { + const v = translation[k] + if (v === undefined) continue + lines.push(` ${formatKey(k)}: ${formatValue(v)},`) + } + lines.push(' }', '}', '') + return lines.join('\n') +} + +const used = new Set() +for (const f of walk(srcDir)) { + const c = fs.readFileSync(f, 'utf8') + for (const k of extractTKeys(c)) used.add(k) +} + +const prevEn = { ...en.translation } as Record +const prevKeys = Object.keys(prevEn) +const newOnly = [...used].filter((k) => !(k in prevEn)).sort() +const keyOrder = [...prevKeys, ...newOnly] + +const mergedEn: Record = {} +for (const k of keyOrder) { + mergedEn[k] = k in prevEn ? prevEn[k] : k +} + +for (const pkg of PACKAGES) { + const prev = pkg.translation as Record + const out: Record = {} + for (const k of keyOrder) { + out[k] = prev[k] !== undefined ? prev[k] : mergedEn[k] + } + const body = emitLocaleFile(out, keyOrder, pkg.header) + fs.writeFileSync(path.join(localesDir, pkg.file), body, 'utf8') +} + +console.log('Keys:', keyOrder.length, '| New from scan:', newOnly.length) diff --git a/src/i18n/locales/ar.ts b/src/i18n/locales/ar.ts index 57c33890..a14ddfc6 100644 --- a/src/i18n/locales/ar.ts +++ b/src/i18n/locales/ar.ts @@ -1,13 +1,16 @@ export default { translation: { - // NOTE: The translations below were generated by ChatGPT and have not yet been verified. 'Welcome! 🥳': 'مرحباً! 🥳', About: 'حول', 'New Note': 'ملاحظة جديدة', Post: 'نشر', Home: 'الرئيسية', + Feed: 'Feed', + 'Favorites Feed': 'Favorites Feed', + 'Pinned note': 'Pinned note', 'Relay settings': 'إعدادات الريلاي', Settings: 'الإعدادات', + 'Account menu': 'Account menu', SidebarRelays: 'الريلايات', Refresh: 'تحديث', Profile: 'الملف الشخصي', @@ -31,6 +34,12 @@ export default { 'loading...': 'جار التحميل...', 'Loading...': 'جار التحميل...', 'no more notes': 'لا توجد ملاحظات إضافية', + 'calendar entries': 'calendar entries', + 'Loading calendar events...': 'Loading calendar events...', + 'No calendar events found': 'No calendar events found', + 'Calendar events in the next {{count}} months': 'Calendar events in the next {{count}} months', + 'The nostr.band relay appears to be temporarily out of service. Please try again later.': + 'The nostr.band relay appears to be temporarily out of service. Please try again later.', 'reply to': 'الرد على', reply: 'رد', Reply: 'رد', @@ -38,6 +47,9 @@ export default { 'Write something...': 'اكتب شيئاً...', Cancel: 'إلغاء', Mentions: 'المنشنات', + 'Search for event or address…': 'Search for event or address…', + 'Search notes…': 'Search notes…', + 'No notes found': 'No notes found', 'Failed to post': 'فشل النشر', 'Post successful': 'تم النشر بنجاح', 'Your post has been published': 'تم نشر مشاركتك', @@ -46,7 +58,22 @@ export default { Quote: 'اقتباس', 'Copy event ID': 'نسخ معرف الحدث', 'Copy user ID': 'نسخ معرف المستخدم', + 'Send public message': 'Send public message', 'View raw event': 'عرض الحدث الخام', + 'Edit this event': 'Edit this event', + 'Clone or fork this event': 'Clone or fork this event', + 'Event kind': 'Event kind', + 'Note content': 'Note content', + Publish: 'Publish', + 'Post published': 'Post published', + 'Edit content and tags, then publish a new signed event.': + 'Edit content and tags, then publish a new signed event.', + 'Log in to publish': 'Log in to publish', + 'Set when you publish': 'set when you publish', + 'id and sig are assigned when you publish': 'id and sig are assigned when you publish', + 'Published to some relays only': 'Published to some relays only', + 'Add field': 'Add field', + 'View full profile': 'View full profile', Like: 'أعجبني', 'switch to light theme': 'التبديل إلى الوضع الفاتح', 'switch to dark theme': 'التبديل إلى الوضع الداكن', @@ -57,18 +84,143 @@ export default { "username's used relays": 'الريلايات المستخدمة لـ {{username}}', "username's muted": '{{username}} تم كتمه', Login: 'تسجيل الدخول', + 'Please log in to view notifications.': 'Please log in to view notifications.', 'Follows you': 'يتابعك', 'Relay Settings': 'إعدادات الريلاي', + 'Relays and Storage Settings': 'Relays and Storage Settings', 'Relay set name': 'اسم مجموعة الريلاي', 'Add a new relay set': 'إضافة مجموعة ريلاي جديدة', Add: 'إضافة', 'n relays': '{{n}} ريلايات', Rename: 'إعادة تسمية', + 'Copy share link': 'Copy share link', + 'Copy address': 'Copy address', + 'Copy payto URI': 'Copy payto URI', + 'Copied payto address': 'Copied payto address', + 'Copied to clipboard': 'Copied to clipboard', + 'Copied {{label}} address': 'Copied {{label}} address', + 'Lightning payment address – copy to pay via your wallet': + 'Lightning payment address – copy to pay via your wallet', + 'Payment address – copy to use in your wallet or app': + 'Payment address – copy to use in your wallet or app', + 'Click to open payment options': 'Click to open payment options', + 'Click to copy address': 'Click to copy address', + 'Open on website': 'Open on website', + 'Raw profile event': 'Raw profile event', + 'Full profile event': 'Full profile event', + 'Event (JSON)': 'Event (JSON)', + 'Save full profile': 'Save full profile', + 'Add tag': 'Add tag', + 'Remove tag': 'Remove tag', + 'Tag name': 'Tag name', + Value: 'Value', + 'Add value to tag': 'Add value to tag', + 'Remove value': 'Remove value', + 'No tags. Click "Add tag" to add one.': 'No tags. Click "Add tag" to add one.', + 'Profile updated': 'Profile updated', + 'Failed to publish profile': 'Failed to publish profile', + 'Invalid profile JSON': 'Invalid profile JSON', + 'Refresh cache': 'Refresh cache', + 'Force-refresh profile and payment info from relays': + 'Force-refresh profile and payment info from relays', + 'Profile and payment cache refreshed': 'Profile and payment cache refreshed', + 'Failed to refresh cache': 'Failed to refresh cache', + 'Raw payment info event': 'Raw payment info event', + 'Payment info': 'Payment info', + 'Edit payment info': 'Edit payment info', + 'Add payment info': 'Add payment info', + 'No payment info event yet. Click "Add payment info" to create one.': + 'No payment info event yet. Click "Add payment info" to create one.', + 'Content (JSON)': 'Content (JSON)', + Tags: 'Tags', + 'Tags (JSON array of arrays, e.g. [["payto","lightning","user@domain.com"]])': + 'Tags (JSON array of arrays, e.g. [["payto","lightning","user@domain.com"]])', + 'Payment info updated': 'Payment info updated', + 'Failed to publish payment info': 'Failed to publish payment info', + 'Invalid tags JSON': 'Invalid tags JSON', + 'Payment methods': 'Payment methods', + 'NIP-A3 payto tags: type (e.g. lightning) and authority (e.g. user@domain.com).': + 'NIP-A3 payto tags: type (e.g. lightning) and authority (e.g. user@domain.com).', + 'Type (e.g. lightning)': 'Type (e.g. lightning)', + 'Authority (e.g. user@domain.com)': 'Authority (e.g. user@domain.com)', + 'Add payment method': 'Add payment method', + Remove: 'Remove', + 'Additional content (JSON)': 'Additional content (JSON)', + 'Show full event JSON': 'Show full event JSON', + 'Tag list': 'Tag list', + 'Profile event tags (e.g. lud16, nip05, website). Saved with kind 0.': + 'Profile event tags (e.g. lud16, nip05, website). Saved with kind 0.', + 'Tag value': 'Tag value', + 'Saving…': 'Saving…', 'Share with Jumble': 'مشاركة مع Jumble', 'Share with Alexandria': 'مشاركة مع Alexandria', + 'Start video call': 'Start video call', + 'Copy call invite link': 'Copy call invite link', + 'Start call about this': 'Start call about this', + 'Send call invite': 'Send call invite', + 'Join the video call': 'Join the video call', + 'Schedule video call': 'Schedule video call', + "You're invited to a scheduled video call.": "You're invited to a scheduled video call.", + 'Create a calendar event and send an invite. The recipient will see the event with a join link.': + 'Create a calendar event and send an invite. The recipient will see the event with a join link.', + 'Schedule a video call': 'Schedule a video call', + 'Create a calendar event and send kind 24 invites to each listed invitee.': + 'Create a calendar event and send kind 24 invites to each listed invitee.', + Invitees: 'Invitees', + 'Paste nostr:npub1... or nostr:nprofile1... (one or more)': + 'Paste nostr:npub1... or nostr:nprofile1... (one or more)', + 'Schedule and send invites': 'Schedule and send invites', + 'Add at least one invitee (paste nostr:npub or nostr:nprofile links)': + 'Add at least one invitee (paste nostr:npub or nostr:nprofile links)', + 'Scheduled call created and {{count}} invite(s) sent': + 'Scheduled call created and {{count}} invite(s) sent', + 'Join video call': 'Join video call', + 'Scheduled video call': 'Scheduled video call', + 'Video call': 'Video call', + 'Schedule and send invite': 'Schedule and send invite', + 'Scheduling…': 'Scheduling…', + 'Please set a start time': 'Please set a start time', + 'End time must be after start time': 'End time must be after start time', + 'Failed to schedule call': 'Failed to schedule call', + 'Scheduled call created and invite sent': 'Scheduled call created and invite sent', + RSVP: 'RSVP', + 'RSVP: {{status}}': 'RSVP: {{status}}', + Accepted: 'Accepted', + Tentative: 'Tentative', + Declined: 'Declined', + 'You need to log in to RSVP': 'You need to log in to RSVP', + 'RSVP updated': 'RSVP updated', + 'Failed to update RSVP': 'Failed to update RSVP', + Organizer: 'Organizer', + Attendees: 'Attendees', + 'No response': 'No response', + 'Calendar Events': 'Calendar Events', + 'Calendar Event': 'Calendar Event', + 'Schedule in-person meeting': 'Schedule in-person meeting', + 'Create a calendar event and send an invite. No video link — for real-life meetups, conferences, etc.': + 'Create a calendar event and send an invite. No video link — for real-life meetups, conferences, etc.', + "You're invited to an in-person meeting.": "You're invited to an in-person meeting.", + 'Meeting created and invite sent': 'Meeting created and invite sent', + 'Failed to create meeting': 'Failed to create meeting', + 'Create and send invite': 'Create and send invite', + 'Creating…': 'Creating…', + 'In-person meeting': 'In-person meeting', + Location: 'Location', + 'Address, venue, or place': 'Address, venue, or place', + Description: 'Description', + 'Optional notes': 'Optional notes', + 'Create a calendar event for a real-life meetup and send kind 24 invites to each invitee.': + 'Create a calendar event for a real-life meetup and send kind 24 invites to each invitee.', + 'Meeting created and {{count}} invite(s) sent': 'Meeting created and {{count}} invite(s) sent', + 'Create and send invites': 'Create and send invites', + Title: 'Title', + Start: 'Start', + End: 'End', Delete: 'حذف', 'Relay already exists': 'الريلاي موجود بالفعل', 'invalid relay URL': 'عنوان URL للريلاي غير صالح', + 'Relay URL…': 'wss://… or relay host', + 'Open relay': 'Open relay', 'Add a new relay': 'إضافة ريلاي جديدة', back: 'عودة', 'Lost in the void': 'ضائع في الفراغ', @@ -113,6 +265,19 @@ export default { 'Picture note requires images': 'ملاحظة الصورة تتطلب صور', Relays: 'الريلايات', Image: 'صورة', + 'Upload Image': 'Upload Image', + 'Insert emoji': 'Insert emoji', + 'Insert GIF': 'Insert GIF', + 'Search GIFs': 'Search GIFs', + 'Choose a GIF': 'Choose a GIF', + 'Search GifBuddy for more GIFs': 'Search GifBuddy for more GIFs', + 'Add your own GIFs': 'Add your own GIFs', + 'Description (optional, for search)': 'Description (optional, for search)', + 'e.g. happy birthday, thumbs up': 'e.g. happy birthday, thumbs up', + 'Uploading...': 'Uploading...', + 'No GIFs found. Try searching or add your own. GIFs come from Nostr kind 1063 (NIP-94) events on GIF relays.': + 'No GIFs found. Try searching or add your own. GIFs come from Nostr kind 1063 (NIP-94) events on GIF relays.', + '{{name}} is not a GIF file': '{{name}} is not a GIF file', 'R & W': 'قراءة وكتابة', Read: 'قراءة', Write: 'كتابة', @@ -152,6 +317,9 @@ export default { Muted: 'تم كتمه', Unmute: 'إلغاء الكتم', 'Unmute user': 'إلغاء كتم المستخدم', + Block: 'Block', + Unblock: 'Unblock', + blocked: 'blocked', 'Append n relays': 'إضافة {{n}} ريلايات', Append: 'إضافة', 'Select relays to append': 'اختر الريلايات للإضافة', @@ -176,6 +344,24 @@ export default { 'Explore more': 'استكشاف المزيد', 'Payment page': 'صفحة الدفع', 'Supported NIPs': 'NIPs المدعومة', + 'Relay liveliness (NIP-66)': 'Relay liveliness (NIP-66)', + 'Relay monitor (NIP-66)': 'Relay monitor (NIP-66)', + 'Auth required': 'Auth required', + 'Public (no auth)': 'Public (no auth)', + 'Payment required': 'Payment required', + 'No payment': 'No payment', + 'Writes required': 'Writes required', + 'Writes open': 'Writes open', + 'PoW required': 'PoW required', + 'No PoW': 'No PoW', + 'RTT open': 'RTT open', + 'RTT read': 'RTT read', + 'RTT write': 'RTT write', + 'Supported NIPs (from monitor)': 'Supported NIPs (from monitor)', + 'Last reported by monitor': 'Last reported by monitor', + Network: 'Network', + Type: 'Type', + Topics: 'Topics', 'Open in a': 'فتح في {{a}}', 'Cannot handle event of kind k': 'لا يمكن معالجة الحدث من النوع {{k}}', 'Sorry! The note cannot be found 😔': 'عذراً! لا يمكن العثور على الملاحظة 😔', @@ -207,9 +393,22 @@ export default { 'Seen on': 'شوهد على', 'Temporarily display this reply': 'عرض هذا الرد مؤقتاً', 'Note not found': 'لم يتم العثور على الملاحظة', + 'The note was not found on your relays or default relays.': + 'The note was not found on your relays or default relays.', + "Try searching author's relays": "Try searching author's relays", + 'Searching external relays...': 'Searching external relays...', + "This will connect to the author's relays and relay hints": + "This will connect to the author's relays and relay hints", + 'Note could not be found anywhere': 'Note could not be found anywhere', + 'Try external relays': 'Try external relays', + 'Searching...': 'Searching...', + 'Show relays': 'Show relays', + 'No external relay hints available': 'No external relay hints available', 'no more replies': 'لا توجد مزيد من الردود', 'Relay sets': 'مجموعات الريلاي', 'Favorite Relays': 'الريلايات المفضلة', + 'Search for Relays': 'Search for Relays', + 'Using app default relays': 'Using app default relays', "Following's Favorites": 'المفضلات من المتابعين', 'no more relays': 'لا توجد مزيد من الريلايات', 'Favorited by': 'المفضلة من قبل', @@ -225,10 +424,48 @@ export default { 'no bookmarks found': 'لم يتم العثور على إشارات', 'no more bookmarks': 'لا مزيد من الإشارات', Bookmarks: 'الإشارات المرجعية', + 'Follow Packs': 'Follow Packs', + 'Follow Pack': 'Follow Pack', + 'Please log in to follow': 'Please log in to follow', + 'Following All': 'Following All', + 'Followed {{count}} users': 'Followed {{count}} users', + 'All available members are already followed or muted': + 'All available members are already followed or muted', + 'You are already following all members of this pack': + 'You are already following all members of this pack', + 'Failed to follow pack': 'Failed to follow pack', + '{{count}} profiles': '{{count}} profiles', 'Show more': 'عرض المزيد', General: 'عام', Autoplay: 'التشغيل التلقائي', 'Enable video autoplay on this device': 'تمكين التشغيل التلقائي للفيديو على هذا الجهاز', + 'Add random relays to every publish': 'Random relays in publish list', + 'Add random relays to every publish description': + 'Adds {{n}} random public relays from the NIP-66 lively list (preferring monitors that reported a write RTT) to the publish relay list. When ON, they are selected by default; when OFF, they appear in the list but are unchecked so you can optionally include them.', + relayType_local: 'Local', + relayType_relay_list: 'Relay list', + relayType_client_default: 'Client default', + relayType_open_from: 'Current feed', + relayType_favorite: 'Favorite', + relayType_relay_set: 'Relay set', + relayType_contextual: 'Reply/PM', + relayType_randomly_selected: 'Random (optional)', + 'Session relays': 'Session relays', + 'Session relays tab description': + 'Relay logic for this session: working and striked preset relays, and scored random relays (used to prefer faster, proven relays when adding random relays to publish).', + 'Session relays preset working': 'Working preset relays', + 'Session relays preset working hint': + 'Preset relays (from app defaults) that have not reached 3 publish failures this session.', + 'Session relays preset striked': 'Striked preset relays', + 'Session relays preset striked hint': + 'Preset relays that have reached 3 publish failures this session and are skipped for the rest of the session.', + 'Session relays scored random': 'Scored random relays', + 'Session relays scored random hint': + 'Relays that have accepted at least one publish this session; used to prefer faster relays when picking random relays. Sorted by average latency.', + 'Session relays all striked': 'All striked relays (any source)', + successes: 'successes', + None: 'None', + 'Cache & offline storage': 'Cache & offline storage', 'Paste or drop media files to upload': 'الصق أو اسحب ملفات الوسائط لتحميلها', Preview: 'معاينة', 'You are about to publish an event signed by [{{eventAuthorName}}]. You are currently logged in as [{{currentUsername}}]. Are you sure?': @@ -261,6 +498,7 @@ export default { 'Are you sure you want to reset your API key? This action cannot be undone.': 'هل أنت متأكد أنك تريد إعادة تعيين مفتاح API الخاص بك؟ لا يمكن التراجع عن هذا الإجراء.', Warning: 'تحذير', + 'Errors & warnings': 'Errors & warnings', 'Your current API key will become invalid immediately, and any applications using it will stop working until you update them with the new key.': 'مفتاح API الحالي الخاص بك سيصبح غير صالح على الفور، وأي تطبيقات تستخدمه ستتوقف عن العمل حتى تقوم بتحديثها بالمفتاح الجديد.', 'Service address': 'عنوان الخدمة', @@ -292,6 +530,9 @@ export default { Article: 'مقالة', Unfavorite: 'إلغاء المفضلة', 'Recommended relays': 'الريلايات الموصى بها', + 'Show recommended relays panel': 'Show recommended relays panel', + 'Display the right-side panel with recommended relays on desktop': + 'Display the right-side panel with recommended relays on desktop', 'Blossom server URLs': 'عناوين خوادم Blossom', 'You need to add at least one blossom server in order to upload media files.': 'تحتاج إلى إضافة خادم Blossom واحد على الأقل لتحميل ملفات الوسائط.', @@ -318,7 +559,31 @@ export default { 'Refresh results': 'تحديث النتائج', Poll: 'استطلاع', Media: 'الوسائط', + Interests: 'Interests', + Calendar: 'Calendar', + 'No subscribed interests yet.': + 'No subscribed interests yet. Add topics in settings to see them here.', + 'No bookmarked notes with id tags yet.': + 'No bookmarked notes with id tags yet. Only classic (e-tag) bookmarks load in this feed.', + 'No follows or relays to load yet.': 'No follows or relays to load yet.', + 'Nothing to load for this feed.': 'Nothing to load for this feed.', 'Republish to ...': 'إعادة النشر إلى ...', + 'All available relays': 'All available relays', + 'All active relays (monitoring list)': 'All active relays (monitoring list)', + 'Successfully republish to all available relays': + 'Successfully republish to all available relays', + 'Failed to republish to all available relays: {{error}}': + 'Failed to republish to all available relays: {{error}}', + 'Successfully republish to all active relays': 'Successfully republish to all active relays', + 'Failed to republish to all active relays: {{error}}': + 'Failed to republish to all active relays: {{error}}', + 'No active relays in monitoring list': 'No active relays in monitoring list', + 'No relay accepted the event': 'No relay accepted the event', + 'No relays available': 'No relays available', + 'No write relays configured': 'No write relays configured', + 'Relay did not accept the event': 'Relay did not accept the event', + 'Only {{count}} relay(s) accepted the event; at least 5 required for "all active relays".': + 'Only {{count}} relay(s) accepted the event; at least 5 required for "all active relays".', 'Successfully republish to your write relays': 'تم إعادة النشر بنجاح إلى ريلايات الكتابة الخاصة بك', 'Failed to republish to your write relays: {{error}}': @@ -337,6 +602,7 @@ export default { 'No zaps yet': 'لا توجد زابس بعد', 'No more boosts': 'لا مزيد من الـ Boosts', 'No boosts yet': 'لا توجد Boosts بعد', + 'n more boosts': '{{count}} more boosts', Boosts: 'Boosts', FollowListNotFoundConfirmation: 'لم يتم العثور على قائمة المتابعة. هل تريد إنشاء واحدة جديدة؟ إذا كنت قد تابعت مستخدمين من قبل، يرجى عدم التأكيد لأن هذه العملية ستؤدي إلى فقدان قائمة المتابعة السابقة.', @@ -359,8 +625,13 @@ export default { 'Maybe Later': 'ربما لاحقاً', "Don't remind me again": 'لا تذكرني مرة أخرى', Posts: 'المشاركات', + 'Posts (OPs)': 'Posts (OPs)', + 'Kind 1 replies': 'Kind 1 replies', + Comments: 'Comments', + 'Replies & comments': 'Replies & comments', Articles: 'المقالات', Highlights: 'التمييز', + 'A note from': 'A note from', Polls: 'الاستطلاعات', 'Voice Posts': 'المشاركات الصوتية', 'Photo Posts': 'مشاركات الصور', @@ -385,6 +656,13 @@ export default { 'boosted your note': 'قوّى ملاحظتك', 'zapped your note': 'زاب ملاحظتك', 'zapped you': 'زابك', + zapped: 'zapped', + 'Invalid zap receipt': 'Invalid zap receipt', + 'Zapped note': 'Zapped note', + 'Zapped profile': 'Zapped profile', + 'Zap reply threshold': 'Zap reply threshold', + 'Zaps above this amount will appear as replies in threads': + 'Zaps above this amount will appear as replies in threads', 'Mark as read': 'تعليم كمقروء', Report: 'تبليغ', 'Successfully report': 'تم التبليغ بنجاح', @@ -399,7 +677,6 @@ export default { 'See extra info for each notification': 'عرض معلومات إضافية لكل إشعار', 'See more notifications at a glance': 'رؤية المزيد من الإشعارات بنظرة سريعة', Detailed: 'تفصيلي', - Compact: 'مضغوط', 'Submit Relay': 'إرسال ريلاي', Homepage: 'الصفحة الرئيسية', 'Proof of Work (difficulty {{minPow}})': 'إثبات العمل (الصعوبة {{minPow}})', @@ -425,12 +702,713 @@ export default { '{{count}} relays': '{{count}} ريلايات', 'Republishing...': 'جارٍ إعادة النشر...', 'Trending Notes': 'الملاحظات الرائجة', + 'Trending on Your Favorite Relays': 'Trending on Your Favorite Relays', + 'Trending on the Default Relays': 'Trending on the Default Relays', + 'Latest from your follows': 'Latest from your follows', + 'Latest from our recommended follows': 'Latest from our recommended follows', + 'Loading follow list…': 'Loading follow list…', + 'Could not load recommended follows': 'Could not load recommended follows', + 'Your follow list is empty': 'Your follow list is empty', + 'Loading recent posts from follows…': 'Loading recent posts from follows…', + 'Loading more…': 'Loading more…', + 'No recent posts from this user in the current fetch': + 'No recent posts from this user in the current fetch', + 'Loading trending notes from your relays...': 'Loading trending notes from your relays...', + Sort: 'Sort', + newest: 'newest', + oldest: 'oldest', + 'most popular': 'most popular', + 'least popular': 'least popular', 'Connected to': 'متصل بـ', 'Disconnect Wallet': 'قطع الاتصال بالمحفظة', 'Are you absolutely sure?': 'هل أنت متأكد تماماً؟', 'You will not be able to send zaps to others.': 'لن تتمكن من إرسال zaps للآخرين.', Disconnect: 'قطع الاتصال', 'Set up your wallet to send and receive sats!': 'قم بإعداد محفظتك لإرسال واستقبال الساتس!', - 'Set up': 'إعداد' + 'Set up': 'إعداد', + 'nested events': 'nested events', + 'Loading RSS feeds...': 'Loading RSS feeds...', + 'No RSS feed items available': 'No RSS feed items available', + 'Show or hide the RSS page and sidebar entry': 'Show or hide the RSS page and sidebar entry', + 'Refreshing feeds...': 'Refreshing feeds...', + 'All feeds': 'All feeds', + 'All time': 'All time', + 'Last hour': 'Last hour', + 'Last day': 'Last day', + 'Last week': 'Last week', + 'Last month': 'Last month', + 'No items match your filters': 'No items match your filters', + 'Search...': 'Search...', + '{{count}} feeds': '{{count}} feeds', + 'Toggle filters': 'Toggle filters', + 'Showing {{filtered}} of {{total}} items': 'Showing {{filtered}} of {{total}} items', + Full: 'Full', + Compact: 'مضغوط', + Expand: 'Expand', + 'help.title': 'Help', + 'help.tabShortcuts': 'Keyboard shortcuts', + 'help.tabOverview': 'App overview', + 'shortcuts.title': 'Keyboard shortcuts', + 'shortcuts.intro': + 'Shortcuts for this app and common browsing. Modifier combos are Shift+Alt+key (Option+Shift+key on macOS); either modifier order works when typing.', + 'shortcuts.sectionApp': 'This app', + 'shortcuts.sectionSearch': 'Search bar', + 'shortcuts.sectionStandard': 'Standard', + 'shortcuts.openHelp': 'Show this help', + 'shortcuts.or': 'or', + 'shortcuts.then': 'then', + 'shortcuts.focusPrimary': + 'Focus main column scroll (desktop; then arrow keys, Page Up/Down, Home/End)', + 'shortcuts.focusSecondary': + 'Focus side panel scroll when it is open (desktop; same keys to scroll)', + 'shortcuts.newNote': 'New note / post (after login if needed)', + 'shortcuts.searchSuggest': 'Move through suggestions', + 'shortcuts.searchDismiss': 'Close search dropdown', + 'shortcuts.tabNavigate': 'Move focus to the next or previous control', + 'shortcuts.activate': 'Activate buttons and many controls', + 'shortcuts.closeOverlays': 'Close dialogs, menus, and the search dropdown', + 'shortcuts.scrollWhenFocused': 'Scroll the focused scrollable area', + 'shortcuts.browserBack': 'Browser back (history)', + 'No spells yet. Create one with the button above.': + 'No spells yet. Create one with the button above.', + 'Loading spells from your relays…': 'Loading spells from your relays…', + 'Could not run this spell. Check that it has a valid REQ/COUNT command, or add write relays in settings.': + 'Could not run this spell. Check that it has a valid REQ/COUNT command, or add write relays in settings.', + 'Select a spell…': 'Select a spell…', + 'Spells from follows': 'From people you follow ({{count}})', + 'Other spells': 'Other spells ({{count}})', + 'Select a spell to view its feed.': 'Select a spell to view its feed.', + 'Add another row': 'Add another row', + 'Remove this row': 'Remove this row', + 'One kind number per row (e.g. 1 for notes).': 'One kind number per row (e.g. 1 for notes).', + 'One author per row: $me, $contacts, or hex pubkey / npub.': + 'One author per row: $me, $contacts, or hex pubkey / npub.', + 'One hex event id per row.': 'One hex event id per row.', + 'One wss:// URL per row. Leave empty to use your write relays.': + 'One wss:// URL per row. Leave empty to use your write relays.', + 'One topic per row.': 'One topic per row.', + topic: 'topic', + 'Spell form fields': 'Spell form fields', + 'Counting matching events…': 'Counting matching events…', + 'Edit spell': 'Edit spell', + 'Clone spell': 'Clone spell', + 'Spell cloned': 'Spell cloned', + 'Clone spell intro': + 'This spell is preloaded from another author’s definition. Change anything you like, then save to publish a new spell signed with your account.', + 'Spell updated': 'Spell updated', + 'Relay URL': 'Relay', + Count: 'Count', + 'Edit spell relays': 'Edit relays', + 'COUNT spell relay errors hint': + 'One or more relays failed or returned an error. You can change the relay list in the spell and save again.', + 'COUNT spell total distinct explanation': + 'Distinct matching event IDs across all relays that responded successfully (duplicates across relays removed). Each relay only returns up to the filter limit.', + 'Leave empty to use your write relays.': 'Leave empty to use your write relays.', + 'COUNT spell result explanation': + 'Distinct events returned for this filter (merged from your spell relays and default write relays, duplicates removed). Relays only return up to the filter limit.', + 'COUNT spell may be capped by limit': + 'This count may equal your spell limit — there could be more matching events on the network.', + 'Spell count failed. Check relays or try again.': + 'Could not complete the count. Check relays or try again.', + 'REQ returns a feed; COUNT returns a number.': + 'REQ: scrollable feed (choose live Feed or one-shot Fetch below). COUNT: a single number, no feed.', + listImportManualLabel: 'Pre-fill from event', + listImportFromEventHint: + 'Supported tags are merged into the form (e, p, t, relay, r, a where possible). Non-empty content is skipped; encrypted private items are not read. You may see notices for unmapped tags.', + listImportManualPlaceholder: '64-char hex, nevent1…, or naddr1…', + listImportLoadManual: 'Apply', + listImportContentSkipped: + 'This event has non-empty content (may include encrypted private items). Only public tags were merged.', + listImportUnsupportedEmoji: + 'This list includes emoji tags (NIP-30); those are not added to the spell filter.', + listImportUnsupportedTag: + 'Tags of type “{{tag}}” ({{count}}) are not mapped to spell filters yet.', + listImportBadATag: 'Could not parse address tag: {{preview}}…', + listImportATagNotFound: 'Could not resolve address tag: {{preview}}…', + listImportATagFailed: 'Failed to resolve address tag: {{preview}}…', + listImportEventNotFound: 'No event found for that reference.', + 'REQ tag filters': 'REQ tag filters', + spellFormTagFiltersLabel: 'Tag filters on matching events', + spellCreateIntro: + 'Spells are saved relay filters (NIP-A7). The “Spell query” section is the real definition; the dashed box at the bottom is only for names, descriptions, and catalog labels. Use $me for your pubkey and $contacts for your follow list when executing.', + spellFormSectionQueryTitle: 'Spell query', + spellFormSectionQueryHint: + 'This block is the actual spell definition: it becomes the Nostr REQ/COUNT filter (kinds, authors, time range, tag filters on matching events, relays, etc.).', + spellFormSectionMetadataTitle: 'Listing & labels (optional)', + spellFormSectionMetadataBadge: 'Not part of the query', + spellFormSectionMetadataHint: + 'Name, description, and topic labels are only for display and spell pickers. They are not used when the spell fetches events.', + spellFormCatalogTopicsLabel: 'Topic labels on this spell (t tags)', + spellTopicsMetadataHint: + 'One topic per row. To filter which notes you see, use “REQ tag filters” in the spell query above (letter “t”).', + spellTagFiltersHint: + 'Optional filters on subscribed events (NIP-01 single-letter tags). Example: letter “t”, values “bitcoin”.', + spellTagFiltersEmpty: 'No tag filters yet. Add rows below or apply an event reference above.', + 'Tag filter letter': 'Tag letter', + 'Filter value': 'Value', + 'Add tag filter': 'Add tag filter', + spellPickerSectionYours: 'Your spells', + 'Failed to remove spell from local storage': 'Failed to remove spell from local storage', + Spells: 'Spells', + 'doublePane.secondaryEmpty': 'Open a note, profile, or settings item to show it here.', + 'doublePane.secondaryEmptyHint': 'Your feed and primary pages stay on the left.', + '(empty)': '(empty)', + '12-hour (AM/PM)': '12-hour (AM/PM)', + '24-hour': '24-hour', + 'A new version is available': 'A new version is available', + 'A short description of the article content': 'A short description of the article content', + AM: 'AM', + 'Access via': 'Access via', + 'Accessed On': 'Accessed On', + 'Accessed on': 'Accessed on', + 'Add RSS feed URLs to subscribe to. If no feeds are configured, the default feed will be used.': + 'Add RSS feed URLs to subscribe to. If no feeds are configured, the default feed will be used.', + 'Add a relay to block': 'Add a relay to block', + 'Add at least one invitee': 'Add at least one invitee', + 'Add client identifier': 'Add client identifier', + 'Add expiration tags by default': 'Add expiration tags by default', + 'Add quiet tags by default': 'Add quiet tags by default', + 'Add recipients using nostr: mentions (e.g., nostr:npub1...) or the recipient selector above': + 'Add recipients using nostr: mentions (e.g., nostr:npub1...) or the recipient selector above', + 'Add the source (where this text is from)': 'Add the source (where this text is from)', + 'Add to favorites': 'Add to favorites', + 'Add {{count}} Selected': 'Add {{count}} Selected', + 'Added at': 'Added at', + 'Added {{count}} relay(s)': 'Added {{count}} relay(s)', + 'Adding...': 'Adding...', + 'Adding…': 'Adding…', + 'Advanced Options': 'Advanced Options', + 'All Topics': 'All Topics', + 'All favorite relays': 'All favorite relays', + 'All feeds from OPML file are already added': 'All feeds from OPML file are already added', + 'All items deleted successfully': 'All items deleted successfully', + 'Already blocked': 'Already blocked', + 'Already saved': 'Already saved', + 'Application Recommendations': 'Application Recommendations', + 'Are you sure you want to clear all cached data? This will delete all stored events and settings from your browser.': + 'Are you sure you want to clear all cached data? This will delete all stored events and settings from your browser.', + 'Are you sure you want to delete all items from this store?': + 'Are you sure you want to delete all items from this store?', + 'Are you sure you want to unmute this user? This will restore the follow button.': + 'Are you sure you want to unmute this user? This will restore the follow button.', + "Are you sure you want to unregister the service worker? This will clear this app's service worker caches and you will need to reload the page.": + "Are you sure you want to unregister the service worker? This will clear this app's service worker caches and you will need to reload the page.", + 'Article exported as AsciiDoc': 'Article exported as AsciiDoc', + 'Article exported as Markdown': 'Article exported as Markdown', + 'Article title (optional)': 'Article title (optional)', + Audio: 'Audio', + Author: 'Author', + 'Author is required for reading groups': 'Author is required for reading groups', + 'Author name (optional)': 'Author name (optional)', + Authors: 'Authors', + 'Block Relay': 'Block Relay', + 'Blocked Relays': 'Blocked Relays', + 'Blocking...': 'Blocking...', + Blossom: 'Blossom', + Book: 'Book', + 'Brief description of the event': 'Brief description of the event', + 'Brief summary (optional)': 'Brief summary (optional)', + 'Brief summary of the article (optional)': 'Brief summary of the article (optional)', + 'Browse Cache': 'Browse Cache', + 'C-Tag': 'C-Tag', + 'Cache Relays': 'Cache Relays', + 'Cache cleared successfully': 'Cache cleared successfully', + 'Cache refreshed successfully': 'Cache refreshed successfully', + 'Cache relays are used to store and retrieve events locally. These relays are merged with your inbox and outbox relays.': + 'Cache relays are used to store and retrieve events locally. These relays are merged with your inbox and outbox relays.', + 'Cache relays must be local network URLs only (e.g., ws://localhost:4869 or ws://127.0.0.1:4869)': + 'Cache relays must be local network URLs only (e.g., ws://localhost:4869 or ws://127.0.0.1:4869)', + 'Cache relays saved': 'Cache relays saved', + Cancelled: 'Cancelled', + Chapter: 'Chapter', + 'Chapter Title': 'Chapter Title', + 'Chapter title (optional)': 'Chapter title (optional)', + Citation: 'Citation', + 'Citation title (optional)': 'Citation title (optional)', + 'Clean up duplicate replaceable events? This will keep only the newest version of each event.': + 'Clean up duplicate replaceable events? This will keep only the newest version of each event.', + 'Cleaned up {{deleted}} duplicate entries, kept {{kept}}': + 'Cleaned up {{deleted}} duplicate entries, kept {{kept}}', + 'Cleaned up {{deleted}} duplicate entries, kept {{kept}} (total items after cleanup: {{total}})': + 'Cleaned up {{deleted}} duplicate entries, kept {{kept}} (total items after cleanup: {{total}})', + 'Cleanup Duplicates': 'Cleanup Duplicates', + Clear: 'Clear', + 'Clear Cache': 'Clear Cache', + 'Clear Service Worker': 'Clear Service Worker', + 'Clear cached data stored in your browser, including IndexedDB events, localStorage settings, and service worker caches.': + 'Clear cached data stored in your browser, including IndexedDB events, localStorage settings, and service worker caches.', + 'Click update to get the latest features and improvements': + 'Click update to get the latest features and improvements', + Close: 'Close', + 'Comma or space-separated topics (will be added as t-tags)': + 'Comma or space-separated topics (will be added as t-tags)', + Command: 'Command', + Configure: 'Configure', + 'Connect Wallet': 'Connect Wallet', + 'Console Logs': 'Console Logs', + 'Console logs cleared': 'Console logs cleared', + 'Content is required': 'Content is required', + 'Content must be 5000 characters or less': 'Content must be 5000 characters or less', + Controversial: 'Controversial', + 'Copied!': 'Copied!', + 'Copy to clipboard': 'Copy to clipboard', + 'Create Article': 'Create Article', + 'Create Citation': 'Create Citation', + 'Create Highlight': 'Create Highlight', + 'Create New Thread': 'Create New Thread', + 'Create Poll': 'Create Poll', + 'Create Thread': 'Create Thread', + 'Create a Spell': 'Create a Spell', + 'Creating...': 'Creating...', + 'D-Tag': 'D-Tag', + 'D-Tag is required for articles': 'D-Tag is required for articles', + DOI: 'DOI', + 'Date-based (all-day)': 'Date-based (all-day)', + 'Default expiration (months)': 'Default expiration (months)', + 'Default quiet period (days)': 'Default quiet period (days)', + 'Delete All': 'Delete All', + 'Delete item': 'Delete item', + 'Deleted {{count}} event(s)': 'Deleted {{count}} event(s)', + 'Deletion request sent': 'Deletion request sent', + 'Description (content)': 'Description (content)', + 'Digital Object Identifier (optional)': 'Digital Object Identifier (optional)', + 'Disable word wrap': 'Disable word wrap', + 'Discovered Relays': 'Discovered Relays', + 'Discovering relays...': 'Discovering relays...', + Discussion: 'Discussion', + Discussions: 'Discussions', + Downvote: 'Downvote', + 'Edited by': 'Edited by', + Editor: 'Editor', + 'Editor name (optional)': 'Editor name (optional)', + 'Enable word wrap': 'Enable word wrap', + 'End date': 'End date', + 'End date must be after start date': 'End date must be after start date', + 'Enter a Nostr event identifier (nevent, naddr, note, or hex ID) OR a web URL (https://). Not both.': + 'Enter a Nostr event identifier (nevent, naddr, note, or hex ID) OR a web URL (https://). Not both.', + 'Enter a descriptive title for your thread': 'Enter a descriptive title for your thread', + 'Enter the author name': 'Enter the author name', + 'Enter the book title': 'Enter the book title', + 'Enter the specific text you want to highlight in the main content area above': + 'Enter the specific text you want to highlight in the main content area above', + 'Event IDs (ids)': 'Event IDs (ids)', + 'Event appears to be invalid or corrupted': 'Event appears to be invalid or corrupted', + 'Event has no value data': 'Event has no value data', + 'Event is missing required fields: {{fields}}': 'Event is missing required fields: {{fields}}', + 'Event type': 'Event type', + 'Expiration Tags': 'Expiration Tags', + 'Export OPML': 'Export OPML', + 'Export as AsciiDoc': 'Export as AsciiDoc', + 'Export as Markdown': 'Export as Markdown', + 'External Citation': 'External Citation', + 'External Citation Settings': 'External Citation Settings', + 'Failed to add relay. Please try again.': 'Failed to add relay. Please try again.', + 'Failed to add relays': 'Failed to add relays', + 'Failed to block relay. Please try again.': 'Failed to block relay. Please try again.', + 'Failed to cleanup duplicates': 'Failed to cleanup duplicates', + 'Failed to clear cache': 'Failed to clear cache', + 'Failed to copy': 'Failed to copy', + 'Failed to create relay set. Please try again.': + 'Failed to create relay set. Please try again.', + 'Failed to create thread': 'Failed to create thread', + 'Failed to create thread. Please try a different relay.': + 'Failed to create thread. Please try a different relay.', + 'Failed to delete all items': 'Failed to delete all items', + 'Failed to delete item': 'Failed to delete item', + 'Failed to discover relays': 'Failed to discover relays', + 'Failed to export OPML file': 'Failed to export OPML file', + 'Failed to export article': 'Failed to export article', + 'Failed to import OPML file: {{error}}': 'Failed to import OPML file: {{error}}', + 'Failed to load RSS feeds': 'Failed to load RSS feeds', + 'Failed to load store items': 'Failed to load store items', + 'Failed to mute user privately': 'Failed to mute user privately', + 'Failed to mute user publicly': 'Failed to mute user publicly', + 'Failed to pin note': 'Failed to pin note', + 'Failed to publish post': 'Failed to publish post', + 'Failed to publish reply': 'Failed to publish reply', + 'Failed to publish thread': 'Failed to publish thread', + 'Failed to publish to some relays. Please try again or use different relays.': + 'Failed to publish to some relays. Please try again or use different relays.', + 'Failed to save RSS feeds': 'Failed to save RSS feeds', + 'Failed to save cache relays': 'Failed to save cache relays', + 'Failed to save relay list': 'Failed to save relay list', + 'Failed to unregister service worker: ': 'Failed to unregister service worker: ', + 'Failed to unsubscribe from topic': 'Failed to unsubscribe from topic', + Favorite: 'Favorite', + Fetch: 'Fetch', + 'Fetch once, then stop.': 'Fetch once, then stop.', + 'Filter by': 'Filter by', + 'Flat View': 'Flat View', + 'Font size': 'Font size', + 'Full Quote/Context': 'Full Quote/Context', + 'Full-text search query': 'Full-text search query', + Geohash: 'Geohash', + 'Geohash (optional)': 'Geohash (optional)', + 'Global quiet mode': 'Global quiet mode', + 'Group discussions by topic': 'Group discussions by topic', + 'Grouped View': 'Grouped View', + Groups: 'Groups', + 'Handler {{index}}': 'Handler {{index}}', + 'Hardcopy Citation': 'Hardcopy Citation', + 'Hardcopy Citation Settings': 'Hardcopy Citation Settings', + Hide: 'Hide', + 'Hide interactions on all posts': 'Hide interactions on all posts', + 'Hide interactions on posts with quiet tags': 'Hide interactions on posts with quiet tags', + 'High PoW': 'High PoW', + 'Higher values make your thread harder to mine but more unique.': + 'Higher values make your thread harder to mine but more unique.', + Highlight: 'Highlight', + 'Highlight Settings': 'Highlight Settings', + 'How to Create a Highlight (NIP-84)': 'How to Create a Highlight (NIP-84)', + 'Human-readable spell name': 'Human-readable spell name', + 'Image URL': 'Image URL', + 'Import OPML': 'Import OPML', + 'Imported {{count}} feed(s) from OPML file': 'Imported {{count}} feed(s) from OPML file', + 'In-Browser Cache': 'In-Browser Cache', + Insert: 'Insert', + 'Insert URL into your post and publish to Nostr GIF library (NIP-94).': + 'Insert URL into your post and publish to Nostr GIF library (NIP-94).', + 'Insert event or address': 'Insert event or address', + 'Insert mention': 'Insert mention', + 'Internal Citation': 'Internal Citation', + 'Internal Citation Settings': 'Internal Citation Settings', + 'Invalid Event': 'Invalid Event', + 'Invalid Lightning Address': 'Invalid Lightning Address', + 'Invalid Lightning Address. Please enter a valid Lightning Address or LNURL.': + 'Invalid Lightning Address. Please enter a valid Lightning Address or LNURL.', + 'Invalid URL': 'Invalid URL', + 'Invalid content JSON': 'Invalid content JSON', + 'Invalid relay URL': 'Invalid relay URL', + 'Invalid source. Please enter a note ID, nevent, naddr, hex ID, or URL.': + 'Invalid source. Please enter a note ID, nevent, naddr, hex ID, or URL.', + 'Item deleted successfully': 'Item deleted successfully', + JSON: 'JSON', + 'Join link': 'Join link', + 'Journal/Publication name (optional)': 'Journal/Publication name (optional)', + Json: 'JSON', + Kinds: 'Kinds', + 'Language Model': 'Language Model', + Large: 'Large', + 'Leave empty for HiveTalk, or paste Zoom / Teams / other link': + 'Leave empty for HiveTalk, or paste Zoom / Teams / other link', + 'Lightning payment failed': 'Lightning payment failed', + Limit: 'Limit', + 'Live feed; keeps updating.': 'Live feed; keeps updating.', + 'Loading more...': 'Loading more...', + 'Loading relays...': 'Loading relays...', + 'Location (optional)': 'Location (optional)', + 'Log in to run this spell (it uses $me or $contacts).': + 'Log in to run this spell (it uses $me or $contacts).', + 'Login failed': 'Login failed', + 'Login to configure RSS feeds': 'Login to configure RSS feeds', + 'Long-form Article': 'Long-form Article', + 'Mailbox relays saved': 'Mailbox relays saved', + 'Mark as NSFW': 'Mark as NSFW', + 'Maximum {{max}} invitees': 'Maximum {{max}} invitees', + 'Maximum {{max}} invitees allowed': 'Maximum {{max}} invitees allowed', + Medium: 'Medium', + Mode: 'Mode', + 'Most Zapped': 'Most Zapped', + 'Move to top': 'Move to top', + 'Multiple choice': 'Multiple choice', + 'Mute failed': 'Mute failed', + NSFW: 'NSFW', + Name: 'Name', + 'Name of the language model used': 'Name of the language model used', + 'New External Citation': 'New External Citation', + 'New Hardcopy Citation': 'New Hardcopy Citation', + 'New Highlight': 'New Highlight', + 'New Internal Citation': 'New Internal Citation', + 'New Long-form Article': 'New Long-form Article', + 'New Poll': 'New Poll', + 'New Prompt Citation': 'New Prompt Citation', + 'New Public Message': 'New Public Message', + 'New Wiki Article': 'New Wiki Article', + 'New Wiki Article (Markdown)': 'New Wiki Article (Markdown)', + Newest: 'Newest', + 'No JSON available': 'No JSON available', + 'No RSS feeds found in OPML file': 'No RSS feeds found in OPML file', + 'No cached data found.': 'No cached data found.', + 'No console logs captured yet': 'No console logs captured yet', + 'No events found': 'No events found', + 'No feeds configured. Default feed will be used.': + 'No feeds configured. Default feed will be used.', + 'No feeds to export': 'No feeds to export', + 'No groups available. Join some groups first.': 'No groups available. Join some groups first.', + 'No items in this store.': 'No items in this store.', + 'No items match your search.': 'No items match your search.', + 'No logs match the current filters': 'No logs match the current filters', + 'No posts found': 'No posts found', + 'No posts match your search': 'No posts match your search', + 'No relays available. Please configure relays in settings.': + 'No relays available. Please configure relays in settings.', + 'No service workers or caches found for this app': + 'No service workers or caches found for this app', + 'No users found': 'No users found', + 'No valid RSS feed URLs found in OPML file': 'No valid RSS feed URLs found in OPML file', + 'Note pinned': 'Note pinned', + 'Note unpinned': 'Note unpinned', + Oldest: 'Oldest', + 'Open Timestamp': 'Open Timestamp', + 'Opens in a new tab. Copy a GIF URL there, then paste below. If this picker closed, click “Insert GIF” again to paste.': + 'Opens in a new tab. Copy a GIF URL there, then paste below. If this picker closed, click “Insert GIF” again to paste.', + Option: 'Option', + Optional: 'Optional', + 'Optional image for the event': 'Optional image for the event', + 'Optionally, add the full quote/context to show your highlight within it': + 'Optionally, add the full quote/context to show your highlight within it', + PM: 'PM', + 'Page Range': 'Page Range', + Pages: 'Pages', + 'Paste URL of a GIF': 'Paste URL of a GIF', + 'Paste the entire original passage that contains your highlight': + 'Paste the entire original passage that contains your highlight', + Photo: 'Photo', + 'Picture Note': 'Picture Note', + 'Pin note': 'Pin note', + 'Plain text description of the query': 'Plain text description of the query', + 'Please login to view bookmarks': 'Please login to view bookmarks', + 'Please select a group': 'Please select a group', + 'Please select at least one relay': 'Please select at least one relay', + 'Please set a start date': 'Please set a start date', + 'Poll with no options': 'Poll with no options', + 'Post published to some relays': 'Post published to some relays', + 'Posts will automatically include expiration tags': + 'Posts will automatically include expiration tags', + 'Posts will automatically include quiet tags': 'Posts will automatically include quiet tags', + 'Posts will be quiet for this many days': 'Posts will be quiet for this many days', + 'Posts will expire after this many months': 'Posts will expire after this many months', + 'Processing...': 'Processing...', + 'Profile event not available': 'Profile event not available', + 'Prompt Citation': 'Prompt Citation', + 'Prompt Citation Settings': 'Prompt Citation Settings', + 'Prompt Conversation Script': 'Prompt Conversation Script', + 'Proof of Work': 'Proof of Work', + 'Publish to Relays': 'Publish to Relays', + 'Published By': 'Published By', + 'Published In': 'Published In', + 'Published On': 'Published On', + 'Published in': 'Published in', + 'Published on': 'Published on', + 'Publisher name (optional)': 'Publisher name (optional)', + 'Quiet Tags': 'Quiet Tags', + 'RSS Feed': 'RSS Feed', + 'RSS Feed Settings': 'RSS Feed Settings', + 'RSS Feeds': 'RSS Feeds', + 'RSS feeds exported to OPML file': 'RSS feeds exported to OPML file', + 'RSS feeds saved': 'RSS feeds saved', + 'Rate limited. Please wait before trying again.': + 'Rate limited. Please wait before trying again.', + 'Reaction published': 'Reaction published', + 'Reaction removed': 'Reaction removed', + 'Read full article': 'Read full article', + 'Reading group entry': 'Reading group entry', + 'Readings Options': 'Readings Options', + Recipients: 'Recipients', + 'Recipients detected from your message:': 'Recipients detected from your message:', + 'Recommended Relays': 'Recommended Relays', + 'Recommended applications for handling events of kind {{kind}}': + 'Recommended applications for handling events of kind {{kind}}', + 'Reference to the cited Nostr event in kind:pubkey:hex format': + 'Reference to the cited Nostr event in kind:pubkey:hex format', + 'Refresh Cache': 'Refresh Cache', + 'Refreshing posts...': 'Refreshing posts...', + 'Relative: 7d, 24h, 1w, 1mo, 1y. Or Unix timestamp.': + 'Relative: 7d, 24h, 1w, 1mo, 1y. Or Unix timestamp.', + Relay: 'Relay', + 'Relay Hint': 'Relay Hint', + 'Relay URL (optional)': 'Relay URL (optional)', + 'Relay blocked successfully': 'Relay blocked successfully', + 'Relay requires authentication for write access. Please try a different relay or contact the relay operator.': + 'Relay requires authentication for write access. Please try a different relay or contact the relay operator.', + 'Relay set options': 'Relay set options', + 'Remove from favorites': 'Remove from favorites', + Rendered: 'Rendered', + 'Reply published': 'Reply published', + 'Reply published to some relays': 'Reply published to some relays', + 'Reply to Public Message': 'Reply to Public Message', + 'Republish to all active relays': 'Republish to all active relays', + 'Republish to all available relays': 'Republish to all available relays', + 'Required: start (or start date), invitees. Optional: title, end, location, summary, topics, image.': + 'Required: start (or start date), invitees. Optional: title, end, location, summary, topics, image.', + 'Required: start time or start date. Optional: title, end, location, summary, topics, image.': + 'Required: start time or start date. Optional: title, end, location, summary, topics, image.', + 'Required: start time, invitees. Join link defaults to HiveTalk. Optional: title, end, summary, topics, image.': + 'Required: start time, invitees. Join link defaults to HiveTalk. Optional: title, end, summary, topics, image.', + 'Required: start time. Join link defaults to HiveTalk. Optional: title, end, summary, topics, image.': + 'Required: start time. Join link defaults to HiveTalk. Optional: title, end, summary, topics, image.', + 'Respect quiet tags': 'Respect quiet tags', + 'Search (NIP-50)': 'Search (NIP-50)', + 'Search by name or npub…': 'Search by name or npub…', + 'Search calendar, publications, wiki…': 'Search calendar, publications, wiki…', + 'Search for user…': 'Search for user…', + 'Search items...': 'Search items...', + 'Search logs...': 'Search logs...', + 'Search notes, threads, long-form…': 'Search notes, threads, long-form…', + 'Search on GifBuddy': 'Search on GifBuddy', + 'Search posts...': 'Search posts...', + 'Search threads by title, content, tags, npub, author...': + 'Search threads by title, content, tags, npub, author...', + 'Searching all available relays...': 'Searching all available relays...', + 'Searching…': 'Searching…', + 'See reference': 'See reference', + 'Select Group': 'Select Group', + 'Select Media Type': 'Select Media Type', + 'Select group...': 'Select group...', + 'Select relays': 'Select relays', + 'Select the group where you want to create this discussion.': + 'Select the group where you want to create this discussion.', + 'Select topic...': 'Select topic...', + 'Selected text': 'Selected text', + 'Send Public Message': 'Send Public Message', + 'Send a Lightning payment to this user': 'Send a Lightning payment to this user', + 'Service worker caches cleared. Please reload the page.': + 'Service worker caches cleared. Please reload the page.', + 'Service worker unregistered and caches cleared. Please reload the page.': + 'Service worker unregistered and caches cleared. Please reload the page.', + 'Service worker unregistered. Please reload the page.': + 'Service worker unregistered. Please reload the page.', + 'Share your thoughts, ask questions, or start a discussion...': + 'Share your thoughts, ask questions, or start a discussion...', + 'Short Video Note': 'Short Video Note', + 'Show RSS Feed': 'Show RSS Feed', + 'Show all discussions in a single list': 'Show all discussions in a single list', + 'Show less': 'Show less', + Since: 'Since', + Small: 'Small', + 'Some relays have temporarily disabled writes.': + 'Some relays have temporarily disabled writes.', + Source: 'Source', + 'Spell definition': 'Spell definition', + 'Spell published': 'Spell published', + 'Start date': 'Start date', + 'Start typing to see a preview...': 'Start typing to see a preview...', + 'Subject (Book Title)': 'Subject (Book Title)', + 'Subject (book title) is required for reading groups': + 'Subject (book title) is required for reading groups', + 'Subject / Topics': 'Subject / Topics', + Subscribe: 'Subscribe', + Subscribed: 'Subscribed', + 'Subscribed to topic': 'Subscribed to topic', + 'Subscribed to topic (local)': 'Subscribed to topic (local)', + 'Subscribing...': 'Subscribing...', + Summary: 'Summary', + 'Supported Event Types': 'Supported Event Types', + 'Take a note': 'Take a note', + 'The full prompt conversation (optional)': 'The full prompt conversation (optional)', + 'The main editor above should contain only the text you want to highlight. This field should contain the full quote or paragraph for context.': + 'The main editor above should contain only the text you want to highlight. This field should contain the full quote or paragraph for context.', + 'These relays were found from your NIP-05 identifier and signer. You can add them to your relay list.': + 'These relays were found from your NIP-05 identifier and signer. You can add them to your relay list.', + 'This file could be either audio or video. Please select the correct type:': + 'This file could be either audio or video. Please select the correct type:', + 'This store does not contain replaceable events': + 'This store does not contain replaceable events', + 'This will add additional tags for author and subject to help organize reading group discussions.': + 'This will add additional tags for author and subject to help organize reading group discussions.', + 'Thread Content': 'Thread Content', + 'Thread Title': 'Thread Title', + 'Thread creation timed out. Please try again.': 'Thread creation timed out. Please try again.', + 'Thread published': 'Thread published', + 'Threads are organized by topics. Choose a topic that best fits your discussion.': + 'Threads are organized by topics. Choose a topic that best fits your discussion.', + 'Time-based': 'Time-based', + 'Title is required': 'Title is required', + 'Title must be 100 characters or less': 'Title must be 100 characters or less', + 'To translate notes and other content, use your browser’s built-in translation. For example: right-click the page and choose “Translate to…”, or use the translate icon in the address bar.': + 'To translate notes and other content, use your browser’s built-in translation. For example: right-click the page and choose “Translate to…”, or use the translate icon in the address bar.', + Top: 'Top', + Topic: 'Topic', + URL: 'URL', + 'URL of the article cover image (optional)': 'URL of the article cover image (optional)', + 'Unique identifier for this article (required)': + 'Unique identifier for this article (required)', + 'Unmute failed': 'Unmute failed', + 'Unpin note': 'Unpin note', + Unsubscribe: 'Unsubscribe', + 'Unsubscribed from topic': 'Unsubscribed from topic', + 'Unsubscribing...': 'Unsubscribing...', + Until: 'Until', + Untitled: 'Untitled', + Update: 'Update', + 'Updating...': 'Updating...', + 'Upload Audio Comment': 'Upload Audio Comment', + 'Upload Audio Message': 'Upload Audio Message', + 'Upload Media': 'Upload Media', + Upvote: 'Upvote', + 'User unmuted': 'User unmuted', + 'Version number (optional)': 'Version number (optional)', + Video: 'Video', + 'Video Note': 'Video Note', + 'Video file': 'Video file', + 'View Console Logs': 'View Console Logs', + 'View JSON': 'View JSON', + 'View cached items in this store.': 'View cached items in this store.', + 'View definition': 'View definition', + 'View details about cached data in IndexedDB stores. Click on a store to view its items.': + 'View details about cached data in IndexedDB stores. Click on a store to view its items.', + 'View on Alexandria': 'View on Alexandria', + 'View on DecentNewsroom': 'View on DecentNewsroom', + 'View on Wikistr': 'View on Wikistr', + 'View recent console logs for debugging': 'View recent console logs for debugging', + 'Voice Comment': 'Voice Comment', + 'Voice Note': 'Voice Note', + 'Voice note or audio file': 'Voice note or audio file', + Volume: 'Volume', + 'Volume number (optional)': 'Volume number (optional)', + 'Vote published': 'Vote published', + 'Vote removed': 'Vote removed', + 'Website where LLM was accessed (optional)': 'Website where LLM was accessed (optional)', + 'Wiki Article (AsciiDoc)': 'Wiki Article (AsciiDoc)', + 'Wiki Article (Markdown)': 'Wiki Article (Markdown)', + 'You can only delete your own notes': 'You can only delete your own notes', + 'You must be logged in to create a thread': 'You must be logged in to create a thread', + 'You need to add at least one media server in order to upload media files.': + 'You need to add at least one media server in order to upload media files.', + 'You need to login first': 'You need to login first', + 'Your account is blocked from posting to this relay.': + 'Your account is blocked from posting to this relay.', + Zap: 'Zap', + 'Zap failed': 'Zap failed', + created_at: 'created_at', + 'e tag of kind 1040 event (optional)': 'e tag of kind 1040 event (optional)', + 'e.g. meetup, conference': 'e.g. meetup, conference', + 'e.g., 123-145 (optional)': 'e.g., 123-145 (optional)', + 'e.g., GPT-4, Claude, etc. (required)': 'e.g., GPT-4, Claude, etc. (required)', + 'e.g., my-article-title': 'e.g., my-article-title', + entries: 'entries', + 'from Bunker': 'from Bunker', + 'from Extension': 'from Extension', + 'from NIP-05': 'from NIP-05', + general: 'general', + 'https://example.com (required)': 'https://example.com (required)', + 'https://example.com/image.jpg': 'https://example.com/image.jpg', + id: 'id', + items: 'items', + kind: 'kind', + 'kind:pubkey:hex format (required)': 'kind:pubkey:hex format (required)', + 'last updated': 'last updated', + matching: 'matching', + naddr: 'naddr', + nevent: 'nevent', + 'nevent1..., naddr1..., note1..., hex ID, or https://...': + 'nevent1..., naddr1..., note1..., hex ID, or https://...', + 'no notes found': 'no notes found', + of: 'of', + 'on note': 'on note', + optional: 'optional', + pubkey: 'pubkey', + 'sent a public message': 'sent a public message', + 'sent you a public message': 'sent you a public message', + 'sent you a public message (along with {{count}} others)': + 'sent you a public message (along with {{count}} others)', + sig: 'sig', + 'started a discussion in {{topic}}': 'started a discussion in {{topic}}', + tags: 'tags', + thread: 'thread', + threads: 'threads', + 'topic1, topic2, topic3': 'topic1, topic2, topic3', + '{{count}} relay(s) selected': '{{count}} relay(s) selected', + '🔞 NSFW 🔞': '🔞 NSFW 🔞' } } diff --git a/src/i18n/locales/de.ts b/src/i18n/locales/de.ts index 08d7d275..e7276cf0 100644 --- a/src/i18n/locales/de.ts +++ b/src/i18n/locales/de.ts @@ -1,11 +1,15 @@ export default { translation: { - // NOTE: The translations below were generated by ChatGPT and have not yet been verified. + // NOTE: Untranslated strings fall back to English. + 'Welcome! 🥳': 'Willkommen! 🥳', About: 'Über', 'New Note': 'Neue Notiz', Post: 'Beitrag', Home: 'Startseite', + Feed: 'Feed', + 'Favorites Feed': 'Favoriten-Feed', + 'Pinned note': 'Angehefteter Beitrag', 'Relay settings': 'Relay-Einstellungen', Settings: 'Einstellungen', 'Account menu': 'Kontomenü', @@ -35,7 +39,10 @@ export default { 'calendar entries': 'Kalender-Einträge', 'Loading calendar events...': 'Kalender-Einträge werden geladen...', 'No calendar events found': 'Keine Kalender-Einträge gefunden', - 'Calendar events in the next {{count}} months': 'Kalender-Einträge in den nächsten {{count}} Monaten', + 'Calendar events in the next {{count}} months': + 'Kalender-Einträge in den nächsten {{count}} Monaten', + 'The nostr.band relay appears to be temporarily out of service. Please try again later.': + 'The nostr.band relay appears to be temporarily out of service. Please try again later.', 'reply to': 'antworten an', reply: 'antworten', Reply: 'Antwort', @@ -66,11 +73,10 @@ export default { 'Inhalt und Tags bearbeiten und als neues signiertes Event veröffentlichen.', 'Log in to publish': 'Zum Veröffentlichen anmelden', 'Set when you publish': 'wird beim Veröffentlichen gesetzt', - 'id and sig are assigned when you publish': - 'id und sig werden beim Veröffentlichen gesetzt', + 'id and sig are assigned when you publish': 'id und sig werden beim Veröffentlichen gesetzt', 'Published to some relays only': 'Nur an manche Relays veröffentlicht', 'Add field': 'Feld hinzufügen', - 'Remove value': 'Wert entfernen', + 'View full profile': 'View full profile', Like: 'Gefällt mir', 'switch to light theme': 'Wechsel zum hellen Design', 'switch to dark theme': 'Wechsel zum dunklen Design', @@ -81,13 +87,74 @@ export default { "username's used relays": '{{username}}s verwendete Relays', "username's muted": '{{username}}s stummgeschaltet', Login: 'Anmelden', + 'Please log in to view notifications.': 'Please log in to view notifications.', 'Follows you': 'Folgt dir', 'Relay Settings': 'Relay-Einstellungen', + 'Relays and Storage Settings': 'Relays and Storage Settings', 'Relay set name': 'Relay-Set Name', 'Add a new relay set': 'Neues Relay-Set hinzufügen', Add: 'Hinzufügen', 'n relays': '{{n}} Relays', Rename: 'Umbenennen', + 'Copy share link': 'Copy share link', + 'Copy address': 'Copy address', + 'Copy payto URI': 'Copy payto URI', + 'Copied payto address': 'Copied payto address', + 'Copied to clipboard': 'Copied to clipboard', + 'Copied {{label}} address': 'Copied {{label}} address', + 'Lightning payment address – copy to pay via your wallet': + 'Lightning payment address – copy to pay via your wallet', + 'Payment address – copy to use in your wallet or app': + 'Payment address – copy to use in your wallet or app', + 'Click to open payment options': 'Click to open payment options', + 'Click to copy address': 'Click to copy address', + 'Open on website': 'Open on website', + 'Raw profile event': 'Raw profile event', + 'Full profile event': 'Full profile event', + 'Event (JSON)': 'Event (JSON)', + 'Save full profile': 'Save full profile', + 'Add tag': 'Add tag', + 'Remove tag': 'Remove tag', + 'Tag name': 'Tag name', + Value: 'Value', + 'Add value to tag': 'Add value to tag', + 'Remove value': 'Wert entfernen', + 'No tags. Click "Add tag" to add one.': 'No tags. Click "Add tag" to add one.', + 'Profile updated': 'Profile updated', + 'Failed to publish profile': 'Failed to publish profile', + 'Invalid profile JSON': 'Invalid profile JSON', + 'Refresh cache': 'Refresh cache', + 'Force-refresh profile and payment info from relays': + 'Force-refresh profile and payment info from relays', + 'Profile and payment cache refreshed': 'Profile and payment cache refreshed', + 'Failed to refresh cache': 'Failed to refresh cache', + 'Raw payment info event': 'Raw payment info event', + 'Payment info': 'Payment info', + 'Edit payment info': 'Edit payment info', + 'Add payment info': 'Add payment info', + 'No payment info event yet. Click "Add payment info" to create one.': + 'No payment info event yet. Click "Add payment info" to create one.', + 'Content (JSON)': 'Content (JSON)', + Tags: 'Tags', + 'Tags (JSON array of arrays, e.g. [["payto","lightning","user@domain.com"]])': + 'Tags (JSON array of arrays, e.g. [["payto","lightning","user@domain.com"]])', + 'Payment info updated': 'Payment info updated', + 'Failed to publish payment info': 'Failed to publish payment info', + 'Invalid tags JSON': 'Invalid tags JSON', + 'Payment methods': 'Payment methods', + 'NIP-A3 payto tags: type (e.g. lightning) and authority (e.g. user@domain.com).': + 'NIP-A3 payto tags: type (e.g. lightning) and authority (e.g. user@domain.com).', + 'Type (e.g. lightning)': 'Type (e.g. lightning)', + 'Authority (e.g. user@domain.com)': 'Authority (e.g. user@domain.com)', + 'Add payment method': 'Add payment method', + Remove: 'Remove', + 'Additional content (JSON)': 'Additional content (JSON)', + 'Show full event JSON': 'Show full event JSON', + 'Tag list': 'Tag list', + 'Profile event tags (e.g. lud16, nip05, website). Saved with kind 0.': + 'Profile event tags (e.g. lud16, nip05, website). Saved with kind 0.', + 'Tag value': 'Tag value', + 'Saving…': 'Speichern…', 'Share with Jumble': 'Mit Jumble teilen', 'Share with Alexandria': 'Mit Alexandria teilen', 'Start video call': 'Videoanruf starten', @@ -96,7 +163,8 @@ export default { 'Send call invite': 'Anruf-Einladung senden', 'Join the video call': 'Am Videoanruf teilnehmen', 'Schedule video call': 'Videoanruf planen', - "You're invited to a scheduled video call.": 'Du bist zu einem geplanten Videoanruf eingeladen.', + "You're invited to a scheduled video call.": + 'Du bist zu einem geplanten Videoanruf eingeladen.', 'Create a calendar event and send an invite. The recipient will see the event with a join link.': 'Kalendertermin erstellen und Einladung senden. Der Empfänger sieht den Termin mit einem Teilnahme-Link.', 'Schedule a video call': 'Videoanruf planen', @@ -147,7 +215,8 @@ export default { 'Optional notes': 'Optionale Notizen', 'Create a calendar event for a real-life meetup and send kind 24 invites to each invitee.': 'Kalendertermin für ein reales Treffen erstellen und an jede Person eine Kind-24-Einladung senden.', - 'Meeting created and {{count}} invite(s) sent': 'Termin erstellt und {{count}} Einladung(en) gesendet', + 'Meeting created and {{count}} invite(s) sent': + 'Termin erstellt und {{count}} Einladung(en) gesendet', 'Create and send invites': 'Erstellen und Einladungen senden', Title: 'Titel', Start: 'Beginn', @@ -212,7 +281,8 @@ export default { 'Description (optional, for search)': 'Beschreibung (optional, für Suche)', 'e.g. happy birthday, thumbs up': 'z. B. happy birthday, Daumen hoch', 'Uploading...': 'Wird hochgeladen...', - 'No GIFs found. Try searching or add your own. GIFs come from Nostr kind 1063 (NIP-94) events on GIF relays.': 'Keine GIFs gefunden. Suche oder füge eigene hinzu. GIFs stammen von Nostr-Kind-1063-Events (NIP-94) auf GIF-Relays.', + 'No GIFs found. Try searching or add your own. GIFs come from Nostr kind 1063 (NIP-94) events on GIF relays.': + 'Keine GIFs gefunden. Suche oder füge eigene hinzu. GIFs stammen von Nostr-Kind-1063-Events (NIP-94) auf GIF-Relays.', '{{name}} is not a GIF file': '{{name}} ist keine GIF-Datei', 'R & W': 'R & W', Read: 'Lesen', @@ -255,6 +325,9 @@ export default { Muted: 'Stummgeschaltet', Unmute: 'Stummschaltung aufheben', 'Unmute user': 'Benutzer-Stummschaltung aufheben', + Block: 'Block', + Unblock: 'Unblock', + blocked: 'blocked', 'Append n relays': 'Füge {{n}} Relays hinzu', Append: 'Hinzufügen', 'Select relays to append': 'Wähle die hinzuzufügenden Relays', @@ -295,9 +368,9 @@ export default { 'RTT write': 'RTT write', 'Supported NIPs (from monitor)': 'Unterstützte NIPs (vom Monitor)', 'Last reported by monitor': 'Zuletzt vom Monitor gemeldet', - 'Network': 'Netzwerk', - 'Type': 'Typ', - 'Topics': 'Themen', + Network: 'Netzwerk', + Type: 'Typ', + Topics: 'Themen', 'Open in a': 'Öffnen in {{a}}', 'Cannot handle event of kind k': 'Ereignis des Typs {{k}} kann nicht verarbeitet werden', 'Sorry! The note cannot be found 😔': 'Entschuldigung! Die Notiz wurde nicht gefunden 😔', @@ -329,6 +402,17 @@ export default { 'Seen on': 'Gesehen auf', 'Temporarily display this reply': 'Antwort vorübergehend anzeigen', 'Note not found': 'Die Notiz wurde nicht gefunden', + 'The note was not found on your relays or default relays.': + 'The note was not found on your relays or default relays.', + "Try searching author's relays": "Try searching author's relays", + 'Searching external relays...': 'Searching external relays...', + "This will connect to the author's relays and relay hints": + "This will connect to the author's relays and relay hints", + 'Note could not be found anywhere': 'Note could not be found anywhere', + 'Try external relays': 'Try external relays', + 'Searching...': 'Searching...', + 'Show relays': 'Show relays', + 'No external relay hints available': 'No external relay hints available', 'no more replies': 'keine weiteren Antworten', 'Relay sets': 'Relay-Sets', 'Favorite Relays': 'Lieblings-Relays', @@ -368,14 +452,14 @@ export default { 'Add random relays to every publish': 'Zufällige Relays in der Publish-Liste', 'Add random relays to every publish description': 'Fügt {{n}} zufällige öffentliche Relays aus der NIP-66-Liveliness-Liste hinzu (bevorzugt solche, deren Monitor eine Write-RTT gemeldet hat). Bei AN standardmäßig ausgewählt; bei AUS in der Liste, aber nicht angehakt.', - 'relayType_local': 'Lokal', - 'relayType_relay_list': 'Relay-Liste', - 'relayType_client_default': 'Client-Standard', - 'relayType_open_from': 'Aktueller Feed', - 'relayType_favorite': 'Favorit', - 'relayType_relay_set': 'Relay-Set', - 'relayType_contextual': 'Antwort/PN', - 'relayType_randomly_selected': 'Zufällig (optional)', + relayType_local: 'Lokal', + relayType_relay_list: 'Relay-Liste', + relayType_client_default: 'Client-Standard', + relayType_open_from: 'Aktueller Feed', + relayType_favorite: 'Favorit', + relayType_relay_set: 'Relay-Set', + relayType_contextual: 'Antwort/PN', + relayType_randomly_selected: 'Zufällig (optional)', 'Session relays': 'Session-Relays', 'Session relays tab description': 'Relay-Logik für diese Session: funktionierende und gestrichene Preset-Relays sowie bewertete Zufallsrelays (bevorzugt schnellere, bewährte Relays beim Hinzufügen von Zufallsrelays).', @@ -459,7 +543,8 @@ export default { Unfavorite: 'Nicht mehr favorisieren', 'Recommended relays': 'Empfohlene Relays', 'Show recommended relays panel': 'Empfohlene Relays-Panel anzeigen', - 'Display the right-side panel with recommended relays on desktop': 'Das rechte Panel mit empfohlenen Relays auf dem Desktop anzeigen', + 'Display the right-side panel with recommended relays on desktop': + 'Das rechte Panel mit empfohlenen Relays auf dem Desktop anzeigen', 'Blossom server URLs': 'Blossom-Server-URLs', 'You need to add at least one blossom server in order to upload media files.': 'Du musst mindestens einen Blossom-Server hinzufügen, um Mediendateien hochladen zu können.', @@ -495,6 +580,22 @@ export default { 'No follows or relays to load yet.': 'Noch keine Follows oder Relays zum Laden.', 'Nothing to load for this feed.': 'Für diesen Feed gibt es nichts zu laden.', 'Republish to ...': 'Erneut veröffentlichen zu ...', + 'All available relays': 'All available relays', + 'All active relays (monitoring list)': 'All active relays (monitoring list)', + 'Successfully republish to all available relays': + 'Successfully republish to all available relays', + 'Failed to republish to all available relays: {{error}}': + 'Failed to republish to all available relays: {{error}}', + 'Successfully republish to all active relays': 'Successfully republish to all active relays', + 'Failed to republish to all active relays: {{error}}': + 'Failed to republish to all active relays: {{error}}', + 'No active relays in monitoring list': 'No active relays in monitoring list', + 'No relay accepted the event': 'No relay accepted the event', + 'No relays available': 'No relays available', + 'No write relays configured': 'No write relays configured', + 'Relay did not accept the event': 'Relay did not accept the event', + 'Only {{count}} relay(s) accepted the event; at least 5 required for "all active relays".': + 'Only {{count}} relay(s) accepted the event; at least 5 required for "all active relays".', 'Successfully republish to your write relays': 'Erfolgreich erneut zu deinen Schreib-Relays veröffentlicht', 'Failed to republish to your write relays: {{error}}': @@ -539,19 +640,17 @@ export default { Posts: 'Beiträge', 'Posts (OPs)': 'Beiträge (OPs)', 'Kind 1 replies': 'Kind-1-Antworten', - 'Comments': 'Kommentare', + Comments: 'Kommentare', 'Replies & comments': 'Antworten & Kommentare', Articles: 'Artikel', Highlights: 'Highlights', + 'A note from': 'A note from', Polls: 'Umfragen', 'Voice Posts': 'Sprachbeiträge', 'Photo Posts': 'Fotobeiträge', 'Video Posts': 'Videobeiträge', 'Select All': 'Alle auswählen', 'Clear All': 'Alle löschen', - 'Add {{count}} Selected': '{{count}} Ausgewählte hinzufügen', - 'Adding...': 'Hinzufügen...', - 'Added {{count}} relay(s)': '{{count}} Relay(s) hinzugefügt', 'Set as default filter': 'Als Standardfilter festlegen', Apply: 'Anwenden', Reset: 'Zurücksetzen', @@ -571,6 +670,13 @@ export default { 'boosted your note': 'hat Ihre Notiz geboostet', 'zapped your note': 'hat Ihre Notiz gezappt', 'zapped you': 'hat Sie gezappt', + zapped: 'zapped', + 'Invalid zap receipt': 'Invalid zap receipt', + 'Zapped note': 'Zapped note', + 'Zapped profile': 'Zapped profile', + 'Zap reply threshold': 'Zap reply threshold', + 'Zaps above this amount will appear as replies in threads': + 'Zaps above this amount will appear as replies in threads', 'Mark as read': 'Als gelesen markieren', Report: 'Melden', 'Successfully report': 'Erfolgreich gemeldet', @@ -586,7 +692,6 @@ export default { 'Zusätzliche Informationen für jede Benachrichtigung anzeigen', 'See more notifications at a glance': 'Mehr Benachrichtigungen auf einen Blick sehen', Detailed: 'Detailliert', - Compact: 'Kompakt', 'Submit Relay': 'Relay einreichen', Homepage: 'Homepage', 'Proof of Work (difficulty {{minPow}})': 'Arbeitsnachweis (Schwierigkeit {{minPow}})', @@ -640,7 +745,25 @@ export default { 'Set up your wallet to send and receive sats!': 'Richte deine Wallet ein, um Sats zu senden und zu empfangen!', 'Set up': 'Einrichten', - + 'nested events': 'nested events', + 'Loading RSS feeds...': 'Loading RSS feeds...', + 'No RSS feed items available': 'No RSS feed items available', + 'Show or hide the RSS page and sidebar entry': 'Show or hide the RSS page and sidebar entry', + 'Refreshing feeds...': 'Refreshing feeds...', + 'All feeds': 'All feeds', + 'All time': 'All time', + 'Last hour': 'Last hour', + 'Last day': 'Last day', + 'Last week': 'Last week', + 'Last month': 'Last month', + 'No items match your filters': 'No items match your filters', + 'Search...': 'Search...', + '{{count}} feeds': '{{count}} feeds', + 'Toggle filters': 'Toggle filters', + 'Showing {{filtered}} of {{total}} items': 'Showing {{filtered}} of {{total}} items', + Full: 'Full', + Compact: 'Kompakt', + Expand: 'Expand', 'help.title': 'Hilfe', 'help.tabShortcuts': 'Tastenkürzel', 'help.tabOverview': 'App-Übersicht', @@ -665,31 +788,14 @@ export default { 'shortcuts.closeOverlays': 'Dialoge, Menüs und Such-Dropdown schließen', 'shortcuts.scrollWhenFocused': 'Den fokussierten scrollbaren Bereich scrollen', 'shortcuts.browserBack': 'Zurück im Browser (Verlauf)', - - spellPickerSectionYours: 'Deine Zaubersprüche', - 'Failed to remove spell from local storage': - 'Zauberspruch konnte lokal nicht entfernt werden', - - Spells: 'Zaubersprüche', - Tags: 'Tags', - Close: 'Schließen', - 'Back to spell list': 'Zurück zur Zauberspruch-Liste', - 'Create a Spell': 'Zauberspruch anlegen', 'No spells yet. Create one with the button above.': 'Noch keine Zaubersprüche. Lege mit dem Button oben einen an.', 'Loading spells from your relays…': 'Zaubersprüche werden von deinen Relays geladen…', + 'Could not run this spell. Check that it has a valid REQ/COUNT command, or add write relays in settings.': + 'Zauberspruch konnte nicht ausgeführt werden. Prüfe REQ/COUNT oder füge Schreib-Relays (Outbox) in den Einstellungen hinzu.', 'Select a spell…': 'Zauberspruch wählen…', 'Spells from follows': 'Von Leuten, denen du folgst ({{count}})', 'Other spells': 'Weitere Zaubersprüche ({{count}})', - 'View definition': 'Definition anzeigen', - 'Add to favorites': 'Zu Favoriten hinzufügen', - 'Remove from favorites': 'Aus Favoriten entfernen', - 'COUNT spells show a number, not a feed.': - 'COUNT-Zaubersprüche zeigen eine Zahl, keinen Feed.', - 'Log in to run this spell (it uses $me or $contacts).': - 'Zum Ausführen anmelden (verwendet $me oder $contacts).', - 'Could not run this spell. Check that it has a valid REQ/COUNT command, or add write relays in settings.': - 'Zauberspruch konnte nicht ausgeführt werden. Prüfe REQ/COUNT oder füge Schreib-Relays (Outbox) in den Einstellungen hinzu.', 'Select a spell to view its feed.': 'Wähle einen Zauberspruch, um den Feed zu sehen.', 'Add another row': 'Weitere Zeile hinzufügen', 'Remove this row': 'Diese Zeile entfernen', @@ -704,14 +810,6 @@ export default { topic: 'Thema', 'Spell form fields': 'Zauberspruch-Formularfelder', 'Counting matching events…': 'Zähle passende Events…', - 'COUNT spell result explanation': - 'Verschiedene Events, die zum Filter passen (von den Relays des Zaubers und Standard-Schreib-Relays zusammengeführt, Duplikate entfernt). Relays liefern höchstens so viele wie im Limit steht.', - 'COUNT spell may be capped by limit': - 'Die Zahl kann deinem Limit entsprechen — es könnte noch mehr passende Events geben.', - 'Spell count failed. Check relays or try again.': - 'Zählung fehlgeschlagen. Relays prüfen oder erneut versuchen.', - 'Spell definition': 'Zauberspruch-Definition', - 'Spell published': 'Zauberspruch veröffentlicht', 'Edit spell': 'Zauberspruch bearbeiten', 'Clone spell': 'Zauberspruch klonen', 'Spell cloned': 'Zauberspruch geklont', @@ -725,45 +823,16 @@ export default { 'Mindestens ein Relay ist fehlgeschlagen oder hat einen Fehler gemeldet. Du kannst die Relay-Liste im Zauber anpassen und erneut speichern.', 'COUNT spell total distinct explanation': 'Verschiedene passende Event-IDs über alle erfolgreich antwortenden Relays (Duplikate zwischen Relays entfernt). Jedes Relay liefert höchstens so viele wie im Limit steht.', - 'Spells are saved relay filters (NIP-A7). Fill in the filter fields below. Use $me for your pubkey and $contacts for your follow list when executing.': - 'Zaubersprüche sind gespeicherte Relay-Filter (NIP-A7). Fülle die Felder unten. $me = dein Pubkey, $contacts = deine Follow-Liste bei der Ausführung.', - Command: 'Befehl', - 'REQ returns a feed; COUNT returns a number.': - 'REQ: scrollbarer Feed (unten Feed live oder einmaliger Abruf). COUNT: nur eine Zahl, kein Feed.', - Name: 'Name', - 'Human-readable spell name': 'Lesbarer Name des Zauberspruchs', - 'Description (content)': 'Beschreibung (Inhalt)', - 'Plain text description of the query': 'Klartext-Beschreibung der Abfrage', - Kinds: 'Kinds', - 'Comma-separated kind numbers (e.g. 1 for notes).': - 'Kind-Nummern, durch Komma getrennt (z. B. 1 für Notizen).', - Authors: 'Autoren', - '$me = your pubkey, $contacts = your follow list. Comma-separated.': - '$me = dein Pubkey, $contacts = deine Follow-Liste. Komma-getrennt.', - 'Event IDs (ids)': 'Event-IDs (ids)', - 'Comma-separated event ids': 'Event-IDs, komma-getrennt', - Limit: 'Limit', - Since: 'Seit', - 'Relative: 7d, 24h, 1w, 1mo, 1y. Or Unix timestamp.': - 'Relativ: 7d, 24h, 1w, 1mo, 1y. Oder Unix-Zeitstempel.', - Until: 'Bis', - Optional: 'Optional', - 'Search (NIP-50)': 'Suche (NIP-50)', - 'Full-text search query': 'Volltextsuchanfrage', 'Leave empty to use your write relays.': 'Leer lassen, um deine Schreib-Relays (Outbox) zu verwenden.', - 'Topics (t tags for categorization)': 'Themen (t-Tags zur Kategorisierung)', - 'Comma-separated topics': 'Themen, komma-getrennt', - Mode: 'Modus', - Feed: 'Feed', - 'Favorites Feed': 'Favoriten-Feed', - 'Pinned note': 'Angehefteter Beitrag', - Fetch: 'Abrufen', - 'Fetch once, then stop.': 'Einmal abrufen, dann stoppen.', - 'Live feed; keeps updating.': 'Live-Feed; wird fortgesetzt aktualisiert.', - 'Saving…': 'Speichern…', - Clear: 'Leeren', - + 'COUNT spell result explanation': + 'Verschiedene Events, die zum Filter passen (von den Relays des Zaubers und Standard-Schreib-Relays zusammengeführt, Duplikate entfernt). Relays liefern höchstens so viele wie im Limit steht.', + 'COUNT spell may be capped by limit': + 'Die Zahl kann deinem Limit entsprechen — es könnte noch mehr passende Events geben.', + 'Spell count failed. Check relays or try again.': + 'Zählung fehlgeschlagen. Relays prüfen oder erneut versuchen.', + 'REQ returns a feed; COUNT returns a number.': + 'REQ: scrollbarer Feed (unten Feed live oder einmaliger Abruf). COUNT: nur eine Zahl, kein Feed.', listImportManualLabel: 'Aus Event vorausfüllen', listImportFromEventHint: 'Unterstützte Tags werden ins Formular übernommen (e, p, t, relay, r, a wo möglich). Nicht leerer Inhalt wird übersprungen; verschlüsselte private Einträge werden nicht gelesen. Es können Hinweise zu nicht abgebildeten Tags erscheinen.', @@ -800,9 +869,569 @@ export default { 'Tag filter letter': 'Tag-Buchstabe', 'Filter value': 'Wert', 'Add tag filter': 'Tag-Filter hinzufügen', - + spellPickerSectionYours: 'Deine Zaubersprüche', + 'Failed to remove spell from local storage': 'Zauberspruch konnte lokal nicht entfernt werden', + Spells: 'Zaubersprüche', 'doublePane.secondaryEmpty': 'Öffne eine Notiz, ein Profil oder Einstellungen, um sie hier anzuzeigen.', - 'doublePane.secondaryEmptyHint': 'Feed und Hauptseiten bleiben links.' + 'doublePane.secondaryEmptyHint': 'Feed und Hauptseiten bleiben links.', + '(empty)': '(empty)', + '12-hour (AM/PM)': '12-hour (AM/PM)', + '24-hour': '24-hour', + 'A new version is available': 'A new version is available', + 'A short description of the article content': 'A short description of the article content', + AM: 'AM', + 'Access via': 'Access via', + 'Accessed On': 'Accessed On', + 'Accessed on': 'Accessed on', + 'Add RSS feed URLs to subscribe to. If no feeds are configured, the default feed will be used.': + 'Add RSS feed URLs to subscribe to. If no feeds are configured, the default feed will be used.', + 'Add a relay to block': 'Add a relay to block', + 'Add at least one invitee': 'Add at least one invitee', + 'Add client identifier': 'Add client identifier', + 'Add expiration tags by default': 'Add expiration tags by default', + 'Add quiet tags by default': 'Add quiet tags by default', + 'Add recipients using nostr: mentions (e.g., nostr:npub1...) or the recipient selector above': + 'Add recipients using nostr: mentions (e.g., nostr:npub1...) or the recipient selector above', + 'Add the source (where this text is from)': 'Add the source (where this text is from)', + 'Add to favorites': 'Zu Favoriten hinzufügen', + 'Add {{count}} Selected': '{{count}} Ausgewählte hinzufügen', + 'Added at': 'Added at', + 'Added {{count}} relay(s)': '{{count}} Relay(s) hinzugefügt', + 'Adding...': 'Hinzufügen...', + 'Adding…': 'Adding…', + 'Advanced Options': 'Advanced Options', + 'All Topics': 'All Topics', + 'All favorite relays': 'All favorite relays', + 'All feeds from OPML file are already added': 'All feeds from OPML file are already added', + 'All items deleted successfully': 'All items deleted successfully', + 'Already blocked': 'Already blocked', + 'Already saved': 'Already saved', + 'Application Recommendations': 'Application Recommendations', + 'Are you sure you want to clear all cached data? This will delete all stored events and settings from your browser.': + 'Are you sure you want to clear all cached data? This will delete all stored events and settings from your browser.', + 'Are you sure you want to delete all items from this store?': + 'Are you sure you want to delete all items from this store?', + 'Are you sure you want to unmute this user? This will restore the follow button.': + 'Are you sure you want to unmute this user? This will restore the follow button.', + "Are you sure you want to unregister the service worker? This will clear this app's service worker caches and you will need to reload the page.": + "Are you sure you want to unregister the service worker? This will clear this app's service worker caches and you will need to reload the page.", + 'Article exported as AsciiDoc': 'Article exported as AsciiDoc', + 'Article exported as Markdown': 'Article exported as Markdown', + 'Article title (optional)': 'Article title (optional)', + Audio: 'Audio', + Author: 'Author', + 'Author is required for reading groups': 'Author is required for reading groups', + 'Author name (optional)': 'Author name (optional)', + Authors: 'Autoren', + 'Block Relay': 'Block Relay', + 'Blocked Relays': 'Blocked Relays', + 'Blocking...': 'Blocking...', + Blossom: 'Blossom', + Book: 'Book', + 'Brief description of the event': 'Brief description of the event', + 'Brief summary (optional)': 'Brief summary (optional)', + 'Brief summary of the article (optional)': 'Brief summary of the article (optional)', + 'Browse Cache': 'Browse Cache', + 'C-Tag': 'C-Tag', + 'Cache Relays': 'Cache Relays', + 'Cache cleared successfully': 'Cache cleared successfully', + 'Cache refreshed successfully': 'Cache refreshed successfully', + 'Cache relays are used to store and retrieve events locally. These relays are merged with your inbox and outbox relays.': + 'Cache relays are used to store and retrieve events locally. These relays are merged with your inbox and outbox relays.', + 'Cache relays must be local network URLs only (e.g., ws://localhost:4869 or ws://127.0.0.1:4869)': + 'Cache relays must be local network URLs only (e.g., ws://localhost:4869 or ws://127.0.0.1:4869)', + 'Cache relays saved': 'Cache relays saved', + Cancelled: 'Cancelled', + Chapter: 'Chapter', + 'Chapter Title': 'Chapter Title', + 'Chapter title (optional)': 'Chapter title (optional)', + Citation: 'Citation', + 'Citation title (optional)': 'Citation title (optional)', + 'Clean up duplicate replaceable events? This will keep only the newest version of each event.': + 'Clean up duplicate replaceable events? This will keep only the newest version of each event.', + 'Cleaned up {{deleted}} duplicate entries, kept {{kept}}': + 'Cleaned up {{deleted}} duplicate entries, kept {{kept}}', + 'Cleaned up {{deleted}} duplicate entries, kept {{kept}} (total items after cleanup: {{total}})': + 'Cleaned up {{deleted}} duplicate entries, kept {{kept}} (total items after cleanup: {{total}})', + 'Cleanup Duplicates': 'Cleanup Duplicates', + Clear: 'Leeren', + 'Clear Cache': 'Clear Cache', + 'Clear Service Worker': 'Clear Service Worker', + 'Clear cached data stored in your browser, including IndexedDB events, localStorage settings, and service worker caches.': + 'Clear cached data stored in your browser, including IndexedDB events, localStorage settings, and service worker caches.', + 'Click update to get the latest features and improvements': + 'Click update to get the latest features and improvements', + Close: 'Schließen', + 'Comma or space-separated topics (will be added as t-tags)': + 'Comma or space-separated topics (will be added as t-tags)', + Command: 'Befehl', + Configure: 'Configure', + 'Connect Wallet': 'Connect Wallet', + 'Console Logs': 'Console Logs', + 'Console logs cleared': 'Console logs cleared', + 'Content is required': 'Content is required', + 'Content must be 5000 characters or less': 'Content must be 5000 characters or less', + Controversial: 'Controversial', + 'Copied!': 'Copied!', + 'Copy to clipboard': 'Copy to clipboard', + 'Create Article': 'Create Article', + 'Create Citation': 'Create Citation', + 'Create Highlight': 'Create Highlight', + 'Create New Thread': 'Create New Thread', + 'Create Poll': 'Create Poll', + 'Create Thread': 'Create Thread', + 'Create a Spell': 'Zauberspruch anlegen', + 'Creating...': 'Creating...', + 'D-Tag': 'D-Tag', + 'D-Tag is required for articles': 'D-Tag is required for articles', + DOI: 'DOI', + 'Date-based (all-day)': 'Date-based (all-day)', + 'Default expiration (months)': 'Default expiration (months)', + 'Default quiet period (days)': 'Default quiet period (days)', + 'Delete All': 'Delete All', + 'Delete item': 'Delete item', + 'Deleted {{count}} event(s)': 'Deleted {{count}} event(s)', + 'Deletion request sent': 'Deletion request sent', + 'Description (content)': 'Beschreibung (Inhalt)', + 'Digital Object Identifier (optional)': 'Digital Object Identifier (optional)', + 'Disable word wrap': 'Disable word wrap', + 'Discovered Relays': 'Discovered Relays', + 'Discovering relays...': 'Discovering relays...', + Discussion: 'Discussion', + Discussions: 'Discussions', + Downvote: 'Downvote', + 'Edited by': 'Edited by', + Editor: 'Editor', + 'Editor name (optional)': 'Editor name (optional)', + 'Enable word wrap': 'Enable word wrap', + 'End date': 'End date', + 'End date must be after start date': 'End date must be after start date', + 'Enter a Nostr event identifier (nevent, naddr, note, or hex ID) OR a web URL (https://). Not both.': + 'Enter a Nostr event identifier (nevent, naddr, note, or hex ID) OR a web URL (https://). Not both.', + 'Enter a descriptive title for your thread': 'Enter a descriptive title for your thread', + 'Enter the author name': 'Enter the author name', + 'Enter the book title': 'Enter the book title', + 'Enter the specific text you want to highlight in the main content area above': + 'Enter the specific text you want to highlight in the main content area above', + 'Event IDs (ids)': 'Event-IDs (ids)', + 'Event appears to be invalid or corrupted': 'Event appears to be invalid or corrupted', + 'Event has no value data': 'Event has no value data', + 'Event is missing required fields: {{fields}}': 'Event is missing required fields: {{fields}}', + 'Event type': 'Event type', + 'Expiration Tags': 'Expiration Tags', + 'Export OPML': 'Export OPML', + 'Export as AsciiDoc': 'Export as AsciiDoc', + 'Export as Markdown': 'Export as Markdown', + 'External Citation': 'External Citation', + 'External Citation Settings': 'External Citation Settings', + 'Failed to add relay. Please try again.': 'Failed to add relay. Please try again.', + 'Failed to add relays': 'Failed to add relays', + 'Failed to block relay. Please try again.': 'Failed to block relay. Please try again.', + 'Failed to cleanup duplicates': 'Failed to cleanup duplicates', + 'Failed to clear cache': 'Failed to clear cache', + 'Failed to copy': 'Failed to copy', + 'Failed to create relay set. Please try again.': + 'Failed to create relay set. Please try again.', + 'Failed to create thread': 'Failed to create thread', + 'Failed to create thread. Please try a different relay.': + 'Failed to create thread. Please try a different relay.', + 'Failed to delete all items': 'Failed to delete all items', + 'Failed to delete item': 'Failed to delete item', + 'Failed to discover relays': 'Failed to discover relays', + 'Failed to export OPML file': 'Failed to export OPML file', + 'Failed to export article': 'Failed to export article', + 'Failed to import OPML file: {{error}}': 'Failed to import OPML file: {{error}}', + 'Failed to load RSS feeds': 'Failed to load RSS feeds', + 'Failed to load store items': 'Failed to load store items', + 'Failed to mute user privately': 'Failed to mute user privately', + 'Failed to mute user publicly': 'Failed to mute user publicly', + 'Failed to pin note': 'Failed to pin note', + 'Failed to publish post': 'Failed to publish post', + 'Failed to publish reply': 'Failed to publish reply', + 'Failed to publish thread': 'Failed to publish thread', + 'Failed to publish to some relays. Please try again or use different relays.': + 'Failed to publish to some relays. Please try again or use different relays.', + 'Failed to save RSS feeds': 'Failed to save RSS feeds', + 'Failed to save cache relays': 'Failed to save cache relays', + 'Failed to save relay list': 'Failed to save relay list', + 'Failed to unregister service worker: ': 'Failed to unregister service worker: ', + 'Failed to unsubscribe from topic': 'Failed to unsubscribe from topic', + Favorite: 'Favorite', + Fetch: 'Abrufen', + 'Fetch once, then stop.': 'Einmal abrufen, dann stoppen.', + 'Filter by': 'Filter by', + 'Flat View': 'Flat View', + 'Font size': 'Font size', + 'Full Quote/Context': 'Full Quote/Context', + 'Full-text search query': 'Volltextsuchanfrage', + Geohash: 'Geohash', + 'Geohash (optional)': 'Geohash (optional)', + 'Global quiet mode': 'Global quiet mode', + 'Group discussions by topic': 'Group discussions by topic', + 'Grouped View': 'Grouped View', + Groups: 'Groups', + 'Handler {{index}}': 'Handler {{index}}', + 'Hardcopy Citation': 'Hardcopy Citation', + 'Hardcopy Citation Settings': 'Hardcopy Citation Settings', + Hide: 'Hide', + 'Hide interactions on all posts': 'Hide interactions on all posts', + 'Hide interactions on posts with quiet tags': 'Hide interactions on posts with quiet tags', + 'High PoW': 'High PoW', + 'Higher values make your thread harder to mine but more unique.': + 'Higher values make your thread harder to mine but more unique.', + Highlight: 'Highlight', + 'Highlight Settings': 'Highlight Settings', + 'How to Create a Highlight (NIP-84)': 'How to Create a Highlight (NIP-84)', + 'Human-readable spell name': 'Lesbarer Name des Zauberspruchs', + 'Image URL': 'Image URL', + 'Import OPML': 'Import OPML', + 'Imported {{count}} feed(s) from OPML file': 'Imported {{count}} feed(s) from OPML file', + 'In-Browser Cache': 'In-Browser Cache', + Insert: 'Insert', + 'Insert URL into your post and publish to Nostr GIF library (NIP-94).': + 'Insert URL into your post and publish to Nostr GIF library (NIP-94).', + 'Insert event or address': 'Insert event or address', + 'Insert mention': 'Insert mention', + 'Internal Citation': 'Internal Citation', + 'Internal Citation Settings': 'Internal Citation Settings', + 'Invalid Event': 'Invalid Event', + 'Invalid Lightning Address': 'Invalid Lightning Address', + 'Invalid Lightning Address. Please enter a valid Lightning Address or LNURL.': + 'Invalid Lightning Address. Please enter a valid Lightning Address or LNURL.', + 'Invalid URL': 'Invalid URL', + 'Invalid content JSON': 'Invalid content JSON', + 'Invalid relay URL': 'Invalid relay URL', + 'Invalid source. Please enter a note ID, nevent, naddr, hex ID, or URL.': + 'Invalid source. Please enter a note ID, nevent, naddr, hex ID, or URL.', + 'Item deleted successfully': 'Item deleted successfully', + JSON: 'JSON', + 'Join link': 'Join link', + 'Journal/Publication name (optional)': 'Journal/Publication name (optional)', + Json: 'JSON', + Kinds: 'Kinds', + 'Language Model': 'Language Model', + Large: 'Large', + 'Leave empty for HiveTalk, or paste Zoom / Teams / other link': + 'Leave empty for HiveTalk, or paste Zoom / Teams / other link', + 'Lightning payment failed': 'Lightning payment failed', + Limit: 'Limit', + 'Live feed; keeps updating.': 'Live-Feed; wird fortgesetzt aktualisiert.', + 'Loading more...': 'Loading more...', + 'Loading relays...': 'Loading relays...', + 'Location (optional)': 'Location (optional)', + 'Log in to run this spell (it uses $me or $contacts).': + 'Zum Ausführen anmelden (verwendet $me oder $contacts).', + 'Login failed': 'Login failed', + 'Login to configure RSS feeds': 'Login to configure RSS feeds', + 'Long-form Article': 'Long-form Article', + 'Mailbox relays saved': 'Mailbox relays saved', + 'Mark as NSFW': 'Mark as NSFW', + 'Maximum {{max}} invitees': 'Maximum {{max}} invitees', + 'Maximum {{max}} invitees allowed': 'Maximum {{max}} invitees allowed', + Medium: 'Medium', + Mode: 'Modus', + 'Most Zapped': 'Most Zapped', + 'Move to top': 'Move to top', + 'Multiple choice': 'Multiple choice', + 'Mute failed': 'Mute failed', + NSFW: 'NSFW', + Name: 'Name', + 'Name of the language model used': 'Name of the language model used', + 'New External Citation': 'New External Citation', + 'New Hardcopy Citation': 'New Hardcopy Citation', + 'New Highlight': 'New Highlight', + 'New Internal Citation': 'New Internal Citation', + 'New Long-form Article': 'New Long-form Article', + 'New Poll': 'New Poll', + 'New Prompt Citation': 'New Prompt Citation', + 'New Public Message': 'New Public Message', + 'New Wiki Article': 'New Wiki Article', + 'New Wiki Article (Markdown)': 'New Wiki Article (Markdown)', + Newest: 'Newest', + 'No JSON available': 'No JSON available', + 'No RSS feeds found in OPML file': 'No RSS feeds found in OPML file', + 'No cached data found.': 'No cached data found.', + 'No console logs captured yet': 'No console logs captured yet', + 'No events found': 'No events found', + 'No feeds configured. Default feed will be used.': + 'No feeds configured. Default feed will be used.', + 'No feeds to export': 'No feeds to export', + 'No groups available. Join some groups first.': 'No groups available. Join some groups first.', + 'No items in this store.': 'No items in this store.', + 'No items match your search.': 'No items match your search.', + 'No logs match the current filters': 'No logs match the current filters', + 'No posts found': 'No posts found', + 'No posts match your search': 'No posts match your search', + 'No relays available. Please configure relays in settings.': + 'No relays available. Please configure relays in settings.', + 'No service workers or caches found for this app': + 'No service workers or caches found for this app', + 'No users found': 'No users found', + 'No valid RSS feed URLs found in OPML file': 'No valid RSS feed URLs found in OPML file', + 'Note pinned': 'Note pinned', + 'Note unpinned': 'Note unpinned', + Oldest: 'Oldest', + 'Open Timestamp': 'Open Timestamp', + 'Opens in a new tab. Copy a GIF URL there, then paste below. If this picker closed, click “Insert GIF” again to paste.': + 'Opens in a new tab. Copy a GIF URL there, then paste below. If this picker closed, click “Insert GIF” again to paste.', + Option: 'Option', + Optional: 'Optional', + 'Optional image for the event': 'Optional image for the event', + 'Optionally, add the full quote/context to show your highlight within it': + 'Optionally, add the full quote/context to show your highlight within it', + PM: 'PM', + 'Page Range': 'Page Range', + Pages: 'Pages', + 'Paste URL of a GIF': 'Paste URL of a GIF', + 'Paste the entire original passage that contains your highlight': + 'Paste the entire original passage that contains your highlight', + Photo: 'Photo', + 'Picture Note': 'Picture Note', + 'Pin note': 'Pin note', + 'Plain text description of the query': 'Klartext-Beschreibung der Abfrage', + 'Please login to view bookmarks': 'Please login to view bookmarks', + 'Please select a group': 'Please select a group', + 'Please select at least one relay': 'Please select at least one relay', + 'Please set a start date': 'Please set a start date', + 'Poll with no options': 'Poll with no options', + 'Post published to some relays': 'Post published to some relays', + 'Posts will automatically include expiration tags': + 'Posts will automatically include expiration tags', + 'Posts will automatically include quiet tags': 'Posts will automatically include quiet tags', + 'Posts will be quiet for this many days': 'Posts will be quiet for this many days', + 'Posts will expire after this many months': 'Posts will expire after this many months', + 'Processing...': 'Processing...', + 'Profile event not available': 'Profile event not available', + 'Prompt Citation': 'Prompt Citation', + 'Prompt Citation Settings': 'Prompt Citation Settings', + 'Prompt Conversation Script': 'Prompt Conversation Script', + 'Proof of Work': 'Proof of Work', + 'Publish to Relays': 'Publish to Relays', + 'Published By': 'Published By', + 'Published In': 'Published In', + 'Published On': 'Published On', + 'Published in': 'Published in', + 'Published on': 'Published on', + 'Publisher name (optional)': 'Publisher name (optional)', + 'Quiet Tags': 'Quiet Tags', + 'RSS Feed': 'RSS Feed', + 'RSS Feed Settings': 'RSS Feed Settings', + 'RSS Feeds': 'RSS Feeds', + 'RSS feeds exported to OPML file': 'RSS feeds exported to OPML file', + 'RSS feeds saved': 'RSS feeds saved', + 'Rate limited. Please wait before trying again.': + 'Rate limited. Please wait before trying again.', + 'Reaction published': 'Reaction published', + 'Reaction removed': 'Reaction removed', + 'Read full article': 'Read full article', + 'Reading group entry': 'Reading group entry', + 'Readings Options': 'Readings Options', + Recipients: 'Recipients', + 'Recipients detected from your message:': 'Recipients detected from your message:', + 'Recommended Relays': 'Recommended Relays', + 'Recommended applications for handling events of kind {{kind}}': + 'Recommended applications for handling events of kind {{kind}}', + 'Reference to the cited Nostr event in kind:pubkey:hex format': + 'Reference to the cited Nostr event in kind:pubkey:hex format', + 'Refresh Cache': 'Refresh Cache', + 'Refreshing posts...': 'Refreshing posts...', + 'Relative: 7d, 24h, 1w, 1mo, 1y. Or Unix timestamp.': + 'Relativ: 7d, 24h, 1w, 1mo, 1y. Oder Unix-Zeitstempel.', + Relay: 'Relay', + 'Relay Hint': 'Relay Hint', + 'Relay URL (optional)': 'Relay URL (optional)', + 'Relay blocked successfully': 'Relay blocked successfully', + 'Relay requires authentication for write access. Please try a different relay or contact the relay operator.': + 'Relay requires authentication for write access. Please try a different relay or contact the relay operator.', + 'Relay set options': 'Relay set options', + 'Remove from favorites': 'Aus Favoriten entfernen', + Rendered: 'Rendered', + 'Reply published': 'Reply published', + 'Reply published to some relays': 'Reply published to some relays', + 'Reply to Public Message': 'Reply to Public Message', + 'Republish to all active relays': 'Republish to all active relays', + 'Republish to all available relays': 'Republish to all available relays', + 'Required: start (or start date), invitees. Optional: title, end, location, summary, topics, image.': + 'Required: start (or start date), invitees. Optional: title, end, location, summary, topics, image.', + 'Required: start time or start date. Optional: title, end, location, summary, topics, image.': + 'Required: start time or start date. Optional: title, end, location, summary, topics, image.', + 'Required: start time, invitees. Join link defaults to HiveTalk. Optional: title, end, summary, topics, image.': + 'Required: start time, invitees. Join link defaults to HiveTalk. Optional: title, end, summary, topics, image.', + 'Required: start time. Join link defaults to HiveTalk. Optional: title, end, summary, topics, image.': + 'Required: start time. Join link defaults to HiveTalk. Optional: title, end, summary, topics, image.', + 'Respect quiet tags': 'Respect quiet tags', + 'Search (NIP-50)': 'Suche (NIP-50)', + 'Search by name or npub…': 'Search by name or npub…', + 'Search calendar, publications, wiki…': 'Search calendar, publications, wiki…', + 'Search for user…': 'Search for user…', + 'Search items...': 'Search items...', + 'Search logs...': 'Search logs...', + 'Search notes, threads, long-form…': 'Search notes, threads, long-form…', + 'Search on GifBuddy': 'Search on GifBuddy', + 'Search posts...': 'Search posts...', + 'Search threads by title, content, tags, npub, author...': + 'Search threads by title, content, tags, npub, author...', + 'Searching all available relays...': 'Searching all available relays...', + 'Searching…': 'Searching…', + 'See reference': 'See reference', + 'Select Group': 'Select Group', + 'Select Media Type': 'Select Media Type', + 'Select group...': 'Select group...', + 'Select relays': 'Select relays', + 'Select the group where you want to create this discussion.': + 'Select the group where you want to create this discussion.', + 'Select topic...': 'Select topic...', + 'Selected text': 'Selected text', + 'Send Public Message': 'Send Public Message', + 'Send a Lightning payment to this user': 'Send a Lightning payment to this user', + 'Service worker caches cleared. Please reload the page.': + 'Service worker caches cleared. Please reload the page.', + 'Service worker unregistered and caches cleared. Please reload the page.': + 'Service worker unregistered and caches cleared. Please reload the page.', + 'Service worker unregistered. Please reload the page.': + 'Service worker unregistered. Please reload the page.', + 'Share your thoughts, ask questions, or start a discussion...': + 'Share your thoughts, ask questions, or start a discussion...', + 'Short Video Note': 'Short Video Note', + 'Show RSS Feed': 'Show RSS Feed', + 'Show all discussions in a single list': 'Show all discussions in a single list', + 'Show less': 'Show less', + Since: 'Seit', + Small: 'Small', + 'Some relays have temporarily disabled writes.': + 'Some relays have temporarily disabled writes.', + Source: 'Source', + 'Spell definition': 'Zauberspruch-Definition', + 'Spell published': 'Zauberspruch veröffentlicht', + 'Start date': 'Start date', + 'Start typing to see a preview...': 'Start typing to see a preview...', + 'Subject (Book Title)': 'Subject (Book Title)', + 'Subject (book title) is required for reading groups': + 'Subject (book title) is required for reading groups', + 'Subject / Topics': 'Subject / Topics', + Subscribe: 'Subscribe', + Subscribed: 'Subscribed', + 'Subscribed to topic': 'Subscribed to topic', + 'Subscribed to topic (local)': 'Subscribed to topic (local)', + 'Subscribing...': 'Subscribing...', + Summary: 'Summary', + 'Supported Event Types': 'Supported Event Types', + 'Take a note': 'Take a note', + 'The full prompt conversation (optional)': 'The full prompt conversation (optional)', + 'The main editor above should contain only the text you want to highlight. This field should contain the full quote or paragraph for context.': + 'The main editor above should contain only the text you want to highlight. This field should contain the full quote or paragraph for context.', + 'These relays were found from your NIP-05 identifier and signer. You can add them to your relay list.': + 'These relays were found from your NIP-05 identifier and signer. You can add them to your relay list.', + 'This file could be either audio or video. Please select the correct type:': + 'This file could be either audio or video. Please select the correct type:', + 'This store does not contain replaceable events': + 'This store does not contain replaceable events', + 'This will add additional tags for author and subject to help organize reading group discussions.': + 'This will add additional tags for author and subject to help organize reading group discussions.', + 'Thread Content': 'Thread Content', + 'Thread Title': 'Thread Title', + 'Thread creation timed out. Please try again.': 'Thread creation timed out. Please try again.', + 'Thread published': 'Thread published', + 'Threads are organized by topics. Choose a topic that best fits your discussion.': + 'Threads are organized by topics. Choose a topic that best fits your discussion.', + 'Time-based': 'Time-based', + 'Title is required': 'Title is required', + 'Title must be 100 characters or less': 'Title must be 100 characters or less', + 'To translate notes and other content, use your browser’s built-in translation. For example: right-click the page and choose “Translate to…”, or use the translate icon in the address bar.': + 'To translate notes and other content, use your browser’s built-in translation. For example: right-click the page and choose “Translate to…”, or use the translate icon in the address bar.', + Top: 'Top', + Topic: 'Topic', + URL: 'URL', + 'URL of the article cover image (optional)': 'URL of the article cover image (optional)', + 'Unique identifier for this article (required)': + 'Unique identifier for this article (required)', + 'Unmute failed': 'Unmute failed', + 'Unpin note': 'Unpin note', + Unsubscribe: 'Unsubscribe', + 'Unsubscribed from topic': 'Unsubscribed from topic', + 'Unsubscribing...': 'Unsubscribing...', + Until: 'Bis', + Untitled: 'Untitled', + Update: 'Update', + 'Updating...': 'Updating...', + 'Upload Audio Comment': 'Upload Audio Comment', + 'Upload Audio Message': 'Upload Audio Message', + 'Upload Media': 'Upload Media', + Upvote: 'Upvote', + 'User unmuted': 'User unmuted', + 'Version number (optional)': 'Version number (optional)', + Video: 'Video', + 'Video Note': 'Video Note', + 'Video file': 'Video file', + 'View Console Logs': 'View Console Logs', + 'View JSON': 'View JSON', + 'View cached items in this store.': 'View cached items in this store.', + 'View definition': 'Definition anzeigen', + 'View details about cached data in IndexedDB stores. Click on a store to view its items.': + 'View details about cached data in IndexedDB stores. Click on a store to view its items.', + 'View on Alexandria': 'View on Alexandria', + 'View on DecentNewsroom': 'View on DecentNewsroom', + 'View on Wikistr': 'View on Wikistr', + 'View recent console logs for debugging': 'View recent console logs for debugging', + 'Voice Comment': 'Voice Comment', + 'Voice Note': 'Voice Note', + 'Voice note or audio file': 'Voice note or audio file', + Volume: 'Volume', + 'Volume number (optional)': 'Volume number (optional)', + 'Vote published': 'Vote published', + 'Vote removed': 'Vote removed', + 'Website where LLM was accessed (optional)': 'Website where LLM was accessed (optional)', + 'Wiki Article (AsciiDoc)': 'Wiki Article (AsciiDoc)', + 'Wiki Article (Markdown)': 'Wiki Article (Markdown)', + 'You can only delete your own notes': 'You can only delete your own notes', + 'You must be logged in to create a thread': 'You must be logged in to create a thread', + 'You need to add at least one media server in order to upload media files.': + 'You need to add at least one media server in order to upload media files.', + 'You need to login first': 'You need to login first', + 'Your account is blocked from posting to this relay.': + 'Your account is blocked from posting to this relay.', + Zap: 'Zap', + 'Zap failed': 'Zap failed', + created_at: 'created_at', + 'e tag of kind 1040 event (optional)': 'e tag of kind 1040 event (optional)', + 'e.g. meetup, conference': 'e.g. meetup, conference', + 'e.g., 123-145 (optional)': 'e.g., 123-145 (optional)', + 'e.g., GPT-4, Claude, etc. (required)': 'e.g., GPT-4, Claude, etc. (required)', + 'e.g., my-article-title': 'e.g., my-article-title', + entries: 'entries', + 'from Bunker': 'from Bunker', + 'from Extension': 'from Extension', + 'from NIP-05': 'from NIP-05', + general: 'general', + 'https://example.com (required)': 'https://example.com (required)', + 'https://example.com/image.jpg': 'https://example.com/image.jpg', + id: 'id', + items: 'items', + kind: 'kind', + 'kind:pubkey:hex format (required)': 'kind:pubkey:hex format (required)', + 'last updated': 'last updated', + matching: 'matching', + naddr: 'naddr', + nevent: 'nevent', + 'nevent1..., naddr1..., note1..., hex ID, or https://...': + 'nevent1..., naddr1..., note1..., hex ID, or https://...', + 'no notes found': 'no notes found', + of: 'of', + 'on note': 'on note', + optional: 'optional', + pubkey: 'pubkey', + 'sent a public message': 'sent a public message', + 'sent you a public message': 'sent you a public message', + 'sent you a public message (along with {{count}} others)': + 'sent you a public message (along with {{count}} others)', + sig: 'sig', + 'started a discussion in {{topic}}': 'started a discussion in {{topic}}', + tags: 'tags', + thread: 'thread', + threads: 'threads', + 'topic1, topic2, topic3': 'topic1, topic2, topic3', + '{{count}} relay(s) selected': '{{count}} relay(s) selected', + '🔞 NSFW 🔞': '🔞 NSFW 🔞' } } diff --git a/src/i18n/locales/en.ts b/src/i18n/locales/en.ts index 136cfd69..3cdf5c41 100644 --- a/src/i18n/locales/en.ts +++ b/src/i18n/locales/en.ts @@ -38,7 +38,8 @@ export default { 'Loading calendar events...': 'Loading calendar events...', 'No calendar events found': 'No calendar events found', 'Calendar events in the next {{count}} months': 'Calendar events in the next {{count}} months', - 'The nostr.band relay appears to be temporarily out of service. Please try again later.': 'The nostr.band relay appears to be temporarily out of service. Please try again later.', + 'The nostr.band relay appears to be temporarily out of service. Please try again later.': + 'The nostr.band relay appears to be temporarily out of service. Please try again later.', 'reply to': 'reply to', reply: 'reply', Reply: 'Reply', @@ -69,8 +70,7 @@ export default { 'Edit content and tags, then publish a new signed event.', 'Log in to publish': 'Log in to publish', 'Set when you publish': 'set when you publish', - 'id and sig are assigned when you publish': - 'id and sig are assigned when you publish', + 'id and sig are assigned when you publish': 'id and sig are assigned when you publish', 'Published to some relays only': 'Published to some relays only', 'Add field': 'Add field', 'View full profile': 'View full profile', @@ -99,8 +99,10 @@ export default { 'Copied payto address': 'Copied payto address', 'Copied to clipboard': 'Copied to clipboard', 'Copied {{label}} address': 'Copied {{label}} address', - 'Lightning payment address – copy to pay via your wallet': 'Lightning payment address – copy to pay via your wallet', - 'Payment address – copy to use in your wallet or app': 'Payment address – copy to use in your wallet or app', + 'Lightning payment address – copy to pay via your wallet': + 'Lightning payment address – copy to pay via your wallet', + 'Payment address – copy to use in your wallet or app': + 'Payment address – copy to use in your wallet or app', 'Click to open payment options': 'Click to open payment options', 'Click to copy address': 'Click to copy address', 'Open on website': 'Open on website', @@ -119,22 +121,26 @@ export default { 'Failed to publish profile': 'Failed to publish profile', 'Invalid profile JSON': 'Invalid profile JSON', 'Refresh cache': 'Refresh cache', - 'Force-refresh profile and payment info from relays': 'Force-refresh profile and payment info from relays', + 'Force-refresh profile and payment info from relays': + 'Force-refresh profile and payment info from relays', 'Profile and payment cache refreshed': 'Profile and payment cache refreshed', 'Failed to refresh cache': 'Failed to refresh cache', 'Raw payment info event': 'Raw payment info event', 'Payment info': 'Payment info', 'Edit payment info': 'Edit payment info', 'Add payment info': 'Add payment info', - 'No payment info event yet. Click "Add payment info" to create one.': 'No payment info event yet. Click "Add payment info" to create one.', + 'No payment info event yet. Click "Add payment info" to create one.': + 'No payment info event yet. Click "Add payment info" to create one.', 'Content (JSON)': 'Content (JSON)', Tags: 'Tags', - 'Tags (JSON array of arrays, e.g. [["payto","lightning","user@domain.com"]])': 'Tags (JSON array of arrays, e.g. [["payto","lightning","user@domain.com"]])', + 'Tags (JSON array of arrays, e.g. [["payto","lightning","user@domain.com"]])': + 'Tags (JSON array of arrays, e.g. [["payto","lightning","user@domain.com"]])', 'Payment info updated': 'Payment info updated', 'Failed to publish payment info': 'Failed to publish payment info', 'Invalid tags JSON': 'Invalid tags JSON', 'Payment methods': 'Payment methods', - 'NIP-A3 payto tags: type (e.g. lightning) and authority (e.g. user@domain.com).': 'NIP-A3 payto tags: type (e.g. lightning) and authority (e.g. user@domain.com).', + 'NIP-A3 payto tags: type (e.g. lightning) and authority (e.g. user@domain.com).': + 'NIP-A3 payto tags: type (e.g. lightning) and authority (e.g. user@domain.com).', 'Type (e.g. lightning)': 'Type (e.g. lightning)', 'Authority (e.g. user@domain.com)': 'Authority (e.g. user@domain.com)', 'Add payment method': 'Add payment method', @@ -142,7 +148,8 @@ export default { 'Additional content (JSON)': 'Additional content (JSON)', 'Show full event JSON': 'Show full event JSON', 'Tag list': 'Tag list', - 'Profile event tags (e.g. lud16, nip05, website). Saved with kind 0.': 'Profile event tags (e.g. lud16, nip05, website). Saved with kind 0.', + 'Profile event tags (e.g. lud16, nip05, website). Saved with kind 0.': + 'Profile event tags (e.g. lud16, nip05, website). Saved with kind 0.', 'Tag value': 'Tag value', 'Saving…': 'Saving…', 'Share with Jumble': 'Share with Jumble', @@ -269,7 +276,8 @@ export default { 'Description (optional, for search)': 'Description (optional, for search)', 'e.g. happy birthday, thumbs up': 'e.g. happy birthday, thumbs up', 'Uploading...': 'Uploading...', - 'No GIFs found. Try searching or add your own. GIFs come from Nostr kind 1063 (NIP-94) events on GIF relays.': 'No GIFs found. Try searching or add your own. GIFs come from Nostr kind 1063 (NIP-94) events on GIF relays.', + 'No GIFs found. Try searching or add your own. GIFs come from Nostr kind 1063 (NIP-94) events on GIF relays.': + 'No GIFs found. Try searching or add your own. GIFs come from Nostr kind 1063 (NIP-94) events on GIF relays.', '{{name}} is not a GIF file': '{{name}} is not a GIF file', 'R & W': 'R & W', Read: 'Read', @@ -353,9 +361,9 @@ export default { 'RTT write': 'RTT write', 'Supported NIPs (from monitor)': 'Supported NIPs (from monitor)', 'Last reported by monitor': 'Last reported by monitor', - 'Network': 'Network', - 'Type': 'Type', - 'Topics': 'Topics', + Network: 'Network', + Type: 'Type', + Topics: 'Topics', 'Open in a': 'Open in {{a}}', 'Cannot handle event of kind k': 'Cannot handle event of kind {{k}}', 'Sorry! The note cannot be found 😔': 'Sorry! The note cannot be found 😔', @@ -386,10 +394,12 @@ export default { 'Seen on': 'Seen on', 'Temporarily display this reply': 'Temporarily display this reply', 'Note not found': 'Note not found', - 'The note was not found on your relays or default relays.': 'The note was not found on your relays or default relays.', - 'Try searching author\'s relays': 'Try searching author\'s relays', + 'The note was not found on your relays or default relays.': + 'The note was not found on your relays or default relays.', + "Try searching author's relays": "Try searching author's relays", 'Searching external relays...': 'Searching external relays...', - 'This will connect to the author\'s relays and relay hints': 'This will connect to the author\'s relays and relay hints', + "This will connect to the author's relays and relay hints": + "This will connect to the author's relays and relay hints", 'Note could not be found anywhere': 'Note could not be found anywhere', 'Try external relays': 'Try external relays', 'Searching...': 'Searching...', @@ -433,22 +443,26 @@ export default { 'Add random relays to every publish': 'Random relays in publish list', 'Add random relays to every publish description': 'Adds {{n}} random public relays from the NIP-66 lively list (preferring monitors that reported a write RTT) to the publish relay list. When ON, they are selected by default; when OFF, they appear in the list but are unchecked so you can optionally include them.', - 'relayType_local': 'Local', - 'relayType_relay_list': 'Relay list', - 'relayType_client_default': 'Client default', - 'relayType_open_from': 'Current feed', - 'relayType_favorite': 'Favorite', - 'relayType_relay_set': 'Relay set', - 'relayType_contextual': 'Reply/PM', - 'relayType_randomly_selected': 'Random (optional)', + relayType_local: 'Local', + relayType_relay_list: 'Relay list', + relayType_client_default: 'Client default', + relayType_open_from: 'Current feed', + relayType_favorite: 'Favorite', + relayType_relay_set: 'Relay set', + relayType_contextual: 'Reply/PM', + relayType_randomly_selected: 'Random (optional)', 'Session relays': 'Session relays', - 'Session relays tab description': 'Relay logic for this session: working and striked preset relays, and scored random relays (used to prefer faster, proven relays when adding random relays to publish).', + 'Session relays tab description': + 'Relay logic for this session: working and striked preset relays, and scored random relays (used to prefer faster, proven relays when adding random relays to publish).', 'Session relays preset working': 'Working preset relays', - 'Session relays preset working hint': 'Preset relays (from app defaults) that have not reached 3 publish failures this session.', + 'Session relays preset working hint': + 'Preset relays (from app defaults) that have not reached 3 publish failures this session.', 'Session relays preset striked': 'Striked preset relays', - 'Session relays preset striked hint': 'Preset relays that have reached 3 publish failures this session and are skipped for the rest of the session.', + 'Session relays preset striked hint': + 'Preset relays that have reached 3 publish failures this session and are skipped for the rest of the session.', 'Session relays scored random': 'Scored random relays', - 'Session relays scored random hint': 'Relays that have accepted at least one publish this session; used to prefer faster relays when picking random relays. Sorted by average latency.', + 'Session relays scored random hint': + 'Relays that have accepted at least one publish this session; used to prefer faster relays when picking random relays. Sorted by average latency.', 'Session relays all striked': 'All striked relays (any source)', successes: 'successes', None: 'None', @@ -518,7 +532,8 @@ export default { Unfavorite: 'Unfavorite', 'Recommended relays': 'Recommended relays', 'Show recommended relays panel': 'Show recommended relays panel', - 'Display the right-side panel with recommended relays on desktop': 'Display the right-side panel with recommended relays on desktop', + 'Display the right-side panel with recommended relays on desktop': + 'Display the right-side panel with recommended relays on desktop', 'Blossom server URLs': 'Blossom server URLs', 'You need to add at least one blossom server in order to upload media files.': 'You need to add at least one blossom server in order to upload media files.', @@ -556,16 +571,20 @@ export default { 'Republish to ...': 'Republish to ...', 'All available relays': 'All available relays', 'All active relays (monitoring list)': 'All active relays (monitoring list)', - 'Successfully republish to all available relays': 'Successfully republish to all available relays', - 'Failed to republish to all available relays: {{error}}': 'Failed to republish to all available relays: {{error}}', + 'Successfully republish to all available relays': + 'Successfully republish to all available relays', + 'Failed to republish to all available relays: {{error}}': + 'Failed to republish to all available relays: {{error}}', 'Successfully republish to all active relays': 'Successfully republish to all active relays', - 'Failed to republish to all active relays: {{error}}': 'Failed to republish to all active relays: {{error}}', + 'Failed to republish to all active relays: {{error}}': + 'Failed to republish to all active relays: {{error}}', 'No active relays in monitoring list': 'No active relays in monitoring list', 'No relay accepted the event': 'No relay accepted the event', 'No relays available': 'No relays available', 'No write relays configured': 'No write relays configured', 'Relay did not accept the event': 'Relay did not accept the event', - 'Only {{count}} relay(s) accepted the event; at least 5 required for "all active relays".': 'Only {{count}} relay(s) accepted the event; at least 5 required for "all active relays".', + 'Only {{count}} relay(s) accepted the event; at least 5 required for "all active relays".': + 'Only {{count}} relay(s) accepted the event; at least 5 required for "all active relays".', 'Successfully republish to your write relays': 'Successfully republish to your write relays', 'Failed to republish to your write relays: {{error}}': 'Failed to republish to your write relays: {{error}}', @@ -608,7 +627,7 @@ export default { Posts: 'Posts', 'Posts (OPs)': 'Posts (OPs)', 'Kind 1 replies': 'Kind 1 replies', - 'Comments': 'Comments', + Comments: 'Comments', 'Replies & comments': 'Replies & comments', Articles: 'Articles', Highlights: 'Highlights', @@ -642,7 +661,8 @@ export default { 'Zapped note': 'Zapped note', 'Zapped profile': 'Zapped profile', 'Zap reply threshold': 'Zap reply threshold', - 'Zaps above this amount will appear as replies in threads': 'Zaps above this amount will appear as replies in threads', + 'Zaps above this amount will appear as replies in threads': + 'Zaps above this amount will appear as replies in threads', 'Mark as read': 'Mark as read', Report: 'Report', 'Successfully report': 'Successfully reported', @@ -722,10 +742,9 @@ export default { '{{count}} feeds': '{{count}} feeds', 'Toggle filters': 'Toggle filters', 'Showing {{filtered}} of {{total}} items': 'Showing {{filtered}} of {{total}} items', - 'Full': 'Full', - 'Compact': 'Compact', - 'Expand': 'Expand', - + Full: 'Full', + Compact: 'Compact', + Expand: 'Expand', 'help.title': 'Help', 'help.tabShortcuts': 'Keyboard shortcuts', 'help.tabOverview': 'App overview', @@ -750,7 +769,6 @@ export default { 'shortcuts.closeOverlays': 'Close dialogs, menus, and the search dropdown', 'shortcuts.scrollWhenFocused': 'Scroll the focused scrollable area', 'shortcuts.browserBack': 'Browser back (history)', - 'No spells yet. Create one with the button above.': 'No spells yet. Create one with the button above.', 'Loading spells from your relays…': 'Loading spells from your relays…', @@ -785,9 +803,7 @@ export default { 'One or more relays failed or returned an error. You can change the relay list in the spell and save again.', 'COUNT spell total distinct explanation': 'Distinct matching event IDs across all relays that responded successfully (duplicates across relays removed). Each relay only returns up to the filter limit.', - - 'Leave empty to use your write relays.': - 'Leave empty to use your write relays.', + 'Leave empty to use your write relays.': 'Leave empty to use your write relays.', 'COUNT spell result explanation': 'Distinct events returned for this filter (merged from your spell relays and default write relays, duplicates removed). Relays only return up to the filter limit.', 'COUNT spell may be capped by limit': @@ -796,7 +812,6 @@ export default { 'Could not complete the count. Check relays or try again.', 'REQ returns a feed; COUNT returns a number.': 'REQ: scrollable feed (choose live Feed or one-shot Fetch below). COUNT: a single number, no feed.', - listImportManualLabel: 'Pre-fill from event', listImportFromEventHint: 'Supported tags are merged into the form (e, p, t, relay, r, a where possible). Non-empty content is skipped; encrypted private items are not read. You may see notices for unmapped tags.', @@ -832,14 +847,568 @@ export default { 'Tag filter letter': 'Tag letter', 'Filter value': 'Value', 'Add tag filter': 'Add tag filter', - spellPickerSectionYours: 'Your spells', - 'Failed to remove spell from local storage': - 'Failed to remove spell from local storage', - + 'Failed to remove spell from local storage': 'Failed to remove spell from local storage', Spells: 'Spells', - 'doublePane.secondaryEmpty': 'Open a note, profile, or settings item to show it here.', - 'doublePane.secondaryEmptyHint': 'Your feed and primary pages stay on the left.' + 'doublePane.secondaryEmptyHint': 'Your feed and primary pages stay on the left.', + '(empty)': '—', + '12-hour (AM/PM)': '12-hour (AM/PM)', + '24-hour': '24-hour', + 'A new version is available': 'A new version is available', + 'A short description of the article content': 'A short description of the article content', + AM: 'AM', + 'Access via': 'Access via', + 'Accessed On': 'Accessed on', + 'Accessed on': 'Accessed on', + 'Add RSS feed URLs to subscribe to. If no feeds are configured, the default feed will be used.': + 'Add RSS feed URLs to subscribe to. If no feeds are configured, the default feed will be used.', + 'Add a relay to block': 'Add a relay to block', + 'Add at least one invitee': 'Add at least one invitee', + 'Add client identifier': 'Add client identifier', + 'Add expiration tags by default': 'Add expiration tags by default', + 'Add quiet tags by default': 'Add quiet tags by default', + 'Add recipients using nostr: mentions (e.g., nostr:npub1...) or the recipient selector above': + 'Add recipients using nostr: mentions (e.g., nostr:npub1...) or the recipient selector above', + 'Add the source (where this text is from)': 'Add the source (where this text is from)', + 'Add to favorites': 'Add to favorites', + 'Add {{count}} Selected': 'Add {{count}} Selected', + 'Added at': 'Added at', + 'Added {{count}} relay(s)': 'Added {{count}} relay(s)', + 'Adding...': 'Adding...', + 'Adding…': 'Adding…', + 'Advanced Options': 'Advanced Options', + 'All Topics': 'All Topics', + 'All favorite relays': 'All favorite relays', + 'All feeds from OPML file are already added': 'All feeds from OPML file are already added', + 'All items deleted successfully': 'All items deleted successfully', + 'Already blocked': 'Already blocked', + 'Already saved': 'Already saved', + 'Application Recommendations': 'Application Recommendations', + 'Are you sure you want to clear all cached data? This will delete all stored events and settings from your browser.': + 'Are you sure you want to clear all cached data? This will delete all stored events and settings from your browser.', + 'Are you sure you want to delete all items from this store?': + 'Are you sure you want to delete all items from this store?', + 'Are you sure you want to unmute this user? This will restore the follow button.': + 'Are you sure you want to unmute this user? This will restore the follow button.', + "Are you sure you want to unregister the service worker? This will clear this app's service worker caches and you will need to reload the page.": + "Are you sure you want to unregister the service worker? This will clear this app's service worker caches and you will need to reload the page.", + 'Article exported as AsciiDoc': 'Article exported as AsciiDoc', + 'Article exported as Markdown': 'Article exported as Markdown', + 'Article title (optional)': 'Article title (optional)', + Audio: 'Audio', + Author: 'Author', + 'Author is required for reading groups': 'Author is required for reading groups', + 'Author name (optional)': 'Author name (optional)', + Authors: 'Authors', + 'Block Relay': 'Block Relay', + 'Blocked Relays': 'Blocked Relays', + 'Blocking...': 'Blocking...', + Blossom: 'Blossom', + Book: 'Book', + 'Brief description of the event': 'Brief description of the event', + 'Brief summary (optional)': 'Brief summary (optional)', + 'Brief summary of the article (optional)': 'Brief summary of the article (optional)', + 'Browse Cache': 'Browse Cache', + 'C-Tag': 'C-Tag', + 'Cache Relays': 'Cache Relays', + 'Cache cleared successfully': 'Cache cleared successfully', + 'Cache refreshed successfully': 'Cache refreshed successfully', + 'Cache relays are used to store and retrieve events locally. These relays are merged with your inbox and outbox relays.': + 'Cache relays are used to store and retrieve events locally. These relays are merged with your inbox and outbox relays.', + 'Cache relays must be local network URLs only (e.g., ws://localhost:4869 or ws://127.0.0.1:4869)': + 'Cache relays must be local network URLs only (e.g., ws://localhost:4869 or ws://127.0.0.1:4869)', + 'Cache relays saved': 'Cache relays saved', + Cancelled: 'Cancelled', + Chapter: 'Chapter', + 'Chapter Title': 'Chapter Title', + 'Chapter title (optional)': 'Chapter title (optional)', + Citation: 'Citation', + 'Citation title (optional)': 'Citation title (optional)', + 'Clean up duplicate replaceable events? This will keep only the newest version of each event.': + 'Clean up duplicate replaceable events? This will keep only the newest version of each event.', + 'Cleaned up {{deleted}} duplicate entries, kept {{kept}}': + 'Cleaned up {{deleted}} duplicate entries, kept {{kept}}', + 'Cleaned up {{deleted}} duplicate entries, kept {{kept}} (total items after cleanup: {{total}})': + 'Cleaned up {{deleted}} duplicate entries, kept {{kept}} (total items after cleanup: {{total}})', + 'Cleanup Duplicates': 'Cleanup Duplicates', + Clear: 'Clear', + 'Clear Cache': 'Clear Cache', + 'Clear Service Worker': 'Clear Service Worker', + 'Clear cached data stored in your browser, including IndexedDB events, localStorage settings, and service worker caches.': + 'Clear cached data stored in your browser, including IndexedDB events, localStorage settings, and service worker caches.', + 'Click update to get the latest features and improvements': + 'Click update to get the latest features and improvements', + Close: 'Close', + 'Comma or space-separated topics (will be added as t-tags)': + 'Comma or space-separated topics (will be added as t-tags)', + Command: 'Command', + Configure: 'Configure', + 'Connect Wallet': 'Connect Wallet', + 'Console Logs': 'Console Logs', + 'Console logs cleared': 'Console logs cleared', + 'Content is required': 'Content is required', + 'Content must be 5000 characters or less': 'Content must be 5000 characters or less', + Controversial: 'Controversial', + 'Copied!': 'Copied!', + 'Copy to clipboard': 'Copy to clipboard', + 'Create Article': 'Create Article', + 'Create Citation': 'Create Citation', + 'Create Highlight': 'Create Highlight', + 'Create New Thread': 'Create New Thread', + 'Create Poll': 'Create Poll', + 'Create Thread': 'Create Thread', + 'Create a Spell': 'Create a Spell', + 'Creating...': 'Creating...', + 'D-Tag': 'D-Tag', + 'D-Tag is required for articles': 'D-Tag is required for articles', + DOI: 'DOI', + 'Date-based (all-day)': 'Date-based (all-day)', + 'Default expiration (months)': 'Default expiration (months)', + 'Default quiet period (days)': 'Default quiet period (days)', + 'Delete All': 'Delete All', + 'Delete item': 'Delete item', + 'Deleted {{count}} event(s)': 'Deleted {{count}} event(s)', + 'Deletion request sent': 'Deletion request sent', + 'Description (content)': 'Description (content)', + 'Digital Object Identifier (optional)': 'Digital Object Identifier (optional)', + 'Disable word wrap': 'Disable word wrap', + 'Discovered Relays': 'Discovered Relays', + 'Discovering relays...': 'Discovering relays...', + Discussion: 'Discussion', + Discussions: 'Discussions', + Downvote: 'Downvote', + 'Edited by': 'Edited by', + Editor: 'Editor', + 'Editor name (optional)': 'Editor name (optional)', + 'Enable word wrap': 'Enable word wrap', + 'End date': 'End date', + 'End date must be after start date': 'End date must be after start date', + 'Enter a Nostr event identifier (nevent, naddr, note, or hex ID) OR a web URL (https://). Not both.': + 'Enter a Nostr event identifier (nevent, naddr, note, or hex ID) OR a web URL (https://). Not both.', + 'Enter a descriptive title for your thread': 'Enter a descriptive title for your thread', + 'Enter the author name': 'Enter the author name', + 'Enter the book title': 'Enter the book title', + 'Enter the specific text you want to highlight in the main content area above': + 'Enter the specific text you want to highlight in the main content area above', + 'Event IDs (ids)': 'Event IDs (ids)', + 'Event appears to be invalid or corrupted': 'Event appears to be invalid or corrupted', + 'Event has no value data': 'Event has no value data', + 'Event is missing required fields: {{fields}}': 'Event is missing required fields: {{fields}}', + 'Event type': 'Event type', + 'Expiration Tags': 'Expiration Tags', + 'Export OPML': 'Export OPML', + 'Export as AsciiDoc': 'Export as AsciiDoc', + 'Export as Markdown': 'Export as Markdown', + 'External Citation': 'External Citation', + 'External Citation Settings': 'External Citation Settings', + 'Failed to add relay. Please try again.': 'Failed to add relay. Please try again.', + 'Failed to add relays': 'Failed to add relays', + 'Failed to block relay. Please try again.': 'Failed to block relay. Please try again.', + 'Failed to cleanup duplicates': 'Failed to cleanup duplicates', + 'Failed to clear cache': 'Failed to clear cache', + 'Failed to copy': 'Failed to copy', + 'Failed to create relay set. Please try again.': + 'Failed to create relay set. Please try again.', + 'Failed to create thread': 'Failed to create thread', + 'Failed to create thread. Please try a different relay.': + 'Failed to create thread. Please try a different relay.', + 'Failed to delete all items': 'Failed to delete all items', + 'Failed to delete item': 'Failed to delete item', + 'Failed to discover relays': 'Failed to discover relays', + 'Failed to export OPML file': 'Failed to export OPML file', + 'Failed to export article': 'Failed to export article', + 'Failed to import OPML file: {{error}}': 'Failed to import OPML file: {{error}}', + 'Failed to load RSS feeds': 'Failed to load RSS feeds', + 'Failed to load store items': 'Failed to load store items', + 'Failed to mute user privately': 'Failed to mute user privately', + 'Failed to mute user publicly': 'Failed to mute user publicly', + 'Failed to pin note': 'Failed to pin note', + 'Failed to publish post': 'Failed to publish post', + 'Failed to publish reply': 'Failed to publish reply', + 'Failed to publish thread': 'Failed to publish thread', + 'Failed to publish to some relays. Please try again or use different relays.': + 'Failed to publish to some relays. Please try again or use different relays.', + 'Failed to save RSS feeds': 'Failed to save RSS feeds', + 'Failed to save cache relays': 'Failed to save cache relays', + 'Failed to save relay list': 'Failed to save relay list', + 'Failed to unregister service worker: ': 'Failed to unregister service worker: ', + 'Failed to unsubscribe from topic': 'Failed to unsubscribe from topic', + Favorite: 'Favorite', + Fetch: 'Fetch', + 'Fetch once, then stop.': 'Fetch once, then stop.', + 'Filter by': 'Filter by', + 'Flat View': 'Flat View', + 'Font size': 'Font size', + 'Full Quote/Context': 'Full Quote/Context', + 'Full-text search query': 'Full-text search query', + Geohash: 'Geohash', + 'Geohash (optional)': 'Geohash (optional)', + 'Global quiet mode': 'Global quiet mode', + 'Group discussions by topic': 'Group discussions by topic', + 'Grouped View': 'Grouped View', + Groups: 'Groups', + 'Handler {{index}}': 'Handler {{index}}', + 'Hardcopy Citation': 'Hardcopy Citation', + 'Hardcopy Citation Settings': 'Hardcopy Citation Settings', + Hide: 'Hide', + 'Hide interactions on all posts': 'Hide interactions on all posts', + 'Hide interactions on posts with quiet tags': 'Hide interactions on posts with quiet tags', + 'High PoW': 'High PoW', + 'Higher values make your thread harder to mine but more unique.': + 'Higher values make your thread harder to mine but more unique.', + Highlight: 'Highlight', + 'Highlight Settings': 'Highlight Settings', + 'How to Create a Highlight (NIP-84)': 'How to Create a Highlight (NIP-84)', + 'Human-readable spell name': 'Human-readable spell name', + 'Image URL': 'Image URL', + 'Import OPML': 'Import OPML', + 'Imported {{count}} feed(s) from OPML file': 'Imported {{count}} feed(s) from OPML file', + 'In-Browser Cache': 'In-Browser Cache', + Insert: 'Insert', + 'Insert URL into your post and publish to Nostr GIF library (NIP-94).': + 'Insert URL into your post and publish to Nostr GIF library (NIP-94).', + 'Insert event or address': 'Insert event or address', + 'Insert mention': 'Insert mention', + 'Internal Citation': 'Internal Citation', + 'Internal Citation Settings': 'Internal Citation Settings', + 'Invalid Event': 'Invalid Event', + 'Invalid Lightning Address': 'Invalid Lightning Address', + 'Invalid Lightning Address. Please enter a valid Lightning Address or LNURL.': + 'Invalid Lightning Address. Please enter a valid Lightning Address or LNURL.', + 'Invalid URL': 'Invalid URL', + 'Invalid content JSON': 'Invalid content JSON', + 'Invalid relay URL': 'Invalid relay URL', + 'Invalid source. Please enter a note ID, nevent, naddr, hex ID, or URL.': + 'Invalid source. Please enter a note ID, nevent, naddr, hex ID, or URL.', + 'Item deleted successfully': 'Item deleted successfully', + JSON: 'JSON', + 'Join link': 'Join link', + 'Journal/Publication name (optional)': 'Journal/Publication name (optional)', + Json: 'JSON', + Kinds: 'Kinds', + 'Language Model': 'Language Model', + Large: 'Large', + 'Leave empty for HiveTalk, or paste Zoom / Teams / other link': + 'Leave empty for HiveTalk, or paste Zoom / Teams / other link', + 'Lightning payment failed': 'Lightning payment failed', + Limit: 'Limit', + 'Live feed; keeps updating.': 'Live feed; keeps updating.', + 'Loading more...': 'Loading more...', + 'Loading relays...': 'Loading relays...', + 'Location (optional)': 'Location (optional)', + 'Log in to run this spell (it uses $me or $contacts).': + 'Log in to run this spell (it uses $me or $contacts).', + 'Login failed': 'Login failed', + 'Login to configure RSS feeds': 'Login to configure RSS feeds', + 'Long-form Article': 'Long-form Article', + 'Mailbox relays saved': 'Mailbox relays saved', + 'Mark as NSFW': 'Mark as NSFW', + 'Maximum {{max}} invitees': 'Maximum {{max}} invitees', + 'Maximum {{max}} invitees allowed': 'Maximum {{max}} invitees allowed', + Medium: 'Medium', + Mode: 'Mode', + 'Most Zapped': 'Most Zapped', + 'Move to top': 'Move to top', + 'Multiple choice': 'Multiple choice', + 'Mute failed': 'Mute failed', + NSFW: 'NSFW', + Name: 'Name', + 'Name of the language model used': 'Name of the language model used', + 'New External Citation': 'New External Citation', + 'New Hardcopy Citation': 'New Hardcopy Citation', + 'New Highlight': 'New Highlight', + 'New Internal Citation': 'New Internal Citation', + 'New Long-form Article': 'New Long-form Article', + 'New Poll': 'New Poll', + 'New Prompt Citation': 'New Prompt Citation', + 'New Public Message': 'New Public Message', + 'New Wiki Article': 'New Wiki Article', + 'New Wiki Article (Markdown)': 'New Wiki Article (Markdown)', + Newest: 'Newest', + 'No JSON available': 'No JSON available', + 'No RSS feeds found in OPML file': 'No RSS feeds found in OPML file', + 'No cached data found.': 'No cached data found.', + 'No console logs captured yet': 'No console logs captured yet', + 'No events found': 'No events found', + 'No feeds configured. Default feed will be used.': + 'No feeds configured. Default feed will be used.', + 'No feeds to export': 'No feeds to export', + 'No groups available. Join some groups first.': 'No groups available. Join some groups first.', + 'No items in this store.': 'No items in this store.', + 'No items match your search.': 'No items match your search.', + 'No logs match the current filters': 'No logs match the current filters', + 'No posts found': 'No posts found', + 'No posts match your search': 'No posts match your search', + 'No relays available. Please configure relays in settings.': + 'No relays available. Please configure relays in settings.', + 'No service workers or caches found for this app': + 'No service workers or caches found for this app', + 'No users found': 'No users found', + 'No valid RSS feed URLs found in OPML file': 'No valid RSS feed URLs found in OPML file', + 'Note pinned': 'Note pinned', + 'Note unpinned': 'Note unpinned', + Oldest: 'Oldest', + 'Open Timestamp': 'Open Timestamp', + 'Opens in a new tab. Copy a GIF URL there, then paste below. If this picker closed, click “Insert GIF” again to paste.': + 'Opens in a new tab. Copy a GIF URL there, then paste below. If this picker closed, click “Insert GIF” again to paste.', + Option: 'Option', + Optional: 'Optional', + 'Optional image for the event': 'Optional image for the event', + 'Optionally, add the full quote/context to show your highlight within it': + 'Optionally, add the full quote/context to show your highlight within it', + PM: 'PM', + 'Page Range': 'Page Range', + Pages: 'Pages', + 'Paste URL of a GIF': 'Paste URL of a GIF', + 'Paste the entire original passage that contains your highlight': + 'Paste the entire original passage that contains your highlight', + Photo: 'Photo', + 'Picture Note': 'Picture Note', + 'Pin note': 'Pin note', + 'Plain text description of the query': 'Plain text description of the query', + 'Please login to view bookmarks': 'Please login to view bookmarks', + 'Please select a group': 'Please select a group', + 'Please select at least one relay': 'Please select at least one relay', + 'Please set a start date': 'Please set a start date', + 'Poll with no options': 'Poll with no options', + 'Post published to some relays': 'Post published to some relays', + 'Posts will automatically include expiration tags': + 'Posts will automatically include expiration tags', + 'Posts will automatically include quiet tags': 'Posts will automatically include quiet tags', + 'Posts will be quiet for this many days': 'Posts will be quiet for this many days', + 'Posts will expire after this many months': 'Posts will expire after this many months', + 'Processing...': 'Processing...', + 'Profile event not available': 'Profile event not available', + 'Prompt Citation': 'Prompt Citation', + 'Prompt Citation Settings': 'Prompt Citation Settings', + 'Prompt Conversation Script': 'Prompt Conversation Script', + 'Proof of Work': 'Proof of Work', + 'Publish to Relays': 'Publish to Relays', + 'Published By': 'Published By', + 'Published In': 'Published In', + 'Published On': 'Published On', + 'Published in': 'Published in', + 'Published on': 'Published on', + 'Publisher name (optional)': 'Publisher name (optional)', + 'Quiet Tags': 'Quiet Tags', + 'RSS Feed': 'RSS Feed', + 'RSS Feed Settings': 'RSS Feed Settings', + 'RSS Feeds': 'RSS Feeds', + 'RSS feeds exported to OPML file': 'RSS feeds exported to OPML file', + 'RSS feeds saved': 'RSS feeds saved', + 'Rate limited. Please wait before trying again.': + 'Rate limited. Please wait before trying again.', + 'Reaction published': 'Reaction published', + 'Reaction removed': 'Reaction removed', + 'Read full article': 'Read full article', + 'Reading group entry': 'Reading group entry', + 'Readings Options': 'Readings Options', + Recipients: 'Recipients', + 'Recipients detected from your message:': 'Recipients detected from your message:', + 'Recommended Relays': 'Recommended Relays', + 'Recommended applications for handling events of kind {{kind}}': + 'Recommended applications for handling events of kind {{kind}}', + 'Reference to the cited Nostr event in kind:pubkey:hex format': + 'Reference to the cited Nostr event in kind:pubkey:hex format', + 'Refresh Cache': 'Refresh Cache', + 'Refreshing posts...': 'Refreshing posts...', + 'Relative: 7d, 24h, 1w, 1mo, 1y. Or Unix timestamp.': + 'Relative: 7d, 24h, 1w, 1mo, 1y. Or Unix timestamp.', + Relay: 'Relay', + 'Relay Hint': 'Relay Hint', + 'Relay URL (optional)': 'Relay URL (optional)', + 'Relay blocked successfully': 'Relay blocked successfully', + 'Relay requires authentication for write access. Please try a different relay or contact the relay operator.': + 'Relay requires authentication for write access. Please try a different relay or contact the relay operator.', + 'Relay set options': 'Relay set options', + 'Remove from favorites': 'Remove from favorites', + Rendered: 'Rendered', + 'Reply published': 'Reply published', + 'Reply published to some relays': 'Reply published to some relays', + 'Reply to Public Message': 'Reply to Public Message', + 'Republish to all active relays': 'Republish to all active relays', + 'Republish to all available relays': 'Republish to all available relays', + 'Required: start (or start date), invitees. Optional: title, end, location, summary, topics, image.': + 'Required: start (or start date), invitees. Optional: title, end, location, summary, topics, image.', + 'Required: start time or start date. Optional: title, end, location, summary, topics, image.': + 'Required: start time or start date. Optional: title, end, location, summary, topics, image.', + 'Required: start time, invitees. Join link defaults to HiveTalk. Optional: title, end, summary, topics, image.': + 'Required: start time, invitees. Join link defaults to HiveTalk. Optional: title, end, summary, topics, image.', + 'Required: start time. Join link defaults to HiveTalk. Optional: title, end, summary, topics, image.': + 'Required: start time. Join link defaults to HiveTalk. Optional: title, end, summary, topics, image.', + 'Respect quiet tags': 'Respect quiet tags', + 'Search (NIP-50)': 'Search (NIP-50)', + 'Search by name or npub…': 'Search by name or npub…', + 'Search calendar, publications, wiki…': 'Search calendar, publications, wiki…', + 'Search for user…': 'Search for user…', + 'Search items...': 'Search items...', + 'Search logs...': 'Search logs...', + 'Search notes, threads, long-form…': 'Search notes, threads, long-form…', + 'Search on GifBuddy': 'Search on GifBuddy', + 'Search posts...': 'Search posts...', + 'Search threads by title, content, tags, npub, author...': + 'Search threads by title, content, tags, npub, author...', + 'Searching all available relays...': 'Searching all available relays...', + 'Searching…': 'Searching…', + 'See reference': 'See reference', + 'Select Group': 'Select Group', + 'Select Media Type': 'Select Media Type', + 'Select group...': 'Select group...', + 'Select relays': 'Select relays', + 'Select the group where you want to create this discussion.': + 'Select the group where you want to create this discussion.', + 'Select topic...': 'Select topic...', + 'Selected text': 'Selected text', + 'Send Public Message': 'Send Public Message', + 'Send a Lightning payment to this user': 'Send a Lightning payment to this user', + 'Service worker caches cleared. Please reload the page.': + 'Service worker caches cleared. Please reload the page.', + 'Service worker unregistered and caches cleared. Please reload the page.': + 'Service worker unregistered and caches cleared. Please reload the page.', + 'Service worker unregistered. Please reload the page.': + 'Service worker unregistered. Please reload the page.', + 'Share your thoughts, ask questions, or start a discussion...': + 'Share your thoughts, ask questions, or start a discussion...', + 'Short Video Note': 'Short Video Note', + 'Show RSS Feed': 'Show RSS Feed', + 'Show all discussions in a single list': 'Show all discussions in a single list', + 'Show less': 'Show less', + Since: 'Since', + Small: 'Small', + 'Some relays have temporarily disabled writes.': + 'Some relays have temporarily disabled writes.', + Source: 'Source', + 'Spell definition': 'Spell definition', + 'Spell published': 'Spell published', + 'Start date': 'Start date', + 'Start typing to see a preview...': 'Start typing to see a preview...', + 'Subject (Book Title)': 'Subject (Book Title)', + 'Subject (book title) is required for reading groups': + 'Subject (book title) is required for reading groups', + 'Subject / Topics': 'Subject / Topics', + Subscribe: 'Subscribe', + Subscribed: 'Subscribed', + 'Subscribed to topic': 'Subscribed to topic', + 'Subscribed to topic (local)': 'Subscribed to topic (local)', + 'Subscribing...': 'Subscribing...', + Summary: 'Summary', + 'Supported Event Types': 'Supported Event Types', + 'Take a note': 'Take a note', + 'The full prompt conversation (optional)': 'The full prompt conversation (optional)', + 'The main editor above should contain only the text you want to highlight. This field should contain the full quote or paragraph for context.': + 'The main editor above should contain only the text you want to highlight. This field should contain the full quote or paragraph for context.', + 'These relays were found from your NIP-05 identifier and signer. You can add them to your relay list.': + 'These relays were found from your NIP-05 identifier and signer. You can add them to your relay list.', + 'This file could be either audio or video. Please select the correct type:': + 'This file could be either audio or video. Please select the correct type:', + 'This store does not contain replaceable events': + 'This store does not contain replaceable events', + 'This will add additional tags for author and subject to help organize reading group discussions.': + 'This will add additional tags for author and subject to help organize reading group discussions.', + 'Thread Content': 'Thread Content', + 'Thread Title': 'Thread Title', + 'Thread creation timed out. Please try again.': 'Thread creation timed out. Please try again.', + 'Thread published': 'Thread published', + 'Threads are organized by topics. Choose a topic that best fits your discussion.': + 'Threads are organized by topics. Choose a topic that best fits your discussion.', + 'Time-based': 'Time-based', + 'Title is required': 'Title is required', + 'Title must be 100 characters or less': 'Title must be 100 characters or less', + 'To translate notes and other content, use your browser’s built-in translation. For example: right-click the page and choose “Translate to…”, or use the translate icon in the address bar.': + 'To translate notes and other content, use your browser’s built-in translation. For example: right-click the page and choose “Translate to…”, or use the translate icon in the address bar.', + Top: 'Top', + Topic: 'Topic', + URL: 'URL', + 'URL of the article cover image (optional)': 'URL of the article cover image (optional)', + 'Unique identifier for this article (required)': + 'Unique identifier for this article (required)', + 'Unmute failed': 'Unmute failed', + 'Unpin note': 'Unpin note', + Unsubscribe: 'Unsubscribe', + 'Unsubscribed from topic': 'Unsubscribed from topic', + 'Unsubscribing...': 'Unsubscribing...', + Until: 'Until', + Untitled: 'Untitled', + Update: 'Update', + 'Updating...': 'Updating...', + 'Upload Audio Comment': 'Upload Audio Comment', + 'Upload Audio Message': 'Upload Audio Message', + 'Upload Media': 'Upload Media', + Upvote: 'Upvote', + 'User unmuted': 'User unmuted', + 'Version number (optional)': 'Version number (optional)', + Video: 'Video', + 'Video Note': 'Video Note', + 'Video file': 'Video file', + 'View Console Logs': 'View Console Logs', + 'View JSON': 'View JSON', + 'View cached items in this store.': 'View cached items in this store.', + 'View definition': 'View definition', + 'View details about cached data in IndexedDB stores. Click on a store to view its items.': + 'View details about cached data in IndexedDB stores. Click on a store to view its items.', + 'View on Alexandria': 'View on Alexandria', + 'View on DecentNewsroom': 'View on DecentNewsroom', + 'View on Wikistr': 'View on Wikistr', + 'View recent console logs for debugging': 'View recent console logs for debugging', + 'Voice Comment': 'Voice Comment', + 'Voice Note': 'Voice Note', + 'Voice note or audio file': 'Voice note or audio file', + Volume: 'Volume', + 'Volume number (optional)': 'Volume number (optional)', + 'Vote published': 'Vote published', + 'Vote removed': 'Vote removed', + 'Website where LLM was accessed (optional)': 'Website where LLM was accessed (optional)', + 'Wiki Article (AsciiDoc)': 'Wiki Article (AsciiDoc)', + 'Wiki Article (Markdown)': 'Wiki Article (Markdown)', + 'You can only delete your own notes': 'You can only delete your own notes', + 'You must be logged in to create a thread': 'You must be logged in to create a thread', + 'You need to add at least one media server in order to upload media files.': + 'You need to add at least one media server in order to upload media files.', + 'You need to login first': 'You need to login first', + 'Your account is blocked from posting to this relay.': + 'Your account is blocked from posting to this relay.', + Zap: 'Zap', + 'Zap failed': 'Zap failed', + created_at: 'created_at', + 'e tag of kind 1040 event (optional)': 'e tag of kind 1040 event (optional)', + 'e.g. meetup, conference': 'e.g. meetup, conference', + 'e.g., 123-145 (optional)': 'e.g., 123-145 (optional)', + 'e.g., GPT-4, Claude, etc. (required)': 'e.g., GPT-4, Claude, etc. (required)', + 'e.g., my-article-title': 'e.g., my-article-title', + entries: 'entries', + 'from Bunker': 'from Bunker', + 'from Extension': 'from Extension', + 'from NIP-05': 'from NIP-05', + general: 'general', + 'https://example.com (required)': 'https://example.com (required)', + 'https://example.com/image.jpg': 'https://example.com/image.jpg', + id: 'id', + items: 'items', + kind: 'kind', + 'kind:pubkey:hex format (required)': 'kind:pubkey:hex format (required)', + 'last updated': 'last updated', + matching: 'matching', + naddr: 'naddr', + nevent: 'nevent', + 'nevent1..., naddr1..., note1..., hex ID, or https://...': + 'nevent1..., naddr1..., note1..., hex ID, or https://...', + 'no notes found': 'no notes found', + of: 'of', + 'on note': 'on note', + optional: 'optional', + pubkey: 'pubkey', + 'sent a public message': 'sent a public message', + 'sent you a public message': 'sent you a public message', + 'sent you a public message (along with {{count}} others)': + 'sent you a public message (along with {{count}} others)', + sig: 'sig', + 'started a discussion in {{topic}}': 'started a discussion in {{topic}}', + tags: 'tags', + thread: 'thread', + threads: 'threads', + 'topic1, topic2, topic3': 'topic1, topic2, topic3', + '{{count}} relay(s) selected': '{{count}} relay(s) selected', + '🔞 NSFW 🔞': '🔞 NSFW 🔞' } } diff --git a/src/i18n/locales/es.ts b/src/i18n/locales/es.ts index 23520e2d..2cfd28ee 100644 --- a/src/i18n/locales/es.ts +++ b/src/i18n/locales/es.ts @@ -1,13 +1,16 @@ export default { translation: { - // NOTE: The translations below were generated by ChatGPT and have not yet been verified. 'Welcome! 🥳': '¡Bienvenido! 🥳', About: 'Acerca de', 'New Note': 'Nueva nota', Post: 'Publicar', Home: 'Inicio', + Feed: 'Feed', + 'Favorites Feed': 'Favorites Feed', + 'Pinned note': 'Pinned note', 'Relay settings': 'Configuración de relés', Settings: 'Ajustes', + 'Account menu': 'Account menu', SidebarRelays: 'Relés', Refresh: 'Actualizar', Profile: 'Perfil', @@ -31,6 +34,12 @@ export default { 'loading...': 'cargando...', 'Loading...': 'Cargando...', 'no more notes': 'no hay más notas', + 'calendar entries': 'calendar entries', + 'Loading calendar events...': 'Loading calendar events...', + 'No calendar events found': 'No calendar events found', + 'Calendar events in the next {{count}} months': 'Calendar events in the next {{count}} months', + 'The nostr.band relay appears to be temporarily out of service. Please try again later.': + 'The nostr.band relay appears to be temporarily out of service. Please try again later.', 'reply to': 'responder a', reply: 'responder', Reply: 'Responder', @@ -38,6 +47,9 @@ export default { 'Write something...': 'Escribe algo...', Cancel: 'Cancelar', Mentions: 'Menciones', + 'Search for event or address…': 'Search for event or address…', + 'Search notes…': 'Search notes…', + 'No notes found': 'No notes found', 'Failed to post': 'Error al publicar', 'Post successful': 'Publicación exitosa', 'Your post has been published': 'Tu publicación ha sido publicada', @@ -46,7 +58,22 @@ export default { Quote: 'Citar', 'Copy event ID': 'Copiar ID del evento', 'Copy user ID': 'Copiar ID del usuario', + 'Send public message': 'Send public message', 'View raw event': 'Ver evento sin procesar', + 'Edit this event': 'Edit this event', + 'Clone or fork this event': 'Clone or fork this event', + 'Event kind': 'Event kind', + 'Note content': 'Note content', + Publish: 'Publish', + 'Post published': 'Post published', + 'Edit content and tags, then publish a new signed event.': + 'Edit content and tags, then publish a new signed event.', + 'Log in to publish': 'Log in to publish', + 'Set when you publish': 'set when you publish', + 'id and sig are assigned when you publish': 'id and sig are assigned when you publish', + 'Published to some relays only': 'Published to some relays only', + 'Add field': 'Add field', + 'View full profile': 'View full profile', Like: 'Me gusta', 'switch to light theme': 'cambiar a tema claro', 'switch to dark theme': 'cambiar a tema oscuro', @@ -57,18 +84,143 @@ export default { "username's used relays": 'Relés usados por {{username}}', "username's muted": 'Silenciados de {{username}}', Login: 'Iniciar sesión', + 'Please log in to view notifications.': 'Please log in to view notifications.', 'Follows you': 'Te sigue', 'Relay Settings': 'Configuración de relés', + 'Relays and Storage Settings': 'Relays and Storage Settings', 'Relay set name': 'Nombre del conjunto de relés', 'Add a new relay set': 'Agregar un nuevo conjunto de relés', Add: 'Agregar', 'n relays': '{{n}} relés', Rename: 'Renombrar', + 'Copy share link': 'Copy share link', + 'Copy address': 'Copy address', + 'Copy payto URI': 'Copy payto URI', + 'Copied payto address': 'Copied payto address', + 'Copied to clipboard': 'Copied to clipboard', + 'Copied {{label}} address': 'Copied {{label}} address', + 'Lightning payment address – copy to pay via your wallet': + 'Lightning payment address – copy to pay via your wallet', + 'Payment address – copy to use in your wallet or app': + 'Payment address – copy to use in your wallet or app', + 'Click to open payment options': 'Click to open payment options', + 'Click to copy address': 'Click to copy address', + 'Open on website': 'Open on website', + 'Raw profile event': 'Raw profile event', + 'Full profile event': 'Full profile event', + 'Event (JSON)': 'Event (JSON)', + 'Save full profile': 'Save full profile', + 'Add tag': 'Add tag', + 'Remove tag': 'Remove tag', + 'Tag name': 'Tag name', + Value: 'Value', + 'Add value to tag': 'Add value to tag', + 'Remove value': 'Remove value', + 'No tags. Click "Add tag" to add one.': 'No tags. Click "Add tag" to add one.', + 'Profile updated': 'Profile updated', + 'Failed to publish profile': 'Failed to publish profile', + 'Invalid profile JSON': 'Invalid profile JSON', + 'Refresh cache': 'Refresh cache', + 'Force-refresh profile and payment info from relays': + 'Force-refresh profile and payment info from relays', + 'Profile and payment cache refreshed': 'Profile and payment cache refreshed', + 'Failed to refresh cache': 'Failed to refresh cache', + 'Raw payment info event': 'Raw payment info event', + 'Payment info': 'Payment info', + 'Edit payment info': 'Edit payment info', + 'Add payment info': 'Add payment info', + 'No payment info event yet. Click "Add payment info" to create one.': + 'No payment info event yet. Click "Add payment info" to create one.', + 'Content (JSON)': 'Content (JSON)', + Tags: 'Tags', + 'Tags (JSON array of arrays, e.g. [["payto","lightning","user@domain.com"]])': + 'Tags (JSON array of arrays, e.g. [["payto","lightning","user@domain.com"]])', + 'Payment info updated': 'Payment info updated', + 'Failed to publish payment info': 'Failed to publish payment info', + 'Invalid tags JSON': 'Invalid tags JSON', + 'Payment methods': 'Payment methods', + 'NIP-A3 payto tags: type (e.g. lightning) and authority (e.g. user@domain.com).': + 'NIP-A3 payto tags: type (e.g. lightning) and authority (e.g. user@domain.com).', + 'Type (e.g. lightning)': 'Type (e.g. lightning)', + 'Authority (e.g. user@domain.com)': 'Authority (e.g. user@domain.com)', + 'Add payment method': 'Add payment method', + Remove: 'Remove', + 'Additional content (JSON)': 'Additional content (JSON)', + 'Show full event JSON': 'Show full event JSON', + 'Tag list': 'Tag list', + 'Profile event tags (e.g. lud16, nip05, website). Saved with kind 0.': + 'Profile event tags (e.g. lud16, nip05, website). Saved with kind 0.', + 'Tag value': 'Tag value', + 'Saving…': 'Saving…', 'Share with Jumble': 'Compartir con Jumble', 'Share with Alexandria': 'Compartir con Alexandria', + 'Start video call': 'Start video call', + 'Copy call invite link': 'Copy call invite link', + 'Start call about this': 'Start call about this', + 'Send call invite': 'Send call invite', + 'Join the video call': 'Join the video call', + 'Schedule video call': 'Schedule video call', + "You're invited to a scheduled video call.": "You're invited to a scheduled video call.", + 'Create a calendar event and send an invite. The recipient will see the event with a join link.': + 'Create a calendar event and send an invite. The recipient will see the event with a join link.', + 'Schedule a video call': 'Schedule a video call', + 'Create a calendar event and send kind 24 invites to each listed invitee.': + 'Create a calendar event and send kind 24 invites to each listed invitee.', + Invitees: 'Invitees', + 'Paste nostr:npub1... or nostr:nprofile1... (one or more)': + 'Paste nostr:npub1... or nostr:nprofile1... (one or more)', + 'Schedule and send invites': 'Schedule and send invites', + 'Add at least one invitee (paste nostr:npub or nostr:nprofile links)': + 'Add at least one invitee (paste nostr:npub or nostr:nprofile links)', + 'Scheduled call created and {{count}} invite(s) sent': + 'Scheduled call created and {{count}} invite(s) sent', + 'Join video call': 'Join video call', + 'Scheduled video call': 'Scheduled video call', + 'Video call': 'Video call', + 'Schedule and send invite': 'Schedule and send invite', + 'Scheduling…': 'Scheduling…', + 'Please set a start time': 'Please set a start time', + 'End time must be after start time': 'End time must be after start time', + 'Failed to schedule call': 'Failed to schedule call', + 'Scheduled call created and invite sent': 'Scheduled call created and invite sent', + RSVP: 'RSVP', + 'RSVP: {{status}}': 'RSVP: {{status}}', + Accepted: 'Accepted', + Tentative: 'Tentative', + Declined: 'Declined', + 'You need to log in to RSVP': 'You need to log in to RSVP', + 'RSVP updated': 'RSVP updated', + 'Failed to update RSVP': 'Failed to update RSVP', + Organizer: 'Organizer', + Attendees: 'Attendees', + 'No response': 'No response', + 'Calendar Events': 'Calendar Events', + 'Calendar Event': 'Calendar Event', + 'Schedule in-person meeting': 'Schedule in-person meeting', + 'Create a calendar event and send an invite. No video link — for real-life meetups, conferences, etc.': + 'Create a calendar event and send an invite. No video link — for real-life meetups, conferences, etc.', + "You're invited to an in-person meeting.": "You're invited to an in-person meeting.", + 'Meeting created and invite sent': 'Meeting created and invite sent', + 'Failed to create meeting': 'Failed to create meeting', + 'Create and send invite': 'Create and send invite', + 'Creating…': 'Creating…', + 'In-person meeting': 'In-person meeting', + Location: 'Location', + 'Address, venue, or place': 'Address, venue, or place', + Description: 'Description', + 'Optional notes': 'Optional notes', + 'Create a calendar event for a real-life meetup and send kind 24 invites to each invitee.': + 'Create a calendar event for a real-life meetup and send kind 24 invites to each invitee.', + 'Meeting created and {{count}} invite(s) sent': 'Meeting created and {{count}} invite(s) sent', + 'Create and send invites': 'Create and send invites', + Title: 'Title', + Start: 'Start', + End: 'End', Delete: 'Eliminar', 'Relay already exists': 'El relé ya existe', 'invalid relay URL': 'URL del relé inválida', + 'Relay URL…': 'wss://… or relay host', + 'Open relay': 'Open relay', 'Add a new relay': 'Agregar un nuevo relé', back: 'atrás', 'Lost in the void': 'Perdido en el vacío', @@ -114,6 +266,19 @@ export default { 'Picture note requires images': 'La nota con imagen requiere imágenes', Relays: 'Relés', Image: 'imagen', + 'Upload Image': 'Upload Image', + 'Insert emoji': 'Insert emoji', + 'Insert GIF': 'Insert GIF', + 'Search GIFs': 'Search GIFs', + 'Choose a GIF': 'Choose a GIF', + 'Search GifBuddy for more GIFs': 'Search GifBuddy for more GIFs', + 'Add your own GIFs': 'Add your own GIFs', + 'Description (optional, for search)': 'Description (optional, for search)', + 'e.g. happy birthday, thumbs up': 'e.g. happy birthday, thumbs up', + 'Uploading...': 'Uploading...', + 'No GIFs found. Try searching or add your own. GIFs come from Nostr kind 1063 (NIP-94) events on GIF relays.': + 'No GIFs found. Try searching or add your own. GIFs come from Nostr kind 1063 (NIP-94) events on GIF relays.', + '{{name}} is not a GIF file': '{{name}} is not a GIF file', 'R & W': 'L y E', Read: 'Leer', Write: 'Escribir', @@ -156,6 +321,9 @@ export default { Muted: 'Silenciado', Unmute: 'Activar sonido', 'Unmute user': 'Activar sonido del usuario', + Block: 'Block', + Unblock: 'Unblock', + blocked: 'blocked', 'Append n relays': 'Agregar {{n}} relés', Append: 'Agregar', 'Select relays to append': 'Selecciona relés para agregar', @@ -180,6 +348,24 @@ export default { 'Explore more': 'Explorar más', 'Payment page': 'Página de pago', 'Supported NIPs': 'NIPs soportados', + 'Relay liveliness (NIP-66)': 'Relay liveliness (NIP-66)', + 'Relay monitor (NIP-66)': 'Relay monitor (NIP-66)', + 'Auth required': 'Auth required', + 'Public (no auth)': 'Public (no auth)', + 'Payment required': 'Payment required', + 'No payment': 'No payment', + 'Writes required': 'Writes required', + 'Writes open': 'Writes open', + 'PoW required': 'PoW required', + 'No PoW': 'No PoW', + 'RTT open': 'RTT open', + 'RTT read': 'RTT read', + 'RTT write': 'RTT write', + 'Supported NIPs (from monitor)': 'Supported NIPs (from monitor)', + 'Last reported by monitor': 'Last reported by monitor', + Network: 'Network', + Type: 'Type', + Topics: 'Topics', 'Open in a': 'Abrir en {{a}}', 'Cannot handle event of kind k': 'No se puede manejar el evento de tipo {{k}}', 'Sorry! The note cannot be found 😔': '¡Lo siento! No se pudo encontrar la nota 😔', @@ -211,9 +397,22 @@ export default { 'Seen on': 'Visto en', 'Temporarily display this reply': 'Mostrar temporalmente esta respuesta', 'Note not found': 'No se encontró la nota', + 'The note was not found on your relays or default relays.': + 'The note was not found on your relays or default relays.', + "Try searching author's relays": "Try searching author's relays", + 'Searching external relays...': 'Searching external relays...', + "This will connect to the author's relays and relay hints": + "This will connect to the author's relays and relay hints", + 'Note could not be found anywhere': 'Note could not be found anywhere', + 'Try external relays': 'Try external relays', + 'Searching...': 'Searching...', + 'Show relays': 'Show relays', + 'No external relay hints available': 'No external relay hints available', 'no more replies': 'no hay más respuestas', 'Relay sets': 'Conjuntos de relés', 'Favorite Relays': 'Relés favoritos', + 'Search for Relays': 'Search for Relays', + 'Using app default relays': 'Using app default relays', "Following's Favorites": 'Favoritos de los seguidos', 'no more relays': 'no hay más relés', 'Favorited by': 'Favoritado por', @@ -229,11 +428,49 @@ export default { 'no bookmarks found': 'No se encontraron marcadores', 'no more bookmarks': 'No hay más marcadores', Bookmarks: 'Marcadores', + 'Follow Packs': 'Follow Packs', + 'Follow Pack': 'Follow Pack', + 'Please log in to follow': 'Please log in to follow', + 'Following All': 'Following All', + 'Followed {{count}} users': 'Followed {{count}} users', + 'All available members are already followed or muted': + 'All available members are already followed or muted', + 'You are already following all members of this pack': + 'You are already following all members of this pack', + 'Failed to follow pack': 'Failed to follow pack', + '{{count}} profiles': '{{count}} profiles', 'Show more': 'Mostrar más', General: 'General', Autoplay: 'Reproducción automática', 'Enable video autoplay on this device': 'Habilitar reproducción automática de video en este dispositivo', + 'Add random relays to every publish': 'Random relays in publish list', + 'Add random relays to every publish description': + 'Adds {{n}} random public relays from the NIP-66 lively list (preferring monitors that reported a write RTT) to the publish relay list. When ON, they are selected by default; when OFF, they appear in the list but are unchecked so you can optionally include them.', + relayType_local: 'Local', + relayType_relay_list: 'Relay list', + relayType_client_default: 'Client default', + relayType_open_from: 'Current feed', + relayType_favorite: 'Favorite', + relayType_relay_set: 'Relay set', + relayType_contextual: 'Reply/PM', + relayType_randomly_selected: 'Random (optional)', + 'Session relays': 'Session relays', + 'Session relays tab description': + 'Relay logic for this session: working and striked preset relays, and scored random relays (used to prefer faster, proven relays when adding random relays to publish).', + 'Session relays preset working': 'Working preset relays', + 'Session relays preset working hint': + 'Preset relays (from app defaults) that have not reached 3 publish failures this session.', + 'Session relays preset striked': 'Striked preset relays', + 'Session relays preset striked hint': + 'Preset relays that have reached 3 publish failures this session and are skipped for the rest of the session.', + 'Session relays scored random': 'Scored random relays', + 'Session relays scored random hint': + 'Relays that have accepted at least one publish this session; used to prefer faster relays when picking random relays. Sorted by average latency.', + 'Session relays all striked': 'All striked relays (any source)', + successes: 'successes', + None: 'None', + 'Cache & offline storage': 'Cache & offline storage', 'Paste or drop media files to upload': 'Pegar o soltar archivos multimedia para cargar', Preview: 'Vista previa', 'You are about to publish an event signed by [{{eventAuthorName}}]. You are currently logged in as [{{currentUsername}}]. Are you sure?': @@ -266,6 +503,7 @@ export default { 'Are you sure you want to reset your API key? This action cannot be undone.': '¿Estás seguro de que deseas restablecer tu clave API? Esta acción no se puede deshacer.', Warning: 'Advertencia', + 'Errors & warnings': 'Errors & warnings', 'Your current API key will become invalid immediately, and any applications using it will stop working until you update them with the new key.': 'Tu clave API actual se volverá inválida de inmediato, y cualquier aplicación que la use dejará de funcionar hasta que las actualices con la nueva clave.', 'Service address': 'Dirección del servicio', @@ -297,6 +535,9 @@ export default { Article: 'Artículo', Unfavorite: 'Desfavoritar', 'Recommended relays': 'Relés recomendados', + 'Show recommended relays panel': 'Show recommended relays panel', + 'Display the right-side panel with recommended relays on desktop': + 'Display the right-side panel with recommended relays on desktop', 'Blossom server URLs': 'URLs del servidor Blossom', 'You need to add at least one blossom server in order to upload media files.': 'Necesitas agregar al menos un servidor Blossom para poder cargar archivos multimedia.', @@ -323,7 +564,31 @@ export default { 'Refresh results': 'Actualizar resultados', Poll: 'Encuesta', Media: 'medios', + Interests: 'Interests', + Calendar: 'Calendar', + 'No subscribed interests yet.': + 'No subscribed interests yet. Add topics in settings to see them here.', + 'No bookmarked notes with id tags yet.': + 'No bookmarked notes with id tags yet. Only classic (e-tag) bookmarks load in this feed.', + 'No follows or relays to load yet.': 'No follows or relays to load yet.', + 'Nothing to load for this feed.': 'Nothing to load for this feed.', 'Republish to ...': 'Republicar a ...', + 'All available relays': 'All available relays', + 'All active relays (monitoring list)': 'All active relays (monitoring list)', + 'Successfully republish to all available relays': + 'Successfully republish to all available relays', + 'Failed to republish to all available relays: {{error}}': + 'Failed to republish to all available relays: {{error}}', + 'Successfully republish to all active relays': 'Successfully republish to all active relays', + 'Failed to republish to all active relays: {{error}}': + 'Failed to republish to all active relays: {{error}}', + 'No active relays in monitoring list': 'No active relays in monitoring list', + 'No relay accepted the event': 'No relay accepted the event', + 'No relays available': 'No relays available', + 'No write relays configured': 'No write relays configured', + 'Relay did not accept the event': 'Relay did not accept the event', + 'Only {{count}} relay(s) accepted the event; at least 5 required for "all active relays".': + 'Only {{count}} relay(s) accepted the event; at least 5 required for "all active relays".', 'Successfully republish to your write relays': 'Republicado con éxito a tus relés de escritura', 'Failed to republish to your write relays: {{error}}': 'Error al republicar a tus relés de escritura: {{error}}', @@ -341,6 +606,7 @@ export default { 'No zaps yet': 'Sin zaps aún', 'No more boosts': 'No hay más boosts', 'No boosts yet': 'Sin boosts aún', + 'n more boosts': '{{count}} more boosts', Boosts: 'Boosts', FollowListNotFoundConfirmation: 'Lista de seguidos no encontrada. ¿Quieres crear una nueva? Si has seguido usuarios antes, por favor NO confirmes ya que esta operación te hará perder tu lista de seguidos anterior.', @@ -363,8 +629,13 @@ export default { 'Maybe Later': 'Tal vez más tarde', "Don't remind me again": 'No recordar de nuevo', Posts: 'Publicaciones', + 'Posts (OPs)': 'Posts (OPs)', + 'Kind 1 replies': 'Kind 1 replies', + Comments: 'Comments', + 'Replies & comments': 'Replies & comments', Articles: 'Artículos', Highlights: 'Destacados', + 'A note from': 'A note from', Polls: 'Encuestas', 'Voice Posts': 'Publicaciones de voz', 'Photo Posts': 'Publicaciones de fotos', @@ -390,6 +661,13 @@ export default { 'boosted your note': 'boosteó tu nota', 'zapped your note': 'zappeó tu nota', 'zapped you': 'te zappeó', + zapped: 'zapped', + 'Invalid zap receipt': 'Invalid zap receipt', + 'Zapped note': 'Zapped note', + 'Zapped profile': 'Zapped profile', + 'Zap reply threshold': 'Zap reply threshold', + 'Zaps above this amount will appear as replies in threads': + 'Zaps above this amount will appear as replies in threads', 'Mark as read': 'Marcar como leído', Report: 'Reportar', 'Successfully report': 'Reporte exitoso', @@ -404,7 +682,6 @@ export default { 'See extra info for each notification': 'Ver información adicional para cada notificación', 'See more notifications at a glance': 'Ver más notificaciones de un vistazo', Detailed: 'Detallado', - Compact: 'Compacto', 'Submit Relay': 'Enviar relé', Homepage: 'Página principal', 'Proof of Work (difficulty {{minPow}})': 'Prueba de Trabajo (dificultad {{minPow}})', @@ -432,6 +709,23 @@ export default { '{{count}} relays': '{{count}} relés', 'Republishing...': 'Republicando...', 'Trending Notes': 'Notas de tendencia', + 'Trending on Your Favorite Relays': 'Trending on Your Favorite Relays', + 'Trending on the Default Relays': 'Trending on the Default Relays', + 'Latest from your follows': 'Latest from your follows', + 'Latest from our recommended follows': 'Latest from our recommended follows', + 'Loading follow list…': 'Loading follow list…', + 'Could not load recommended follows': 'Could not load recommended follows', + 'Your follow list is empty': 'Your follow list is empty', + 'Loading recent posts from follows…': 'Loading recent posts from follows…', + 'Loading more…': 'Loading more…', + 'No recent posts from this user in the current fetch': + 'No recent posts from this user in the current fetch', + 'Loading trending notes from your relays...': 'Loading trending notes from your relays...', + Sort: 'Sort', + newest: 'newest', + oldest: 'oldest', + 'most popular': 'most popular', + 'least popular': 'least popular', 'Connected to': 'Conectado a', 'Disconnect Wallet': 'Desconectar billetera', 'Are you absolutely sure?': '¿Estás absolutamente seguro?', @@ -439,6 +733,690 @@ export default { Disconnect: 'Desconectar', 'Set up your wallet to send and receive sats!': '¡Configura tu billetera para enviar y recibir sats!', - 'Set up': 'Configurar' + 'Set up': 'Configurar', + 'nested events': 'nested events', + 'Loading RSS feeds...': 'Loading RSS feeds...', + 'No RSS feed items available': 'No RSS feed items available', + 'Show or hide the RSS page and sidebar entry': 'Show or hide the RSS page and sidebar entry', + 'Refreshing feeds...': 'Refreshing feeds...', + 'All feeds': 'All feeds', + 'All time': 'All time', + 'Last hour': 'Last hour', + 'Last day': 'Last day', + 'Last week': 'Last week', + 'Last month': 'Last month', + 'No items match your filters': 'No items match your filters', + 'Search...': 'Search...', + '{{count}} feeds': '{{count}} feeds', + 'Toggle filters': 'Toggle filters', + 'Showing {{filtered}} of {{total}} items': 'Showing {{filtered}} of {{total}} items', + Full: 'Full', + Compact: 'Compacto', + Expand: 'Expand', + 'help.title': 'Help', + 'help.tabShortcuts': 'Keyboard shortcuts', + 'help.tabOverview': 'App overview', + 'shortcuts.title': 'Keyboard shortcuts', + 'shortcuts.intro': + 'Shortcuts for this app and common browsing. Modifier combos are Shift+Alt+key (Option+Shift+key on macOS); either modifier order works when typing.', + 'shortcuts.sectionApp': 'This app', + 'shortcuts.sectionSearch': 'Search bar', + 'shortcuts.sectionStandard': 'Standard', + 'shortcuts.openHelp': 'Show this help', + 'shortcuts.or': 'or', + 'shortcuts.then': 'then', + 'shortcuts.focusPrimary': + 'Focus main column scroll (desktop; then arrow keys, Page Up/Down, Home/End)', + 'shortcuts.focusSecondary': + 'Focus side panel scroll when it is open (desktop; same keys to scroll)', + 'shortcuts.newNote': 'New note / post (after login if needed)', + 'shortcuts.searchSuggest': 'Move through suggestions', + 'shortcuts.searchDismiss': 'Close search dropdown', + 'shortcuts.tabNavigate': 'Move focus to the next or previous control', + 'shortcuts.activate': 'Activate buttons and many controls', + 'shortcuts.closeOverlays': 'Close dialogs, menus, and the search dropdown', + 'shortcuts.scrollWhenFocused': 'Scroll the focused scrollable area', + 'shortcuts.browserBack': 'Browser back (history)', + 'No spells yet. Create one with the button above.': + 'No spells yet. Create one with the button above.', + 'Loading spells from your relays…': 'Loading spells from your relays…', + 'Could not run this spell. Check that it has a valid REQ/COUNT command, or add write relays in settings.': + 'Could not run this spell. Check that it has a valid REQ/COUNT command, or add write relays in settings.', + 'Select a spell…': 'Select a spell…', + 'Spells from follows': 'From people you follow ({{count}})', + 'Other spells': 'Other spells ({{count}})', + 'Select a spell to view its feed.': 'Select a spell to view its feed.', + 'Add another row': 'Add another row', + 'Remove this row': 'Remove this row', + 'One kind number per row (e.g. 1 for notes).': 'One kind number per row (e.g. 1 for notes).', + 'One author per row: $me, $contacts, or hex pubkey / npub.': + 'One author per row: $me, $contacts, or hex pubkey / npub.', + 'One hex event id per row.': 'One hex event id per row.', + 'One wss:// URL per row. Leave empty to use your write relays.': + 'One wss:// URL per row. Leave empty to use your write relays.', + 'One topic per row.': 'One topic per row.', + topic: 'topic', + 'Spell form fields': 'Spell form fields', + 'Counting matching events…': 'Counting matching events…', + 'Edit spell': 'Edit spell', + 'Clone spell': 'Clone spell', + 'Spell cloned': 'Spell cloned', + 'Clone spell intro': + 'This spell is preloaded from another author’s definition. Change anything you like, then save to publish a new spell signed with your account.', + 'Spell updated': 'Spell updated', + 'Relay URL': 'Relay', + Count: 'Count', + 'Edit spell relays': 'Edit relays', + 'COUNT spell relay errors hint': + 'One or more relays failed or returned an error. You can change the relay list in the spell and save again.', + 'COUNT spell total distinct explanation': + 'Distinct matching event IDs across all relays that responded successfully (duplicates across relays removed). Each relay only returns up to the filter limit.', + 'Leave empty to use your write relays.': 'Leave empty to use your write relays.', + 'COUNT spell result explanation': + 'Distinct events returned for this filter (merged from your spell relays and default write relays, duplicates removed). Relays only return up to the filter limit.', + 'COUNT spell may be capped by limit': + 'This count may equal your spell limit — there could be more matching events on the network.', + 'Spell count failed. Check relays or try again.': + 'Could not complete the count. Check relays or try again.', + 'REQ returns a feed; COUNT returns a number.': + 'REQ: scrollable feed (choose live Feed or one-shot Fetch below). COUNT: a single number, no feed.', + listImportManualLabel: 'Pre-fill from event', + listImportFromEventHint: + 'Supported tags are merged into the form (e, p, t, relay, r, a where possible). Non-empty content is skipped; encrypted private items are not read. You may see notices for unmapped tags.', + listImportManualPlaceholder: '64-char hex, nevent1…, or naddr1…', + listImportLoadManual: 'Apply', + listImportContentSkipped: + 'This event has non-empty content (may include encrypted private items). Only public tags were merged.', + listImportUnsupportedEmoji: + 'This list includes emoji tags (NIP-30); those are not added to the spell filter.', + listImportUnsupportedTag: + 'Tags of type “{{tag}}” ({{count}}) are not mapped to spell filters yet.', + listImportBadATag: 'Could not parse address tag: {{preview}}…', + listImportATagNotFound: 'Could not resolve address tag: {{preview}}…', + listImportATagFailed: 'Failed to resolve address tag: {{preview}}…', + listImportEventNotFound: 'No event found for that reference.', + 'REQ tag filters': 'REQ tag filters', + spellFormTagFiltersLabel: 'Tag filters on matching events', + spellCreateIntro: + 'Spells are saved relay filters (NIP-A7). The “Spell query” section is the real definition; the dashed box at the bottom is only for names, descriptions, and catalog labels. Use $me for your pubkey and $contacts for your follow list when executing.', + spellFormSectionQueryTitle: 'Spell query', + spellFormSectionQueryHint: + 'This block is the actual spell definition: it becomes the Nostr REQ/COUNT filter (kinds, authors, time range, tag filters on matching events, relays, etc.).', + spellFormSectionMetadataTitle: 'Listing & labels (optional)', + spellFormSectionMetadataBadge: 'Not part of the query', + spellFormSectionMetadataHint: + 'Name, description, and topic labels are only for display and spell pickers. They are not used when the spell fetches events.', + spellFormCatalogTopicsLabel: 'Topic labels on this spell (t tags)', + spellTopicsMetadataHint: + 'One topic per row. To filter which notes you see, use “REQ tag filters” in the spell query above (letter “t”).', + spellTagFiltersHint: + 'Optional filters on subscribed events (NIP-01 single-letter tags). Example: letter “t”, values “bitcoin”.', + spellTagFiltersEmpty: 'No tag filters yet. Add rows below or apply an event reference above.', + 'Tag filter letter': 'Tag letter', + 'Filter value': 'Value', + 'Add tag filter': 'Add tag filter', + spellPickerSectionYours: 'Your spells', + 'Failed to remove spell from local storage': 'Failed to remove spell from local storage', + Spells: 'Spells', + 'doublePane.secondaryEmpty': 'Open a note, profile, or settings item to show it here.', + 'doublePane.secondaryEmptyHint': 'Your feed and primary pages stay on the left.', + '(empty)': '(empty)', + '12-hour (AM/PM)': '12-hour (AM/PM)', + '24-hour': '24-hour', + 'A new version is available': 'A new version is available', + 'A short description of the article content': 'A short description of the article content', + AM: 'AM', + 'Access via': 'Access via', + 'Accessed On': 'Accessed On', + 'Accessed on': 'Accessed on', + 'Add RSS feed URLs to subscribe to. If no feeds are configured, the default feed will be used.': + 'Add RSS feed URLs to subscribe to. If no feeds are configured, the default feed will be used.', + 'Add a relay to block': 'Add a relay to block', + 'Add at least one invitee': 'Add at least one invitee', + 'Add client identifier': 'Add client identifier', + 'Add expiration tags by default': 'Add expiration tags by default', + 'Add quiet tags by default': 'Add quiet tags by default', + 'Add recipients using nostr: mentions (e.g., nostr:npub1...) or the recipient selector above': + 'Add recipients using nostr: mentions (e.g., nostr:npub1...) or the recipient selector above', + 'Add the source (where this text is from)': 'Add the source (where this text is from)', + 'Add to favorites': 'Add to favorites', + 'Add {{count}} Selected': 'Add {{count}} Selected', + 'Added at': 'Added at', + 'Added {{count}} relay(s)': 'Added {{count}} relay(s)', + 'Adding...': 'Adding...', + 'Adding…': 'Adding…', + 'Advanced Options': 'Advanced Options', + 'All Topics': 'All Topics', + 'All favorite relays': 'All favorite relays', + 'All feeds from OPML file are already added': 'All feeds from OPML file are already added', + 'All items deleted successfully': 'All items deleted successfully', + 'Already blocked': 'Already blocked', + 'Already saved': 'Already saved', + 'Application Recommendations': 'Application Recommendations', + 'Are you sure you want to clear all cached data? This will delete all stored events and settings from your browser.': + 'Are you sure you want to clear all cached data? This will delete all stored events and settings from your browser.', + 'Are you sure you want to delete all items from this store?': + 'Are you sure you want to delete all items from this store?', + 'Are you sure you want to unmute this user? This will restore the follow button.': + 'Are you sure you want to unmute this user? This will restore the follow button.', + "Are you sure you want to unregister the service worker? This will clear this app's service worker caches and you will need to reload the page.": + "Are you sure you want to unregister the service worker? This will clear this app's service worker caches and you will need to reload the page.", + 'Article exported as AsciiDoc': 'Article exported as AsciiDoc', + 'Article exported as Markdown': 'Article exported as Markdown', + 'Article title (optional)': 'Article title (optional)', + Audio: 'Audio', + Author: 'Author', + 'Author is required for reading groups': 'Author is required for reading groups', + 'Author name (optional)': 'Author name (optional)', + Authors: 'Authors', + 'Block Relay': 'Block Relay', + 'Blocked Relays': 'Blocked Relays', + 'Blocking...': 'Blocking...', + Blossom: 'Blossom', + Book: 'Book', + 'Brief description of the event': 'Brief description of the event', + 'Brief summary (optional)': 'Brief summary (optional)', + 'Brief summary of the article (optional)': 'Brief summary of the article (optional)', + 'Browse Cache': 'Browse Cache', + 'C-Tag': 'C-Tag', + 'Cache Relays': 'Cache Relays', + 'Cache cleared successfully': 'Cache cleared successfully', + 'Cache refreshed successfully': 'Cache refreshed successfully', + 'Cache relays are used to store and retrieve events locally. These relays are merged with your inbox and outbox relays.': + 'Cache relays are used to store and retrieve events locally. These relays are merged with your inbox and outbox relays.', + 'Cache relays must be local network URLs only (e.g., ws://localhost:4869 or ws://127.0.0.1:4869)': + 'Cache relays must be local network URLs only (e.g., ws://localhost:4869 or ws://127.0.0.1:4869)', + 'Cache relays saved': 'Cache relays saved', + Cancelled: 'Cancelled', + Chapter: 'Chapter', + 'Chapter Title': 'Chapter Title', + 'Chapter title (optional)': 'Chapter title (optional)', + Citation: 'Citation', + 'Citation title (optional)': 'Citation title (optional)', + 'Clean up duplicate replaceable events? This will keep only the newest version of each event.': + 'Clean up duplicate replaceable events? This will keep only the newest version of each event.', + 'Cleaned up {{deleted}} duplicate entries, kept {{kept}}': + 'Cleaned up {{deleted}} duplicate entries, kept {{kept}}', + 'Cleaned up {{deleted}} duplicate entries, kept {{kept}} (total items after cleanup: {{total}})': + 'Cleaned up {{deleted}} duplicate entries, kept {{kept}} (total items after cleanup: {{total}})', + 'Cleanup Duplicates': 'Cleanup Duplicates', + Clear: 'Clear', + 'Clear Cache': 'Clear Cache', + 'Clear Service Worker': 'Clear Service Worker', + 'Clear cached data stored in your browser, including IndexedDB events, localStorage settings, and service worker caches.': + 'Clear cached data stored in your browser, including IndexedDB events, localStorage settings, and service worker caches.', + 'Click update to get the latest features and improvements': + 'Click update to get the latest features and improvements', + Close: 'Close', + 'Comma or space-separated topics (will be added as t-tags)': + 'Comma or space-separated topics (will be added as t-tags)', + Command: 'Command', + Configure: 'Configure', + 'Connect Wallet': 'Connect Wallet', + 'Console Logs': 'Console Logs', + 'Console logs cleared': 'Console logs cleared', + 'Content is required': 'Content is required', + 'Content must be 5000 characters or less': 'Content must be 5000 characters or less', + Controversial: 'Controversial', + 'Copied!': 'Copied!', + 'Copy to clipboard': 'Copy to clipboard', + 'Create Article': 'Create Article', + 'Create Citation': 'Create Citation', + 'Create Highlight': 'Create Highlight', + 'Create New Thread': 'Create New Thread', + 'Create Poll': 'Create Poll', + 'Create Thread': 'Create Thread', + 'Create a Spell': 'Create a Spell', + 'Creating...': 'Creating...', + 'D-Tag': 'D-Tag', + 'D-Tag is required for articles': 'D-Tag is required for articles', + DOI: 'DOI', + 'Date-based (all-day)': 'Date-based (all-day)', + 'Default expiration (months)': 'Default expiration (months)', + 'Default quiet period (days)': 'Default quiet period (days)', + 'Delete All': 'Delete All', + 'Delete item': 'Delete item', + 'Deleted {{count}} event(s)': 'Deleted {{count}} event(s)', + 'Deletion request sent': 'Deletion request sent', + 'Description (content)': 'Description (content)', + 'Digital Object Identifier (optional)': 'Digital Object Identifier (optional)', + 'Disable word wrap': 'Disable word wrap', + 'Discovered Relays': 'Discovered Relays', + 'Discovering relays...': 'Discovering relays...', + Discussion: 'Discussion', + Discussions: 'Discussions', + Downvote: 'Downvote', + 'Edited by': 'Edited by', + Editor: 'Editor', + 'Editor name (optional)': 'Editor name (optional)', + 'Enable word wrap': 'Enable word wrap', + 'End date': 'End date', + 'End date must be after start date': 'End date must be after start date', + 'Enter a Nostr event identifier (nevent, naddr, note, or hex ID) OR a web URL (https://). Not both.': + 'Enter a Nostr event identifier (nevent, naddr, note, or hex ID) OR a web URL (https://). Not both.', + 'Enter a descriptive title for your thread': 'Enter a descriptive title for your thread', + 'Enter the author name': 'Enter the author name', + 'Enter the book title': 'Enter the book title', + 'Enter the specific text you want to highlight in the main content area above': + 'Enter the specific text you want to highlight in the main content area above', + 'Event IDs (ids)': 'Event IDs (ids)', + 'Event appears to be invalid or corrupted': 'Event appears to be invalid or corrupted', + 'Event has no value data': 'Event has no value data', + 'Event is missing required fields: {{fields}}': 'Event is missing required fields: {{fields}}', + 'Event type': 'Event type', + 'Expiration Tags': 'Expiration Tags', + 'Export OPML': 'Export OPML', + 'Export as AsciiDoc': 'Export as AsciiDoc', + 'Export as Markdown': 'Export as Markdown', + 'External Citation': 'External Citation', + 'External Citation Settings': 'External Citation Settings', + 'Failed to add relay. Please try again.': 'Failed to add relay. Please try again.', + 'Failed to add relays': 'Failed to add relays', + 'Failed to block relay. Please try again.': 'Failed to block relay. Please try again.', + 'Failed to cleanup duplicates': 'Failed to cleanup duplicates', + 'Failed to clear cache': 'Failed to clear cache', + 'Failed to copy': 'Failed to copy', + 'Failed to create relay set. Please try again.': + 'Failed to create relay set. Please try again.', + 'Failed to create thread': 'Failed to create thread', + 'Failed to create thread. Please try a different relay.': + 'Failed to create thread. Please try a different relay.', + 'Failed to delete all items': 'Failed to delete all items', + 'Failed to delete item': 'Failed to delete item', + 'Failed to discover relays': 'Failed to discover relays', + 'Failed to export OPML file': 'Failed to export OPML file', + 'Failed to export article': 'Failed to export article', + 'Failed to import OPML file: {{error}}': 'Failed to import OPML file: {{error}}', + 'Failed to load RSS feeds': 'Failed to load RSS feeds', + 'Failed to load store items': 'Failed to load store items', + 'Failed to mute user privately': 'Failed to mute user privately', + 'Failed to mute user publicly': 'Failed to mute user publicly', + 'Failed to pin note': 'Failed to pin note', + 'Failed to publish post': 'Failed to publish post', + 'Failed to publish reply': 'Failed to publish reply', + 'Failed to publish thread': 'Failed to publish thread', + 'Failed to publish to some relays. Please try again or use different relays.': + 'Failed to publish to some relays. Please try again or use different relays.', + 'Failed to save RSS feeds': 'Failed to save RSS feeds', + 'Failed to save cache relays': 'Failed to save cache relays', + 'Failed to save relay list': 'Failed to save relay list', + 'Failed to unregister service worker: ': 'Failed to unregister service worker: ', + 'Failed to unsubscribe from topic': 'Failed to unsubscribe from topic', + Favorite: 'Favorite', + Fetch: 'Fetch', + 'Fetch once, then stop.': 'Fetch once, then stop.', + 'Filter by': 'Filter by', + 'Flat View': 'Flat View', + 'Font size': 'Font size', + 'Full Quote/Context': 'Full Quote/Context', + 'Full-text search query': 'Full-text search query', + Geohash: 'Geohash', + 'Geohash (optional)': 'Geohash (optional)', + 'Global quiet mode': 'Global quiet mode', + 'Group discussions by topic': 'Group discussions by topic', + 'Grouped View': 'Grouped View', + Groups: 'Groups', + 'Handler {{index}}': 'Handler {{index}}', + 'Hardcopy Citation': 'Hardcopy Citation', + 'Hardcopy Citation Settings': 'Hardcopy Citation Settings', + Hide: 'Hide', + 'Hide interactions on all posts': 'Hide interactions on all posts', + 'Hide interactions on posts with quiet tags': 'Hide interactions on posts with quiet tags', + 'High PoW': 'High PoW', + 'Higher values make your thread harder to mine but more unique.': + 'Higher values make your thread harder to mine but more unique.', + Highlight: 'Highlight', + 'Highlight Settings': 'Highlight Settings', + 'How to Create a Highlight (NIP-84)': 'How to Create a Highlight (NIP-84)', + 'Human-readable spell name': 'Human-readable spell name', + 'Image URL': 'Image URL', + 'Import OPML': 'Import OPML', + 'Imported {{count}} feed(s) from OPML file': 'Imported {{count}} feed(s) from OPML file', + 'In-Browser Cache': 'In-Browser Cache', + Insert: 'Insert', + 'Insert URL into your post and publish to Nostr GIF library (NIP-94).': + 'Insert URL into your post and publish to Nostr GIF library (NIP-94).', + 'Insert event or address': 'Insert event or address', + 'Insert mention': 'Insert mention', + 'Internal Citation': 'Internal Citation', + 'Internal Citation Settings': 'Internal Citation Settings', + 'Invalid Event': 'Invalid Event', + 'Invalid Lightning Address': 'Invalid Lightning Address', + 'Invalid Lightning Address. Please enter a valid Lightning Address or LNURL.': + 'Invalid Lightning Address. Please enter a valid Lightning Address or LNURL.', + 'Invalid URL': 'Invalid URL', + 'Invalid content JSON': 'Invalid content JSON', + 'Invalid relay URL': 'Invalid relay URL', + 'Invalid source. Please enter a note ID, nevent, naddr, hex ID, or URL.': + 'Invalid source. Please enter a note ID, nevent, naddr, hex ID, or URL.', + 'Item deleted successfully': 'Item deleted successfully', + JSON: 'JSON', + 'Join link': 'Join link', + 'Journal/Publication name (optional)': 'Journal/Publication name (optional)', + Json: 'JSON', + Kinds: 'Kinds', + 'Language Model': 'Language Model', + Large: 'Large', + 'Leave empty for HiveTalk, or paste Zoom / Teams / other link': + 'Leave empty for HiveTalk, or paste Zoom / Teams / other link', + 'Lightning payment failed': 'Lightning payment failed', + Limit: 'Limit', + 'Live feed; keeps updating.': 'Live feed; keeps updating.', + 'Loading more...': 'Loading more...', + 'Loading relays...': 'Loading relays...', + 'Location (optional)': 'Location (optional)', + 'Log in to run this spell (it uses $me or $contacts).': + 'Log in to run this spell (it uses $me or $contacts).', + 'Login failed': 'Login failed', + 'Login to configure RSS feeds': 'Login to configure RSS feeds', + 'Long-form Article': 'Long-form Article', + 'Mailbox relays saved': 'Mailbox relays saved', + 'Mark as NSFW': 'Mark as NSFW', + 'Maximum {{max}} invitees': 'Maximum {{max}} invitees', + 'Maximum {{max}} invitees allowed': 'Maximum {{max}} invitees allowed', + Medium: 'Medium', + Mode: 'Mode', + 'Most Zapped': 'Most Zapped', + 'Move to top': 'Move to top', + 'Multiple choice': 'Multiple choice', + 'Mute failed': 'Mute failed', + NSFW: 'NSFW', + Name: 'Name', + 'Name of the language model used': 'Name of the language model used', + 'New External Citation': 'New External Citation', + 'New Hardcopy Citation': 'New Hardcopy Citation', + 'New Highlight': 'New Highlight', + 'New Internal Citation': 'New Internal Citation', + 'New Long-form Article': 'New Long-form Article', + 'New Poll': 'New Poll', + 'New Prompt Citation': 'New Prompt Citation', + 'New Public Message': 'New Public Message', + 'New Wiki Article': 'New Wiki Article', + 'New Wiki Article (Markdown)': 'New Wiki Article (Markdown)', + Newest: 'Newest', + 'No JSON available': 'No JSON available', + 'No RSS feeds found in OPML file': 'No RSS feeds found in OPML file', + 'No cached data found.': 'No cached data found.', + 'No console logs captured yet': 'No console logs captured yet', + 'No events found': 'No events found', + 'No feeds configured. Default feed will be used.': + 'No feeds configured. Default feed will be used.', + 'No feeds to export': 'No feeds to export', + 'No groups available. Join some groups first.': 'No groups available. Join some groups first.', + 'No items in this store.': 'No items in this store.', + 'No items match your search.': 'No items match your search.', + 'No logs match the current filters': 'No logs match the current filters', + 'No posts found': 'No posts found', + 'No posts match your search': 'No posts match your search', + 'No relays available. Please configure relays in settings.': + 'No relays available. Please configure relays in settings.', + 'No service workers or caches found for this app': + 'No service workers or caches found for this app', + 'No users found': 'No users found', + 'No valid RSS feed URLs found in OPML file': 'No valid RSS feed URLs found in OPML file', + 'Note pinned': 'Note pinned', + 'Note unpinned': 'Note unpinned', + Oldest: 'Oldest', + 'Open Timestamp': 'Open Timestamp', + 'Opens in a new tab. Copy a GIF URL there, then paste below. If this picker closed, click “Insert GIF” again to paste.': + 'Opens in a new tab. Copy a GIF URL there, then paste below. If this picker closed, click “Insert GIF” again to paste.', + Option: 'Option', + Optional: 'Optional', + 'Optional image for the event': 'Optional image for the event', + 'Optionally, add the full quote/context to show your highlight within it': + 'Optionally, add the full quote/context to show your highlight within it', + PM: 'PM', + 'Page Range': 'Page Range', + Pages: 'Pages', + 'Paste URL of a GIF': 'Paste URL of a GIF', + 'Paste the entire original passage that contains your highlight': + 'Paste the entire original passage that contains your highlight', + Photo: 'Photo', + 'Picture Note': 'Picture Note', + 'Pin note': 'Pin note', + 'Plain text description of the query': 'Plain text description of the query', + 'Please login to view bookmarks': 'Please login to view bookmarks', + 'Please select a group': 'Please select a group', + 'Please select at least one relay': 'Please select at least one relay', + 'Please set a start date': 'Please set a start date', + 'Poll with no options': 'Poll with no options', + 'Post published to some relays': 'Post published to some relays', + 'Posts will automatically include expiration tags': + 'Posts will automatically include expiration tags', + 'Posts will automatically include quiet tags': 'Posts will automatically include quiet tags', + 'Posts will be quiet for this many days': 'Posts will be quiet for this many days', + 'Posts will expire after this many months': 'Posts will expire after this many months', + 'Processing...': 'Processing...', + 'Profile event not available': 'Profile event not available', + 'Prompt Citation': 'Prompt Citation', + 'Prompt Citation Settings': 'Prompt Citation Settings', + 'Prompt Conversation Script': 'Prompt Conversation Script', + 'Proof of Work': 'Proof of Work', + 'Publish to Relays': 'Publish to Relays', + 'Published By': 'Published By', + 'Published In': 'Published In', + 'Published On': 'Published On', + 'Published in': 'Published in', + 'Published on': 'Published on', + 'Publisher name (optional)': 'Publisher name (optional)', + 'Quiet Tags': 'Quiet Tags', + 'RSS Feed': 'RSS Feed', + 'RSS Feed Settings': 'RSS Feed Settings', + 'RSS Feeds': 'RSS Feeds', + 'RSS feeds exported to OPML file': 'RSS feeds exported to OPML file', + 'RSS feeds saved': 'RSS feeds saved', + 'Rate limited. Please wait before trying again.': + 'Rate limited. Please wait before trying again.', + 'Reaction published': 'Reaction published', + 'Reaction removed': 'Reaction removed', + 'Read full article': 'Read full article', + 'Reading group entry': 'Reading group entry', + 'Readings Options': 'Readings Options', + Recipients: 'Recipients', + 'Recipients detected from your message:': 'Recipients detected from your message:', + 'Recommended Relays': 'Recommended Relays', + 'Recommended applications for handling events of kind {{kind}}': + 'Recommended applications for handling events of kind {{kind}}', + 'Reference to the cited Nostr event in kind:pubkey:hex format': + 'Reference to the cited Nostr event in kind:pubkey:hex format', + 'Refresh Cache': 'Refresh Cache', + 'Refreshing posts...': 'Refreshing posts...', + 'Relative: 7d, 24h, 1w, 1mo, 1y. Or Unix timestamp.': + 'Relative: 7d, 24h, 1w, 1mo, 1y. Or Unix timestamp.', + Relay: 'Relay', + 'Relay Hint': 'Relay Hint', + 'Relay URL (optional)': 'Relay URL (optional)', + 'Relay blocked successfully': 'Relay blocked successfully', + 'Relay requires authentication for write access. Please try a different relay or contact the relay operator.': + 'Relay requires authentication for write access. Please try a different relay or contact the relay operator.', + 'Relay set options': 'Relay set options', + 'Remove from favorites': 'Remove from favorites', + Rendered: 'Rendered', + 'Reply published': 'Reply published', + 'Reply published to some relays': 'Reply published to some relays', + 'Reply to Public Message': 'Reply to Public Message', + 'Republish to all active relays': 'Republish to all active relays', + 'Republish to all available relays': 'Republish to all available relays', + 'Required: start (or start date), invitees. Optional: title, end, location, summary, topics, image.': + 'Required: start (or start date), invitees. Optional: title, end, location, summary, topics, image.', + 'Required: start time or start date. Optional: title, end, location, summary, topics, image.': + 'Required: start time or start date. Optional: title, end, location, summary, topics, image.', + 'Required: start time, invitees. Join link defaults to HiveTalk. Optional: title, end, summary, topics, image.': + 'Required: start time, invitees. Join link defaults to HiveTalk. Optional: title, end, summary, topics, image.', + 'Required: start time. Join link defaults to HiveTalk. Optional: title, end, summary, topics, image.': + 'Required: start time. Join link defaults to HiveTalk. Optional: title, end, summary, topics, image.', + 'Respect quiet tags': 'Respect quiet tags', + 'Search (NIP-50)': 'Search (NIP-50)', + 'Search by name or npub…': 'Search by name or npub…', + 'Search calendar, publications, wiki…': 'Search calendar, publications, wiki…', + 'Search for user…': 'Search for user…', + 'Search items...': 'Search items...', + 'Search logs...': 'Search logs...', + 'Search notes, threads, long-form…': 'Search notes, threads, long-form…', + 'Search on GifBuddy': 'Search on GifBuddy', + 'Search posts...': 'Search posts...', + 'Search threads by title, content, tags, npub, author...': + 'Search threads by title, content, tags, npub, author...', + 'Searching all available relays...': 'Searching all available relays...', + 'Searching…': 'Searching…', + 'See reference': 'See reference', + 'Select Group': 'Select Group', + 'Select Media Type': 'Select Media Type', + 'Select group...': 'Select group...', + 'Select relays': 'Select relays', + 'Select the group where you want to create this discussion.': + 'Select the group where you want to create this discussion.', + 'Select topic...': 'Select topic...', + 'Selected text': 'Selected text', + 'Send Public Message': 'Send Public Message', + 'Send a Lightning payment to this user': 'Send a Lightning payment to this user', + 'Service worker caches cleared. Please reload the page.': + 'Service worker caches cleared. Please reload the page.', + 'Service worker unregistered and caches cleared. Please reload the page.': + 'Service worker unregistered and caches cleared. Please reload the page.', + 'Service worker unregistered. Please reload the page.': + 'Service worker unregistered. Please reload the page.', + 'Share your thoughts, ask questions, or start a discussion...': + 'Share your thoughts, ask questions, or start a discussion...', + 'Short Video Note': 'Short Video Note', + 'Show RSS Feed': 'Show RSS Feed', + 'Show all discussions in a single list': 'Show all discussions in a single list', + 'Show less': 'Show less', + Since: 'Since', + Small: 'Small', + 'Some relays have temporarily disabled writes.': + 'Some relays have temporarily disabled writes.', + Source: 'Source', + 'Spell definition': 'Spell definition', + 'Spell published': 'Spell published', + 'Start date': 'Start date', + 'Start typing to see a preview...': 'Start typing to see a preview...', + 'Subject (Book Title)': 'Subject (Book Title)', + 'Subject (book title) is required for reading groups': + 'Subject (book title) is required for reading groups', + 'Subject / Topics': 'Subject / Topics', + Subscribe: 'Subscribe', + Subscribed: 'Subscribed', + 'Subscribed to topic': 'Subscribed to topic', + 'Subscribed to topic (local)': 'Subscribed to topic (local)', + 'Subscribing...': 'Subscribing...', + Summary: 'Summary', + 'Supported Event Types': 'Supported Event Types', + 'Take a note': 'Take a note', + 'The full prompt conversation (optional)': 'The full prompt conversation (optional)', + 'The main editor above should contain only the text you want to highlight. This field should contain the full quote or paragraph for context.': + 'The main editor above should contain only the text you want to highlight. This field should contain the full quote or paragraph for context.', + 'These relays were found from your NIP-05 identifier and signer. You can add them to your relay list.': + 'These relays were found from your NIP-05 identifier and signer. You can add them to your relay list.', + 'This file could be either audio or video. Please select the correct type:': + 'This file could be either audio or video. Please select the correct type:', + 'This store does not contain replaceable events': + 'This store does not contain replaceable events', + 'This will add additional tags for author and subject to help organize reading group discussions.': + 'This will add additional tags for author and subject to help organize reading group discussions.', + 'Thread Content': 'Thread Content', + 'Thread Title': 'Thread Title', + 'Thread creation timed out. Please try again.': 'Thread creation timed out. Please try again.', + 'Thread published': 'Thread published', + 'Threads are organized by topics. Choose a topic that best fits your discussion.': + 'Threads are organized by topics. Choose a topic that best fits your discussion.', + 'Time-based': 'Time-based', + 'Title is required': 'Title is required', + 'Title must be 100 characters or less': 'Title must be 100 characters or less', + 'To translate notes and other content, use your browser’s built-in translation. For example: right-click the page and choose “Translate to…”, or use the translate icon in the address bar.': + 'To translate notes and other content, use your browser’s built-in translation. For example: right-click the page and choose “Translate to…”, or use the translate icon in the address bar.', + Top: 'Top', + Topic: 'Topic', + URL: 'URL', + 'URL of the article cover image (optional)': 'URL of the article cover image (optional)', + 'Unique identifier for this article (required)': + 'Unique identifier for this article (required)', + 'Unmute failed': 'Unmute failed', + 'Unpin note': 'Unpin note', + Unsubscribe: 'Unsubscribe', + 'Unsubscribed from topic': 'Unsubscribed from topic', + 'Unsubscribing...': 'Unsubscribing...', + Until: 'Until', + Untitled: 'Untitled', + Update: 'Update', + 'Updating...': 'Updating...', + 'Upload Audio Comment': 'Upload Audio Comment', + 'Upload Audio Message': 'Upload Audio Message', + 'Upload Media': 'Upload Media', + Upvote: 'Upvote', + 'User unmuted': 'User unmuted', + 'Version number (optional)': 'Version number (optional)', + Video: 'Video', + 'Video Note': 'Video Note', + 'Video file': 'Video file', + 'View Console Logs': 'View Console Logs', + 'View JSON': 'View JSON', + 'View cached items in this store.': 'View cached items in this store.', + 'View definition': 'View definition', + 'View details about cached data in IndexedDB stores. Click on a store to view its items.': + 'View details about cached data in IndexedDB stores. Click on a store to view its items.', + 'View on Alexandria': 'View on Alexandria', + 'View on DecentNewsroom': 'View on DecentNewsroom', + 'View on Wikistr': 'View on Wikistr', + 'View recent console logs for debugging': 'View recent console logs for debugging', + 'Voice Comment': 'Voice Comment', + 'Voice Note': 'Voice Note', + 'Voice note or audio file': 'Voice note or audio file', + Volume: 'Volume', + 'Volume number (optional)': 'Volume number (optional)', + 'Vote published': 'Vote published', + 'Vote removed': 'Vote removed', + 'Website where LLM was accessed (optional)': 'Website where LLM was accessed (optional)', + 'Wiki Article (AsciiDoc)': 'Wiki Article (AsciiDoc)', + 'Wiki Article (Markdown)': 'Wiki Article (Markdown)', + 'You can only delete your own notes': 'You can only delete your own notes', + 'You must be logged in to create a thread': 'You must be logged in to create a thread', + 'You need to add at least one media server in order to upload media files.': + 'You need to add at least one media server in order to upload media files.', + 'You need to login first': 'You need to login first', + 'Your account is blocked from posting to this relay.': + 'Your account is blocked from posting to this relay.', + Zap: 'Zap', + 'Zap failed': 'Zap failed', + created_at: 'created_at', + 'e tag of kind 1040 event (optional)': 'e tag of kind 1040 event (optional)', + 'e.g. meetup, conference': 'e.g. meetup, conference', + 'e.g., 123-145 (optional)': 'e.g., 123-145 (optional)', + 'e.g., GPT-4, Claude, etc. (required)': 'e.g., GPT-4, Claude, etc. (required)', + 'e.g., my-article-title': 'e.g., my-article-title', + entries: 'entries', + 'from Bunker': 'from Bunker', + 'from Extension': 'from Extension', + 'from NIP-05': 'from NIP-05', + general: 'general', + 'https://example.com (required)': 'https://example.com (required)', + 'https://example.com/image.jpg': 'https://example.com/image.jpg', + id: 'id', + items: 'items', + kind: 'kind', + 'kind:pubkey:hex format (required)': 'kind:pubkey:hex format (required)', + 'last updated': 'last updated', + matching: 'matching', + naddr: 'naddr', + nevent: 'nevent', + 'nevent1..., naddr1..., note1..., hex ID, or https://...': + 'nevent1..., naddr1..., note1..., hex ID, or https://...', + 'no notes found': 'no notes found', + of: 'of', + 'on note': 'on note', + optional: 'optional', + pubkey: 'pubkey', + 'sent a public message': 'sent a public message', + 'sent you a public message': 'sent you a public message', + 'sent you a public message (along with {{count}} others)': + 'sent you a public message (along with {{count}} others)', + sig: 'sig', + 'started a discussion in {{topic}}': 'started a discussion in {{topic}}', + tags: 'tags', + thread: 'thread', + threads: 'threads', + 'topic1, topic2, topic3': 'topic1, topic2, topic3', + '{{count}} relay(s) selected': '{{count}} relay(s) selected', + '🔞 NSFW 🔞': '🔞 NSFW 🔞' } } diff --git a/src/i18n/locales/fa.ts b/src/i18n/locales/fa.ts index 0d05b9cf..2df888ce 100644 --- a/src/i18n/locales/fa.ts +++ b/src/i18n/locales/fa.ts @@ -5,8 +5,12 @@ export default { 'New Note': 'یادداشت جدید', Post: 'ارسال', Home: 'خانه', + Feed: 'Feed', + 'Favorites Feed': 'Favorites Feed', + 'Pinned note': 'Pinned note', 'Relay settings': 'تنظیمات رله', Settings: 'تنظیمات', + 'Account menu': 'Account menu', SidebarRelays: 'رله‌ها', Refresh: 'بازخوانی', Profile: 'پروفایل', @@ -30,6 +34,12 @@ export default { 'loading...': 'در حال بارگذاری...', 'Loading...': 'در حال بارگذاری...', 'no more notes': 'یادداشت بیشتری وجود ندارد', + 'calendar entries': 'calendar entries', + 'Loading calendar events...': 'Loading calendar events...', + 'No calendar events found': 'No calendar events found', + 'Calendar events in the next {{count}} months': 'Calendar events in the next {{count}} months', + 'The nostr.band relay appears to be temporarily out of service. Please try again later.': + 'The nostr.band relay appears to be temporarily out of service. Please try again later.', 'reply to': 'پاسخ به', reply: 'پاسخ', Reply: 'پاسخ', @@ -37,6 +47,9 @@ export default { 'Write something...': 'چیزی بنویسید...', Cancel: 'لغو', Mentions: 'اشاره‌ها', + 'Search for event or address…': 'Search for event or address…', + 'Search notes…': 'Search notes…', + 'No notes found': 'No notes found', 'Failed to post': 'ارسال ناموفق', 'Post successful': 'ارسال موفق', 'Your post has been published': 'پست شما منتشر شد', @@ -45,7 +58,22 @@ export default { Quote: 'نقل قول', 'Copy event ID': 'کپی شناسه رویداد', 'Copy user ID': 'کپی شناسه کاربر', + 'Send public message': 'Send public message', 'View raw event': 'نمایش رویداد خام', + 'Edit this event': 'Edit this event', + 'Clone or fork this event': 'Clone or fork this event', + 'Event kind': 'Event kind', + 'Note content': 'Note content', + Publish: 'Publish', + 'Post published': 'Post published', + 'Edit content and tags, then publish a new signed event.': + 'Edit content and tags, then publish a new signed event.', + 'Log in to publish': 'Log in to publish', + 'Set when you publish': 'set when you publish', + 'id and sig are assigned when you publish': 'id and sig are assigned when you publish', + 'Published to some relays only': 'Published to some relays only', + 'Add field': 'Add field', + 'View full profile': 'View full profile', Like: 'پسند', 'switch to light theme': 'تغییر به تم روشن', 'switch to dark theme': 'تغییر به تم تاریک', @@ -56,18 +84,143 @@ export default { "username's used relays": 'رله‌های استفاده شده {{username}}', "username's muted": 'بی‌صدا شده‌های {{username}}', Login: 'ورود', + 'Please log in to view notifications.': 'Please log in to view notifications.', 'Follows you': 'شما را دنبال می‌کند', 'Relay Settings': 'تنظیمات رله', + 'Relays and Storage Settings': 'Relays and Storage Settings', 'Relay set name': 'نام مجموعه رله', 'Add a new relay set': 'افزودن مجموعه رله جدید', Add: 'افزودن', 'n relays': '{{n}} رله', Rename: 'تغییر نام', + 'Copy share link': 'Copy share link', + 'Copy address': 'Copy address', + 'Copy payto URI': 'Copy payto URI', + 'Copied payto address': 'Copied payto address', + 'Copied to clipboard': 'Copied to clipboard', + 'Copied {{label}} address': 'Copied {{label}} address', + 'Lightning payment address – copy to pay via your wallet': + 'Lightning payment address – copy to pay via your wallet', + 'Payment address – copy to use in your wallet or app': + 'Payment address – copy to use in your wallet or app', + 'Click to open payment options': 'Click to open payment options', + 'Click to copy address': 'Click to copy address', + 'Open on website': 'Open on website', + 'Raw profile event': 'Raw profile event', + 'Full profile event': 'Full profile event', + 'Event (JSON)': 'Event (JSON)', + 'Save full profile': 'Save full profile', + 'Add tag': 'Add tag', + 'Remove tag': 'Remove tag', + 'Tag name': 'Tag name', + Value: 'Value', + 'Add value to tag': 'Add value to tag', + 'Remove value': 'Remove value', + 'No tags. Click "Add tag" to add one.': 'No tags. Click "Add tag" to add one.', + 'Profile updated': 'Profile updated', + 'Failed to publish profile': 'Failed to publish profile', + 'Invalid profile JSON': 'Invalid profile JSON', + 'Refresh cache': 'Refresh cache', + 'Force-refresh profile and payment info from relays': + 'Force-refresh profile and payment info from relays', + 'Profile and payment cache refreshed': 'Profile and payment cache refreshed', + 'Failed to refresh cache': 'Failed to refresh cache', + 'Raw payment info event': 'Raw payment info event', + 'Payment info': 'Payment info', + 'Edit payment info': 'Edit payment info', + 'Add payment info': 'Add payment info', + 'No payment info event yet. Click "Add payment info" to create one.': + 'No payment info event yet. Click "Add payment info" to create one.', + 'Content (JSON)': 'Content (JSON)', + Tags: 'Tags', + 'Tags (JSON array of arrays, e.g. [["payto","lightning","user@domain.com"]])': + 'Tags (JSON array of arrays, e.g. [["payto","lightning","user@domain.com"]])', + 'Payment info updated': 'Payment info updated', + 'Failed to publish payment info': 'Failed to publish payment info', + 'Invalid tags JSON': 'Invalid tags JSON', + 'Payment methods': 'Payment methods', + 'NIP-A3 payto tags: type (e.g. lightning) and authority (e.g. user@domain.com).': + 'NIP-A3 payto tags: type (e.g. lightning) and authority (e.g. user@domain.com).', + 'Type (e.g. lightning)': 'Type (e.g. lightning)', + 'Authority (e.g. user@domain.com)': 'Authority (e.g. user@domain.com)', + 'Add payment method': 'Add payment method', + Remove: 'Remove', + 'Additional content (JSON)': 'Additional content (JSON)', + 'Show full event JSON': 'Show full event JSON', + 'Tag list': 'Tag list', + 'Profile event tags (e.g. lud16, nip05, website). Saved with kind 0.': + 'Profile event tags (e.g. lud16, nip05, website). Saved with kind 0.', + 'Tag value': 'Tag value', + 'Saving…': 'Saving…', 'Share with Jumble': 'اشتراک‌گذاری با Jumble', 'Share with Alexandria': 'اشتراک‌گذاری با Alexandria', + 'Start video call': 'Start video call', + 'Copy call invite link': 'Copy call invite link', + 'Start call about this': 'Start call about this', + 'Send call invite': 'Send call invite', + 'Join the video call': 'Join the video call', + 'Schedule video call': 'Schedule video call', + "You're invited to a scheduled video call.": "You're invited to a scheduled video call.", + 'Create a calendar event and send an invite. The recipient will see the event with a join link.': + 'Create a calendar event and send an invite. The recipient will see the event with a join link.', + 'Schedule a video call': 'Schedule a video call', + 'Create a calendar event and send kind 24 invites to each listed invitee.': + 'Create a calendar event and send kind 24 invites to each listed invitee.', + Invitees: 'Invitees', + 'Paste nostr:npub1... or nostr:nprofile1... (one or more)': + 'Paste nostr:npub1... or nostr:nprofile1... (one or more)', + 'Schedule and send invites': 'Schedule and send invites', + 'Add at least one invitee (paste nostr:npub or nostr:nprofile links)': + 'Add at least one invitee (paste nostr:npub or nostr:nprofile links)', + 'Scheduled call created and {{count}} invite(s) sent': + 'Scheduled call created and {{count}} invite(s) sent', + 'Join video call': 'Join video call', + 'Scheduled video call': 'Scheduled video call', + 'Video call': 'Video call', + 'Schedule and send invite': 'Schedule and send invite', + 'Scheduling…': 'Scheduling…', + 'Please set a start time': 'Please set a start time', + 'End time must be after start time': 'End time must be after start time', + 'Failed to schedule call': 'Failed to schedule call', + 'Scheduled call created and invite sent': 'Scheduled call created and invite sent', + RSVP: 'RSVP', + 'RSVP: {{status}}': 'RSVP: {{status}}', + Accepted: 'Accepted', + Tentative: 'Tentative', + Declined: 'Declined', + 'You need to log in to RSVP': 'You need to log in to RSVP', + 'RSVP updated': 'RSVP updated', + 'Failed to update RSVP': 'Failed to update RSVP', + Organizer: 'Organizer', + Attendees: 'Attendees', + 'No response': 'No response', + 'Calendar Events': 'Calendar Events', + 'Calendar Event': 'Calendar Event', + 'Schedule in-person meeting': 'Schedule in-person meeting', + 'Create a calendar event and send an invite. No video link — for real-life meetups, conferences, etc.': + 'Create a calendar event and send an invite. No video link — for real-life meetups, conferences, etc.', + "You're invited to an in-person meeting.": "You're invited to an in-person meeting.", + 'Meeting created and invite sent': 'Meeting created and invite sent', + 'Failed to create meeting': 'Failed to create meeting', + 'Create and send invite': 'Create and send invite', + 'Creating…': 'Creating…', + 'In-person meeting': 'In-person meeting', + Location: 'Location', + 'Address, venue, or place': 'Address, venue, or place', + Description: 'Description', + 'Optional notes': 'Optional notes', + 'Create a calendar event for a real-life meetup and send kind 24 invites to each invitee.': + 'Create a calendar event for a real-life meetup and send kind 24 invites to each invitee.', + 'Meeting created and {{count}} invite(s) sent': 'Meeting created and {{count}} invite(s) sent', + 'Create and send invites': 'Create and send invites', + Title: 'Title', + Start: 'Start', + End: 'End', Delete: 'حذف', 'Relay already exists': 'رله از قبل موجود است', 'invalid relay URL': 'آدرس رله نامعتبر', + 'Relay URL…': 'wss://… or relay host', + 'Open relay': 'Open relay', 'Add a new relay': 'افزودن رله جدید', back: 'بازگشت', 'Lost in the void': 'گم شده در خلاء', @@ -113,6 +266,19 @@ export default { 'Picture note requires images': 'یادداشت تصویری نیاز به تصاویر دارد', Relays: 'رله‌ها', Image: 'تصویر', + 'Upload Image': 'Upload Image', + 'Insert emoji': 'Insert emoji', + 'Insert GIF': 'Insert GIF', + 'Search GIFs': 'Search GIFs', + 'Choose a GIF': 'Choose a GIF', + 'Search GifBuddy for more GIFs': 'Search GifBuddy for more GIFs', + 'Add your own GIFs': 'Add your own GIFs', + 'Description (optional, for search)': 'Description (optional, for search)', + 'e.g. happy birthday, thumbs up': 'e.g. happy birthday, thumbs up', + 'Uploading...': 'Uploading...', + 'No GIFs found. Try searching or add your own. GIFs come from Nostr kind 1063 (NIP-94) events on GIF relays.': + 'No GIFs found. Try searching or add your own. GIFs come from Nostr kind 1063 (NIP-94) events on GIF relays.', + '{{name}} is not a GIF file': '{{name}} is not a GIF file', 'R & W': 'خواندن و نوشتن', Read: 'خواندن', Write: 'نوشتن', @@ -154,6 +320,9 @@ export default { Muted: 'بی‌صدا شده', Unmute: 'لغو بی‌صدا', 'Unmute user': 'لغو بی‌صدا کردن کاربر', + Block: 'Block', + Unblock: 'Unblock', + blocked: 'blocked', 'Append n relays': 'افزودن {{n}} رله', Append: 'افزودن', 'Select relays to append': 'رله‌ها را برای افزودن انتخاب کنید', @@ -178,6 +347,24 @@ export default { 'Explore more': 'کاوش بیشتر', 'Payment page': 'صفحه پرداخت', 'Supported NIPs': 'NIPهای پشتیبانی شده', + 'Relay liveliness (NIP-66)': 'Relay liveliness (NIP-66)', + 'Relay monitor (NIP-66)': 'Relay monitor (NIP-66)', + 'Auth required': 'Auth required', + 'Public (no auth)': 'Public (no auth)', + 'Payment required': 'Payment required', + 'No payment': 'No payment', + 'Writes required': 'Writes required', + 'Writes open': 'Writes open', + 'PoW required': 'PoW required', + 'No PoW': 'No PoW', + 'RTT open': 'RTT open', + 'RTT read': 'RTT read', + 'RTT write': 'RTT write', + 'Supported NIPs (from monitor)': 'Supported NIPs (from monitor)', + 'Last reported by monitor': 'Last reported by monitor', + Network: 'Network', + Type: 'Type', + Topics: 'Topics', 'Open in a': 'باز کردن در {{a}}', 'Cannot handle event of kind k': 'نمی‌توان رویداد از نوع {{k}} را پردازش کرد', 'Sorry! The note cannot be found 😔': 'متأسفانه! یادداشت یافت نشد 😔', @@ -209,9 +396,22 @@ export default { 'Seen on': 'دیده شده در', 'Temporarily display this reply': 'نمایش موقت این پاسخ', 'Note not found': 'یادداشت یافت نشد', + 'The note was not found on your relays or default relays.': + 'The note was not found on your relays or default relays.', + "Try searching author's relays": "Try searching author's relays", + 'Searching external relays...': 'Searching external relays...', + "This will connect to the author's relays and relay hints": + "This will connect to the author's relays and relay hints", + 'Note could not be found anywhere': 'Note could not be found anywhere', + 'Try external relays': 'Try external relays', + 'Searching...': 'Searching...', + 'Show relays': 'Show relays', + 'No external relay hints available': 'No external relay hints available', 'no more replies': 'پاسخ بیشتری وجود ندارد', 'Relay sets': 'مجموعه‌های رله', 'Favorite Relays': 'رله‌های مورد علاقه', + 'Search for Relays': 'Search for Relays', + 'Using app default relays': 'Using app default relays', "Following's Favorites": 'مورد علاقه دنبال شونده‌ها', 'no more relays': 'رله بیشتری وجود ندارد', 'Favorited by': 'مورد علاقه', @@ -227,10 +427,48 @@ export default { 'no bookmarks found': 'نشانکی یافت نشد', 'no more bookmarks': 'نشانک بیشتری وجود ندارد', Bookmarks: 'نشانک‌ها', + 'Follow Packs': 'Follow Packs', + 'Follow Pack': 'Follow Pack', + 'Please log in to follow': 'Please log in to follow', + 'Following All': 'Following All', + 'Followed {{count}} users': 'Followed {{count}} users', + 'All available members are already followed or muted': + 'All available members are already followed or muted', + 'You are already following all members of this pack': + 'You are already following all members of this pack', + 'Failed to follow pack': 'Failed to follow pack', + '{{count}} profiles': '{{count}} profiles', 'Show more': 'نمایش بیشتر', General: 'عمومی', Autoplay: 'پخش خودکار', 'Enable video autoplay on this device': 'فعال کردن پخش خودکار ویدیو در این دستگاه', + 'Add random relays to every publish': 'Random relays in publish list', + 'Add random relays to every publish description': + 'Adds {{n}} random public relays from the NIP-66 lively list (preferring monitors that reported a write RTT) to the publish relay list. When ON, they are selected by default; when OFF, they appear in the list but are unchecked so you can optionally include them.', + relayType_local: 'Local', + relayType_relay_list: 'Relay list', + relayType_client_default: 'Client default', + relayType_open_from: 'Current feed', + relayType_favorite: 'Favorite', + relayType_relay_set: 'Relay set', + relayType_contextual: 'Reply/PM', + relayType_randomly_selected: 'Random (optional)', + 'Session relays': 'Session relays', + 'Session relays tab description': + 'Relay logic for this session: working and striked preset relays, and scored random relays (used to prefer faster, proven relays when adding random relays to publish).', + 'Session relays preset working': 'Working preset relays', + 'Session relays preset working hint': + 'Preset relays (from app defaults) that have not reached 3 publish failures this session.', + 'Session relays preset striked': 'Striked preset relays', + 'Session relays preset striked hint': + 'Preset relays that have reached 3 publish failures this session and are skipped for the rest of the session.', + 'Session relays scored random': 'Scored random relays', + 'Session relays scored random hint': + 'Relays that have accepted at least one publish this session; used to prefer faster relays when picking random relays. Sorted by average latency.', + 'Session relays all striked': 'All striked relays (any source)', + successes: 'successes', + None: 'None', + 'Cache & offline storage': 'Cache & offline storage', 'Paste or drop media files to upload': 'فایل‌های رسانه را برای آپلود بچسبانید یا بکشید', Preview: 'پیش‌نمایش', 'You are about to publish an event signed by [{{eventAuthorName}}]. You are currently logged in as [{{currentUsername}}]. Are you sure?': @@ -263,6 +501,7 @@ export default { 'Are you sure you want to reset your API key? This action cannot be undone.': 'آیا مطمئن هستید که می‌خواهید کلید API خود را بازنشانی کنید؟ این عمل قابل برگشت نیست.', Warning: 'هشدار', + 'Errors & warnings': 'Errors & warnings', 'Your current API key will become invalid immediately, and any applications using it will stop working until you update them with the new key.': 'کلید API فعلی شما فوراً نامعتبر خواهد شد و هر برنامه‌ای که از آن استفاده می‌کند تا زمانی که آن را با کلید جدید به‌روزرسانی نکنید کار نخواهد کرد.', 'Service address': 'آدرس سرویس', @@ -294,6 +533,9 @@ export default { Article: 'مقاله', Unfavorite: 'حذف از علاقه‌مندی‌ها', 'Recommended relays': 'رله‌های توصیه شده', + 'Show recommended relays panel': 'Show recommended relays panel', + 'Display the right-side panel with recommended relays on desktop': + 'Display the right-side panel with recommended relays on desktop', 'Blossom server URLs': 'آدرس‌های سرور Blossom', 'You need to add at least one blossom server in order to upload media files.': 'برای آپلود فایل‌های رسانه نیاز دارید حداقل یک سرور blossom اضافه کنید.', @@ -320,7 +562,31 @@ export default { 'Refresh results': 'بارگیری مجدد نتایج', Poll: 'نظرسنجی', Media: 'رسانه', + Interests: 'Interests', + Calendar: 'Calendar', + 'No subscribed interests yet.': + 'No subscribed interests yet. Add topics in settings to see them here.', + 'No bookmarked notes with id tags yet.': + 'No bookmarked notes with id tags yet. Only classic (e-tag) bookmarks load in this feed.', + 'No follows or relays to load yet.': 'No follows or relays to load yet.', + 'Nothing to load for this feed.': 'Nothing to load for this feed.', 'Republish to ...': 'بازنشر به ...', + 'All available relays': 'All available relays', + 'All active relays (monitoring list)': 'All active relays (monitoring list)', + 'Successfully republish to all available relays': + 'Successfully republish to all available relays', + 'Failed to republish to all available relays: {{error}}': + 'Failed to republish to all available relays: {{error}}', + 'Successfully republish to all active relays': 'Successfully republish to all active relays', + 'Failed to republish to all active relays: {{error}}': + 'Failed to republish to all active relays: {{error}}', + 'No active relays in monitoring list': 'No active relays in monitoring list', + 'No relay accepted the event': 'No relay accepted the event', + 'No relays available': 'No relays available', + 'No write relays configured': 'No write relays configured', + 'Relay did not accept the event': 'Relay did not accept the event', + 'Only {{count}} relay(s) accepted the event; at least 5 required for "all active relays".': + 'Only {{count}} relay(s) accepted the event; at least 5 required for "all active relays".', 'Successfully republish to your write relays': 'با موفقیت بازنشر به رله‌های نوشتن شما انجام شد', 'Failed to republish to your write relays: {{error}}': 'بازنشر به رله‌های نوشتن شما با خطا مواجه شد: {{error}}', @@ -338,6 +604,7 @@ export default { 'No zaps yet': 'هنوز هیچ زپی وجود ندارد', 'No more boosts': 'بوست دیگری نیست', 'No boosts yet': 'هنوز بوستی نیست', + 'n more boosts': '{{count}} more boosts', Boosts: 'بوست‌ها', FollowListNotFoundConfirmation: 'فهرست دنبال‌کنندگان پیدا نشد. آیا می‌خواهید یکی جدید ایجاد کنید؟ اگر قبلاً کاربرانی را دنبال کرده‌اید، لطفاً تأیید نکنید زیرا این عملیات باعث از دست رفتن فهرست دنبال‌کنندگان قبلی شما خواهد شد.', @@ -360,8 +627,13 @@ export default { 'Maybe Later': 'شاید بعداً', "Don't remind me again": 'دیگر به من یادآوری نکن', Posts: 'پست‌ها', + 'Posts (OPs)': 'Posts (OPs)', + 'Kind 1 replies': 'Kind 1 replies', + Comments: 'Comments', + 'Replies & comments': 'Replies & comments', Articles: 'مقاله‌ها', Highlights: 'برجسته‌ها', + 'A note from': 'A note from', Polls: 'نظرسنجی‌ها', 'Voice Posts': 'پست‌های صوتی', 'Photo Posts': 'پست‌های عکس', @@ -386,6 +658,13 @@ export default { 'boosted your note': 'یادداشت شما را بوست کرد', 'zapped your note': 'یادداشت شما را زپ کرد', 'zapped you': 'شما را زپ کرد', + zapped: 'zapped', + 'Invalid zap receipt': 'Invalid zap receipt', + 'Zapped note': 'Zapped note', + 'Zapped profile': 'Zapped profile', + 'Zap reply threshold': 'Zap reply threshold', + 'Zaps above this amount will appear as replies in threads': + 'Zaps above this amount will appear as replies in threads', 'Mark as read': 'علامت‌گذاری به عنوان خوانده شده', Report: 'گزارش', 'Successfully report': 'گزارش با موفقیت ارسال شد', @@ -400,7 +679,6 @@ export default { 'See extra info for each notification': 'مشاهده اطلاعات اضافی برای هر اعلان', 'See more notifications at a glance': 'مشاهده اعلان‌های بیشتر در یک نگاه', Detailed: 'تفصیلی', - Compact: 'فشرده', 'Submit Relay': 'ارسال رله', Homepage: 'صفحه اصلی', 'Proof of Work (difficulty {{minPow}})': 'اثبات کار (دشواری {{minPow}})', @@ -427,6 +705,23 @@ export default { '{{count}} relays': '{{count}} رله', 'Republishing...': 'در حال بازنشر...', 'Trending Notes': 'یادداشت‌های محبوب', + 'Trending on Your Favorite Relays': 'Trending on Your Favorite Relays', + 'Trending on the Default Relays': 'Trending on the Default Relays', + 'Latest from your follows': 'Latest from your follows', + 'Latest from our recommended follows': 'Latest from our recommended follows', + 'Loading follow list…': 'Loading follow list…', + 'Could not load recommended follows': 'Could not load recommended follows', + 'Your follow list is empty': 'Your follow list is empty', + 'Loading recent posts from follows…': 'Loading recent posts from follows…', + 'Loading more…': 'Loading more…', + 'No recent posts from this user in the current fetch': + 'No recent posts from this user in the current fetch', + 'Loading trending notes from your relays...': 'Loading trending notes from your relays...', + Sort: 'Sort', + newest: 'newest', + oldest: 'oldest', + 'most popular': 'most popular', + 'least popular': 'least popular', 'Connected to': 'متصل به', 'Disconnect Wallet': 'قطع اتصال کیف پول', 'Are you absolutely sure?': 'آیا کاملاً مطمئن هستید؟', @@ -434,6 +729,690 @@ export default { Disconnect: 'قطع اتصال', 'Set up your wallet to send and receive sats!': 'کیف پولت را تنظیم کن تا ساتس ارسال و دریافت کنی!', - 'Set up': 'تنظیم' + 'Set up': 'تنظیم', + 'nested events': 'nested events', + 'Loading RSS feeds...': 'Loading RSS feeds...', + 'No RSS feed items available': 'No RSS feed items available', + 'Show or hide the RSS page and sidebar entry': 'Show or hide the RSS page and sidebar entry', + 'Refreshing feeds...': 'Refreshing feeds...', + 'All feeds': 'All feeds', + 'All time': 'All time', + 'Last hour': 'Last hour', + 'Last day': 'Last day', + 'Last week': 'Last week', + 'Last month': 'Last month', + 'No items match your filters': 'No items match your filters', + 'Search...': 'Search...', + '{{count}} feeds': '{{count}} feeds', + 'Toggle filters': 'Toggle filters', + 'Showing {{filtered}} of {{total}} items': 'Showing {{filtered}} of {{total}} items', + Full: 'Full', + Compact: 'فشرده', + Expand: 'Expand', + 'help.title': 'Help', + 'help.tabShortcuts': 'Keyboard shortcuts', + 'help.tabOverview': 'App overview', + 'shortcuts.title': 'Keyboard shortcuts', + 'shortcuts.intro': + 'Shortcuts for this app and common browsing. Modifier combos are Shift+Alt+key (Option+Shift+key on macOS); either modifier order works when typing.', + 'shortcuts.sectionApp': 'This app', + 'shortcuts.sectionSearch': 'Search bar', + 'shortcuts.sectionStandard': 'Standard', + 'shortcuts.openHelp': 'Show this help', + 'shortcuts.or': 'or', + 'shortcuts.then': 'then', + 'shortcuts.focusPrimary': + 'Focus main column scroll (desktop; then arrow keys, Page Up/Down, Home/End)', + 'shortcuts.focusSecondary': + 'Focus side panel scroll when it is open (desktop; same keys to scroll)', + 'shortcuts.newNote': 'New note / post (after login if needed)', + 'shortcuts.searchSuggest': 'Move through suggestions', + 'shortcuts.searchDismiss': 'Close search dropdown', + 'shortcuts.tabNavigate': 'Move focus to the next or previous control', + 'shortcuts.activate': 'Activate buttons and many controls', + 'shortcuts.closeOverlays': 'Close dialogs, menus, and the search dropdown', + 'shortcuts.scrollWhenFocused': 'Scroll the focused scrollable area', + 'shortcuts.browserBack': 'Browser back (history)', + 'No spells yet. Create one with the button above.': + 'No spells yet. Create one with the button above.', + 'Loading spells from your relays…': 'Loading spells from your relays…', + 'Could not run this spell. Check that it has a valid REQ/COUNT command, or add write relays in settings.': + 'Could not run this spell. Check that it has a valid REQ/COUNT command, or add write relays in settings.', + 'Select a spell…': 'Select a spell…', + 'Spells from follows': 'From people you follow ({{count}})', + 'Other spells': 'Other spells ({{count}})', + 'Select a spell to view its feed.': 'Select a spell to view its feed.', + 'Add another row': 'Add another row', + 'Remove this row': 'Remove this row', + 'One kind number per row (e.g. 1 for notes).': 'One kind number per row (e.g. 1 for notes).', + 'One author per row: $me, $contacts, or hex pubkey / npub.': + 'One author per row: $me, $contacts, or hex pubkey / npub.', + 'One hex event id per row.': 'One hex event id per row.', + 'One wss:// URL per row. Leave empty to use your write relays.': + 'One wss:// URL per row. Leave empty to use your write relays.', + 'One topic per row.': 'One topic per row.', + topic: 'topic', + 'Spell form fields': 'Spell form fields', + 'Counting matching events…': 'Counting matching events…', + 'Edit spell': 'Edit spell', + 'Clone spell': 'Clone spell', + 'Spell cloned': 'Spell cloned', + 'Clone spell intro': + 'This spell is preloaded from another author’s definition. Change anything you like, then save to publish a new spell signed with your account.', + 'Spell updated': 'Spell updated', + 'Relay URL': 'Relay', + Count: 'Count', + 'Edit spell relays': 'Edit relays', + 'COUNT spell relay errors hint': + 'One or more relays failed or returned an error. You can change the relay list in the spell and save again.', + 'COUNT spell total distinct explanation': + 'Distinct matching event IDs across all relays that responded successfully (duplicates across relays removed). Each relay only returns up to the filter limit.', + 'Leave empty to use your write relays.': 'Leave empty to use your write relays.', + 'COUNT spell result explanation': + 'Distinct events returned for this filter (merged from your spell relays and default write relays, duplicates removed). Relays only return up to the filter limit.', + 'COUNT spell may be capped by limit': + 'This count may equal your spell limit — there could be more matching events on the network.', + 'Spell count failed. Check relays or try again.': + 'Could not complete the count. Check relays or try again.', + 'REQ returns a feed; COUNT returns a number.': + 'REQ: scrollable feed (choose live Feed or one-shot Fetch below). COUNT: a single number, no feed.', + listImportManualLabel: 'Pre-fill from event', + listImportFromEventHint: + 'Supported tags are merged into the form (e, p, t, relay, r, a where possible). Non-empty content is skipped; encrypted private items are not read. You may see notices for unmapped tags.', + listImportManualPlaceholder: '64-char hex, nevent1…, or naddr1…', + listImportLoadManual: 'Apply', + listImportContentSkipped: + 'This event has non-empty content (may include encrypted private items). Only public tags were merged.', + listImportUnsupportedEmoji: + 'This list includes emoji tags (NIP-30); those are not added to the spell filter.', + listImportUnsupportedTag: + 'Tags of type “{{tag}}” ({{count}}) are not mapped to spell filters yet.', + listImportBadATag: 'Could not parse address tag: {{preview}}…', + listImportATagNotFound: 'Could not resolve address tag: {{preview}}…', + listImportATagFailed: 'Failed to resolve address tag: {{preview}}…', + listImportEventNotFound: 'No event found for that reference.', + 'REQ tag filters': 'REQ tag filters', + spellFormTagFiltersLabel: 'Tag filters on matching events', + spellCreateIntro: + 'Spells are saved relay filters (NIP-A7). The “Spell query” section is the real definition; the dashed box at the bottom is only for names, descriptions, and catalog labels. Use $me for your pubkey and $contacts for your follow list when executing.', + spellFormSectionQueryTitle: 'Spell query', + spellFormSectionQueryHint: + 'This block is the actual spell definition: it becomes the Nostr REQ/COUNT filter (kinds, authors, time range, tag filters on matching events, relays, etc.).', + spellFormSectionMetadataTitle: 'Listing & labels (optional)', + spellFormSectionMetadataBadge: 'Not part of the query', + spellFormSectionMetadataHint: + 'Name, description, and topic labels are only for display and spell pickers. They are not used when the spell fetches events.', + spellFormCatalogTopicsLabel: 'Topic labels on this spell (t tags)', + spellTopicsMetadataHint: + 'One topic per row. To filter which notes you see, use “REQ tag filters” in the spell query above (letter “t”).', + spellTagFiltersHint: + 'Optional filters on subscribed events (NIP-01 single-letter tags). Example: letter “t”, values “bitcoin”.', + spellTagFiltersEmpty: 'No tag filters yet. Add rows below or apply an event reference above.', + 'Tag filter letter': 'Tag letter', + 'Filter value': 'Value', + 'Add tag filter': 'Add tag filter', + spellPickerSectionYours: 'Your spells', + 'Failed to remove spell from local storage': 'Failed to remove spell from local storage', + Spells: 'Spells', + 'doublePane.secondaryEmpty': 'Open a note, profile, or settings item to show it here.', + 'doublePane.secondaryEmptyHint': 'Your feed and primary pages stay on the left.', + '(empty)': '(empty)', + '12-hour (AM/PM)': '12-hour (AM/PM)', + '24-hour': '24-hour', + 'A new version is available': 'A new version is available', + 'A short description of the article content': 'A short description of the article content', + AM: 'AM', + 'Access via': 'Access via', + 'Accessed On': 'Accessed On', + 'Accessed on': 'Accessed on', + 'Add RSS feed URLs to subscribe to. If no feeds are configured, the default feed will be used.': + 'Add RSS feed URLs to subscribe to. If no feeds are configured, the default feed will be used.', + 'Add a relay to block': 'Add a relay to block', + 'Add at least one invitee': 'Add at least one invitee', + 'Add client identifier': 'Add client identifier', + 'Add expiration tags by default': 'Add expiration tags by default', + 'Add quiet tags by default': 'Add quiet tags by default', + 'Add recipients using nostr: mentions (e.g., nostr:npub1...) or the recipient selector above': + 'Add recipients using nostr: mentions (e.g., nostr:npub1...) or the recipient selector above', + 'Add the source (where this text is from)': 'Add the source (where this text is from)', + 'Add to favorites': 'Add to favorites', + 'Add {{count}} Selected': 'Add {{count}} Selected', + 'Added at': 'Added at', + 'Added {{count}} relay(s)': 'Added {{count}} relay(s)', + 'Adding...': 'Adding...', + 'Adding…': 'Adding…', + 'Advanced Options': 'Advanced Options', + 'All Topics': 'All Topics', + 'All favorite relays': 'All favorite relays', + 'All feeds from OPML file are already added': 'All feeds from OPML file are already added', + 'All items deleted successfully': 'All items deleted successfully', + 'Already blocked': 'Already blocked', + 'Already saved': 'Already saved', + 'Application Recommendations': 'Application Recommendations', + 'Are you sure you want to clear all cached data? This will delete all stored events and settings from your browser.': + 'Are you sure you want to clear all cached data? This will delete all stored events and settings from your browser.', + 'Are you sure you want to delete all items from this store?': + 'Are you sure you want to delete all items from this store?', + 'Are you sure you want to unmute this user? This will restore the follow button.': + 'Are you sure you want to unmute this user? This will restore the follow button.', + "Are you sure you want to unregister the service worker? This will clear this app's service worker caches and you will need to reload the page.": + "Are you sure you want to unregister the service worker? This will clear this app's service worker caches and you will need to reload the page.", + 'Article exported as AsciiDoc': 'Article exported as AsciiDoc', + 'Article exported as Markdown': 'Article exported as Markdown', + 'Article title (optional)': 'Article title (optional)', + Audio: 'Audio', + Author: 'Author', + 'Author is required for reading groups': 'Author is required for reading groups', + 'Author name (optional)': 'Author name (optional)', + Authors: 'Authors', + 'Block Relay': 'Block Relay', + 'Blocked Relays': 'Blocked Relays', + 'Blocking...': 'Blocking...', + Blossom: 'Blossom', + Book: 'Book', + 'Brief description of the event': 'Brief description of the event', + 'Brief summary (optional)': 'Brief summary (optional)', + 'Brief summary of the article (optional)': 'Brief summary of the article (optional)', + 'Browse Cache': 'Browse Cache', + 'C-Tag': 'C-Tag', + 'Cache Relays': 'Cache Relays', + 'Cache cleared successfully': 'Cache cleared successfully', + 'Cache refreshed successfully': 'Cache refreshed successfully', + 'Cache relays are used to store and retrieve events locally. These relays are merged with your inbox and outbox relays.': + 'Cache relays are used to store and retrieve events locally. These relays are merged with your inbox and outbox relays.', + 'Cache relays must be local network URLs only (e.g., ws://localhost:4869 or ws://127.0.0.1:4869)': + 'Cache relays must be local network URLs only (e.g., ws://localhost:4869 or ws://127.0.0.1:4869)', + 'Cache relays saved': 'Cache relays saved', + Cancelled: 'Cancelled', + Chapter: 'Chapter', + 'Chapter Title': 'Chapter Title', + 'Chapter title (optional)': 'Chapter title (optional)', + Citation: 'Citation', + 'Citation title (optional)': 'Citation title (optional)', + 'Clean up duplicate replaceable events? This will keep only the newest version of each event.': + 'Clean up duplicate replaceable events? This will keep only the newest version of each event.', + 'Cleaned up {{deleted}} duplicate entries, kept {{kept}}': + 'Cleaned up {{deleted}} duplicate entries, kept {{kept}}', + 'Cleaned up {{deleted}} duplicate entries, kept {{kept}} (total items after cleanup: {{total}})': + 'Cleaned up {{deleted}} duplicate entries, kept {{kept}} (total items after cleanup: {{total}})', + 'Cleanup Duplicates': 'Cleanup Duplicates', + Clear: 'Clear', + 'Clear Cache': 'Clear Cache', + 'Clear Service Worker': 'Clear Service Worker', + 'Clear cached data stored in your browser, including IndexedDB events, localStorage settings, and service worker caches.': + 'Clear cached data stored in your browser, including IndexedDB events, localStorage settings, and service worker caches.', + 'Click update to get the latest features and improvements': + 'Click update to get the latest features and improvements', + Close: 'Close', + 'Comma or space-separated topics (will be added as t-tags)': + 'Comma or space-separated topics (will be added as t-tags)', + Command: 'Command', + Configure: 'Configure', + 'Connect Wallet': 'Connect Wallet', + 'Console Logs': 'Console Logs', + 'Console logs cleared': 'Console logs cleared', + 'Content is required': 'Content is required', + 'Content must be 5000 characters or less': 'Content must be 5000 characters or less', + Controversial: 'Controversial', + 'Copied!': 'Copied!', + 'Copy to clipboard': 'Copy to clipboard', + 'Create Article': 'Create Article', + 'Create Citation': 'Create Citation', + 'Create Highlight': 'Create Highlight', + 'Create New Thread': 'Create New Thread', + 'Create Poll': 'Create Poll', + 'Create Thread': 'Create Thread', + 'Create a Spell': 'Create a Spell', + 'Creating...': 'Creating...', + 'D-Tag': 'D-Tag', + 'D-Tag is required for articles': 'D-Tag is required for articles', + DOI: 'DOI', + 'Date-based (all-day)': 'Date-based (all-day)', + 'Default expiration (months)': 'Default expiration (months)', + 'Default quiet period (days)': 'Default quiet period (days)', + 'Delete All': 'Delete All', + 'Delete item': 'Delete item', + 'Deleted {{count}} event(s)': 'Deleted {{count}} event(s)', + 'Deletion request sent': 'Deletion request sent', + 'Description (content)': 'Description (content)', + 'Digital Object Identifier (optional)': 'Digital Object Identifier (optional)', + 'Disable word wrap': 'Disable word wrap', + 'Discovered Relays': 'Discovered Relays', + 'Discovering relays...': 'Discovering relays...', + Discussion: 'Discussion', + Discussions: 'Discussions', + Downvote: 'Downvote', + 'Edited by': 'Edited by', + Editor: 'Editor', + 'Editor name (optional)': 'Editor name (optional)', + 'Enable word wrap': 'Enable word wrap', + 'End date': 'End date', + 'End date must be after start date': 'End date must be after start date', + 'Enter a Nostr event identifier (nevent, naddr, note, or hex ID) OR a web URL (https://). Not both.': + 'Enter a Nostr event identifier (nevent, naddr, note, or hex ID) OR a web URL (https://). Not both.', + 'Enter a descriptive title for your thread': 'Enter a descriptive title for your thread', + 'Enter the author name': 'Enter the author name', + 'Enter the book title': 'Enter the book title', + 'Enter the specific text you want to highlight in the main content area above': + 'Enter the specific text you want to highlight in the main content area above', + 'Event IDs (ids)': 'Event IDs (ids)', + 'Event appears to be invalid or corrupted': 'Event appears to be invalid or corrupted', + 'Event has no value data': 'Event has no value data', + 'Event is missing required fields: {{fields}}': 'Event is missing required fields: {{fields}}', + 'Event type': 'Event type', + 'Expiration Tags': 'Expiration Tags', + 'Export OPML': 'Export OPML', + 'Export as AsciiDoc': 'Export as AsciiDoc', + 'Export as Markdown': 'Export as Markdown', + 'External Citation': 'External Citation', + 'External Citation Settings': 'External Citation Settings', + 'Failed to add relay. Please try again.': 'Failed to add relay. Please try again.', + 'Failed to add relays': 'Failed to add relays', + 'Failed to block relay. Please try again.': 'Failed to block relay. Please try again.', + 'Failed to cleanup duplicates': 'Failed to cleanup duplicates', + 'Failed to clear cache': 'Failed to clear cache', + 'Failed to copy': 'Failed to copy', + 'Failed to create relay set. Please try again.': + 'Failed to create relay set. Please try again.', + 'Failed to create thread': 'Failed to create thread', + 'Failed to create thread. Please try a different relay.': + 'Failed to create thread. Please try a different relay.', + 'Failed to delete all items': 'Failed to delete all items', + 'Failed to delete item': 'Failed to delete item', + 'Failed to discover relays': 'Failed to discover relays', + 'Failed to export OPML file': 'Failed to export OPML file', + 'Failed to export article': 'Failed to export article', + 'Failed to import OPML file: {{error}}': 'Failed to import OPML file: {{error}}', + 'Failed to load RSS feeds': 'Failed to load RSS feeds', + 'Failed to load store items': 'Failed to load store items', + 'Failed to mute user privately': 'Failed to mute user privately', + 'Failed to mute user publicly': 'Failed to mute user publicly', + 'Failed to pin note': 'Failed to pin note', + 'Failed to publish post': 'Failed to publish post', + 'Failed to publish reply': 'Failed to publish reply', + 'Failed to publish thread': 'Failed to publish thread', + 'Failed to publish to some relays. Please try again or use different relays.': + 'Failed to publish to some relays. Please try again or use different relays.', + 'Failed to save RSS feeds': 'Failed to save RSS feeds', + 'Failed to save cache relays': 'Failed to save cache relays', + 'Failed to save relay list': 'Failed to save relay list', + 'Failed to unregister service worker: ': 'Failed to unregister service worker: ', + 'Failed to unsubscribe from topic': 'Failed to unsubscribe from topic', + Favorite: 'Favorite', + Fetch: 'Fetch', + 'Fetch once, then stop.': 'Fetch once, then stop.', + 'Filter by': 'Filter by', + 'Flat View': 'Flat View', + 'Font size': 'Font size', + 'Full Quote/Context': 'Full Quote/Context', + 'Full-text search query': 'Full-text search query', + Geohash: 'Geohash', + 'Geohash (optional)': 'Geohash (optional)', + 'Global quiet mode': 'Global quiet mode', + 'Group discussions by topic': 'Group discussions by topic', + 'Grouped View': 'Grouped View', + Groups: 'Groups', + 'Handler {{index}}': 'Handler {{index}}', + 'Hardcopy Citation': 'Hardcopy Citation', + 'Hardcopy Citation Settings': 'Hardcopy Citation Settings', + Hide: 'Hide', + 'Hide interactions on all posts': 'Hide interactions on all posts', + 'Hide interactions on posts with quiet tags': 'Hide interactions on posts with quiet tags', + 'High PoW': 'High PoW', + 'Higher values make your thread harder to mine but more unique.': + 'Higher values make your thread harder to mine but more unique.', + Highlight: 'Highlight', + 'Highlight Settings': 'Highlight Settings', + 'How to Create a Highlight (NIP-84)': 'How to Create a Highlight (NIP-84)', + 'Human-readable spell name': 'Human-readable spell name', + 'Image URL': 'Image URL', + 'Import OPML': 'Import OPML', + 'Imported {{count}} feed(s) from OPML file': 'Imported {{count}} feed(s) from OPML file', + 'In-Browser Cache': 'In-Browser Cache', + Insert: 'Insert', + 'Insert URL into your post and publish to Nostr GIF library (NIP-94).': + 'Insert URL into your post and publish to Nostr GIF library (NIP-94).', + 'Insert event or address': 'Insert event or address', + 'Insert mention': 'Insert mention', + 'Internal Citation': 'Internal Citation', + 'Internal Citation Settings': 'Internal Citation Settings', + 'Invalid Event': 'Invalid Event', + 'Invalid Lightning Address': 'Invalid Lightning Address', + 'Invalid Lightning Address. Please enter a valid Lightning Address or LNURL.': + 'Invalid Lightning Address. Please enter a valid Lightning Address or LNURL.', + 'Invalid URL': 'Invalid URL', + 'Invalid content JSON': 'Invalid content JSON', + 'Invalid relay URL': 'Invalid relay URL', + 'Invalid source. Please enter a note ID, nevent, naddr, hex ID, or URL.': + 'Invalid source. Please enter a note ID, nevent, naddr, hex ID, or URL.', + 'Item deleted successfully': 'Item deleted successfully', + JSON: 'JSON', + 'Join link': 'Join link', + 'Journal/Publication name (optional)': 'Journal/Publication name (optional)', + Json: 'JSON', + Kinds: 'Kinds', + 'Language Model': 'Language Model', + Large: 'Large', + 'Leave empty for HiveTalk, or paste Zoom / Teams / other link': + 'Leave empty for HiveTalk, or paste Zoom / Teams / other link', + 'Lightning payment failed': 'Lightning payment failed', + Limit: 'Limit', + 'Live feed; keeps updating.': 'Live feed; keeps updating.', + 'Loading more...': 'Loading more...', + 'Loading relays...': 'Loading relays...', + 'Location (optional)': 'Location (optional)', + 'Log in to run this spell (it uses $me or $contacts).': + 'Log in to run this spell (it uses $me or $contacts).', + 'Login failed': 'Login failed', + 'Login to configure RSS feeds': 'Login to configure RSS feeds', + 'Long-form Article': 'Long-form Article', + 'Mailbox relays saved': 'Mailbox relays saved', + 'Mark as NSFW': 'Mark as NSFW', + 'Maximum {{max}} invitees': 'Maximum {{max}} invitees', + 'Maximum {{max}} invitees allowed': 'Maximum {{max}} invitees allowed', + Medium: 'Medium', + Mode: 'Mode', + 'Most Zapped': 'Most Zapped', + 'Move to top': 'Move to top', + 'Multiple choice': 'Multiple choice', + 'Mute failed': 'Mute failed', + NSFW: 'NSFW', + Name: 'Name', + 'Name of the language model used': 'Name of the language model used', + 'New External Citation': 'New External Citation', + 'New Hardcopy Citation': 'New Hardcopy Citation', + 'New Highlight': 'New Highlight', + 'New Internal Citation': 'New Internal Citation', + 'New Long-form Article': 'New Long-form Article', + 'New Poll': 'New Poll', + 'New Prompt Citation': 'New Prompt Citation', + 'New Public Message': 'New Public Message', + 'New Wiki Article': 'New Wiki Article', + 'New Wiki Article (Markdown)': 'New Wiki Article (Markdown)', + Newest: 'Newest', + 'No JSON available': 'No JSON available', + 'No RSS feeds found in OPML file': 'No RSS feeds found in OPML file', + 'No cached data found.': 'No cached data found.', + 'No console logs captured yet': 'No console logs captured yet', + 'No events found': 'No events found', + 'No feeds configured. Default feed will be used.': + 'No feeds configured. Default feed will be used.', + 'No feeds to export': 'No feeds to export', + 'No groups available. Join some groups first.': 'No groups available. Join some groups first.', + 'No items in this store.': 'No items in this store.', + 'No items match your search.': 'No items match your search.', + 'No logs match the current filters': 'No logs match the current filters', + 'No posts found': 'No posts found', + 'No posts match your search': 'No posts match your search', + 'No relays available. Please configure relays in settings.': + 'No relays available. Please configure relays in settings.', + 'No service workers or caches found for this app': + 'No service workers or caches found for this app', + 'No users found': 'No users found', + 'No valid RSS feed URLs found in OPML file': 'No valid RSS feed URLs found in OPML file', + 'Note pinned': 'Note pinned', + 'Note unpinned': 'Note unpinned', + Oldest: 'Oldest', + 'Open Timestamp': 'Open Timestamp', + 'Opens in a new tab. Copy a GIF URL there, then paste below. If this picker closed, click “Insert GIF” again to paste.': + 'Opens in a new tab. Copy a GIF URL there, then paste below. If this picker closed, click “Insert GIF” again to paste.', + Option: 'Option', + Optional: 'Optional', + 'Optional image for the event': 'Optional image for the event', + 'Optionally, add the full quote/context to show your highlight within it': + 'Optionally, add the full quote/context to show your highlight within it', + PM: 'PM', + 'Page Range': 'Page Range', + Pages: 'Pages', + 'Paste URL of a GIF': 'Paste URL of a GIF', + 'Paste the entire original passage that contains your highlight': + 'Paste the entire original passage that contains your highlight', + Photo: 'Photo', + 'Picture Note': 'Picture Note', + 'Pin note': 'Pin note', + 'Plain text description of the query': 'Plain text description of the query', + 'Please login to view bookmarks': 'Please login to view bookmarks', + 'Please select a group': 'Please select a group', + 'Please select at least one relay': 'Please select at least one relay', + 'Please set a start date': 'Please set a start date', + 'Poll with no options': 'Poll with no options', + 'Post published to some relays': 'Post published to some relays', + 'Posts will automatically include expiration tags': + 'Posts will automatically include expiration tags', + 'Posts will automatically include quiet tags': 'Posts will automatically include quiet tags', + 'Posts will be quiet for this many days': 'Posts will be quiet for this many days', + 'Posts will expire after this many months': 'Posts will expire after this many months', + 'Processing...': 'Processing...', + 'Profile event not available': 'Profile event not available', + 'Prompt Citation': 'Prompt Citation', + 'Prompt Citation Settings': 'Prompt Citation Settings', + 'Prompt Conversation Script': 'Prompt Conversation Script', + 'Proof of Work': 'Proof of Work', + 'Publish to Relays': 'Publish to Relays', + 'Published By': 'Published By', + 'Published In': 'Published In', + 'Published On': 'Published On', + 'Published in': 'Published in', + 'Published on': 'Published on', + 'Publisher name (optional)': 'Publisher name (optional)', + 'Quiet Tags': 'Quiet Tags', + 'RSS Feed': 'RSS Feed', + 'RSS Feed Settings': 'RSS Feed Settings', + 'RSS Feeds': 'RSS Feeds', + 'RSS feeds exported to OPML file': 'RSS feeds exported to OPML file', + 'RSS feeds saved': 'RSS feeds saved', + 'Rate limited. Please wait before trying again.': + 'Rate limited. Please wait before trying again.', + 'Reaction published': 'Reaction published', + 'Reaction removed': 'Reaction removed', + 'Read full article': 'Read full article', + 'Reading group entry': 'Reading group entry', + 'Readings Options': 'Readings Options', + Recipients: 'Recipients', + 'Recipients detected from your message:': 'Recipients detected from your message:', + 'Recommended Relays': 'Recommended Relays', + 'Recommended applications for handling events of kind {{kind}}': + 'Recommended applications for handling events of kind {{kind}}', + 'Reference to the cited Nostr event in kind:pubkey:hex format': + 'Reference to the cited Nostr event in kind:pubkey:hex format', + 'Refresh Cache': 'Refresh Cache', + 'Refreshing posts...': 'Refreshing posts...', + 'Relative: 7d, 24h, 1w, 1mo, 1y. Or Unix timestamp.': + 'Relative: 7d, 24h, 1w, 1mo, 1y. Or Unix timestamp.', + Relay: 'Relay', + 'Relay Hint': 'Relay Hint', + 'Relay URL (optional)': 'Relay URL (optional)', + 'Relay blocked successfully': 'Relay blocked successfully', + 'Relay requires authentication for write access. Please try a different relay or contact the relay operator.': + 'Relay requires authentication for write access. Please try a different relay or contact the relay operator.', + 'Relay set options': 'Relay set options', + 'Remove from favorites': 'Remove from favorites', + Rendered: 'Rendered', + 'Reply published': 'Reply published', + 'Reply published to some relays': 'Reply published to some relays', + 'Reply to Public Message': 'Reply to Public Message', + 'Republish to all active relays': 'Republish to all active relays', + 'Republish to all available relays': 'Republish to all available relays', + 'Required: start (or start date), invitees. Optional: title, end, location, summary, topics, image.': + 'Required: start (or start date), invitees. Optional: title, end, location, summary, topics, image.', + 'Required: start time or start date. Optional: title, end, location, summary, topics, image.': + 'Required: start time or start date. Optional: title, end, location, summary, topics, image.', + 'Required: start time, invitees. Join link defaults to HiveTalk. Optional: title, end, summary, topics, image.': + 'Required: start time, invitees. Join link defaults to HiveTalk. Optional: title, end, summary, topics, image.', + 'Required: start time. Join link defaults to HiveTalk. Optional: title, end, summary, topics, image.': + 'Required: start time. Join link defaults to HiveTalk. Optional: title, end, summary, topics, image.', + 'Respect quiet tags': 'Respect quiet tags', + 'Search (NIP-50)': 'Search (NIP-50)', + 'Search by name or npub…': 'Search by name or npub…', + 'Search calendar, publications, wiki…': 'Search calendar, publications, wiki…', + 'Search for user…': 'Search for user…', + 'Search items...': 'Search items...', + 'Search logs...': 'Search logs...', + 'Search notes, threads, long-form…': 'Search notes, threads, long-form…', + 'Search on GifBuddy': 'Search on GifBuddy', + 'Search posts...': 'Search posts...', + 'Search threads by title, content, tags, npub, author...': + 'Search threads by title, content, tags, npub, author...', + 'Searching all available relays...': 'Searching all available relays...', + 'Searching…': 'Searching…', + 'See reference': 'See reference', + 'Select Group': 'Select Group', + 'Select Media Type': 'Select Media Type', + 'Select group...': 'Select group...', + 'Select relays': 'Select relays', + 'Select the group where you want to create this discussion.': + 'Select the group where you want to create this discussion.', + 'Select topic...': 'Select topic...', + 'Selected text': 'Selected text', + 'Send Public Message': 'Send Public Message', + 'Send a Lightning payment to this user': 'Send a Lightning payment to this user', + 'Service worker caches cleared. Please reload the page.': + 'Service worker caches cleared. Please reload the page.', + 'Service worker unregistered and caches cleared. Please reload the page.': + 'Service worker unregistered and caches cleared. Please reload the page.', + 'Service worker unregistered. Please reload the page.': + 'Service worker unregistered. Please reload the page.', + 'Share your thoughts, ask questions, or start a discussion...': + 'Share your thoughts, ask questions, or start a discussion...', + 'Short Video Note': 'Short Video Note', + 'Show RSS Feed': 'Show RSS Feed', + 'Show all discussions in a single list': 'Show all discussions in a single list', + 'Show less': 'Show less', + Since: 'Since', + Small: 'Small', + 'Some relays have temporarily disabled writes.': + 'Some relays have temporarily disabled writes.', + Source: 'Source', + 'Spell definition': 'Spell definition', + 'Spell published': 'Spell published', + 'Start date': 'Start date', + 'Start typing to see a preview...': 'Start typing to see a preview...', + 'Subject (Book Title)': 'Subject (Book Title)', + 'Subject (book title) is required for reading groups': + 'Subject (book title) is required for reading groups', + 'Subject / Topics': 'Subject / Topics', + Subscribe: 'Subscribe', + Subscribed: 'Subscribed', + 'Subscribed to topic': 'Subscribed to topic', + 'Subscribed to topic (local)': 'Subscribed to topic (local)', + 'Subscribing...': 'Subscribing...', + Summary: 'Summary', + 'Supported Event Types': 'Supported Event Types', + 'Take a note': 'Take a note', + 'The full prompt conversation (optional)': 'The full prompt conversation (optional)', + 'The main editor above should contain only the text you want to highlight. This field should contain the full quote or paragraph for context.': + 'The main editor above should contain only the text you want to highlight. This field should contain the full quote or paragraph for context.', + 'These relays were found from your NIP-05 identifier and signer. You can add them to your relay list.': + 'These relays were found from your NIP-05 identifier and signer. You can add them to your relay list.', + 'This file could be either audio or video. Please select the correct type:': + 'This file could be either audio or video. Please select the correct type:', + 'This store does not contain replaceable events': + 'This store does not contain replaceable events', + 'This will add additional tags for author and subject to help organize reading group discussions.': + 'This will add additional tags for author and subject to help organize reading group discussions.', + 'Thread Content': 'Thread Content', + 'Thread Title': 'Thread Title', + 'Thread creation timed out. Please try again.': 'Thread creation timed out. Please try again.', + 'Thread published': 'Thread published', + 'Threads are organized by topics. Choose a topic that best fits your discussion.': + 'Threads are organized by topics. Choose a topic that best fits your discussion.', + 'Time-based': 'Time-based', + 'Title is required': 'Title is required', + 'Title must be 100 characters or less': 'Title must be 100 characters or less', + 'To translate notes and other content, use your browser’s built-in translation. For example: right-click the page and choose “Translate to…”, or use the translate icon in the address bar.': + 'To translate notes and other content, use your browser’s built-in translation. For example: right-click the page and choose “Translate to…”, or use the translate icon in the address bar.', + Top: 'Top', + Topic: 'Topic', + URL: 'URL', + 'URL of the article cover image (optional)': 'URL of the article cover image (optional)', + 'Unique identifier for this article (required)': + 'Unique identifier for this article (required)', + 'Unmute failed': 'Unmute failed', + 'Unpin note': 'Unpin note', + Unsubscribe: 'Unsubscribe', + 'Unsubscribed from topic': 'Unsubscribed from topic', + 'Unsubscribing...': 'Unsubscribing...', + Until: 'Until', + Untitled: 'Untitled', + Update: 'Update', + 'Updating...': 'Updating...', + 'Upload Audio Comment': 'Upload Audio Comment', + 'Upload Audio Message': 'Upload Audio Message', + 'Upload Media': 'Upload Media', + Upvote: 'Upvote', + 'User unmuted': 'User unmuted', + 'Version number (optional)': 'Version number (optional)', + Video: 'Video', + 'Video Note': 'Video Note', + 'Video file': 'Video file', + 'View Console Logs': 'View Console Logs', + 'View JSON': 'View JSON', + 'View cached items in this store.': 'View cached items in this store.', + 'View definition': 'View definition', + 'View details about cached data in IndexedDB stores. Click on a store to view its items.': + 'View details about cached data in IndexedDB stores. Click on a store to view its items.', + 'View on Alexandria': 'View on Alexandria', + 'View on DecentNewsroom': 'View on DecentNewsroom', + 'View on Wikistr': 'View on Wikistr', + 'View recent console logs for debugging': 'View recent console logs for debugging', + 'Voice Comment': 'Voice Comment', + 'Voice Note': 'Voice Note', + 'Voice note or audio file': 'Voice note or audio file', + Volume: 'Volume', + 'Volume number (optional)': 'Volume number (optional)', + 'Vote published': 'Vote published', + 'Vote removed': 'Vote removed', + 'Website where LLM was accessed (optional)': 'Website where LLM was accessed (optional)', + 'Wiki Article (AsciiDoc)': 'Wiki Article (AsciiDoc)', + 'Wiki Article (Markdown)': 'Wiki Article (Markdown)', + 'You can only delete your own notes': 'You can only delete your own notes', + 'You must be logged in to create a thread': 'You must be logged in to create a thread', + 'You need to add at least one media server in order to upload media files.': + 'You need to add at least one media server in order to upload media files.', + 'You need to login first': 'You need to login first', + 'Your account is blocked from posting to this relay.': + 'Your account is blocked from posting to this relay.', + Zap: 'Zap', + 'Zap failed': 'Zap failed', + created_at: 'created_at', + 'e tag of kind 1040 event (optional)': 'e tag of kind 1040 event (optional)', + 'e.g. meetup, conference': 'e.g. meetup, conference', + 'e.g., 123-145 (optional)': 'e.g., 123-145 (optional)', + 'e.g., GPT-4, Claude, etc. (required)': 'e.g., GPT-4, Claude, etc. (required)', + 'e.g., my-article-title': 'e.g., my-article-title', + entries: 'entries', + 'from Bunker': 'from Bunker', + 'from Extension': 'from Extension', + 'from NIP-05': 'from NIP-05', + general: 'general', + 'https://example.com (required)': 'https://example.com (required)', + 'https://example.com/image.jpg': 'https://example.com/image.jpg', + id: 'id', + items: 'items', + kind: 'kind', + 'kind:pubkey:hex format (required)': 'kind:pubkey:hex format (required)', + 'last updated': 'last updated', + matching: 'matching', + naddr: 'naddr', + nevent: 'nevent', + 'nevent1..., naddr1..., note1..., hex ID, or https://...': + 'nevent1..., naddr1..., note1..., hex ID, or https://...', + 'no notes found': 'no notes found', + of: 'of', + 'on note': 'on note', + optional: 'optional', + pubkey: 'pubkey', + 'sent a public message': 'sent a public message', + 'sent you a public message': 'sent you a public message', + 'sent you a public message (along with {{count}} others)': + 'sent you a public message (along with {{count}} others)', + sig: 'sig', + 'started a discussion in {{topic}}': 'started a discussion in {{topic}}', + tags: 'tags', + thread: 'thread', + threads: 'threads', + 'topic1, topic2, topic3': 'topic1, topic2, topic3', + '{{count}} relay(s) selected': '{{count}} relay(s) selected', + '🔞 NSFW 🔞': '🔞 NSFW 🔞' } } diff --git a/src/i18n/locales/fr.ts b/src/i18n/locales/fr.ts index b3a2789e..2a0ae84a 100644 --- a/src/i18n/locales/fr.ts +++ b/src/i18n/locales/fr.ts @@ -1,13 +1,16 @@ export default { translation: { - // NOTE: The translations below were generated by ChatGPT and have not yet been verified. 'Welcome! 🥳': 'Bienvenue ! 🥳', About: 'À propos', 'New Note': 'Nouvelle note', Post: 'Publier', Home: 'Accueil', + Feed: 'Feed', + 'Favorites Feed': 'Favorites Feed', + 'Pinned note': 'Pinned note', 'Relay settings': 'Paramètres du relais', Settings: 'Paramètres', + 'Account menu': 'Account menu', SidebarRelays: 'Relais', Refresh: 'Rafraîchir', Profile: 'Profil', @@ -31,6 +34,12 @@ export default { 'loading...': 'chargement...', 'Loading...': 'Chargement...', 'no more notes': 'plus de notes', + 'calendar entries': 'calendar entries', + 'Loading calendar events...': 'Loading calendar events...', + 'No calendar events found': 'No calendar events found', + 'Calendar events in the next {{count}} months': 'Calendar events in the next {{count}} months', + 'The nostr.band relay appears to be temporarily out of service. Please try again later.': + 'The nostr.band relay appears to be temporarily out of service. Please try again later.', 'reply to': 'répondre à', reply: 'répondre', Reply: 'Répondre', @@ -38,6 +47,9 @@ export default { 'Write something...': 'Écrire quelque chose...', Cancel: 'Annuler', Mentions: 'Mentions', + 'Search for event or address…': 'Search for event or address…', + 'Search notes…': 'Search notes…', + 'No notes found': 'No notes found', 'Failed to post': 'Publication échouée', 'Post successful': 'Publication réussie', 'Your post has been published': 'Votre publication a été publiée', @@ -46,7 +58,22 @@ export default { Quote: 'Citer', 'Copy event ID': "Copier l'ID de l'événement", 'Copy user ID': "Copier l'ID de l'utilisateur", + 'Send public message': 'Send public message', 'View raw event': "Voir l'événement brut", + 'Edit this event': 'Edit this event', + 'Clone or fork this event': 'Clone or fork this event', + 'Event kind': 'Event kind', + 'Note content': 'Note content', + Publish: 'Publish', + 'Post published': 'Post published', + 'Edit content and tags, then publish a new signed event.': + 'Edit content and tags, then publish a new signed event.', + 'Log in to publish': 'Log in to publish', + 'Set when you publish': 'set when you publish', + 'id and sig are assigned when you publish': 'id and sig are assigned when you publish', + 'Published to some relays only': 'Published to some relays only', + 'Add field': 'Add field', + 'View full profile': 'View full profile', Like: 'Aimer', 'switch to light theme': 'passer au thème clair', 'switch to dark theme': 'passer au thème sombre', @@ -57,18 +84,143 @@ export default { "username's used relays": 'les relais utilisés par {{username}}', "username's muted": '{{username}} en sourdine', Login: 'Connexion', + 'Please log in to view notifications.': 'Please log in to view notifications.', 'Follows you': 'Vous suit', 'Relay Settings': 'Paramètres des relais', + 'Relays and Storage Settings': 'Relays and Storage Settings', 'Relay set name': 'Nom du groupe de relais', 'Add a new relay set': 'Ajouter un nouveau groupe de relais', Add: 'Ajouter', 'n relays': '{{n}} relais', Rename: 'Renommer', + 'Copy share link': 'Copy share link', + 'Copy address': 'Copy address', + 'Copy payto URI': 'Copy payto URI', + 'Copied payto address': 'Copied payto address', + 'Copied to clipboard': 'Copied to clipboard', + 'Copied {{label}} address': 'Copied {{label}} address', + 'Lightning payment address – copy to pay via your wallet': + 'Lightning payment address – copy to pay via your wallet', + 'Payment address – copy to use in your wallet or app': + 'Payment address – copy to use in your wallet or app', + 'Click to open payment options': 'Click to open payment options', + 'Click to copy address': 'Click to copy address', + 'Open on website': 'Open on website', + 'Raw profile event': 'Raw profile event', + 'Full profile event': 'Full profile event', + 'Event (JSON)': 'Event (JSON)', + 'Save full profile': 'Save full profile', + 'Add tag': 'Add tag', + 'Remove tag': 'Remove tag', + 'Tag name': 'Tag name', + Value: 'Value', + 'Add value to tag': 'Add value to tag', + 'Remove value': 'Remove value', + 'No tags. Click "Add tag" to add one.': 'No tags. Click "Add tag" to add one.', + 'Profile updated': 'Profile updated', + 'Failed to publish profile': 'Failed to publish profile', + 'Invalid profile JSON': 'Invalid profile JSON', + 'Refresh cache': 'Refresh cache', + 'Force-refresh profile and payment info from relays': + 'Force-refresh profile and payment info from relays', + 'Profile and payment cache refreshed': 'Profile and payment cache refreshed', + 'Failed to refresh cache': 'Failed to refresh cache', + 'Raw payment info event': 'Raw payment info event', + 'Payment info': 'Payment info', + 'Edit payment info': 'Edit payment info', + 'Add payment info': 'Add payment info', + 'No payment info event yet. Click "Add payment info" to create one.': + 'No payment info event yet. Click "Add payment info" to create one.', + 'Content (JSON)': 'Content (JSON)', + Tags: 'Tags', + 'Tags (JSON array of arrays, e.g. [["payto","lightning","user@domain.com"]])': + 'Tags (JSON array of arrays, e.g. [["payto","lightning","user@domain.com"]])', + 'Payment info updated': 'Payment info updated', + 'Failed to publish payment info': 'Failed to publish payment info', + 'Invalid tags JSON': 'Invalid tags JSON', + 'Payment methods': 'Payment methods', + 'NIP-A3 payto tags: type (e.g. lightning) and authority (e.g. user@domain.com).': + 'NIP-A3 payto tags: type (e.g. lightning) and authority (e.g. user@domain.com).', + 'Type (e.g. lightning)': 'Type (e.g. lightning)', + 'Authority (e.g. user@domain.com)': 'Authority (e.g. user@domain.com)', + 'Add payment method': 'Add payment method', + Remove: 'Remove', + 'Additional content (JSON)': 'Additional content (JSON)', + 'Show full event JSON': 'Show full event JSON', + 'Tag list': 'Tag list', + 'Profile event tags (e.g. lud16, nip05, website). Saved with kind 0.': + 'Profile event tags (e.g. lud16, nip05, website). Saved with kind 0.', + 'Tag value': 'Tag value', + 'Saving…': 'Saving…', 'Share with Jumble': 'Partager avec Jumble', 'Share with Alexandria': 'Partager avec Alexandria', + 'Start video call': 'Start video call', + 'Copy call invite link': 'Copy call invite link', + 'Start call about this': 'Start call about this', + 'Send call invite': 'Send call invite', + 'Join the video call': 'Join the video call', + 'Schedule video call': 'Schedule video call', + "You're invited to a scheduled video call.": "You're invited to a scheduled video call.", + 'Create a calendar event and send an invite. The recipient will see the event with a join link.': + 'Create a calendar event and send an invite. The recipient will see the event with a join link.', + 'Schedule a video call': 'Schedule a video call', + 'Create a calendar event and send kind 24 invites to each listed invitee.': + 'Create a calendar event and send kind 24 invites to each listed invitee.', + Invitees: 'Invitees', + 'Paste nostr:npub1... or nostr:nprofile1... (one or more)': + 'Paste nostr:npub1... or nostr:nprofile1... (one or more)', + 'Schedule and send invites': 'Schedule and send invites', + 'Add at least one invitee (paste nostr:npub or nostr:nprofile links)': + 'Add at least one invitee (paste nostr:npub or nostr:nprofile links)', + 'Scheduled call created and {{count}} invite(s) sent': + 'Scheduled call created and {{count}} invite(s) sent', + 'Join video call': 'Join video call', + 'Scheduled video call': 'Scheduled video call', + 'Video call': 'Video call', + 'Schedule and send invite': 'Schedule and send invite', + 'Scheduling…': 'Scheduling…', + 'Please set a start time': 'Please set a start time', + 'End time must be after start time': 'End time must be after start time', + 'Failed to schedule call': 'Failed to schedule call', + 'Scheduled call created and invite sent': 'Scheduled call created and invite sent', + RSVP: 'RSVP', + 'RSVP: {{status}}': 'RSVP: {{status}}', + Accepted: 'Accepted', + Tentative: 'Tentative', + Declined: 'Declined', + 'You need to log in to RSVP': 'You need to log in to RSVP', + 'RSVP updated': 'RSVP updated', + 'Failed to update RSVP': 'Failed to update RSVP', + Organizer: 'Organizer', + Attendees: 'Attendees', + 'No response': 'No response', + 'Calendar Events': 'Calendar Events', + 'Calendar Event': 'Calendar Event', + 'Schedule in-person meeting': 'Schedule in-person meeting', + 'Create a calendar event and send an invite. No video link — for real-life meetups, conferences, etc.': + 'Create a calendar event and send an invite. No video link — for real-life meetups, conferences, etc.', + "You're invited to an in-person meeting.": "You're invited to an in-person meeting.", + 'Meeting created and invite sent': 'Meeting created and invite sent', + 'Failed to create meeting': 'Failed to create meeting', + 'Create and send invite': 'Create and send invite', + 'Creating…': 'Creating…', + 'In-person meeting': 'In-person meeting', + Location: 'Location', + 'Address, venue, or place': 'Address, venue, or place', + Description: 'Description', + 'Optional notes': 'Optional notes', + 'Create a calendar event for a real-life meetup and send kind 24 invites to each invitee.': + 'Create a calendar event for a real-life meetup and send kind 24 invites to each invitee.', + 'Meeting created and {{count}} invite(s) sent': 'Meeting created and {{count}} invite(s) sent', + 'Create and send invites': 'Create and send invites', + Title: 'Title', + Start: 'Start', + End: 'End', Delete: 'Supprimer', 'Relay already exists': 'Le relais existe déjà', 'invalid relay URL': 'URL de relais invalide', + 'Relay URL…': 'wss://… or relay host', + 'Open relay': 'Open relay', 'Add a new relay': 'Ajouter un nouveau relais', back: 'retour', 'Lost in the void': 'Perdu dans le vide', @@ -114,6 +266,19 @@ export default { 'Picture note requires images': 'La note image nécessite des images', Relays: 'Relais', Image: 'image', + 'Upload Image': 'Upload Image', + 'Insert emoji': 'Insert emoji', + 'Insert GIF': 'Insert GIF', + 'Search GIFs': 'Search GIFs', + 'Choose a GIF': 'Choose a GIF', + 'Search GifBuddy for more GIFs': 'Search GifBuddy for more GIFs', + 'Add your own GIFs': 'Add your own GIFs', + 'Description (optional, for search)': 'Description (optional, for search)', + 'e.g. happy birthday, thumbs up': 'e.g. happy birthday, thumbs up', + 'Uploading...': 'Uploading...', + 'No GIFs found. Try searching or add your own. GIFs come from Nostr kind 1063 (NIP-94) events on GIF relays.': + 'No GIFs found. Try searching or add your own. GIFs come from Nostr kind 1063 (NIP-94) events on GIF relays.', + '{{name}} is not a GIF file': '{{name}} is not a GIF file', 'R & W': 'R & W', Read: 'Lire', Write: 'Écrire', @@ -155,6 +320,9 @@ export default { Muted: 'En sourdine', Unmute: 'Activer le son', 'Unmute user': "Désactiver la sourdine de l'utilisateur", + Block: 'Block', + Unblock: 'Unblock', + blocked: 'blocked', 'Append n relays': 'Ajouter {{n}} relais', Append: 'Ajouter', 'Select relays to append': 'Sélectionnez les relais à ajouter', @@ -179,6 +347,24 @@ export default { 'Explore more': 'Explorer davantage', 'Payment page': 'Page de paiement', 'Supported NIPs': 'NIPs supportés', + 'Relay liveliness (NIP-66)': 'Relay liveliness (NIP-66)', + 'Relay monitor (NIP-66)': 'Relay monitor (NIP-66)', + 'Auth required': 'Auth required', + 'Public (no auth)': 'Public (no auth)', + 'Payment required': 'Payment required', + 'No payment': 'No payment', + 'Writes required': 'Writes required', + 'Writes open': 'Writes open', + 'PoW required': 'PoW required', + 'No PoW': 'No PoW', + 'RTT open': 'RTT open', + 'RTT read': 'RTT read', + 'RTT write': 'RTT write', + 'Supported NIPs (from monitor)': 'Supported NIPs (from monitor)', + 'Last reported by monitor': 'Last reported by monitor', + Network: 'Network', + Type: 'Type', + Topics: 'Topics', 'Open in a': 'Ouvrir dans {{a}}', 'Cannot handle event of kind k': "Impossible de traiter l'événement de type {{k}}", 'Sorry! The note cannot be found 😔': 'Désolé ! La note est introuvable 😔', @@ -210,9 +396,22 @@ export default { 'Seen on': 'Vu sur', 'Temporarily display this reply': 'Afficher temporairement cette réponse', 'Note not found': 'Note introuvable', + 'The note was not found on your relays or default relays.': + 'The note was not found on your relays or default relays.', + "Try searching author's relays": "Try searching author's relays", + 'Searching external relays...': 'Searching external relays...', + "This will connect to the author's relays and relay hints": + "This will connect to the author's relays and relay hints", + 'Note could not be found anywhere': 'Note could not be found anywhere', + 'Try external relays': 'Try external relays', + 'Searching...': 'Searching...', + 'Show relays': 'Show relays', + 'No external relay hints available': 'No external relay hints available', 'no more replies': 'aucune autre réponse', 'Relay sets': 'Groupes de relais', 'Favorite Relays': 'Relais favoris', + 'Search for Relays': 'Search for Relays', + 'Using app default relays': 'Using app default relays', "Following's Favorites": "Following's Favorites", 'no more relays': 'aucun autre relais', 'Favorited by': 'Favorisé par', @@ -228,11 +427,49 @@ export default { 'no bookmarks found': 'Aucun favori trouvé', 'no more bookmarks': 'Plus de favoris', Bookmarks: 'Favoris', + 'Follow Packs': 'Follow Packs', + 'Follow Pack': 'Follow Pack', + 'Please log in to follow': 'Please log in to follow', + 'Following All': 'Following All', + 'Followed {{count}} users': 'Followed {{count}} users', + 'All available members are already followed or muted': + 'All available members are already followed or muted', + 'You are already following all members of this pack': + 'You are already following all members of this pack', + 'Failed to follow pack': 'Failed to follow pack', + '{{count}} profiles': '{{count}} profiles', 'Show more': 'Afficher plus', General: 'Général', Autoplay: 'Lecture automatique', 'Enable video autoplay on this device': 'Activer la lecture automatique des vidéos sur cet appareil', + 'Add random relays to every publish': 'Random relays in publish list', + 'Add random relays to every publish description': + 'Adds {{n}} random public relays from the NIP-66 lively list (preferring monitors that reported a write RTT) to the publish relay list. When ON, they are selected by default; when OFF, they appear in the list but are unchecked so you can optionally include them.', + relayType_local: 'Local', + relayType_relay_list: 'Relay list', + relayType_client_default: 'Client default', + relayType_open_from: 'Current feed', + relayType_favorite: 'Favorite', + relayType_relay_set: 'Relay set', + relayType_contextual: 'Reply/PM', + relayType_randomly_selected: 'Random (optional)', + 'Session relays': 'Session relays', + 'Session relays tab description': + 'Relay logic for this session: working and striked preset relays, and scored random relays (used to prefer faster, proven relays when adding random relays to publish).', + 'Session relays preset working': 'Working preset relays', + 'Session relays preset working hint': + 'Preset relays (from app defaults) that have not reached 3 publish failures this session.', + 'Session relays preset striked': 'Striked preset relays', + 'Session relays preset striked hint': + 'Preset relays that have reached 3 publish failures this session and are skipped for the rest of the session.', + 'Session relays scored random': 'Scored random relays', + 'Session relays scored random hint': + 'Relays that have accepted at least one publish this session; used to prefer faster relays when picking random relays. Sorted by average latency.', + 'Session relays all striked': 'All striked relays (any source)', + successes: 'successes', + None: 'None', + 'Cache & offline storage': 'Cache & offline storage', 'Paste or drop media files to upload': 'Coller ou déposer des fichiers multimédias à télécharger', Preview: 'Aperçu', @@ -266,6 +503,7 @@ export default { 'Are you sure you want to reset your API key? This action cannot be undone.': 'Êtes-vous sûr de vouloir réinitialiser votre clé API ? Cette action ne peut pas être annulée.', Warning: 'Avertissement', + 'Errors & warnings': 'Errors & warnings', 'Your current API key will become invalid immediately, and any applications using it will stop working until you update them with the new key.': 'Votre clé API actuelle deviendra immédiatement invalide, et toutes les applications qui l’utilisent cesseront de fonctionner jusqu’à ce que vous les mettiez à jour avec la nouvelle clé.', 'Service address': 'Adresse du service', @@ -297,6 +535,9 @@ export default { Article: 'Article', Unfavorite: 'Ne plus aimer', 'Recommended relays': 'Relais recommandés', + 'Show recommended relays panel': 'Show recommended relays panel', + 'Display the right-side panel with recommended relays on desktop': + 'Display the right-side panel with recommended relays on desktop', 'Blossom server URLs': 'URLs du serveur Blossom', 'You need to add at least one blossom server in order to upload media files.': 'Vous devez ajouter au moins un serveur Blossom pour pouvoir télécharger des fichiers multimédias.', @@ -324,7 +565,31 @@ export default { 'Refresh results': 'Rafraîchir les résultats', Poll: 'Sondage', Media: 'média', + Interests: 'Interests', + Calendar: 'Calendar', + 'No subscribed interests yet.': + 'No subscribed interests yet. Add topics in settings to see them here.', + 'No bookmarked notes with id tags yet.': + 'No bookmarked notes with id tags yet. Only classic (e-tag) bookmarks load in this feed.', + 'No follows or relays to load yet.': 'No follows or relays to load yet.', + 'Nothing to load for this feed.': 'Nothing to load for this feed.', 'Republish to ...': 'Reposter vers ...', + 'All available relays': 'All available relays', + 'All active relays (monitoring list)': 'All active relays (monitoring list)', + 'Successfully republish to all available relays': + 'Successfully republish to all available relays', + 'Failed to republish to all available relays: {{error}}': + 'Failed to republish to all available relays: {{error}}', + 'Successfully republish to all active relays': 'Successfully republish to all active relays', + 'Failed to republish to all active relays: {{error}}': + 'Failed to republish to all active relays: {{error}}', + 'No active relays in monitoring list': 'No active relays in monitoring list', + 'No relay accepted the event': 'No relay accepted the event', + 'No relays available': 'No relays available', + 'No write relays configured': 'No write relays configured', + 'Relay did not accept the event': 'Relay did not accept the event', + 'Only {{count}} relay(s) accepted the event; at least 5 required for "all active relays".': + 'Only {{count}} relay(s) accepted the event; at least 5 required for "all active relays".', 'Successfully republish to your write relays': 'Republié avec succès vers vos relais d’écriture', 'Failed to republish to your write relays: {{error}}': @@ -343,6 +608,7 @@ export default { 'No zaps yet': 'Pas encore de zaps', 'No more boosts': 'Plus de boosts', 'No boosts yet': 'Pas encore de boosts', + 'n more boosts': '{{count}} more boosts', Boosts: 'Boosts', FollowListNotFoundConfirmation: 'Liste de suivi non trouvée. Voulez-vous en créer une nouvelle ? Si vous avez suivi des utilisateurs auparavant, veuillez NE PAS confirmer car cette opération vous fera perdre votre liste de suivi précédente.', @@ -365,8 +631,13 @@ export default { 'Maybe Later': 'Peut-être plus tard', "Don't remind me again": 'Ne plus me rappeler', Posts: 'Publications', + 'Posts (OPs)': 'Posts (OPs)', + 'Kind 1 replies': 'Kind 1 replies', + Comments: 'Comments', + 'Replies & comments': 'Replies & comments', Articles: 'Articles', Highlights: 'Surlignages', + 'A note from': 'A note from', Polls: 'Sondages', 'Voice Posts': 'Publications vocales', 'Photo Posts': 'Publications photo', @@ -394,6 +665,13 @@ export default { 'boosted your note': 'a boosté votre note', 'zapped your note': 'a zappé votre note', 'zapped you': 'vous a zappé', + zapped: 'zapped', + 'Invalid zap receipt': 'Invalid zap receipt', + 'Zapped note': 'Zapped note', + 'Zapped profile': 'Zapped profile', + 'Zap reply threshold': 'Zap reply threshold', + 'Zaps above this amount will appear as replies in threads': + 'Zaps above this amount will appear as replies in threads', 'Mark as read': 'Marquer comme lu', Report: 'Signaler', 'Successfully report': 'Signalement réussi', @@ -409,7 +687,6 @@ export default { 'Voir des infos supplémentaires pour chaque notification', 'See more notifications at a glance': "Voir plus de notifications en un coup d'œil", Detailed: 'Détaillé', - Compact: 'Compact', 'Submit Relay': 'Soumettre un relais', Homepage: 'Page d’accueil', 'Proof of Work (difficulty {{minPow}})': 'Preuve de travail (difficulté {{minPow}})', @@ -436,6 +713,23 @@ export default { '{{count}} relays': '{{count}} relais', 'Republishing...': 'Republication en cours...', 'Trending Notes': 'Notes tendance', + 'Trending on Your Favorite Relays': 'Trending on Your Favorite Relays', + 'Trending on the Default Relays': 'Trending on the Default Relays', + 'Latest from your follows': 'Latest from your follows', + 'Latest from our recommended follows': 'Latest from our recommended follows', + 'Loading follow list…': 'Loading follow list…', + 'Could not load recommended follows': 'Could not load recommended follows', + 'Your follow list is empty': 'Your follow list is empty', + 'Loading recent posts from follows…': 'Loading recent posts from follows…', + 'Loading more…': 'Loading more…', + 'No recent posts from this user in the current fetch': + 'No recent posts from this user in the current fetch', + 'Loading trending notes from your relays...': 'Loading trending notes from your relays...', + Sort: 'Sort', + newest: 'newest', + oldest: 'oldest', + 'most popular': 'most popular', + 'least popular': 'least popular', 'Connected to': 'Connecté à', 'Disconnect Wallet': 'Déconnecter le portefeuille', 'Are you absolutely sure?': 'Êtes-vous absolument sûr ?', @@ -444,6 +738,690 @@ export default { Disconnect: 'Déconnecter', 'Set up your wallet to send and receive sats!': 'Configurez votre portefeuille pour envoyer et recevoir des sats !', - 'Set up': 'Configurer' + 'Set up': 'Configurer', + 'nested events': 'nested events', + 'Loading RSS feeds...': 'Loading RSS feeds...', + 'No RSS feed items available': 'No RSS feed items available', + 'Show or hide the RSS page and sidebar entry': 'Show or hide the RSS page and sidebar entry', + 'Refreshing feeds...': 'Refreshing feeds...', + 'All feeds': 'All feeds', + 'All time': 'All time', + 'Last hour': 'Last hour', + 'Last day': 'Last day', + 'Last week': 'Last week', + 'Last month': 'Last month', + 'No items match your filters': 'No items match your filters', + 'Search...': 'Search...', + '{{count}} feeds': '{{count}} feeds', + 'Toggle filters': 'Toggle filters', + 'Showing {{filtered}} of {{total}} items': 'Showing {{filtered}} of {{total}} items', + Full: 'Full', + Compact: 'Compact', + Expand: 'Expand', + 'help.title': 'Help', + 'help.tabShortcuts': 'Keyboard shortcuts', + 'help.tabOverview': 'App overview', + 'shortcuts.title': 'Keyboard shortcuts', + 'shortcuts.intro': + 'Shortcuts for this app and common browsing. Modifier combos are Shift+Alt+key (Option+Shift+key on macOS); either modifier order works when typing.', + 'shortcuts.sectionApp': 'This app', + 'shortcuts.sectionSearch': 'Search bar', + 'shortcuts.sectionStandard': 'Standard', + 'shortcuts.openHelp': 'Show this help', + 'shortcuts.or': 'or', + 'shortcuts.then': 'then', + 'shortcuts.focusPrimary': + 'Focus main column scroll (desktop; then arrow keys, Page Up/Down, Home/End)', + 'shortcuts.focusSecondary': + 'Focus side panel scroll when it is open (desktop; same keys to scroll)', + 'shortcuts.newNote': 'New note / post (after login if needed)', + 'shortcuts.searchSuggest': 'Move through suggestions', + 'shortcuts.searchDismiss': 'Close search dropdown', + 'shortcuts.tabNavigate': 'Move focus to the next or previous control', + 'shortcuts.activate': 'Activate buttons and many controls', + 'shortcuts.closeOverlays': 'Close dialogs, menus, and the search dropdown', + 'shortcuts.scrollWhenFocused': 'Scroll the focused scrollable area', + 'shortcuts.browserBack': 'Browser back (history)', + 'No spells yet. Create one with the button above.': + 'No spells yet. Create one with the button above.', + 'Loading spells from your relays…': 'Loading spells from your relays…', + 'Could not run this spell. Check that it has a valid REQ/COUNT command, or add write relays in settings.': + 'Could not run this spell. Check that it has a valid REQ/COUNT command, or add write relays in settings.', + 'Select a spell…': 'Select a spell…', + 'Spells from follows': 'From people you follow ({{count}})', + 'Other spells': 'Other spells ({{count}})', + 'Select a spell to view its feed.': 'Select a spell to view its feed.', + 'Add another row': 'Add another row', + 'Remove this row': 'Remove this row', + 'One kind number per row (e.g. 1 for notes).': 'One kind number per row (e.g. 1 for notes).', + 'One author per row: $me, $contacts, or hex pubkey / npub.': + 'One author per row: $me, $contacts, or hex pubkey / npub.', + 'One hex event id per row.': 'One hex event id per row.', + 'One wss:// URL per row. Leave empty to use your write relays.': + 'One wss:// URL per row. Leave empty to use your write relays.', + 'One topic per row.': 'One topic per row.', + topic: 'topic', + 'Spell form fields': 'Spell form fields', + 'Counting matching events…': 'Counting matching events…', + 'Edit spell': 'Edit spell', + 'Clone spell': 'Clone spell', + 'Spell cloned': 'Spell cloned', + 'Clone spell intro': + 'This spell is preloaded from another author’s definition. Change anything you like, then save to publish a new spell signed with your account.', + 'Spell updated': 'Spell updated', + 'Relay URL': 'Relay', + Count: 'Count', + 'Edit spell relays': 'Edit relays', + 'COUNT spell relay errors hint': + 'One or more relays failed or returned an error. You can change the relay list in the spell and save again.', + 'COUNT spell total distinct explanation': + 'Distinct matching event IDs across all relays that responded successfully (duplicates across relays removed). Each relay only returns up to the filter limit.', + 'Leave empty to use your write relays.': 'Leave empty to use your write relays.', + 'COUNT spell result explanation': + 'Distinct events returned for this filter (merged from your spell relays and default write relays, duplicates removed). Relays only return up to the filter limit.', + 'COUNT spell may be capped by limit': + 'This count may equal your spell limit — there could be more matching events on the network.', + 'Spell count failed. Check relays or try again.': + 'Could not complete the count. Check relays or try again.', + 'REQ returns a feed; COUNT returns a number.': + 'REQ: scrollable feed (choose live Feed or one-shot Fetch below). COUNT: a single number, no feed.', + listImportManualLabel: 'Pre-fill from event', + listImportFromEventHint: + 'Supported tags are merged into the form (e, p, t, relay, r, a where possible). Non-empty content is skipped; encrypted private items are not read. You may see notices for unmapped tags.', + listImportManualPlaceholder: '64-char hex, nevent1…, or naddr1…', + listImportLoadManual: 'Apply', + listImportContentSkipped: + 'This event has non-empty content (may include encrypted private items). Only public tags were merged.', + listImportUnsupportedEmoji: + 'This list includes emoji tags (NIP-30); those are not added to the spell filter.', + listImportUnsupportedTag: + 'Tags of type “{{tag}}” ({{count}}) are not mapped to spell filters yet.', + listImportBadATag: 'Could not parse address tag: {{preview}}…', + listImportATagNotFound: 'Could not resolve address tag: {{preview}}…', + listImportATagFailed: 'Failed to resolve address tag: {{preview}}…', + listImportEventNotFound: 'No event found for that reference.', + 'REQ tag filters': 'REQ tag filters', + spellFormTagFiltersLabel: 'Tag filters on matching events', + spellCreateIntro: + 'Spells are saved relay filters (NIP-A7). The “Spell query” section is the real definition; the dashed box at the bottom is only for names, descriptions, and catalog labels. Use $me for your pubkey and $contacts for your follow list when executing.', + spellFormSectionQueryTitle: 'Spell query', + spellFormSectionQueryHint: + 'This block is the actual spell definition: it becomes the Nostr REQ/COUNT filter (kinds, authors, time range, tag filters on matching events, relays, etc.).', + spellFormSectionMetadataTitle: 'Listing & labels (optional)', + spellFormSectionMetadataBadge: 'Not part of the query', + spellFormSectionMetadataHint: + 'Name, description, and topic labels are only for display and spell pickers. They are not used when the spell fetches events.', + spellFormCatalogTopicsLabel: 'Topic labels on this spell (t tags)', + spellTopicsMetadataHint: + 'One topic per row. To filter which notes you see, use “REQ tag filters” in the spell query above (letter “t”).', + spellTagFiltersHint: + 'Optional filters on subscribed events (NIP-01 single-letter tags). Example: letter “t”, values “bitcoin”.', + spellTagFiltersEmpty: 'No tag filters yet. Add rows below or apply an event reference above.', + 'Tag filter letter': 'Tag letter', + 'Filter value': 'Value', + 'Add tag filter': 'Add tag filter', + spellPickerSectionYours: 'Your spells', + 'Failed to remove spell from local storage': 'Failed to remove spell from local storage', + Spells: 'Spells', + 'doublePane.secondaryEmpty': 'Open a note, profile, or settings item to show it here.', + 'doublePane.secondaryEmptyHint': 'Your feed and primary pages stay on the left.', + '(empty)': '(empty)', + '12-hour (AM/PM)': '12-hour (AM/PM)', + '24-hour': '24-hour', + 'A new version is available': 'A new version is available', + 'A short description of the article content': 'A short description of the article content', + AM: 'AM', + 'Access via': 'Access via', + 'Accessed On': 'Accessed On', + 'Accessed on': 'Accessed on', + 'Add RSS feed URLs to subscribe to. If no feeds are configured, the default feed will be used.': + 'Add RSS feed URLs to subscribe to. If no feeds are configured, the default feed will be used.', + 'Add a relay to block': 'Add a relay to block', + 'Add at least one invitee': 'Add at least one invitee', + 'Add client identifier': 'Add client identifier', + 'Add expiration tags by default': 'Add expiration tags by default', + 'Add quiet tags by default': 'Add quiet tags by default', + 'Add recipients using nostr: mentions (e.g., nostr:npub1...) or the recipient selector above': + 'Add recipients using nostr: mentions (e.g., nostr:npub1...) or the recipient selector above', + 'Add the source (where this text is from)': 'Add the source (where this text is from)', + 'Add to favorites': 'Add to favorites', + 'Add {{count}} Selected': 'Add {{count}} Selected', + 'Added at': 'Added at', + 'Added {{count}} relay(s)': 'Added {{count}} relay(s)', + 'Adding...': 'Adding...', + 'Adding…': 'Adding…', + 'Advanced Options': 'Advanced Options', + 'All Topics': 'All Topics', + 'All favorite relays': 'All favorite relays', + 'All feeds from OPML file are already added': 'All feeds from OPML file are already added', + 'All items deleted successfully': 'All items deleted successfully', + 'Already blocked': 'Already blocked', + 'Already saved': 'Already saved', + 'Application Recommendations': 'Application Recommendations', + 'Are you sure you want to clear all cached data? This will delete all stored events and settings from your browser.': + 'Are you sure you want to clear all cached data? This will delete all stored events and settings from your browser.', + 'Are you sure you want to delete all items from this store?': + 'Are you sure you want to delete all items from this store?', + 'Are you sure you want to unmute this user? This will restore the follow button.': + 'Are you sure you want to unmute this user? This will restore the follow button.', + "Are you sure you want to unregister the service worker? This will clear this app's service worker caches and you will need to reload the page.": + "Are you sure you want to unregister the service worker? This will clear this app's service worker caches and you will need to reload the page.", + 'Article exported as AsciiDoc': 'Article exported as AsciiDoc', + 'Article exported as Markdown': 'Article exported as Markdown', + 'Article title (optional)': 'Article title (optional)', + Audio: 'Audio', + Author: 'Author', + 'Author is required for reading groups': 'Author is required for reading groups', + 'Author name (optional)': 'Author name (optional)', + Authors: 'Authors', + 'Block Relay': 'Block Relay', + 'Blocked Relays': 'Blocked Relays', + 'Blocking...': 'Blocking...', + Blossom: 'Blossom', + Book: 'Book', + 'Brief description of the event': 'Brief description of the event', + 'Brief summary (optional)': 'Brief summary (optional)', + 'Brief summary of the article (optional)': 'Brief summary of the article (optional)', + 'Browse Cache': 'Browse Cache', + 'C-Tag': 'C-Tag', + 'Cache Relays': 'Cache Relays', + 'Cache cleared successfully': 'Cache cleared successfully', + 'Cache refreshed successfully': 'Cache refreshed successfully', + 'Cache relays are used to store and retrieve events locally. These relays are merged with your inbox and outbox relays.': + 'Cache relays are used to store and retrieve events locally. These relays are merged with your inbox and outbox relays.', + 'Cache relays must be local network URLs only (e.g., ws://localhost:4869 or ws://127.0.0.1:4869)': + 'Cache relays must be local network URLs only (e.g., ws://localhost:4869 or ws://127.0.0.1:4869)', + 'Cache relays saved': 'Cache relays saved', + Cancelled: 'Cancelled', + Chapter: 'Chapter', + 'Chapter Title': 'Chapter Title', + 'Chapter title (optional)': 'Chapter title (optional)', + Citation: 'Citation', + 'Citation title (optional)': 'Citation title (optional)', + 'Clean up duplicate replaceable events? This will keep only the newest version of each event.': + 'Clean up duplicate replaceable events? This will keep only the newest version of each event.', + 'Cleaned up {{deleted}} duplicate entries, kept {{kept}}': + 'Cleaned up {{deleted}} duplicate entries, kept {{kept}}', + 'Cleaned up {{deleted}} duplicate entries, kept {{kept}} (total items after cleanup: {{total}})': + 'Cleaned up {{deleted}} duplicate entries, kept {{kept}} (total items after cleanup: {{total}})', + 'Cleanup Duplicates': 'Cleanup Duplicates', + Clear: 'Clear', + 'Clear Cache': 'Clear Cache', + 'Clear Service Worker': 'Clear Service Worker', + 'Clear cached data stored in your browser, including IndexedDB events, localStorage settings, and service worker caches.': + 'Clear cached data stored in your browser, including IndexedDB events, localStorage settings, and service worker caches.', + 'Click update to get the latest features and improvements': + 'Click update to get the latest features and improvements', + Close: 'Close', + 'Comma or space-separated topics (will be added as t-tags)': + 'Comma or space-separated topics (will be added as t-tags)', + Command: 'Command', + Configure: 'Configure', + 'Connect Wallet': 'Connect Wallet', + 'Console Logs': 'Console Logs', + 'Console logs cleared': 'Console logs cleared', + 'Content is required': 'Content is required', + 'Content must be 5000 characters or less': 'Content must be 5000 characters or less', + Controversial: 'Controversial', + 'Copied!': 'Copied!', + 'Copy to clipboard': 'Copy to clipboard', + 'Create Article': 'Create Article', + 'Create Citation': 'Create Citation', + 'Create Highlight': 'Create Highlight', + 'Create New Thread': 'Create New Thread', + 'Create Poll': 'Create Poll', + 'Create Thread': 'Create Thread', + 'Create a Spell': 'Create a Spell', + 'Creating...': 'Creating...', + 'D-Tag': 'D-Tag', + 'D-Tag is required for articles': 'D-Tag is required for articles', + DOI: 'DOI', + 'Date-based (all-day)': 'Date-based (all-day)', + 'Default expiration (months)': 'Default expiration (months)', + 'Default quiet period (days)': 'Default quiet period (days)', + 'Delete All': 'Delete All', + 'Delete item': 'Delete item', + 'Deleted {{count}} event(s)': 'Deleted {{count}} event(s)', + 'Deletion request sent': 'Deletion request sent', + 'Description (content)': 'Description (content)', + 'Digital Object Identifier (optional)': 'Digital Object Identifier (optional)', + 'Disable word wrap': 'Disable word wrap', + 'Discovered Relays': 'Discovered Relays', + 'Discovering relays...': 'Discovering relays...', + Discussion: 'Discussion', + Discussions: 'Discussions', + Downvote: 'Downvote', + 'Edited by': 'Edited by', + Editor: 'Editor', + 'Editor name (optional)': 'Editor name (optional)', + 'Enable word wrap': 'Enable word wrap', + 'End date': 'End date', + 'End date must be after start date': 'End date must be after start date', + 'Enter a Nostr event identifier (nevent, naddr, note, or hex ID) OR a web URL (https://). Not both.': + 'Enter a Nostr event identifier (nevent, naddr, note, or hex ID) OR a web URL (https://). Not both.', + 'Enter a descriptive title for your thread': 'Enter a descriptive title for your thread', + 'Enter the author name': 'Enter the author name', + 'Enter the book title': 'Enter the book title', + 'Enter the specific text you want to highlight in the main content area above': + 'Enter the specific text you want to highlight in the main content area above', + 'Event IDs (ids)': 'Event IDs (ids)', + 'Event appears to be invalid or corrupted': 'Event appears to be invalid or corrupted', + 'Event has no value data': 'Event has no value data', + 'Event is missing required fields: {{fields}}': 'Event is missing required fields: {{fields}}', + 'Event type': 'Event type', + 'Expiration Tags': 'Expiration Tags', + 'Export OPML': 'Export OPML', + 'Export as AsciiDoc': 'Export as AsciiDoc', + 'Export as Markdown': 'Export as Markdown', + 'External Citation': 'External Citation', + 'External Citation Settings': 'External Citation Settings', + 'Failed to add relay. Please try again.': 'Failed to add relay. Please try again.', + 'Failed to add relays': 'Failed to add relays', + 'Failed to block relay. Please try again.': 'Failed to block relay. Please try again.', + 'Failed to cleanup duplicates': 'Failed to cleanup duplicates', + 'Failed to clear cache': 'Failed to clear cache', + 'Failed to copy': 'Failed to copy', + 'Failed to create relay set. Please try again.': + 'Failed to create relay set. Please try again.', + 'Failed to create thread': 'Failed to create thread', + 'Failed to create thread. Please try a different relay.': + 'Failed to create thread. Please try a different relay.', + 'Failed to delete all items': 'Failed to delete all items', + 'Failed to delete item': 'Failed to delete item', + 'Failed to discover relays': 'Failed to discover relays', + 'Failed to export OPML file': 'Failed to export OPML file', + 'Failed to export article': 'Failed to export article', + 'Failed to import OPML file: {{error}}': 'Failed to import OPML file: {{error}}', + 'Failed to load RSS feeds': 'Failed to load RSS feeds', + 'Failed to load store items': 'Failed to load store items', + 'Failed to mute user privately': 'Failed to mute user privately', + 'Failed to mute user publicly': 'Failed to mute user publicly', + 'Failed to pin note': 'Failed to pin note', + 'Failed to publish post': 'Failed to publish post', + 'Failed to publish reply': 'Failed to publish reply', + 'Failed to publish thread': 'Failed to publish thread', + 'Failed to publish to some relays. Please try again or use different relays.': + 'Failed to publish to some relays. Please try again or use different relays.', + 'Failed to save RSS feeds': 'Failed to save RSS feeds', + 'Failed to save cache relays': 'Failed to save cache relays', + 'Failed to save relay list': 'Failed to save relay list', + 'Failed to unregister service worker: ': 'Failed to unregister service worker: ', + 'Failed to unsubscribe from topic': 'Failed to unsubscribe from topic', + Favorite: 'Favorite', + Fetch: 'Fetch', + 'Fetch once, then stop.': 'Fetch once, then stop.', + 'Filter by': 'Filter by', + 'Flat View': 'Flat View', + 'Font size': 'Font size', + 'Full Quote/Context': 'Full Quote/Context', + 'Full-text search query': 'Full-text search query', + Geohash: 'Geohash', + 'Geohash (optional)': 'Geohash (optional)', + 'Global quiet mode': 'Global quiet mode', + 'Group discussions by topic': 'Group discussions by topic', + 'Grouped View': 'Grouped View', + Groups: 'Groups', + 'Handler {{index}}': 'Handler {{index}}', + 'Hardcopy Citation': 'Hardcopy Citation', + 'Hardcopy Citation Settings': 'Hardcopy Citation Settings', + Hide: 'Hide', + 'Hide interactions on all posts': 'Hide interactions on all posts', + 'Hide interactions on posts with quiet tags': 'Hide interactions on posts with quiet tags', + 'High PoW': 'High PoW', + 'Higher values make your thread harder to mine but more unique.': + 'Higher values make your thread harder to mine but more unique.', + Highlight: 'Highlight', + 'Highlight Settings': 'Highlight Settings', + 'How to Create a Highlight (NIP-84)': 'How to Create a Highlight (NIP-84)', + 'Human-readable spell name': 'Human-readable spell name', + 'Image URL': 'Image URL', + 'Import OPML': 'Import OPML', + 'Imported {{count}} feed(s) from OPML file': 'Imported {{count}} feed(s) from OPML file', + 'In-Browser Cache': 'In-Browser Cache', + Insert: 'Insert', + 'Insert URL into your post and publish to Nostr GIF library (NIP-94).': + 'Insert URL into your post and publish to Nostr GIF library (NIP-94).', + 'Insert event or address': 'Insert event or address', + 'Insert mention': 'Insert mention', + 'Internal Citation': 'Internal Citation', + 'Internal Citation Settings': 'Internal Citation Settings', + 'Invalid Event': 'Invalid Event', + 'Invalid Lightning Address': 'Invalid Lightning Address', + 'Invalid Lightning Address. Please enter a valid Lightning Address or LNURL.': + 'Invalid Lightning Address. Please enter a valid Lightning Address or LNURL.', + 'Invalid URL': 'Invalid URL', + 'Invalid content JSON': 'Invalid content JSON', + 'Invalid relay URL': 'Invalid relay URL', + 'Invalid source. Please enter a note ID, nevent, naddr, hex ID, or URL.': + 'Invalid source. Please enter a note ID, nevent, naddr, hex ID, or URL.', + 'Item deleted successfully': 'Item deleted successfully', + JSON: 'JSON', + 'Join link': 'Join link', + 'Journal/Publication name (optional)': 'Journal/Publication name (optional)', + Json: 'JSON', + Kinds: 'Kinds', + 'Language Model': 'Language Model', + Large: 'Large', + 'Leave empty for HiveTalk, or paste Zoom / Teams / other link': + 'Leave empty for HiveTalk, or paste Zoom / Teams / other link', + 'Lightning payment failed': 'Lightning payment failed', + Limit: 'Limit', + 'Live feed; keeps updating.': 'Live feed; keeps updating.', + 'Loading more...': 'Loading more...', + 'Loading relays...': 'Loading relays...', + 'Location (optional)': 'Location (optional)', + 'Log in to run this spell (it uses $me or $contacts).': + 'Log in to run this spell (it uses $me or $contacts).', + 'Login failed': 'Login failed', + 'Login to configure RSS feeds': 'Login to configure RSS feeds', + 'Long-form Article': 'Long-form Article', + 'Mailbox relays saved': 'Mailbox relays saved', + 'Mark as NSFW': 'Mark as NSFW', + 'Maximum {{max}} invitees': 'Maximum {{max}} invitees', + 'Maximum {{max}} invitees allowed': 'Maximum {{max}} invitees allowed', + Medium: 'Medium', + Mode: 'Mode', + 'Most Zapped': 'Most Zapped', + 'Move to top': 'Move to top', + 'Multiple choice': 'Multiple choice', + 'Mute failed': 'Mute failed', + NSFW: 'NSFW', + Name: 'Name', + 'Name of the language model used': 'Name of the language model used', + 'New External Citation': 'New External Citation', + 'New Hardcopy Citation': 'New Hardcopy Citation', + 'New Highlight': 'New Highlight', + 'New Internal Citation': 'New Internal Citation', + 'New Long-form Article': 'New Long-form Article', + 'New Poll': 'New Poll', + 'New Prompt Citation': 'New Prompt Citation', + 'New Public Message': 'New Public Message', + 'New Wiki Article': 'New Wiki Article', + 'New Wiki Article (Markdown)': 'New Wiki Article (Markdown)', + Newest: 'Newest', + 'No JSON available': 'No JSON available', + 'No RSS feeds found in OPML file': 'No RSS feeds found in OPML file', + 'No cached data found.': 'No cached data found.', + 'No console logs captured yet': 'No console logs captured yet', + 'No events found': 'No events found', + 'No feeds configured. Default feed will be used.': + 'No feeds configured. Default feed will be used.', + 'No feeds to export': 'No feeds to export', + 'No groups available. Join some groups first.': 'No groups available. Join some groups first.', + 'No items in this store.': 'No items in this store.', + 'No items match your search.': 'No items match your search.', + 'No logs match the current filters': 'No logs match the current filters', + 'No posts found': 'No posts found', + 'No posts match your search': 'No posts match your search', + 'No relays available. Please configure relays in settings.': + 'No relays available. Please configure relays in settings.', + 'No service workers or caches found for this app': + 'No service workers or caches found for this app', + 'No users found': 'No users found', + 'No valid RSS feed URLs found in OPML file': 'No valid RSS feed URLs found in OPML file', + 'Note pinned': 'Note pinned', + 'Note unpinned': 'Note unpinned', + Oldest: 'Oldest', + 'Open Timestamp': 'Open Timestamp', + 'Opens in a new tab. Copy a GIF URL there, then paste below. If this picker closed, click “Insert GIF” again to paste.': + 'Opens in a new tab. Copy a GIF URL there, then paste below. If this picker closed, click “Insert GIF” again to paste.', + Option: 'Option', + Optional: 'Optional', + 'Optional image for the event': 'Optional image for the event', + 'Optionally, add the full quote/context to show your highlight within it': + 'Optionally, add the full quote/context to show your highlight within it', + PM: 'PM', + 'Page Range': 'Page Range', + Pages: 'Pages', + 'Paste URL of a GIF': 'Paste URL of a GIF', + 'Paste the entire original passage that contains your highlight': + 'Paste the entire original passage that contains your highlight', + Photo: 'Photo', + 'Picture Note': 'Picture Note', + 'Pin note': 'Pin note', + 'Plain text description of the query': 'Plain text description of the query', + 'Please login to view bookmarks': 'Please login to view bookmarks', + 'Please select a group': 'Please select a group', + 'Please select at least one relay': 'Please select at least one relay', + 'Please set a start date': 'Please set a start date', + 'Poll with no options': 'Poll with no options', + 'Post published to some relays': 'Post published to some relays', + 'Posts will automatically include expiration tags': + 'Posts will automatically include expiration tags', + 'Posts will automatically include quiet tags': 'Posts will automatically include quiet tags', + 'Posts will be quiet for this many days': 'Posts will be quiet for this many days', + 'Posts will expire after this many months': 'Posts will expire after this many months', + 'Processing...': 'Processing...', + 'Profile event not available': 'Profile event not available', + 'Prompt Citation': 'Prompt Citation', + 'Prompt Citation Settings': 'Prompt Citation Settings', + 'Prompt Conversation Script': 'Prompt Conversation Script', + 'Proof of Work': 'Proof of Work', + 'Publish to Relays': 'Publish to Relays', + 'Published By': 'Published By', + 'Published In': 'Published In', + 'Published On': 'Published On', + 'Published in': 'Published in', + 'Published on': 'Published on', + 'Publisher name (optional)': 'Publisher name (optional)', + 'Quiet Tags': 'Quiet Tags', + 'RSS Feed': 'RSS Feed', + 'RSS Feed Settings': 'RSS Feed Settings', + 'RSS Feeds': 'RSS Feeds', + 'RSS feeds exported to OPML file': 'RSS feeds exported to OPML file', + 'RSS feeds saved': 'RSS feeds saved', + 'Rate limited. Please wait before trying again.': + 'Rate limited. Please wait before trying again.', + 'Reaction published': 'Reaction published', + 'Reaction removed': 'Reaction removed', + 'Read full article': 'Read full article', + 'Reading group entry': 'Reading group entry', + 'Readings Options': 'Readings Options', + Recipients: 'Recipients', + 'Recipients detected from your message:': 'Recipients detected from your message:', + 'Recommended Relays': 'Recommended Relays', + 'Recommended applications for handling events of kind {{kind}}': + 'Recommended applications for handling events of kind {{kind}}', + 'Reference to the cited Nostr event in kind:pubkey:hex format': + 'Reference to the cited Nostr event in kind:pubkey:hex format', + 'Refresh Cache': 'Refresh Cache', + 'Refreshing posts...': 'Refreshing posts...', + 'Relative: 7d, 24h, 1w, 1mo, 1y. Or Unix timestamp.': + 'Relative: 7d, 24h, 1w, 1mo, 1y. Or Unix timestamp.', + Relay: 'Relay', + 'Relay Hint': 'Relay Hint', + 'Relay URL (optional)': 'Relay URL (optional)', + 'Relay blocked successfully': 'Relay blocked successfully', + 'Relay requires authentication for write access. Please try a different relay or contact the relay operator.': + 'Relay requires authentication for write access. Please try a different relay or contact the relay operator.', + 'Relay set options': 'Relay set options', + 'Remove from favorites': 'Remove from favorites', + Rendered: 'Rendered', + 'Reply published': 'Reply published', + 'Reply published to some relays': 'Reply published to some relays', + 'Reply to Public Message': 'Reply to Public Message', + 'Republish to all active relays': 'Republish to all active relays', + 'Republish to all available relays': 'Republish to all available relays', + 'Required: start (or start date), invitees. Optional: title, end, location, summary, topics, image.': + 'Required: start (or start date), invitees. Optional: title, end, location, summary, topics, image.', + 'Required: start time or start date. Optional: title, end, location, summary, topics, image.': + 'Required: start time or start date. Optional: title, end, location, summary, topics, image.', + 'Required: start time, invitees. Join link defaults to HiveTalk. Optional: title, end, summary, topics, image.': + 'Required: start time, invitees. Join link defaults to HiveTalk. Optional: title, end, summary, topics, image.', + 'Required: start time. Join link defaults to HiveTalk. Optional: title, end, summary, topics, image.': + 'Required: start time. Join link defaults to HiveTalk. Optional: title, end, summary, topics, image.', + 'Respect quiet tags': 'Respect quiet tags', + 'Search (NIP-50)': 'Search (NIP-50)', + 'Search by name or npub…': 'Search by name or npub…', + 'Search calendar, publications, wiki…': 'Search calendar, publications, wiki…', + 'Search for user…': 'Search for user…', + 'Search items...': 'Search items...', + 'Search logs...': 'Search logs...', + 'Search notes, threads, long-form…': 'Search notes, threads, long-form…', + 'Search on GifBuddy': 'Search on GifBuddy', + 'Search posts...': 'Search posts...', + 'Search threads by title, content, tags, npub, author...': + 'Search threads by title, content, tags, npub, author...', + 'Searching all available relays...': 'Searching all available relays...', + 'Searching…': 'Searching…', + 'See reference': 'See reference', + 'Select Group': 'Select Group', + 'Select Media Type': 'Select Media Type', + 'Select group...': 'Select group...', + 'Select relays': 'Select relays', + 'Select the group where you want to create this discussion.': + 'Select the group where you want to create this discussion.', + 'Select topic...': 'Select topic...', + 'Selected text': 'Selected text', + 'Send Public Message': 'Send Public Message', + 'Send a Lightning payment to this user': 'Send a Lightning payment to this user', + 'Service worker caches cleared. Please reload the page.': + 'Service worker caches cleared. Please reload the page.', + 'Service worker unregistered and caches cleared. Please reload the page.': + 'Service worker unregistered and caches cleared. Please reload the page.', + 'Service worker unregistered. Please reload the page.': + 'Service worker unregistered. Please reload the page.', + 'Share your thoughts, ask questions, or start a discussion...': + 'Share your thoughts, ask questions, or start a discussion...', + 'Short Video Note': 'Short Video Note', + 'Show RSS Feed': 'Show RSS Feed', + 'Show all discussions in a single list': 'Show all discussions in a single list', + 'Show less': 'Show less', + Since: 'Since', + Small: 'Small', + 'Some relays have temporarily disabled writes.': + 'Some relays have temporarily disabled writes.', + Source: 'Source', + 'Spell definition': 'Spell definition', + 'Spell published': 'Spell published', + 'Start date': 'Start date', + 'Start typing to see a preview...': 'Start typing to see a preview...', + 'Subject (Book Title)': 'Subject (Book Title)', + 'Subject (book title) is required for reading groups': + 'Subject (book title) is required for reading groups', + 'Subject / Topics': 'Subject / Topics', + Subscribe: 'Subscribe', + Subscribed: 'Subscribed', + 'Subscribed to topic': 'Subscribed to topic', + 'Subscribed to topic (local)': 'Subscribed to topic (local)', + 'Subscribing...': 'Subscribing...', + Summary: 'Summary', + 'Supported Event Types': 'Supported Event Types', + 'Take a note': 'Take a note', + 'The full prompt conversation (optional)': 'The full prompt conversation (optional)', + 'The main editor above should contain only the text you want to highlight. This field should contain the full quote or paragraph for context.': + 'The main editor above should contain only the text you want to highlight. This field should contain the full quote or paragraph for context.', + 'These relays were found from your NIP-05 identifier and signer. You can add them to your relay list.': + 'These relays were found from your NIP-05 identifier and signer. You can add them to your relay list.', + 'This file could be either audio or video. Please select the correct type:': + 'This file could be either audio or video. Please select the correct type:', + 'This store does not contain replaceable events': + 'This store does not contain replaceable events', + 'This will add additional tags for author and subject to help organize reading group discussions.': + 'This will add additional tags for author and subject to help organize reading group discussions.', + 'Thread Content': 'Thread Content', + 'Thread Title': 'Thread Title', + 'Thread creation timed out. Please try again.': 'Thread creation timed out. Please try again.', + 'Thread published': 'Thread published', + 'Threads are organized by topics. Choose a topic that best fits your discussion.': + 'Threads are organized by topics. Choose a topic that best fits your discussion.', + 'Time-based': 'Time-based', + 'Title is required': 'Title is required', + 'Title must be 100 characters or less': 'Title must be 100 characters or less', + 'To translate notes and other content, use your browser’s built-in translation. For example: right-click the page and choose “Translate to…”, or use the translate icon in the address bar.': + 'To translate notes and other content, use your browser’s built-in translation. For example: right-click the page and choose “Translate to…”, or use the translate icon in the address bar.', + Top: 'Top', + Topic: 'Topic', + URL: 'URL', + 'URL of the article cover image (optional)': 'URL of the article cover image (optional)', + 'Unique identifier for this article (required)': + 'Unique identifier for this article (required)', + 'Unmute failed': 'Unmute failed', + 'Unpin note': 'Unpin note', + Unsubscribe: 'Unsubscribe', + 'Unsubscribed from topic': 'Unsubscribed from topic', + 'Unsubscribing...': 'Unsubscribing...', + Until: 'Until', + Untitled: 'Untitled', + Update: 'Update', + 'Updating...': 'Updating...', + 'Upload Audio Comment': 'Upload Audio Comment', + 'Upload Audio Message': 'Upload Audio Message', + 'Upload Media': 'Upload Media', + Upvote: 'Upvote', + 'User unmuted': 'User unmuted', + 'Version number (optional)': 'Version number (optional)', + Video: 'Video', + 'Video Note': 'Video Note', + 'Video file': 'Video file', + 'View Console Logs': 'View Console Logs', + 'View JSON': 'View JSON', + 'View cached items in this store.': 'View cached items in this store.', + 'View definition': 'View definition', + 'View details about cached data in IndexedDB stores. Click on a store to view its items.': + 'View details about cached data in IndexedDB stores. Click on a store to view its items.', + 'View on Alexandria': 'View on Alexandria', + 'View on DecentNewsroom': 'View on DecentNewsroom', + 'View on Wikistr': 'View on Wikistr', + 'View recent console logs for debugging': 'View recent console logs for debugging', + 'Voice Comment': 'Voice Comment', + 'Voice Note': 'Voice Note', + 'Voice note or audio file': 'Voice note or audio file', + Volume: 'Volume', + 'Volume number (optional)': 'Volume number (optional)', + 'Vote published': 'Vote published', + 'Vote removed': 'Vote removed', + 'Website where LLM was accessed (optional)': 'Website where LLM was accessed (optional)', + 'Wiki Article (AsciiDoc)': 'Wiki Article (AsciiDoc)', + 'Wiki Article (Markdown)': 'Wiki Article (Markdown)', + 'You can only delete your own notes': 'You can only delete your own notes', + 'You must be logged in to create a thread': 'You must be logged in to create a thread', + 'You need to add at least one media server in order to upload media files.': + 'You need to add at least one media server in order to upload media files.', + 'You need to login first': 'You need to login first', + 'Your account is blocked from posting to this relay.': + 'Your account is blocked from posting to this relay.', + Zap: 'Zap', + 'Zap failed': 'Zap failed', + created_at: 'created_at', + 'e tag of kind 1040 event (optional)': 'e tag of kind 1040 event (optional)', + 'e.g. meetup, conference': 'e.g. meetup, conference', + 'e.g., 123-145 (optional)': 'e.g., 123-145 (optional)', + 'e.g., GPT-4, Claude, etc. (required)': 'e.g., GPT-4, Claude, etc. (required)', + 'e.g., my-article-title': 'e.g., my-article-title', + entries: 'entries', + 'from Bunker': 'from Bunker', + 'from Extension': 'from Extension', + 'from NIP-05': 'from NIP-05', + general: 'general', + 'https://example.com (required)': 'https://example.com (required)', + 'https://example.com/image.jpg': 'https://example.com/image.jpg', + id: 'id', + items: 'items', + kind: 'kind', + 'kind:pubkey:hex format (required)': 'kind:pubkey:hex format (required)', + 'last updated': 'last updated', + matching: 'matching', + naddr: 'naddr', + nevent: 'nevent', + 'nevent1..., naddr1..., note1..., hex ID, or https://...': + 'nevent1..., naddr1..., note1..., hex ID, or https://...', + 'no notes found': 'no notes found', + of: 'of', + 'on note': 'on note', + optional: 'optional', + pubkey: 'pubkey', + 'sent a public message': 'sent a public message', + 'sent you a public message': 'sent you a public message', + 'sent you a public message (along with {{count}} others)': + 'sent you a public message (along with {{count}} others)', + sig: 'sig', + 'started a discussion in {{topic}}': 'started a discussion in {{topic}}', + tags: 'tags', + thread: 'thread', + threads: 'threads', + 'topic1, topic2, topic3': 'topic1, topic2, topic3', + '{{count}} relay(s) selected': '{{count}} relay(s) selected', + '🔞 NSFW 🔞': '🔞 NSFW 🔞' } } diff --git a/src/i18n/locales/hi.ts b/src/i18n/locales/hi.ts index 3f0e1b80..4961da0a 100644 --- a/src/i18n/locales/hi.ts +++ b/src/i18n/locales/hi.ts @@ -5,8 +5,12 @@ export default { 'New Note': 'नया नोट', Post: 'पोस्ट', Home: 'होम', + Feed: 'Feed', + 'Favorites Feed': 'Favorites Feed', + 'Pinned note': 'Pinned note', 'Relay settings': 'रिले सेटिंग्स', Settings: 'सेटिंग्स', + 'Account menu': 'Account menu', SidebarRelays: 'रिले', Refresh: 'रीफ्रेश', Profile: 'प्रोफ़ाइल', @@ -30,6 +34,12 @@ export default { 'loading...': 'लोड हो रहा है...', 'Loading...': 'लोड हो रहा है...', 'no more notes': 'कोई और नोट नहीं', + 'calendar entries': 'calendar entries', + 'Loading calendar events...': 'Loading calendar events...', + 'No calendar events found': 'No calendar events found', + 'Calendar events in the next {{count}} months': 'Calendar events in the next {{count}} months', + 'The nostr.band relay appears to be temporarily out of service. Please try again later.': + 'The nostr.band relay appears to be temporarily out of service. Please try again later.', 'reply to': 'का उत्तर', reply: 'उत्तर', Reply: 'उत्तर', @@ -37,6 +47,9 @@ export default { 'Write something...': 'कुछ लिखें...', Cancel: 'रद्द करें', Mentions: 'उल्लेख', + 'Search for event or address…': 'Search for event or address…', + 'Search notes…': 'Search notes…', + 'No notes found': 'No notes found', 'Failed to post': 'पोस्ट असफल', 'Post successful': 'पोस्ट सफल', 'Your post has been published': 'आपकी पोस्ट प्रकाशित हो गई है', @@ -45,7 +58,22 @@ export default { Quote: 'उद्धरण', 'Copy event ID': 'इवेंट आईडी कॉपी करें', 'Copy user ID': 'यूजर आईडी कॉपी करें', + 'Send public message': 'Send public message', 'View raw event': 'कच्चा इवेंट देखें', + 'Edit this event': 'Edit this event', + 'Clone or fork this event': 'Clone or fork this event', + 'Event kind': 'Event kind', + 'Note content': 'Note content', + Publish: 'Publish', + 'Post published': 'Post published', + 'Edit content and tags, then publish a new signed event.': + 'Edit content and tags, then publish a new signed event.', + 'Log in to publish': 'Log in to publish', + 'Set when you publish': 'set when you publish', + 'id and sig are assigned when you publish': 'id and sig are assigned when you publish', + 'Published to some relays only': 'Published to some relays only', + 'Add field': 'Add field', + 'View full profile': 'View full profile', Like: 'पसंद', 'switch to light theme': 'लाइट थीम पर स्विच करें', 'switch to dark theme': 'डार्क थीम पर स्विच करें', @@ -56,18 +84,143 @@ export default { "username's used relays": '{{username}} के उपयोग किए गए रिले', "username's muted": '{{username}} के म्यूट किए गए', Login: 'लॉगिन', + 'Please log in to view notifications.': 'Please log in to view notifications.', 'Follows you': 'आपको फॉलो करता है', 'Relay Settings': 'रिले सेटिंग्स', + 'Relays and Storage Settings': 'Relays and Storage Settings', 'Relay set name': 'रिले सेट नाम', 'Add a new relay set': 'नया रिले सेट जोड़ें', Add: 'जोड़ें', 'n relays': '{{n}} रिले', Rename: 'नाम बदलें', + 'Copy share link': 'Copy share link', + 'Copy address': 'Copy address', + 'Copy payto URI': 'Copy payto URI', + 'Copied payto address': 'Copied payto address', + 'Copied to clipboard': 'Copied to clipboard', + 'Copied {{label}} address': 'Copied {{label}} address', + 'Lightning payment address – copy to pay via your wallet': + 'Lightning payment address – copy to pay via your wallet', + 'Payment address – copy to use in your wallet or app': + 'Payment address – copy to use in your wallet or app', + 'Click to open payment options': 'Click to open payment options', + 'Click to copy address': 'Click to copy address', + 'Open on website': 'Open on website', + 'Raw profile event': 'Raw profile event', + 'Full profile event': 'Full profile event', + 'Event (JSON)': 'Event (JSON)', + 'Save full profile': 'Save full profile', + 'Add tag': 'Add tag', + 'Remove tag': 'Remove tag', + 'Tag name': 'Tag name', + Value: 'Value', + 'Add value to tag': 'Add value to tag', + 'Remove value': 'Remove value', + 'No tags. Click "Add tag" to add one.': 'No tags. Click "Add tag" to add one.', + 'Profile updated': 'Profile updated', + 'Failed to publish profile': 'Failed to publish profile', + 'Invalid profile JSON': 'Invalid profile JSON', + 'Refresh cache': 'Refresh cache', + 'Force-refresh profile and payment info from relays': + 'Force-refresh profile and payment info from relays', + 'Profile and payment cache refreshed': 'Profile and payment cache refreshed', + 'Failed to refresh cache': 'Failed to refresh cache', + 'Raw payment info event': 'Raw payment info event', + 'Payment info': 'Payment info', + 'Edit payment info': 'Edit payment info', + 'Add payment info': 'Add payment info', + 'No payment info event yet. Click "Add payment info" to create one.': + 'No payment info event yet. Click "Add payment info" to create one.', + 'Content (JSON)': 'Content (JSON)', + Tags: 'Tags', + 'Tags (JSON array of arrays, e.g. [["payto","lightning","user@domain.com"]])': + 'Tags (JSON array of arrays, e.g. [["payto","lightning","user@domain.com"]])', + 'Payment info updated': 'Payment info updated', + 'Failed to publish payment info': 'Failed to publish payment info', + 'Invalid tags JSON': 'Invalid tags JSON', + 'Payment methods': 'Payment methods', + 'NIP-A3 payto tags: type (e.g. lightning) and authority (e.g. user@domain.com).': + 'NIP-A3 payto tags: type (e.g. lightning) and authority (e.g. user@domain.com).', + 'Type (e.g. lightning)': 'Type (e.g. lightning)', + 'Authority (e.g. user@domain.com)': 'Authority (e.g. user@domain.com)', + 'Add payment method': 'Add payment method', + Remove: 'Remove', + 'Additional content (JSON)': 'Additional content (JSON)', + 'Show full event JSON': 'Show full event JSON', + 'Tag list': 'Tag list', + 'Profile event tags (e.g. lud16, nip05, website). Saved with kind 0.': + 'Profile event tags (e.g. lud16, nip05, website). Saved with kind 0.', + 'Tag value': 'Tag value', + 'Saving…': 'Saving…', 'Share with Jumble': 'Jumble के साथ शेयर करें', 'Share with Alexandria': 'Alexandria के साथ शेयर करें', + 'Start video call': 'Start video call', + 'Copy call invite link': 'Copy call invite link', + 'Start call about this': 'Start call about this', + 'Send call invite': 'Send call invite', + 'Join the video call': 'Join the video call', + 'Schedule video call': 'Schedule video call', + "You're invited to a scheduled video call.": "You're invited to a scheduled video call.", + 'Create a calendar event and send an invite. The recipient will see the event with a join link.': + 'Create a calendar event and send an invite. The recipient will see the event with a join link.', + 'Schedule a video call': 'Schedule a video call', + 'Create a calendar event and send kind 24 invites to each listed invitee.': + 'Create a calendar event and send kind 24 invites to each listed invitee.', + Invitees: 'Invitees', + 'Paste nostr:npub1... or nostr:nprofile1... (one or more)': + 'Paste nostr:npub1... or nostr:nprofile1... (one or more)', + 'Schedule and send invites': 'Schedule and send invites', + 'Add at least one invitee (paste nostr:npub or nostr:nprofile links)': + 'Add at least one invitee (paste nostr:npub or nostr:nprofile links)', + 'Scheduled call created and {{count}} invite(s) sent': + 'Scheduled call created and {{count}} invite(s) sent', + 'Join video call': 'Join video call', + 'Scheduled video call': 'Scheduled video call', + 'Video call': 'Video call', + 'Schedule and send invite': 'Schedule and send invite', + 'Scheduling…': 'Scheduling…', + 'Please set a start time': 'Please set a start time', + 'End time must be after start time': 'End time must be after start time', + 'Failed to schedule call': 'Failed to schedule call', + 'Scheduled call created and invite sent': 'Scheduled call created and invite sent', + RSVP: 'RSVP', + 'RSVP: {{status}}': 'RSVP: {{status}}', + Accepted: 'Accepted', + Tentative: 'Tentative', + Declined: 'Declined', + 'You need to log in to RSVP': 'You need to log in to RSVP', + 'RSVP updated': 'RSVP updated', + 'Failed to update RSVP': 'Failed to update RSVP', + Organizer: 'Organizer', + Attendees: 'Attendees', + 'No response': 'No response', + 'Calendar Events': 'Calendar Events', + 'Calendar Event': 'Calendar Event', + 'Schedule in-person meeting': 'Schedule in-person meeting', + 'Create a calendar event and send an invite. No video link — for real-life meetups, conferences, etc.': + 'Create a calendar event and send an invite. No video link — for real-life meetups, conferences, etc.', + "You're invited to an in-person meeting.": "You're invited to an in-person meeting.", + 'Meeting created and invite sent': 'Meeting created and invite sent', + 'Failed to create meeting': 'Failed to create meeting', + 'Create and send invite': 'Create and send invite', + 'Creating…': 'Creating…', + 'In-person meeting': 'In-person meeting', + Location: 'Location', + 'Address, venue, or place': 'Address, venue, or place', + Description: 'Description', + 'Optional notes': 'Optional notes', + 'Create a calendar event for a real-life meetup and send kind 24 invites to each invitee.': + 'Create a calendar event for a real-life meetup and send kind 24 invites to each invitee.', + 'Meeting created and {{count}} invite(s) sent': 'Meeting created and {{count}} invite(s) sent', + 'Create and send invites': 'Create and send invites', + Title: 'Title', + Start: 'Start', + End: 'End', Delete: 'हटाएं', 'Relay already exists': 'रिले पहले से मौजूद है', 'invalid relay URL': 'अमान्य रिले URL', + 'Relay URL…': 'wss://… or relay host', + 'Open relay': 'Open relay', 'Add a new relay': 'नया रिले जोड़ें', back: 'वापस', 'Lost in the void': 'शून्य में खो गया', @@ -114,6 +267,19 @@ export default { 'Picture note requires images': 'तस्वीर नोट के लिए इमेज आवश्यक है', Relays: 'रिले', Image: 'इमेज', + 'Upload Image': 'Upload Image', + 'Insert emoji': 'Insert emoji', + 'Insert GIF': 'Insert GIF', + 'Search GIFs': 'Search GIFs', + 'Choose a GIF': 'Choose a GIF', + 'Search GifBuddy for more GIFs': 'Search GifBuddy for more GIFs', + 'Add your own GIFs': 'Add your own GIFs', + 'Description (optional, for search)': 'Description (optional, for search)', + 'e.g. happy birthday, thumbs up': 'e.g. happy birthday, thumbs up', + 'Uploading...': 'Uploading...', + 'No GIFs found. Try searching or add your own. GIFs come from Nostr kind 1063 (NIP-94) events on GIF relays.': + 'No GIFs found. Try searching or add your own. GIFs come from Nostr kind 1063 (NIP-94) events on GIF relays.', + '{{name}} is not a GIF file': '{{name}} is not a GIF file', 'R & W': 'R & W', Read: 'पढ़ें', Write: 'लिखें', @@ -155,6 +321,9 @@ export default { Muted: 'म्यूट किया गया', Unmute: 'अनम्यूट', 'Unmute user': 'उपयोगकर्ता को अनम्यूट करें', + Block: 'Block', + Unblock: 'Unblock', + blocked: 'blocked', 'Append n relays': '{{n}} रिले जोड़ें', Append: 'जोड़ें', 'Select relays to append': 'जोड़ने के लिए रिले चुनें', @@ -179,6 +348,24 @@ export default { 'Explore more': 'और एक्सप्लोर करें', 'Payment page': 'भुगतान पेज', 'Supported NIPs': 'समर्थित NIPs', + 'Relay liveliness (NIP-66)': 'Relay liveliness (NIP-66)', + 'Relay monitor (NIP-66)': 'Relay monitor (NIP-66)', + 'Auth required': 'Auth required', + 'Public (no auth)': 'Public (no auth)', + 'Payment required': 'Payment required', + 'No payment': 'No payment', + 'Writes required': 'Writes required', + 'Writes open': 'Writes open', + 'PoW required': 'PoW required', + 'No PoW': 'No PoW', + 'RTT open': 'RTT open', + 'RTT read': 'RTT read', + 'RTT write': 'RTT write', + 'Supported NIPs (from monitor)': 'Supported NIPs (from monitor)', + 'Last reported by monitor': 'Last reported by monitor', + Network: 'Network', + Type: 'Type', + Topics: 'Topics', 'Open in a': '{{a}} में खोलें', 'Cannot handle event of kind k': 'प्रकार {{k}} के इवेंट को हैंडल नहीं कर सकते', 'Sorry! The note cannot be found 😔': 'माफ करें! नोट नहीं मिल सका 😔', @@ -210,9 +397,22 @@ export default { 'Seen on': 'पर देखा गया', 'Temporarily display this reply': 'इस उत्तर को अस्थायी रूप से प्रदर्शित करें', 'Note not found': 'नोट नहीं मिला', + 'The note was not found on your relays or default relays.': + 'The note was not found on your relays or default relays.', + "Try searching author's relays": "Try searching author's relays", + 'Searching external relays...': 'Searching external relays...', + "This will connect to the author's relays and relay hints": + "This will connect to the author's relays and relay hints", + 'Note could not be found anywhere': 'Note could not be found anywhere', + 'Try external relays': 'Try external relays', + 'Searching...': 'Searching...', + 'Show relays': 'Show relays', + 'No external relay hints available': 'No external relay hints available', 'no more replies': 'कोई और उत्तर नहीं', 'Relay sets': 'रिले सेट', 'Favorite Relays': 'पसंदीदा रिले', + 'Search for Relays': 'Search for Relays', + 'Using app default relays': 'Using app default relays', "Following's Favorites": 'फॉलोइंग के पसंदीदा', 'no more relays': 'कोई और रिले नहीं', 'Favorited by': 'द्वारा पसंदीदा', @@ -228,10 +428,48 @@ export default { 'no bookmarks found': 'कोई बुकमार्क नहीं मिला', 'no more bookmarks': 'कोई और बुकमार्क नहीं', Bookmarks: 'बुकमार्क', + 'Follow Packs': 'Follow Packs', + 'Follow Pack': 'Follow Pack', + 'Please log in to follow': 'Please log in to follow', + 'Following All': 'Following All', + 'Followed {{count}} users': 'Followed {{count}} users', + 'All available members are already followed or muted': + 'All available members are already followed or muted', + 'You are already following all members of this pack': + 'You are already following all members of this pack', + 'Failed to follow pack': 'Failed to follow pack', + '{{count}} profiles': '{{count}} profiles', 'Show more': 'और दिखाएं', General: 'सामान्य', Autoplay: 'ऑटोप्ले', 'Enable video autoplay on this device': 'इस डिवाइस पर वीडियो ऑटोप्ले सक्षम करें', + 'Add random relays to every publish': 'Random relays in publish list', + 'Add random relays to every publish description': + 'Adds {{n}} random public relays from the NIP-66 lively list (preferring monitors that reported a write RTT) to the publish relay list. When ON, they are selected by default; when OFF, they appear in the list but are unchecked so you can optionally include them.', + relayType_local: 'Local', + relayType_relay_list: 'Relay list', + relayType_client_default: 'Client default', + relayType_open_from: 'Current feed', + relayType_favorite: 'Favorite', + relayType_relay_set: 'Relay set', + relayType_contextual: 'Reply/PM', + relayType_randomly_selected: 'Random (optional)', + 'Session relays': 'Session relays', + 'Session relays tab description': + 'Relay logic for this session: working and striked preset relays, and scored random relays (used to prefer faster, proven relays when adding random relays to publish).', + 'Session relays preset working': 'Working preset relays', + 'Session relays preset working hint': + 'Preset relays (from app defaults) that have not reached 3 publish failures this session.', + 'Session relays preset striked': 'Striked preset relays', + 'Session relays preset striked hint': + 'Preset relays that have reached 3 publish failures this session and are skipped for the rest of the session.', + 'Session relays scored random': 'Scored random relays', + 'Session relays scored random hint': + 'Relays that have accepted at least one publish this session; used to prefer faster relays when picking random relays. Sorted by average latency.', + 'Session relays all striked': 'All striked relays (any source)', + successes: 'successes', + None: 'None', + 'Cache & offline storage': 'Cache & offline storage', 'Paste or drop media files to upload': 'अपलोड करने के लिए मीडिया फाइलें पेस्ट या ड्रॉप करें', Preview: 'पूर्वावलोकन', 'You are about to publish an event signed by [{{eventAuthorName}}]. You are currently logged in as [{{currentUsername}}]. Are you sure?': @@ -264,6 +502,7 @@ export default { 'Are you sure you want to reset your API key? This action cannot be undone.': 'क्या आप वाकई अपनी API की रीसेट करना चाहते हैं? यह कार्य पूर्ववत नहीं किया जा सकता।', Warning: 'चेतावनी', + 'Errors & warnings': 'Errors & warnings', 'Your current API key will become invalid immediately, and any applications using it will stop working until you update them with the new key.': 'आपकी वर्तमान API की तुरंत अमान्य हो जाएगी, और इसका उपयोग करने वाले सभी एप्लिकेशन तब तक काम करना बंद कर देंगे जब तक आप उन्हें नई की के साथ अपडेट नहीं करते।', 'Service address': 'सेवा पता', @@ -295,6 +534,9 @@ export default { Article: 'लेख', Unfavorite: 'पसंदीदा से हटाएं', 'Recommended relays': 'अनुशंसित रिले', + 'Show recommended relays panel': 'Show recommended relays panel', + 'Display the right-side panel with recommended relays on desktop': + 'Display the right-side panel with recommended relays on desktop', 'Blossom server URLs': 'ब्लॉसम सर्वर URLs', 'You need to add at least one blossom server in order to upload media files.': 'मीडिया फाइलें अपलोड करने के लिए आपको कम से कम एक ब्लॉसम सर्वर जोड़ना होगा।', @@ -321,7 +563,31 @@ export default { 'Refresh results': 'परिणाम रीफ्रेश करें', Poll: 'पोल', Media: 'मीडिया', + Interests: 'Interests', + Calendar: 'Calendar', + 'No subscribed interests yet.': + 'No subscribed interests yet. Add topics in settings to see them here.', + 'No bookmarked notes with id tags yet.': + 'No bookmarked notes with id tags yet. Only classic (e-tag) bookmarks load in this feed.', + 'No follows or relays to load yet.': 'No follows or relays to load yet.', + 'Nothing to load for this feed.': 'Nothing to load for this feed.', 'Republish to ...': 'पुनः प्रकाशित करें...', + 'All available relays': 'All available relays', + 'All active relays (monitoring list)': 'All active relays (monitoring list)', + 'Successfully republish to all available relays': + 'Successfully republish to all available relays', + 'Failed to republish to all available relays: {{error}}': + 'Failed to republish to all available relays: {{error}}', + 'Successfully republish to all active relays': 'Successfully republish to all active relays', + 'Failed to republish to all active relays: {{error}}': + 'Failed to republish to all active relays: {{error}}', + 'No active relays in monitoring list': 'No active relays in monitoring list', + 'No relay accepted the event': 'No relay accepted the event', + 'No relays available': 'No relays available', + 'No write relays configured': 'No write relays configured', + 'Relay did not accept the event': 'Relay did not accept the event', + 'Only {{count}} relay(s) accepted the event; at least 5 required for "all active relays".': + 'Only {{count}} relay(s) accepted the event; at least 5 required for "all active relays".', 'Successfully republish to your write relays': 'आपके राइट रिले पर सफलतापूर्वक पुनः प्रकाशित', 'Failed to republish to your write relays: {{error}}': 'आपके राइट रिले पर पुनः प्रकाशित करने में असफल: {{error}}', @@ -339,6 +605,7 @@ export default { 'No zaps yet': 'अभी तक कोई जैप्स नहीं', 'No more boosts': 'और कोई बूस्ट नहीं', 'No boosts yet': 'अभी तक कोई बूस्ट नहीं', + 'n more boosts': '{{count}} more boosts', Boosts: 'बूस्ट', FollowListNotFoundConfirmation: 'फॉलो सूची नहीं मिली। क्या आप एक नई बनाना चाहते हैं? यदि आपने पहले उपयोगकर्ताओं को फॉलो किया है, तो कृपया पुष्टि न करें क्योंकि इस ऑपरेशन से आपकी पिछली फॉलो सूची नष्ट हो जाएगी।', @@ -361,8 +628,13 @@ export default { 'Maybe Later': 'शायद बाद में', "Don't remind me again": 'मुझे दोबारा याद न दिलाएं', Posts: 'पोस्ट', + 'Posts (OPs)': 'Posts (OPs)', + 'Kind 1 replies': 'Kind 1 replies', + Comments: 'Comments', + 'Replies & comments': 'Replies & comments', Articles: 'लेख', Highlights: 'हाइलाइट्स', + 'A note from': 'A note from', Polls: 'पोल', 'Voice Posts': 'वॉयस पोस्ट', 'Photo Posts': 'फोटो पोस्ट', @@ -389,6 +661,13 @@ export default { 'boosted your note': 'ने आपके नोट को बूस्ट किया', 'zapped your note': 'ने आपके नोट को जैप किया', 'zapped you': 'ने आपको जैप किया', + zapped: 'zapped', + 'Invalid zap receipt': 'Invalid zap receipt', + 'Zapped note': 'Zapped note', + 'Zapped profile': 'Zapped profile', + 'Zap reply threshold': 'Zap reply threshold', + 'Zaps above this amount will appear as replies in threads': + 'Zaps above this amount will appear as replies in threads', 'Mark as read': 'पढ़ा हुआ मार्क करें', Report: 'रिपोर्ट करें', 'Successfully report': 'सफलतापूर्वक रिपोर्ट किया गया', @@ -403,7 +682,6 @@ export default { 'See extra info for each notification': 'प्रत्येक सूचना के लिए अतिरिक्त जानकारी देखें', 'See more notifications at a glance': 'एक नज़र में अधिक सूचनाएं देखें', Detailed: 'विस्तृत', - Compact: 'संक्षिप्त', 'Submit Relay': 'रिले सबमिट करें', Homepage: 'होमपेज', 'Proof of Work (difficulty {{minPow}})': 'कार्य प्रमाण (कठिनाई {{minPow}})', @@ -429,6 +707,23 @@ export default { '{{count}} relays': '{{count}} रिले', 'Republishing...': 'पुनः प्रकाशित कर रहे हैं...', 'Trending Notes': 'ट्रेंडिंग नोट्स', + 'Trending on Your Favorite Relays': 'Trending on Your Favorite Relays', + 'Trending on the Default Relays': 'Trending on the Default Relays', + 'Latest from your follows': 'Latest from your follows', + 'Latest from our recommended follows': 'Latest from our recommended follows', + 'Loading follow list…': 'Loading follow list…', + 'Could not load recommended follows': 'Could not load recommended follows', + 'Your follow list is empty': 'Your follow list is empty', + 'Loading recent posts from follows…': 'Loading recent posts from follows…', + 'Loading more…': 'Loading more…', + 'No recent posts from this user in the current fetch': + 'No recent posts from this user in the current fetch', + 'Loading trending notes from your relays...': 'Loading trending notes from your relays...', + Sort: 'Sort', + newest: 'newest', + oldest: 'oldest', + 'most popular': 'most popular', + 'least popular': 'least popular', 'Connected to': 'से कनेक्टेड', 'Disconnect Wallet': 'वॉलेट डिस्कनेक्ट करें', 'Are you absolutely sure?': 'क्या आप पूरी तरह से सुनिश्चित हैं?', @@ -436,6 +731,690 @@ export default { Disconnect: 'डिस्कनेक्ट करें', 'Set up your wallet to send and receive sats!': 'सैट्स भेजने और प्राप्त करने के लिए अपना वॉलेट सेट करें!', - 'Set up': 'सेट करें' + 'Set up': 'सेट करें', + 'nested events': 'nested events', + 'Loading RSS feeds...': 'Loading RSS feeds...', + 'No RSS feed items available': 'No RSS feed items available', + 'Show or hide the RSS page and sidebar entry': 'Show or hide the RSS page and sidebar entry', + 'Refreshing feeds...': 'Refreshing feeds...', + 'All feeds': 'All feeds', + 'All time': 'All time', + 'Last hour': 'Last hour', + 'Last day': 'Last day', + 'Last week': 'Last week', + 'Last month': 'Last month', + 'No items match your filters': 'No items match your filters', + 'Search...': 'Search...', + '{{count}} feeds': '{{count}} feeds', + 'Toggle filters': 'Toggle filters', + 'Showing {{filtered}} of {{total}} items': 'Showing {{filtered}} of {{total}} items', + Full: 'Full', + Compact: 'संक्षिप्त', + Expand: 'Expand', + 'help.title': 'Help', + 'help.tabShortcuts': 'Keyboard shortcuts', + 'help.tabOverview': 'App overview', + 'shortcuts.title': 'Keyboard shortcuts', + 'shortcuts.intro': + 'Shortcuts for this app and common browsing. Modifier combos are Shift+Alt+key (Option+Shift+key on macOS); either modifier order works when typing.', + 'shortcuts.sectionApp': 'This app', + 'shortcuts.sectionSearch': 'Search bar', + 'shortcuts.sectionStandard': 'Standard', + 'shortcuts.openHelp': 'Show this help', + 'shortcuts.or': 'or', + 'shortcuts.then': 'then', + 'shortcuts.focusPrimary': + 'Focus main column scroll (desktop; then arrow keys, Page Up/Down, Home/End)', + 'shortcuts.focusSecondary': + 'Focus side panel scroll when it is open (desktop; same keys to scroll)', + 'shortcuts.newNote': 'New note / post (after login if needed)', + 'shortcuts.searchSuggest': 'Move through suggestions', + 'shortcuts.searchDismiss': 'Close search dropdown', + 'shortcuts.tabNavigate': 'Move focus to the next or previous control', + 'shortcuts.activate': 'Activate buttons and many controls', + 'shortcuts.closeOverlays': 'Close dialogs, menus, and the search dropdown', + 'shortcuts.scrollWhenFocused': 'Scroll the focused scrollable area', + 'shortcuts.browserBack': 'Browser back (history)', + 'No spells yet. Create one with the button above.': + 'No spells yet. Create one with the button above.', + 'Loading spells from your relays…': 'Loading spells from your relays…', + 'Could not run this spell. Check that it has a valid REQ/COUNT command, or add write relays in settings.': + 'Could not run this spell. Check that it has a valid REQ/COUNT command, or add write relays in settings.', + 'Select a spell…': 'Select a spell…', + 'Spells from follows': 'From people you follow ({{count}})', + 'Other spells': 'Other spells ({{count}})', + 'Select a spell to view its feed.': 'Select a spell to view its feed.', + 'Add another row': 'Add another row', + 'Remove this row': 'Remove this row', + 'One kind number per row (e.g. 1 for notes).': 'One kind number per row (e.g. 1 for notes).', + 'One author per row: $me, $contacts, or hex pubkey / npub.': + 'One author per row: $me, $contacts, or hex pubkey / npub.', + 'One hex event id per row.': 'One hex event id per row.', + 'One wss:// URL per row. Leave empty to use your write relays.': + 'One wss:// URL per row. Leave empty to use your write relays.', + 'One topic per row.': 'One topic per row.', + topic: 'topic', + 'Spell form fields': 'Spell form fields', + 'Counting matching events…': 'Counting matching events…', + 'Edit spell': 'Edit spell', + 'Clone spell': 'Clone spell', + 'Spell cloned': 'Spell cloned', + 'Clone spell intro': + 'This spell is preloaded from another author’s definition. Change anything you like, then save to publish a new spell signed with your account.', + 'Spell updated': 'Spell updated', + 'Relay URL': 'Relay', + Count: 'Count', + 'Edit spell relays': 'Edit relays', + 'COUNT spell relay errors hint': + 'One or more relays failed or returned an error. You can change the relay list in the spell and save again.', + 'COUNT spell total distinct explanation': + 'Distinct matching event IDs across all relays that responded successfully (duplicates across relays removed). Each relay only returns up to the filter limit.', + 'Leave empty to use your write relays.': 'Leave empty to use your write relays.', + 'COUNT spell result explanation': + 'Distinct events returned for this filter (merged from your spell relays and default write relays, duplicates removed). Relays only return up to the filter limit.', + 'COUNT spell may be capped by limit': + 'This count may equal your spell limit — there could be more matching events on the network.', + 'Spell count failed. Check relays or try again.': + 'Could not complete the count. Check relays or try again.', + 'REQ returns a feed; COUNT returns a number.': + 'REQ: scrollable feed (choose live Feed or one-shot Fetch below). COUNT: a single number, no feed.', + listImportManualLabel: 'Pre-fill from event', + listImportFromEventHint: + 'Supported tags are merged into the form (e, p, t, relay, r, a where possible). Non-empty content is skipped; encrypted private items are not read. You may see notices for unmapped tags.', + listImportManualPlaceholder: '64-char hex, nevent1…, or naddr1…', + listImportLoadManual: 'Apply', + listImportContentSkipped: + 'This event has non-empty content (may include encrypted private items). Only public tags were merged.', + listImportUnsupportedEmoji: + 'This list includes emoji tags (NIP-30); those are not added to the spell filter.', + listImportUnsupportedTag: + 'Tags of type “{{tag}}” ({{count}}) are not mapped to spell filters yet.', + listImportBadATag: 'Could not parse address tag: {{preview}}…', + listImportATagNotFound: 'Could not resolve address tag: {{preview}}…', + listImportATagFailed: 'Failed to resolve address tag: {{preview}}…', + listImportEventNotFound: 'No event found for that reference.', + 'REQ tag filters': 'REQ tag filters', + spellFormTagFiltersLabel: 'Tag filters on matching events', + spellCreateIntro: + 'Spells are saved relay filters (NIP-A7). The “Spell query” section is the real definition; the dashed box at the bottom is only for names, descriptions, and catalog labels. Use $me for your pubkey and $contacts for your follow list when executing.', + spellFormSectionQueryTitle: 'Spell query', + spellFormSectionQueryHint: + 'This block is the actual spell definition: it becomes the Nostr REQ/COUNT filter (kinds, authors, time range, tag filters on matching events, relays, etc.).', + spellFormSectionMetadataTitle: 'Listing & labels (optional)', + spellFormSectionMetadataBadge: 'Not part of the query', + spellFormSectionMetadataHint: + 'Name, description, and topic labels are only for display and spell pickers. They are not used when the spell fetches events.', + spellFormCatalogTopicsLabel: 'Topic labels on this spell (t tags)', + spellTopicsMetadataHint: + 'One topic per row. To filter which notes you see, use “REQ tag filters” in the spell query above (letter “t”).', + spellTagFiltersHint: + 'Optional filters on subscribed events (NIP-01 single-letter tags). Example: letter “t”, values “bitcoin”.', + spellTagFiltersEmpty: 'No tag filters yet. Add rows below or apply an event reference above.', + 'Tag filter letter': 'Tag letter', + 'Filter value': 'Value', + 'Add tag filter': 'Add tag filter', + spellPickerSectionYours: 'Your spells', + 'Failed to remove spell from local storage': 'Failed to remove spell from local storage', + Spells: 'Spells', + 'doublePane.secondaryEmpty': 'Open a note, profile, or settings item to show it here.', + 'doublePane.secondaryEmptyHint': 'Your feed and primary pages stay on the left.', + '(empty)': '(empty)', + '12-hour (AM/PM)': '12-hour (AM/PM)', + '24-hour': '24-hour', + 'A new version is available': 'A new version is available', + 'A short description of the article content': 'A short description of the article content', + AM: 'AM', + 'Access via': 'Access via', + 'Accessed On': 'Accessed On', + 'Accessed on': 'Accessed on', + 'Add RSS feed URLs to subscribe to. If no feeds are configured, the default feed will be used.': + 'Add RSS feed URLs to subscribe to. If no feeds are configured, the default feed will be used.', + 'Add a relay to block': 'Add a relay to block', + 'Add at least one invitee': 'Add at least one invitee', + 'Add client identifier': 'Add client identifier', + 'Add expiration tags by default': 'Add expiration tags by default', + 'Add quiet tags by default': 'Add quiet tags by default', + 'Add recipients using nostr: mentions (e.g., nostr:npub1...) or the recipient selector above': + 'Add recipients using nostr: mentions (e.g., nostr:npub1...) or the recipient selector above', + 'Add the source (where this text is from)': 'Add the source (where this text is from)', + 'Add to favorites': 'Add to favorites', + 'Add {{count}} Selected': 'Add {{count}} Selected', + 'Added at': 'Added at', + 'Added {{count}} relay(s)': 'Added {{count}} relay(s)', + 'Adding...': 'Adding...', + 'Adding…': 'Adding…', + 'Advanced Options': 'Advanced Options', + 'All Topics': 'All Topics', + 'All favorite relays': 'All favorite relays', + 'All feeds from OPML file are already added': 'All feeds from OPML file are already added', + 'All items deleted successfully': 'All items deleted successfully', + 'Already blocked': 'Already blocked', + 'Already saved': 'Already saved', + 'Application Recommendations': 'Application Recommendations', + 'Are you sure you want to clear all cached data? This will delete all stored events and settings from your browser.': + 'Are you sure you want to clear all cached data? This will delete all stored events and settings from your browser.', + 'Are you sure you want to delete all items from this store?': + 'Are you sure you want to delete all items from this store?', + 'Are you sure you want to unmute this user? This will restore the follow button.': + 'Are you sure you want to unmute this user? This will restore the follow button.', + "Are you sure you want to unregister the service worker? This will clear this app's service worker caches and you will need to reload the page.": + "Are you sure you want to unregister the service worker? This will clear this app's service worker caches and you will need to reload the page.", + 'Article exported as AsciiDoc': 'Article exported as AsciiDoc', + 'Article exported as Markdown': 'Article exported as Markdown', + 'Article title (optional)': 'Article title (optional)', + Audio: 'Audio', + Author: 'Author', + 'Author is required for reading groups': 'Author is required for reading groups', + 'Author name (optional)': 'Author name (optional)', + Authors: 'Authors', + 'Block Relay': 'Block Relay', + 'Blocked Relays': 'Blocked Relays', + 'Blocking...': 'Blocking...', + Blossom: 'Blossom', + Book: 'Book', + 'Brief description of the event': 'Brief description of the event', + 'Brief summary (optional)': 'Brief summary (optional)', + 'Brief summary of the article (optional)': 'Brief summary of the article (optional)', + 'Browse Cache': 'Browse Cache', + 'C-Tag': 'C-Tag', + 'Cache Relays': 'Cache Relays', + 'Cache cleared successfully': 'Cache cleared successfully', + 'Cache refreshed successfully': 'Cache refreshed successfully', + 'Cache relays are used to store and retrieve events locally. These relays are merged with your inbox and outbox relays.': + 'Cache relays are used to store and retrieve events locally. These relays are merged with your inbox and outbox relays.', + 'Cache relays must be local network URLs only (e.g., ws://localhost:4869 or ws://127.0.0.1:4869)': + 'Cache relays must be local network URLs only (e.g., ws://localhost:4869 or ws://127.0.0.1:4869)', + 'Cache relays saved': 'Cache relays saved', + Cancelled: 'Cancelled', + Chapter: 'Chapter', + 'Chapter Title': 'Chapter Title', + 'Chapter title (optional)': 'Chapter title (optional)', + Citation: 'Citation', + 'Citation title (optional)': 'Citation title (optional)', + 'Clean up duplicate replaceable events? This will keep only the newest version of each event.': + 'Clean up duplicate replaceable events? This will keep only the newest version of each event.', + 'Cleaned up {{deleted}} duplicate entries, kept {{kept}}': + 'Cleaned up {{deleted}} duplicate entries, kept {{kept}}', + 'Cleaned up {{deleted}} duplicate entries, kept {{kept}} (total items after cleanup: {{total}})': + 'Cleaned up {{deleted}} duplicate entries, kept {{kept}} (total items after cleanup: {{total}})', + 'Cleanup Duplicates': 'Cleanup Duplicates', + Clear: 'Clear', + 'Clear Cache': 'Clear Cache', + 'Clear Service Worker': 'Clear Service Worker', + 'Clear cached data stored in your browser, including IndexedDB events, localStorage settings, and service worker caches.': + 'Clear cached data stored in your browser, including IndexedDB events, localStorage settings, and service worker caches.', + 'Click update to get the latest features and improvements': + 'Click update to get the latest features and improvements', + Close: 'Close', + 'Comma or space-separated topics (will be added as t-tags)': + 'Comma or space-separated topics (will be added as t-tags)', + Command: 'Command', + Configure: 'Configure', + 'Connect Wallet': 'Connect Wallet', + 'Console Logs': 'Console Logs', + 'Console logs cleared': 'Console logs cleared', + 'Content is required': 'Content is required', + 'Content must be 5000 characters or less': 'Content must be 5000 characters or less', + Controversial: 'Controversial', + 'Copied!': 'Copied!', + 'Copy to clipboard': 'Copy to clipboard', + 'Create Article': 'Create Article', + 'Create Citation': 'Create Citation', + 'Create Highlight': 'Create Highlight', + 'Create New Thread': 'Create New Thread', + 'Create Poll': 'Create Poll', + 'Create Thread': 'Create Thread', + 'Create a Spell': 'Create a Spell', + 'Creating...': 'Creating...', + 'D-Tag': 'D-Tag', + 'D-Tag is required for articles': 'D-Tag is required for articles', + DOI: 'DOI', + 'Date-based (all-day)': 'Date-based (all-day)', + 'Default expiration (months)': 'Default expiration (months)', + 'Default quiet period (days)': 'Default quiet period (days)', + 'Delete All': 'Delete All', + 'Delete item': 'Delete item', + 'Deleted {{count}} event(s)': 'Deleted {{count}} event(s)', + 'Deletion request sent': 'Deletion request sent', + 'Description (content)': 'Description (content)', + 'Digital Object Identifier (optional)': 'Digital Object Identifier (optional)', + 'Disable word wrap': 'Disable word wrap', + 'Discovered Relays': 'Discovered Relays', + 'Discovering relays...': 'Discovering relays...', + Discussion: 'Discussion', + Discussions: 'Discussions', + Downvote: 'Downvote', + 'Edited by': 'Edited by', + Editor: 'Editor', + 'Editor name (optional)': 'Editor name (optional)', + 'Enable word wrap': 'Enable word wrap', + 'End date': 'End date', + 'End date must be after start date': 'End date must be after start date', + 'Enter a Nostr event identifier (nevent, naddr, note, or hex ID) OR a web URL (https://). Not both.': + 'Enter a Nostr event identifier (nevent, naddr, note, or hex ID) OR a web URL (https://). Not both.', + 'Enter a descriptive title for your thread': 'Enter a descriptive title for your thread', + 'Enter the author name': 'Enter the author name', + 'Enter the book title': 'Enter the book title', + 'Enter the specific text you want to highlight in the main content area above': + 'Enter the specific text you want to highlight in the main content area above', + 'Event IDs (ids)': 'Event IDs (ids)', + 'Event appears to be invalid or corrupted': 'Event appears to be invalid or corrupted', + 'Event has no value data': 'Event has no value data', + 'Event is missing required fields: {{fields}}': 'Event is missing required fields: {{fields}}', + 'Event type': 'Event type', + 'Expiration Tags': 'Expiration Tags', + 'Export OPML': 'Export OPML', + 'Export as AsciiDoc': 'Export as AsciiDoc', + 'Export as Markdown': 'Export as Markdown', + 'External Citation': 'External Citation', + 'External Citation Settings': 'External Citation Settings', + 'Failed to add relay. Please try again.': 'Failed to add relay. Please try again.', + 'Failed to add relays': 'Failed to add relays', + 'Failed to block relay. Please try again.': 'Failed to block relay. Please try again.', + 'Failed to cleanup duplicates': 'Failed to cleanup duplicates', + 'Failed to clear cache': 'Failed to clear cache', + 'Failed to copy': 'Failed to copy', + 'Failed to create relay set. Please try again.': + 'Failed to create relay set. Please try again.', + 'Failed to create thread': 'Failed to create thread', + 'Failed to create thread. Please try a different relay.': + 'Failed to create thread. Please try a different relay.', + 'Failed to delete all items': 'Failed to delete all items', + 'Failed to delete item': 'Failed to delete item', + 'Failed to discover relays': 'Failed to discover relays', + 'Failed to export OPML file': 'Failed to export OPML file', + 'Failed to export article': 'Failed to export article', + 'Failed to import OPML file: {{error}}': 'Failed to import OPML file: {{error}}', + 'Failed to load RSS feeds': 'Failed to load RSS feeds', + 'Failed to load store items': 'Failed to load store items', + 'Failed to mute user privately': 'Failed to mute user privately', + 'Failed to mute user publicly': 'Failed to mute user publicly', + 'Failed to pin note': 'Failed to pin note', + 'Failed to publish post': 'Failed to publish post', + 'Failed to publish reply': 'Failed to publish reply', + 'Failed to publish thread': 'Failed to publish thread', + 'Failed to publish to some relays. Please try again or use different relays.': + 'Failed to publish to some relays. Please try again or use different relays.', + 'Failed to save RSS feeds': 'Failed to save RSS feeds', + 'Failed to save cache relays': 'Failed to save cache relays', + 'Failed to save relay list': 'Failed to save relay list', + 'Failed to unregister service worker: ': 'Failed to unregister service worker: ', + 'Failed to unsubscribe from topic': 'Failed to unsubscribe from topic', + Favorite: 'Favorite', + Fetch: 'Fetch', + 'Fetch once, then stop.': 'Fetch once, then stop.', + 'Filter by': 'Filter by', + 'Flat View': 'Flat View', + 'Font size': 'Font size', + 'Full Quote/Context': 'Full Quote/Context', + 'Full-text search query': 'Full-text search query', + Geohash: 'Geohash', + 'Geohash (optional)': 'Geohash (optional)', + 'Global quiet mode': 'Global quiet mode', + 'Group discussions by topic': 'Group discussions by topic', + 'Grouped View': 'Grouped View', + Groups: 'Groups', + 'Handler {{index}}': 'Handler {{index}}', + 'Hardcopy Citation': 'Hardcopy Citation', + 'Hardcopy Citation Settings': 'Hardcopy Citation Settings', + Hide: 'Hide', + 'Hide interactions on all posts': 'Hide interactions on all posts', + 'Hide interactions on posts with quiet tags': 'Hide interactions on posts with quiet tags', + 'High PoW': 'High PoW', + 'Higher values make your thread harder to mine but more unique.': + 'Higher values make your thread harder to mine but more unique.', + Highlight: 'Highlight', + 'Highlight Settings': 'Highlight Settings', + 'How to Create a Highlight (NIP-84)': 'How to Create a Highlight (NIP-84)', + 'Human-readable spell name': 'Human-readable spell name', + 'Image URL': 'Image URL', + 'Import OPML': 'Import OPML', + 'Imported {{count}} feed(s) from OPML file': 'Imported {{count}} feed(s) from OPML file', + 'In-Browser Cache': 'In-Browser Cache', + Insert: 'Insert', + 'Insert URL into your post and publish to Nostr GIF library (NIP-94).': + 'Insert URL into your post and publish to Nostr GIF library (NIP-94).', + 'Insert event or address': 'Insert event or address', + 'Insert mention': 'Insert mention', + 'Internal Citation': 'Internal Citation', + 'Internal Citation Settings': 'Internal Citation Settings', + 'Invalid Event': 'Invalid Event', + 'Invalid Lightning Address': 'Invalid Lightning Address', + 'Invalid Lightning Address. Please enter a valid Lightning Address or LNURL.': + 'Invalid Lightning Address. Please enter a valid Lightning Address or LNURL.', + 'Invalid URL': 'Invalid URL', + 'Invalid content JSON': 'Invalid content JSON', + 'Invalid relay URL': 'Invalid relay URL', + 'Invalid source. Please enter a note ID, nevent, naddr, hex ID, or URL.': + 'Invalid source. Please enter a note ID, nevent, naddr, hex ID, or URL.', + 'Item deleted successfully': 'Item deleted successfully', + JSON: 'JSON', + 'Join link': 'Join link', + 'Journal/Publication name (optional)': 'Journal/Publication name (optional)', + Json: 'JSON', + Kinds: 'Kinds', + 'Language Model': 'Language Model', + Large: 'Large', + 'Leave empty for HiveTalk, or paste Zoom / Teams / other link': + 'Leave empty for HiveTalk, or paste Zoom / Teams / other link', + 'Lightning payment failed': 'Lightning payment failed', + Limit: 'Limit', + 'Live feed; keeps updating.': 'Live feed; keeps updating.', + 'Loading more...': 'Loading more...', + 'Loading relays...': 'Loading relays...', + 'Location (optional)': 'Location (optional)', + 'Log in to run this spell (it uses $me or $contacts).': + 'Log in to run this spell (it uses $me or $contacts).', + 'Login failed': 'Login failed', + 'Login to configure RSS feeds': 'Login to configure RSS feeds', + 'Long-form Article': 'Long-form Article', + 'Mailbox relays saved': 'Mailbox relays saved', + 'Mark as NSFW': 'Mark as NSFW', + 'Maximum {{max}} invitees': 'Maximum {{max}} invitees', + 'Maximum {{max}} invitees allowed': 'Maximum {{max}} invitees allowed', + Medium: 'Medium', + Mode: 'Mode', + 'Most Zapped': 'Most Zapped', + 'Move to top': 'Move to top', + 'Multiple choice': 'Multiple choice', + 'Mute failed': 'Mute failed', + NSFW: 'NSFW', + Name: 'Name', + 'Name of the language model used': 'Name of the language model used', + 'New External Citation': 'New External Citation', + 'New Hardcopy Citation': 'New Hardcopy Citation', + 'New Highlight': 'New Highlight', + 'New Internal Citation': 'New Internal Citation', + 'New Long-form Article': 'New Long-form Article', + 'New Poll': 'New Poll', + 'New Prompt Citation': 'New Prompt Citation', + 'New Public Message': 'New Public Message', + 'New Wiki Article': 'New Wiki Article', + 'New Wiki Article (Markdown)': 'New Wiki Article (Markdown)', + Newest: 'Newest', + 'No JSON available': 'No JSON available', + 'No RSS feeds found in OPML file': 'No RSS feeds found in OPML file', + 'No cached data found.': 'No cached data found.', + 'No console logs captured yet': 'No console logs captured yet', + 'No events found': 'No events found', + 'No feeds configured. Default feed will be used.': + 'No feeds configured. Default feed will be used.', + 'No feeds to export': 'No feeds to export', + 'No groups available. Join some groups first.': 'No groups available. Join some groups first.', + 'No items in this store.': 'No items in this store.', + 'No items match your search.': 'No items match your search.', + 'No logs match the current filters': 'No logs match the current filters', + 'No posts found': 'No posts found', + 'No posts match your search': 'No posts match your search', + 'No relays available. Please configure relays in settings.': + 'No relays available. Please configure relays in settings.', + 'No service workers or caches found for this app': + 'No service workers or caches found for this app', + 'No users found': 'No users found', + 'No valid RSS feed URLs found in OPML file': 'No valid RSS feed URLs found in OPML file', + 'Note pinned': 'Note pinned', + 'Note unpinned': 'Note unpinned', + Oldest: 'Oldest', + 'Open Timestamp': 'Open Timestamp', + 'Opens in a new tab. Copy a GIF URL there, then paste below. If this picker closed, click “Insert GIF” again to paste.': + 'Opens in a new tab. Copy a GIF URL there, then paste below. If this picker closed, click “Insert GIF” again to paste.', + Option: 'Option', + Optional: 'Optional', + 'Optional image for the event': 'Optional image for the event', + 'Optionally, add the full quote/context to show your highlight within it': + 'Optionally, add the full quote/context to show your highlight within it', + PM: 'PM', + 'Page Range': 'Page Range', + Pages: 'Pages', + 'Paste URL of a GIF': 'Paste URL of a GIF', + 'Paste the entire original passage that contains your highlight': + 'Paste the entire original passage that contains your highlight', + Photo: 'Photo', + 'Picture Note': 'Picture Note', + 'Pin note': 'Pin note', + 'Plain text description of the query': 'Plain text description of the query', + 'Please login to view bookmarks': 'Please login to view bookmarks', + 'Please select a group': 'Please select a group', + 'Please select at least one relay': 'Please select at least one relay', + 'Please set a start date': 'Please set a start date', + 'Poll with no options': 'Poll with no options', + 'Post published to some relays': 'Post published to some relays', + 'Posts will automatically include expiration tags': + 'Posts will automatically include expiration tags', + 'Posts will automatically include quiet tags': 'Posts will automatically include quiet tags', + 'Posts will be quiet for this many days': 'Posts will be quiet for this many days', + 'Posts will expire after this many months': 'Posts will expire after this many months', + 'Processing...': 'Processing...', + 'Profile event not available': 'Profile event not available', + 'Prompt Citation': 'Prompt Citation', + 'Prompt Citation Settings': 'Prompt Citation Settings', + 'Prompt Conversation Script': 'Prompt Conversation Script', + 'Proof of Work': 'Proof of Work', + 'Publish to Relays': 'Publish to Relays', + 'Published By': 'Published By', + 'Published In': 'Published In', + 'Published On': 'Published On', + 'Published in': 'Published in', + 'Published on': 'Published on', + 'Publisher name (optional)': 'Publisher name (optional)', + 'Quiet Tags': 'Quiet Tags', + 'RSS Feed': 'RSS Feed', + 'RSS Feed Settings': 'RSS Feed Settings', + 'RSS Feeds': 'RSS Feeds', + 'RSS feeds exported to OPML file': 'RSS feeds exported to OPML file', + 'RSS feeds saved': 'RSS feeds saved', + 'Rate limited. Please wait before trying again.': + 'Rate limited. Please wait before trying again.', + 'Reaction published': 'Reaction published', + 'Reaction removed': 'Reaction removed', + 'Read full article': 'Read full article', + 'Reading group entry': 'Reading group entry', + 'Readings Options': 'Readings Options', + Recipients: 'Recipients', + 'Recipients detected from your message:': 'Recipients detected from your message:', + 'Recommended Relays': 'Recommended Relays', + 'Recommended applications for handling events of kind {{kind}}': + 'Recommended applications for handling events of kind {{kind}}', + 'Reference to the cited Nostr event in kind:pubkey:hex format': + 'Reference to the cited Nostr event in kind:pubkey:hex format', + 'Refresh Cache': 'Refresh Cache', + 'Refreshing posts...': 'Refreshing posts...', + 'Relative: 7d, 24h, 1w, 1mo, 1y. Or Unix timestamp.': + 'Relative: 7d, 24h, 1w, 1mo, 1y. Or Unix timestamp.', + Relay: 'Relay', + 'Relay Hint': 'Relay Hint', + 'Relay URL (optional)': 'Relay URL (optional)', + 'Relay blocked successfully': 'Relay blocked successfully', + 'Relay requires authentication for write access. Please try a different relay or contact the relay operator.': + 'Relay requires authentication for write access. Please try a different relay or contact the relay operator.', + 'Relay set options': 'Relay set options', + 'Remove from favorites': 'Remove from favorites', + Rendered: 'Rendered', + 'Reply published': 'Reply published', + 'Reply published to some relays': 'Reply published to some relays', + 'Reply to Public Message': 'Reply to Public Message', + 'Republish to all active relays': 'Republish to all active relays', + 'Republish to all available relays': 'Republish to all available relays', + 'Required: start (or start date), invitees. Optional: title, end, location, summary, topics, image.': + 'Required: start (or start date), invitees. Optional: title, end, location, summary, topics, image.', + 'Required: start time or start date. Optional: title, end, location, summary, topics, image.': + 'Required: start time or start date. Optional: title, end, location, summary, topics, image.', + 'Required: start time, invitees. Join link defaults to HiveTalk. Optional: title, end, summary, topics, image.': + 'Required: start time, invitees. Join link defaults to HiveTalk. Optional: title, end, summary, topics, image.', + 'Required: start time. Join link defaults to HiveTalk. Optional: title, end, summary, topics, image.': + 'Required: start time. Join link defaults to HiveTalk. Optional: title, end, summary, topics, image.', + 'Respect quiet tags': 'Respect quiet tags', + 'Search (NIP-50)': 'Search (NIP-50)', + 'Search by name or npub…': 'Search by name or npub…', + 'Search calendar, publications, wiki…': 'Search calendar, publications, wiki…', + 'Search for user…': 'Search for user…', + 'Search items...': 'Search items...', + 'Search logs...': 'Search logs...', + 'Search notes, threads, long-form…': 'Search notes, threads, long-form…', + 'Search on GifBuddy': 'Search on GifBuddy', + 'Search posts...': 'Search posts...', + 'Search threads by title, content, tags, npub, author...': + 'Search threads by title, content, tags, npub, author...', + 'Searching all available relays...': 'Searching all available relays...', + 'Searching…': 'Searching…', + 'See reference': 'See reference', + 'Select Group': 'Select Group', + 'Select Media Type': 'Select Media Type', + 'Select group...': 'Select group...', + 'Select relays': 'Select relays', + 'Select the group where you want to create this discussion.': + 'Select the group where you want to create this discussion.', + 'Select topic...': 'Select topic...', + 'Selected text': 'Selected text', + 'Send Public Message': 'Send Public Message', + 'Send a Lightning payment to this user': 'Send a Lightning payment to this user', + 'Service worker caches cleared. Please reload the page.': + 'Service worker caches cleared. Please reload the page.', + 'Service worker unregistered and caches cleared. Please reload the page.': + 'Service worker unregistered and caches cleared. Please reload the page.', + 'Service worker unregistered. Please reload the page.': + 'Service worker unregistered. Please reload the page.', + 'Share your thoughts, ask questions, or start a discussion...': + 'Share your thoughts, ask questions, or start a discussion...', + 'Short Video Note': 'Short Video Note', + 'Show RSS Feed': 'Show RSS Feed', + 'Show all discussions in a single list': 'Show all discussions in a single list', + 'Show less': 'Show less', + Since: 'Since', + Small: 'Small', + 'Some relays have temporarily disabled writes.': + 'Some relays have temporarily disabled writes.', + Source: 'Source', + 'Spell definition': 'Spell definition', + 'Spell published': 'Spell published', + 'Start date': 'Start date', + 'Start typing to see a preview...': 'Start typing to see a preview...', + 'Subject (Book Title)': 'Subject (Book Title)', + 'Subject (book title) is required for reading groups': + 'Subject (book title) is required for reading groups', + 'Subject / Topics': 'Subject / Topics', + Subscribe: 'Subscribe', + Subscribed: 'Subscribed', + 'Subscribed to topic': 'Subscribed to topic', + 'Subscribed to topic (local)': 'Subscribed to topic (local)', + 'Subscribing...': 'Subscribing...', + Summary: 'Summary', + 'Supported Event Types': 'Supported Event Types', + 'Take a note': 'Take a note', + 'The full prompt conversation (optional)': 'The full prompt conversation (optional)', + 'The main editor above should contain only the text you want to highlight. This field should contain the full quote or paragraph for context.': + 'The main editor above should contain only the text you want to highlight. This field should contain the full quote or paragraph for context.', + 'These relays were found from your NIP-05 identifier and signer. You can add them to your relay list.': + 'These relays were found from your NIP-05 identifier and signer. You can add them to your relay list.', + 'This file could be either audio or video. Please select the correct type:': + 'This file could be either audio or video. Please select the correct type:', + 'This store does not contain replaceable events': + 'This store does not contain replaceable events', + 'This will add additional tags for author and subject to help organize reading group discussions.': + 'This will add additional tags for author and subject to help organize reading group discussions.', + 'Thread Content': 'Thread Content', + 'Thread Title': 'Thread Title', + 'Thread creation timed out. Please try again.': 'Thread creation timed out. Please try again.', + 'Thread published': 'Thread published', + 'Threads are organized by topics. Choose a topic that best fits your discussion.': + 'Threads are organized by topics. Choose a topic that best fits your discussion.', + 'Time-based': 'Time-based', + 'Title is required': 'Title is required', + 'Title must be 100 characters or less': 'Title must be 100 characters or less', + 'To translate notes and other content, use your browser’s built-in translation. For example: right-click the page and choose “Translate to…”, or use the translate icon in the address bar.': + 'To translate notes and other content, use your browser’s built-in translation. For example: right-click the page and choose “Translate to…”, or use the translate icon in the address bar.', + Top: 'Top', + Topic: 'Topic', + URL: 'URL', + 'URL of the article cover image (optional)': 'URL of the article cover image (optional)', + 'Unique identifier for this article (required)': + 'Unique identifier for this article (required)', + 'Unmute failed': 'Unmute failed', + 'Unpin note': 'Unpin note', + Unsubscribe: 'Unsubscribe', + 'Unsubscribed from topic': 'Unsubscribed from topic', + 'Unsubscribing...': 'Unsubscribing...', + Until: 'Until', + Untitled: 'Untitled', + Update: 'Update', + 'Updating...': 'Updating...', + 'Upload Audio Comment': 'Upload Audio Comment', + 'Upload Audio Message': 'Upload Audio Message', + 'Upload Media': 'Upload Media', + Upvote: 'Upvote', + 'User unmuted': 'User unmuted', + 'Version number (optional)': 'Version number (optional)', + Video: 'Video', + 'Video Note': 'Video Note', + 'Video file': 'Video file', + 'View Console Logs': 'View Console Logs', + 'View JSON': 'View JSON', + 'View cached items in this store.': 'View cached items in this store.', + 'View definition': 'View definition', + 'View details about cached data in IndexedDB stores. Click on a store to view its items.': + 'View details about cached data in IndexedDB stores. Click on a store to view its items.', + 'View on Alexandria': 'View on Alexandria', + 'View on DecentNewsroom': 'View on DecentNewsroom', + 'View on Wikistr': 'View on Wikistr', + 'View recent console logs for debugging': 'View recent console logs for debugging', + 'Voice Comment': 'Voice Comment', + 'Voice Note': 'Voice Note', + 'Voice note or audio file': 'Voice note or audio file', + Volume: 'Volume', + 'Volume number (optional)': 'Volume number (optional)', + 'Vote published': 'Vote published', + 'Vote removed': 'Vote removed', + 'Website where LLM was accessed (optional)': 'Website where LLM was accessed (optional)', + 'Wiki Article (AsciiDoc)': 'Wiki Article (AsciiDoc)', + 'Wiki Article (Markdown)': 'Wiki Article (Markdown)', + 'You can only delete your own notes': 'You can only delete your own notes', + 'You must be logged in to create a thread': 'You must be logged in to create a thread', + 'You need to add at least one media server in order to upload media files.': + 'You need to add at least one media server in order to upload media files.', + 'You need to login first': 'You need to login first', + 'Your account is blocked from posting to this relay.': + 'Your account is blocked from posting to this relay.', + Zap: 'Zap', + 'Zap failed': 'Zap failed', + created_at: 'created_at', + 'e tag of kind 1040 event (optional)': 'e tag of kind 1040 event (optional)', + 'e.g. meetup, conference': 'e.g. meetup, conference', + 'e.g., 123-145 (optional)': 'e.g., 123-145 (optional)', + 'e.g., GPT-4, Claude, etc. (required)': 'e.g., GPT-4, Claude, etc. (required)', + 'e.g., my-article-title': 'e.g., my-article-title', + entries: 'entries', + 'from Bunker': 'from Bunker', + 'from Extension': 'from Extension', + 'from NIP-05': 'from NIP-05', + general: 'general', + 'https://example.com (required)': 'https://example.com (required)', + 'https://example.com/image.jpg': 'https://example.com/image.jpg', + id: 'id', + items: 'items', + kind: 'kind', + 'kind:pubkey:hex format (required)': 'kind:pubkey:hex format (required)', + 'last updated': 'last updated', + matching: 'matching', + naddr: 'naddr', + nevent: 'nevent', + 'nevent1..., naddr1..., note1..., hex ID, or https://...': + 'nevent1..., naddr1..., note1..., hex ID, or https://...', + 'no notes found': 'no notes found', + of: 'of', + 'on note': 'on note', + optional: 'optional', + pubkey: 'pubkey', + 'sent a public message': 'sent a public message', + 'sent you a public message': 'sent you a public message', + 'sent you a public message (along with {{count}} others)': + 'sent you a public message (along with {{count}} others)', + sig: 'sig', + 'started a discussion in {{topic}}': 'started a discussion in {{topic}}', + tags: 'tags', + thread: 'thread', + threads: 'threads', + 'topic1, topic2, topic3': 'topic1, topic2, topic3', + '{{count}} relay(s) selected': '{{count}} relay(s) selected', + '🔞 NSFW 🔞': '🔞 NSFW 🔞' } } diff --git a/src/i18n/locales/it.ts b/src/i18n/locales/it.ts index a52d03c3..a10d1ec0 100644 --- a/src/i18n/locales/it.ts +++ b/src/i18n/locales/it.ts @@ -5,8 +5,12 @@ export default { 'New Note': 'Nuova nota', Post: 'Pubblica', Home: 'Inizio', + Feed: 'Feed', + 'Favorites Feed': 'Favorites Feed', + 'Pinned note': 'Pinned note', 'Relay settings': 'Impostazioni Relay', Settings: 'Impostazioni', + 'Account menu': 'Account menu', SidebarRelays: 'Relays', Refresh: 'Aggiorna', Profile: 'Profilo', @@ -30,6 +34,12 @@ export default { 'loading...': 'caricando...', 'Loading...': 'Caricamento in corso...', 'no more notes': 'basta note', + 'calendar entries': 'calendar entries', + 'Loading calendar events...': 'Loading calendar events...', + 'No calendar events found': 'No calendar events found', + 'Calendar events in the next {{count}} months': 'Calendar events in the next {{count}} months', + 'The nostr.band relay appears to be temporarily out of service. Please try again later.': + 'The nostr.band relay appears to be temporarily out of service. Please try again later.', 'reply to': 'replica a', reply: 'replica', Reply: 'Replica', @@ -37,6 +47,9 @@ export default { 'Write something...': 'Scrivi qualcosa...', Cancel: 'Cancella', Mentions: 'Menziona', + 'Search for event or address…': 'Search for event or address…', + 'Search notes…': 'Search notes…', + 'No notes found': 'No notes found', 'Failed to post': 'Impossibile pubblicare', 'Post successful': 'Pubblicazione riuscita', 'Your post has been published': 'Il tuo post è stato pubblicato', @@ -45,7 +58,22 @@ export default { Quote: 'Quota', 'Copy event ID': 'Copia ID evento', 'Copy user ID': 'Copia ID utente', + 'Send public message': 'Send public message', 'View raw event': 'Vedi evento grezzo', + 'Edit this event': 'Edit this event', + 'Clone or fork this event': 'Clone or fork this event', + 'Event kind': 'Event kind', + 'Note content': 'Note content', + Publish: 'Publish', + 'Post published': 'Post published', + 'Edit content and tags, then publish a new signed event.': + 'Edit content and tags, then publish a new signed event.', + 'Log in to publish': 'Log in to publish', + 'Set when you publish': 'set when you publish', + 'id and sig are assigned when you publish': 'id and sig are assigned when you publish', + 'Published to some relays only': 'Published to some relays only', + 'Add field': 'Add field', + 'View full profile': 'View full profile', Like: 'Mi piace', 'switch to light theme': 'passa al tema luminoso', 'switch to dark theme': 'passa al tema scuro', @@ -56,18 +84,143 @@ export default { "username's used relays": '{{username}} relays usati', "username's muted": '{{username}} zittiti', Login: 'Accedi', + 'Please log in to view notifications.': 'Please log in to view notifications.', 'Follows you': 'Ti segue', 'Relay Settings': 'Impostazioni Relay', + 'Relays and Storage Settings': 'Relays and Storage Settings', 'Relay set name': 'Imposta nome Relay', 'Add a new relay set': 'Aggiungi nuovo set di relay', Add: 'Aggiungi', 'n relays': '{{n}} relays', Rename: 'Rinomina', + 'Copy share link': 'Copy share link', + 'Copy address': 'Copy address', + 'Copy payto URI': 'Copy payto URI', + 'Copied payto address': 'Copied payto address', + 'Copied to clipboard': 'Copied to clipboard', + 'Copied {{label}} address': 'Copied {{label}} address', + 'Lightning payment address – copy to pay via your wallet': + 'Lightning payment address – copy to pay via your wallet', + 'Payment address – copy to use in your wallet or app': + 'Payment address – copy to use in your wallet or app', + 'Click to open payment options': 'Click to open payment options', + 'Click to copy address': 'Click to copy address', + 'Open on website': 'Open on website', + 'Raw profile event': 'Raw profile event', + 'Full profile event': 'Full profile event', + 'Event (JSON)': 'Event (JSON)', + 'Save full profile': 'Save full profile', + 'Add tag': 'Add tag', + 'Remove tag': 'Remove tag', + 'Tag name': 'Tag name', + Value: 'Value', + 'Add value to tag': 'Add value to tag', + 'Remove value': 'Remove value', + 'No tags. Click "Add tag" to add one.': 'No tags. Click "Add tag" to add one.', + 'Profile updated': 'Profile updated', + 'Failed to publish profile': 'Failed to publish profile', + 'Invalid profile JSON': 'Invalid profile JSON', + 'Refresh cache': 'Refresh cache', + 'Force-refresh profile and payment info from relays': + 'Force-refresh profile and payment info from relays', + 'Profile and payment cache refreshed': 'Profile and payment cache refreshed', + 'Failed to refresh cache': 'Failed to refresh cache', + 'Raw payment info event': 'Raw payment info event', + 'Payment info': 'Payment info', + 'Edit payment info': 'Edit payment info', + 'Add payment info': 'Add payment info', + 'No payment info event yet. Click "Add payment info" to create one.': + 'No payment info event yet. Click "Add payment info" to create one.', + 'Content (JSON)': 'Content (JSON)', + Tags: 'Tags', + 'Tags (JSON array of arrays, e.g. [["payto","lightning","user@domain.com"]])': + 'Tags (JSON array of arrays, e.g. [["payto","lightning","user@domain.com"]])', + 'Payment info updated': 'Payment info updated', + 'Failed to publish payment info': 'Failed to publish payment info', + 'Invalid tags JSON': 'Invalid tags JSON', + 'Payment methods': 'Payment methods', + 'NIP-A3 payto tags: type (e.g. lightning) and authority (e.g. user@domain.com).': + 'NIP-A3 payto tags: type (e.g. lightning) and authority (e.g. user@domain.com).', + 'Type (e.g. lightning)': 'Type (e.g. lightning)', + 'Authority (e.g. user@domain.com)': 'Authority (e.g. user@domain.com)', + 'Add payment method': 'Add payment method', + Remove: 'Remove', + 'Additional content (JSON)': 'Additional content (JSON)', + 'Show full event JSON': 'Show full event JSON', + 'Tag list': 'Tag list', + 'Profile event tags (e.g. lud16, nip05, website). Saved with kind 0.': + 'Profile event tags (e.g. lud16, nip05, website). Saved with kind 0.', + 'Tag value': 'Tag value', + 'Saving…': 'Saving…', 'Share with Jumble': 'Condividi con Jumble', 'Share with Alexandria': 'Condividi con Alexandria', + 'Start video call': 'Start video call', + 'Copy call invite link': 'Copy call invite link', + 'Start call about this': 'Start call about this', + 'Send call invite': 'Send call invite', + 'Join the video call': 'Join the video call', + 'Schedule video call': 'Schedule video call', + "You're invited to a scheduled video call.": "You're invited to a scheduled video call.", + 'Create a calendar event and send an invite. The recipient will see the event with a join link.': + 'Create a calendar event and send an invite. The recipient will see the event with a join link.', + 'Schedule a video call': 'Schedule a video call', + 'Create a calendar event and send kind 24 invites to each listed invitee.': + 'Create a calendar event and send kind 24 invites to each listed invitee.', + Invitees: 'Invitees', + 'Paste nostr:npub1... or nostr:nprofile1... (one or more)': + 'Paste nostr:npub1... or nostr:nprofile1... (one or more)', + 'Schedule and send invites': 'Schedule and send invites', + 'Add at least one invitee (paste nostr:npub or nostr:nprofile links)': + 'Add at least one invitee (paste nostr:npub or nostr:nprofile links)', + 'Scheduled call created and {{count}} invite(s) sent': + 'Scheduled call created and {{count}} invite(s) sent', + 'Join video call': 'Join video call', + 'Scheduled video call': 'Scheduled video call', + 'Video call': 'Video call', + 'Schedule and send invite': 'Schedule and send invite', + 'Scheduling…': 'Scheduling…', + 'Please set a start time': 'Please set a start time', + 'End time must be after start time': 'End time must be after start time', + 'Failed to schedule call': 'Failed to schedule call', + 'Scheduled call created and invite sent': 'Scheduled call created and invite sent', + RSVP: 'RSVP', + 'RSVP: {{status}}': 'RSVP: {{status}}', + Accepted: 'Accepted', + Tentative: 'Tentative', + Declined: 'Declined', + 'You need to log in to RSVP': 'You need to log in to RSVP', + 'RSVP updated': 'RSVP updated', + 'Failed to update RSVP': 'Failed to update RSVP', + Organizer: 'Organizer', + Attendees: 'Attendees', + 'No response': 'No response', + 'Calendar Events': 'Calendar Events', + 'Calendar Event': 'Calendar Event', + 'Schedule in-person meeting': 'Schedule in-person meeting', + 'Create a calendar event and send an invite. No video link — for real-life meetups, conferences, etc.': + 'Create a calendar event and send an invite. No video link — for real-life meetups, conferences, etc.', + "You're invited to an in-person meeting.": "You're invited to an in-person meeting.", + 'Meeting created and invite sent': 'Meeting created and invite sent', + 'Failed to create meeting': 'Failed to create meeting', + 'Create and send invite': 'Create and send invite', + 'Creating…': 'Creating…', + 'In-person meeting': 'In-person meeting', + Location: 'Location', + 'Address, venue, or place': 'Address, venue, or place', + Description: 'Description', + 'Optional notes': 'Optional notes', + 'Create a calendar event for a real-life meetup and send kind 24 invites to each invitee.': + 'Create a calendar event for a real-life meetup and send kind 24 invites to each invitee.', + 'Meeting created and {{count}} invite(s) sent': 'Meeting created and {{count}} invite(s) sent', + 'Create and send invites': 'Create and send invites', + Title: 'Title', + Start: 'Start', + End: 'End', Delete: 'Cancella', 'Relay already exists': 'Relay già esistente', 'invalid relay URL': 'URL relay non valido', + 'Relay URL…': 'wss://… or relay host', + 'Open relay': 'Open relay', 'Add a new relay': 'Aggiungi un nuovo relay', back: 'indietro', 'Lost in the void': 'Perso nel vuoto', @@ -114,6 +267,19 @@ export default { 'Picture note requires images': 'La nota illustrativa richiede immagini', Relays: 'Relays', Image: 'immagine', + 'Upload Image': 'Upload Image', + 'Insert emoji': 'Insert emoji', + 'Insert GIF': 'Insert GIF', + 'Search GIFs': 'Search GIFs', + 'Choose a GIF': 'Choose a GIF', + 'Search GifBuddy for more GIFs': 'Search GifBuddy for more GIFs', + 'Add your own GIFs': 'Add your own GIFs', + 'Description (optional, for search)': 'Description (optional, for search)', + 'e.g. happy birthday, thumbs up': 'e.g. happy birthday, thumbs up', + 'Uploading...': 'Uploading...', + 'No GIFs found. Try searching or add your own. GIFs come from Nostr kind 1063 (NIP-94) events on GIF relays.': + 'No GIFs found. Try searching or add your own. GIFs come from Nostr kind 1063 (NIP-94) events on GIF relays.', + '{{name}} is not a GIF file': '{{name}} is not a GIF file', 'R & W': 'L & S', Read: 'Leggi', Write: 'Scrivi', @@ -155,6 +321,9 @@ export default { Muted: 'Zittiti', Unmute: 'Ridai voce', 'Unmute user': 'Ridai voce a questo utente', + Block: 'Block', + Unblock: 'Unblock', + blocked: 'blocked', 'Append n relays': 'Aggiungi {{n}} relays', Append: 'Aggiungi', 'Select relays to append': 'Seleziona relay da aggiungere', @@ -179,6 +348,24 @@ export default { 'Explore more': 'Esplora di più', 'Payment page': 'Pagina di pagamento', 'Supported NIPs': 'NIP supportati', + 'Relay liveliness (NIP-66)': 'Relay liveliness (NIP-66)', + 'Relay monitor (NIP-66)': 'Relay monitor (NIP-66)', + 'Auth required': 'Auth required', + 'Public (no auth)': 'Public (no auth)', + 'Payment required': 'Payment required', + 'No payment': 'No payment', + 'Writes required': 'Writes required', + 'Writes open': 'Writes open', + 'PoW required': 'PoW required', + 'No PoW': 'No PoW', + 'RTT open': 'RTT open', + 'RTT read': 'RTT read', + 'RTT write': 'RTT write', + 'Supported NIPs (from monitor)': 'Supported NIPs (from monitor)', + 'Last reported by monitor': 'Last reported by monitor', + Network: 'Network', + Type: 'Type', + Topics: 'Topics', 'Open in a': 'Apri in {{a}}', 'Cannot handle event of kind k': 'Impossibile gestire un evento di tipo {{k}}', 'Sorry! The note cannot be found 😔': 'Spiacente! La nota non può essere trovata 😔', @@ -210,9 +397,22 @@ export default { 'Seen on': 'Visto su', 'Temporarily display this reply': 'Mostra temporaneamente questa replica', 'Note not found': 'Non è stata trovata la nota', + 'The note was not found on your relays or default relays.': + 'The note was not found on your relays or default relays.', + "Try searching author's relays": "Try searching author's relays", + 'Searching external relays...': 'Searching external relays...', + "This will connect to the author's relays and relay hints": + "This will connect to the author's relays and relay hints", + 'Note could not be found anywhere': 'Note could not be found anywhere', + 'Try external relays': 'Try external relays', + 'Searching...': 'Searching...', + 'Show relays': 'Show relays', + 'No external relay hints available': 'No external relay hints available', 'no more replies': 'niente più repliche', 'Relay sets': 'Set di Relay', 'Favorite Relays': 'Relay preferiti', + 'Search for Relays': 'Search for Relays', + 'Using app default relays': 'Using app default relays', "Following's Favorites": 'Preferiti dei seguiti', 'no more relays': 'niente più relay', 'Favorited by': 'Preferito da', @@ -228,11 +428,49 @@ export default { 'no bookmarks found': 'Nessun segnalibro trovato', 'no more bookmarks': 'Nessun altro segnalibro', Bookmarks: 'Segnalibri', + 'Follow Packs': 'Follow Packs', + 'Follow Pack': 'Follow Pack', + 'Please log in to follow': 'Please log in to follow', + 'Following All': 'Following All', + 'Followed {{count}} users': 'Followed {{count}} users', + 'All available members are already followed or muted': + 'All available members are already followed or muted', + 'You are already following all members of this pack': + 'You are already following all members of this pack', + 'Failed to follow pack': 'Failed to follow pack', + '{{count}} profiles': '{{count}} profiles', 'Show more': 'Mostra di più', General: 'Generale', Autoplay: 'Riproduzione automatica', 'Enable video autoplay on this device': 'Abilita riproduzione automatica video su questo dispositivo', + 'Add random relays to every publish': 'Random relays in publish list', + 'Add random relays to every publish description': + 'Adds {{n}} random public relays from the NIP-66 lively list (preferring monitors that reported a write RTT) to the publish relay list. When ON, they are selected by default; when OFF, they appear in the list but are unchecked so you can optionally include them.', + relayType_local: 'Local', + relayType_relay_list: 'Relay list', + relayType_client_default: 'Client default', + relayType_open_from: 'Current feed', + relayType_favorite: 'Favorite', + relayType_relay_set: 'Relay set', + relayType_contextual: 'Reply/PM', + relayType_randomly_selected: 'Random (optional)', + 'Session relays': 'Session relays', + 'Session relays tab description': + 'Relay logic for this session: working and striked preset relays, and scored random relays (used to prefer faster, proven relays when adding random relays to publish).', + 'Session relays preset working': 'Working preset relays', + 'Session relays preset working hint': + 'Preset relays (from app defaults) that have not reached 3 publish failures this session.', + 'Session relays preset striked': 'Striked preset relays', + 'Session relays preset striked hint': + 'Preset relays that have reached 3 publish failures this session and are skipped for the rest of the session.', + 'Session relays scored random': 'Scored random relays', + 'Session relays scored random hint': + 'Relays that have accepted at least one publish this session; used to prefer faster relays when picking random relays. Sorted by average latency.', + 'Session relays all striked': 'All striked relays (any source)', + successes: 'successes', + None: 'None', + 'Cache & offline storage': 'Cache & offline storage', 'Paste or drop media files to upload': 'Incolla o trascina i file multimediali per caricarli', Preview: 'Anteprima', 'You are about to publish an event signed by [{{eventAuthorName}}]. You are currently logged in as [{{currentUsername}}]. Are you sure?': @@ -265,6 +503,7 @@ export default { 'Are you sure you want to reset your API key? This action cannot be undone.': 'Sei sicuro di voler reimpostare la tua chiave API? Questa azione non può essere annullata.', Warning: 'Attenzione', + 'Errors & warnings': 'Errors & warnings', 'Your current API key will become invalid immediately, and any applications using it will stop working until you update them with the new key.': 'La tua attuale chiave API diventerà immediatamente non valida e tutte le applicazioni che la utilizzano smetteranno di funzionare finché non le aggiornerai con la nuova chiave.', 'Service address': 'Indirizzo del servizio', @@ -296,6 +535,9 @@ export default { Article: 'Articolo', Unfavorite: 'Rimuovi dai preferiti', 'Recommended relays': 'Relay consigliati', + 'Show recommended relays panel': 'Show recommended relays panel', + 'Display the right-side panel with recommended relays on desktop': + 'Display the right-side panel with recommended relays on desktop', 'Blossom server URLs': 'URL del server Blossom', 'You need to add at least one blossom server in order to upload media files.': 'È necessario aggiungere almeno un server Blossom per caricare file multimediali.', @@ -322,7 +564,31 @@ export default { 'Refresh results': 'Aggiorna risultati', Poll: 'Sondaggio', Media: 'media', + Interests: 'Interests', + Calendar: 'Calendar', + 'No subscribed interests yet.': + 'No subscribed interests yet. Add topics in settings to see them here.', + 'No bookmarked notes with id tags yet.': + 'No bookmarked notes with id tags yet. Only classic (e-tag) bookmarks load in this feed.', + 'No follows or relays to load yet.': 'No follows or relays to load yet.', + 'Nothing to load for this feed.': 'Nothing to load for this feed.', 'Republish to ...': 'Ripubblica a...', + 'All available relays': 'All available relays', + 'All active relays (monitoring list)': 'All active relays (monitoring list)', + 'Successfully republish to all available relays': + 'Successfully republish to all available relays', + 'Failed to republish to all available relays: {{error}}': + 'Failed to republish to all available relays: {{error}}', + 'Successfully republish to all active relays': 'Successfully republish to all active relays', + 'Failed to republish to all active relays: {{error}}': + 'Failed to republish to all active relays: {{error}}', + 'No active relays in monitoring list': 'No active relays in monitoring list', + 'No relay accepted the event': 'No relay accepted the event', + 'No relays available': 'No relays available', + 'No write relays configured': 'No write relays configured', + 'Relay did not accept the event': 'Relay did not accept the event', + 'Only {{count}} relay(s) accepted the event; at least 5 required for "all active relays".': + 'Only {{count}} relay(s) accepted the event; at least 5 required for "all active relays".', 'Successfully republish to your write relays': 'Ricondivisione riuscita ai tuoi relay di scrittura', 'Failed to republish to your write relays: {{error}}': @@ -341,6 +607,7 @@ export default { 'No zaps yet': 'Ancora nessuno zap', 'No more boosts': 'Non ci sono più boost', 'No boosts yet': 'Ancora nessun boost', + 'n more boosts': '{{count}} more boosts', Boosts: 'Boost', FollowListNotFoundConfirmation: 'Elenco seguiti non trovato. Vuoi crearne uno nuovo? Se hai già seguito degli utenti in precedenza, per favore NON confermare poiché questa operazione causerà la perdita del tuo elenco seguiti precedente.', @@ -363,8 +630,13 @@ export default { 'Maybe Later': 'Forse più tardi', "Don't remind me again": 'Non ricordarmelo più', Posts: 'Post', + 'Posts (OPs)': 'Posts (OPs)', + 'Kind 1 replies': 'Kind 1 replies', + Comments: 'Comments', + 'Replies & comments': 'Replies & comments', Articles: 'Articoli', Highlights: 'Evidenziazioni', + 'A note from': 'A note from', Polls: 'Sondaggi', 'Voice Posts': 'Post vocali', 'Photo Posts': 'Post foto', @@ -390,6 +662,13 @@ export default { 'boosted your note': 'ha boostato la tua nota', 'zapped your note': 'ha zappato la tua nota', 'zapped you': 'ti ha zappato', + zapped: 'zapped', + 'Invalid zap receipt': 'Invalid zap receipt', + 'Zapped note': 'Zapped note', + 'Zapped profile': 'Zapped profile', + 'Zap reply threshold': 'Zap reply threshold', + 'Zaps above this amount will appear as replies in threads': + 'Zaps above this amount will appear as replies in threads', 'Mark as read': 'Segna come letto', Report: 'Segnala', 'Successfully report': 'Segnalazione riuscita', @@ -404,7 +683,6 @@ export default { 'See extra info for each notification': 'Visualizza informazioni extra per ogni notifica', 'See more notifications at a glance': "Visualizza più notifiche a colpo d'occhio", Detailed: 'Dettagliato', - Compact: 'Compatto', 'Submit Relay': 'Invia Relay', Homepage: 'Homepage', 'Proof of Work (difficulty {{minPow}})': 'Proof of Work (difficoltà {{minPow}})', @@ -432,6 +710,23 @@ export default { '{{count}} relays': '{{count}} relay', 'Republishing...': 'Ricondivisione in corso...', 'Trending Notes': 'Note di tendenza', + 'Trending on Your Favorite Relays': 'Trending on Your Favorite Relays', + 'Trending on the Default Relays': 'Trending on the Default Relays', + 'Latest from your follows': 'Latest from your follows', + 'Latest from our recommended follows': 'Latest from our recommended follows', + 'Loading follow list…': 'Loading follow list…', + 'Could not load recommended follows': 'Could not load recommended follows', + 'Your follow list is empty': 'Your follow list is empty', + 'Loading recent posts from follows…': 'Loading recent posts from follows…', + 'Loading more…': 'Loading more…', + 'No recent posts from this user in the current fetch': + 'No recent posts from this user in the current fetch', + 'Loading trending notes from your relays...': 'Loading trending notes from your relays...', + Sort: 'Sort', + newest: 'newest', + oldest: 'oldest', + 'most popular': 'most popular', + 'least popular': 'least popular', 'Connected to': 'Connesso a', 'Disconnect Wallet': 'Disconnetti Wallet', 'Are you absolutely sure?': 'Sei assolutamente sicuro?', @@ -439,6 +734,690 @@ export default { Disconnect: 'Disconnetti', 'Set up your wallet to send and receive sats!': 'Configura il tuo wallet per inviare e ricevere sats!', - 'Set up': 'Configura' + 'Set up': 'Configura', + 'nested events': 'nested events', + 'Loading RSS feeds...': 'Loading RSS feeds...', + 'No RSS feed items available': 'No RSS feed items available', + 'Show or hide the RSS page and sidebar entry': 'Show or hide the RSS page and sidebar entry', + 'Refreshing feeds...': 'Refreshing feeds...', + 'All feeds': 'All feeds', + 'All time': 'All time', + 'Last hour': 'Last hour', + 'Last day': 'Last day', + 'Last week': 'Last week', + 'Last month': 'Last month', + 'No items match your filters': 'No items match your filters', + 'Search...': 'Search...', + '{{count}} feeds': '{{count}} feeds', + 'Toggle filters': 'Toggle filters', + 'Showing {{filtered}} of {{total}} items': 'Showing {{filtered}} of {{total}} items', + Full: 'Full', + Compact: 'Compatto', + Expand: 'Expand', + 'help.title': 'Help', + 'help.tabShortcuts': 'Keyboard shortcuts', + 'help.tabOverview': 'App overview', + 'shortcuts.title': 'Keyboard shortcuts', + 'shortcuts.intro': + 'Shortcuts for this app and common browsing. Modifier combos are Shift+Alt+key (Option+Shift+key on macOS); either modifier order works when typing.', + 'shortcuts.sectionApp': 'This app', + 'shortcuts.sectionSearch': 'Search bar', + 'shortcuts.sectionStandard': 'Standard', + 'shortcuts.openHelp': 'Show this help', + 'shortcuts.or': 'or', + 'shortcuts.then': 'then', + 'shortcuts.focusPrimary': + 'Focus main column scroll (desktop; then arrow keys, Page Up/Down, Home/End)', + 'shortcuts.focusSecondary': + 'Focus side panel scroll when it is open (desktop; same keys to scroll)', + 'shortcuts.newNote': 'New note / post (after login if needed)', + 'shortcuts.searchSuggest': 'Move through suggestions', + 'shortcuts.searchDismiss': 'Close search dropdown', + 'shortcuts.tabNavigate': 'Move focus to the next or previous control', + 'shortcuts.activate': 'Activate buttons and many controls', + 'shortcuts.closeOverlays': 'Close dialogs, menus, and the search dropdown', + 'shortcuts.scrollWhenFocused': 'Scroll the focused scrollable area', + 'shortcuts.browserBack': 'Browser back (history)', + 'No spells yet. Create one with the button above.': + 'No spells yet. Create one with the button above.', + 'Loading spells from your relays…': 'Loading spells from your relays…', + 'Could not run this spell. Check that it has a valid REQ/COUNT command, or add write relays in settings.': + 'Could not run this spell. Check that it has a valid REQ/COUNT command, or add write relays in settings.', + 'Select a spell…': 'Select a spell…', + 'Spells from follows': 'From people you follow ({{count}})', + 'Other spells': 'Other spells ({{count}})', + 'Select a spell to view its feed.': 'Select a spell to view its feed.', + 'Add another row': 'Add another row', + 'Remove this row': 'Remove this row', + 'One kind number per row (e.g. 1 for notes).': 'One kind number per row (e.g. 1 for notes).', + 'One author per row: $me, $contacts, or hex pubkey / npub.': + 'One author per row: $me, $contacts, or hex pubkey / npub.', + 'One hex event id per row.': 'One hex event id per row.', + 'One wss:// URL per row. Leave empty to use your write relays.': + 'One wss:// URL per row. Leave empty to use your write relays.', + 'One topic per row.': 'One topic per row.', + topic: 'topic', + 'Spell form fields': 'Spell form fields', + 'Counting matching events…': 'Counting matching events…', + 'Edit spell': 'Edit spell', + 'Clone spell': 'Clone spell', + 'Spell cloned': 'Spell cloned', + 'Clone spell intro': + 'This spell is preloaded from another author’s definition. Change anything you like, then save to publish a new spell signed with your account.', + 'Spell updated': 'Spell updated', + 'Relay URL': 'Relay', + Count: 'Count', + 'Edit spell relays': 'Edit relays', + 'COUNT spell relay errors hint': + 'One or more relays failed or returned an error. You can change the relay list in the spell and save again.', + 'COUNT spell total distinct explanation': + 'Distinct matching event IDs across all relays that responded successfully (duplicates across relays removed). Each relay only returns up to the filter limit.', + 'Leave empty to use your write relays.': 'Leave empty to use your write relays.', + 'COUNT spell result explanation': + 'Distinct events returned for this filter (merged from your spell relays and default write relays, duplicates removed). Relays only return up to the filter limit.', + 'COUNT spell may be capped by limit': + 'This count may equal your spell limit — there could be more matching events on the network.', + 'Spell count failed. Check relays or try again.': + 'Could not complete the count. Check relays or try again.', + 'REQ returns a feed; COUNT returns a number.': + 'REQ: scrollable feed (choose live Feed or one-shot Fetch below). COUNT: a single number, no feed.', + listImportManualLabel: 'Pre-fill from event', + listImportFromEventHint: + 'Supported tags are merged into the form (e, p, t, relay, r, a where possible). Non-empty content is skipped; encrypted private items are not read. You may see notices for unmapped tags.', + listImportManualPlaceholder: '64-char hex, nevent1…, or naddr1…', + listImportLoadManual: 'Apply', + listImportContentSkipped: + 'This event has non-empty content (may include encrypted private items). Only public tags were merged.', + listImportUnsupportedEmoji: + 'This list includes emoji tags (NIP-30); those are not added to the spell filter.', + listImportUnsupportedTag: + 'Tags of type “{{tag}}” ({{count}}) are not mapped to spell filters yet.', + listImportBadATag: 'Could not parse address tag: {{preview}}…', + listImportATagNotFound: 'Could not resolve address tag: {{preview}}…', + listImportATagFailed: 'Failed to resolve address tag: {{preview}}…', + listImportEventNotFound: 'No event found for that reference.', + 'REQ tag filters': 'REQ tag filters', + spellFormTagFiltersLabel: 'Tag filters on matching events', + spellCreateIntro: + 'Spells are saved relay filters (NIP-A7). The “Spell query” section is the real definition; the dashed box at the bottom is only for names, descriptions, and catalog labels. Use $me for your pubkey and $contacts for your follow list when executing.', + spellFormSectionQueryTitle: 'Spell query', + spellFormSectionQueryHint: + 'This block is the actual spell definition: it becomes the Nostr REQ/COUNT filter (kinds, authors, time range, tag filters on matching events, relays, etc.).', + spellFormSectionMetadataTitle: 'Listing & labels (optional)', + spellFormSectionMetadataBadge: 'Not part of the query', + spellFormSectionMetadataHint: + 'Name, description, and topic labels are only for display and spell pickers. They are not used when the spell fetches events.', + spellFormCatalogTopicsLabel: 'Topic labels on this spell (t tags)', + spellTopicsMetadataHint: + 'One topic per row. To filter which notes you see, use “REQ tag filters” in the spell query above (letter “t”).', + spellTagFiltersHint: + 'Optional filters on subscribed events (NIP-01 single-letter tags). Example: letter “t”, values “bitcoin”.', + spellTagFiltersEmpty: 'No tag filters yet. Add rows below or apply an event reference above.', + 'Tag filter letter': 'Tag letter', + 'Filter value': 'Value', + 'Add tag filter': 'Add tag filter', + spellPickerSectionYours: 'Your spells', + 'Failed to remove spell from local storage': 'Failed to remove spell from local storage', + Spells: 'Spells', + 'doublePane.secondaryEmpty': 'Open a note, profile, or settings item to show it here.', + 'doublePane.secondaryEmptyHint': 'Your feed and primary pages stay on the left.', + '(empty)': '(empty)', + '12-hour (AM/PM)': '12-hour (AM/PM)', + '24-hour': '24-hour', + 'A new version is available': 'A new version is available', + 'A short description of the article content': 'A short description of the article content', + AM: 'AM', + 'Access via': 'Access via', + 'Accessed On': 'Accessed On', + 'Accessed on': 'Accessed on', + 'Add RSS feed URLs to subscribe to. If no feeds are configured, the default feed will be used.': + 'Add RSS feed URLs to subscribe to. If no feeds are configured, the default feed will be used.', + 'Add a relay to block': 'Add a relay to block', + 'Add at least one invitee': 'Add at least one invitee', + 'Add client identifier': 'Add client identifier', + 'Add expiration tags by default': 'Add expiration tags by default', + 'Add quiet tags by default': 'Add quiet tags by default', + 'Add recipients using nostr: mentions (e.g., nostr:npub1...) or the recipient selector above': + 'Add recipients using nostr: mentions (e.g., nostr:npub1...) or the recipient selector above', + 'Add the source (where this text is from)': 'Add the source (where this text is from)', + 'Add to favorites': 'Add to favorites', + 'Add {{count}} Selected': 'Add {{count}} Selected', + 'Added at': 'Added at', + 'Added {{count}} relay(s)': 'Added {{count}} relay(s)', + 'Adding...': 'Adding...', + 'Adding…': 'Adding…', + 'Advanced Options': 'Advanced Options', + 'All Topics': 'All Topics', + 'All favorite relays': 'All favorite relays', + 'All feeds from OPML file are already added': 'All feeds from OPML file are already added', + 'All items deleted successfully': 'All items deleted successfully', + 'Already blocked': 'Already blocked', + 'Already saved': 'Already saved', + 'Application Recommendations': 'Application Recommendations', + 'Are you sure you want to clear all cached data? This will delete all stored events and settings from your browser.': + 'Are you sure you want to clear all cached data? This will delete all stored events and settings from your browser.', + 'Are you sure you want to delete all items from this store?': + 'Are you sure you want to delete all items from this store?', + 'Are you sure you want to unmute this user? This will restore the follow button.': + 'Are you sure you want to unmute this user? This will restore the follow button.', + "Are you sure you want to unregister the service worker? This will clear this app's service worker caches and you will need to reload the page.": + "Are you sure you want to unregister the service worker? This will clear this app's service worker caches and you will need to reload the page.", + 'Article exported as AsciiDoc': 'Article exported as AsciiDoc', + 'Article exported as Markdown': 'Article exported as Markdown', + 'Article title (optional)': 'Article title (optional)', + Audio: 'Audio', + Author: 'Author', + 'Author is required for reading groups': 'Author is required for reading groups', + 'Author name (optional)': 'Author name (optional)', + Authors: 'Authors', + 'Block Relay': 'Block Relay', + 'Blocked Relays': 'Blocked Relays', + 'Blocking...': 'Blocking...', + Blossom: 'Blossom', + Book: 'Book', + 'Brief description of the event': 'Brief description of the event', + 'Brief summary (optional)': 'Brief summary (optional)', + 'Brief summary of the article (optional)': 'Brief summary of the article (optional)', + 'Browse Cache': 'Browse Cache', + 'C-Tag': 'C-Tag', + 'Cache Relays': 'Cache Relays', + 'Cache cleared successfully': 'Cache cleared successfully', + 'Cache refreshed successfully': 'Cache refreshed successfully', + 'Cache relays are used to store and retrieve events locally. These relays are merged with your inbox and outbox relays.': + 'Cache relays are used to store and retrieve events locally. These relays are merged with your inbox and outbox relays.', + 'Cache relays must be local network URLs only (e.g., ws://localhost:4869 or ws://127.0.0.1:4869)': + 'Cache relays must be local network URLs only (e.g., ws://localhost:4869 or ws://127.0.0.1:4869)', + 'Cache relays saved': 'Cache relays saved', + Cancelled: 'Cancelled', + Chapter: 'Chapter', + 'Chapter Title': 'Chapter Title', + 'Chapter title (optional)': 'Chapter title (optional)', + Citation: 'Citation', + 'Citation title (optional)': 'Citation title (optional)', + 'Clean up duplicate replaceable events? This will keep only the newest version of each event.': + 'Clean up duplicate replaceable events? This will keep only the newest version of each event.', + 'Cleaned up {{deleted}} duplicate entries, kept {{kept}}': + 'Cleaned up {{deleted}} duplicate entries, kept {{kept}}', + 'Cleaned up {{deleted}} duplicate entries, kept {{kept}} (total items after cleanup: {{total}})': + 'Cleaned up {{deleted}} duplicate entries, kept {{kept}} (total items after cleanup: {{total}})', + 'Cleanup Duplicates': 'Cleanup Duplicates', + Clear: 'Clear', + 'Clear Cache': 'Clear Cache', + 'Clear Service Worker': 'Clear Service Worker', + 'Clear cached data stored in your browser, including IndexedDB events, localStorage settings, and service worker caches.': + 'Clear cached data stored in your browser, including IndexedDB events, localStorage settings, and service worker caches.', + 'Click update to get the latest features and improvements': + 'Click update to get the latest features and improvements', + Close: 'Close', + 'Comma or space-separated topics (will be added as t-tags)': + 'Comma or space-separated topics (will be added as t-tags)', + Command: 'Command', + Configure: 'Configure', + 'Connect Wallet': 'Connect Wallet', + 'Console Logs': 'Console Logs', + 'Console logs cleared': 'Console logs cleared', + 'Content is required': 'Content is required', + 'Content must be 5000 characters or less': 'Content must be 5000 characters or less', + Controversial: 'Controversial', + 'Copied!': 'Copied!', + 'Copy to clipboard': 'Copy to clipboard', + 'Create Article': 'Create Article', + 'Create Citation': 'Create Citation', + 'Create Highlight': 'Create Highlight', + 'Create New Thread': 'Create New Thread', + 'Create Poll': 'Create Poll', + 'Create Thread': 'Create Thread', + 'Create a Spell': 'Create a Spell', + 'Creating...': 'Creating...', + 'D-Tag': 'D-Tag', + 'D-Tag is required for articles': 'D-Tag is required for articles', + DOI: 'DOI', + 'Date-based (all-day)': 'Date-based (all-day)', + 'Default expiration (months)': 'Default expiration (months)', + 'Default quiet period (days)': 'Default quiet period (days)', + 'Delete All': 'Delete All', + 'Delete item': 'Delete item', + 'Deleted {{count}} event(s)': 'Deleted {{count}} event(s)', + 'Deletion request sent': 'Deletion request sent', + 'Description (content)': 'Description (content)', + 'Digital Object Identifier (optional)': 'Digital Object Identifier (optional)', + 'Disable word wrap': 'Disable word wrap', + 'Discovered Relays': 'Discovered Relays', + 'Discovering relays...': 'Discovering relays...', + Discussion: 'Discussion', + Discussions: 'Discussions', + Downvote: 'Downvote', + 'Edited by': 'Edited by', + Editor: 'Editor', + 'Editor name (optional)': 'Editor name (optional)', + 'Enable word wrap': 'Enable word wrap', + 'End date': 'End date', + 'End date must be after start date': 'End date must be after start date', + 'Enter a Nostr event identifier (nevent, naddr, note, or hex ID) OR a web URL (https://). Not both.': + 'Enter a Nostr event identifier (nevent, naddr, note, or hex ID) OR a web URL (https://). Not both.', + 'Enter a descriptive title for your thread': 'Enter a descriptive title for your thread', + 'Enter the author name': 'Enter the author name', + 'Enter the book title': 'Enter the book title', + 'Enter the specific text you want to highlight in the main content area above': + 'Enter the specific text you want to highlight in the main content area above', + 'Event IDs (ids)': 'Event IDs (ids)', + 'Event appears to be invalid or corrupted': 'Event appears to be invalid or corrupted', + 'Event has no value data': 'Event has no value data', + 'Event is missing required fields: {{fields}}': 'Event is missing required fields: {{fields}}', + 'Event type': 'Event type', + 'Expiration Tags': 'Expiration Tags', + 'Export OPML': 'Export OPML', + 'Export as AsciiDoc': 'Export as AsciiDoc', + 'Export as Markdown': 'Export as Markdown', + 'External Citation': 'External Citation', + 'External Citation Settings': 'External Citation Settings', + 'Failed to add relay. Please try again.': 'Failed to add relay. Please try again.', + 'Failed to add relays': 'Failed to add relays', + 'Failed to block relay. Please try again.': 'Failed to block relay. Please try again.', + 'Failed to cleanup duplicates': 'Failed to cleanup duplicates', + 'Failed to clear cache': 'Failed to clear cache', + 'Failed to copy': 'Failed to copy', + 'Failed to create relay set. Please try again.': + 'Failed to create relay set. Please try again.', + 'Failed to create thread': 'Failed to create thread', + 'Failed to create thread. Please try a different relay.': + 'Failed to create thread. Please try a different relay.', + 'Failed to delete all items': 'Failed to delete all items', + 'Failed to delete item': 'Failed to delete item', + 'Failed to discover relays': 'Failed to discover relays', + 'Failed to export OPML file': 'Failed to export OPML file', + 'Failed to export article': 'Failed to export article', + 'Failed to import OPML file: {{error}}': 'Failed to import OPML file: {{error}}', + 'Failed to load RSS feeds': 'Failed to load RSS feeds', + 'Failed to load store items': 'Failed to load store items', + 'Failed to mute user privately': 'Failed to mute user privately', + 'Failed to mute user publicly': 'Failed to mute user publicly', + 'Failed to pin note': 'Failed to pin note', + 'Failed to publish post': 'Failed to publish post', + 'Failed to publish reply': 'Failed to publish reply', + 'Failed to publish thread': 'Failed to publish thread', + 'Failed to publish to some relays. Please try again or use different relays.': + 'Failed to publish to some relays. Please try again or use different relays.', + 'Failed to save RSS feeds': 'Failed to save RSS feeds', + 'Failed to save cache relays': 'Failed to save cache relays', + 'Failed to save relay list': 'Failed to save relay list', + 'Failed to unregister service worker: ': 'Failed to unregister service worker: ', + 'Failed to unsubscribe from topic': 'Failed to unsubscribe from topic', + Favorite: 'Favorite', + Fetch: 'Fetch', + 'Fetch once, then stop.': 'Fetch once, then stop.', + 'Filter by': 'Filter by', + 'Flat View': 'Flat View', + 'Font size': 'Font size', + 'Full Quote/Context': 'Full Quote/Context', + 'Full-text search query': 'Full-text search query', + Geohash: 'Geohash', + 'Geohash (optional)': 'Geohash (optional)', + 'Global quiet mode': 'Global quiet mode', + 'Group discussions by topic': 'Group discussions by topic', + 'Grouped View': 'Grouped View', + Groups: 'Groups', + 'Handler {{index}}': 'Handler {{index}}', + 'Hardcopy Citation': 'Hardcopy Citation', + 'Hardcopy Citation Settings': 'Hardcopy Citation Settings', + Hide: 'Hide', + 'Hide interactions on all posts': 'Hide interactions on all posts', + 'Hide interactions on posts with quiet tags': 'Hide interactions on posts with quiet tags', + 'High PoW': 'High PoW', + 'Higher values make your thread harder to mine but more unique.': + 'Higher values make your thread harder to mine but more unique.', + Highlight: 'Highlight', + 'Highlight Settings': 'Highlight Settings', + 'How to Create a Highlight (NIP-84)': 'How to Create a Highlight (NIP-84)', + 'Human-readable spell name': 'Human-readable spell name', + 'Image URL': 'Image URL', + 'Import OPML': 'Import OPML', + 'Imported {{count}} feed(s) from OPML file': 'Imported {{count}} feed(s) from OPML file', + 'In-Browser Cache': 'In-Browser Cache', + Insert: 'Insert', + 'Insert URL into your post and publish to Nostr GIF library (NIP-94).': + 'Insert URL into your post and publish to Nostr GIF library (NIP-94).', + 'Insert event or address': 'Insert event or address', + 'Insert mention': 'Insert mention', + 'Internal Citation': 'Internal Citation', + 'Internal Citation Settings': 'Internal Citation Settings', + 'Invalid Event': 'Invalid Event', + 'Invalid Lightning Address': 'Invalid Lightning Address', + 'Invalid Lightning Address. Please enter a valid Lightning Address or LNURL.': + 'Invalid Lightning Address. Please enter a valid Lightning Address or LNURL.', + 'Invalid URL': 'Invalid URL', + 'Invalid content JSON': 'Invalid content JSON', + 'Invalid relay URL': 'Invalid relay URL', + 'Invalid source. Please enter a note ID, nevent, naddr, hex ID, or URL.': + 'Invalid source. Please enter a note ID, nevent, naddr, hex ID, or URL.', + 'Item deleted successfully': 'Item deleted successfully', + JSON: 'JSON', + 'Join link': 'Join link', + 'Journal/Publication name (optional)': 'Journal/Publication name (optional)', + Json: 'JSON', + Kinds: 'Kinds', + 'Language Model': 'Language Model', + Large: 'Large', + 'Leave empty for HiveTalk, or paste Zoom / Teams / other link': + 'Leave empty for HiveTalk, or paste Zoom / Teams / other link', + 'Lightning payment failed': 'Lightning payment failed', + Limit: 'Limit', + 'Live feed; keeps updating.': 'Live feed; keeps updating.', + 'Loading more...': 'Loading more...', + 'Loading relays...': 'Loading relays...', + 'Location (optional)': 'Location (optional)', + 'Log in to run this spell (it uses $me or $contacts).': + 'Log in to run this spell (it uses $me or $contacts).', + 'Login failed': 'Login failed', + 'Login to configure RSS feeds': 'Login to configure RSS feeds', + 'Long-form Article': 'Long-form Article', + 'Mailbox relays saved': 'Mailbox relays saved', + 'Mark as NSFW': 'Mark as NSFW', + 'Maximum {{max}} invitees': 'Maximum {{max}} invitees', + 'Maximum {{max}} invitees allowed': 'Maximum {{max}} invitees allowed', + Medium: 'Medium', + Mode: 'Mode', + 'Most Zapped': 'Most Zapped', + 'Move to top': 'Move to top', + 'Multiple choice': 'Multiple choice', + 'Mute failed': 'Mute failed', + NSFW: 'NSFW', + Name: 'Name', + 'Name of the language model used': 'Name of the language model used', + 'New External Citation': 'New External Citation', + 'New Hardcopy Citation': 'New Hardcopy Citation', + 'New Highlight': 'New Highlight', + 'New Internal Citation': 'New Internal Citation', + 'New Long-form Article': 'New Long-form Article', + 'New Poll': 'New Poll', + 'New Prompt Citation': 'New Prompt Citation', + 'New Public Message': 'New Public Message', + 'New Wiki Article': 'New Wiki Article', + 'New Wiki Article (Markdown)': 'New Wiki Article (Markdown)', + Newest: 'Newest', + 'No JSON available': 'No JSON available', + 'No RSS feeds found in OPML file': 'No RSS feeds found in OPML file', + 'No cached data found.': 'No cached data found.', + 'No console logs captured yet': 'No console logs captured yet', + 'No events found': 'No events found', + 'No feeds configured. Default feed will be used.': + 'No feeds configured. Default feed will be used.', + 'No feeds to export': 'No feeds to export', + 'No groups available. Join some groups first.': 'No groups available. Join some groups first.', + 'No items in this store.': 'No items in this store.', + 'No items match your search.': 'No items match your search.', + 'No logs match the current filters': 'No logs match the current filters', + 'No posts found': 'No posts found', + 'No posts match your search': 'No posts match your search', + 'No relays available. Please configure relays in settings.': + 'No relays available. Please configure relays in settings.', + 'No service workers or caches found for this app': + 'No service workers or caches found for this app', + 'No users found': 'No users found', + 'No valid RSS feed URLs found in OPML file': 'No valid RSS feed URLs found in OPML file', + 'Note pinned': 'Note pinned', + 'Note unpinned': 'Note unpinned', + Oldest: 'Oldest', + 'Open Timestamp': 'Open Timestamp', + 'Opens in a new tab. Copy a GIF URL there, then paste below. If this picker closed, click “Insert GIF” again to paste.': + 'Opens in a new tab. Copy a GIF URL there, then paste below. If this picker closed, click “Insert GIF” again to paste.', + Option: 'Option', + Optional: 'Optional', + 'Optional image for the event': 'Optional image for the event', + 'Optionally, add the full quote/context to show your highlight within it': + 'Optionally, add the full quote/context to show your highlight within it', + PM: 'PM', + 'Page Range': 'Page Range', + Pages: 'Pages', + 'Paste URL of a GIF': 'Paste URL of a GIF', + 'Paste the entire original passage that contains your highlight': + 'Paste the entire original passage that contains your highlight', + Photo: 'Photo', + 'Picture Note': 'Picture Note', + 'Pin note': 'Pin note', + 'Plain text description of the query': 'Plain text description of the query', + 'Please login to view bookmarks': 'Please login to view bookmarks', + 'Please select a group': 'Please select a group', + 'Please select at least one relay': 'Please select at least one relay', + 'Please set a start date': 'Please set a start date', + 'Poll with no options': 'Poll with no options', + 'Post published to some relays': 'Post published to some relays', + 'Posts will automatically include expiration tags': + 'Posts will automatically include expiration tags', + 'Posts will automatically include quiet tags': 'Posts will automatically include quiet tags', + 'Posts will be quiet for this many days': 'Posts will be quiet for this many days', + 'Posts will expire after this many months': 'Posts will expire after this many months', + 'Processing...': 'Processing...', + 'Profile event not available': 'Profile event not available', + 'Prompt Citation': 'Prompt Citation', + 'Prompt Citation Settings': 'Prompt Citation Settings', + 'Prompt Conversation Script': 'Prompt Conversation Script', + 'Proof of Work': 'Proof of Work', + 'Publish to Relays': 'Publish to Relays', + 'Published By': 'Published By', + 'Published In': 'Published In', + 'Published On': 'Published On', + 'Published in': 'Published in', + 'Published on': 'Published on', + 'Publisher name (optional)': 'Publisher name (optional)', + 'Quiet Tags': 'Quiet Tags', + 'RSS Feed': 'RSS Feed', + 'RSS Feed Settings': 'RSS Feed Settings', + 'RSS Feeds': 'RSS Feeds', + 'RSS feeds exported to OPML file': 'RSS feeds exported to OPML file', + 'RSS feeds saved': 'RSS feeds saved', + 'Rate limited. Please wait before trying again.': + 'Rate limited. Please wait before trying again.', + 'Reaction published': 'Reaction published', + 'Reaction removed': 'Reaction removed', + 'Read full article': 'Read full article', + 'Reading group entry': 'Reading group entry', + 'Readings Options': 'Readings Options', + Recipients: 'Recipients', + 'Recipients detected from your message:': 'Recipients detected from your message:', + 'Recommended Relays': 'Recommended Relays', + 'Recommended applications for handling events of kind {{kind}}': + 'Recommended applications for handling events of kind {{kind}}', + 'Reference to the cited Nostr event in kind:pubkey:hex format': + 'Reference to the cited Nostr event in kind:pubkey:hex format', + 'Refresh Cache': 'Refresh Cache', + 'Refreshing posts...': 'Refreshing posts...', + 'Relative: 7d, 24h, 1w, 1mo, 1y. Or Unix timestamp.': + 'Relative: 7d, 24h, 1w, 1mo, 1y. Or Unix timestamp.', + Relay: 'Relay', + 'Relay Hint': 'Relay Hint', + 'Relay URL (optional)': 'Relay URL (optional)', + 'Relay blocked successfully': 'Relay blocked successfully', + 'Relay requires authentication for write access. Please try a different relay or contact the relay operator.': + 'Relay requires authentication for write access. Please try a different relay or contact the relay operator.', + 'Relay set options': 'Relay set options', + 'Remove from favorites': 'Remove from favorites', + Rendered: 'Rendered', + 'Reply published': 'Reply published', + 'Reply published to some relays': 'Reply published to some relays', + 'Reply to Public Message': 'Reply to Public Message', + 'Republish to all active relays': 'Republish to all active relays', + 'Republish to all available relays': 'Republish to all available relays', + 'Required: start (or start date), invitees. Optional: title, end, location, summary, topics, image.': + 'Required: start (or start date), invitees. Optional: title, end, location, summary, topics, image.', + 'Required: start time or start date. Optional: title, end, location, summary, topics, image.': + 'Required: start time or start date. Optional: title, end, location, summary, topics, image.', + 'Required: start time, invitees. Join link defaults to HiveTalk. Optional: title, end, summary, topics, image.': + 'Required: start time, invitees. Join link defaults to HiveTalk. Optional: title, end, summary, topics, image.', + 'Required: start time. Join link defaults to HiveTalk. Optional: title, end, summary, topics, image.': + 'Required: start time. Join link defaults to HiveTalk. Optional: title, end, summary, topics, image.', + 'Respect quiet tags': 'Respect quiet tags', + 'Search (NIP-50)': 'Search (NIP-50)', + 'Search by name or npub…': 'Search by name or npub…', + 'Search calendar, publications, wiki…': 'Search calendar, publications, wiki…', + 'Search for user…': 'Search for user…', + 'Search items...': 'Search items...', + 'Search logs...': 'Search logs...', + 'Search notes, threads, long-form…': 'Search notes, threads, long-form…', + 'Search on GifBuddy': 'Search on GifBuddy', + 'Search posts...': 'Search posts...', + 'Search threads by title, content, tags, npub, author...': + 'Search threads by title, content, tags, npub, author...', + 'Searching all available relays...': 'Searching all available relays...', + 'Searching…': 'Searching…', + 'See reference': 'See reference', + 'Select Group': 'Select Group', + 'Select Media Type': 'Select Media Type', + 'Select group...': 'Select group...', + 'Select relays': 'Select relays', + 'Select the group where you want to create this discussion.': + 'Select the group where you want to create this discussion.', + 'Select topic...': 'Select topic...', + 'Selected text': 'Selected text', + 'Send Public Message': 'Send Public Message', + 'Send a Lightning payment to this user': 'Send a Lightning payment to this user', + 'Service worker caches cleared. Please reload the page.': + 'Service worker caches cleared. Please reload the page.', + 'Service worker unregistered and caches cleared. Please reload the page.': + 'Service worker unregistered and caches cleared. Please reload the page.', + 'Service worker unregistered. Please reload the page.': + 'Service worker unregistered. Please reload the page.', + 'Share your thoughts, ask questions, or start a discussion...': + 'Share your thoughts, ask questions, or start a discussion...', + 'Short Video Note': 'Short Video Note', + 'Show RSS Feed': 'Show RSS Feed', + 'Show all discussions in a single list': 'Show all discussions in a single list', + 'Show less': 'Show less', + Since: 'Since', + Small: 'Small', + 'Some relays have temporarily disabled writes.': + 'Some relays have temporarily disabled writes.', + Source: 'Source', + 'Spell definition': 'Spell definition', + 'Spell published': 'Spell published', + 'Start date': 'Start date', + 'Start typing to see a preview...': 'Start typing to see a preview...', + 'Subject (Book Title)': 'Subject (Book Title)', + 'Subject (book title) is required for reading groups': + 'Subject (book title) is required for reading groups', + 'Subject / Topics': 'Subject / Topics', + Subscribe: 'Subscribe', + Subscribed: 'Subscribed', + 'Subscribed to topic': 'Subscribed to topic', + 'Subscribed to topic (local)': 'Subscribed to topic (local)', + 'Subscribing...': 'Subscribing...', + Summary: 'Summary', + 'Supported Event Types': 'Supported Event Types', + 'Take a note': 'Take a note', + 'The full prompt conversation (optional)': 'The full prompt conversation (optional)', + 'The main editor above should contain only the text you want to highlight. This field should contain the full quote or paragraph for context.': + 'The main editor above should contain only the text you want to highlight. This field should contain the full quote or paragraph for context.', + 'These relays were found from your NIP-05 identifier and signer. You can add them to your relay list.': + 'These relays were found from your NIP-05 identifier and signer. You can add them to your relay list.', + 'This file could be either audio or video. Please select the correct type:': + 'This file could be either audio or video. Please select the correct type:', + 'This store does not contain replaceable events': + 'This store does not contain replaceable events', + 'This will add additional tags for author and subject to help organize reading group discussions.': + 'This will add additional tags for author and subject to help organize reading group discussions.', + 'Thread Content': 'Thread Content', + 'Thread Title': 'Thread Title', + 'Thread creation timed out. Please try again.': 'Thread creation timed out. Please try again.', + 'Thread published': 'Thread published', + 'Threads are organized by topics. Choose a topic that best fits your discussion.': + 'Threads are organized by topics. Choose a topic that best fits your discussion.', + 'Time-based': 'Time-based', + 'Title is required': 'Title is required', + 'Title must be 100 characters or less': 'Title must be 100 characters or less', + 'To translate notes and other content, use your browser’s built-in translation. For example: right-click the page and choose “Translate to…”, or use the translate icon in the address bar.': + 'To translate notes and other content, use your browser’s built-in translation. For example: right-click the page and choose “Translate to…”, or use the translate icon in the address bar.', + Top: 'Top', + Topic: 'Topic', + URL: 'URL', + 'URL of the article cover image (optional)': 'URL of the article cover image (optional)', + 'Unique identifier for this article (required)': + 'Unique identifier for this article (required)', + 'Unmute failed': 'Unmute failed', + 'Unpin note': 'Unpin note', + Unsubscribe: 'Unsubscribe', + 'Unsubscribed from topic': 'Unsubscribed from topic', + 'Unsubscribing...': 'Unsubscribing...', + Until: 'Until', + Untitled: 'Untitled', + Update: 'Update', + 'Updating...': 'Updating...', + 'Upload Audio Comment': 'Upload Audio Comment', + 'Upload Audio Message': 'Upload Audio Message', + 'Upload Media': 'Upload Media', + Upvote: 'Upvote', + 'User unmuted': 'User unmuted', + 'Version number (optional)': 'Version number (optional)', + Video: 'Video', + 'Video Note': 'Video Note', + 'Video file': 'Video file', + 'View Console Logs': 'View Console Logs', + 'View JSON': 'View JSON', + 'View cached items in this store.': 'View cached items in this store.', + 'View definition': 'View definition', + 'View details about cached data in IndexedDB stores. Click on a store to view its items.': + 'View details about cached data in IndexedDB stores. Click on a store to view its items.', + 'View on Alexandria': 'View on Alexandria', + 'View on DecentNewsroom': 'View on DecentNewsroom', + 'View on Wikistr': 'View on Wikistr', + 'View recent console logs for debugging': 'View recent console logs for debugging', + 'Voice Comment': 'Voice Comment', + 'Voice Note': 'Voice Note', + 'Voice note or audio file': 'Voice note or audio file', + Volume: 'Volume', + 'Volume number (optional)': 'Volume number (optional)', + 'Vote published': 'Vote published', + 'Vote removed': 'Vote removed', + 'Website where LLM was accessed (optional)': 'Website where LLM was accessed (optional)', + 'Wiki Article (AsciiDoc)': 'Wiki Article (AsciiDoc)', + 'Wiki Article (Markdown)': 'Wiki Article (Markdown)', + 'You can only delete your own notes': 'You can only delete your own notes', + 'You must be logged in to create a thread': 'You must be logged in to create a thread', + 'You need to add at least one media server in order to upload media files.': + 'You need to add at least one media server in order to upload media files.', + 'You need to login first': 'You need to login first', + 'Your account is blocked from posting to this relay.': + 'Your account is blocked from posting to this relay.', + Zap: 'Zap', + 'Zap failed': 'Zap failed', + created_at: 'created_at', + 'e tag of kind 1040 event (optional)': 'e tag of kind 1040 event (optional)', + 'e.g. meetup, conference': 'e.g. meetup, conference', + 'e.g., 123-145 (optional)': 'e.g., 123-145 (optional)', + 'e.g., GPT-4, Claude, etc. (required)': 'e.g., GPT-4, Claude, etc. (required)', + 'e.g., my-article-title': 'e.g., my-article-title', + entries: 'entries', + 'from Bunker': 'from Bunker', + 'from Extension': 'from Extension', + 'from NIP-05': 'from NIP-05', + general: 'general', + 'https://example.com (required)': 'https://example.com (required)', + 'https://example.com/image.jpg': 'https://example.com/image.jpg', + id: 'id', + items: 'items', + kind: 'kind', + 'kind:pubkey:hex format (required)': 'kind:pubkey:hex format (required)', + 'last updated': 'last updated', + matching: 'matching', + naddr: 'naddr', + nevent: 'nevent', + 'nevent1..., naddr1..., note1..., hex ID, or https://...': + 'nevent1..., naddr1..., note1..., hex ID, or https://...', + 'no notes found': 'no notes found', + of: 'of', + 'on note': 'on note', + optional: 'optional', + pubkey: 'pubkey', + 'sent a public message': 'sent a public message', + 'sent you a public message': 'sent you a public message', + 'sent you a public message (along with {{count}} others)': + 'sent you a public message (along with {{count}} others)', + sig: 'sig', + 'started a discussion in {{topic}}': 'started a discussion in {{topic}}', + tags: 'tags', + thread: 'thread', + threads: 'threads', + 'topic1, topic2, topic3': 'topic1, topic2, topic3', + '{{count}} relay(s) selected': '{{count}} relay(s) selected', + '🔞 NSFW 🔞': '🔞 NSFW 🔞' } } diff --git a/src/i18n/locales/ja.ts b/src/i18n/locales/ja.ts index 0d07f533..a9690aed 100644 --- a/src/i18n/locales/ja.ts +++ b/src/i18n/locales/ja.ts @@ -1,13 +1,16 @@ export default { translation: { - // NOTE: The translations below were generated by ChatGPT and have not yet been verified. 'Welcome! 🥳': 'ようこそ! 🥳', About: '情報', 'New Note': '新規ノート', Post: '投稿', Home: 'ホーム', + Feed: 'Feed', + 'Favorites Feed': 'Favorites Feed', + 'Pinned note': 'Pinned note', 'Relay settings': 'リレイ設定', Settings: '設定', + 'Account menu': 'Account menu', SidebarRelays: 'リレイ', Refresh: '更新', Profile: 'プロフィール', @@ -31,6 +34,12 @@ export default { 'loading...': '読み込み中...', 'Loading...': '読み込み中...', 'no more notes': 'これ以上ノートはありません', + 'calendar entries': 'calendar entries', + 'Loading calendar events...': 'Loading calendar events...', + 'No calendar events found': 'No calendar events found', + 'Calendar events in the next {{count}} months': 'Calendar events in the next {{count}} months', + 'The nostr.band relay appears to be temporarily out of service. Please try again later.': + 'The nostr.band relay appears to be temporarily out of service. Please try again later.', 'reply to': '返信先', reply: '返信', Reply: '返信', @@ -38,6 +47,9 @@ export default { 'Write something...': '何か書いて...', Cancel: 'キャンセル', Mentions: '@', + 'Search for event or address…': 'Search for event or address…', + 'Search notes…': 'Search notes…', + 'No notes found': 'No notes found', 'Failed to post': '投稿に失敗しました', 'Post successful': '投稿に成功しました', 'Your post has been published': '投稿が公開されました', @@ -46,7 +58,22 @@ export default { Quote: '引用', 'Copy event ID': 'イベントIDをコピー', 'Copy user ID': 'ユーザーIDをコピー', + 'Send public message': 'Send public message', 'View raw event': '生データを表示', + 'Edit this event': 'Edit this event', + 'Clone or fork this event': 'Clone or fork this event', + 'Event kind': 'Event kind', + 'Note content': 'Note content', + Publish: 'Publish', + 'Post published': 'Post published', + 'Edit content and tags, then publish a new signed event.': + 'Edit content and tags, then publish a new signed event.', + 'Log in to publish': 'Log in to publish', + 'Set when you publish': 'set when you publish', + 'id and sig are assigned when you publish': 'id and sig are assigned when you publish', + 'Published to some relays only': 'Published to some relays only', + 'Add field': 'Add field', + 'View full profile': 'View full profile', Like: 'いいね', 'switch to light theme': 'ライトテーマに切替', 'switch to dark theme': 'ダークテーマに切替', @@ -57,18 +84,143 @@ export default { "username's used relays": '{{username}} の使用リレイ', "username's muted": '{{username}} はミュート済み', Login: 'ログイン', + 'Please log in to view notifications.': 'Please log in to view notifications.', 'Follows you': 'あなたをフォローしています', 'Relay Settings': 'リレイ設定', + 'Relays and Storage Settings': 'Relays and Storage Settings', 'Relay set name': 'リレイセット名', 'Add a new relay set': '新しいリレイセットを追加', Add: '追加', 'n relays': '{{n}} 個のリレイ', Rename: '名前変更', + 'Copy share link': 'Copy share link', + 'Copy address': 'Copy address', + 'Copy payto URI': 'Copy payto URI', + 'Copied payto address': 'Copied payto address', + 'Copied to clipboard': 'Copied to clipboard', + 'Copied {{label}} address': 'Copied {{label}} address', + 'Lightning payment address – copy to pay via your wallet': + 'Lightning payment address – copy to pay via your wallet', + 'Payment address – copy to use in your wallet or app': + 'Payment address – copy to use in your wallet or app', + 'Click to open payment options': 'Click to open payment options', + 'Click to copy address': 'Click to copy address', + 'Open on website': 'Open on website', + 'Raw profile event': 'Raw profile event', + 'Full profile event': 'Full profile event', + 'Event (JSON)': 'Event (JSON)', + 'Save full profile': 'Save full profile', + 'Add tag': 'Add tag', + 'Remove tag': 'Remove tag', + 'Tag name': 'Tag name', + Value: 'Value', + 'Add value to tag': 'Add value to tag', + 'Remove value': 'Remove value', + 'No tags. Click "Add tag" to add one.': 'No tags. Click "Add tag" to add one.', + 'Profile updated': 'Profile updated', + 'Failed to publish profile': 'Failed to publish profile', + 'Invalid profile JSON': 'Invalid profile JSON', + 'Refresh cache': 'Refresh cache', + 'Force-refresh profile and payment info from relays': + 'Force-refresh profile and payment info from relays', + 'Profile and payment cache refreshed': 'Profile and payment cache refreshed', + 'Failed to refresh cache': 'Failed to refresh cache', + 'Raw payment info event': 'Raw payment info event', + 'Payment info': 'Payment info', + 'Edit payment info': 'Edit payment info', + 'Add payment info': 'Add payment info', + 'No payment info event yet. Click "Add payment info" to create one.': + 'No payment info event yet. Click "Add payment info" to create one.', + 'Content (JSON)': 'Content (JSON)', + Tags: 'Tags', + 'Tags (JSON array of arrays, e.g. [["payto","lightning","user@domain.com"]])': + 'Tags (JSON array of arrays, e.g. [["payto","lightning","user@domain.com"]])', + 'Payment info updated': 'Payment info updated', + 'Failed to publish payment info': 'Failed to publish payment info', + 'Invalid tags JSON': 'Invalid tags JSON', + 'Payment methods': 'Payment methods', + 'NIP-A3 payto tags: type (e.g. lightning) and authority (e.g. user@domain.com).': + 'NIP-A3 payto tags: type (e.g. lightning) and authority (e.g. user@domain.com).', + 'Type (e.g. lightning)': 'Type (e.g. lightning)', + 'Authority (e.g. user@domain.com)': 'Authority (e.g. user@domain.com)', + 'Add payment method': 'Add payment method', + Remove: 'Remove', + 'Additional content (JSON)': 'Additional content (JSON)', + 'Show full event JSON': 'Show full event JSON', + 'Tag list': 'Tag list', + 'Profile event tags (e.g. lud16, nip05, website). Saved with kind 0.': + 'Profile event tags (e.g. lud16, nip05, website). Saved with kind 0.', + 'Tag value': 'Tag value', + 'Saving…': 'Saving…', 'Share with Jumble': 'Jumbleで共有', 'Share with Alexandria': 'Alexandriaで共有', + 'Start video call': 'Start video call', + 'Copy call invite link': 'Copy call invite link', + 'Start call about this': 'Start call about this', + 'Send call invite': 'Send call invite', + 'Join the video call': 'Join the video call', + 'Schedule video call': 'Schedule video call', + "You're invited to a scheduled video call.": "You're invited to a scheduled video call.", + 'Create a calendar event and send an invite. The recipient will see the event with a join link.': + 'Create a calendar event and send an invite. The recipient will see the event with a join link.', + 'Schedule a video call': 'Schedule a video call', + 'Create a calendar event and send kind 24 invites to each listed invitee.': + 'Create a calendar event and send kind 24 invites to each listed invitee.', + Invitees: 'Invitees', + 'Paste nostr:npub1... or nostr:nprofile1... (one or more)': + 'Paste nostr:npub1... or nostr:nprofile1... (one or more)', + 'Schedule and send invites': 'Schedule and send invites', + 'Add at least one invitee (paste nostr:npub or nostr:nprofile links)': + 'Add at least one invitee (paste nostr:npub or nostr:nprofile links)', + 'Scheduled call created and {{count}} invite(s) sent': + 'Scheduled call created and {{count}} invite(s) sent', + 'Join video call': 'Join video call', + 'Scheduled video call': 'Scheduled video call', + 'Video call': 'Video call', + 'Schedule and send invite': 'Schedule and send invite', + 'Scheduling…': 'Scheduling…', + 'Please set a start time': 'Please set a start time', + 'End time must be after start time': 'End time must be after start time', + 'Failed to schedule call': 'Failed to schedule call', + 'Scheduled call created and invite sent': 'Scheduled call created and invite sent', + RSVP: 'RSVP', + 'RSVP: {{status}}': 'RSVP: {{status}}', + Accepted: 'Accepted', + Tentative: 'Tentative', + Declined: 'Declined', + 'You need to log in to RSVP': 'You need to log in to RSVP', + 'RSVP updated': 'RSVP updated', + 'Failed to update RSVP': 'Failed to update RSVP', + Organizer: 'Organizer', + Attendees: 'Attendees', + 'No response': 'No response', + 'Calendar Events': 'Calendar Events', + 'Calendar Event': 'Calendar Event', + 'Schedule in-person meeting': 'Schedule in-person meeting', + 'Create a calendar event and send an invite. No video link — for real-life meetups, conferences, etc.': + 'Create a calendar event and send an invite. No video link — for real-life meetups, conferences, etc.', + "You're invited to an in-person meeting.": "You're invited to an in-person meeting.", + 'Meeting created and invite sent': 'Meeting created and invite sent', + 'Failed to create meeting': 'Failed to create meeting', + 'Create and send invite': 'Create and send invite', + 'Creating…': 'Creating…', + 'In-person meeting': 'In-person meeting', + Location: 'Location', + 'Address, venue, or place': 'Address, venue, or place', + Description: 'Description', + 'Optional notes': 'Optional notes', + 'Create a calendar event for a real-life meetup and send kind 24 invites to each invitee.': + 'Create a calendar event for a real-life meetup and send kind 24 invites to each invitee.', + 'Meeting created and {{count}} invite(s) sent': 'Meeting created and {{count}} invite(s) sent', + 'Create and send invites': 'Create and send invites', + Title: 'Title', + Start: 'Start', + End: 'End', Delete: '削除', 'Relay already exists': 'リレイは既に存在します', 'invalid relay URL': '無効なリレイURL', + 'Relay URL…': 'wss://… or relay host', + 'Open relay': 'Open relay', 'Add a new relay': '新しいリレイを追加', back: '戻る', 'Lost in the void': '虚無の中へ', @@ -114,6 +266,19 @@ export default { 'Picture note requires images': '画像ノートには画像が必要です', Relays: 'リレイ', Image: '画像', + 'Upload Image': 'Upload Image', + 'Insert emoji': 'Insert emoji', + 'Insert GIF': 'Insert GIF', + 'Search GIFs': 'Search GIFs', + 'Choose a GIF': 'Choose a GIF', + 'Search GifBuddy for more GIFs': 'Search GifBuddy for more GIFs', + 'Add your own GIFs': 'Add your own GIFs', + 'Description (optional, for search)': 'Description (optional, for search)', + 'e.g. happy birthday, thumbs up': 'e.g. happy birthday, thumbs up', + 'Uploading...': 'Uploading...', + 'No GIFs found. Try searching or add your own. GIFs come from Nostr kind 1063 (NIP-94) events on GIF relays.': + 'No GIFs found. Try searching or add your own. GIFs come from Nostr kind 1063 (NIP-94) events on GIF relays.', + '{{name}} is not a GIF file': '{{name}} is not a GIF file', 'R & W': '読&書', Read: '読む', Write: '書く', @@ -154,6 +319,9 @@ export default { Muted: 'ミュート済み', Unmute: 'ミュート解除', 'Unmute user': 'ユーザーのミュート解除', + Block: 'Block', + Unblock: 'Unblock', + blocked: 'blocked', 'Append n relays': '{{n}} 個のリレイを追加', Append: '追加', 'Select relays to append': '追加するリレイを選択', @@ -178,6 +346,24 @@ export default { 'Explore more': 'もっと探索', 'Payment page': '支払いページ', 'Supported NIPs': '対応NIP', + 'Relay liveliness (NIP-66)': 'Relay liveliness (NIP-66)', + 'Relay monitor (NIP-66)': 'Relay monitor (NIP-66)', + 'Auth required': 'Auth required', + 'Public (no auth)': 'Public (no auth)', + 'Payment required': 'Payment required', + 'No payment': 'No payment', + 'Writes required': 'Writes required', + 'Writes open': 'Writes open', + 'PoW required': 'PoW required', + 'No PoW': 'No PoW', + 'RTT open': 'RTT open', + 'RTT read': 'RTT read', + 'RTT write': 'RTT write', + 'Supported NIPs (from monitor)': 'Supported NIPs (from monitor)', + 'Last reported by monitor': 'Last reported by monitor', + Network: 'Network', + Type: 'Type', + Topics: 'Topics', 'Open in a': '{{a}}で開く', 'Cannot handle event of kind k': '種類{{k}}のイベントは処理できません', 'Sorry! The note cannot be found 😔': '申し訳ありません!ノートが見つかりません 😔', @@ -208,9 +394,22 @@ export default { 'Seen on': '見た', 'Temporarily display this reply': 'この返信を一時的に表示', 'Note not found': 'ノートが見つかりません', + 'The note was not found on your relays or default relays.': + 'The note was not found on your relays or default relays.', + "Try searching author's relays": "Try searching author's relays", + 'Searching external relays...': 'Searching external relays...', + "This will connect to the author's relays and relay hints": + "This will connect to the author's relays and relay hints", + 'Note could not be found anywhere': 'Note could not be found anywhere', + 'Try external relays': 'Try external relays', + 'Searching...': 'Searching...', + 'Show relays': 'Show relays', + 'No external relay hints available': 'No external relay hints available', 'no more replies': 'これ以上の返信はありません', 'Relay sets': 'リレイセット', 'Favorite Relays': 'お気に入りのリレイ', + 'Search for Relays': 'Search for Relays', + 'Using app default relays': 'Using app default relays', "Following's Favorites": 'フォロー中のお気に入り', 'no more relays': 'これ以上のリレイはありません', 'Favorited by': 'お気に入り', @@ -226,10 +425,48 @@ export default { 'no bookmarks found': 'ブックマークが見つかりません', 'no more bookmarks': 'これ以上ブックマークはありません', Bookmarks: 'ブックマーク一覧', + 'Follow Packs': 'Follow Packs', + 'Follow Pack': 'Follow Pack', + 'Please log in to follow': 'Please log in to follow', + 'Following All': 'Following All', + 'Followed {{count}} users': 'Followed {{count}} users', + 'All available members are already followed or muted': + 'All available members are already followed or muted', + 'You are already following all members of this pack': + 'You are already following all members of this pack', + 'Failed to follow pack': 'Failed to follow pack', + '{{count}} profiles': '{{count}} profiles', 'Show more': 'もっと見る', General: '一般', Autoplay: '自動再生', 'Enable video autoplay on this device': 'このデバイスでのビデオ自動再生を有効にする', + 'Add random relays to every publish': 'Random relays in publish list', + 'Add random relays to every publish description': + 'Adds {{n}} random public relays from the NIP-66 lively list (preferring monitors that reported a write RTT) to the publish relay list. When ON, they are selected by default; when OFF, they appear in the list but are unchecked so you can optionally include them.', + relayType_local: 'Local', + relayType_relay_list: 'Relay list', + relayType_client_default: 'Client default', + relayType_open_from: 'Current feed', + relayType_favorite: 'Favorite', + relayType_relay_set: 'Relay set', + relayType_contextual: 'Reply/PM', + relayType_randomly_selected: 'Random (optional)', + 'Session relays': 'Session relays', + 'Session relays tab description': + 'Relay logic for this session: working and striked preset relays, and scored random relays (used to prefer faster, proven relays when adding random relays to publish).', + 'Session relays preset working': 'Working preset relays', + 'Session relays preset working hint': + 'Preset relays (from app defaults) that have not reached 3 publish failures this session.', + 'Session relays preset striked': 'Striked preset relays', + 'Session relays preset striked hint': + 'Preset relays that have reached 3 publish failures this session and are skipped for the rest of the session.', + 'Session relays scored random': 'Scored random relays', + 'Session relays scored random hint': + 'Relays that have accepted at least one publish this session; used to prefer faster relays when picking random relays. Sorted by average latency.', + 'Session relays all striked': 'All striked relays (any source)', + successes: 'successes', + None: 'None', + 'Cache & offline storage': 'Cache & offline storage', 'Paste or drop media files to upload': 'メディアファイルを貼り付けるかドロップしてアップロード', Preview: 'プレビュー', 'You are about to publish an event signed by [{{eventAuthorName}}]. You are currently logged in as [{{currentUsername}}]. Are you sure?': @@ -262,6 +499,7 @@ export default { 'Are you sure you want to reset your API key? This action cannot be undone.': 'APIキーをリセットしますか?この操作は元に戻せません。', Warning: '警告', + 'Errors & warnings': 'Errors & warnings', 'Your current API key will become invalid immediately, and any applications using it will stop working until you update them with the new key.': '現在のAPIキーはすぐに無効になり、それを使用しているアプリケーションは新しいキーで更新するまで動作しなくなります。', 'Service address': 'サービスアドレス', @@ -294,6 +532,9 @@ export default { Article: '記事', Unfavorite: 'お気に入り解除', 'Recommended relays': 'おすすめのリレイ', + 'Show recommended relays panel': 'Show recommended relays panel', + 'Display the right-side panel with recommended relays on desktop': + 'Display the right-side panel with recommended relays on desktop', 'Blossom server URLs': 'BlossomサーバーURL', 'You need to add at least one blossom server in order to upload media files.': 'メディアファイルをアップロードするには、少なくとも1つのBlossomサーバーを追加する必要があります。', @@ -320,7 +561,31 @@ export default { 'Refresh results': '結果を更新', Poll: '投票', Media: 'メディア', + Interests: 'Interests', + Calendar: 'Calendar', + 'No subscribed interests yet.': + 'No subscribed interests yet. Add topics in settings to see them here.', + 'No bookmarked notes with id tags yet.': + 'No bookmarked notes with id tags yet. Only classic (e-tag) bookmarks load in this feed.', + 'No follows or relays to load yet.': 'No follows or relays to load yet.', + 'Nothing to load for this feed.': 'Nothing to load for this feed.', 'Republish to ...': '再公開先 ...', + 'All available relays': 'All available relays', + 'All active relays (monitoring list)': 'All active relays (monitoring list)', + 'Successfully republish to all available relays': + 'Successfully republish to all available relays', + 'Failed to republish to all available relays: {{error}}': + 'Failed to republish to all available relays: {{error}}', + 'Successfully republish to all active relays': 'Successfully republish to all active relays', + 'Failed to republish to all active relays: {{error}}': + 'Failed to republish to all active relays: {{error}}', + 'No active relays in monitoring list': 'No active relays in monitoring list', + 'No relay accepted the event': 'No relay accepted the event', + 'No relays available': 'No relays available', + 'No write relays configured': 'No write relays configured', + 'Relay did not accept the event': 'Relay did not accept the event', + 'Only {{count}} relay(s) accepted the event; at least 5 required for "all active relays".': + 'Only {{count}} relay(s) accepted the event; at least 5 required for "all active relays".', 'Successfully republish to your write relays': '書きリレイへの再公開に成功しました', 'Failed to republish to your write relays: {{error}}': '書きリレイへの再公開に失敗しました: {{error}}', @@ -338,6 +603,7 @@ export default { 'No zaps yet': 'まだZapはありません', 'No more boosts': 'これ以上のブーストはありません', 'No boosts yet': 'まだブーストはありません', + 'n more boosts': '{{count}} more boosts', Boosts: 'ブースト', FollowListNotFoundConfirmation: 'フォローリストが見つかりません。新しいものを作成しますか?以前にユーザーをフォローしたことがある場合は、この操作により前のフォローリストが失われるため、確認しないでください。', @@ -360,8 +626,13 @@ export default { 'Maybe Later': '後で', "Don't remind me again": '今後表示しない', Posts: '投稿', + 'Posts (OPs)': 'Posts (OPs)', + 'Kind 1 replies': 'Kind 1 replies', + Comments: 'Comments', + 'Replies & comments': 'Replies & comments', Articles: '記事', Highlights: 'ハイライト', + 'A note from': 'A note from', Polls: '投票', 'Voice Posts': '音声投稿', 'Photo Posts': '写真投稿', @@ -387,6 +658,13 @@ export default { 'boosted your note': 'あなたのノートをブーストしました', 'zapped your note': 'あなたのノートにザップしました', 'zapped you': 'あなたにザップしました', + zapped: 'zapped', + 'Invalid zap receipt': 'Invalid zap receipt', + 'Zapped note': 'Zapped note', + 'Zapped profile': 'Zapped profile', + 'Zap reply threshold': 'Zap reply threshold', + 'Zaps above this amount will appear as replies in threads': + 'Zaps above this amount will appear as replies in threads', 'Mark as read': '既読にする', Report: '報告', 'Successfully report': '報告が成功しました', @@ -401,7 +679,6 @@ export default { 'See extra info for each notification': '各通知の詳細情報を表示', 'See more notifications at a glance': '一目でより多くの通知を確認', Detailed: '詳細', - Compact: 'コンパクト', 'Submit Relay': 'リレーを提出', Homepage: 'ホームページ', 'Proof of Work (difficulty {{minPow}})': 'プルーフオブワーク (難易度 {{minPow}})', @@ -428,6 +705,23 @@ export default { '{{count}} relays': '{{count}} 個のリレー', 'Republishing...': '再公開中...', 'Trending Notes': '注目のノート', + 'Trending on Your Favorite Relays': 'Trending on Your Favorite Relays', + 'Trending on the Default Relays': 'Trending on the Default Relays', + 'Latest from your follows': 'Latest from your follows', + 'Latest from our recommended follows': 'Latest from our recommended follows', + 'Loading follow list…': 'Loading follow list…', + 'Could not load recommended follows': 'Could not load recommended follows', + 'Your follow list is empty': 'Your follow list is empty', + 'Loading recent posts from follows…': 'Loading recent posts from follows…', + 'Loading more…': 'Loading more…', + 'No recent posts from this user in the current fetch': + 'No recent posts from this user in the current fetch', + 'Loading trending notes from your relays...': 'Loading trending notes from your relays...', + Sort: 'Sort', + newest: 'newest', + oldest: 'oldest', + 'most popular': 'most popular', + 'least popular': 'least popular', 'Connected to': '接続先', 'Disconnect Wallet': 'ウォレットの接続を解除', 'Are you absolutely sure?': '本当に確かですか?', @@ -435,6 +729,690 @@ export default { Disconnect: '接続解除', 'Set up your wallet to send and receive sats!': 'ウォレットを設定してサッツを送受信しましょう!', - 'Set up': '設定する' + 'Set up': '設定する', + 'nested events': 'nested events', + 'Loading RSS feeds...': 'Loading RSS feeds...', + 'No RSS feed items available': 'No RSS feed items available', + 'Show or hide the RSS page and sidebar entry': 'Show or hide the RSS page and sidebar entry', + 'Refreshing feeds...': 'Refreshing feeds...', + 'All feeds': 'All feeds', + 'All time': 'All time', + 'Last hour': 'Last hour', + 'Last day': 'Last day', + 'Last week': 'Last week', + 'Last month': 'Last month', + 'No items match your filters': 'No items match your filters', + 'Search...': 'Search...', + '{{count}} feeds': '{{count}} feeds', + 'Toggle filters': 'Toggle filters', + 'Showing {{filtered}} of {{total}} items': 'Showing {{filtered}} of {{total}} items', + Full: 'Full', + Compact: 'コンパクト', + Expand: 'Expand', + 'help.title': 'Help', + 'help.tabShortcuts': 'Keyboard shortcuts', + 'help.tabOverview': 'App overview', + 'shortcuts.title': 'Keyboard shortcuts', + 'shortcuts.intro': + 'Shortcuts for this app and common browsing. Modifier combos are Shift+Alt+key (Option+Shift+key on macOS); either modifier order works when typing.', + 'shortcuts.sectionApp': 'This app', + 'shortcuts.sectionSearch': 'Search bar', + 'shortcuts.sectionStandard': 'Standard', + 'shortcuts.openHelp': 'Show this help', + 'shortcuts.or': 'or', + 'shortcuts.then': 'then', + 'shortcuts.focusPrimary': + 'Focus main column scroll (desktop; then arrow keys, Page Up/Down, Home/End)', + 'shortcuts.focusSecondary': + 'Focus side panel scroll when it is open (desktop; same keys to scroll)', + 'shortcuts.newNote': 'New note / post (after login if needed)', + 'shortcuts.searchSuggest': 'Move through suggestions', + 'shortcuts.searchDismiss': 'Close search dropdown', + 'shortcuts.tabNavigate': 'Move focus to the next or previous control', + 'shortcuts.activate': 'Activate buttons and many controls', + 'shortcuts.closeOverlays': 'Close dialogs, menus, and the search dropdown', + 'shortcuts.scrollWhenFocused': 'Scroll the focused scrollable area', + 'shortcuts.browserBack': 'Browser back (history)', + 'No spells yet. Create one with the button above.': + 'No spells yet. Create one with the button above.', + 'Loading spells from your relays…': 'Loading spells from your relays…', + 'Could not run this spell. Check that it has a valid REQ/COUNT command, or add write relays in settings.': + 'Could not run this spell. Check that it has a valid REQ/COUNT command, or add write relays in settings.', + 'Select a spell…': 'Select a spell…', + 'Spells from follows': 'From people you follow ({{count}})', + 'Other spells': 'Other spells ({{count}})', + 'Select a spell to view its feed.': 'Select a spell to view its feed.', + 'Add another row': 'Add another row', + 'Remove this row': 'Remove this row', + 'One kind number per row (e.g. 1 for notes).': 'One kind number per row (e.g. 1 for notes).', + 'One author per row: $me, $contacts, or hex pubkey / npub.': + 'One author per row: $me, $contacts, or hex pubkey / npub.', + 'One hex event id per row.': 'One hex event id per row.', + 'One wss:// URL per row. Leave empty to use your write relays.': + 'One wss:// URL per row. Leave empty to use your write relays.', + 'One topic per row.': 'One topic per row.', + topic: 'topic', + 'Spell form fields': 'Spell form fields', + 'Counting matching events…': 'Counting matching events…', + 'Edit spell': 'Edit spell', + 'Clone spell': 'Clone spell', + 'Spell cloned': 'Spell cloned', + 'Clone spell intro': + 'This spell is preloaded from another author’s definition. Change anything you like, then save to publish a new spell signed with your account.', + 'Spell updated': 'Spell updated', + 'Relay URL': 'Relay', + Count: 'Count', + 'Edit spell relays': 'Edit relays', + 'COUNT spell relay errors hint': + 'One or more relays failed or returned an error. You can change the relay list in the spell and save again.', + 'COUNT spell total distinct explanation': + 'Distinct matching event IDs across all relays that responded successfully (duplicates across relays removed). Each relay only returns up to the filter limit.', + 'Leave empty to use your write relays.': 'Leave empty to use your write relays.', + 'COUNT spell result explanation': + 'Distinct events returned for this filter (merged from your spell relays and default write relays, duplicates removed). Relays only return up to the filter limit.', + 'COUNT spell may be capped by limit': + 'This count may equal your spell limit — there could be more matching events on the network.', + 'Spell count failed. Check relays or try again.': + 'Could not complete the count. Check relays or try again.', + 'REQ returns a feed; COUNT returns a number.': + 'REQ: scrollable feed (choose live Feed or one-shot Fetch below). COUNT: a single number, no feed.', + listImportManualLabel: 'Pre-fill from event', + listImportFromEventHint: + 'Supported tags are merged into the form (e, p, t, relay, r, a where possible). Non-empty content is skipped; encrypted private items are not read. You may see notices for unmapped tags.', + listImportManualPlaceholder: '64-char hex, nevent1…, or naddr1…', + listImportLoadManual: 'Apply', + listImportContentSkipped: + 'This event has non-empty content (may include encrypted private items). Only public tags were merged.', + listImportUnsupportedEmoji: + 'This list includes emoji tags (NIP-30); those are not added to the spell filter.', + listImportUnsupportedTag: + 'Tags of type “{{tag}}” ({{count}}) are not mapped to spell filters yet.', + listImportBadATag: 'Could not parse address tag: {{preview}}…', + listImportATagNotFound: 'Could not resolve address tag: {{preview}}…', + listImportATagFailed: 'Failed to resolve address tag: {{preview}}…', + listImportEventNotFound: 'No event found for that reference.', + 'REQ tag filters': 'REQ tag filters', + spellFormTagFiltersLabel: 'Tag filters on matching events', + spellCreateIntro: + 'Spells are saved relay filters (NIP-A7). The “Spell query” section is the real definition; the dashed box at the bottom is only for names, descriptions, and catalog labels. Use $me for your pubkey and $contacts for your follow list when executing.', + spellFormSectionQueryTitle: 'Spell query', + spellFormSectionQueryHint: + 'This block is the actual spell definition: it becomes the Nostr REQ/COUNT filter (kinds, authors, time range, tag filters on matching events, relays, etc.).', + spellFormSectionMetadataTitle: 'Listing & labels (optional)', + spellFormSectionMetadataBadge: 'Not part of the query', + spellFormSectionMetadataHint: + 'Name, description, and topic labels are only for display and spell pickers. They are not used when the spell fetches events.', + spellFormCatalogTopicsLabel: 'Topic labels on this spell (t tags)', + spellTopicsMetadataHint: + 'One topic per row. To filter which notes you see, use “REQ tag filters” in the spell query above (letter “t”).', + spellTagFiltersHint: + 'Optional filters on subscribed events (NIP-01 single-letter tags). Example: letter “t”, values “bitcoin”.', + spellTagFiltersEmpty: 'No tag filters yet. Add rows below or apply an event reference above.', + 'Tag filter letter': 'Tag letter', + 'Filter value': 'Value', + 'Add tag filter': 'Add tag filter', + spellPickerSectionYours: 'Your spells', + 'Failed to remove spell from local storage': 'Failed to remove spell from local storage', + Spells: 'Spells', + 'doublePane.secondaryEmpty': 'Open a note, profile, or settings item to show it here.', + 'doublePane.secondaryEmptyHint': 'Your feed and primary pages stay on the left.', + '(empty)': '(empty)', + '12-hour (AM/PM)': '12-hour (AM/PM)', + '24-hour': '24-hour', + 'A new version is available': 'A new version is available', + 'A short description of the article content': 'A short description of the article content', + AM: 'AM', + 'Access via': 'Access via', + 'Accessed On': 'Accessed On', + 'Accessed on': 'Accessed on', + 'Add RSS feed URLs to subscribe to. If no feeds are configured, the default feed will be used.': + 'Add RSS feed URLs to subscribe to. If no feeds are configured, the default feed will be used.', + 'Add a relay to block': 'Add a relay to block', + 'Add at least one invitee': 'Add at least one invitee', + 'Add client identifier': 'Add client identifier', + 'Add expiration tags by default': 'Add expiration tags by default', + 'Add quiet tags by default': 'Add quiet tags by default', + 'Add recipients using nostr: mentions (e.g., nostr:npub1...) or the recipient selector above': + 'Add recipients using nostr: mentions (e.g., nostr:npub1...) or the recipient selector above', + 'Add the source (where this text is from)': 'Add the source (where this text is from)', + 'Add to favorites': 'Add to favorites', + 'Add {{count}} Selected': 'Add {{count}} Selected', + 'Added at': 'Added at', + 'Added {{count}} relay(s)': 'Added {{count}} relay(s)', + 'Adding...': 'Adding...', + 'Adding…': 'Adding…', + 'Advanced Options': 'Advanced Options', + 'All Topics': 'All Topics', + 'All favorite relays': 'All favorite relays', + 'All feeds from OPML file are already added': 'All feeds from OPML file are already added', + 'All items deleted successfully': 'All items deleted successfully', + 'Already blocked': 'Already blocked', + 'Already saved': 'Already saved', + 'Application Recommendations': 'Application Recommendations', + 'Are you sure you want to clear all cached data? This will delete all stored events and settings from your browser.': + 'Are you sure you want to clear all cached data? This will delete all stored events and settings from your browser.', + 'Are you sure you want to delete all items from this store?': + 'Are you sure you want to delete all items from this store?', + 'Are you sure you want to unmute this user? This will restore the follow button.': + 'Are you sure you want to unmute this user? This will restore the follow button.', + "Are you sure you want to unregister the service worker? This will clear this app's service worker caches and you will need to reload the page.": + "Are you sure you want to unregister the service worker? This will clear this app's service worker caches and you will need to reload the page.", + 'Article exported as AsciiDoc': 'Article exported as AsciiDoc', + 'Article exported as Markdown': 'Article exported as Markdown', + 'Article title (optional)': 'Article title (optional)', + Audio: 'Audio', + Author: 'Author', + 'Author is required for reading groups': 'Author is required for reading groups', + 'Author name (optional)': 'Author name (optional)', + Authors: 'Authors', + 'Block Relay': 'Block Relay', + 'Blocked Relays': 'Blocked Relays', + 'Blocking...': 'Blocking...', + Blossom: 'Blossom', + Book: 'Book', + 'Brief description of the event': 'Brief description of the event', + 'Brief summary (optional)': 'Brief summary (optional)', + 'Brief summary of the article (optional)': 'Brief summary of the article (optional)', + 'Browse Cache': 'Browse Cache', + 'C-Tag': 'C-Tag', + 'Cache Relays': 'Cache Relays', + 'Cache cleared successfully': 'Cache cleared successfully', + 'Cache refreshed successfully': 'Cache refreshed successfully', + 'Cache relays are used to store and retrieve events locally. These relays are merged with your inbox and outbox relays.': + 'Cache relays are used to store and retrieve events locally. These relays are merged with your inbox and outbox relays.', + 'Cache relays must be local network URLs only (e.g., ws://localhost:4869 or ws://127.0.0.1:4869)': + 'Cache relays must be local network URLs only (e.g., ws://localhost:4869 or ws://127.0.0.1:4869)', + 'Cache relays saved': 'Cache relays saved', + Cancelled: 'Cancelled', + Chapter: 'Chapter', + 'Chapter Title': 'Chapter Title', + 'Chapter title (optional)': 'Chapter title (optional)', + Citation: 'Citation', + 'Citation title (optional)': 'Citation title (optional)', + 'Clean up duplicate replaceable events? This will keep only the newest version of each event.': + 'Clean up duplicate replaceable events? This will keep only the newest version of each event.', + 'Cleaned up {{deleted}} duplicate entries, kept {{kept}}': + 'Cleaned up {{deleted}} duplicate entries, kept {{kept}}', + 'Cleaned up {{deleted}} duplicate entries, kept {{kept}} (total items after cleanup: {{total}})': + 'Cleaned up {{deleted}} duplicate entries, kept {{kept}} (total items after cleanup: {{total}})', + 'Cleanup Duplicates': 'Cleanup Duplicates', + Clear: 'Clear', + 'Clear Cache': 'Clear Cache', + 'Clear Service Worker': 'Clear Service Worker', + 'Clear cached data stored in your browser, including IndexedDB events, localStorage settings, and service worker caches.': + 'Clear cached data stored in your browser, including IndexedDB events, localStorage settings, and service worker caches.', + 'Click update to get the latest features and improvements': + 'Click update to get the latest features and improvements', + Close: 'Close', + 'Comma or space-separated topics (will be added as t-tags)': + 'Comma or space-separated topics (will be added as t-tags)', + Command: 'Command', + Configure: 'Configure', + 'Connect Wallet': 'Connect Wallet', + 'Console Logs': 'Console Logs', + 'Console logs cleared': 'Console logs cleared', + 'Content is required': 'Content is required', + 'Content must be 5000 characters or less': 'Content must be 5000 characters or less', + Controversial: 'Controversial', + 'Copied!': 'Copied!', + 'Copy to clipboard': 'Copy to clipboard', + 'Create Article': 'Create Article', + 'Create Citation': 'Create Citation', + 'Create Highlight': 'Create Highlight', + 'Create New Thread': 'Create New Thread', + 'Create Poll': 'Create Poll', + 'Create Thread': 'Create Thread', + 'Create a Spell': 'Create a Spell', + 'Creating...': 'Creating...', + 'D-Tag': 'D-Tag', + 'D-Tag is required for articles': 'D-Tag is required for articles', + DOI: 'DOI', + 'Date-based (all-day)': 'Date-based (all-day)', + 'Default expiration (months)': 'Default expiration (months)', + 'Default quiet period (days)': 'Default quiet period (days)', + 'Delete All': 'Delete All', + 'Delete item': 'Delete item', + 'Deleted {{count}} event(s)': 'Deleted {{count}} event(s)', + 'Deletion request sent': 'Deletion request sent', + 'Description (content)': 'Description (content)', + 'Digital Object Identifier (optional)': 'Digital Object Identifier (optional)', + 'Disable word wrap': 'Disable word wrap', + 'Discovered Relays': 'Discovered Relays', + 'Discovering relays...': 'Discovering relays...', + Discussion: 'Discussion', + Discussions: 'Discussions', + Downvote: 'Downvote', + 'Edited by': 'Edited by', + Editor: 'Editor', + 'Editor name (optional)': 'Editor name (optional)', + 'Enable word wrap': 'Enable word wrap', + 'End date': 'End date', + 'End date must be after start date': 'End date must be after start date', + 'Enter a Nostr event identifier (nevent, naddr, note, or hex ID) OR a web URL (https://). Not both.': + 'Enter a Nostr event identifier (nevent, naddr, note, or hex ID) OR a web URL (https://). Not both.', + 'Enter a descriptive title for your thread': 'Enter a descriptive title for your thread', + 'Enter the author name': 'Enter the author name', + 'Enter the book title': 'Enter the book title', + 'Enter the specific text you want to highlight in the main content area above': + 'Enter the specific text you want to highlight in the main content area above', + 'Event IDs (ids)': 'Event IDs (ids)', + 'Event appears to be invalid or corrupted': 'Event appears to be invalid or corrupted', + 'Event has no value data': 'Event has no value data', + 'Event is missing required fields: {{fields}}': 'Event is missing required fields: {{fields}}', + 'Event type': 'Event type', + 'Expiration Tags': 'Expiration Tags', + 'Export OPML': 'Export OPML', + 'Export as AsciiDoc': 'Export as AsciiDoc', + 'Export as Markdown': 'Export as Markdown', + 'External Citation': 'External Citation', + 'External Citation Settings': 'External Citation Settings', + 'Failed to add relay. Please try again.': 'Failed to add relay. Please try again.', + 'Failed to add relays': 'Failed to add relays', + 'Failed to block relay. Please try again.': 'Failed to block relay. Please try again.', + 'Failed to cleanup duplicates': 'Failed to cleanup duplicates', + 'Failed to clear cache': 'Failed to clear cache', + 'Failed to copy': 'Failed to copy', + 'Failed to create relay set. Please try again.': + 'Failed to create relay set. Please try again.', + 'Failed to create thread': 'Failed to create thread', + 'Failed to create thread. Please try a different relay.': + 'Failed to create thread. Please try a different relay.', + 'Failed to delete all items': 'Failed to delete all items', + 'Failed to delete item': 'Failed to delete item', + 'Failed to discover relays': 'Failed to discover relays', + 'Failed to export OPML file': 'Failed to export OPML file', + 'Failed to export article': 'Failed to export article', + 'Failed to import OPML file: {{error}}': 'Failed to import OPML file: {{error}}', + 'Failed to load RSS feeds': 'Failed to load RSS feeds', + 'Failed to load store items': 'Failed to load store items', + 'Failed to mute user privately': 'Failed to mute user privately', + 'Failed to mute user publicly': 'Failed to mute user publicly', + 'Failed to pin note': 'Failed to pin note', + 'Failed to publish post': 'Failed to publish post', + 'Failed to publish reply': 'Failed to publish reply', + 'Failed to publish thread': 'Failed to publish thread', + 'Failed to publish to some relays. Please try again or use different relays.': + 'Failed to publish to some relays. Please try again or use different relays.', + 'Failed to save RSS feeds': 'Failed to save RSS feeds', + 'Failed to save cache relays': 'Failed to save cache relays', + 'Failed to save relay list': 'Failed to save relay list', + 'Failed to unregister service worker: ': 'Failed to unregister service worker: ', + 'Failed to unsubscribe from topic': 'Failed to unsubscribe from topic', + Favorite: 'Favorite', + Fetch: 'Fetch', + 'Fetch once, then stop.': 'Fetch once, then stop.', + 'Filter by': 'Filter by', + 'Flat View': 'Flat View', + 'Font size': 'Font size', + 'Full Quote/Context': 'Full Quote/Context', + 'Full-text search query': 'Full-text search query', + Geohash: 'Geohash', + 'Geohash (optional)': 'Geohash (optional)', + 'Global quiet mode': 'Global quiet mode', + 'Group discussions by topic': 'Group discussions by topic', + 'Grouped View': 'Grouped View', + Groups: 'Groups', + 'Handler {{index}}': 'Handler {{index}}', + 'Hardcopy Citation': 'Hardcopy Citation', + 'Hardcopy Citation Settings': 'Hardcopy Citation Settings', + Hide: 'Hide', + 'Hide interactions on all posts': 'Hide interactions on all posts', + 'Hide interactions on posts with quiet tags': 'Hide interactions on posts with quiet tags', + 'High PoW': 'High PoW', + 'Higher values make your thread harder to mine but more unique.': + 'Higher values make your thread harder to mine but more unique.', + Highlight: 'Highlight', + 'Highlight Settings': 'Highlight Settings', + 'How to Create a Highlight (NIP-84)': 'How to Create a Highlight (NIP-84)', + 'Human-readable spell name': 'Human-readable spell name', + 'Image URL': 'Image URL', + 'Import OPML': 'Import OPML', + 'Imported {{count}} feed(s) from OPML file': 'Imported {{count}} feed(s) from OPML file', + 'In-Browser Cache': 'In-Browser Cache', + Insert: 'Insert', + 'Insert URL into your post and publish to Nostr GIF library (NIP-94).': + 'Insert URL into your post and publish to Nostr GIF library (NIP-94).', + 'Insert event or address': 'Insert event or address', + 'Insert mention': 'Insert mention', + 'Internal Citation': 'Internal Citation', + 'Internal Citation Settings': 'Internal Citation Settings', + 'Invalid Event': 'Invalid Event', + 'Invalid Lightning Address': 'Invalid Lightning Address', + 'Invalid Lightning Address. Please enter a valid Lightning Address or LNURL.': + 'Invalid Lightning Address. Please enter a valid Lightning Address or LNURL.', + 'Invalid URL': 'Invalid URL', + 'Invalid content JSON': 'Invalid content JSON', + 'Invalid relay URL': 'Invalid relay URL', + 'Invalid source. Please enter a note ID, nevent, naddr, hex ID, or URL.': + 'Invalid source. Please enter a note ID, nevent, naddr, hex ID, or URL.', + 'Item deleted successfully': 'Item deleted successfully', + JSON: 'JSON', + 'Join link': 'Join link', + 'Journal/Publication name (optional)': 'Journal/Publication name (optional)', + Json: 'JSON', + Kinds: 'Kinds', + 'Language Model': 'Language Model', + Large: 'Large', + 'Leave empty for HiveTalk, or paste Zoom / Teams / other link': + 'Leave empty for HiveTalk, or paste Zoom / Teams / other link', + 'Lightning payment failed': 'Lightning payment failed', + Limit: 'Limit', + 'Live feed; keeps updating.': 'Live feed; keeps updating.', + 'Loading more...': 'Loading more...', + 'Loading relays...': 'Loading relays...', + 'Location (optional)': 'Location (optional)', + 'Log in to run this spell (it uses $me or $contacts).': + 'Log in to run this spell (it uses $me or $contacts).', + 'Login failed': 'Login failed', + 'Login to configure RSS feeds': 'Login to configure RSS feeds', + 'Long-form Article': 'Long-form Article', + 'Mailbox relays saved': 'Mailbox relays saved', + 'Mark as NSFW': 'Mark as NSFW', + 'Maximum {{max}} invitees': 'Maximum {{max}} invitees', + 'Maximum {{max}} invitees allowed': 'Maximum {{max}} invitees allowed', + Medium: 'Medium', + Mode: 'Mode', + 'Most Zapped': 'Most Zapped', + 'Move to top': 'Move to top', + 'Multiple choice': 'Multiple choice', + 'Mute failed': 'Mute failed', + NSFW: 'NSFW', + Name: 'Name', + 'Name of the language model used': 'Name of the language model used', + 'New External Citation': 'New External Citation', + 'New Hardcopy Citation': 'New Hardcopy Citation', + 'New Highlight': 'New Highlight', + 'New Internal Citation': 'New Internal Citation', + 'New Long-form Article': 'New Long-form Article', + 'New Poll': 'New Poll', + 'New Prompt Citation': 'New Prompt Citation', + 'New Public Message': 'New Public Message', + 'New Wiki Article': 'New Wiki Article', + 'New Wiki Article (Markdown)': 'New Wiki Article (Markdown)', + Newest: 'Newest', + 'No JSON available': 'No JSON available', + 'No RSS feeds found in OPML file': 'No RSS feeds found in OPML file', + 'No cached data found.': 'No cached data found.', + 'No console logs captured yet': 'No console logs captured yet', + 'No events found': 'No events found', + 'No feeds configured. Default feed will be used.': + 'No feeds configured. Default feed will be used.', + 'No feeds to export': 'No feeds to export', + 'No groups available. Join some groups first.': 'No groups available. Join some groups first.', + 'No items in this store.': 'No items in this store.', + 'No items match your search.': 'No items match your search.', + 'No logs match the current filters': 'No logs match the current filters', + 'No posts found': 'No posts found', + 'No posts match your search': 'No posts match your search', + 'No relays available. Please configure relays in settings.': + 'No relays available. Please configure relays in settings.', + 'No service workers or caches found for this app': + 'No service workers or caches found for this app', + 'No users found': 'No users found', + 'No valid RSS feed URLs found in OPML file': 'No valid RSS feed URLs found in OPML file', + 'Note pinned': 'Note pinned', + 'Note unpinned': 'Note unpinned', + Oldest: 'Oldest', + 'Open Timestamp': 'Open Timestamp', + 'Opens in a new tab. Copy a GIF URL there, then paste below. If this picker closed, click “Insert GIF” again to paste.': + 'Opens in a new tab. Copy a GIF URL there, then paste below. If this picker closed, click “Insert GIF” again to paste.', + Option: 'Option', + Optional: 'Optional', + 'Optional image for the event': 'Optional image for the event', + 'Optionally, add the full quote/context to show your highlight within it': + 'Optionally, add the full quote/context to show your highlight within it', + PM: 'PM', + 'Page Range': 'Page Range', + Pages: 'Pages', + 'Paste URL of a GIF': 'Paste URL of a GIF', + 'Paste the entire original passage that contains your highlight': + 'Paste the entire original passage that contains your highlight', + Photo: 'Photo', + 'Picture Note': 'Picture Note', + 'Pin note': 'Pin note', + 'Plain text description of the query': 'Plain text description of the query', + 'Please login to view bookmarks': 'Please login to view bookmarks', + 'Please select a group': 'Please select a group', + 'Please select at least one relay': 'Please select at least one relay', + 'Please set a start date': 'Please set a start date', + 'Poll with no options': 'Poll with no options', + 'Post published to some relays': 'Post published to some relays', + 'Posts will automatically include expiration tags': + 'Posts will automatically include expiration tags', + 'Posts will automatically include quiet tags': 'Posts will automatically include quiet tags', + 'Posts will be quiet for this many days': 'Posts will be quiet for this many days', + 'Posts will expire after this many months': 'Posts will expire after this many months', + 'Processing...': 'Processing...', + 'Profile event not available': 'Profile event not available', + 'Prompt Citation': 'Prompt Citation', + 'Prompt Citation Settings': 'Prompt Citation Settings', + 'Prompt Conversation Script': 'Prompt Conversation Script', + 'Proof of Work': 'Proof of Work', + 'Publish to Relays': 'Publish to Relays', + 'Published By': 'Published By', + 'Published In': 'Published In', + 'Published On': 'Published On', + 'Published in': 'Published in', + 'Published on': 'Published on', + 'Publisher name (optional)': 'Publisher name (optional)', + 'Quiet Tags': 'Quiet Tags', + 'RSS Feed': 'RSS Feed', + 'RSS Feed Settings': 'RSS Feed Settings', + 'RSS Feeds': 'RSS Feeds', + 'RSS feeds exported to OPML file': 'RSS feeds exported to OPML file', + 'RSS feeds saved': 'RSS feeds saved', + 'Rate limited. Please wait before trying again.': + 'Rate limited. Please wait before trying again.', + 'Reaction published': 'Reaction published', + 'Reaction removed': 'Reaction removed', + 'Read full article': 'Read full article', + 'Reading group entry': 'Reading group entry', + 'Readings Options': 'Readings Options', + Recipients: 'Recipients', + 'Recipients detected from your message:': 'Recipients detected from your message:', + 'Recommended Relays': 'Recommended Relays', + 'Recommended applications for handling events of kind {{kind}}': + 'Recommended applications for handling events of kind {{kind}}', + 'Reference to the cited Nostr event in kind:pubkey:hex format': + 'Reference to the cited Nostr event in kind:pubkey:hex format', + 'Refresh Cache': 'Refresh Cache', + 'Refreshing posts...': 'Refreshing posts...', + 'Relative: 7d, 24h, 1w, 1mo, 1y. Or Unix timestamp.': + 'Relative: 7d, 24h, 1w, 1mo, 1y. Or Unix timestamp.', + Relay: 'Relay', + 'Relay Hint': 'Relay Hint', + 'Relay URL (optional)': 'Relay URL (optional)', + 'Relay blocked successfully': 'Relay blocked successfully', + 'Relay requires authentication for write access. Please try a different relay or contact the relay operator.': + 'Relay requires authentication for write access. Please try a different relay or contact the relay operator.', + 'Relay set options': 'Relay set options', + 'Remove from favorites': 'Remove from favorites', + Rendered: 'Rendered', + 'Reply published': 'Reply published', + 'Reply published to some relays': 'Reply published to some relays', + 'Reply to Public Message': 'Reply to Public Message', + 'Republish to all active relays': 'Republish to all active relays', + 'Republish to all available relays': 'Republish to all available relays', + 'Required: start (or start date), invitees. Optional: title, end, location, summary, topics, image.': + 'Required: start (or start date), invitees. Optional: title, end, location, summary, topics, image.', + 'Required: start time or start date. Optional: title, end, location, summary, topics, image.': + 'Required: start time or start date. Optional: title, end, location, summary, topics, image.', + 'Required: start time, invitees. Join link defaults to HiveTalk. Optional: title, end, summary, topics, image.': + 'Required: start time, invitees. Join link defaults to HiveTalk. Optional: title, end, summary, topics, image.', + 'Required: start time. Join link defaults to HiveTalk. Optional: title, end, summary, topics, image.': + 'Required: start time. Join link defaults to HiveTalk. Optional: title, end, summary, topics, image.', + 'Respect quiet tags': 'Respect quiet tags', + 'Search (NIP-50)': 'Search (NIP-50)', + 'Search by name or npub…': 'Search by name or npub…', + 'Search calendar, publications, wiki…': 'Search calendar, publications, wiki…', + 'Search for user…': 'Search for user…', + 'Search items...': 'Search items...', + 'Search logs...': 'Search logs...', + 'Search notes, threads, long-form…': 'Search notes, threads, long-form…', + 'Search on GifBuddy': 'Search on GifBuddy', + 'Search posts...': 'Search posts...', + 'Search threads by title, content, tags, npub, author...': + 'Search threads by title, content, tags, npub, author...', + 'Searching all available relays...': 'Searching all available relays...', + 'Searching…': 'Searching…', + 'See reference': 'See reference', + 'Select Group': 'Select Group', + 'Select Media Type': 'Select Media Type', + 'Select group...': 'Select group...', + 'Select relays': 'Select relays', + 'Select the group where you want to create this discussion.': + 'Select the group where you want to create this discussion.', + 'Select topic...': 'Select topic...', + 'Selected text': 'Selected text', + 'Send Public Message': 'Send Public Message', + 'Send a Lightning payment to this user': 'Send a Lightning payment to this user', + 'Service worker caches cleared. Please reload the page.': + 'Service worker caches cleared. Please reload the page.', + 'Service worker unregistered and caches cleared. Please reload the page.': + 'Service worker unregistered and caches cleared. Please reload the page.', + 'Service worker unregistered. Please reload the page.': + 'Service worker unregistered. Please reload the page.', + 'Share your thoughts, ask questions, or start a discussion...': + 'Share your thoughts, ask questions, or start a discussion...', + 'Short Video Note': 'Short Video Note', + 'Show RSS Feed': 'Show RSS Feed', + 'Show all discussions in a single list': 'Show all discussions in a single list', + 'Show less': 'Show less', + Since: 'Since', + Small: 'Small', + 'Some relays have temporarily disabled writes.': + 'Some relays have temporarily disabled writes.', + Source: 'Source', + 'Spell definition': 'Spell definition', + 'Spell published': 'Spell published', + 'Start date': 'Start date', + 'Start typing to see a preview...': 'Start typing to see a preview...', + 'Subject (Book Title)': 'Subject (Book Title)', + 'Subject (book title) is required for reading groups': + 'Subject (book title) is required for reading groups', + 'Subject / Topics': 'Subject / Topics', + Subscribe: 'Subscribe', + Subscribed: 'Subscribed', + 'Subscribed to topic': 'Subscribed to topic', + 'Subscribed to topic (local)': 'Subscribed to topic (local)', + 'Subscribing...': 'Subscribing...', + Summary: 'Summary', + 'Supported Event Types': 'Supported Event Types', + 'Take a note': 'Take a note', + 'The full prompt conversation (optional)': 'The full prompt conversation (optional)', + 'The main editor above should contain only the text you want to highlight. This field should contain the full quote or paragraph for context.': + 'The main editor above should contain only the text you want to highlight. This field should contain the full quote or paragraph for context.', + 'These relays were found from your NIP-05 identifier and signer. You can add them to your relay list.': + 'These relays were found from your NIP-05 identifier and signer. You can add them to your relay list.', + 'This file could be either audio or video. Please select the correct type:': + 'This file could be either audio or video. Please select the correct type:', + 'This store does not contain replaceable events': + 'This store does not contain replaceable events', + 'This will add additional tags for author and subject to help organize reading group discussions.': + 'This will add additional tags for author and subject to help organize reading group discussions.', + 'Thread Content': 'Thread Content', + 'Thread Title': 'Thread Title', + 'Thread creation timed out. Please try again.': 'Thread creation timed out. Please try again.', + 'Thread published': 'Thread published', + 'Threads are organized by topics. Choose a topic that best fits your discussion.': + 'Threads are organized by topics. Choose a topic that best fits your discussion.', + 'Time-based': 'Time-based', + 'Title is required': 'Title is required', + 'Title must be 100 characters or less': 'Title must be 100 characters or less', + 'To translate notes and other content, use your browser’s built-in translation. For example: right-click the page and choose “Translate to…”, or use the translate icon in the address bar.': + 'To translate notes and other content, use your browser’s built-in translation. For example: right-click the page and choose “Translate to…”, or use the translate icon in the address bar.', + Top: 'Top', + Topic: 'Topic', + URL: 'URL', + 'URL of the article cover image (optional)': 'URL of the article cover image (optional)', + 'Unique identifier for this article (required)': + 'Unique identifier for this article (required)', + 'Unmute failed': 'Unmute failed', + 'Unpin note': 'Unpin note', + Unsubscribe: 'Unsubscribe', + 'Unsubscribed from topic': 'Unsubscribed from topic', + 'Unsubscribing...': 'Unsubscribing...', + Until: 'Until', + Untitled: 'Untitled', + Update: 'Update', + 'Updating...': 'Updating...', + 'Upload Audio Comment': 'Upload Audio Comment', + 'Upload Audio Message': 'Upload Audio Message', + 'Upload Media': 'Upload Media', + Upvote: 'Upvote', + 'User unmuted': 'User unmuted', + 'Version number (optional)': 'Version number (optional)', + Video: 'Video', + 'Video Note': 'Video Note', + 'Video file': 'Video file', + 'View Console Logs': 'View Console Logs', + 'View JSON': 'View JSON', + 'View cached items in this store.': 'View cached items in this store.', + 'View definition': 'View definition', + 'View details about cached data in IndexedDB stores. Click on a store to view its items.': + 'View details about cached data in IndexedDB stores. Click on a store to view its items.', + 'View on Alexandria': 'View on Alexandria', + 'View on DecentNewsroom': 'View on DecentNewsroom', + 'View on Wikistr': 'View on Wikistr', + 'View recent console logs for debugging': 'View recent console logs for debugging', + 'Voice Comment': 'Voice Comment', + 'Voice Note': 'Voice Note', + 'Voice note or audio file': 'Voice note or audio file', + Volume: 'Volume', + 'Volume number (optional)': 'Volume number (optional)', + 'Vote published': 'Vote published', + 'Vote removed': 'Vote removed', + 'Website where LLM was accessed (optional)': 'Website where LLM was accessed (optional)', + 'Wiki Article (AsciiDoc)': 'Wiki Article (AsciiDoc)', + 'Wiki Article (Markdown)': 'Wiki Article (Markdown)', + 'You can only delete your own notes': 'You can only delete your own notes', + 'You must be logged in to create a thread': 'You must be logged in to create a thread', + 'You need to add at least one media server in order to upload media files.': + 'You need to add at least one media server in order to upload media files.', + 'You need to login first': 'You need to login first', + 'Your account is blocked from posting to this relay.': + 'Your account is blocked from posting to this relay.', + Zap: 'Zap', + 'Zap failed': 'Zap failed', + created_at: 'created_at', + 'e tag of kind 1040 event (optional)': 'e tag of kind 1040 event (optional)', + 'e.g. meetup, conference': 'e.g. meetup, conference', + 'e.g., 123-145 (optional)': 'e.g., 123-145 (optional)', + 'e.g., GPT-4, Claude, etc. (required)': 'e.g., GPT-4, Claude, etc. (required)', + 'e.g., my-article-title': 'e.g., my-article-title', + entries: 'entries', + 'from Bunker': 'from Bunker', + 'from Extension': 'from Extension', + 'from NIP-05': 'from NIP-05', + general: 'general', + 'https://example.com (required)': 'https://example.com (required)', + 'https://example.com/image.jpg': 'https://example.com/image.jpg', + id: 'id', + items: 'items', + kind: 'kind', + 'kind:pubkey:hex format (required)': 'kind:pubkey:hex format (required)', + 'last updated': 'last updated', + matching: 'matching', + naddr: 'naddr', + nevent: 'nevent', + 'nevent1..., naddr1..., note1..., hex ID, or https://...': + 'nevent1..., naddr1..., note1..., hex ID, or https://...', + 'no notes found': 'no notes found', + of: 'of', + 'on note': 'on note', + optional: 'optional', + pubkey: 'pubkey', + 'sent a public message': 'sent a public message', + 'sent you a public message': 'sent you a public message', + 'sent you a public message (along with {{count}} others)': + 'sent you a public message (along with {{count}} others)', + sig: 'sig', + 'started a discussion in {{topic}}': 'started a discussion in {{topic}}', + tags: 'tags', + thread: 'thread', + threads: 'threads', + 'topic1, topic2, topic3': 'topic1, topic2, topic3', + '{{count}} relay(s) selected': '{{count}} relay(s) selected', + '🔞 NSFW 🔞': '🔞 NSFW 🔞' } } diff --git a/src/i18n/locales/ko.ts b/src/i18n/locales/ko.ts index ffa7e28e..5965ffcb 100644 --- a/src/i18n/locales/ko.ts +++ b/src/i18n/locales/ko.ts @@ -5,8 +5,12 @@ export default { 'New Note': '새 노트 작성', Post: '노트 게시', Home: '홈', + Feed: 'Feed', + 'Favorites Feed': 'Favorites Feed', + 'Pinned note': 'Pinned note', 'Relay settings': '릴레이 설정', Settings: '설정', + 'Account menu': 'Account menu', SidebarRelays: '릴레이', Refresh: '새로고침', Profile: '프로필', @@ -30,6 +34,12 @@ export default { 'loading...': '로딩 중...', 'Loading...': '로딩 중...', 'no more notes': '더 이상 노트 없음', + 'calendar entries': 'calendar entries', + 'Loading calendar events...': 'Loading calendar events...', + 'No calendar events found': 'No calendar events found', + 'Calendar events in the next {{count}} months': 'Calendar events in the next {{count}} months', + 'The nostr.band relay appears to be temporarily out of service. Please try again later.': + 'The nostr.band relay appears to be temporarily out of service. Please try again later.', 'reply to': '답글', reply: '답글', Reply: '답글', @@ -37,6 +47,9 @@ export default { 'Write something...': '무엇인가 작성하세요...', Cancel: '취소', Mentions: '멘션', + 'Search for event or address…': 'Search for event or address…', + 'Search notes…': 'Search notes…', + 'No notes found': 'No notes found', 'Failed to post': '게시 실패', 'Post successful': '게시 성공', 'Your post has been published': '게시물이 게시되었습니다', @@ -45,7 +58,22 @@ export default { Quote: '인용', 'Copy event ID': '이벤트 ID 복사', 'Copy user ID': '사용자 ID 복사', + 'Send public message': 'Send public message', 'View raw event': '원본 이벤트 보기', + 'Edit this event': 'Edit this event', + 'Clone or fork this event': 'Clone or fork this event', + 'Event kind': 'Event kind', + 'Note content': 'Note content', + Publish: 'Publish', + 'Post published': 'Post published', + 'Edit content and tags, then publish a new signed event.': + 'Edit content and tags, then publish a new signed event.', + 'Log in to publish': 'Log in to publish', + 'Set when you publish': 'set when you publish', + 'id and sig are assigned when you publish': 'id and sig are assigned when you publish', + 'Published to some relays only': 'Published to some relays only', + 'Add field': 'Add field', + 'View full profile': 'View full profile', Like: '좋아요', 'switch to light theme': '라이트 테마로 전환', 'switch to dark theme': '다크 테마로 전환', @@ -56,18 +84,143 @@ export default { "username's used relays": '{{username}}님이 사용하는 릴레이', "username's muted": '{{username}}님이 차단한 사용자', Login: '로그인', + 'Please log in to view notifications.': 'Please log in to view notifications.', 'Follows you': '회원님을 팔로우함', 'Relay Settings': '릴레이 설정', + 'Relays and Storage Settings': 'Relays and Storage Settings', 'Relay set name': '릴레이 세트 이름', 'Add a new relay set': '새 릴레이 세트 추가', Add: '추가', 'n relays': '{{n}}개의 릴레이', Rename: '이름 변경', + 'Copy share link': 'Copy share link', + 'Copy address': 'Copy address', + 'Copy payto URI': 'Copy payto URI', + 'Copied payto address': 'Copied payto address', + 'Copied to clipboard': 'Copied to clipboard', + 'Copied {{label}} address': 'Copied {{label}} address', + 'Lightning payment address – copy to pay via your wallet': + 'Lightning payment address – copy to pay via your wallet', + 'Payment address – copy to use in your wallet or app': + 'Payment address – copy to use in your wallet or app', + 'Click to open payment options': 'Click to open payment options', + 'Click to copy address': 'Click to copy address', + 'Open on website': 'Open on website', + 'Raw profile event': 'Raw profile event', + 'Full profile event': 'Full profile event', + 'Event (JSON)': 'Event (JSON)', + 'Save full profile': 'Save full profile', + 'Add tag': 'Add tag', + 'Remove tag': 'Remove tag', + 'Tag name': 'Tag name', + Value: 'Value', + 'Add value to tag': 'Add value to tag', + 'Remove value': 'Remove value', + 'No tags. Click "Add tag" to add one.': 'No tags. Click "Add tag" to add one.', + 'Profile updated': 'Profile updated', + 'Failed to publish profile': 'Failed to publish profile', + 'Invalid profile JSON': 'Invalid profile JSON', + 'Refresh cache': 'Refresh cache', + 'Force-refresh profile and payment info from relays': + 'Force-refresh profile and payment info from relays', + 'Profile and payment cache refreshed': 'Profile and payment cache refreshed', + 'Failed to refresh cache': 'Failed to refresh cache', + 'Raw payment info event': 'Raw payment info event', + 'Payment info': 'Payment info', + 'Edit payment info': 'Edit payment info', + 'Add payment info': 'Add payment info', + 'No payment info event yet. Click "Add payment info" to create one.': + 'No payment info event yet. Click "Add payment info" to create one.', + 'Content (JSON)': 'Content (JSON)', + Tags: 'Tags', + 'Tags (JSON array of arrays, e.g. [["payto","lightning","user@domain.com"]])': + 'Tags (JSON array of arrays, e.g. [["payto","lightning","user@domain.com"]])', + 'Payment info updated': 'Payment info updated', + 'Failed to publish payment info': 'Failed to publish payment info', + 'Invalid tags JSON': 'Invalid tags JSON', + 'Payment methods': 'Payment methods', + 'NIP-A3 payto tags: type (e.g. lightning) and authority (e.g. user@domain.com).': + 'NIP-A3 payto tags: type (e.g. lightning) and authority (e.g. user@domain.com).', + 'Type (e.g. lightning)': 'Type (e.g. lightning)', + 'Authority (e.g. user@domain.com)': 'Authority (e.g. user@domain.com)', + 'Add payment method': 'Add payment method', + Remove: 'Remove', + 'Additional content (JSON)': 'Additional content (JSON)', + 'Show full event JSON': 'Show full event JSON', + 'Tag list': 'Tag list', + 'Profile event tags (e.g. lud16, nip05, website). Saved with kind 0.': + 'Profile event tags (e.g. lud16, nip05, website). Saved with kind 0.', + 'Tag value': 'Tag value', + 'Saving…': 'Saving…', 'Share with Jumble': 'Jumble로 공유', 'Share with Alexandria': 'Alexandria로 공유', + 'Start video call': 'Start video call', + 'Copy call invite link': 'Copy call invite link', + 'Start call about this': 'Start call about this', + 'Send call invite': 'Send call invite', + 'Join the video call': 'Join the video call', + 'Schedule video call': 'Schedule video call', + "You're invited to a scheduled video call.": "You're invited to a scheduled video call.", + 'Create a calendar event and send an invite. The recipient will see the event with a join link.': + 'Create a calendar event and send an invite. The recipient will see the event with a join link.', + 'Schedule a video call': 'Schedule a video call', + 'Create a calendar event and send kind 24 invites to each listed invitee.': + 'Create a calendar event and send kind 24 invites to each listed invitee.', + Invitees: 'Invitees', + 'Paste nostr:npub1... or nostr:nprofile1... (one or more)': + 'Paste nostr:npub1... or nostr:nprofile1... (one or more)', + 'Schedule and send invites': 'Schedule and send invites', + 'Add at least one invitee (paste nostr:npub or nostr:nprofile links)': + 'Add at least one invitee (paste nostr:npub or nostr:nprofile links)', + 'Scheduled call created and {{count}} invite(s) sent': + 'Scheduled call created and {{count}} invite(s) sent', + 'Join video call': 'Join video call', + 'Scheduled video call': 'Scheduled video call', + 'Video call': 'Video call', + 'Schedule and send invite': 'Schedule and send invite', + 'Scheduling…': 'Scheduling…', + 'Please set a start time': 'Please set a start time', + 'End time must be after start time': 'End time must be after start time', + 'Failed to schedule call': 'Failed to schedule call', + 'Scheduled call created and invite sent': 'Scheduled call created and invite sent', + RSVP: 'RSVP', + 'RSVP: {{status}}': 'RSVP: {{status}}', + Accepted: 'Accepted', + Tentative: 'Tentative', + Declined: 'Declined', + 'You need to log in to RSVP': 'You need to log in to RSVP', + 'RSVP updated': 'RSVP updated', + 'Failed to update RSVP': 'Failed to update RSVP', + Organizer: 'Organizer', + Attendees: 'Attendees', + 'No response': 'No response', + 'Calendar Events': 'Calendar Events', + 'Calendar Event': 'Calendar Event', + 'Schedule in-person meeting': 'Schedule in-person meeting', + 'Create a calendar event and send an invite. No video link — for real-life meetups, conferences, etc.': + 'Create a calendar event and send an invite. No video link — for real-life meetups, conferences, etc.', + "You're invited to an in-person meeting.": "You're invited to an in-person meeting.", + 'Meeting created and invite sent': 'Meeting created and invite sent', + 'Failed to create meeting': 'Failed to create meeting', + 'Create and send invite': 'Create and send invite', + 'Creating…': 'Creating…', + 'In-person meeting': 'In-person meeting', + Location: 'Location', + 'Address, venue, or place': 'Address, venue, or place', + Description: 'Description', + 'Optional notes': 'Optional notes', + 'Create a calendar event for a real-life meetup and send kind 24 invites to each invitee.': + 'Create a calendar event for a real-life meetup and send kind 24 invites to each invitee.', + 'Meeting created and {{count}} invite(s) sent': 'Meeting created and {{count}} invite(s) sent', + 'Create and send invites': 'Create and send invites', + Title: 'Title', + Start: 'Start', + End: 'End', Delete: '삭제', 'Relay already exists': '릴레이가 이미 존재합니다', 'invalid relay URL': '유효하지 않은 릴레이 주소', + 'Relay URL…': 'wss://… or relay host', + 'Open relay': 'Open relay', 'Add a new relay': '새 릴레이 추가', back: '뒤로', 'Lost in the void': '공허 속에서 길을 잃음', @@ -113,7 +266,19 @@ export default { 'Picture note requires images': '사진 노트에는 이미지가 필요합니다', Relays: '릴레이', Image: '이미지', - Normal: '일반', + 'Upload Image': 'Upload Image', + 'Insert emoji': 'Insert emoji', + 'Insert GIF': 'Insert GIF', + 'Search GIFs': 'Search GIFs', + 'Choose a GIF': 'Choose a GIF', + 'Search GifBuddy for more GIFs': 'Search GifBuddy for more GIFs', + 'Add your own GIFs': 'Add your own GIFs', + 'Description (optional, for search)': 'Description (optional, for search)', + 'e.g. happy birthday, thumbs up': 'e.g. happy birthday, thumbs up', + 'Uploading...': 'Uploading...', + 'No GIFs found. Try searching or add your own. GIFs come from Nostr kind 1063 (NIP-94) events on GIF relays.': + 'No GIFs found. Try searching or add your own. GIFs come from Nostr kind 1063 (NIP-94) events on GIF relays.', + '{{name}} is not a GIF file': '{{name}} is not a GIF file', 'R & W': '읽기/쓰기', Read: '읽기 전용', Write: '쓰기 전용', @@ -124,7 +289,6 @@ export default { Pull: '가져오기', 'Select all': '전체 선택', 'Relay Sets': '릴레이 세트', - Mailbox: '메일박스', 'Read & Write Relays': '읽기/쓰기 릴레이', 'read relays description': '읽기 릴레이는 회원님과 관련된 이벤트를 찾는 데 사용됩니다. 다른 사용자는 회원님이 보길 원하는 이벤트를 회원님의 읽기 릴레이에 게시합니다.', @@ -144,7 +308,6 @@ export default { 'Copy private key': '개인 키 복사', 'Enter the password to decrypt your ncryptsec': 'ncryptsec를 복호화할 비밀번호 입력', Back: '뒤로', - 'password (optional): encrypt nsec': '비밀번호(선택): nsec 암호화', 'optional: encrypt nsec': '선택: nsec 암호화', password: '비밀번호', 'Sign up': '회원가입', @@ -155,6 +318,9 @@ export default { Muted: '차단됨', Unmute: '차단 해제', 'Unmute user': '사용자 차단 해제', + Block: 'Block', + Unblock: 'Unblock', + blocked: 'blocked', 'Append n relays': '{{n}}개의 릴레이 추가', Append: '추가', 'Select relays to append': '추가할 릴레이 선택', @@ -179,6 +345,24 @@ export default { 'Explore more': '더 탐색하기', 'Payment page': '결제 페이지', 'Supported NIPs': '지원 NIP', + 'Relay liveliness (NIP-66)': 'Relay liveliness (NIP-66)', + 'Relay monitor (NIP-66)': 'Relay monitor (NIP-66)', + 'Auth required': 'Auth required', + 'Public (no auth)': 'Public (no auth)', + 'Payment required': 'Payment required', + 'No payment': 'No payment', + 'Writes required': 'Writes required', + 'Writes open': 'Writes open', + 'PoW required': 'PoW required', + 'No PoW': 'No PoW', + 'RTT open': 'RTT open', + 'RTT read': 'RTT read', + 'RTT write': 'RTT write', + 'Supported NIPs (from monitor)': 'Supported NIPs (from monitor)', + 'Last reported by monitor': 'Last reported by monitor', + Network: 'Network', + Type: 'Type', + Topics: 'Topics', 'Open in a': '{{a}}에서 열기', 'Cannot handle event of kind k': '{{k}} 유형의 이벤트를 처리할 수 없습니다', 'Sorry! The note cannot be found 😔': '죄송합니다! 해당 노트를 찾을 수 없습니다 😔', @@ -209,9 +393,22 @@ export default { 'Seen on': '출처', 'Temporarily display this reply': '이 답글 임시 표시', 'Note not found': '노트를 찾을 수 없음', + 'The note was not found on your relays or default relays.': + 'The note was not found on your relays or default relays.', + "Try searching author's relays": "Try searching author's relays", + 'Searching external relays...': 'Searching external relays...', + "This will connect to the author's relays and relay hints": + "This will connect to the author's relays and relay hints", + 'Note could not be found anywhere': 'Note could not be found anywhere', + 'Try external relays': 'Try external relays', + 'Searching...': 'Searching...', + 'Show relays': 'Show relays', + 'No external relay hints available': 'No external relay hints available', 'no more replies': '더 이상 답글 없음', 'Relay sets': '릴레이 세트', 'Favorite Relays': '즐겨찾는 릴레이', + 'Search for Relays': 'Search for Relays', + 'Using app default relays': 'Using app default relays', "Following's Favorites": '팔로잉의 즐겨찾기', 'no more relays': '더 이상 릴레이 없음', 'Favorited by': '즐겨찾기한 사람', @@ -227,10 +424,48 @@ export default { 'no bookmarks found': '북마크 없음', 'no more bookmarks': '더 이상 북마크 없음', Bookmarks: '북마크', + 'Follow Packs': 'Follow Packs', + 'Follow Pack': 'Follow Pack', + 'Please log in to follow': 'Please log in to follow', + 'Following All': 'Following All', + 'Followed {{count}} users': 'Followed {{count}} users', + 'All available members are already followed or muted': + 'All available members are already followed or muted', + 'You are already following all members of this pack': + 'You are already following all members of this pack', + 'Failed to follow pack': 'Failed to follow pack', + '{{count}} profiles': '{{count}} profiles', 'Show more': '더 보기', General: '일반', Autoplay: '자동 재생', 'Enable video autoplay on this device': '이 기기에서 비디오 자동 재생 활성화', + 'Add random relays to every publish': 'Random relays in publish list', + 'Add random relays to every publish description': + 'Adds {{n}} random public relays from the NIP-66 lively list (preferring monitors that reported a write RTT) to the publish relay list. When ON, they are selected by default; when OFF, they appear in the list but are unchecked so you can optionally include them.', + relayType_local: 'Local', + relayType_relay_list: 'Relay list', + relayType_client_default: 'Client default', + relayType_open_from: 'Current feed', + relayType_favorite: 'Favorite', + relayType_relay_set: 'Relay set', + relayType_contextual: 'Reply/PM', + relayType_randomly_selected: 'Random (optional)', + 'Session relays': 'Session relays', + 'Session relays tab description': + 'Relay logic for this session: working and striked preset relays, and scored random relays (used to prefer faster, proven relays when adding random relays to publish).', + 'Session relays preset working': 'Working preset relays', + 'Session relays preset working hint': + 'Preset relays (from app defaults) that have not reached 3 publish failures this session.', + 'Session relays preset striked': 'Striked preset relays', + 'Session relays preset striked hint': + 'Preset relays that have reached 3 publish failures this session and are skipped for the rest of the session.', + 'Session relays scored random': 'Scored random relays', + 'Session relays scored random hint': + 'Relays that have accepted at least one publish this session; used to prefer faster relays when picking random relays. Sorted by average latency.', + 'Session relays all striked': 'All striked relays (any source)', + successes: 'successes', + None: 'None', + 'Cache & offline storage': 'Cache & offline storage', 'Paste or drop media files to upload': '미디어 파일을 붙여넣거나 드래그하여 업로드', Preview: '미리보기', 'You are about to publish an event signed by [{{eventAuthorName}}]. You are currently logged in as [{{currentUsername}}]. Are you sure?': @@ -263,6 +498,7 @@ export default { 'Are you sure you want to reset your API key? This action cannot be undone.': 'API 키를 재설정하시겠습니까? 이 작업은 되돌릴 수 없습니다.', Warning: '경고', + 'Errors & warnings': 'Errors & warnings', 'Your current API key will become invalid immediately, and any applications using it will stop working until you update them with the new key.': '현재 API 키는 즉시 무효화되며, 새 키로 업데이트하기 전까지 관련 앱이 작동하지 않습니다.', 'Service address': '서비스 주소', @@ -294,6 +530,9 @@ export default { Article: '기사', Unfavorite: '즐겨찾기 취소', 'Recommended relays': '추천 릴레이', + 'Show recommended relays panel': 'Show recommended relays panel', + 'Display the right-side panel with recommended relays on desktop': + 'Display the right-side panel with recommended relays on desktop', 'Blossom server URLs': 'Blossom 서버 주소', 'You need to add at least one blossom server in order to upload media files.': '미디어 파일을 업로드하려면 최소한 하나의 Blossom 서버를 추가해야 합니다.', @@ -320,7 +559,31 @@ export default { 'Refresh results': '결과 새로 고침', Poll: '투표', Media: '미디어', + Interests: 'Interests', + Calendar: 'Calendar', + 'No subscribed interests yet.': + 'No subscribed interests yet. Add topics in settings to see them here.', + 'No bookmarked notes with id tags yet.': + 'No bookmarked notes with id tags yet. Only classic (e-tag) bookmarks load in this feed.', + 'No follows or relays to load yet.': 'No follows or relays to load yet.', + 'Nothing to load for this feed.': 'Nothing to load for this feed.', 'Republish to ...': '다시 게시 ...', + 'All available relays': 'All available relays', + 'All active relays (monitoring list)': 'All active relays (monitoring list)', + 'Successfully republish to all available relays': + 'Successfully republish to all available relays', + 'Failed to republish to all available relays: {{error}}': + 'Failed to republish to all available relays: {{error}}', + 'Successfully republish to all active relays': 'Successfully republish to all active relays', + 'Failed to republish to all active relays: {{error}}': + 'Failed to republish to all active relays: {{error}}', + 'No active relays in monitoring list': 'No active relays in monitoring list', + 'No relay accepted the event': 'No relay accepted the event', + 'No relays available': 'No relays available', + 'No write relays configured': 'No write relays configured', + 'Relay did not accept the event': 'Relay did not accept the event', + 'Only {{count}} relay(s) accepted the event; at least 5 required for "all active relays".': + 'Only {{count}} relay(s) accepted the event; at least 5 required for "all active relays".', 'Successfully republish to your write relays': '쓰기 릴레이에 성공적으로 다시 게시됨', 'Failed to republish to your write relays: {{error}}': '쓰기 릴레이에 다시 게시하지 못함: {{error}}', @@ -338,6 +601,7 @@ export default { 'No zaps yet': '아직 잽이 없습니다', 'No more boosts': '더 이상 부스트가 없습니다', 'No boosts yet': '아직 부스트가 없습니다', + 'n more boosts': '{{count}} more boosts', Boosts: '부스트', FollowListNotFoundConfirmation: '팔로우 목록을 찾을 수 없습니다. 새로 만드시겠습니까? 이전에 사용자를 팔로우한 적이 있다면 이 작업으로 인해 이전 팔로우 목록을 잃게 되므로 확인하지 마시기 바랍니다.', @@ -360,8 +624,13 @@ export default { 'Maybe Later': '나중에', "Don't remind me again": '다시 알리지 않기', Posts: '게시물', + 'Posts (OPs)': 'Posts (OPs)', + 'Kind 1 replies': 'Kind 1 replies', + Comments: 'Comments', + 'Replies & comments': 'Replies & comments', Articles: '기사', Highlights: '하이라이트', + 'A note from': 'A note from', Polls: '투표', 'Voice Posts': '음성 게시물', 'Photo Posts': '사진 게시물', @@ -387,6 +656,13 @@ export default { 'boosted your note': '당신의 노트를 부스트했습니다', 'zapped your note': '당신의 노트를 잽했습니다', 'zapped you': '당신을 잽했습니다', + zapped: 'zapped', + 'Invalid zap receipt': 'Invalid zap receipt', + 'Zapped note': 'Zapped note', + 'Zapped profile': 'Zapped profile', + 'Zap reply threshold': 'Zap reply threshold', + 'Zaps above this amount will appear as replies in threads': + 'Zaps above this amount will appear as replies in threads', 'Mark as read': '읽음으로 표시', Report: '신고', 'Successfully report': '신고가 성공적으로 완료되었습니다', @@ -401,7 +677,6 @@ export default { 'See extra info for each notification': '각 알림의 추가 정보 보기', 'See more notifications at a glance': '한눈에 더 많은 알림 보기', Detailed: '상세', - Compact: '간단', 'Submit Relay': '릴레이 제출', Homepage: '홈페이지', 'Proof of Work (difficulty {{minPow}})': '작업 증명 (난이도 {{minPow}})', @@ -428,6 +703,23 @@ export default { '{{count}} relays': '{{count}}개 릴레이', 'Republishing...': '다시 게시 중...', 'Trending Notes': '트렌딩 노트', + 'Trending on Your Favorite Relays': 'Trending on Your Favorite Relays', + 'Trending on the Default Relays': 'Trending on the Default Relays', + 'Latest from your follows': 'Latest from your follows', + 'Latest from our recommended follows': 'Latest from our recommended follows', + 'Loading follow list…': 'Loading follow list…', + 'Could not load recommended follows': 'Could not load recommended follows', + 'Your follow list is empty': 'Your follow list is empty', + 'Loading recent posts from follows…': 'Loading recent posts from follows…', + 'Loading more…': 'Loading more…', + 'No recent posts from this user in the current fetch': + 'No recent posts from this user in the current fetch', + 'Loading trending notes from your relays...': 'Loading trending notes from your relays...', + Sort: 'Sort', + newest: 'newest', + oldest: 'oldest', + 'most popular': 'most popular', + 'least popular': 'least popular', 'Connected to': '연결됨', 'Disconnect Wallet': '지갑 연결 해제', 'Are you absolutely sure?': '정말 확실합니까?', @@ -435,6 +727,690 @@ export default { Disconnect: '연결 해제', 'Set up your wallet to send and receive sats!': '사츠를 보내고 받을 수 있도록 지갑을 설정하세요!', - 'Set up': '설정하기' + 'Set up': '설정하기', + 'nested events': 'nested events', + 'Loading RSS feeds...': 'Loading RSS feeds...', + 'No RSS feed items available': 'No RSS feed items available', + 'Show or hide the RSS page and sidebar entry': 'Show or hide the RSS page and sidebar entry', + 'Refreshing feeds...': 'Refreshing feeds...', + 'All feeds': 'All feeds', + 'All time': 'All time', + 'Last hour': 'Last hour', + 'Last day': 'Last day', + 'Last week': 'Last week', + 'Last month': 'Last month', + 'No items match your filters': 'No items match your filters', + 'Search...': 'Search...', + '{{count}} feeds': '{{count}} feeds', + 'Toggle filters': 'Toggle filters', + 'Showing {{filtered}} of {{total}} items': 'Showing {{filtered}} of {{total}} items', + Full: 'Full', + Compact: '간단', + Expand: 'Expand', + 'help.title': 'Help', + 'help.tabShortcuts': 'Keyboard shortcuts', + 'help.tabOverview': 'App overview', + 'shortcuts.title': 'Keyboard shortcuts', + 'shortcuts.intro': + 'Shortcuts for this app and common browsing. Modifier combos are Shift+Alt+key (Option+Shift+key on macOS); either modifier order works when typing.', + 'shortcuts.sectionApp': 'This app', + 'shortcuts.sectionSearch': 'Search bar', + 'shortcuts.sectionStandard': 'Standard', + 'shortcuts.openHelp': 'Show this help', + 'shortcuts.or': 'or', + 'shortcuts.then': 'then', + 'shortcuts.focusPrimary': + 'Focus main column scroll (desktop; then arrow keys, Page Up/Down, Home/End)', + 'shortcuts.focusSecondary': + 'Focus side panel scroll when it is open (desktop; same keys to scroll)', + 'shortcuts.newNote': 'New note / post (after login if needed)', + 'shortcuts.searchSuggest': 'Move through suggestions', + 'shortcuts.searchDismiss': 'Close search dropdown', + 'shortcuts.tabNavigate': 'Move focus to the next or previous control', + 'shortcuts.activate': 'Activate buttons and many controls', + 'shortcuts.closeOverlays': 'Close dialogs, menus, and the search dropdown', + 'shortcuts.scrollWhenFocused': 'Scroll the focused scrollable area', + 'shortcuts.browserBack': 'Browser back (history)', + 'No spells yet. Create one with the button above.': + 'No spells yet. Create one with the button above.', + 'Loading spells from your relays…': 'Loading spells from your relays…', + 'Could not run this spell. Check that it has a valid REQ/COUNT command, or add write relays in settings.': + 'Could not run this spell. Check that it has a valid REQ/COUNT command, or add write relays in settings.', + 'Select a spell…': 'Select a spell…', + 'Spells from follows': 'From people you follow ({{count}})', + 'Other spells': 'Other spells ({{count}})', + 'Select a spell to view its feed.': 'Select a spell to view its feed.', + 'Add another row': 'Add another row', + 'Remove this row': 'Remove this row', + 'One kind number per row (e.g. 1 for notes).': 'One kind number per row (e.g. 1 for notes).', + 'One author per row: $me, $contacts, or hex pubkey / npub.': + 'One author per row: $me, $contacts, or hex pubkey / npub.', + 'One hex event id per row.': 'One hex event id per row.', + 'One wss:// URL per row. Leave empty to use your write relays.': + 'One wss:// URL per row. Leave empty to use your write relays.', + 'One topic per row.': 'One topic per row.', + topic: 'topic', + 'Spell form fields': 'Spell form fields', + 'Counting matching events…': 'Counting matching events…', + 'Edit spell': 'Edit spell', + 'Clone spell': 'Clone spell', + 'Spell cloned': 'Spell cloned', + 'Clone spell intro': + 'This spell is preloaded from another author’s definition. Change anything you like, then save to publish a new spell signed with your account.', + 'Spell updated': 'Spell updated', + 'Relay URL': 'Relay', + Count: 'Count', + 'Edit spell relays': 'Edit relays', + 'COUNT spell relay errors hint': + 'One or more relays failed or returned an error. You can change the relay list in the spell and save again.', + 'COUNT spell total distinct explanation': + 'Distinct matching event IDs across all relays that responded successfully (duplicates across relays removed). Each relay only returns up to the filter limit.', + 'Leave empty to use your write relays.': 'Leave empty to use your write relays.', + 'COUNT spell result explanation': + 'Distinct events returned for this filter (merged from your spell relays and default write relays, duplicates removed). Relays only return up to the filter limit.', + 'COUNT spell may be capped by limit': + 'This count may equal your spell limit — there could be more matching events on the network.', + 'Spell count failed. Check relays or try again.': + 'Could not complete the count. Check relays or try again.', + 'REQ returns a feed; COUNT returns a number.': + 'REQ: scrollable feed (choose live Feed or one-shot Fetch below). COUNT: a single number, no feed.', + listImportManualLabel: 'Pre-fill from event', + listImportFromEventHint: + 'Supported tags are merged into the form (e, p, t, relay, r, a where possible). Non-empty content is skipped; encrypted private items are not read. You may see notices for unmapped tags.', + listImportManualPlaceholder: '64-char hex, nevent1…, or naddr1…', + listImportLoadManual: 'Apply', + listImportContentSkipped: + 'This event has non-empty content (may include encrypted private items). Only public tags were merged.', + listImportUnsupportedEmoji: + 'This list includes emoji tags (NIP-30); those are not added to the spell filter.', + listImportUnsupportedTag: + 'Tags of type “{{tag}}” ({{count}}) are not mapped to spell filters yet.', + listImportBadATag: 'Could not parse address tag: {{preview}}…', + listImportATagNotFound: 'Could not resolve address tag: {{preview}}…', + listImportATagFailed: 'Failed to resolve address tag: {{preview}}…', + listImportEventNotFound: 'No event found for that reference.', + 'REQ tag filters': 'REQ tag filters', + spellFormTagFiltersLabel: 'Tag filters on matching events', + spellCreateIntro: + 'Spells are saved relay filters (NIP-A7). The “Spell query” section is the real definition; the dashed box at the bottom is only for names, descriptions, and catalog labels. Use $me for your pubkey and $contacts for your follow list when executing.', + spellFormSectionQueryTitle: 'Spell query', + spellFormSectionQueryHint: + 'This block is the actual spell definition: it becomes the Nostr REQ/COUNT filter (kinds, authors, time range, tag filters on matching events, relays, etc.).', + spellFormSectionMetadataTitle: 'Listing & labels (optional)', + spellFormSectionMetadataBadge: 'Not part of the query', + spellFormSectionMetadataHint: + 'Name, description, and topic labels are only for display and spell pickers. They are not used when the spell fetches events.', + spellFormCatalogTopicsLabel: 'Topic labels on this spell (t tags)', + spellTopicsMetadataHint: + 'One topic per row. To filter which notes you see, use “REQ tag filters” in the spell query above (letter “t”).', + spellTagFiltersHint: + 'Optional filters on subscribed events (NIP-01 single-letter tags). Example: letter “t”, values “bitcoin”.', + spellTagFiltersEmpty: 'No tag filters yet. Add rows below or apply an event reference above.', + 'Tag filter letter': 'Tag letter', + 'Filter value': 'Value', + 'Add tag filter': 'Add tag filter', + spellPickerSectionYours: 'Your spells', + 'Failed to remove spell from local storage': 'Failed to remove spell from local storage', + Spells: 'Spells', + 'doublePane.secondaryEmpty': 'Open a note, profile, or settings item to show it here.', + 'doublePane.secondaryEmptyHint': 'Your feed and primary pages stay on the left.', + '(empty)': '(empty)', + '12-hour (AM/PM)': '12-hour (AM/PM)', + '24-hour': '24-hour', + 'A new version is available': 'A new version is available', + 'A short description of the article content': 'A short description of the article content', + AM: 'AM', + 'Access via': 'Access via', + 'Accessed On': 'Accessed On', + 'Accessed on': 'Accessed on', + 'Add RSS feed URLs to subscribe to. If no feeds are configured, the default feed will be used.': + 'Add RSS feed URLs to subscribe to. If no feeds are configured, the default feed will be used.', + 'Add a relay to block': 'Add a relay to block', + 'Add at least one invitee': 'Add at least one invitee', + 'Add client identifier': 'Add client identifier', + 'Add expiration tags by default': 'Add expiration tags by default', + 'Add quiet tags by default': 'Add quiet tags by default', + 'Add recipients using nostr: mentions (e.g., nostr:npub1...) or the recipient selector above': + 'Add recipients using nostr: mentions (e.g., nostr:npub1...) or the recipient selector above', + 'Add the source (where this text is from)': 'Add the source (where this text is from)', + 'Add to favorites': 'Add to favorites', + 'Add {{count}} Selected': 'Add {{count}} Selected', + 'Added at': 'Added at', + 'Added {{count}} relay(s)': 'Added {{count}} relay(s)', + 'Adding...': 'Adding...', + 'Adding…': 'Adding…', + 'Advanced Options': 'Advanced Options', + 'All Topics': 'All Topics', + 'All favorite relays': 'All favorite relays', + 'All feeds from OPML file are already added': 'All feeds from OPML file are already added', + 'All items deleted successfully': 'All items deleted successfully', + 'Already blocked': 'Already blocked', + 'Already saved': 'Already saved', + 'Application Recommendations': 'Application Recommendations', + 'Are you sure you want to clear all cached data? This will delete all stored events and settings from your browser.': + 'Are you sure you want to clear all cached data? This will delete all stored events and settings from your browser.', + 'Are you sure you want to delete all items from this store?': + 'Are you sure you want to delete all items from this store?', + 'Are you sure you want to unmute this user? This will restore the follow button.': + 'Are you sure you want to unmute this user? This will restore the follow button.', + "Are you sure you want to unregister the service worker? This will clear this app's service worker caches and you will need to reload the page.": + "Are you sure you want to unregister the service worker? This will clear this app's service worker caches and you will need to reload the page.", + 'Article exported as AsciiDoc': 'Article exported as AsciiDoc', + 'Article exported as Markdown': 'Article exported as Markdown', + 'Article title (optional)': 'Article title (optional)', + Audio: 'Audio', + Author: 'Author', + 'Author is required for reading groups': 'Author is required for reading groups', + 'Author name (optional)': 'Author name (optional)', + Authors: 'Authors', + 'Block Relay': 'Block Relay', + 'Blocked Relays': 'Blocked Relays', + 'Blocking...': 'Blocking...', + Blossom: 'Blossom', + Book: 'Book', + 'Brief description of the event': 'Brief description of the event', + 'Brief summary (optional)': 'Brief summary (optional)', + 'Brief summary of the article (optional)': 'Brief summary of the article (optional)', + 'Browse Cache': 'Browse Cache', + 'C-Tag': 'C-Tag', + 'Cache Relays': 'Cache Relays', + 'Cache cleared successfully': 'Cache cleared successfully', + 'Cache refreshed successfully': 'Cache refreshed successfully', + 'Cache relays are used to store and retrieve events locally. These relays are merged with your inbox and outbox relays.': + 'Cache relays are used to store and retrieve events locally. These relays are merged with your inbox and outbox relays.', + 'Cache relays must be local network URLs only (e.g., ws://localhost:4869 or ws://127.0.0.1:4869)': + 'Cache relays must be local network URLs only (e.g., ws://localhost:4869 or ws://127.0.0.1:4869)', + 'Cache relays saved': 'Cache relays saved', + Cancelled: 'Cancelled', + Chapter: 'Chapter', + 'Chapter Title': 'Chapter Title', + 'Chapter title (optional)': 'Chapter title (optional)', + Citation: 'Citation', + 'Citation title (optional)': 'Citation title (optional)', + 'Clean up duplicate replaceable events? This will keep only the newest version of each event.': + 'Clean up duplicate replaceable events? This will keep only the newest version of each event.', + 'Cleaned up {{deleted}} duplicate entries, kept {{kept}}': + 'Cleaned up {{deleted}} duplicate entries, kept {{kept}}', + 'Cleaned up {{deleted}} duplicate entries, kept {{kept}} (total items after cleanup: {{total}})': + 'Cleaned up {{deleted}} duplicate entries, kept {{kept}} (total items after cleanup: {{total}})', + 'Cleanup Duplicates': 'Cleanup Duplicates', + Clear: 'Clear', + 'Clear Cache': 'Clear Cache', + 'Clear Service Worker': 'Clear Service Worker', + 'Clear cached data stored in your browser, including IndexedDB events, localStorage settings, and service worker caches.': + 'Clear cached data stored in your browser, including IndexedDB events, localStorage settings, and service worker caches.', + 'Click update to get the latest features and improvements': + 'Click update to get the latest features and improvements', + Close: 'Close', + 'Comma or space-separated topics (will be added as t-tags)': + 'Comma or space-separated topics (will be added as t-tags)', + Command: 'Command', + Configure: 'Configure', + 'Connect Wallet': 'Connect Wallet', + 'Console Logs': 'Console Logs', + 'Console logs cleared': 'Console logs cleared', + 'Content is required': 'Content is required', + 'Content must be 5000 characters or less': 'Content must be 5000 characters or less', + Controversial: 'Controversial', + 'Copied!': 'Copied!', + 'Copy to clipboard': 'Copy to clipboard', + 'Create Article': 'Create Article', + 'Create Citation': 'Create Citation', + 'Create Highlight': 'Create Highlight', + 'Create New Thread': 'Create New Thread', + 'Create Poll': 'Create Poll', + 'Create Thread': 'Create Thread', + 'Create a Spell': 'Create a Spell', + 'Creating...': 'Creating...', + 'D-Tag': 'D-Tag', + 'D-Tag is required for articles': 'D-Tag is required for articles', + DOI: 'DOI', + 'Date-based (all-day)': 'Date-based (all-day)', + 'Default expiration (months)': 'Default expiration (months)', + 'Default quiet period (days)': 'Default quiet period (days)', + 'Delete All': 'Delete All', + 'Delete item': 'Delete item', + 'Deleted {{count}} event(s)': 'Deleted {{count}} event(s)', + 'Deletion request sent': 'Deletion request sent', + 'Description (content)': 'Description (content)', + 'Digital Object Identifier (optional)': 'Digital Object Identifier (optional)', + 'Disable word wrap': 'Disable word wrap', + 'Discovered Relays': 'Discovered Relays', + 'Discovering relays...': 'Discovering relays...', + Discussion: 'Discussion', + Discussions: 'Discussions', + Downvote: 'Downvote', + 'Edited by': 'Edited by', + Editor: 'Editor', + 'Editor name (optional)': 'Editor name (optional)', + 'Enable word wrap': 'Enable word wrap', + 'End date': 'End date', + 'End date must be after start date': 'End date must be after start date', + 'Enter a Nostr event identifier (nevent, naddr, note, or hex ID) OR a web URL (https://). Not both.': + 'Enter a Nostr event identifier (nevent, naddr, note, or hex ID) OR a web URL (https://). Not both.', + 'Enter a descriptive title for your thread': 'Enter a descriptive title for your thread', + 'Enter the author name': 'Enter the author name', + 'Enter the book title': 'Enter the book title', + 'Enter the specific text you want to highlight in the main content area above': + 'Enter the specific text you want to highlight in the main content area above', + 'Event IDs (ids)': 'Event IDs (ids)', + 'Event appears to be invalid or corrupted': 'Event appears to be invalid or corrupted', + 'Event has no value data': 'Event has no value data', + 'Event is missing required fields: {{fields}}': 'Event is missing required fields: {{fields}}', + 'Event type': 'Event type', + 'Expiration Tags': 'Expiration Tags', + 'Export OPML': 'Export OPML', + 'Export as AsciiDoc': 'Export as AsciiDoc', + 'Export as Markdown': 'Export as Markdown', + 'External Citation': 'External Citation', + 'External Citation Settings': 'External Citation Settings', + 'Failed to add relay. Please try again.': 'Failed to add relay. Please try again.', + 'Failed to add relays': 'Failed to add relays', + 'Failed to block relay. Please try again.': 'Failed to block relay. Please try again.', + 'Failed to cleanup duplicates': 'Failed to cleanup duplicates', + 'Failed to clear cache': 'Failed to clear cache', + 'Failed to copy': 'Failed to copy', + 'Failed to create relay set. Please try again.': + 'Failed to create relay set. Please try again.', + 'Failed to create thread': 'Failed to create thread', + 'Failed to create thread. Please try a different relay.': + 'Failed to create thread. Please try a different relay.', + 'Failed to delete all items': 'Failed to delete all items', + 'Failed to delete item': 'Failed to delete item', + 'Failed to discover relays': 'Failed to discover relays', + 'Failed to export OPML file': 'Failed to export OPML file', + 'Failed to export article': 'Failed to export article', + 'Failed to import OPML file: {{error}}': 'Failed to import OPML file: {{error}}', + 'Failed to load RSS feeds': 'Failed to load RSS feeds', + 'Failed to load store items': 'Failed to load store items', + 'Failed to mute user privately': 'Failed to mute user privately', + 'Failed to mute user publicly': 'Failed to mute user publicly', + 'Failed to pin note': 'Failed to pin note', + 'Failed to publish post': 'Failed to publish post', + 'Failed to publish reply': 'Failed to publish reply', + 'Failed to publish thread': 'Failed to publish thread', + 'Failed to publish to some relays. Please try again or use different relays.': + 'Failed to publish to some relays. Please try again or use different relays.', + 'Failed to save RSS feeds': 'Failed to save RSS feeds', + 'Failed to save cache relays': 'Failed to save cache relays', + 'Failed to save relay list': 'Failed to save relay list', + 'Failed to unregister service worker: ': 'Failed to unregister service worker: ', + 'Failed to unsubscribe from topic': 'Failed to unsubscribe from topic', + Favorite: 'Favorite', + Fetch: 'Fetch', + 'Fetch once, then stop.': 'Fetch once, then stop.', + 'Filter by': 'Filter by', + 'Flat View': 'Flat View', + 'Font size': 'Font size', + 'Full Quote/Context': 'Full Quote/Context', + 'Full-text search query': 'Full-text search query', + Geohash: 'Geohash', + 'Geohash (optional)': 'Geohash (optional)', + 'Global quiet mode': 'Global quiet mode', + 'Group discussions by topic': 'Group discussions by topic', + 'Grouped View': 'Grouped View', + Groups: 'Groups', + 'Handler {{index}}': 'Handler {{index}}', + 'Hardcopy Citation': 'Hardcopy Citation', + 'Hardcopy Citation Settings': 'Hardcopy Citation Settings', + Hide: 'Hide', + 'Hide interactions on all posts': 'Hide interactions on all posts', + 'Hide interactions on posts with quiet tags': 'Hide interactions on posts with quiet tags', + 'High PoW': 'High PoW', + 'Higher values make your thread harder to mine but more unique.': + 'Higher values make your thread harder to mine but more unique.', + Highlight: 'Highlight', + 'Highlight Settings': 'Highlight Settings', + 'How to Create a Highlight (NIP-84)': 'How to Create a Highlight (NIP-84)', + 'Human-readable spell name': 'Human-readable spell name', + 'Image URL': 'Image URL', + 'Import OPML': 'Import OPML', + 'Imported {{count}} feed(s) from OPML file': 'Imported {{count}} feed(s) from OPML file', + 'In-Browser Cache': 'In-Browser Cache', + Insert: 'Insert', + 'Insert URL into your post and publish to Nostr GIF library (NIP-94).': + 'Insert URL into your post and publish to Nostr GIF library (NIP-94).', + 'Insert event or address': 'Insert event or address', + 'Insert mention': 'Insert mention', + 'Internal Citation': 'Internal Citation', + 'Internal Citation Settings': 'Internal Citation Settings', + 'Invalid Event': 'Invalid Event', + 'Invalid Lightning Address': 'Invalid Lightning Address', + 'Invalid Lightning Address. Please enter a valid Lightning Address or LNURL.': + 'Invalid Lightning Address. Please enter a valid Lightning Address or LNURL.', + 'Invalid URL': 'Invalid URL', + 'Invalid content JSON': 'Invalid content JSON', + 'Invalid relay URL': 'Invalid relay URL', + 'Invalid source. Please enter a note ID, nevent, naddr, hex ID, or URL.': + 'Invalid source. Please enter a note ID, nevent, naddr, hex ID, or URL.', + 'Item deleted successfully': 'Item deleted successfully', + JSON: 'JSON', + 'Join link': 'Join link', + 'Journal/Publication name (optional)': 'Journal/Publication name (optional)', + Json: 'JSON', + Kinds: 'Kinds', + 'Language Model': 'Language Model', + Large: 'Large', + 'Leave empty for HiveTalk, or paste Zoom / Teams / other link': + 'Leave empty for HiveTalk, or paste Zoom / Teams / other link', + 'Lightning payment failed': 'Lightning payment failed', + Limit: 'Limit', + 'Live feed; keeps updating.': 'Live feed; keeps updating.', + 'Loading more...': 'Loading more...', + 'Loading relays...': 'Loading relays...', + 'Location (optional)': 'Location (optional)', + 'Log in to run this spell (it uses $me or $contacts).': + 'Log in to run this spell (it uses $me or $contacts).', + 'Login failed': 'Login failed', + 'Login to configure RSS feeds': 'Login to configure RSS feeds', + 'Long-form Article': 'Long-form Article', + 'Mailbox relays saved': 'Mailbox relays saved', + 'Mark as NSFW': 'Mark as NSFW', + 'Maximum {{max}} invitees': 'Maximum {{max}} invitees', + 'Maximum {{max}} invitees allowed': 'Maximum {{max}} invitees allowed', + Medium: 'Medium', + Mode: 'Mode', + 'Most Zapped': 'Most Zapped', + 'Move to top': 'Move to top', + 'Multiple choice': 'Multiple choice', + 'Mute failed': 'Mute failed', + NSFW: 'NSFW', + Name: 'Name', + 'Name of the language model used': 'Name of the language model used', + 'New External Citation': 'New External Citation', + 'New Hardcopy Citation': 'New Hardcopy Citation', + 'New Highlight': 'New Highlight', + 'New Internal Citation': 'New Internal Citation', + 'New Long-form Article': 'New Long-form Article', + 'New Poll': 'New Poll', + 'New Prompt Citation': 'New Prompt Citation', + 'New Public Message': 'New Public Message', + 'New Wiki Article': 'New Wiki Article', + 'New Wiki Article (Markdown)': 'New Wiki Article (Markdown)', + Newest: 'Newest', + 'No JSON available': 'No JSON available', + 'No RSS feeds found in OPML file': 'No RSS feeds found in OPML file', + 'No cached data found.': 'No cached data found.', + 'No console logs captured yet': 'No console logs captured yet', + 'No events found': 'No events found', + 'No feeds configured. Default feed will be used.': + 'No feeds configured. Default feed will be used.', + 'No feeds to export': 'No feeds to export', + 'No groups available. Join some groups first.': 'No groups available. Join some groups first.', + 'No items in this store.': 'No items in this store.', + 'No items match your search.': 'No items match your search.', + 'No logs match the current filters': 'No logs match the current filters', + 'No posts found': 'No posts found', + 'No posts match your search': 'No posts match your search', + 'No relays available. Please configure relays in settings.': + 'No relays available. Please configure relays in settings.', + 'No service workers or caches found for this app': + 'No service workers or caches found for this app', + 'No users found': 'No users found', + 'No valid RSS feed URLs found in OPML file': 'No valid RSS feed URLs found in OPML file', + 'Note pinned': 'Note pinned', + 'Note unpinned': 'Note unpinned', + Oldest: 'Oldest', + 'Open Timestamp': 'Open Timestamp', + 'Opens in a new tab. Copy a GIF URL there, then paste below. If this picker closed, click “Insert GIF” again to paste.': + 'Opens in a new tab. Copy a GIF URL there, then paste below. If this picker closed, click “Insert GIF” again to paste.', + Option: 'Option', + Optional: 'Optional', + 'Optional image for the event': 'Optional image for the event', + 'Optionally, add the full quote/context to show your highlight within it': + 'Optionally, add the full quote/context to show your highlight within it', + PM: 'PM', + 'Page Range': 'Page Range', + Pages: 'Pages', + 'Paste URL of a GIF': 'Paste URL of a GIF', + 'Paste the entire original passage that contains your highlight': + 'Paste the entire original passage that contains your highlight', + Photo: 'Photo', + 'Picture Note': 'Picture Note', + 'Pin note': 'Pin note', + 'Plain text description of the query': 'Plain text description of the query', + 'Please login to view bookmarks': 'Please login to view bookmarks', + 'Please select a group': 'Please select a group', + 'Please select at least one relay': 'Please select at least one relay', + 'Please set a start date': 'Please set a start date', + 'Poll with no options': 'Poll with no options', + 'Post published to some relays': 'Post published to some relays', + 'Posts will automatically include expiration tags': + 'Posts will automatically include expiration tags', + 'Posts will automatically include quiet tags': 'Posts will automatically include quiet tags', + 'Posts will be quiet for this many days': 'Posts will be quiet for this many days', + 'Posts will expire after this many months': 'Posts will expire after this many months', + 'Processing...': 'Processing...', + 'Profile event not available': 'Profile event not available', + 'Prompt Citation': 'Prompt Citation', + 'Prompt Citation Settings': 'Prompt Citation Settings', + 'Prompt Conversation Script': 'Prompt Conversation Script', + 'Proof of Work': 'Proof of Work', + 'Publish to Relays': 'Publish to Relays', + 'Published By': 'Published By', + 'Published In': 'Published In', + 'Published On': 'Published On', + 'Published in': 'Published in', + 'Published on': 'Published on', + 'Publisher name (optional)': 'Publisher name (optional)', + 'Quiet Tags': 'Quiet Tags', + 'RSS Feed': 'RSS Feed', + 'RSS Feed Settings': 'RSS Feed Settings', + 'RSS Feeds': 'RSS Feeds', + 'RSS feeds exported to OPML file': 'RSS feeds exported to OPML file', + 'RSS feeds saved': 'RSS feeds saved', + 'Rate limited. Please wait before trying again.': + 'Rate limited. Please wait before trying again.', + 'Reaction published': 'Reaction published', + 'Reaction removed': 'Reaction removed', + 'Read full article': 'Read full article', + 'Reading group entry': 'Reading group entry', + 'Readings Options': 'Readings Options', + Recipients: 'Recipients', + 'Recipients detected from your message:': 'Recipients detected from your message:', + 'Recommended Relays': 'Recommended Relays', + 'Recommended applications for handling events of kind {{kind}}': + 'Recommended applications for handling events of kind {{kind}}', + 'Reference to the cited Nostr event in kind:pubkey:hex format': + 'Reference to the cited Nostr event in kind:pubkey:hex format', + 'Refresh Cache': 'Refresh Cache', + 'Refreshing posts...': 'Refreshing posts...', + 'Relative: 7d, 24h, 1w, 1mo, 1y. Or Unix timestamp.': + 'Relative: 7d, 24h, 1w, 1mo, 1y. Or Unix timestamp.', + Relay: 'Relay', + 'Relay Hint': 'Relay Hint', + 'Relay URL (optional)': 'Relay URL (optional)', + 'Relay blocked successfully': 'Relay blocked successfully', + 'Relay requires authentication for write access. Please try a different relay or contact the relay operator.': + 'Relay requires authentication for write access. Please try a different relay or contact the relay operator.', + 'Relay set options': 'Relay set options', + 'Remove from favorites': 'Remove from favorites', + Rendered: 'Rendered', + 'Reply published': 'Reply published', + 'Reply published to some relays': 'Reply published to some relays', + 'Reply to Public Message': 'Reply to Public Message', + 'Republish to all active relays': 'Republish to all active relays', + 'Republish to all available relays': 'Republish to all available relays', + 'Required: start (or start date), invitees. Optional: title, end, location, summary, topics, image.': + 'Required: start (or start date), invitees. Optional: title, end, location, summary, topics, image.', + 'Required: start time or start date. Optional: title, end, location, summary, topics, image.': + 'Required: start time or start date. Optional: title, end, location, summary, topics, image.', + 'Required: start time, invitees. Join link defaults to HiveTalk. Optional: title, end, summary, topics, image.': + 'Required: start time, invitees. Join link defaults to HiveTalk. Optional: title, end, summary, topics, image.', + 'Required: start time. Join link defaults to HiveTalk. Optional: title, end, summary, topics, image.': + 'Required: start time. Join link defaults to HiveTalk. Optional: title, end, summary, topics, image.', + 'Respect quiet tags': 'Respect quiet tags', + 'Search (NIP-50)': 'Search (NIP-50)', + 'Search by name or npub…': 'Search by name or npub…', + 'Search calendar, publications, wiki…': 'Search calendar, publications, wiki…', + 'Search for user…': 'Search for user…', + 'Search items...': 'Search items...', + 'Search logs...': 'Search logs...', + 'Search notes, threads, long-form…': 'Search notes, threads, long-form…', + 'Search on GifBuddy': 'Search on GifBuddy', + 'Search posts...': 'Search posts...', + 'Search threads by title, content, tags, npub, author...': + 'Search threads by title, content, tags, npub, author...', + 'Searching all available relays...': 'Searching all available relays...', + 'Searching…': 'Searching…', + 'See reference': 'See reference', + 'Select Group': 'Select Group', + 'Select Media Type': 'Select Media Type', + 'Select group...': 'Select group...', + 'Select relays': 'Select relays', + 'Select the group where you want to create this discussion.': + 'Select the group where you want to create this discussion.', + 'Select topic...': 'Select topic...', + 'Selected text': 'Selected text', + 'Send Public Message': 'Send Public Message', + 'Send a Lightning payment to this user': 'Send a Lightning payment to this user', + 'Service worker caches cleared. Please reload the page.': + 'Service worker caches cleared. Please reload the page.', + 'Service worker unregistered and caches cleared. Please reload the page.': + 'Service worker unregistered and caches cleared. Please reload the page.', + 'Service worker unregistered. Please reload the page.': + 'Service worker unregistered. Please reload the page.', + 'Share your thoughts, ask questions, or start a discussion...': + 'Share your thoughts, ask questions, or start a discussion...', + 'Short Video Note': 'Short Video Note', + 'Show RSS Feed': 'Show RSS Feed', + 'Show all discussions in a single list': 'Show all discussions in a single list', + 'Show less': 'Show less', + Since: 'Since', + Small: 'Small', + 'Some relays have temporarily disabled writes.': + 'Some relays have temporarily disabled writes.', + Source: 'Source', + 'Spell definition': 'Spell definition', + 'Spell published': 'Spell published', + 'Start date': 'Start date', + 'Start typing to see a preview...': 'Start typing to see a preview...', + 'Subject (Book Title)': 'Subject (Book Title)', + 'Subject (book title) is required for reading groups': + 'Subject (book title) is required for reading groups', + 'Subject / Topics': 'Subject / Topics', + Subscribe: 'Subscribe', + Subscribed: 'Subscribed', + 'Subscribed to topic': 'Subscribed to topic', + 'Subscribed to topic (local)': 'Subscribed to topic (local)', + 'Subscribing...': 'Subscribing...', + Summary: 'Summary', + 'Supported Event Types': 'Supported Event Types', + 'Take a note': 'Take a note', + 'The full prompt conversation (optional)': 'The full prompt conversation (optional)', + 'The main editor above should contain only the text you want to highlight. This field should contain the full quote or paragraph for context.': + 'The main editor above should contain only the text you want to highlight. This field should contain the full quote or paragraph for context.', + 'These relays were found from your NIP-05 identifier and signer. You can add them to your relay list.': + 'These relays were found from your NIP-05 identifier and signer. You can add them to your relay list.', + 'This file could be either audio or video. Please select the correct type:': + 'This file could be either audio or video. Please select the correct type:', + 'This store does not contain replaceable events': + 'This store does not contain replaceable events', + 'This will add additional tags for author and subject to help organize reading group discussions.': + 'This will add additional tags for author and subject to help organize reading group discussions.', + 'Thread Content': 'Thread Content', + 'Thread Title': 'Thread Title', + 'Thread creation timed out. Please try again.': 'Thread creation timed out. Please try again.', + 'Thread published': 'Thread published', + 'Threads are organized by topics. Choose a topic that best fits your discussion.': + 'Threads are organized by topics. Choose a topic that best fits your discussion.', + 'Time-based': 'Time-based', + 'Title is required': 'Title is required', + 'Title must be 100 characters or less': 'Title must be 100 characters or less', + 'To translate notes and other content, use your browser’s built-in translation. For example: right-click the page and choose “Translate to…”, or use the translate icon in the address bar.': + 'To translate notes and other content, use your browser’s built-in translation. For example: right-click the page and choose “Translate to…”, or use the translate icon in the address bar.', + Top: 'Top', + Topic: 'Topic', + URL: 'URL', + 'URL of the article cover image (optional)': 'URL of the article cover image (optional)', + 'Unique identifier for this article (required)': + 'Unique identifier for this article (required)', + 'Unmute failed': 'Unmute failed', + 'Unpin note': 'Unpin note', + Unsubscribe: 'Unsubscribe', + 'Unsubscribed from topic': 'Unsubscribed from topic', + 'Unsubscribing...': 'Unsubscribing...', + Until: 'Until', + Untitled: 'Untitled', + Update: 'Update', + 'Updating...': 'Updating...', + 'Upload Audio Comment': 'Upload Audio Comment', + 'Upload Audio Message': 'Upload Audio Message', + 'Upload Media': 'Upload Media', + Upvote: 'Upvote', + 'User unmuted': 'User unmuted', + 'Version number (optional)': 'Version number (optional)', + Video: 'Video', + 'Video Note': 'Video Note', + 'Video file': 'Video file', + 'View Console Logs': 'View Console Logs', + 'View JSON': 'View JSON', + 'View cached items in this store.': 'View cached items in this store.', + 'View definition': 'View definition', + 'View details about cached data in IndexedDB stores. Click on a store to view its items.': + 'View details about cached data in IndexedDB stores. Click on a store to view its items.', + 'View on Alexandria': 'View on Alexandria', + 'View on DecentNewsroom': 'View on DecentNewsroom', + 'View on Wikistr': 'View on Wikistr', + 'View recent console logs for debugging': 'View recent console logs for debugging', + 'Voice Comment': 'Voice Comment', + 'Voice Note': 'Voice Note', + 'Voice note or audio file': 'Voice note or audio file', + Volume: 'Volume', + 'Volume number (optional)': 'Volume number (optional)', + 'Vote published': 'Vote published', + 'Vote removed': 'Vote removed', + 'Website where LLM was accessed (optional)': 'Website where LLM was accessed (optional)', + 'Wiki Article (AsciiDoc)': 'Wiki Article (AsciiDoc)', + 'Wiki Article (Markdown)': 'Wiki Article (Markdown)', + 'You can only delete your own notes': 'You can only delete your own notes', + 'You must be logged in to create a thread': 'You must be logged in to create a thread', + 'You need to add at least one media server in order to upload media files.': + 'You need to add at least one media server in order to upload media files.', + 'You need to login first': 'You need to login first', + 'Your account is blocked from posting to this relay.': + 'Your account is blocked from posting to this relay.', + Zap: 'Zap', + 'Zap failed': 'Zap failed', + created_at: 'created_at', + 'e tag of kind 1040 event (optional)': 'e tag of kind 1040 event (optional)', + 'e.g. meetup, conference': 'e.g. meetup, conference', + 'e.g., 123-145 (optional)': 'e.g., 123-145 (optional)', + 'e.g., GPT-4, Claude, etc. (required)': 'e.g., GPT-4, Claude, etc. (required)', + 'e.g., my-article-title': 'e.g., my-article-title', + entries: 'entries', + 'from Bunker': 'from Bunker', + 'from Extension': 'from Extension', + 'from NIP-05': 'from NIP-05', + general: 'general', + 'https://example.com (required)': 'https://example.com (required)', + 'https://example.com/image.jpg': 'https://example.com/image.jpg', + id: 'id', + items: 'items', + kind: 'kind', + 'kind:pubkey:hex format (required)': 'kind:pubkey:hex format (required)', + 'last updated': 'last updated', + matching: 'matching', + naddr: 'naddr', + nevent: 'nevent', + 'nevent1..., naddr1..., note1..., hex ID, or https://...': + 'nevent1..., naddr1..., note1..., hex ID, or https://...', + 'no notes found': 'no notes found', + of: 'of', + 'on note': 'on note', + optional: 'optional', + pubkey: 'pubkey', + 'sent a public message': 'sent a public message', + 'sent you a public message': 'sent you a public message', + 'sent you a public message (along with {{count}} others)': + 'sent you a public message (along with {{count}} others)', + sig: 'sig', + 'started a discussion in {{topic}}': 'started a discussion in {{topic}}', + tags: 'tags', + thread: 'thread', + threads: 'threads', + 'topic1, topic2, topic3': 'topic1, topic2, topic3', + '{{count}} relay(s) selected': '{{count}} relay(s) selected', + '🔞 NSFW 🔞': '🔞 NSFW 🔞' } } diff --git a/src/i18n/locales/pl.ts b/src/i18n/locales/pl.ts index 96a2dbb8..41cf98d2 100644 --- a/src/i18n/locales/pl.ts +++ b/src/i18n/locales/pl.ts @@ -5,8 +5,12 @@ export default { 'New Note': 'Nowa Publikacja', Post: 'Publikuj', Home: 'Strona Główna', + Feed: 'Feed', + 'Favorites Feed': 'Favorites Feed', + 'Pinned note': 'Pinned note', 'Relay settings': 'Ustawienia transmiterów', Settings: 'Ustawienia', + 'Account menu': 'Account menu', SidebarRelays: 'Transmitery', Refresh: 'Odśwież', Profile: 'Twój Profil', @@ -30,6 +34,12 @@ export default { 'loading...': 'ładowanie...', 'Loading...': 'Ładowanie...', 'no more notes': 'Koniec wpisów', + 'calendar entries': 'calendar entries', + 'Loading calendar events...': 'Loading calendar events...', + 'No calendar events found': 'No calendar events found', + 'Calendar events in the next {{count}} months': 'Calendar events in the next {{count}} months', + 'The nostr.band relay appears to be temporarily out of service. Please try again later.': + 'The nostr.band relay appears to be temporarily out of service. Please try again later.', 'reply to': 'Odpowiedź na', reply: 'odpowiedz', Reply: 'Skomentuj', @@ -37,6 +47,9 @@ export default { 'Write something...': 'Napisz coś...', Cancel: 'Anuluj', Mentions: 'Wzmianki', + 'Search for event or address…': 'Search for event or address…', + 'Search notes…': 'Search notes…', + 'No notes found': 'No notes found', 'Failed to post': 'Nie udało się opublikować', 'Post successful': 'Twój wpis został wysłany.', 'Your post has been published': 'Publikowani są jedynie użytkownicy z białej listy', @@ -45,7 +58,22 @@ export default { Quote: 'Zacytuj', 'Copy event ID': 'Skopiuj ID wydarzenia', 'Copy user ID': 'Skopiuj ID użytkownika', + 'Send public message': 'Send public message', 'View raw event': 'Pokaż szczegóły wpisu', + 'Edit this event': 'Edit this event', + 'Clone or fork this event': 'Clone or fork this event', + 'Event kind': 'Event kind', + 'Note content': 'Note content', + Publish: 'Publish', + 'Post published': 'Post published', + 'Edit content and tags, then publish a new signed event.': + 'Edit content and tags, then publish a new signed event.', + 'Log in to publish': 'Log in to publish', + 'Set when you publish': 'set when you publish', + 'id and sig are assigned when you publish': 'id and sig are assigned when you publish', + 'Published to some relays only': 'Published to some relays only', + 'Add field': 'Add field', + 'View full profile': 'View full profile', Like: 'Polub', 'switch to light theme': 'Przełącz na jasny motyw', 'switch to dark theme': 'Przełącz na ciemny motyw ', @@ -56,18 +84,143 @@ export default { "username's used relays": '{{username}} użył transmiterów', "username's muted": 'Zablokowani przez {{username}} ', Login: 'Logowanie', + 'Please log in to view notifications.': 'Please log in to view notifications.', 'Follows you': 'Obserwujący', 'Relay Settings': 'Ustawienia transmiterów', + 'Relays and Storage Settings': 'Relays and Storage Settings', 'Relay set name': 'Wpisz nazwę grupy', 'Add a new relay set': 'Utwórz grupę transmiterów', Add: 'Dodaj', 'n relays': '{{n}} szt.', Rename: 'Zmień nazwę', + 'Copy share link': 'Copy share link', + 'Copy address': 'Copy address', + 'Copy payto URI': 'Copy payto URI', + 'Copied payto address': 'Copied payto address', + 'Copied to clipboard': 'Copied to clipboard', + 'Copied {{label}} address': 'Copied {{label}} address', + 'Lightning payment address – copy to pay via your wallet': + 'Lightning payment address – copy to pay via your wallet', + 'Payment address – copy to use in your wallet or app': + 'Payment address – copy to use in your wallet or app', + 'Click to open payment options': 'Click to open payment options', + 'Click to copy address': 'Click to copy address', + 'Open on website': 'Open on website', + 'Raw profile event': 'Raw profile event', + 'Full profile event': 'Full profile event', + 'Event (JSON)': 'Event (JSON)', + 'Save full profile': 'Save full profile', + 'Add tag': 'Add tag', + 'Remove tag': 'Remove tag', + 'Tag name': 'Tag name', + Value: 'Value', + 'Add value to tag': 'Add value to tag', + 'Remove value': 'Remove value', + 'No tags. Click "Add tag" to add one.': 'No tags. Click "Add tag" to add one.', + 'Profile updated': 'Profile updated', + 'Failed to publish profile': 'Failed to publish profile', + 'Invalid profile JSON': 'Invalid profile JSON', + 'Refresh cache': 'Refresh cache', + 'Force-refresh profile and payment info from relays': + 'Force-refresh profile and payment info from relays', + 'Profile and payment cache refreshed': 'Profile and payment cache refreshed', + 'Failed to refresh cache': 'Failed to refresh cache', + 'Raw payment info event': 'Raw payment info event', + 'Payment info': 'Payment info', + 'Edit payment info': 'Edit payment info', + 'Add payment info': 'Add payment info', + 'No payment info event yet. Click "Add payment info" to create one.': + 'No payment info event yet. Click "Add payment info" to create one.', + 'Content (JSON)': 'Content (JSON)', + Tags: 'Tags', + 'Tags (JSON array of arrays, e.g. [["payto","lightning","user@domain.com"]])': + 'Tags (JSON array of arrays, e.g. [["payto","lightning","user@domain.com"]])', + 'Payment info updated': 'Payment info updated', + 'Failed to publish payment info': 'Failed to publish payment info', + 'Invalid tags JSON': 'Invalid tags JSON', + 'Payment methods': 'Payment methods', + 'NIP-A3 payto tags: type (e.g. lightning) and authority (e.g. user@domain.com).': + 'NIP-A3 payto tags: type (e.g. lightning) and authority (e.g. user@domain.com).', + 'Type (e.g. lightning)': 'Type (e.g. lightning)', + 'Authority (e.g. user@domain.com)': 'Authority (e.g. user@domain.com)', + 'Add payment method': 'Add payment method', + Remove: 'Remove', + 'Additional content (JSON)': 'Additional content (JSON)', + 'Show full event JSON': 'Show full event JSON', + 'Tag list': 'Tag list', + 'Profile event tags (e.g. lud16, nip05, website). Saved with kind 0.': + 'Profile event tags (e.g. lud16, nip05, website). Saved with kind 0.', + 'Tag value': 'Tag value', + 'Saving…': 'Saving…', 'Share with Jumble': 'Udostępnij przez Jumble', 'Share with Alexandria': 'Udostępnij przez Alexandria', + 'Start video call': 'Start video call', + 'Copy call invite link': 'Copy call invite link', + 'Start call about this': 'Start call about this', + 'Send call invite': 'Send call invite', + 'Join the video call': 'Join the video call', + 'Schedule video call': 'Schedule video call', + "You're invited to a scheduled video call.": "You're invited to a scheduled video call.", + 'Create a calendar event and send an invite. The recipient will see the event with a join link.': + 'Create a calendar event and send an invite. The recipient will see the event with a join link.', + 'Schedule a video call': 'Schedule a video call', + 'Create a calendar event and send kind 24 invites to each listed invitee.': + 'Create a calendar event and send kind 24 invites to each listed invitee.', + Invitees: 'Invitees', + 'Paste nostr:npub1... or nostr:nprofile1... (one or more)': + 'Paste nostr:npub1... or nostr:nprofile1... (one or more)', + 'Schedule and send invites': 'Schedule and send invites', + 'Add at least one invitee (paste nostr:npub or nostr:nprofile links)': + 'Add at least one invitee (paste nostr:npub or nostr:nprofile links)', + 'Scheduled call created and {{count}} invite(s) sent': + 'Scheduled call created and {{count}} invite(s) sent', + 'Join video call': 'Join video call', + 'Scheduled video call': 'Scheduled video call', + 'Video call': 'Video call', + 'Schedule and send invite': 'Schedule and send invite', + 'Scheduling…': 'Scheduling…', + 'Please set a start time': 'Please set a start time', + 'End time must be after start time': 'End time must be after start time', + 'Failed to schedule call': 'Failed to schedule call', + 'Scheduled call created and invite sent': 'Scheduled call created and invite sent', + RSVP: 'RSVP', + 'RSVP: {{status}}': 'RSVP: {{status}}', + Accepted: 'Accepted', + Tentative: 'Tentative', + Declined: 'Declined', + 'You need to log in to RSVP': 'You need to log in to RSVP', + 'RSVP updated': 'RSVP updated', + 'Failed to update RSVP': 'Failed to update RSVP', + Organizer: 'Organizer', + Attendees: 'Attendees', + 'No response': 'No response', + 'Calendar Events': 'Calendar Events', + 'Calendar Event': 'Calendar Event', + 'Schedule in-person meeting': 'Schedule in-person meeting', + 'Create a calendar event and send an invite. No video link — for real-life meetups, conferences, etc.': + 'Create a calendar event and send an invite. No video link — for real-life meetups, conferences, etc.', + "You're invited to an in-person meeting.": "You're invited to an in-person meeting.", + 'Meeting created and invite sent': 'Meeting created and invite sent', + 'Failed to create meeting': 'Failed to create meeting', + 'Create and send invite': 'Create and send invite', + 'Creating…': 'Creating…', + 'In-person meeting': 'In-person meeting', + Location: 'Location', + 'Address, venue, or place': 'Address, venue, or place', + Description: 'Description', + 'Optional notes': 'Optional notes', + 'Create a calendar event for a real-life meetup and send kind 24 invites to each invitee.': + 'Create a calendar event for a real-life meetup and send kind 24 invites to each invitee.', + 'Meeting created and {{count}} invite(s) sent': 'Meeting created and {{count}} invite(s) sent', + 'Create and send invites': 'Create and send invites', + Title: 'Title', + Start: 'Start', + End: 'End', Delete: 'Usuń', 'Relay already exists': 'Transmiter już istnieje', 'invalid relay URL': 'Nieprawidłowy URL transmitera', + 'Relay URL…': 'wss://… or relay host', + 'Open relay': 'Open relay', 'Add a new relay': 'Dodaj nowy transmiter', back: 'z powrotem', 'Lost in the void': 'Zagubiony w przestrzeni', @@ -113,6 +266,19 @@ export default { 'Picture note requires images': 'Wpis graficzny wymaga obrazów', Relays: 'Transmitery', Image: 'grafika', + 'Upload Image': 'Upload Image', + 'Insert emoji': 'Insert emoji', + 'Insert GIF': 'Insert GIF', + 'Search GIFs': 'Search GIFs', + 'Choose a GIF': 'Choose a GIF', + 'Search GifBuddy for more GIFs': 'Search GifBuddy for more GIFs', + 'Add your own GIFs': 'Add your own GIFs', + 'Description (optional, for search)': 'Description (optional, for search)', + 'e.g. happy birthday, thumbs up': 'e.g. happy birthday, thumbs up', + 'Uploading...': 'Uploading...', + 'No GIFs found. Try searching or add your own. GIFs come from Nostr kind 1063 (NIP-94) events on GIF relays.': + 'No GIFs found. Try searching or add your own. GIFs come from Nostr kind 1063 (NIP-94) events on GIF relays.', + '{{name}} is not a GIF file': '{{name}} is not a GIF file', 'R & W': 'O & Z', Read: 'Odczyt', Write: 'Zapis', @@ -152,6 +318,9 @@ export default { Muted: 'Zablokowani', Unmute: 'Przywróć', 'Unmute user': 'Przywróć użytkownika ', + Block: 'Block', + Unblock: 'Unblock', + blocked: 'blocked', 'Append n relays': 'Dodaj {{n}} transmiterów', Append: 'Dodaj', 'Select relays to append': 'Wybierz transmitery do dodania', @@ -176,9 +345,27 @@ export default { 'Explore more': 'Zobacz więcej', 'Payment page': 'Strona płatności', 'Supported NIPs': 'Obsługiwane NIP-y', + 'Relay liveliness (NIP-66)': 'Relay liveliness (NIP-66)', + 'Relay monitor (NIP-66)': 'Relay monitor (NIP-66)', + 'Auth required': 'Auth required', + 'Public (no auth)': 'Public (no auth)', + 'Payment required': 'Payment required', + 'No payment': 'No payment', + 'Writes required': 'Writes required', + 'Writes open': 'Writes open', + 'PoW required': 'PoW required', + 'No PoW': 'No PoW', + 'RTT open': 'RTT open', + 'RTT read': 'RTT read', + 'RTT write': 'RTT write', + 'Supported NIPs (from monitor)': 'Supported NIPs (from monitor)', + 'Last reported by monitor': 'Last reported by monitor', + Network: 'Network', + Type: 'Type', + Topics: 'Topics', 'Open in a': 'Otwórz w {{a}}', 'Cannot handle event of kind k': 'Nie można obsłużyć zdarzenia typu {{k}}', - 'Sorry! The note cannot be found 😔 ': 'Przepraszam! Nie można znaleźć wpisu 😔', + 'Sorry! The note cannot be found 😔': 'Sorry! The note cannot be found 😔', 'This user has been muted': 'Ten użytkownik został wyciszony', Wallet: 'Portfel', Sats: 'satsów', @@ -199,8 +386,6 @@ export default { 'Your donation helps me maintain Jumble and make it better! 😊': 'Twoja darowizna pomoże mi utrzymać i ulepszać Jumble! 😊', 'Earlier notifications': 'Wcześniejsze powiadomienia', - - // NOTE: The translations below were generated by ChatGPT and have not yet been verified. 'Temporarily display this note': 'Tymczas wyświetl ten wpis', buttonFollowing: 'Obserwujesz', 'Are you sure you want to unfollow this user?': @@ -209,9 +394,22 @@ export default { 'Seen on': 'Widziany na', 'Temporarily display this reply': 'Tymczasowo wyświetl tę odpowiedź', 'Note not found': 'Nie znaleziono wpisu', + 'The note was not found on your relays or default relays.': + 'The note was not found on your relays or default relays.', + "Try searching author's relays": "Try searching author's relays", + 'Searching external relays...': 'Searching external relays...', + "This will connect to the author's relays and relay hints": + "This will connect to the author's relays and relay hints", + 'Note could not be found anywhere': 'Note could not be found anywhere', + 'Try external relays': 'Try external relays', + 'Searching...': 'Searching...', + 'Show relays': 'Show relays', + 'No external relay hints available': 'No external relay hints available', 'no more replies': 'brak kolejnych odpowiedzi', 'Relay sets': 'Zestawy transmiterów', 'Favorite Relays': 'Ulubione transmitery', + 'Search for Relays': 'Search for Relays', + 'Using app default relays': 'Using app default relays', "Following's Favorites": 'Ulubione transmitery obserwowanych', 'no more relays': 'brak kolejnych transmiterów', 'Favorited by': 'Ulubione przez', @@ -227,11 +425,49 @@ export default { 'no bookmarks found': 'Nie znaleziono zakładek', 'no more bookmarks': 'Koniec zakładek', Bookmarks: 'Zakładki', + 'Follow Packs': 'Follow Packs', + 'Follow Pack': 'Follow Pack', + 'Please log in to follow': 'Please log in to follow', + 'Following All': 'Following All', + 'Followed {{count}} users': 'Followed {{count}} users', + 'All available members are already followed or muted': + 'All available members are already followed or muted', + 'You are already following all members of this pack': + 'You are already following all members of this pack', + 'Failed to follow pack': 'Failed to follow pack', + '{{count}} profiles': '{{count}} profiles', 'Show more': 'Pokaż więcej', General: 'Ogólne', Autoplay: 'Autoodtwarzanie', 'Enable video autoplay on this device': 'Włącz automatyczne odtwarzanie wideo na tym urządzeniu', + 'Add random relays to every publish': 'Random relays in publish list', + 'Add random relays to every publish description': + 'Adds {{n}} random public relays from the NIP-66 lively list (preferring monitors that reported a write RTT) to the publish relay list. When ON, they are selected by default; when OFF, they appear in the list but are unchecked so you can optionally include them.', + relayType_local: 'Local', + relayType_relay_list: 'Relay list', + relayType_client_default: 'Client default', + relayType_open_from: 'Current feed', + relayType_favorite: 'Favorite', + relayType_relay_set: 'Relay set', + relayType_contextual: 'Reply/PM', + relayType_randomly_selected: 'Random (optional)', + 'Session relays': 'Session relays', + 'Session relays tab description': + 'Relay logic for this session: working and striked preset relays, and scored random relays (used to prefer faster, proven relays when adding random relays to publish).', + 'Session relays preset working': 'Working preset relays', + 'Session relays preset working hint': + 'Preset relays (from app defaults) that have not reached 3 publish failures this session.', + 'Session relays preset striked': 'Striked preset relays', + 'Session relays preset striked hint': + 'Preset relays that have reached 3 publish failures this session and are skipped for the rest of the session.', + 'Session relays scored random': 'Scored random relays', + 'Session relays scored random hint': + 'Relays that have accepted at least one publish this session; used to prefer faster relays when picking random relays. Sorted by average latency.', + 'Session relays all striked': 'All striked relays (any source)', + successes: 'successes', + None: 'None', + 'Cache & offline storage': 'Cache & offline storage', 'Paste or drop media files to upload': 'Wklej lub upuść pliki multimedialne, aby przesłać', Preview: 'Podgląd', 'You are about to publish an event signed by [{{eventAuthorName}}]. You are currently logged in as [{{currentUsername}}]. Are you sure?': @@ -264,6 +500,7 @@ export default { 'Are you sure you want to reset your API key? This action cannot be undone.': 'Czy na pewno chcesz zresetować swój klucz API? Ta akcja jest nieodwracalna.', Warning: 'Ostrzeżenie', + 'Errors & warnings': 'Errors & warnings', 'Your current API key will become invalid immediately, and any applications using it will stop working until you update them with the new key.': 'Twój obecny klucz API stanie się nieaktywny natychmiast, a wszystkie aplikacje korzystające z niego przestaną działać, dopóki nie zaktualizujesz ich nowym kluczem.', 'Service address': 'Adres usługi', @@ -295,6 +532,9 @@ export default { Article: 'Artykuł', Unfavorite: 'Usuń z ulubionych', 'Recommended relays': 'Rekomendowane transmitery', + 'Show recommended relays panel': 'Show recommended relays panel', + 'Display the right-side panel with recommended relays on desktop': + 'Display the right-side panel with recommended relays on desktop', 'Blossom server URLs': 'Adresy serwerów Blossom', 'You need to add at least one blossom server in order to upload media files.': 'Musisz dodać przynajmniej jeden serwer Blossom, aby móc przesyłać pliki multimedialne.', @@ -322,7 +562,31 @@ export default { 'Refresh results': 'Odśwież wyniki', Poll: 'Ankieta', Media: 'media', + Interests: 'Interests', + Calendar: 'Calendar', + 'No subscribed interests yet.': + 'No subscribed interests yet. Add topics in settings to see them here.', + 'No bookmarked notes with id tags yet.': + 'No bookmarked notes with id tags yet. Only classic (e-tag) bookmarks load in this feed.', + 'No follows or relays to load yet.': 'No follows or relays to load yet.', + 'Nothing to load for this feed.': 'Nothing to load for this feed.', 'Republish to ...': 'Przekaż ponownie do ...', + 'All available relays': 'All available relays', + 'All active relays (monitoring list)': 'All active relays (monitoring list)', + 'Successfully republish to all available relays': + 'Successfully republish to all available relays', + 'Failed to republish to all available relays: {{error}}': + 'Failed to republish to all available relays: {{error}}', + 'Successfully republish to all active relays': 'Successfully republish to all active relays', + 'Failed to republish to all active relays: {{error}}': + 'Failed to republish to all active relays: {{error}}', + 'No active relays in monitoring list': 'No active relays in monitoring list', + 'No relay accepted the event': 'No relay accepted the event', + 'No relays available': 'No relays available', + 'No write relays configured': 'No write relays configured', + 'Relay did not accept the event': 'Relay did not accept the event', + 'Only {{count}} relay(s) accepted the event; at least 5 required for "all active relays".': + 'Only {{count}} relay(s) accepted the event; at least 5 required for "all active relays".', 'Successfully republish to your write relays': 'Pomyślnie ponownie opublikowano na twoich transmiterach zapisu', 'Failed to republish to your write relays: {{error}}': @@ -342,6 +606,7 @@ export default { 'No zaps yet': 'Brak zapów', 'No more boosts': 'Brak kolejnych boostów', 'No boosts yet': 'Brak boostów', + 'n more boosts': '{{count}} more boosts', Boosts: 'Boosty', FollowListNotFoundConfirmation: 'Lista obserwowanych nie została znaleziona. Czy chcesz utworzyć nową? Jeśli wcześniej obserwowałeś użytkowników, proszę NIE potwierdzaj, ponieważ ta operacja spowoduje utratę poprzedniej listy obserwowanych.', @@ -364,8 +629,13 @@ export default { 'Maybe Later': 'Może później', "Don't remind me again": 'Nie przypominaj mi więcej', Posts: 'Posty', + 'Posts (OPs)': 'Posts (OPs)', + 'Kind 1 replies': 'Kind 1 replies', + Comments: 'Comments', + 'Replies & comments': 'Replies & comments', Articles: 'Artykuły', Highlights: 'Wyróżnienia', + 'A note from': 'A note from', Polls: 'Ankiety', 'Voice Posts': 'Posty głosowe', 'Photo Posts': 'Posty ze zdjęciami', @@ -391,6 +661,13 @@ export default { 'boosted your note': 'zboostował twoją notatkę', 'zapped your note': 'zappował twoją notatkę', 'zapped you': 'zappował cię', + zapped: 'zapped', + 'Invalid zap receipt': 'Invalid zap receipt', + 'Zapped note': 'Zapped note', + 'Zapped profile': 'Zapped profile', + 'Zap reply threshold': 'Zap reply threshold', + 'Zaps above this amount will appear as replies in threads': + 'Zaps above this amount will appear as replies in threads', 'Mark as read': 'Oznacz jako przeczytane', Report: 'Zgłoś', 'Successfully report': 'Pomyślnie zgłoszono', @@ -405,7 +682,6 @@ export default { 'See extra info for each notification': 'Zobacz dodatkowe informacje dla każdego powiadomienia', 'See more notifications at a glance': 'Zobacz więcej powiadomień na pierwszy rzut oka', Detailed: 'Szczegółowy', - Compact: 'Zwięzły', 'Submit Relay': 'Prześlij transmiter', Homepage: 'Strona główna', 'Proof of Work (difficulty {{minPow}})': 'Dowód pracy (trudność {{minPow}})', @@ -432,6 +708,23 @@ export default { '{{count}} relays': '{{count}} przekaźników', 'Republishing...': 'Ponowne publikowanie...', 'Trending Notes': 'Popularne wpisy', + 'Trending on Your Favorite Relays': 'Trending on Your Favorite Relays', + 'Trending on the Default Relays': 'Trending on the Default Relays', + 'Latest from your follows': 'Latest from your follows', + 'Latest from our recommended follows': 'Latest from our recommended follows', + 'Loading follow list…': 'Loading follow list…', + 'Could not load recommended follows': 'Could not load recommended follows', + 'Your follow list is empty': 'Your follow list is empty', + 'Loading recent posts from follows…': 'Loading recent posts from follows…', + 'Loading more…': 'Loading more…', + 'No recent posts from this user in the current fetch': + 'No recent posts from this user in the current fetch', + 'Loading trending notes from your relays...': 'Loading trending notes from your relays...', + Sort: 'Sort', + newest: 'newest', + oldest: 'oldest', + 'most popular': 'most popular', + 'least popular': 'least popular', 'Connected to': 'Połączono z', 'Disconnect Wallet': 'Odłącz portfel', 'Are you absolutely sure?': 'Czy jesteś całkowicie pewien?', @@ -439,6 +732,690 @@ export default { Disconnect: 'Odłącz', 'Set up your wallet to send and receive sats!': 'Skonfiguruj swój portfel, aby wysyłać i odbierać satsy!', - 'Set up': 'Skonfiguruj' + 'Set up': 'Skonfiguruj', + 'nested events': 'nested events', + 'Loading RSS feeds...': 'Loading RSS feeds...', + 'No RSS feed items available': 'No RSS feed items available', + 'Show or hide the RSS page and sidebar entry': 'Show or hide the RSS page and sidebar entry', + 'Refreshing feeds...': 'Refreshing feeds...', + 'All feeds': 'All feeds', + 'All time': 'All time', + 'Last hour': 'Last hour', + 'Last day': 'Last day', + 'Last week': 'Last week', + 'Last month': 'Last month', + 'No items match your filters': 'No items match your filters', + 'Search...': 'Search...', + '{{count}} feeds': '{{count}} feeds', + 'Toggle filters': 'Toggle filters', + 'Showing {{filtered}} of {{total}} items': 'Showing {{filtered}} of {{total}} items', + Full: 'Full', + Compact: 'Zwięzły', + Expand: 'Expand', + 'help.title': 'Help', + 'help.tabShortcuts': 'Keyboard shortcuts', + 'help.tabOverview': 'App overview', + 'shortcuts.title': 'Keyboard shortcuts', + 'shortcuts.intro': + 'Shortcuts for this app and common browsing. Modifier combos are Shift+Alt+key (Option+Shift+key on macOS); either modifier order works when typing.', + 'shortcuts.sectionApp': 'This app', + 'shortcuts.sectionSearch': 'Search bar', + 'shortcuts.sectionStandard': 'Standard', + 'shortcuts.openHelp': 'Show this help', + 'shortcuts.or': 'or', + 'shortcuts.then': 'then', + 'shortcuts.focusPrimary': + 'Focus main column scroll (desktop; then arrow keys, Page Up/Down, Home/End)', + 'shortcuts.focusSecondary': + 'Focus side panel scroll when it is open (desktop; same keys to scroll)', + 'shortcuts.newNote': 'New note / post (after login if needed)', + 'shortcuts.searchSuggest': 'Move through suggestions', + 'shortcuts.searchDismiss': 'Close search dropdown', + 'shortcuts.tabNavigate': 'Move focus to the next or previous control', + 'shortcuts.activate': 'Activate buttons and many controls', + 'shortcuts.closeOverlays': 'Close dialogs, menus, and the search dropdown', + 'shortcuts.scrollWhenFocused': 'Scroll the focused scrollable area', + 'shortcuts.browserBack': 'Browser back (history)', + 'No spells yet. Create one with the button above.': + 'No spells yet. Create one with the button above.', + 'Loading spells from your relays…': 'Loading spells from your relays…', + 'Could not run this spell. Check that it has a valid REQ/COUNT command, or add write relays in settings.': + 'Could not run this spell. Check that it has a valid REQ/COUNT command, or add write relays in settings.', + 'Select a spell…': 'Select a spell…', + 'Spells from follows': 'From people you follow ({{count}})', + 'Other spells': 'Other spells ({{count}})', + 'Select a spell to view its feed.': 'Select a spell to view its feed.', + 'Add another row': 'Add another row', + 'Remove this row': 'Remove this row', + 'One kind number per row (e.g. 1 for notes).': 'One kind number per row (e.g. 1 for notes).', + 'One author per row: $me, $contacts, or hex pubkey / npub.': + 'One author per row: $me, $contacts, or hex pubkey / npub.', + 'One hex event id per row.': 'One hex event id per row.', + 'One wss:// URL per row. Leave empty to use your write relays.': + 'One wss:// URL per row. Leave empty to use your write relays.', + 'One topic per row.': 'One topic per row.', + topic: 'topic', + 'Spell form fields': 'Spell form fields', + 'Counting matching events…': 'Counting matching events…', + 'Edit spell': 'Edit spell', + 'Clone spell': 'Clone spell', + 'Spell cloned': 'Spell cloned', + 'Clone spell intro': + 'This spell is preloaded from another author’s definition. Change anything you like, then save to publish a new spell signed with your account.', + 'Spell updated': 'Spell updated', + 'Relay URL': 'Relay', + Count: 'Count', + 'Edit spell relays': 'Edit relays', + 'COUNT spell relay errors hint': + 'One or more relays failed or returned an error. You can change the relay list in the spell and save again.', + 'COUNT spell total distinct explanation': + 'Distinct matching event IDs across all relays that responded successfully (duplicates across relays removed). Each relay only returns up to the filter limit.', + 'Leave empty to use your write relays.': 'Leave empty to use your write relays.', + 'COUNT spell result explanation': + 'Distinct events returned for this filter (merged from your spell relays and default write relays, duplicates removed). Relays only return up to the filter limit.', + 'COUNT spell may be capped by limit': + 'This count may equal your spell limit — there could be more matching events on the network.', + 'Spell count failed. Check relays or try again.': + 'Could not complete the count. Check relays or try again.', + 'REQ returns a feed; COUNT returns a number.': + 'REQ: scrollable feed (choose live Feed or one-shot Fetch below). COUNT: a single number, no feed.', + listImportManualLabel: 'Pre-fill from event', + listImportFromEventHint: + 'Supported tags are merged into the form (e, p, t, relay, r, a where possible). Non-empty content is skipped; encrypted private items are not read. You may see notices for unmapped tags.', + listImportManualPlaceholder: '64-char hex, nevent1…, or naddr1…', + listImportLoadManual: 'Apply', + listImportContentSkipped: + 'This event has non-empty content (may include encrypted private items). Only public tags were merged.', + listImportUnsupportedEmoji: + 'This list includes emoji tags (NIP-30); those are not added to the spell filter.', + listImportUnsupportedTag: + 'Tags of type “{{tag}}” ({{count}}) are not mapped to spell filters yet.', + listImportBadATag: 'Could not parse address tag: {{preview}}…', + listImportATagNotFound: 'Could not resolve address tag: {{preview}}…', + listImportATagFailed: 'Failed to resolve address tag: {{preview}}…', + listImportEventNotFound: 'No event found for that reference.', + 'REQ tag filters': 'REQ tag filters', + spellFormTagFiltersLabel: 'Tag filters on matching events', + spellCreateIntro: + 'Spells are saved relay filters (NIP-A7). The “Spell query” section is the real definition; the dashed box at the bottom is only for names, descriptions, and catalog labels. Use $me for your pubkey and $contacts for your follow list when executing.', + spellFormSectionQueryTitle: 'Spell query', + spellFormSectionQueryHint: + 'This block is the actual spell definition: it becomes the Nostr REQ/COUNT filter (kinds, authors, time range, tag filters on matching events, relays, etc.).', + spellFormSectionMetadataTitle: 'Listing & labels (optional)', + spellFormSectionMetadataBadge: 'Not part of the query', + spellFormSectionMetadataHint: + 'Name, description, and topic labels are only for display and spell pickers. They are not used when the spell fetches events.', + spellFormCatalogTopicsLabel: 'Topic labels on this spell (t tags)', + spellTopicsMetadataHint: + 'One topic per row. To filter which notes you see, use “REQ tag filters” in the spell query above (letter “t”).', + spellTagFiltersHint: + 'Optional filters on subscribed events (NIP-01 single-letter tags). Example: letter “t”, values “bitcoin”.', + spellTagFiltersEmpty: 'No tag filters yet. Add rows below or apply an event reference above.', + 'Tag filter letter': 'Tag letter', + 'Filter value': 'Value', + 'Add tag filter': 'Add tag filter', + spellPickerSectionYours: 'Your spells', + 'Failed to remove spell from local storage': 'Failed to remove spell from local storage', + Spells: 'Spells', + 'doublePane.secondaryEmpty': 'Open a note, profile, or settings item to show it here.', + 'doublePane.secondaryEmptyHint': 'Your feed and primary pages stay on the left.', + '(empty)': '(empty)', + '12-hour (AM/PM)': '12-hour (AM/PM)', + '24-hour': '24-hour', + 'A new version is available': 'A new version is available', + 'A short description of the article content': 'A short description of the article content', + AM: 'AM', + 'Access via': 'Access via', + 'Accessed On': 'Accessed On', + 'Accessed on': 'Accessed on', + 'Add RSS feed URLs to subscribe to. If no feeds are configured, the default feed will be used.': + 'Add RSS feed URLs to subscribe to. If no feeds are configured, the default feed will be used.', + 'Add a relay to block': 'Add a relay to block', + 'Add at least one invitee': 'Add at least one invitee', + 'Add client identifier': 'Add client identifier', + 'Add expiration tags by default': 'Add expiration tags by default', + 'Add quiet tags by default': 'Add quiet tags by default', + 'Add recipients using nostr: mentions (e.g., nostr:npub1...) or the recipient selector above': + 'Add recipients using nostr: mentions (e.g., nostr:npub1...) or the recipient selector above', + 'Add the source (where this text is from)': 'Add the source (where this text is from)', + 'Add to favorites': 'Add to favorites', + 'Add {{count}} Selected': 'Add {{count}} Selected', + 'Added at': 'Added at', + 'Added {{count}} relay(s)': 'Added {{count}} relay(s)', + 'Adding...': 'Adding...', + 'Adding…': 'Adding…', + 'Advanced Options': 'Advanced Options', + 'All Topics': 'All Topics', + 'All favorite relays': 'All favorite relays', + 'All feeds from OPML file are already added': 'All feeds from OPML file are already added', + 'All items deleted successfully': 'All items deleted successfully', + 'Already blocked': 'Already blocked', + 'Already saved': 'Already saved', + 'Application Recommendations': 'Application Recommendations', + 'Are you sure you want to clear all cached data? This will delete all stored events and settings from your browser.': + 'Are you sure you want to clear all cached data? This will delete all stored events and settings from your browser.', + 'Are you sure you want to delete all items from this store?': + 'Are you sure you want to delete all items from this store?', + 'Are you sure you want to unmute this user? This will restore the follow button.': + 'Are you sure you want to unmute this user? This will restore the follow button.', + "Are you sure you want to unregister the service worker? This will clear this app's service worker caches and you will need to reload the page.": + "Are you sure you want to unregister the service worker? This will clear this app's service worker caches and you will need to reload the page.", + 'Article exported as AsciiDoc': 'Article exported as AsciiDoc', + 'Article exported as Markdown': 'Article exported as Markdown', + 'Article title (optional)': 'Article title (optional)', + Audio: 'Audio', + Author: 'Author', + 'Author is required for reading groups': 'Author is required for reading groups', + 'Author name (optional)': 'Author name (optional)', + Authors: 'Authors', + 'Block Relay': 'Block Relay', + 'Blocked Relays': 'Blocked Relays', + 'Blocking...': 'Blocking...', + Blossom: 'Blossom', + Book: 'Book', + 'Brief description of the event': 'Brief description of the event', + 'Brief summary (optional)': 'Brief summary (optional)', + 'Brief summary of the article (optional)': 'Brief summary of the article (optional)', + 'Browse Cache': 'Browse Cache', + 'C-Tag': 'C-Tag', + 'Cache Relays': 'Cache Relays', + 'Cache cleared successfully': 'Cache cleared successfully', + 'Cache refreshed successfully': 'Cache refreshed successfully', + 'Cache relays are used to store and retrieve events locally. These relays are merged with your inbox and outbox relays.': + 'Cache relays are used to store and retrieve events locally. These relays are merged with your inbox and outbox relays.', + 'Cache relays must be local network URLs only (e.g., ws://localhost:4869 or ws://127.0.0.1:4869)': + 'Cache relays must be local network URLs only (e.g., ws://localhost:4869 or ws://127.0.0.1:4869)', + 'Cache relays saved': 'Cache relays saved', + Cancelled: 'Cancelled', + Chapter: 'Chapter', + 'Chapter Title': 'Chapter Title', + 'Chapter title (optional)': 'Chapter title (optional)', + Citation: 'Citation', + 'Citation title (optional)': 'Citation title (optional)', + 'Clean up duplicate replaceable events? This will keep only the newest version of each event.': + 'Clean up duplicate replaceable events? This will keep only the newest version of each event.', + 'Cleaned up {{deleted}} duplicate entries, kept {{kept}}': + 'Cleaned up {{deleted}} duplicate entries, kept {{kept}}', + 'Cleaned up {{deleted}} duplicate entries, kept {{kept}} (total items after cleanup: {{total}})': + 'Cleaned up {{deleted}} duplicate entries, kept {{kept}} (total items after cleanup: {{total}})', + 'Cleanup Duplicates': 'Cleanup Duplicates', + Clear: 'Clear', + 'Clear Cache': 'Clear Cache', + 'Clear Service Worker': 'Clear Service Worker', + 'Clear cached data stored in your browser, including IndexedDB events, localStorage settings, and service worker caches.': + 'Clear cached data stored in your browser, including IndexedDB events, localStorage settings, and service worker caches.', + 'Click update to get the latest features and improvements': + 'Click update to get the latest features and improvements', + Close: 'Close', + 'Comma or space-separated topics (will be added as t-tags)': + 'Comma or space-separated topics (will be added as t-tags)', + Command: 'Command', + Configure: 'Configure', + 'Connect Wallet': 'Connect Wallet', + 'Console Logs': 'Console Logs', + 'Console logs cleared': 'Console logs cleared', + 'Content is required': 'Content is required', + 'Content must be 5000 characters or less': 'Content must be 5000 characters or less', + Controversial: 'Controversial', + 'Copied!': 'Copied!', + 'Copy to clipboard': 'Copy to clipboard', + 'Create Article': 'Create Article', + 'Create Citation': 'Create Citation', + 'Create Highlight': 'Create Highlight', + 'Create New Thread': 'Create New Thread', + 'Create Poll': 'Create Poll', + 'Create Thread': 'Create Thread', + 'Create a Spell': 'Create a Spell', + 'Creating...': 'Creating...', + 'D-Tag': 'D-Tag', + 'D-Tag is required for articles': 'D-Tag is required for articles', + DOI: 'DOI', + 'Date-based (all-day)': 'Date-based (all-day)', + 'Default expiration (months)': 'Default expiration (months)', + 'Default quiet period (days)': 'Default quiet period (days)', + 'Delete All': 'Delete All', + 'Delete item': 'Delete item', + 'Deleted {{count}} event(s)': 'Deleted {{count}} event(s)', + 'Deletion request sent': 'Deletion request sent', + 'Description (content)': 'Description (content)', + 'Digital Object Identifier (optional)': 'Digital Object Identifier (optional)', + 'Disable word wrap': 'Disable word wrap', + 'Discovered Relays': 'Discovered Relays', + 'Discovering relays...': 'Discovering relays...', + Discussion: 'Discussion', + Discussions: 'Discussions', + Downvote: 'Downvote', + 'Edited by': 'Edited by', + Editor: 'Editor', + 'Editor name (optional)': 'Editor name (optional)', + 'Enable word wrap': 'Enable word wrap', + 'End date': 'End date', + 'End date must be after start date': 'End date must be after start date', + 'Enter a Nostr event identifier (nevent, naddr, note, or hex ID) OR a web URL (https://). Not both.': + 'Enter a Nostr event identifier (nevent, naddr, note, or hex ID) OR a web URL (https://). Not both.', + 'Enter a descriptive title for your thread': 'Enter a descriptive title for your thread', + 'Enter the author name': 'Enter the author name', + 'Enter the book title': 'Enter the book title', + 'Enter the specific text you want to highlight in the main content area above': + 'Enter the specific text you want to highlight in the main content area above', + 'Event IDs (ids)': 'Event IDs (ids)', + 'Event appears to be invalid or corrupted': 'Event appears to be invalid or corrupted', + 'Event has no value data': 'Event has no value data', + 'Event is missing required fields: {{fields}}': 'Event is missing required fields: {{fields}}', + 'Event type': 'Event type', + 'Expiration Tags': 'Expiration Tags', + 'Export OPML': 'Export OPML', + 'Export as AsciiDoc': 'Export as AsciiDoc', + 'Export as Markdown': 'Export as Markdown', + 'External Citation': 'External Citation', + 'External Citation Settings': 'External Citation Settings', + 'Failed to add relay. Please try again.': 'Failed to add relay. Please try again.', + 'Failed to add relays': 'Failed to add relays', + 'Failed to block relay. Please try again.': 'Failed to block relay. Please try again.', + 'Failed to cleanup duplicates': 'Failed to cleanup duplicates', + 'Failed to clear cache': 'Failed to clear cache', + 'Failed to copy': 'Failed to copy', + 'Failed to create relay set. Please try again.': + 'Failed to create relay set. Please try again.', + 'Failed to create thread': 'Failed to create thread', + 'Failed to create thread. Please try a different relay.': + 'Failed to create thread. Please try a different relay.', + 'Failed to delete all items': 'Failed to delete all items', + 'Failed to delete item': 'Failed to delete item', + 'Failed to discover relays': 'Failed to discover relays', + 'Failed to export OPML file': 'Failed to export OPML file', + 'Failed to export article': 'Failed to export article', + 'Failed to import OPML file: {{error}}': 'Failed to import OPML file: {{error}}', + 'Failed to load RSS feeds': 'Failed to load RSS feeds', + 'Failed to load store items': 'Failed to load store items', + 'Failed to mute user privately': 'Failed to mute user privately', + 'Failed to mute user publicly': 'Failed to mute user publicly', + 'Failed to pin note': 'Failed to pin note', + 'Failed to publish post': 'Failed to publish post', + 'Failed to publish reply': 'Failed to publish reply', + 'Failed to publish thread': 'Failed to publish thread', + 'Failed to publish to some relays. Please try again or use different relays.': + 'Failed to publish to some relays. Please try again or use different relays.', + 'Failed to save RSS feeds': 'Failed to save RSS feeds', + 'Failed to save cache relays': 'Failed to save cache relays', + 'Failed to save relay list': 'Failed to save relay list', + 'Failed to unregister service worker: ': 'Failed to unregister service worker: ', + 'Failed to unsubscribe from topic': 'Failed to unsubscribe from topic', + Favorite: 'Favorite', + Fetch: 'Fetch', + 'Fetch once, then stop.': 'Fetch once, then stop.', + 'Filter by': 'Filter by', + 'Flat View': 'Flat View', + 'Font size': 'Font size', + 'Full Quote/Context': 'Full Quote/Context', + 'Full-text search query': 'Full-text search query', + Geohash: 'Geohash', + 'Geohash (optional)': 'Geohash (optional)', + 'Global quiet mode': 'Global quiet mode', + 'Group discussions by topic': 'Group discussions by topic', + 'Grouped View': 'Grouped View', + Groups: 'Groups', + 'Handler {{index}}': 'Handler {{index}}', + 'Hardcopy Citation': 'Hardcopy Citation', + 'Hardcopy Citation Settings': 'Hardcopy Citation Settings', + Hide: 'Hide', + 'Hide interactions on all posts': 'Hide interactions on all posts', + 'Hide interactions on posts with quiet tags': 'Hide interactions on posts with quiet tags', + 'High PoW': 'High PoW', + 'Higher values make your thread harder to mine but more unique.': + 'Higher values make your thread harder to mine but more unique.', + Highlight: 'Highlight', + 'Highlight Settings': 'Highlight Settings', + 'How to Create a Highlight (NIP-84)': 'How to Create a Highlight (NIP-84)', + 'Human-readable spell name': 'Human-readable spell name', + 'Image URL': 'Image URL', + 'Import OPML': 'Import OPML', + 'Imported {{count}} feed(s) from OPML file': 'Imported {{count}} feed(s) from OPML file', + 'In-Browser Cache': 'In-Browser Cache', + Insert: 'Insert', + 'Insert URL into your post and publish to Nostr GIF library (NIP-94).': + 'Insert URL into your post and publish to Nostr GIF library (NIP-94).', + 'Insert event or address': 'Insert event or address', + 'Insert mention': 'Insert mention', + 'Internal Citation': 'Internal Citation', + 'Internal Citation Settings': 'Internal Citation Settings', + 'Invalid Event': 'Invalid Event', + 'Invalid Lightning Address': 'Invalid Lightning Address', + 'Invalid Lightning Address. Please enter a valid Lightning Address or LNURL.': + 'Invalid Lightning Address. Please enter a valid Lightning Address or LNURL.', + 'Invalid URL': 'Invalid URL', + 'Invalid content JSON': 'Invalid content JSON', + 'Invalid relay URL': 'Invalid relay URL', + 'Invalid source. Please enter a note ID, nevent, naddr, hex ID, or URL.': + 'Invalid source. Please enter a note ID, nevent, naddr, hex ID, or URL.', + 'Item deleted successfully': 'Item deleted successfully', + JSON: 'JSON', + 'Join link': 'Join link', + 'Journal/Publication name (optional)': 'Journal/Publication name (optional)', + Json: 'JSON', + Kinds: 'Kinds', + 'Language Model': 'Language Model', + Large: 'Large', + 'Leave empty for HiveTalk, or paste Zoom / Teams / other link': + 'Leave empty for HiveTalk, or paste Zoom / Teams / other link', + 'Lightning payment failed': 'Lightning payment failed', + Limit: 'Limit', + 'Live feed; keeps updating.': 'Live feed; keeps updating.', + 'Loading more...': 'Loading more...', + 'Loading relays...': 'Loading relays...', + 'Location (optional)': 'Location (optional)', + 'Log in to run this spell (it uses $me or $contacts).': + 'Log in to run this spell (it uses $me or $contacts).', + 'Login failed': 'Login failed', + 'Login to configure RSS feeds': 'Login to configure RSS feeds', + 'Long-form Article': 'Long-form Article', + 'Mailbox relays saved': 'Mailbox relays saved', + 'Mark as NSFW': 'Mark as NSFW', + 'Maximum {{max}} invitees': 'Maximum {{max}} invitees', + 'Maximum {{max}} invitees allowed': 'Maximum {{max}} invitees allowed', + Medium: 'Medium', + Mode: 'Mode', + 'Most Zapped': 'Most Zapped', + 'Move to top': 'Move to top', + 'Multiple choice': 'Multiple choice', + 'Mute failed': 'Mute failed', + NSFW: 'NSFW', + Name: 'Name', + 'Name of the language model used': 'Name of the language model used', + 'New External Citation': 'New External Citation', + 'New Hardcopy Citation': 'New Hardcopy Citation', + 'New Highlight': 'New Highlight', + 'New Internal Citation': 'New Internal Citation', + 'New Long-form Article': 'New Long-form Article', + 'New Poll': 'New Poll', + 'New Prompt Citation': 'New Prompt Citation', + 'New Public Message': 'New Public Message', + 'New Wiki Article': 'New Wiki Article', + 'New Wiki Article (Markdown)': 'New Wiki Article (Markdown)', + Newest: 'Newest', + 'No JSON available': 'No JSON available', + 'No RSS feeds found in OPML file': 'No RSS feeds found in OPML file', + 'No cached data found.': 'No cached data found.', + 'No console logs captured yet': 'No console logs captured yet', + 'No events found': 'No events found', + 'No feeds configured. Default feed will be used.': + 'No feeds configured. Default feed will be used.', + 'No feeds to export': 'No feeds to export', + 'No groups available. Join some groups first.': 'No groups available. Join some groups first.', + 'No items in this store.': 'No items in this store.', + 'No items match your search.': 'No items match your search.', + 'No logs match the current filters': 'No logs match the current filters', + 'No posts found': 'No posts found', + 'No posts match your search': 'No posts match your search', + 'No relays available. Please configure relays in settings.': + 'No relays available. Please configure relays in settings.', + 'No service workers or caches found for this app': + 'No service workers or caches found for this app', + 'No users found': 'No users found', + 'No valid RSS feed URLs found in OPML file': 'No valid RSS feed URLs found in OPML file', + 'Note pinned': 'Note pinned', + 'Note unpinned': 'Note unpinned', + Oldest: 'Oldest', + 'Open Timestamp': 'Open Timestamp', + 'Opens in a new tab. Copy a GIF URL there, then paste below. If this picker closed, click “Insert GIF” again to paste.': + 'Opens in a new tab. Copy a GIF URL there, then paste below. If this picker closed, click “Insert GIF” again to paste.', + Option: 'Option', + Optional: 'Optional', + 'Optional image for the event': 'Optional image for the event', + 'Optionally, add the full quote/context to show your highlight within it': + 'Optionally, add the full quote/context to show your highlight within it', + PM: 'PM', + 'Page Range': 'Page Range', + Pages: 'Pages', + 'Paste URL of a GIF': 'Paste URL of a GIF', + 'Paste the entire original passage that contains your highlight': + 'Paste the entire original passage that contains your highlight', + Photo: 'Photo', + 'Picture Note': 'Picture Note', + 'Pin note': 'Pin note', + 'Plain text description of the query': 'Plain text description of the query', + 'Please login to view bookmarks': 'Please login to view bookmarks', + 'Please select a group': 'Please select a group', + 'Please select at least one relay': 'Please select at least one relay', + 'Please set a start date': 'Please set a start date', + 'Poll with no options': 'Poll with no options', + 'Post published to some relays': 'Post published to some relays', + 'Posts will automatically include expiration tags': + 'Posts will automatically include expiration tags', + 'Posts will automatically include quiet tags': 'Posts will automatically include quiet tags', + 'Posts will be quiet for this many days': 'Posts will be quiet for this many days', + 'Posts will expire after this many months': 'Posts will expire after this many months', + 'Processing...': 'Processing...', + 'Profile event not available': 'Profile event not available', + 'Prompt Citation': 'Prompt Citation', + 'Prompt Citation Settings': 'Prompt Citation Settings', + 'Prompt Conversation Script': 'Prompt Conversation Script', + 'Proof of Work': 'Proof of Work', + 'Publish to Relays': 'Publish to Relays', + 'Published By': 'Published By', + 'Published In': 'Published In', + 'Published On': 'Published On', + 'Published in': 'Published in', + 'Published on': 'Published on', + 'Publisher name (optional)': 'Publisher name (optional)', + 'Quiet Tags': 'Quiet Tags', + 'RSS Feed': 'RSS Feed', + 'RSS Feed Settings': 'RSS Feed Settings', + 'RSS Feeds': 'RSS Feeds', + 'RSS feeds exported to OPML file': 'RSS feeds exported to OPML file', + 'RSS feeds saved': 'RSS feeds saved', + 'Rate limited. Please wait before trying again.': + 'Rate limited. Please wait before trying again.', + 'Reaction published': 'Reaction published', + 'Reaction removed': 'Reaction removed', + 'Read full article': 'Read full article', + 'Reading group entry': 'Reading group entry', + 'Readings Options': 'Readings Options', + Recipients: 'Recipients', + 'Recipients detected from your message:': 'Recipients detected from your message:', + 'Recommended Relays': 'Recommended Relays', + 'Recommended applications for handling events of kind {{kind}}': + 'Recommended applications for handling events of kind {{kind}}', + 'Reference to the cited Nostr event in kind:pubkey:hex format': + 'Reference to the cited Nostr event in kind:pubkey:hex format', + 'Refresh Cache': 'Refresh Cache', + 'Refreshing posts...': 'Refreshing posts...', + 'Relative: 7d, 24h, 1w, 1mo, 1y. Or Unix timestamp.': + 'Relative: 7d, 24h, 1w, 1mo, 1y. Or Unix timestamp.', + Relay: 'Relay', + 'Relay Hint': 'Relay Hint', + 'Relay URL (optional)': 'Relay URL (optional)', + 'Relay blocked successfully': 'Relay blocked successfully', + 'Relay requires authentication for write access. Please try a different relay or contact the relay operator.': + 'Relay requires authentication for write access. Please try a different relay or contact the relay operator.', + 'Relay set options': 'Relay set options', + 'Remove from favorites': 'Remove from favorites', + Rendered: 'Rendered', + 'Reply published': 'Reply published', + 'Reply published to some relays': 'Reply published to some relays', + 'Reply to Public Message': 'Reply to Public Message', + 'Republish to all active relays': 'Republish to all active relays', + 'Republish to all available relays': 'Republish to all available relays', + 'Required: start (or start date), invitees. Optional: title, end, location, summary, topics, image.': + 'Required: start (or start date), invitees. Optional: title, end, location, summary, topics, image.', + 'Required: start time or start date. Optional: title, end, location, summary, topics, image.': + 'Required: start time or start date. Optional: title, end, location, summary, topics, image.', + 'Required: start time, invitees. Join link defaults to HiveTalk. Optional: title, end, summary, topics, image.': + 'Required: start time, invitees. Join link defaults to HiveTalk. Optional: title, end, summary, topics, image.', + 'Required: start time. Join link defaults to HiveTalk. Optional: title, end, summary, topics, image.': + 'Required: start time. Join link defaults to HiveTalk. Optional: title, end, summary, topics, image.', + 'Respect quiet tags': 'Respect quiet tags', + 'Search (NIP-50)': 'Search (NIP-50)', + 'Search by name or npub…': 'Search by name or npub…', + 'Search calendar, publications, wiki…': 'Search calendar, publications, wiki…', + 'Search for user…': 'Search for user…', + 'Search items...': 'Search items...', + 'Search logs...': 'Search logs...', + 'Search notes, threads, long-form…': 'Search notes, threads, long-form…', + 'Search on GifBuddy': 'Search on GifBuddy', + 'Search posts...': 'Search posts...', + 'Search threads by title, content, tags, npub, author...': + 'Search threads by title, content, tags, npub, author...', + 'Searching all available relays...': 'Searching all available relays...', + 'Searching…': 'Searching…', + 'See reference': 'See reference', + 'Select Group': 'Select Group', + 'Select Media Type': 'Select Media Type', + 'Select group...': 'Select group...', + 'Select relays': 'Select relays', + 'Select the group where you want to create this discussion.': + 'Select the group where you want to create this discussion.', + 'Select topic...': 'Select topic...', + 'Selected text': 'Selected text', + 'Send Public Message': 'Send Public Message', + 'Send a Lightning payment to this user': 'Send a Lightning payment to this user', + 'Service worker caches cleared. Please reload the page.': + 'Service worker caches cleared. Please reload the page.', + 'Service worker unregistered and caches cleared. Please reload the page.': + 'Service worker unregistered and caches cleared. Please reload the page.', + 'Service worker unregistered. Please reload the page.': + 'Service worker unregistered. Please reload the page.', + 'Share your thoughts, ask questions, or start a discussion...': + 'Share your thoughts, ask questions, or start a discussion...', + 'Short Video Note': 'Short Video Note', + 'Show RSS Feed': 'Show RSS Feed', + 'Show all discussions in a single list': 'Show all discussions in a single list', + 'Show less': 'Show less', + Since: 'Since', + Small: 'Small', + 'Some relays have temporarily disabled writes.': + 'Some relays have temporarily disabled writes.', + Source: 'Source', + 'Spell definition': 'Spell definition', + 'Spell published': 'Spell published', + 'Start date': 'Start date', + 'Start typing to see a preview...': 'Start typing to see a preview...', + 'Subject (Book Title)': 'Subject (Book Title)', + 'Subject (book title) is required for reading groups': + 'Subject (book title) is required for reading groups', + 'Subject / Topics': 'Subject / Topics', + Subscribe: 'Subscribe', + Subscribed: 'Subscribed', + 'Subscribed to topic': 'Subscribed to topic', + 'Subscribed to topic (local)': 'Subscribed to topic (local)', + 'Subscribing...': 'Subscribing...', + Summary: 'Summary', + 'Supported Event Types': 'Supported Event Types', + 'Take a note': 'Take a note', + 'The full prompt conversation (optional)': 'The full prompt conversation (optional)', + 'The main editor above should contain only the text you want to highlight. This field should contain the full quote or paragraph for context.': + 'The main editor above should contain only the text you want to highlight. This field should contain the full quote or paragraph for context.', + 'These relays were found from your NIP-05 identifier and signer. You can add them to your relay list.': + 'These relays were found from your NIP-05 identifier and signer. You can add them to your relay list.', + 'This file could be either audio or video. Please select the correct type:': + 'This file could be either audio or video. Please select the correct type:', + 'This store does not contain replaceable events': + 'This store does not contain replaceable events', + 'This will add additional tags for author and subject to help organize reading group discussions.': + 'This will add additional tags for author and subject to help organize reading group discussions.', + 'Thread Content': 'Thread Content', + 'Thread Title': 'Thread Title', + 'Thread creation timed out. Please try again.': 'Thread creation timed out. Please try again.', + 'Thread published': 'Thread published', + 'Threads are organized by topics. Choose a topic that best fits your discussion.': + 'Threads are organized by topics. Choose a topic that best fits your discussion.', + 'Time-based': 'Time-based', + 'Title is required': 'Title is required', + 'Title must be 100 characters or less': 'Title must be 100 characters or less', + 'To translate notes and other content, use your browser’s built-in translation. For example: right-click the page and choose “Translate to…”, or use the translate icon in the address bar.': + 'To translate notes and other content, use your browser’s built-in translation. For example: right-click the page and choose “Translate to…”, or use the translate icon in the address bar.', + Top: 'Top', + Topic: 'Topic', + URL: 'URL', + 'URL of the article cover image (optional)': 'URL of the article cover image (optional)', + 'Unique identifier for this article (required)': + 'Unique identifier for this article (required)', + 'Unmute failed': 'Unmute failed', + 'Unpin note': 'Unpin note', + Unsubscribe: 'Unsubscribe', + 'Unsubscribed from topic': 'Unsubscribed from topic', + 'Unsubscribing...': 'Unsubscribing...', + Until: 'Until', + Untitled: 'Untitled', + Update: 'Update', + 'Updating...': 'Updating...', + 'Upload Audio Comment': 'Upload Audio Comment', + 'Upload Audio Message': 'Upload Audio Message', + 'Upload Media': 'Upload Media', + Upvote: 'Upvote', + 'User unmuted': 'User unmuted', + 'Version number (optional)': 'Version number (optional)', + Video: 'Video', + 'Video Note': 'Video Note', + 'Video file': 'Video file', + 'View Console Logs': 'View Console Logs', + 'View JSON': 'View JSON', + 'View cached items in this store.': 'View cached items in this store.', + 'View definition': 'View definition', + 'View details about cached data in IndexedDB stores. Click on a store to view its items.': + 'View details about cached data in IndexedDB stores. Click on a store to view its items.', + 'View on Alexandria': 'View on Alexandria', + 'View on DecentNewsroom': 'View on DecentNewsroom', + 'View on Wikistr': 'View on Wikistr', + 'View recent console logs for debugging': 'View recent console logs for debugging', + 'Voice Comment': 'Voice Comment', + 'Voice Note': 'Voice Note', + 'Voice note or audio file': 'Voice note or audio file', + Volume: 'Volume', + 'Volume number (optional)': 'Volume number (optional)', + 'Vote published': 'Vote published', + 'Vote removed': 'Vote removed', + 'Website where LLM was accessed (optional)': 'Website where LLM was accessed (optional)', + 'Wiki Article (AsciiDoc)': 'Wiki Article (AsciiDoc)', + 'Wiki Article (Markdown)': 'Wiki Article (Markdown)', + 'You can only delete your own notes': 'You can only delete your own notes', + 'You must be logged in to create a thread': 'You must be logged in to create a thread', + 'You need to add at least one media server in order to upload media files.': + 'You need to add at least one media server in order to upload media files.', + 'You need to login first': 'You need to login first', + 'Your account is blocked from posting to this relay.': + 'Your account is blocked from posting to this relay.', + Zap: 'Zap', + 'Zap failed': 'Zap failed', + created_at: 'created_at', + 'e tag of kind 1040 event (optional)': 'e tag of kind 1040 event (optional)', + 'e.g. meetup, conference': 'e.g. meetup, conference', + 'e.g., 123-145 (optional)': 'e.g., 123-145 (optional)', + 'e.g., GPT-4, Claude, etc. (required)': 'e.g., GPT-4, Claude, etc. (required)', + 'e.g., my-article-title': 'e.g., my-article-title', + entries: 'entries', + 'from Bunker': 'from Bunker', + 'from Extension': 'from Extension', + 'from NIP-05': 'from NIP-05', + general: 'general', + 'https://example.com (required)': 'https://example.com (required)', + 'https://example.com/image.jpg': 'https://example.com/image.jpg', + id: 'id', + items: 'items', + kind: 'kind', + 'kind:pubkey:hex format (required)': 'kind:pubkey:hex format (required)', + 'last updated': 'last updated', + matching: 'matching', + naddr: 'naddr', + nevent: 'nevent', + 'nevent1..., naddr1..., note1..., hex ID, or https://...': + 'nevent1..., naddr1..., note1..., hex ID, or https://...', + 'no notes found': 'no notes found', + of: 'of', + 'on note': 'on note', + optional: 'optional', + pubkey: 'pubkey', + 'sent a public message': 'sent a public message', + 'sent you a public message': 'sent you a public message', + 'sent you a public message (along with {{count}} others)': + 'sent you a public message (along with {{count}} others)', + sig: 'sig', + 'started a discussion in {{topic}}': 'started a discussion in {{topic}}', + tags: 'tags', + thread: 'thread', + threads: 'threads', + 'topic1, topic2, topic3': 'topic1, topic2, topic3', + '{{count}} relay(s) selected': '{{count}} relay(s) selected', + '🔞 NSFW 🔞': '🔞 NSFW 🔞' } } diff --git a/src/i18n/locales/pt-BR.ts b/src/i18n/locales/pt-BR.ts index 43ce3c9a..8d31f6a8 100644 --- a/src/i18n/locales/pt-BR.ts +++ b/src/i18n/locales/pt-BR.ts @@ -5,8 +5,12 @@ export default { 'New Note': 'Nova nota', Post: 'Postar', Home: 'Início', + Feed: 'Feed', + 'Favorites Feed': 'Favorites Feed', + 'Pinned note': 'Pinned note', 'Relay settings': 'Configurações de relay', Settings: 'Configurações', + 'Account menu': 'Account menu', SidebarRelays: 'Relays', Refresh: 'Atualizar', Profile: 'Perfil', @@ -30,6 +34,12 @@ export default { 'loading...': 'Carregando...', 'Loading...': 'Carregando...', 'no more notes': 'Não há mais notas', + 'calendar entries': 'calendar entries', + 'Loading calendar events...': 'Loading calendar events...', + 'No calendar events found': 'No calendar events found', + 'Calendar events in the next {{count}} months': 'Calendar events in the next {{count}} months', + 'The nostr.band relay appears to be temporarily out of service. Please try again later.': + 'The nostr.band relay appears to be temporarily out of service. Please try again later.', 'reply to': 'Respondendo a', reply: 'Responder', Reply: 'Responder', @@ -37,6 +47,9 @@ export default { 'Write something...': 'Escreva algo...', Cancel: 'Cancelar', Mentions: 'Menções', + 'Search for event or address…': 'Search for event or address…', + 'Search notes…': 'Search notes…', + 'No notes found': 'No notes found', 'Failed to post': 'Falha ao postar', 'Post successful': 'Nota publicada com sucesso', 'Your post has been published': 'Sua nota foi publicada', @@ -45,7 +58,22 @@ export default { Quote: 'Citar', 'Copy event ID': 'Copiar ID do evento', 'Copy user ID': 'Copiar ID do usuário', + 'Send public message': 'Send public message', 'View raw event': 'Ver evento bruto', + 'Edit this event': 'Edit this event', + 'Clone or fork this event': 'Clone or fork this event', + 'Event kind': 'Event kind', + 'Note content': 'Note content', + Publish: 'Publish', + 'Post published': 'Post published', + 'Edit content and tags, then publish a new signed event.': + 'Edit content and tags, then publish a new signed event.', + 'Log in to publish': 'Log in to publish', + 'Set when you publish': 'set when you publish', + 'id and sig are assigned when you publish': 'id and sig are assigned when you publish', + 'Published to some relays only': 'Published to some relays only', + 'Add field': 'Add field', + 'View full profile': 'View full profile', Like: 'Curtir', 'switch to light theme': 'Alternar para tema claro', 'switch to dark theme': 'Alternar para tema escuro', @@ -56,18 +84,143 @@ export default { "username's used relays": 'relays usados por {{username}}', "username's muted": '{{username}} silenciado', Login: 'Entrar', + 'Please log in to view notifications.': 'Please log in to view notifications.', 'Follows you': 'Segue você', 'Relay Settings': 'Configurações de relay', + 'Relays and Storage Settings': 'Relays and Storage Settings', 'Relay set name': 'Nome do conjunto de relay', 'Add a new relay set': 'Adicionar um novo conjunto de relay', Add: 'Adicionar', 'n relays': '{{n}} relays', Rename: 'Renomear', + 'Copy share link': 'Copy share link', + 'Copy address': 'Copy address', + 'Copy payto URI': 'Copy payto URI', + 'Copied payto address': 'Copied payto address', + 'Copied to clipboard': 'Copied to clipboard', + 'Copied {{label}} address': 'Copied {{label}} address', + 'Lightning payment address – copy to pay via your wallet': + 'Lightning payment address – copy to pay via your wallet', + 'Payment address – copy to use in your wallet or app': + 'Payment address – copy to use in your wallet or app', + 'Click to open payment options': 'Click to open payment options', + 'Click to copy address': 'Click to copy address', + 'Open on website': 'Open on website', + 'Raw profile event': 'Raw profile event', + 'Full profile event': 'Full profile event', + 'Event (JSON)': 'Event (JSON)', + 'Save full profile': 'Save full profile', + 'Add tag': 'Add tag', + 'Remove tag': 'Remove tag', + 'Tag name': 'Tag name', + Value: 'Value', + 'Add value to tag': 'Add value to tag', + 'Remove value': 'Remove value', + 'No tags. Click "Add tag" to add one.': 'No tags. Click "Add tag" to add one.', + 'Profile updated': 'Profile updated', + 'Failed to publish profile': 'Failed to publish profile', + 'Invalid profile JSON': 'Invalid profile JSON', + 'Refresh cache': 'Refresh cache', + 'Force-refresh profile and payment info from relays': + 'Force-refresh profile and payment info from relays', + 'Profile and payment cache refreshed': 'Profile and payment cache refreshed', + 'Failed to refresh cache': 'Failed to refresh cache', + 'Raw payment info event': 'Raw payment info event', + 'Payment info': 'Payment info', + 'Edit payment info': 'Edit payment info', + 'Add payment info': 'Add payment info', + 'No payment info event yet. Click "Add payment info" to create one.': + 'No payment info event yet. Click "Add payment info" to create one.', + 'Content (JSON)': 'Content (JSON)', + Tags: 'Tags', + 'Tags (JSON array of arrays, e.g. [["payto","lightning","user@domain.com"]])': + 'Tags (JSON array of arrays, e.g. [["payto","lightning","user@domain.com"]])', + 'Payment info updated': 'Payment info updated', + 'Failed to publish payment info': 'Failed to publish payment info', + 'Invalid tags JSON': 'Invalid tags JSON', + 'Payment methods': 'Payment methods', + 'NIP-A3 payto tags: type (e.g. lightning) and authority (e.g. user@domain.com).': + 'NIP-A3 payto tags: type (e.g. lightning) and authority (e.g. user@domain.com).', + 'Type (e.g. lightning)': 'Type (e.g. lightning)', + 'Authority (e.g. user@domain.com)': 'Authority (e.g. user@domain.com)', + 'Add payment method': 'Add payment method', + Remove: 'Remove', + 'Additional content (JSON)': 'Additional content (JSON)', + 'Show full event JSON': 'Show full event JSON', + 'Tag list': 'Tag list', + 'Profile event tags (e.g. lud16, nip05, website). Saved with kind 0.': + 'Profile event tags (e.g. lud16, nip05, website). Saved with kind 0.', + 'Tag value': 'Tag value', + 'Saving…': 'Saving…', 'Share with Jumble': 'Compartilhar com Jumble', 'Share with Alexandria': 'Compartilhar com Alexandria', + 'Start video call': 'Start video call', + 'Copy call invite link': 'Copy call invite link', + 'Start call about this': 'Start call about this', + 'Send call invite': 'Send call invite', + 'Join the video call': 'Join the video call', + 'Schedule video call': 'Schedule video call', + "You're invited to a scheduled video call.": "You're invited to a scheduled video call.", + 'Create a calendar event and send an invite. The recipient will see the event with a join link.': + 'Create a calendar event and send an invite. The recipient will see the event with a join link.', + 'Schedule a video call': 'Schedule a video call', + 'Create a calendar event and send kind 24 invites to each listed invitee.': + 'Create a calendar event and send kind 24 invites to each listed invitee.', + Invitees: 'Invitees', + 'Paste nostr:npub1... or nostr:nprofile1... (one or more)': + 'Paste nostr:npub1... or nostr:nprofile1... (one or more)', + 'Schedule and send invites': 'Schedule and send invites', + 'Add at least one invitee (paste nostr:npub or nostr:nprofile links)': + 'Add at least one invitee (paste nostr:npub or nostr:nprofile links)', + 'Scheduled call created and {{count}} invite(s) sent': + 'Scheduled call created and {{count}} invite(s) sent', + 'Join video call': 'Join video call', + 'Scheduled video call': 'Scheduled video call', + 'Video call': 'Video call', + 'Schedule and send invite': 'Schedule and send invite', + 'Scheduling…': 'Scheduling…', + 'Please set a start time': 'Please set a start time', + 'End time must be after start time': 'End time must be after start time', + 'Failed to schedule call': 'Failed to schedule call', + 'Scheduled call created and invite sent': 'Scheduled call created and invite sent', + RSVP: 'RSVP', + 'RSVP: {{status}}': 'RSVP: {{status}}', + Accepted: 'Accepted', + Tentative: 'Tentative', + Declined: 'Declined', + 'You need to log in to RSVP': 'You need to log in to RSVP', + 'RSVP updated': 'RSVP updated', + 'Failed to update RSVP': 'Failed to update RSVP', + Organizer: 'Organizer', + Attendees: 'Attendees', + 'No response': 'No response', + 'Calendar Events': 'Calendar Events', + 'Calendar Event': 'Calendar Event', + 'Schedule in-person meeting': 'Schedule in-person meeting', + 'Create a calendar event and send an invite. No video link — for real-life meetups, conferences, etc.': + 'Create a calendar event and send an invite. No video link — for real-life meetups, conferences, etc.', + "You're invited to an in-person meeting.": "You're invited to an in-person meeting.", + 'Meeting created and invite sent': 'Meeting created and invite sent', + 'Failed to create meeting': 'Failed to create meeting', + 'Create and send invite': 'Create and send invite', + 'Creating…': 'Creating…', + 'In-person meeting': 'In-person meeting', + Location: 'Location', + 'Address, venue, or place': 'Address, venue, or place', + Description: 'Description', + 'Optional notes': 'Optional notes', + 'Create a calendar event for a real-life meetup and send kind 24 invites to each invitee.': + 'Create a calendar event for a real-life meetup and send kind 24 invites to each invitee.', + 'Meeting created and {{count}} invite(s) sent': 'Meeting created and {{count}} invite(s) sent', + 'Create and send invites': 'Create and send invites', + Title: 'Title', + Start: 'Start', + End: 'End', Delete: 'Excluir', 'Relay already exists': 'Relay já existe', 'invalid relay URL': 'URL de relay inválida', + 'Relay URL…': 'wss://… or relay host', + 'Open relay': 'Open relay', 'Add a new relay': 'Adicionar um novo relay', back: 'voltar', 'Lost in the void': 'Perdido no vazio', @@ -113,6 +266,19 @@ export default { 'Picture note requires images': 'Nota de imagem requer imagens', Relays: 'Relays', Image: 'imagem', + 'Upload Image': 'Upload Image', + 'Insert emoji': 'Insert emoji', + 'Insert GIF': 'Insert GIF', + 'Search GIFs': 'Search GIFs', + 'Choose a GIF': 'Choose a GIF', + 'Search GifBuddy for more GIFs': 'Search GifBuddy for more GIFs', + 'Add your own GIFs': 'Add your own GIFs', + 'Description (optional, for search)': 'Description (optional, for search)', + 'e.g. happy birthday, thumbs up': 'e.g. happy birthday, thumbs up', + 'Uploading...': 'Uploading...', + 'No GIFs found. Try searching or add your own. GIFs come from Nostr kind 1063 (NIP-94) events on GIF relays.': + 'No GIFs found. Try searching or add your own. GIFs come from Nostr kind 1063 (NIP-94) events on GIF relays.', + '{{name}} is not a GIF file': '{{name}} is not a GIF file', 'R & W': 'Leitura & Escrita', Read: 'Leitura', Write: 'Escrita', @@ -154,6 +320,9 @@ export default { Muted: 'Silenciados', Unmute: 'Silenciado', 'Unmute user': 'Usuário silenciado', + Block: 'Block', + Unblock: 'Unblock', + blocked: 'blocked', 'Append n relays': 'Adicionar {{n}} relays', Append: 'Adicionar', 'Select relays to append': 'Selecione os relays para adicionar', @@ -178,6 +347,24 @@ export default { 'Explore more': 'Explorar mais', 'Payment page': 'Página de pagamento', 'Supported NIPs': 'NIPs Suportados', + 'Relay liveliness (NIP-66)': 'Relay liveliness (NIP-66)', + 'Relay monitor (NIP-66)': 'Relay monitor (NIP-66)', + 'Auth required': 'Auth required', + 'Public (no auth)': 'Public (no auth)', + 'Payment required': 'Payment required', + 'No payment': 'No payment', + 'Writes required': 'Writes required', + 'Writes open': 'Writes open', + 'PoW required': 'PoW required', + 'No PoW': 'No PoW', + 'RTT open': 'RTT open', + 'RTT read': 'RTT read', + 'RTT write': 'RTT write', + 'Supported NIPs (from monitor)': 'Supported NIPs (from monitor)', + 'Last reported by monitor': 'Last reported by monitor', + Network: 'Network', + Type: 'Type', + Topics: 'Topics', 'Open in a': 'Abrir em {{a}}', 'Cannot handle event of kind k': 'Não é possível lidar com o evento do tipo {{k}}', 'Sorry! The note cannot be found 😔': 'Desculpe! A nota não pode ser encontrada 😔', @@ -209,9 +396,22 @@ export default { 'Seen on': 'Visto em', 'Temporarily display this reply': 'Exibir temporariamente esta resposta', 'Note not found': 'Nota não encontrada', + 'The note was not found on your relays or default relays.': + 'The note was not found on your relays or default relays.', + "Try searching author's relays": "Try searching author's relays", + 'Searching external relays...': 'Searching external relays...', + "This will connect to the author's relays and relay hints": + "This will connect to the author's relays and relay hints", + 'Note could not be found anywhere': 'Note could not be found anywhere', + 'Try external relays': 'Try external relays', + 'Searching...': 'Searching...', + 'Show relays': 'Show relays', + 'No external relay hints available': 'No external relay hints available', 'no more replies': 'não há mais respostas', 'Relay sets': 'Conjuntos de relay', 'Favorite Relays': 'Relays favoritos', + 'Search for Relays': 'Search for Relays', + 'Using app default relays': 'Using app default relays', "Following's Favorites": 'Favoritos de quem você segue', 'no more relays': 'não há mais relays', 'Favorited by': 'Favoritado por', @@ -227,11 +427,49 @@ export default { 'no bookmarks found': 'Nenhum favorito encontrado', 'no more bookmarks': 'Sem mais favoritos', Bookmarks: 'Favoritos', + 'Follow Packs': 'Follow Packs', + 'Follow Pack': 'Follow Pack', + 'Please log in to follow': 'Please log in to follow', + 'Following All': 'Following All', + 'Followed {{count}} users': 'Followed {{count}} users', + 'All available members are already followed or muted': + 'All available members are already followed or muted', + 'You are already following all members of this pack': + 'You are already following all members of this pack', + 'Failed to follow pack': 'Failed to follow pack', + '{{count}} profiles': '{{count}} profiles', 'Show more': 'Mostrar mais', General: 'Geral', Autoplay: 'Reprodução automática', 'Enable video autoplay on this device': 'Habilitar reprodução automática de vídeo neste dispositivo', + 'Add random relays to every publish': 'Random relays in publish list', + 'Add random relays to every publish description': + 'Adds {{n}} random public relays from the NIP-66 lively list (preferring monitors that reported a write RTT) to the publish relay list. When ON, they are selected by default; when OFF, they appear in the list but are unchecked so you can optionally include them.', + relayType_local: 'Local', + relayType_relay_list: 'Relay list', + relayType_client_default: 'Client default', + relayType_open_from: 'Current feed', + relayType_favorite: 'Favorite', + relayType_relay_set: 'Relay set', + relayType_contextual: 'Reply/PM', + relayType_randomly_selected: 'Random (optional)', + 'Session relays': 'Session relays', + 'Session relays tab description': + 'Relay logic for this session: working and striked preset relays, and scored random relays (used to prefer faster, proven relays when adding random relays to publish).', + 'Session relays preset working': 'Working preset relays', + 'Session relays preset working hint': + 'Preset relays (from app defaults) that have not reached 3 publish failures this session.', + 'Session relays preset striked': 'Striked preset relays', + 'Session relays preset striked hint': + 'Preset relays that have reached 3 publish failures this session and are skipped for the rest of the session.', + 'Session relays scored random': 'Scored random relays', + 'Session relays scored random hint': + 'Relays that have accepted at least one publish this session; used to prefer faster relays when picking random relays. Sorted by average latency.', + 'Session relays all striked': 'All striked relays (any source)', + successes: 'successes', + None: 'None', + 'Cache & offline storage': 'Cache & offline storage', 'Paste or drop media files to upload': 'Cole ou arraste arquivos de mídia para fazer upload', Preview: 'Pré-visualização', 'You are about to publish an event signed by [{{eventAuthorName}}]. You are currently logged in as [{{currentUsername}}]. Are you sure?': @@ -264,6 +502,7 @@ export default { 'Are you sure you want to reset your API key? This action cannot be undone.': 'Tem certeza de que deseja redefinir sua chave API? Esta ação não pode ser desfeita.', Warning: 'Aviso', + 'Errors & warnings': 'Errors & warnings', 'Your current API key will become invalid immediately, and any applications using it will stop working until you update them with the new key.': 'Sua chave API atual se tornará inválida imediatamente, e qualquer aplicativo que a utilize deixará de funcionar até que você os atualize com a nova chave.', 'Service address': 'Endereço do serviço', @@ -295,6 +534,9 @@ export default { Article: 'Artigo', Unfavorite: 'Desfavoritar', 'Recommended relays': 'Relays recomendados', + 'Show recommended relays panel': 'Show recommended relays panel', + 'Display the right-side panel with recommended relays on desktop': + 'Display the right-side panel with recommended relays on desktop', 'Blossom server URLs': 'URLs do servidor Blossom', 'You need to add at least one blossom server in order to upload media files.': 'Você precisa adicionar pelo menos um servidor Blossom para poder carregar arquivos de mídia.', @@ -321,7 +563,31 @@ export default { 'Refresh results': 'Atualizar resultados', Poll: 'Enquete', Media: 'Mídia', + Interests: 'Interests', + Calendar: 'Calendar', + 'No subscribed interests yet.': + 'No subscribed interests yet. Add topics in settings to see them here.', + 'No bookmarked notes with id tags yet.': + 'No bookmarked notes with id tags yet. Only classic (e-tag) bookmarks load in this feed.', + 'No follows or relays to load yet.': 'No follows or relays to load yet.', + 'Nothing to load for this feed.': 'Nothing to load for this feed.', 'Republish to ...': 'Republicar em ...', + 'All available relays': 'All available relays', + 'All active relays (monitoring list)': 'All active relays (monitoring list)', + 'Successfully republish to all available relays': + 'Successfully republish to all available relays', + 'Failed to republish to all available relays: {{error}}': + 'Failed to republish to all available relays: {{error}}', + 'Successfully republish to all active relays': 'Successfully republish to all active relays', + 'Failed to republish to all active relays: {{error}}': + 'Failed to republish to all active relays: {{error}}', + 'No active relays in monitoring list': 'No active relays in monitoring list', + 'No relay accepted the event': 'No relay accepted the event', + 'No relays available': 'No relays available', + 'No write relays configured': 'No write relays configured', + 'Relay did not accept the event': 'Relay did not accept the event', + 'Only {{count}} relay(s) accepted the event; at least 5 required for "all active relays".': + 'Only {{count}} relay(s) accepted the event; at least 5 required for "all active relays".', 'Successfully republish to your write relays': 'Successfully republish to your write relays', 'Failed to republish to your write relays: {{error}}': 'Failed to republish to your write relays: {{error}}', @@ -339,6 +605,7 @@ export default { 'No zaps yet': 'Ainda sem zaps', 'No more boosts': 'Sem mais boosts', 'No boosts yet': 'Ainda sem boosts', + 'n more boosts': '{{count}} more boosts', Boosts: 'Boosts', FollowListNotFoundConfirmation: 'Lista de seguindo não encontrada. Deseja criar uma nova? Se você seguiu usuários antes, por favor NÃO confirme, pois esta operação fará você perder sua lista de seguindo anterior.', @@ -361,8 +628,13 @@ export default { 'Maybe Later': 'Talvez mais tarde', "Don't remind me again": 'Não me lembrar novamente', Posts: 'Notas', + 'Posts (OPs)': 'Posts (OPs)', + 'Kind 1 replies': 'Kind 1 replies', + Comments: 'Comments', + 'Replies & comments': 'Replies & comments', Articles: 'Artigos', Highlights: 'Marcações', + 'A note from': 'A note from', Polls: 'Enquetes', 'Voice Posts': 'Áudios', 'Photo Posts': 'Fotos', @@ -387,6 +659,13 @@ export default { 'boosted your note': 'deu boost na sua nota', 'zapped your note': 'zappeou sua nota', 'zapped you': 'zappeou você', + zapped: 'zapped', + 'Invalid zap receipt': 'Invalid zap receipt', + 'Zapped note': 'Zapped note', + 'Zapped profile': 'Zapped profile', + 'Zap reply threshold': 'Zap reply threshold', + 'Zaps above this amount will appear as replies in threads': + 'Zaps above this amount will appear as replies in threads', 'Mark as read': 'Marcar como lida', Report: 'Denunciar', 'Successfully report': 'Denúncia enviada com sucesso', @@ -401,7 +680,6 @@ export default { 'See extra info for each notification': 'Ver informações extras para cada notificação', 'See more notifications at a glance': 'Ver mais notificações rapidamente', Detailed: 'Detalhado', - Compact: 'Compacto', 'Submit Relay': 'Enviar Relay', Homepage: 'Página inicial', 'Proof of Work (difficulty {{minPow}})': 'Prova de Trabalho (dificuldade {{minPow}})', @@ -429,6 +707,23 @@ export default { '{{count}} relays': '{{count}} relays', 'Republishing...': 'Republicando...', 'Trending Notes': 'Notas em tendência', + 'Trending on Your Favorite Relays': 'Trending on Your Favorite Relays', + 'Trending on the Default Relays': 'Trending on the Default Relays', + 'Latest from your follows': 'Latest from your follows', + 'Latest from our recommended follows': 'Latest from our recommended follows', + 'Loading follow list…': 'Loading follow list…', + 'Could not load recommended follows': 'Could not load recommended follows', + 'Your follow list is empty': 'Your follow list is empty', + 'Loading recent posts from follows…': 'Loading recent posts from follows…', + 'Loading more…': 'Loading more…', + 'No recent posts from this user in the current fetch': + 'No recent posts from this user in the current fetch', + 'Loading trending notes from your relays...': 'Loading trending notes from your relays...', + Sort: 'Sort', + newest: 'newest', + oldest: 'oldest', + 'most popular': 'most popular', + 'least popular': 'least popular', 'Connected to': 'Conectado a', 'Disconnect Wallet': 'Desconectar carteira', 'Are you absolutely sure?': 'Você tem certeza absoluta?', @@ -436,6 +731,690 @@ export default { Disconnect: 'Desconectar', 'Set up your wallet to send and receive sats!': 'Configure sua carteira para enviar e receber sats!', - 'Set up': 'Configurar' + 'Set up': 'Configurar', + 'nested events': 'nested events', + 'Loading RSS feeds...': 'Loading RSS feeds...', + 'No RSS feed items available': 'No RSS feed items available', + 'Show or hide the RSS page and sidebar entry': 'Show or hide the RSS page and sidebar entry', + 'Refreshing feeds...': 'Refreshing feeds...', + 'All feeds': 'All feeds', + 'All time': 'All time', + 'Last hour': 'Last hour', + 'Last day': 'Last day', + 'Last week': 'Last week', + 'Last month': 'Last month', + 'No items match your filters': 'No items match your filters', + 'Search...': 'Search...', + '{{count}} feeds': '{{count}} feeds', + 'Toggle filters': 'Toggle filters', + 'Showing {{filtered}} of {{total}} items': 'Showing {{filtered}} of {{total}} items', + Full: 'Full', + Compact: 'Compacto', + Expand: 'Expand', + 'help.title': 'Help', + 'help.tabShortcuts': 'Keyboard shortcuts', + 'help.tabOverview': 'App overview', + 'shortcuts.title': 'Keyboard shortcuts', + 'shortcuts.intro': + 'Shortcuts for this app and common browsing. Modifier combos are Shift+Alt+key (Option+Shift+key on macOS); either modifier order works when typing.', + 'shortcuts.sectionApp': 'This app', + 'shortcuts.sectionSearch': 'Search bar', + 'shortcuts.sectionStandard': 'Standard', + 'shortcuts.openHelp': 'Show this help', + 'shortcuts.or': 'or', + 'shortcuts.then': 'then', + 'shortcuts.focusPrimary': + 'Focus main column scroll (desktop; then arrow keys, Page Up/Down, Home/End)', + 'shortcuts.focusSecondary': + 'Focus side panel scroll when it is open (desktop; same keys to scroll)', + 'shortcuts.newNote': 'New note / post (after login if needed)', + 'shortcuts.searchSuggest': 'Move through suggestions', + 'shortcuts.searchDismiss': 'Close search dropdown', + 'shortcuts.tabNavigate': 'Move focus to the next or previous control', + 'shortcuts.activate': 'Activate buttons and many controls', + 'shortcuts.closeOverlays': 'Close dialogs, menus, and the search dropdown', + 'shortcuts.scrollWhenFocused': 'Scroll the focused scrollable area', + 'shortcuts.browserBack': 'Browser back (history)', + 'No spells yet. Create one with the button above.': + 'No spells yet. Create one with the button above.', + 'Loading spells from your relays…': 'Loading spells from your relays…', + 'Could not run this spell. Check that it has a valid REQ/COUNT command, or add write relays in settings.': + 'Could not run this spell. Check that it has a valid REQ/COUNT command, or add write relays in settings.', + 'Select a spell…': 'Select a spell…', + 'Spells from follows': 'From people you follow ({{count}})', + 'Other spells': 'Other spells ({{count}})', + 'Select a spell to view its feed.': 'Select a spell to view its feed.', + 'Add another row': 'Add another row', + 'Remove this row': 'Remove this row', + 'One kind number per row (e.g. 1 for notes).': 'One kind number per row (e.g. 1 for notes).', + 'One author per row: $me, $contacts, or hex pubkey / npub.': + 'One author per row: $me, $contacts, or hex pubkey / npub.', + 'One hex event id per row.': 'One hex event id per row.', + 'One wss:// URL per row. Leave empty to use your write relays.': + 'One wss:// URL per row. Leave empty to use your write relays.', + 'One topic per row.': 'One topic per row.', + topic: 'topic', + 'Spell form fields': 'Spell form fields', + 'Counting matching events…': 'Counting matching events…', + 'Edit spell': 'Edit spell', + 'Clone spell': 'Clone spell', + 'Spell cloned': 'Spell cloned', + 'Clone spell intro': + 'This spell is preloaded from another author’s definition. Change anything you like, then save to publish a new spell signed with your account.', + 'Spell updated': 'Spell updated', + 'Relay URL': 'Relay', + Count: 'Count', + 'Edit spell relays': 'Edit relays', + 'COUNT spell relay errors hint': + 'One or more relays failed or returned an error. You can change the relay list in the spell and save again.', + 'COUNT spell total distinct explanation': + 'Distinct matching event IDs across all relays that responded successfully (duplicates across relays removed). Each relay only returns up to the filter limit.', + 'Leave empty to use your write relays.': 'Leave empty to use your write relays.', + 'COUNT spell result explanation': + 'Distinct events returned for this filter (merged from your spell relays and default write relays, duplicates removed). Relays only return up to the filter limit.', + 'COUNT spell may be capped by limit': + 'This count may equal your spell limit — there could be more matching events on the network.', + 'Spell count failed. Check relays or try again.': + 'Could not complete the count. Check relays or try again.', + 'REQ returns a feed; COUNT returns a number.': + 'REQ: scrollable feed (choose live Feed or one-shot Fetch below). COUNT: a single number, no feed.', + listImportManualLabel: 'Pre-fill from event', + listImportFromEventHint: + 'Supported tags are merged into the form (e, p, t, relay, r, a where possible). Non-empty content is skipped; encrypted private items are not read. You may see notices for unmapped tags.', + listImportManualPlaceholder: '64-char hex, nevent1…, or naddr1…', + listImportLoadManual: 'Apply', + listImportContentSkipped: + 'This event has non-empty content (may include encrypted private items). Only public tags were merged.', + listImportUnsupportedEmoji: + 'This list includes emoji tags (NIP-30); those are not added to the spell filter.', + listImportUnsupportedTag: + 'Tags of type “{{tag}}” ({{count}}) are not mapped to spell filters yet.', + listImportBadATag: 'Could not parse address tag: {{preview}}…', + listImportATagNotFound: 'Could not resolve address tag: {{preview}}…', + listImportATagFailed: 'Failed to resolve address tag: {{preview}}…', + listImportEventNotFound: 'No event found for that reference.', + 'REQ tag filters': 'REQ tag filters', + spellFormTagFiltersLabel: 'Tag filters on matching events', + spellCreateIntro: + 'Spells are saved relay filters (NIP-A7). The “Spell query” section is the real definition; the dashed box at the bottom is only for names, descriptions, and catalog labels. Use $me for your pubkey and $contacts for your follow list when executing.', + spellFormSectionQueryTitle: 'Spell query', + spellFormSectionQueryHint: + 'This block is the actual spell definition: it becomes the Nostr REQ/COUNT filter (kinds, authors, time range, tag filters on matching events, relays, etc.).', + spellFormSectionMetadataTitle: 'Listing & labels (optional)', + spellFormSectionMetadataBadge: 'Not part of the query', + spellFormSectionMetadataHint: + 'Name, description, and topic labels are only for display and spell pickers. They are not used when the spell fetches events.', + spellFormCatalogTopicsLabel: 'Topic labels on this spell (t tags)', + spellTopicsMetadataHint: + 'One topic per row. To filter which notes you see, use “REQ tag filters” in the spell query above (letter “t”).', + spellTagFiltersHint: + 'Optional filters on subscribed events (NIP-01 single-letter tags). Example: letter “t”, values “bitcoin”.', + spellTagFiltersEmpty: 'No tag filters yet. Add rows below or apply an event reference above.', + 'Tag filter letter': 'Tag letter', + 'Filter value': 'Value', + 'Add tag filter': 'Add tag filter', + spellPickerSectionYours: 'Your spells', + 'Failed to remove spell from local storage': 'Failed to remove spell from local storage', + Spells: 'Spells', + 'doublePane.secondaryEmpty': 'Open a note, profile, or settings item to show it here.', + 'doublePane.secondaryEmptyHint': 'Your feed and primary pages stay on the left.', + '(empty)': '(empty)', + '12-hour (AM/PM)': '12-hour (AM/PM)', + '24-hour': '24-hour', + 'A new version is available': 'A new version is available', + 'A short description of the article content': 'A short description of the article content', + AM: 'AM', + 'Access via': 'Access via', + 'Accessed On': 'Accessed On', + 'Accessed on': 'Accessed on', + 'Add RSS feed URLs to subscribe to. If no feeds are configured, the default feed will be used.': + 'Add RSS feed URLs to subscribe to. If no feeds are configured, the default feed will be used.', + 'Add a relay to block': 'Add a relay to block', + 'Add at least one invitee': 'Add at least one invitee', + 'Add client identifier': 'Add client identifier', + 'Add expiration tags by default': 'Add expiration tags by default', + 'Add quiet tags by default': 'Add quiet tags by default', + 'Add recipients using nostr: mentions (e.g., nostr:npub1...) or the recipient selector above': + 'Add recipients using nostr: mentions (e.g., nostr:npub1...) or the recipient selector above', + 'Add the source (where this text is from)': 'Add the source (where this text is from)', + 'Add to favorites': 'Add to favorites', + 'Add {{count}} Selected': 'Add {{count}} Selected', + 'Added at': 'Added at', + 'Added {{count}} relay(s)': 'Added {{count}} relay(s)', + 'Adding...': 'Adding...', + 'Adding…': 'Adding…', + 'Advanced Options': 'Advanced Options', + 'All Topics': 'All Topics', + 'All favorite relays': 'All favorite relays', + 'All feeds from OPML file are already added': 'All feeds from OPML file are already added', + 'All items deleted successfully': 'All items deleted successfully', + 'Already blocked': 'Already blocked', + 'Already saved': 'Already saved', + 'Application Recommendations': 'Application Recommendations', + 'Are you sure you want to clear all cached data? This will delete all stored events and settings from your browser.': + 'Are you sure you want to clear all cached data? This will delete all stored events and settings from your browser.', + 'Are you sure you want to delete all items from this store?': + 'Are you sure you want to delete all items from this store?', + 'Are you sure you want to unmute this user? This will restore the follow button.': + 'Are you sure you want to unmute this user? This will restore the follow button.', + "Are you sure you want to unregister the service worker? This will clear this app's service worker caches and you will need to reload the page.": + "Are you sure you want to unregister the service worker? This will clear this app's service worker caches and you will need to reload the page.", + 'Article exported as AsciiDoc': 'Article exported as AsciiDoc', + 'Article exported as Markdown': 'Article exported as Markdown', + 'Article title (optional)': 'Article title (optional)', + Audio: 'Audio', + Author: 'Author', + 'Author is required for reading groups': 'Author is required for reading groups', + 'Author name (optional)': 'Author name (optional)', + Authors: 'Authors', + 'Block Relay': 'Block Relay', + 'Blocked Relays': 'Blocked Relays', + 'Blocking...': 'Blocking...', + Blossom: 'Blossom', + Book: 'Book', + 'Brief description of the event': 'Brief description of the event', + 'Brief summary (optional)': 'Brief summary (optional)', + 'Brief summary of the article (optional)': 'Brief summary of the article (optional)', + 'Browse Cache': 'Browse Cache', + 'C-Tag': 'C-Tag', + 'Cache Relays': 'Cache Relays', + 'Cache cleared successfully': 'Cache cleared successfully', + 'Cache refreshed successfully': 'Cache refreshed successfully', + 'Cache relays are used to store and retrieve events locally. These relays are merged with your inbox and outbox relays.': + 'Cache relays are used to store and retrieve events locally. These relays are merged with your inbox and outbox relays.', + 'Cache relays must be local network URLs only (e.g., ws://localhost:4869 or ws://127.0.0.1:4869)': + 'Cache relays must be local network URLs only (e.g., ws://localhost:4869 or ws://127.0.0.1:4869)', + 'Cache relays saved': 'Cache relays saved', + Cancelled: 'Cancelled', + Chapter: 'Chapter', + 'Chapter Title': 'Chapter Title', + 'Chapter title (optional)': 'Chapter title (optional)', + Citation: 'Citation', + 'Citation title (optional)': 'Citation title (optional)', + 'Clean up duplicate replaceable events? This will keep only the newest version of each event.': + 'Clean up duplicate replaceable events? This will keep only the newest version of each event.', + 'Cleaned up {{deleted}} duplicate entries, kept {{kept}}': + 'Cleaned up {{deleted}} duplicate entries, kept {{kept}}', + 'Cleaned up {{deleted}} duplicate entries, kept {{kept}} (total items after cleanup: {{total}})': + 'Cleaned up {{deleted}} duplicate entries, kept {{kept}} (total items after cleanup: {{total}})', + 'Cleanup Duplicates': 'Cleanup Duplicates', + Clear: 'Clear', + 'Clear Cache': 'Clear Cache', + 'Clear Service Worker': 'Clear Service Worker', + 'Clear cached data stored in your browser, including IndexedDB events, localStorage settings, and service worker caches.': + 'Clear cached data stored in your browser, including IndexedDB events, localStorage settings, and service worker caches.', + 'Click update to get the latest features and improvements': + 'Click update to get the latest features and improvements', + Close: 'Close', + 'Comma or space-separated topics (will be added as t-tags)': + 'Comma or space-separated topics (will be added as t-tags)', + Command: 'Command', + Configure: 'Configure', + 'Connect Wallet': 'Connect Wallet', + 'Console Logs': 'Console Logs', + 'Console logs cleared': 'Console logs cleared', + 'Content is required': 'Content is required', + 'Content must be 5000 characters or less': 'Content must be 5000 characters or less', + Controversial: 'Controversial', + 'Copied!': 'Copied!', + 'Copy to clipboard': 'Copy to clipboard', + 'Create Article': 'Create Article', + 'Create Citation': 'Create Citation', + 'Create Highlight': 'Create Highlight', + 'Create New Thread': 'Create New Thread', + 'Create Poll': 'Create Poll', + 'Create Thread': 'Create Thread', + 'Create a Spell': 'Create a Spell', + 'Creating...': 'Creating...', + 'D-Tag': 'D-Tag', + 'D-Tag is required for articles': 'D-Tag is required for articles', + DOI: 'DOI', + 'Date-based (all-day)': 'Date-based (all-day)', + 'Default expiration (months)': 'Default expiration (months)', + 'Default quiet period (days)': 'Default quiet period (days)', + 'Delete All': 'Delete All', + 'Delete item': 'Delete item', + 'Deleted {{count}} event(s)': 'Deleted {{count}} event(s)', + 'Deletion request sent': 'Deletion request sent', + 'Description (content)': 'Description (content)', + 'Digital Object Identifier (optional)': 'Digital Object Identifier (optional)', + 'Disable word wrap': 'Disable word wrap', + 'Discovered Relays': 'Discovered Relays', + 'Discovering relays...': 'Discovering relays...', + Discussion: 'Discussion', + Discussions: 'Discussions', + Downvote: 'Downvote', + 'Edited by': 'Edited by', + Editor: 'Editor', + 'Editor name (optional)': 'Editor name (optional)', + 'Enable word wrap': 'Enable word wrap', + 'End date': 'End date', + 'End date must be after start date': 'End date must be after start date', + 'Enter a Nostr event identifier (nevent, naddr, note, or hex ID) OR a web URL (https://). Not both.': + 'Enter a Nostr event identifier (nevent, naddr, note, or hex ID) OR a web URL (https://). Not both.', + 'Enter a descriptive title for your thread': 'Enter a descriptive title for your thread', + 'Enter the author name': 'Enter the author name', + 'Enter the book title': 'Enter the book title', + 'Enter the specific text you want to highlight in the main content area above': + 'Enter the specific text you want to highlight in the main content area above', + 'Event IDs (ids)': 'Event IDs (ids)', + 'Event appears to be invalid or corrupted': 'Event appears to be invalid or corrupted', + 'Event has no value data': 'Event has no value data', + 'Event is missing required fields: {{fields}}': 'Event is missing required fields: {{fields}}', + 'Event type': 'Event type', + 'Expiration Tags': 'Expiration Tags', + 'Export OPML': 'Export OPML', + 'Export as AsciiDoc': 'Export as AsciiDoc', + 'Export as Markdown': 'Export as Markdown', + 'External Citation': 'External Citation', + 'External Citation Settings': 'External Citation Settings', + 'Failed to add relay. Please try again.': 'Failed to add relay. Please try again.', + 'Failed to add relays': 'Failed to add relays', + 'Failed to block relay. Please try again.': 'Failed to block relay. Please try again.', + 'Failed to cleanup duplicates': 'Failed to cleanup duplicates', + 'Failed to clear cache': 'Failed to clear cache', + 'Failed to copy': 'Failed to copy', + 'Failed to create relay set. Please try again.': + 'Failed to create relay set. Please try again.', + 'Failed to create thread': 'Failed to create thread', + 'Failed to create thread. Please try a different relay.': + 'Failed to create thread. Please try a different relay.', + 'Failed to delete all items': 'Failed to delete all items', + 'Failed to delete item': 'Failed to delete item', + 'Failed to discover relays': 'Failed to discover relays', + 'Failed to export OPML file': 'Failed to export OPML file', + 'Failed to export article': 'Failed to export article', + 'Failed to import OPML file: {{error}}': 'Failed to import OPML file: {{error}}', + 'Failed to load RSS feeds': 'Failed to load RSS feeds', + 'Failed to load store items': 'Failed to load store items', + 'Failed to mute user privately': 'Failed to mute user privately', + 'Failed to mute user publicly': 'Failed to mute user publicly', + 'Failed to pin note': 'Failed to pin note', + 'Failed to publish post': 'Failed to publish post', + 'Failed to publish reply': 'Failed to publish reply', + 'Failed to publish thread': 'Failed to publish thread', + 'Failed to publish to some relays. Please try again or use different relays.': + 'Failed to publish to some relays. Please try again or use different relays.', + 'Failed to save RSS feeds': 'Failed to save RSS feeds', + 'Failed to save cache relays': 'Failed to save cache relays', + 'Failed to save relay list': 'Failed to save relay list', + 'Failed to unregister service worker: ': 'Failed to unregister service worker: ', + 'Failed to unsubscribe from topic': 'Failed to unsubscribe from topic', + Favorite: 'Favorite', + Fetch: 'Fetch', + 'Fetch once, then stop.': 'Fetch once, then stop.', + 'Filter by': 'Filter by', + 'Flat View': 'Flat View', + 'Font size': 'Font size', + 'Full Quote/Context': 'Full Quote/Context', + 'Full-text search query': 'Full-text search query', + Geohash: 'Geohash', + 'Geohash (optional)': 'Geohash (optional)', + 'Global quiet mode': 'Global quiet mode', + 'Group discussions by topic': 'Group discussions by topic', + 'Grouped View': 'Grouped View', + Groups: 'Groups', + 'Handler {{index}}': 'Handler {{index}}', + 'Hardcopy Citation': 'Hardcopy Citation', + 'Hardcopy Citation Settings': 'Hardcopy Citation Settings', + Hide: 'Hide', + 'Hide interactions on all posts': 'Hide interactions on all posts', + 'Hide interactions on posts with quiet tags': 'Hide interactions on posts with quiet tags', + 'High PoW': 'High PoW', + 'Higher values make your thread harder to mine but more unique.': + 'Higher values make your thread harder to mine but more unique.', + Highlight: 'Highlight', + 'Highlight Settings': 'Highlight Settings', + 'How to Create a Highlight (NIP-84)': 'How to Create a Highlight (NIP-84)', + 'Human-readable spell name': 'Human-readable spell name', + 'Image URL': 'Image URL', + 'Import OPML': 'Import OPML', + 'Imported {{count}} feed(s) from OPML file': 'Imported {{count}} feed(s) from OPML file', + 'In-Browser Cache': 'In-Browser Cache', + Insert: 'Insert', + 'Insert URL into your post and publish to Nostr GIF library (NIP-94).': + 'Insert URL into your post and publish to Nostr GIF library (NIP-94).', + 'Insert event or address': 'Insert event or address', + 'Insert mention': 'Insert mention', + 'Internal Citation': 'Internal Citation', + 'Internal Citation Settings': 'Internal Citation Settings', + 'Invalid Event': 'Invalid Event', + 'Invalid Lightning Address': 'Invalid Lightning Address', + 'Invalid Lightning Address. Please enter a valid Lightning Address or LNURL.': + 'Invalid Lightning Address. Please enter a valid Lightning Address or LNURL.', + 'Invalid URL': 'Invalid URL', + 'Invalid content JSON': 'Invalid content JSON', + 'Invalid relay URL': 'Invalid relay URL', + 'Invalid source. Please enter a note ID, nevent, naddr, hex ID, or URL.': + 'Invalid source. Please enter a note ID, nevent, naddr, hex ID, or URL.', + 'Item deleted successfully': 'Item deleted successfully', + JSON: 'JSON', + 'Join link': 'Join link', + 'Journal/Publication name (optional)': 'Journal/Publication name (optional)', + Json: 'JSON', + Kinds: 'Kinds', + 'Language Model': 'Language Model', + Large: 'Large', + 'Leave empty for HiveTalk, or paste Zoom / Teams / other link': + 'Leave empty for HiveTalk, or paste Zoom / Teams / other link', + 'Lightning payment failed': 'Lightning payment failed', + Limit: 'Limit', + 'Live feed; keeps updating.': 'Live feed; keeps updating.', + 'Loading more...': 'Loading more...', + 'Loading relays...': 'Loading relays...', + 'Location (optional)': 'Location (optional)', + 'Log in to run this spell (it uses $me or $contacts).': + 'Log in to run this spell (it uses $me or $contacts).', + 'Login failed': 'Login failed', + 'Login to configure RSS feeds': 'Login to configure RSS feeds', + 'Long-form Article': 'Long-form Article', + 'Mailbox relays saved': 'Mailbox relays saved', + 'Mark as NSFW': 'Mark as NSFW', + 'Maximum {{max}} invitees': 'Maximum {{max}} invitees', + 'Maximum {{max}} invitees allowed': 'Maximum {{max}} invitees allowed', + Medium: 'Medium', + Mode: 'Mode', + 'Most Zapped': 'Most Zapped', + 'Move to top': 'Move to top', + 'Multiple choice': 'Multiple choice', + 'Mute failed': 'Mute failed', + NSFW: 'NSFW', + Name: 'Name', + 'Name of the language model used': 'Name of the language model used', + 'New External Citation': 'New External Citation', + 'New Hardcopy Citation': 'New Hardcopy Citation', + 'New Highlight': 'New Highlight', + 'New Internal Citation': 'New Internal Citation', + 'New Long-form Article': 'New Long-form Article', + 'New Poll': 'New Poll', + 'New Prompt Citation': 'New Prompt Citation', + 'New Public Message': 'New Public Message', + 'New Wiki Article': 'New Wiki Article', + 'New Wiki Article (Markdown)': 'New Wiki Article (Markdown)', + Newest: 'Newest', + 'No JSON available': 'No JSON available', + 'No RSS feeds found in OPML file': 'No RSS feeds found in OPML file', + 'No cached data found.': 'No cached data found.', + 'No console logs captured yet': 'No console logs captured yet', + 'No events found': 'No events found', + 'No feeds configured. Default feed will be used.': + 'No feeds configured. Default feed will be used.', + 'No feeds to export': 'No feeds to export', + 'No groups available. Join some groups first.': 'No groups available. Join some groups first.', + 'No items in this store.': 'No items in this store.', + 'No items match your search.': 'No items match your search.', + 'No logs match the current filters': 'No logs match the current filters', + 'No posts found': 'No posts found', + 'No posts match your search': 'No posts match your search', + 'No relays available. Please configure relays in settings.': + 'No relays available. Please configure relays in settings.', + 'No service workers or caches found for this app': + 'No service workers or caches found for this app', + 'No users found': 'No users found', + 'No valid RSS feed URLs found in OPML file': 'No valid RSS feed URLs found in OPML file', + 'Note pinned': 'Note pinned', + 'Note unpinned': 'Note unpinned', + Oldest: 'Oldest', + 'Open Timestamp': 'Open Timestamp', + 'Opens in a new tab. Copy a GIF URL there, then paste below. If this picker closed, click “Insert GIF” again to paste.': + 'Opens in a new tab. Copy a GIF URL there, then paste below. If this picker closed, click “Insert GIF” again to paste.', + Option: 'Option', + Optional: 'Optional', + 'Optional image for the event': 'Optional image for the event', + 'Optionally, add the full quote/context to show your highlight within it': + 'Optionally, add the full quote/context to show your highlight within it', + PM: 'PM', + 'Page Range': 'Page Range', + Pages: 'Pages', + 'Paste URL of a GIF': 'Paste URL of a GIF', + 'Paste the entire original passage that contains your highlight': + 'Paste the entire original passage that contains your highlight', + Photo: 'Photo', + 'Picture Note': 'Picture Note', + 'Pin note': 'Pin note', + 'Plain text description of the query': 'Plain text description of the query', + 'Please login to view bookmarks': 'Please login to view bookmarks', + 'Please select a group': 'Please select a group', + 'Please select at least one relay': 'Please select at least one relay', + 'Please set a start date': 'Please set a start date', + 'Poll with no options': 'Poll with no options', + 'Post published to some relays': 'Post published to some relays', + 'Posts will automatically include expiration tags': + 'Posts will automatically include expiration tags', + 'Posts will automatically include quiet tags': 'Posts will automatically include quiet tags', + 'Posts will be quiet for this many days': 'Posts will be quiet for this many days', + 'Posts will expire after this many months': 'Posts will expire after this many months', + 'Processing...': 'Processing...', + 'Profile event not available': 'Profile event not available', + 'Prompt Citation': 'Prompt Citation', + 'Prompt Citation Settings': 'Prompt Citation Settings', + 'Prompt Conversation Script': 'Prompt Conversation Script', + 'Proof of Work': 'Proof of Work', + 'Publish to Relays': 'Publish to Relays', + 'Published By': 'Published By', + 'Published In': 'Published In', + 'Published On': 'Published On', + 'Published in': 'Published in', + 'Published on': 'Published on', + 'Publisher name (optional)': 'Publisher name (optional)', + 'Quiet Tags': 'Quiet Tags', + 'RSS Feed': 'RSS Feed', + 'RSS Feed Settings': 'RSS Feed Settings', + 'RSS Feeds': 'RSS Feeds', + 'RSS feeds exported to OPML file': 'RSS feeds exported to OPML file', + 'RSS feeds saved': 'RSS feeds saved', + 'Rate limited. Please wait before trying again.': + 'Rate limited. Please wait before trying again.', + 'Reaction published': 'Reaction published', + 'Reaction removed': 'Reaction removed', + 'Read full article': 'Read full article', + 'Reading group entry': 'Reading group entry', + 'Readings Options': 'Readings Options', + Recipients: 'Recipients', + 'Recipients detected from your message:': 'Recipients detected from your message:', + 'Recommended Relays': 'Recommended Relays', + 'Recommended applications for handling events of kind {{kind}}': + 'Recommended applications for handling events of kind {{kind}}', + 'Reference to the cited Nostr event in kind:pubkey:hex format': + 'Reference to the cited Nostr event in kind:pubkey:hex format', + 'Refresh Cache': 'Refresh Cache', + 'Refreshing posts...': 'Refreshing posts...', + 'Relative: 7d, 24h, 1w, 1mo, 1y. Or Unix timestamp.': + 'Relative: 7d, 24h, 1w, 1mo, 1y. Or Unix timestamp.', + Relay: 'Relay', + 'Relay Hint': 'Relay Hint', + 'Relay URL (optional)': 'Relay URL (optional)', + 'Relay blocked successfully': 'Relay blocked successfully', + 'Relay requires authentication for write access. Please try a different relay or contact the relay operator.': + 'Relay requires authentication for write access. Please try a different relay or contact the relay operator.', + 'Relay set options': 'Relay set options', + 'Remove from favorites': 'Remove from favorites', + Rendered: 'Rendered', + 'Reply published': 'Reply published', + 'Reply published to some relays': 'Reply published to some relays', + 'Reply to Public Message': 'Reply to Public Message', + 'Republish to all active relays': 'Republish to all active relays', + 'Republish to all available relays': 'Republish to all available relays', + 'Required: start (or start date), invitees. Optional: title, end, location, summary, topics, image.': + 'Required: start (or start date), invitees. Optional: title, end, location, summary, topics, image.', + 'Required: start time or start date. Optional: title, end, location, summary, topics, image.': + 'Required: start time or start date. Optional: title, end, location, summary, topics, image.', + 'Required: start time, invitees. Join link defaults to HiveTalk. Optional: title, end, summary, topics, image.': + 'Required: start time, invitees. Join link defaults to HiveTalk. Optional: title, end, summary, topics, image.', + 'Required: start time. Join link defaults to HiveTalk. Optional: title, end, summary, topics, image.': + 'Required: start time. Join link defaults to HiveTalk. Optional: title, end, summary, topics, image.', + 'Respect quiet tags': 'Respect quiet tags', + 'Search (NIP-50)': 'Search (NIP-50)', + 'Search by name or npub…': 'Search by name or npub…', + 'Search calendar, publications, wiki…': 'Search calendar, publications, wiki…', + 'Search for user…': 'Search for user…', + 'Search items...': 'Search items...', + 'Search logs...': 'Search logs...', + 'Search notes, threads, long-form…': 'Search notes, threads, long-form…', + 'Search on GifBuddy': 'Search on GifBuddy', + 'Search posts...': 'Search posts...', + 'Search threads by title, content, tags, npub, author...': + 'Search threads by title, content, tags, npub, author...', + 'Searching all available relays...': 'Searching all available relays...', + 'Searching…': 'Searching…', + 'See reference': 'See reference', + 'Select Group': 'Select Group', + 'Select Media Type': 'Select Media Type', + 'Select group...': 'Select group...', + 'Select relays': 'Select relays', + 'Select the group where you want to create this discussion.': + 'Select the group where you want to create this discussion.', + 'Select topic...': 'Select topic...', + 'Selected text': 'Selected text', + 'Send Public Message': 'Send Public Message', + 'Send a Lightning payment to this user': 'Send a Lightning payment to this user', + 'Service worker caches cleared. Please reload the page.': + 'Service worker caches cleared. Please reload the page.', + 'Service worker unregistered and caches cleared. Please reload the page.': + 'Service worker unregistered and caches cleared. Please reload the page.', + 'Service worker unregistered. Please reload the page.': + 'Service worker unregistered. Please reload the page.', + 'Share your thoughts, ask questions, or start a discussion...': + 'Share your thoughts, ask questions, or start a discussion...', + 'Short Video Note': 'Short Video Note', + 'Show RSS Feed': 'Show RSS Feed', + 'Show all discussions in a single list': 'Show all discussions in a single list', + 'Show less': 'Show less', + Since: 'Since', + Small: 'Small', + 'Some relays have temporarily disabled writes.': + 'Some relays have temporarily disabled writes.', + Source: 'Source', + 'Spell definition': 'Spell definition', + 'Spell published': 'Spell published', + 'Start date': 'Start date', + 'Start typing to see a preview...': 'Start typing to see a preview...', + 'Subject (Book Title)': 'Subject (Book Title)', + 'Subject (book title) is required for reading groups': + 'Subject (book title) is required for reading groups', + 'Subject / Topics': 'Subject / Topics', + Subscribe: 'Subscribe', + Subscribed: 'Subscribed', + 'Subscribed to topic': 'Subscribed to topic', + 'Subscribed to topic (local)': 'Subscribed to topic (local)', + 'Subscribing...': 'Subscribing...', + Summary: 'Summary', + 'Supported Event Types': 'Supported Event Types', + 'Take a note': 'Take a note', + 'The full prompt conversation (optional)': 'The full prompt conversation (optional)', + 'The main editor above should contain only the text you want to highlight. This field should contain the full quote or paragraph for context.': + 'The main editor above should contain only the text you want to highlight. This field should contain the full quote or paragraph for context.', + 'These relays were found from your NIP-05 identifier and signer. You can add them to your relay list.': + 'These relays were found from your NIP-05 identifier and signer. You can add them to your relay list.', + 'This file could be either audio or video. Please select the correct type:': + 'This file could be either audio or video. Please select the correct type:', + 'This store does not contain replaceable events': + 'This store does not contain replaceable events', + 'This will add additional tags for author and subject to help organize reading group discussions.': + 'This will add additional tags for author and subject to help organize reading group discussions.', + 'Thread Content': 'Thread Content', + 'Thread Title': 'Thread Title', + 'Thread creation timed out. Please try again.': 'Thread creation timed out. Please try again.', + 'Thread published': 'Thread published', + 'Threads are organized by topics. Choose a topic that best fits your discussion.': + 'Threads are organized by topics. Choose a topic that best fits your discussion.', + 'Time-based': 'Time-based', + 'Title is required': 'Title is required', + 'Title must be 100 characters or less': 'Title must be 100 characters or less', + 'To translate notes and other content, use your browser’s built-in translation. For example: right-click the page and choose “Translate to…”, or use the translate icon in the address bar.': + 'To translate notes and other content, use your browser’s built-in translation. For example: right-click the page and choose “Translate to…”, or use the translate icon in the address bar.', + Top: 'Top', + Topic: 'Topic', + URL: 'URL', + 'URL of the article cover image (optional)': 'URL of the article cover image (optional)', + 'Unique identifier for this article (required)': + 'Unique identifier for this article (required)', + 'Unmute failed': 'Unmute failed', + 'Unpin note': 'Unpin note', + Unsubscribe: 'Unsubscribe', + 'Unsubscribed from topic': 'Unsubscribed from topic', + 'Unsubscribing...': 'Unsubscribing...', + Until: 'Until', + Untitled: 'Untitled', + Update: 'Update', + 'Updating...': 'Updating...', + 'Upload Audio Comment': 'Upload Audio Comment', + 'Upload Audio Message': 'Upload Audio Message', + 'Upload Media': 'Upload Media', + Upvote: 'Upvote', + 'User unmuted': 'User unmuted', + 'Version number (optional)': 'Version number (optional)', + Video: 'Video', + 'Video Note': 'Video Note', + 'Video file': 'Video file', + 'View Console Logs': 'View Console Logs', + 'View JSON': 'View JSON', + 'View cached items in this store.': 'View cached items in this store.', + 'View definition': 'View definition', + 'View details about cached data in IndexedDB stores. Click on a store to view its items.': + 'View details about cached data in IndexedDB stores. Click on a store to view its items.', + 'View on Alexandria': 'View on Alexandria', + 'View on DecentNewsroom': 'View on DecentNewsroom', + 'View on Wikistr': 'View on Wikistr', + 'View recent console logs for debugging': 'View recent console logs for debugging', + 'Voice Comment': 'Voice Comment', + 'Voice Note': 'Voice Note', + 'Voice note or audio file': 'Voice note or audio file', + Volume: 'Volume', + 'Volume number (optional)': 'Volume number (optional)', + 'Vote published': 'Vote published', + 'Vote removed': 'Vote removed', + 'Website where LLM was accessed (optional)': 'Website where LLM was accessed (optional)', + 'Wiki Article (AsciiDoc)': 'Wiki Article (AsciiDoc)', + 'Wiki Article (Markdown)': 'Wiki Article (Markdown)', + 'You can only delete your own notes': 'You can only delete your own notes', + 'You must be logged in to create a thread': 'You must be logged in to create a thread', + 'You need to add at least one media server in order to upload media files.': + 'You need to add at least one media server in order to upload media files.', + 'You need to login first': 'You need to login first', + 'Your account is blocked from posting to this relay.': + 'Your account is blocked from posting to this relay.', + Zap: 'Zap', + 'Zap failed': 'Zap failed', + created_at: 'created_at', + 'e tag of kind 1040 event (optional)': 'e tag of kind 1040 event (optional)', + 'e.g. meetup, conference': 'e.g. meetup, conference', + 'e.g., 123-145 (optional)': 'e.g., 123-145 (optional)', + 'e.g., GPT-4, Claude, etc. (required)': 'e.g., GPT-4, Claude, etc. (required)', + 'e.g., my-article-title': 'e.g., my-article-title', + entries: 'entries', + 'from Bunker': 'from Bunker', + 'from Extension': 'from Extension', + 'from NIP-05': 'from NIP-05', + general: 'general', + 'https://example.com (required)': 'https://example.com (required)', + 'https://example.com/image.jpg': 'https://example.com/image.jpg', + id: 'id', + items: 'items', + kind: 'kind', + 'kind:pubkey:hex format (required)': 'kind:pubkey:hex format (required)', + 'last updated': 'last updated', + matching: 'matching', + naddr: 'naddr', + nevent: 'nevent', + 'nevent1..., naddr1..., note1..., hex ID, or https://...': + 'nevent1..., naddr1..., note1..., hex ID, or https://...', + 'no notes found': 'no notes found', + of: 'of', + 'on note': 'on note', + optional: 'optional', + pubkey: 'pubkey', + 'sent a public message': 'sent a public message', + 'sent you a public message': 'sent you a public message', + 'sent you a public message (along with {{count}} others)': + 'sent you a public message (along with {{count}} others)', + sig: 'sig', + 'started a discussion in {{topic}}': 'started a discussion in {{topic}}', + tags: 'tags', + thread: 'thread', + threads: 'threads', + 'topic1, topic2, topic3': 'topic1, topic2, topic3', + '{{count}} relay(s) selected': '{{count}} relay(s) selected', + '🔞 NSFW 🔞': '🔞 NSFW 🔞' } } diff --git a/src/i18n/locales/pt-PT.ts b/src/i18n/locales/pt-PT.ts index 7cd2e333..066193c9 100644 --- a/src/i18n/locales/pt-PT.ts +++ b/src/i18n/locales/pt-PT.ts @@ -1,13 +1,16 @@ export default { translation: { - // NOTE: The translations below were generated by ChatGPT and have not yet been verified. 'Welcome! 🥳': 'Bem-vindo! 🥳', About: 'Sobre', 'New Note': 'Nova Nota', Post: 'Postar', Home: 'Início', + Feed: 'Feed', + 'Favorites Feed': 'Favorites Feed', + 'Pinned note': 'Pinned note', 'Relay settings': 'Configurações de Relé', Settings: 'Configurações', + 'Account menu': 'Account menu', SidebarRelays: 'Relés', Refresh: 'Atualizar', Profile: 'Perfil', @@ -31,6 +34,12 @@ export default { 'loading...': 'carregando...', 'Loading...': 'Carregando...', 'no more notes': 'não há mais notas', + 'calendar entries': 'calendar entries', + 'Loading calendar events...': 'Loading calendar events...', + 'No calendar events found': 'No calendar events found', + 'Calendar events in the next {{count}} months': 'Calendar events in the next {{count}} months', + 'The nostr.band relay appears to be temporarily out of service. Please try again later.': + 'The nostr.band relay appears to be temporarily out of service. Please try again later.', 'reply to': 'responder a', reply: 'responder', Reply: 'Responder', @@ -38,6 +47,9 @@ export default { 'Write something...': 'Escreva algo...', Cancel: 'Cancelar', Mentions: 'Menções', + 'Search for event or address…': 'Search for event or address…', + 'Search notes…': 'Search notes…', + 'No notes found': 'No notes found', 'Failed to post': 'Falha ao postar', 'Post successful': 'Postagem bem-sucedida', 'Your post has been published': 'Sua postagem foi publicada', @@ -46,7 +58,22 @@ export default { Quote: 'Citar', 'Copy event ID': 'Copiar ID do evento', 'Copy user ID': 'Copiar ID do usuário', + 'Send public message': 'Send public message', 'View raw event': 'Ver evento bruto', + 'Edit this event': 'Edit this event', + 'Clone or fork this event': 'Clone or fork this event', + 'Event kind': 'Event kind', + 'Note content': 'Note content', + Publish: 'Publish', + 'Post published': 'Post published', + 'Edit content and tags, then publish a new signed event.': + 'Edit content and tags, then publish a new signed event.', + 'Log in to publish': 'Log in to publish', + 'Set when you publish': 'set when you publish', + 'id and sig are assigned when you publish': 'id and sig are assigned when you publish', + 'Published to some relays only': 'Published to some relays only', + 'Add field': 'Add field', + 'View full profile': 'View full profile', Like: 'Curtir', 'switch to light theme': 'alternar para tema claro', 'switch to dark theme': 'alternar para tema escuro', @@ -57,18 +84,143 @@ export default { "username's used relays": 'relés usados por {{username}}', "username's muted": '{{username}} silenciado', Login: 'Entrar', + 'Please log in to view notifications.': 'Please log in to view notifications.', 'Follows you': 'Segue você', 'Relay Settings': 'Configurações de Relé', + 'Relays and Storage Settings': 'Relays and Storage Settings', 'Relay set name': 'Nome do conjunto de relé', 'Add a new relay set': 'Adicionar um novo conjunto de relé', Add: 'Adicionar', 'n relays': '{{n}} relés', Rename: 'Renomear', + 'Copy share link': 'Copy share link', + 'Copy address': 'Copy address', + 'Copy payto URI': 'Copy payto URI', + 'Copied payto address': 'Copied payto address', + 'Copied to clipboard': 'Copied to clipboard', + 'Copied {{label}} address': 'Copied {{label}} address', + 'Lightning payment address – copy to pay via your wallet': + 'Lightning payment address – copy to pay via your wallet', + 'Payment address – copy to use in your wallet or app': + 'Payment address – copy to use in your wallet or app', + 'Click to open payment options': 'Click to open payment options', + 'Click to copy address': 'Click to copy address', + 'Open on website': 'Open on website', + 'Raw profile event': 'Raw profile event', + 'Full profile event': 'Full profile event', + 'Event (JSON)': 'Event (JSON)', + 'Save full profile': 'Save full profile', + 'Add tag': 'Add tag', + 'Remove tag': 'Remove tag', + 'Tag name': 'Tag name', + Value: 'Value', + 'Add value to tag': 'Add value to tag', + 'Remove value': 'Remove value', + 'No tags. Click "Add tag" to add one.': 'No tags. Click "Add tag" to add one.', + 'Profile updated': 'Profile updated', + 'Failed to publish profile': 'Failed to publish profile', + 'Invalid profile JSON': 'Invalid profile JSON', + 'Refresh cache': 'Refresh cache', + 'Force-refresh profile and payment info from relays': + 'Force-refresh profile and payment info from relays', + 'Profile and payment cache refreshed': 'Profile and payment cache refreshed', + 'Failed to refresh cache': 'Failed to refresh cache', + 'Raw payment info event': 'Raw payment info event', + 'Payment info': 'Payment info', + 'Edit payment info': 'Edit payment info', + 'Add payment info': 'Add payment info', + 'No payment info event yet. Click "Add payment info" to create one.': + 'No payment info event yet. Click "Add payment info" to create one.', + 'Content (JSON)': 'Content (JSON)', + Tags: 'Tags', + 'Tags (JSON array of arrays, e.g. [["payto","lightning","user@domain.com"]])': + 'Tags (JSON array of arrays, e.g. [["payto","lightning","user@domain.com"]])', + 'Payment info updated': 'Payment info updated', + 'Failed to publish payment info': 'Failed to publish payment info', + 'Invalid tags JSON': 'Invalid tags JSON', + 'Payment methods': 'Payment methods', + 'NIP-A3 payto tags: type (e.g. lightning) and authority (e.g. user@domain.com).': + 'NIP-A3 payto tags: type (e.g. lightning) and authority (e.g. user@domain.com).', + 'Type (e.g. lightning)': 'Type (e.g. lightning)', + 'Authority (e.g. user@domain.com)': 'Authority (e.g. user@domain.com)', + 'Add payment method': 'Add payment method', + Remove: 'Remove', + 'Additional content (JSON)': 'Additional content (JSON)', + 'Show full event JSON': 'Show full event JSON', + 'Tag list': 'Tag list', + 'Profile event tags (e.g. lud16, nip05, website). Saved with kind 0.': + 'Profile event tags (e.g. lud16, nip05, website). Saved with kind 0.', + 'Tag value': 'Tag value', + 'Saving…': 'Saving…', 'Share with Jumble': 'Compartilhar com Jumble', 'Share with Alexandria': 'Compartilhar com Alexandria', + 'Start video call': 'Start video call', + 'Copy call invite link': 'Copy call invite link', + 'Start call about this': 'Start call about this', + 'Send call invite': 'Send call invite', + 'Join the video call': 'Join the video call', + 'Schedule video call': 'Schedule video call', + "You're invited to a scheduled video call.": "You're invited to a scheduled video call.", + 'Create a calendar event and send an invite. The recipient will see the event with a join link.': + 'Create a calendar event and send an invite. The recipient will see the event with a join link.', + 'Schedule a video call': 'Schedule a video call', + 'Create a calendar event and send kind 24 invites to each listed invitee.': + 'Create a calendar event and send kind 24 invites to each listed invitee.', + Invitees: 'Invitees', + 'Paste nostr:npub1... or nostr:nprofile1... (one or more)': + 'Paste nostr:npub1... or nostr:nprofile1... (one or more)', + 'Schedule and send invites': 'Schedule and send invites', + 'Add at least one invitee (paste nostr:npub or nostr:nprofile links)': + 'Add at least one invitee (paste nostr:npub or nostr:nprofile links)', + 'Scheduled call created and {{count}} invite(s) sent': + 'Scheduled call created and {{count}} invite(s) sent', + 'Join video call': 'Join video call', + 'Scheduled video call': 'Scheduled video call', + 'Video call': 'Video call', + 'Schedule and send invite': 'Schedule and send invite', + 'Scheduling…': 'Scheduling…', + 'Please set a start time': 'Please set a start time', + 'End time must be after start time': 'End time must be after start time', + 'Failed to schedule call': 'Failed to schedule call', + 'Scheduled call created and invite sent': 'Scheduled call created and invite sent', + RSVP: 'RSVP', + 'RSVP: {{status}}': 'RSVP: {{status}}', + Accepted: 'Accepted', + Tentative: 'Tentative', + Declined: 'Declined', + 'You need to log in to RSVP': 'You need to log in to RSVP', + 'RSVP updated': 'RSVP updated', + 'Failed to update RSVP': 'Failed to update RSVP', + Organizer: 'Organizer', + Attendees: 'Attendees', + 'No response': 'No response', + 'Calendar Events': 'Calendar Events', + 'Calendar Event': 'Calendar Event', + 'Schedule in-person meeting': 'Schedule in-person meeting', + 'Create a calendar event and send an invite. No video link — for real-life meetups, conferences, etc.': + 'Create a calendar event and send an invite. No video link — for real-life meetups, conferences, etc.', + "You're invited to an in-person meeting.": "You're invited to an in-person meeting.", + 'Meeting created and invite sent': 'Meeting created and invite sent', + 'Failed to create meeting': 'Failed to create meeting', + 'Create and send invite': 'Create and send invite', + 'Creating…': 'Creating…', + 'In-person meeting': 'In-person meeting', + Location: 'Location', + 'Address, venue, or place': 'Address, venue, or place', + Description: 'Description', + 'Optional notes': 'Optional notes', + 'Create a calendar event for a real-life meetup and send kind 24 invites to each invitee.': + 'Create a calendar event for a real-life meetup and send kind 24 invites to each invitee.', + 'Meeting created and {{count}} invite(s) sent': 'Meeting created and {{count}} invite(s) sent', + 'Create and send invites': 'Create and send invites', + Title: 'Title', + Start: 'Start', + End: 'End', Delete: 'Excluir', 'Relay already exists': 'Relé já existe', 'invalid relay URL': 'URL de relé inválida', + 'Relay URL…': 'wss://… or relay host', + 'Open relay': 'Open relay', 'Add a new relay': 'Adicionar um novo relé', back: 'voltar', 'Lost in the void': 'Perdido no vazio', @@ -85,8 +237,8 @@ export default { Replies: 'Respostas', Notifications: 'Notificações', 'no more notifications': 'não há mais notificações', - 'Using private key login is insecure. It is recommended to use a browser extension for login, such as alby, nostr-keyx or nos2x. If you must use a private key, please set a password for encryption at minimum.Using private key login is insecure. It is recommended to use a browser extension for login, such as alby, nostr-keyx or nos2x.': - 'O uso de login com chave privada é inseguro. Recomenda-se usar uma extensão de navegador para login, como alby, nostr-keyx ou nos2x. Se você precisar usar uma chave privada, defina uma senha para criptografia pelo menos.', + 'Using private key login is insecure. It is recommended to use a browser extension for login, such as alby, nostr-keyx or nos2x. If you must use a private key, please set a password for encryption at minimum.': + 'Using private key login is insecure. It is recommended to use a browser extension for login, such as alby, nostr-keyx or nos2x. If you must use a private key, please set a password for encryption at minimum.', 'Login with Browser Extension': 'Entrar com Extensão do Navegador', 'Login with Bunker': 'Entrar com Bunker', 'Login with Private Key': 'Entrar com Chave Privada', @@ -114,6 +266,19 @@ export default { 'Picture note requires images': 'Nota de imagem requer imagens', Relays: 'Relés', Image: 'imagem', + 'Upload Image': 'Upload Image', + 'Insert emoji': 'Insert emoji', + 'Insert GIF': 'Insert GIF', + 'Search GIFs': 'Search GIFs', + 'Choose a GIF': 'Choose a GIF', + 'Search GifBuddy for more GIFs': 'Search GifBuddy for more GIFs', + 'Add your own GIFs': 'Add your own GIFs', + 'Description (optional, for search)': 'Description (optional, for search)', + 'e.g. happy birthday, thumbs up': 'e.g. happy birthday, thumbs up', + 'Uploading...': 'Uploading...', + 'No GIFs found. Try searching or add your own. GIFs come from Nostr kind 1063 (NIP-94) events on GIF relays.': + 'No GIFs found. Try searching or add your own. GIFs come from Nostr kind 1063 (NIP-94) events on GIF relays.', + '{{name}} is not a GIF file': '{{name}} is not a GIF file', 'R & W': 'Leitura & Escrita', Read: 'Ler', Write: 'Escrever', @@ -155,6 +320,9 @@ export default { Muted: 'Silenciado', Unmute: 'Ativar som', 'Unmute user': 'Ativar som do usuário', + Block: 'Block', + Unblock: 'Unblock', + blocked: 'blocked', 'Append n relays': 'Adicionar {{n}} relés', Append: 'Adicionar', 'Select relays to append': 'Selecione os relés para adicionar', @@ -179,6 +347,24 @@ export default { 'Explore more': 'Explorar mais', 'Payment page': 'Página de Pagamento', 'Supported NIPs': 'NIPs Suportados', + 'Relay liveliness (NIP-66)': 'Relay liveliness (NIP-66)', + 'Relay monitor (NIP-66)': 'Relay monitor (NIP-66)', + 'Auth required': 'Auth required', + 'Public (no auth)': 'Public (no auth)', + 'Payment required': 'Payment required', + 'No payment': 'No payment', + 'Writes required': 'Writes required', + 'Writes open': 'Writes open', + 'PoW required': 'PoW required', + 'No PoW': 'No PoW', + 'RTT open': 'RTT open', + 'RTT read': 'RTT read', + 'RTT write': 'RTT write', + 'Supported NIPs (from monitor)': 'Supported NIPs (from monitor)', + 'Last reported by monitor': 'Last reported by monitor', + Network: 'Network', + Type: 'Type', + Topics: 'Topics', 'Open in a': 'Abrir em {{a}}', 'Cannot handle event of kind k': 'Não é possível lidar com o evento do tipo {{k}}', 'Sorry! The note cannot be found 😔': 'Desculpe! A nota não pode ser encontrada 😔', @@ -210,9 +396,22 @@ export default { 'Seen on': 'Visto em', 'Temporarily display this reply': 'Exibir temporariamente esta resposta', 'Note not found': 'Nota não encontrada', + 'The note was not found on your relays or default relays.': + 'The note was not found on your relays or default relays.', + "Try searching author's relays": "Try searching author's relays", + 'Searching external relays...': 'Searching external relays...', + "This will connect to the author's relays and relay hints": + "This will connect to the author's relays and relay hints", + 'Note could not be found anywhere': 'Note could not be found anywhere', + 'Try external relays': 'Try external relays', + 'Searching...': 'Searching...', + 'Show relays': 'Show relays', + 'No external relay hints available': 'No external relay hints available', 'no more replies': 'não há mais respostas', 'Relay sets': 'Conjuntos de Relé', 'Favorite Relays': 'Relés Favoritos', + 'Search for Relays': 'Search for Relays', + 'Using app default relays': 'Using app default relays', "Following's Favorites": 'Favoritos de quem você segue', 'no more relays': 'não há mais relés', 'Favorited by': 'Favoritado por', @@ -228,11 +427,49 @@ export default { 'no bookmarks found': 'Nenhum favorito encontrado', 'no more bookmarks': 'Sem mais favoritos', Bookmarks: 'Favoritos', + 'Follow Packs': 'Follow Packs', + 'Follow Pack': 'Follow Pack', + 'Please log in to follow': 'Please log in to follow', + 'Following All': 'Following All', + 'Followed {{count}} users': 'Followed {{count}} users', + 'All available members are already followed or muted': + 'All available members are already followed or muted', + 'You are already following all members of this pack': + 'You are already following all members of this pack', + 'Failed to follow pack': 'Failed to follow pack', + '{{count}} profiles': '{{count}} profiles', 'Show more': 'Mostrar mais', General: 'Geral', Autoplay: 'Reprodução Automática', 'Enable video autoplay on this device': 'Habilitar reprodução automática de vídeo neste dispositivo', + 'Add random relays to every publish': 'Random relays in publish list', + 'Add random relays to every publish description': + 'Adds {{n}} random public relays from the NIP-66 lively list (preferring monitors that reported a write RTT) to the publish relay list. When ON, they are selected by default; when OFF, they appear in the list but are unchecked so you can optionally include them.', + relayType_local: 'Local', + relayType_relay_list: 'Relay list', + relayType_client_default: 'Client default', + relayType_open_from: 'Current feed', + relayType_favorite: 'Favorite', + relayType_relay_set: 'Relay set', + relayType_contextual: 'Reply/PM', + relayType_randomly_selected: 'Random (optional)', + 'Session relays': 'Session relays', + 'Session relays tab description': + 'Relay logic for this session: working and striked preset relays, and scored random relays (used to prefer faster, proven relays when adding random relays to publish).', + 'Session relays preset working': 'Working preset relays', + 'Session relays preset working hint': + 'Preset relays (from app defaults) that have not reached 3 publish failures this session.', + 'Session relays preset striked': 'Striked preset relays', + 'Session relays preset striked hint': + 'Preset relays that have reached 3 publish failures this session and are skipped for the rest of the session.', + 'Session relays scored random': 'Scored random relays', + 'Session relays scored random hint': + 'Relays that have accepted at least one publish this session; used to prefer faster relays when picking random relays. Sorted by average latency.', + 'Session relays all striked': 'All striked relays (any source)', + successes: 'successes', + None: 'None', + 'Cache & offline storage': 'Cache & offline storage', 'Paste or drop media files to upload': 'Cole ou solte arquivos de mídia para fazer upload', Preview: 'Pré-visualização', 'You are about to publish an event signed by [{{eventAuthorName}}]. You are currently logged in as [{{currentUsername}}]. Are you sure?': @@ -265,6 +502,7 @@ export default { 'Are you sure you want to reset your API key? This action cannot be undone.': 'Tem certeza de que deseja redefinir sua chave API? Esta ação não pode ser desfeita.', Warning: 'Aviso', + 'Errors & warnings': 'Errors & warnings', 'Your current API key will become invalid immediately, and any applications using it will stop working until you update them with the new key.': 'Sua chave API atual se tornará inválida imediatamente, e qualquer aplicativo que a utilize deixará de funcionar até que você os atualize com a nova chave.', 'Service address': 'Endereço do serviço', @@ -296,6 +534,9 @@ export default { Article: 'Artigo', Unfavorite: 'Desfavoritar', 'Recommended relays': 'Relés recomendados', + 'Show recommended relays panel': 'Show recommended relays panel', + 'Display the right-side panel with recommended relays on desktop': + 'Display the right-side panel with recommended relays on desktop', 'Blossom server URLs': 'URLs do servidor Blossom', 'You need to add at least one blossom server in order to upload media files.': 'Você precisa adicionar pelo menos um servidor Blossom para poder carregar arquivos de mídia.', @@ -322,7 +563,31 @@ export default { 'Refresh results': 'Atualizar resultados', Poll: 'Sondagem', Media: 'mídia', + Interests: 'Interests', + Calendar: 'Calendar', + 'No subscribed interests yet.': + 'No subscribed interests yet. Add topics in settings to see them here.', + 'No bookmarked notes with id tags yet.': + 'No bookmarked notes with id tags yet. Only classic (e-tag) bookmarks load in this feed.', + 'No follows or relays to load yet.': 'No follows or relays to load yet.', + 'Nothing to load for this feed.': 'Nothing to load for this feed.', 'Republish to ...': 'Transmitir para...', + 'All available relays': 'All available relays', + 'All active relays (monitoring list)': 'All active relays (monitoring list)', + 'Successfully republish to all available relays': + 'Successfully republish to all available relays', + 'Failed to republish to all available relays: {{error}}': + 'Failed to republish to all available relays: {{error}}', + 'Successfully republish to all active relays': 'Successfully republish to all active relays', + 'Failed to republish to all active relays: {{error}}': + 'Failed to republish to all active relays: {{error}}', + 'No active relays in monitoring list': 'No active relays in monitoring list', + 'No relay accepted the event': 'No relay accepted the event', + 'No relays available': 'No relays available', + 'No write relays configured': 'No write relays configured', + 'Relay did not accept the event': 'Relay did not accept the event', + 'Only {{count}} relay(s) accepted the event; at least 5 required for "all active relays".': + 'Only {{count}} relay(s) accepted the event; at least 5 required for "all active relays".', 'Successfully republish to your write relays': 'Transmitido com sucesso para seus relays de escrita', 'Failed to republish to your write relays: {{error}}': @@ -341,6 +606,7 @@ export default { 'No zaps yet': 'Ainda sem zaps', 'No more boosts': 'Sem mais boosts', 'No boosts yet': 'Ainda sem boosts', + 'n more boosts': '{{count}} more boosts', Boosts: 'Boosts', FollowListNotFoundConfirmation: 'Lista de seguir não encontrada. Deseja criar uma nova? Se seguiu utilizadores anteriormente, por favor NÃO confirme, pois esta operação fará com que perca a sua lista de seguir anterior.', @@ -363,8 +629,13 @@ export default { 'Maybe Later': 'Talvez mais tarde', "Don't remind me again": 'Não me relembrar novamente', Posts: 'Publicações', + 'Posts (OPs)': 'Posts (OPs)', + 'Kind 1 replies': 'Kind 1 replies', + Comments: 'Comments', + 'Replies & comments': 'Replies & comments', Articles: 'Artigos', Highlights: 'Destaques', + 'A note from': 'A note from', Polls: 'Inquéritos', 'Voice Posts': 'Áudios', 'Photo Posts': 'Fotos', @@ -390,6 +661,13 @@ export default { 'boosted your note': 'deu boost na sua nota', 'zapped your note': 'zappeou a sua nota', 'zapped you': 'zappeou-o', + zapped: 'zapped', + 'Invalid zap receipt': 'Invalid zap receipt', + 'Zapped note': 'Zapped note', + 'Zapped profile': 'Zapped profile', + 'Zap reply threshold': 'Zap reply threshold', + 'Zaps above this amount will appear as replies in threads': + 'Zaps above this amount will appear as replies in threads', 'Mark as read': 'Marcar como lida', Report: 'Denunciar', 'Successfully report': 'Denúncia enviada com sucesso', @@ -404,7 +682,6 @@ export default { 'See extra info for each notification': 'Ver informações extra para cada notificação', 'See more notifications at a glance': 'Ver mais notificações rapidamente', Detailed: 'Detalhado', - Compact: 'Compacto', 'Submit Relay': 'Enviar Relay', Homepage: 'Página inicial', 'Proof of Work (difficulty {{minPow}})': 'Prova de Trabalho (dificuldade {{minPow}})', @@ -432,6 +709,23 @@ export default { '{{count}} relays': '{{count}} relays', 'Republishing...': 'Republicando...', 'Trending Notes': 'Notas em Tendência', + 'Trending on Your Favorite Relays': 'Trending on Your Favorite Relays', + 'Trending on the Default Relays': 'Trending on the Default Relays', + 'Latest from your follows': 'Latest from your follows', + 'Latest from our recommended follows': 'Latest from our recommended follows', + 'Loading follow list…': 'Loading follow list…', + 'Could not load recommended follows': 'Could not load recommended follows', + 'Your follow list is empty': 'Your follow list is empty', + 'Loading recent posts from follows…': 'Loading recent posts from follows…', + 'Loading more…': 'Loading more…', + 'No recent posts from this user in the current fetch': + 'No recent posts from this user in the current fetch', + 'Loading trending notes from your relays...': 'Loading trending notes from your relays...', + Sort: 'Sort', + newest: 'newest', + oldest: 'oldest', + 'most popular': 'most popular', + 'least popular': 'least popular', 'Connected to': 'Conectado a', 'Disconnect Wallet': 'Desconectar Carteira', 'Are you absolutely sure?': 'Tem certeza absoluta?', @@ -439,6 +733,690 @@ export default { Disconnect: 'Desconectar', 'Set up your wallet to send and receive sats!': 'Configure a sua carteira para enviar e receber sats!', - 'Set up': 'Configurar' + 'Set up': 'Configurar', + 'nested events': 'nested events', + 'Loading RSS feeds...': 'Loading RSS feeds...', + 'No RSS feed items available': 'No RSS feed items available', + 'Show or hide the RSS page and sidebar entry': 'Show or hide the RSS page and sidebar entry', + 'Refreshing feeds...': 'Refreshing feeds...', + 'All feeds': 'All feeds', + 'All time': 'All time', + 'Last hour': 'Last hour', + 'Last day': 'Last day', + 'Last week': 'Last week', + 'Last month': 'Last month', + 'No items match your filters': 'No items match your filters', + 'Search...': 'Search...', + '{{count}} feeds': '{{count}} feeds', + 'Toggle filters': 'Toggle filters', + 'Showing {{filtered}} of {{total}} items': 'Showing {{filtered}} of {{total}} items', + Full: 'Full', + Compact: 'Compacto', + Expand: 'Expand', + 'help.title': 'Help', + 'help.tabShortcuts': 'Keyboard shortcuts', + 'help.tabOverview': 'App overview', + 'shortcuts.title': 'Keyboard shortcuts', + 'shortcuts.intro': + 'Shortcuts for this app and common browsing. Modifier combos are Shift+Alt+key (Option+Shift+key on macOS); either modifier order works when typing.', + 'shortcuts.sectionApp': 'This app', + 'shortcuts.sectionSearch': 'Search bar', + 'shortcuts.sectionStandard': 'Standard', + 'shortcuts.openHelp': 'Show this help', + 'shortcuts.or': 'or', + 'shortcuts.then': 'then', + 'shortcuts.focusPrimary': + 'Focus main column scroll (desktop; then arrow keys, Page Up/Down, Home/End)', + 'shortcuts.focusSecondary': + 'Focus side panel scroll when it is open (desktop; same keys to scroll)', + 'shortcuts.newNote': 'New note / post (after login if needed)', + 'shortcuts.searchSuggest': 'Move through suggestions', + 'shortcuts.searchDismiss': 'Close search dropdown', + 'shortcuts.tabNavigate': 'Move focus to the next or previous control', + 'shortcuts.activate': 'Activate buttons and many controls', + 'shortcuts.closeOverlays': 'Close dialogs, menus, and the search dropdown', + 'shortcuts.scrollWhenFocused': 'Scroll the focused scrollable area', + 'shortcuts.browserBack': 'Browser back (history)', + 'No spells yet. Create one with the button above.': + 'No spells yet. Create one with the button above.', + 'Loading spells from your relays…': 'Loading spells from your relays…', + 'Could not run this spell. Check that it has a valid REQ/COUNT command, or add write relays in settings.': + 'Could not run this spell. Check that it has a valid REQ/COUNT command, or add write relays in settings.', + 'Select a spell…': 'Select a spell…', + 'Spells from follows': 'From people you follow ({{count}})', + 'Other spells': 'Other spells ({{count}})', + 'Select a spell to view its feed.': 'Select a spell to view its feed.', + 'Add another row': 'Add another row', + 'Remove this row': 'Remove this row', + 'One kind number per row (e.g. 1 for notes).': 'One kind number per row (e.g. 1 for notes).', + 'One author per row: $me, $contacts, or hex pubkey / npub.': + 'One author per row: $me, $contacts, or hex pubkey / npub.', + 'One hex event id per row.': 'One hex event id per row.', + 'One wss:// URL per row. Leave empty to use your write relays.': + 'One wss:// URL per row. Leave empty to use your write relays.', + 'One topic per row.': 'One topic per row.', + topic: 'topic', + 'Spell form fields': 'Spell form fields', + 'Counting matching events…': 'Counting matching events…', + 'Edit spell': 'Edit spell', + 'Clone spell': 'Clone spell', + 'Spell cloned': 'Spell cloned', + 'Clone spell intro': + 'This spell is preloaded from another author’s definition. Change anything you like, then save to publish a new spell signed with your account.', + 'Spell updated': 'Spell updated', + 'Relay URL': 'Relay', + Count: 'Count', + 'Edit spell relays': 'Edit relays', + 'COUNT spell relay errors hint': + 'One or more relays failed or returned an error. You can change the relay list in the spell and save again.', + 'COUNT spell total distinct explanation': + 'Distinct matching event IDs across all relays that responded successfully (duplicates across relays removed). Each relay only returns up to the filter limit.', + 'Leave empty to use your write relays.': 'Leave empty to use your write relays.', + 'COUNT spell result explanation': + 'Distinct events returned for this filter (merged from your spell relays and default write relays, duplicates removed). Relays only return up to the filter limit.', + 'COUNT spell may be capped by limit': + 'This count may equal your spell limit — there could be more matching events on the network.', + 'Spell count failed. Check relays or try again.': + 'Could not complete the count. Check relays or try again.', + 'REQ returns a feed; COUNT returns a number.': + 'REQ: scrollable feed (choose live Feed or one-shot Fetch below). COUNT: a single number, no feed.', + listImportManualLabel: 'Pre-fill from event', + listImportFromEventHint: + 'Supported tags are merged into the form (e, p, t, relay, r, a where possible). Non-empty content is skipped; encrypted private items are not read. You may see notices for unmapped tags.', + listImportManualPlaceholder: '64-char hex, nevent1…, or naddr1…', + listImportLoadManual: 'Apply', + listImportContentSkipped: + 'This event has non-empty content (may include encrypted private items). Only public tags were merged.', + listImportUnsupportedEmoji: + 'This list includes emoji tags (NIP-30); those are not added to the spell filter.', + listImportUnsupportedTag: + 'Tags of type “{{tag}}” ({{count}}) are not mapped to spell filters yet.', + listImportBadATag: 'Could not parse address tag: {{preview}}…', + listImportATagNotFound: 'Could not resolve address tag: {{preview}}…', + listImportATagFailed: 'Failed to resolve address tag: {{preview}}…', + listImportEventNotFound: 'No event found for that reference.', + 'REQ tag filters': 'REQ tag filters', + spellFormTagFiltersLabel: 'Tag filters on matching events', + spellCreateIntro: + 'Spells are saved relay filters (NIP-A7). The “Spell query” section is the real definition; the dashed box at the bottom is only for names, descriptions, and catalog labels. Use $me for your pubkey and $contacts for your follow list when executing.', + spellFormSectionQueryTitle: 'Spell query', + spellFormSectionQueryHint: + 'This block is the actual spell definition: it becomes the Nostr REQ/COUNT filter (kinds, authors, time range, tag filters on matching events, relays, etc.).', + spellFormSectionMetadataTitle: 'Listing & labels (optional)', + spellFormSectionMetadataBadge: 'Not part of the query', + spellFormSectionMetadataHint: + 'Name, description, and topic labels are only for display and spell pickers. They are not used when the spell fetches events.', + spellFormCatalogTopicsLabel: 'Topic labels on this spell (t tags)', + spellTopicsMetadataHint: + 'One topic per row. To filter which notes you see, use “REQ tag filters” in the spell query above (letter “t”).', + spellTagFiltersHint: + 'Optional filters on subscribed events (NIP-01 single-letter tags). Example: letter “t”, values “bitcoin”.', + spellTagFiltersEmpty: 'No tag filters yet. Add rows below or apply an event reference above.', + 'Tag filter letter': 'Tag letter', + 'Filter value': 'Value', + 'Add tag filter': 'Add tag filter', + spellPickerSectionYours: 'Your spells', + 'Failed to remove spell from local storage': 'Failed to remove spell from local storage', + Spells: 'Spells', + 'doublePane.secondaryEmpty': 'Open a note, profile, or settings item to show it here.', + 'doublePane.secondaryEmptyHint': 'Your feed and primary pages stay on the left.', + '(empty)': '(empty)', + '12-hour (AM/PM)': '12-hour (AM/PM)', + '24-hour': '24-hour', + 'A new version is available': 'A new version is available', + 'A short description of the article content': 'A short description of the article content', + AM: 'AM', + 'Access via': 'Access via', + 'Accessed On': 'Accessed On', + 'Accessed on': 'Accessed on', + 'Add RSS feed URLs to subscribe to. If no feeds are configured, the default feed will be used.': + 'Add RSS feed URLs to subscribe to. If no feeds are configured, the default feed will be used.', + 'Add a relay to block': 'Add a relay to block', + 'Add at least one invitee': 'Add at least one invitee', + 'Add client identifier': 'Add client identifier', + 'Add expiration tags by default': 'Add expiration tags by default', + 'Add quiet tags by default': 'Add quiet tags by default', + 'Add recipients using nostr: mentions (e.g., nostr:npub1...) or the recipient selector above': + 'Add recipients using nostr: mentions (e.g., nostr:npub1...) or the recipient selector above', + 'Add the source (where this text is from)': 'Add the source (where this text is from)', + 'Add to favorites': 'Add to favorites', + 'Add {{count}} Selected': 'Add {{count}} Selected', + 'Added at': 'Added at', + 'Added {{count}} relay(s)': 'Added {{count}} relay(s)', + 'Adding...': 'Adding...', + 'Adding…': 'Adding…', + 'Advanced Options': 'Advanced Options', + 'All Topics': 'All Topics', + 'All favorite relays': 'All favorite relays', + 'All feeds from OPML file are already added': 'All feeds from OPML file are already added', + 'All items deleted successfully': 'All items deleted successfully', + 'Already blocked': 'Already blocked', + 'Already saved': 'Already saved', + 'Application Recommendations': 'Application Recommendations', + 'Are you sure you want to clear all cached data? This will delete all stored events and settings from your browser.': + 'Are you sure you want to clear all cached data? This will delete all stored events and settings from your browser.', + 'Are you sure you want to delete all items from this store?': + 'Are you sure you want to delete all items from this store?', + 'Are you sure you want to unmute this user? This will restore the follow button.': + 'Are you sure you want to unmute this user? This will restore the follow button.', + "Are you sure you want to unregister the service worker? This will clear this app's service worker caches and you will need to reload the page.": + "Are you sure you want to unregister the service worker? This will clear this app's service worker caches and you will need to reload the page.", + 'Article exported as AsciiDoc': 'Article exported as AsciiDoc', + 'Article exported as Markdown': 'Article exported as Markdown', + 'Article title (optional)': 'Article title (optional)', + Audio: 'Audio', + Author: 'Author', + 'Author is required for reading groups': 'Author is required for reading groups', + 'Author name (optional)': 'Author name (optional)', + Authors: 'Authors', + 'Block Relay': 'Block Relay', + 'Blocked Relays': 'Blocked Relays', + 'Blocking...': 'Blocking...', + Blossom: 'Blossom', + Book: 'Book', + 'Brief description of the event': 'Brief description of the event', + 'Brief summary (optional)': 'Brief summary (optional)', + 'Brief summary of the article (optional)': 'Brief summary of the article (optional)', + 'Browse Cache': 'Browse Cache', + 'C-Tag': 'C-Tag', + 'Cache Relays': 'Cache Relays', + 'Cache cleared successfully': 'Cache cleared successfully', + 'Cache refreshed successfully': 'Cache refreshed successfully', + 'Cache relays are used to store and retrieve events locally. These relays are merged with your inbox and outbox relays.': + 'Cache relays are used to store and retrieve events locally. These relays are merged with your inbox and outbox relays.', + 'Cache relays must be local network URLs only (e.g., ws://localhost:4869 or ws://127.0.0.1:4869)': + 'Cache relays must be local network URLs only (e.g., ws://localhost:4869 or ws://127.0.0.1:4869)', + 'Cache relays saved': 'Cache relays saved', + Cancelled: 'Cancelled', + Chapter: 'Chapter', + 'Chapter Title': 'Chapter Title', + 'Chapter title (optional)': 'Chapter title (optional)', + Citation: 'Citation', + 'Citation title (optional)': 'Citation title (optional)', + 'Clean up duplicate replaceable events? This will keep only the newest version of each event.': + 'Clean up duplicate replaceable events? This will keep only the newest version of each event.', + 'Cleaned up {{deleted}} duplicate entries, kept {{kept}}': + 'Cleaned up {{deleted}} duplicate entries, kept {{kept}}', + 'Cleaned up {{deleted}} duplicate entries, kept {{kept}} (total items after cleanup: {{total}})': + 'Cleaned up {{deleted}} duplicate entries, kept {{kept}} (total items after cleanup: {{total}})', + 'Cleanup Duplicates': 'Cleanup Duplicates', + Clear: 'Clear', + 'Clear Cache': 'Clear Cache', + 'Clear Service Worker': 'Clear Service Worker', + 'Clear cached data stored in your browser, including IndexedDB events, localStorage settings, and service worker caches.': + 'Clear cached data stored in your browser, including IndexedDB events, localStorage settings, and service worker caches.', + 'Click update to get the latest features and improvements': + 'Click update to get the latest features and improvements', + Close: 'Close', + 'Comma or space-separated topics (will be added as t-tags)': + 'Comma or space-separated topics (will be added as t-tags)', + Command: 'Command', + Configure: 'Configure', + 'Connect Wallet': 'Connect Wallet', + 'Console Logs': 'Console Logs', + 'Console logs cleared': 'Console logs cleared', + 'Content is required': 'Content is required', + 'Content must be 5000 characters or less': 'Content must be 5000 characters or less', + Controversial: 'Controversial', + 'Copied!': 'Copied!', + 'Copy to clipboard': 'Copy to clipboard', + 'Create Article': 'Create Article', + 'Create Citation': 'Create Citation', + 'Create Highlight': 'Create Highlight', + 'Create New Thread': 'Create New Thread', + 'Create Poll': 'Create Poll', + 'Create Thread': 'Create Thread', + 'Create a Spell': 'Create a Spell', + 'Creating...': 'Creating...', + 'D-Tag': 'D-Tag', + 'D-Tag is required for articles': 'D-Tag is required for articles', + DOI: 'DOI', + 'Date-based (all-day)': 'Date-based (all-day)', + 'Default expiration (months)': 'Default expiration (months)', + 'Default quiet period (days)': 'Default quiet period (days)', + 'Delete All': 'Delete All', + 'Delete item': 'Delete item', + 'Deleted {{count}} event(s)': 'Deleted {{count}} event(s)', + 'Deletion request sent': 'Deletion request sent', + 'Description (content)': 'Description (content)', + 'Digital Object Identifier (optional)': 'Digital Object Identifier (optional)', + 'Disable word wrap': 'Disable word wrap', + 'Discovered Relays': 'Discovered Relays', + 'Discovering relays...': 'Discovering relays...', + Discussion: 'Discussion', + Discussions: 'Discussions', + Downvote: 'Downvote', + 'Edited by': 'Edited by', + Editor: 'Editor', + 'Editor name (optional)': 'Editor name (optional)', + 'Enable word wrap': 'Enable word wrap', + 'End date': 'End date', + 'End date must be after start date': 'End date must be after start date', + 'Enter a Nostr event identifier (nevent, naddr, note, or hex ID) OR a web URL (https://). Not both.': + 'Enter a Nostr event identifier (nevent, naddr, note, or hex ID) OR a web URL (https://). Not both.', + 'Enter a descriptive title for your thread': 'Enter a descriptive title for your thread', + 'Enter the author name': 'Enter the author name', + 'Enter the book title': 'Enter the book title', + 'Enter the specific text you want to highlight in the main content area above': + 'Enter the specific text you want to highlight in the main content area above', + 'Event IDs (ids)': 'Event IDs (ids)', + 'Event appears to be invalid or corrupted': 'Event appears to be invalid or corrupted', + 'Event has no value data': 'Event has no value data', + 'Event is missing required fields: {{fields}}': 'Event is missing required fields: {{fields}}', + 'Event type': 'Event type', + 'Expiration Tags': 'Expiration Tags', + 'Export OPML': 'Export OPML', + 'Export as AsciiDoc': 'Export as AsciiDoc', + 'Export as Markdown': 'Export as Markdown', + 'External Citation': 'External Citation', + 'External Citation Settings': 'External Citation Settings', + 'Failed to add relay. Please try again.': 'Failed to add relay. Please try again.', + 'Failed to add relays': 'Failed to add relays', + 'Failed to block relay. Please try again.': 'Failed to block relay. Please try again.', + 'Failed to cleanup duplicates': 'Failed to cleanup duplicates', + 'Failed to clear cache': 'Failed to clear cache', + 'Failed to copy': 'Failed to copy', + 'Failed to create relay set. Please try again.': + 'Failed to create relay set. Please try again.', + 'Failed to create thread': 'Failed to create thread', + 'Failed to create thread. Please try a different relay.': + 'Failed to create thread. Please try a different relay.', + 'Failed to delete all items': 'Failed to delete all items', + 'Failed to delete item': 'Failed to delete item', + 'Failed to discover relays': 'Failed to discover relays', + 'Failed to export OPML file': 'Failed to export OPML file', + 'Failed to export article': 'Failed to export article', + 'Failed to import OPML file: {{error}}': 'Failed to import OPML file: {{error}}', + 'Failed to load RSS feeds': 'Failed to load RSS feeds', + 'Failed to load store items': 'Failed to load store items', + 'Failed to mute user privately': 'Failed to mute user privately', + 'Failed to mute user publicly': 'Failed to mute user publicly', + 'Failed to pin note': 'Failed to pin note', + 'Failed to publish post': 'Failed to publish post', + 'Failed to publish reply': 'Failed to publish reply', + 'Failed to publish thread': 'Failed to publish thread', + 'Failed to publish to some relays. Please try again or use different relays.': + 'Failed to publish to some relays. Please try again or use different relays.', + 'Failed to save RSS feeds': 'Failed to save RSS feeds', + 'Failed to save cache relays': 'Failed to save cache relays', + 'Failed to save relay list': 'Failed to save relay list', + 'Failed to unregister service worker: ': 'Failed to unregister service worker: ', + 'Failed to unsubscribe from topic': 'Failed to unsubscribe from topic', + Favorite: 'Favorite', + Fetch: 'Fetch', + 'Fetch once, then stop.': 'Fetch once, then stop.', + 'Filter by': 'Filter by', + 'Flat View': 'Flat View', + 'Font size': 'Font size', + 'Full Quote/Context': 'Full Quote/Context', + 'Full-text search query': 'Full-text search query', + Geohash: 'Geohash', + 'Geohash (optional)': 'Geohash (optional)', + 'Global quiet mode': 'Global quiet mode', + 'Group discussions by topic': 'Group discussions by topic', + 'Grouped View': 'Grouped View', + Groups: 'Groups', + 'Handler {{index}}': 'Handler {{index}}', + 'Hardcopy Citation': 'Hardcopy Citation', + 'Hardcopy Citation Settings': 'Hardcopy Citation Settings', + Hide: 'Hide', + 'Hide interactions on all posts': 'Hide interactions on all posts', + 'Hide interactions on posts with quiet tags': 'Hide interactions on posts with quiet tags', + 'High PoW': 'High PoW', + 'Higher values make your thread harder to mine but more unique.': + 'Higher values make your thread harder to mine but more unique.', + Highlight: 'Highlight', + 'Highlight Settings': 'Highlight Settings', + 'How to Create a Highlight (NIP-84)': 'How to Create a Highlight (NIP-84)', + 'Human-readable spell name': 'Human-readable spell name', + 'Image URL': 'Image URL', + 'Import OPML': 'Import OPML', + 'Imported {{count}} feed(s) from OPML file': 'Imported {{count}} feed(s) from OPML file', + 'In-Browser Cache': 'In-Browser Cache', + Insert: 'Insert', + 'Insert URL into your post and publish to Nostr GIF library (NIP-94).': + 'Insert URL into your post and publish to Nostr GIF library (NIP-94).', + 'Insert event or address': 'Insert event or address', + 'Insert mention': 'Insert mention', + 'Internal Citation': 'Internal Citation', + 'Internal Citation Settings': 'Internal Citation Settings', + 'Invalid Event': 'Invalid Event', + 'Invalid Lightning Address': 'Invalid Lightning Address', + 'Invalid Lightning Address. Please enter a valid Lightning Address or LNURL.': + 'Invalid Lightning Address. Please enter a valid Lightning Address or LNURL.', + 'Invalid URL': 'Invalid URL', + 'Invalid content JSON': 'Invalid content JSON', + 'Invalid relay URL': 'Invalid relay URL', + 'Invalid source. Please enter a note ID, nevent, naddr, hex ID, or URL.': + 'Invalid source. Please enter a note ID, nevent, naddr, hex ID, or URL.', + 'Item deleted successfully': 'Item deleted successfully', + JSON: 'JSON', + 'Join link': 'Join link', + 'Journal/Publication name (optional)': 'Journal/Publication name (optional)', + Json: 'JSON', + Kinds: 'Kinds', + 'Language Model': 'Language Model', + Large: 'Large', + 'Leave empty for HiveTalk, or paste Zoom / Teams / other link': + 'Leave empty for HiveTalk, or paste Zoom / Teams / other link', + 'Lightning payment failed': 'Lightning payment failed', + Limit: 'Limit', + 'Live feed; keeps updating.': 'Live feed; keeps updating.', + 'Loading more...': 'Loading more...', + 'Loading relays...': 'Loading relays...', + 'Location (optional)': 'Location (optional)', + 'Log in to run this spell (it uses $me or $contacts).': + 'Log in to run this spell (it uses $me or $contacts).', + 'Login failed': 'Login failed', + 'Login to configure RSS feeds': 'Login to configure RSS feeds', + 'Long-form Article': 'Long-form Article', + 'Mailbox relays saved': 'Mailbox relays saved', + 'Mark as NSFW': 'Mark as NSFW', + 'Maximum {{max}} invitees': 'Maximum {{max}} invitees', + 'Maximum {{max}} invitees allowed': 'Maximum {{max}} invitees allowed', + Medium: 'Medium', + Mode: 'Mode', + 'Most Zapped': 'Most Zapped', + 'Move to top': 'Move to top', + 'Multiple choice': 'Multiple choice', + 'Mute failed': 'Mute failed', + NSFW: 'NSFW', + Name: 'Name', + 'Name of the language model used': 'Name of the language model used', + 'New External Citation': 'New External Citation', + 'New Hardcopy Citation': 'New Hardcopy Citation', + 'New Highlight': 'New Highlight', + 'New Internal Citation': 'New Internal Citation', + 'New Long-form Article': 'New Long-form Article', + 'New Poll': 'New Poll', + 'New Prompt Citation': 'New Prompt Citation', + 'New Public Message': 'New Public Message', + 'New Wiki Article': 'New Wiki Article', + 'New Wiki Article (Markdown)': 'New Wiki Article (Markdown)', + Newest: 'Newest', + 'No JSON available': 'No JSON available', + 'No RSS feeds found in OPML file': 'No RSS feeds found in OPML file', + 'No cached data found.': 'No cached data found.', + 'No console logs captured yet': 'No console logs captured yet', + 'No events found': 'No events found', + 'No feeds configured. Default feed will be used.': + 'No feeds configured. Default feed will be used.', + 'No feeds to export': 'No feeds to export', + 'No groups available. Join some groups first.': 'No groups available. Join some groups first.', + 'No items in this store.': 'No items in this store.', + 'No items match your search.': 'No items match your search.', + 'No logs match the current filters': 'No logs match the current filters', + 'No posts found': 'No posts found', + 'No posts match your search': 'No posts match your search', + 'No relays available. Please configure relays in settings.': + 'No relays available. Please configure relays in settings.', + 'No service workers or caches found for this app': + 'No service workers or caches found for this app', + 'No users found': 'No users found', + 'No valid RSS feed URLs found in OPML file': 'No valid RSS feed URLs found in OPML file', + 'Note pinned': 'Note pinned', + 'Note unpinned': 'Note unpinned', + Oldest: 'Oldest', + 'Open Timestamp': 'Open Timestamp', + 'Opens in a new tab. Copy a GIF URL there, then paste below. If this picker closed, click “Insert GIF” again to paste.': + 'Opens in a new tab. Copy a GIF URL there, then paste below. If this picker closed, click “Insert GIF” again to paste.', + Option: 'Option', + Optional: 'Optional', + 'Optional image for the event': 'Optional image for the event', + 'Optionally, add the full quote/context to show your highlight within it': + 'Optionally, add the full quote/context to show your highlight within it', + PM: 'PM', + 'Page Range': 'Page Range', + Pages: 'Pages', + 'Paste URL of a GIF': 'Paste URL of a GIF', + 'Paste the entire original passage that contains your highlight': + 'Paste the entire original passage that contains your highlight', + Photo: 'Photo', + 'Picture Note': 'Picture Note', + 'Pin note': 'Pin note', + 'Plain text description of the query': 'Plain text description of the query', + 'Please login to view bookmarks': 'Please login to view bookmarks', + 'Please select a group': 'Please select a group', + 'Please select at least one relay': 'Please select at least one relay', + 'Please set a start date': 'Please set a start date', + 'Poll with no options': 'Poll with no options', + 'Post published to some relays': 'Post published to some relays', + 'Posts will automatically include expiration tags': + 'Posts will automatically include expiration tags', + 'Posts will automatically include quiet tags': 'Posts will automatically include quiet tags', + 'Posts will be quiet for this many days': 'Posts will be quiet for this many days', + 'Posts will expire after this many months': 'Posts will expire after this many months', + 'Processing...': 'Processing...', + 'Profile event not available': 'Profile event not available', + 'Prompt Citation': 'Prompt Citation', + 'Prompt Citation Settings': 'Prompt Citation Settings', + 'Prompt Conversation Script': 'Prompt Conversation Script', + 'Proof of Work': 'Proof of Work', + 'Publish to Relays': 'Publish to Relays', + 'Published By': 'Published By', + 'Published In': 'Published In', + 'Published On': 'Published On', + 'Published in': 'Published in', + 'Published on': 'Published on', + 'Publisher name (optional)': 'Publisher name (optional)', + 'Quiet Tags': 'Quiet Tags', + 'RSS Feed': 'RSS Feed', + 'RSS Feed Settings': 'RSS Feed Settings', + 'RSS Feeds': 'RSS Feeds', + 'RSS feeds exported to OPML file': 'RSS feeds exported to OPML file', + 'RSS feeds saved': 'RSS feeds saved', + 'Rate limited. Please wait before trying again.': + 'Rate limited. Please wait before trying again.', + 'Reaction published': 'Reaction published', + 'Reaction removed': 'Reaction removed', + 'Read full article': 'Read full article', + 'Reading group entry': 'Reading group entry', + 'Readings Options': 'Readings Options', + Recipients: 'Recipients', + 'Recipients detected from your message:': 'Recipients detected from your message:', + 'Recommended Relays': 'Recommended Relays', + 'Recommended applications for handling events of kind {{kind}}': + 'Recommended applications for handling events of kind {{kind}}', + 'Reference to the cited Nostr event in kind:pubkey:hex format': + 'Reference to the cited Nostr event in kind:pubkey:hex format', + 'Refresh Cache': 'Refresh Cache', + 'Refreshing posts...': 'Refreshing posts...', + 'Relative: 7d, 24h, 1w, 1mo, 1y. Or Unix timestamp.': + 'Relative: 7d, 24h, 1w, 1mo, 1y. Or Unix timestamp.', + Relay: 'Relay', + 'Relay Hint': 'Relay Hint', + 'Relay URL (optional)': 'Relay URL (optional)', + 'Relay blocked successfully': 'Relay blocked successfully', + 'Relay requires authentication for write access. Please try a different relay or contact the relay operator.': + 'Relay requires authentication for write access. Please try a different relay or contact the relay operator.', + 'Relay set options': 'Relay set options', + 'Remove from favorites': 'Remove from favorites', + Rendered: 'Rendered', + 'Reply published': 'Reply published', + 'Reply published to some relays': 'Reply published to some relays', + 'Reply to Public Message': 'Reply to Public Message', + 'Republish to all active relays': 'Republish to all active relays', + 'Republish to all available relays': 'Republish to all available relays', + 'Required: start (or start date), invitees. Optional: title, end, location, summary, topics, image.': + 'Required: start (or start date), invitees. Optional: title, end, location, summary, topics, image.', + 'Required: start time or start date. Optional: title, end, location, summary, topics, image.': + 'Required: start time or start date. Optional: title, end, location, summary, topics, image.', + 'Required: start time, invitees. Join link defaults to HiveTalk. Optional: title, end, summary, topics, image.': + 'Required: start time, invitees. Join link defaults to HiveTalk. Optional: title, end, summary, topics, image.', + 'Required: start time. Join link defaults to HiveTalk. Optional: title, end, summary, topics, image.': + 'Required: start time. Join link defaults to HiveTalk. Optional: title, end, summary, topics, image.', + 'Respect quiet tags': 'Respect quiet tags', + 'Search (NIP-50)': 'Search (NIP-50)', + 'Search by name or npub…': 'Search by name or npub…', + 'Search calendar, publications, wiki…': 'Search calendar, publications, wiki…', + 'Search for user…': 'Search for user…', + 'Search items...': 'Search items...', + 'Search logs...': 'Search logs...', + 'Search notes, threads, long-form…': 'Search notes, threads, long-form…', + 'Search on GifBuddy': 'Search on GifBuddy', + 'Search posts...': 'Search posts...', + 'Search threads by title, content, tags, npub, author...': + 'Search threads by title, content, tags, npub, author...', + 'Searching all available relays...': 'Searching all available relays...', + 'Searching…': 'Searching…', + 'See reference': 'See reference', + 'Select Group': 'Select Group', + 'Select Media Type': 'Select Media Type', + 'Select group...': 'Select group...', + 'Select relays': 'Select relays', + 'Select the group where you want to create this discussion.': + 'Select the group where you want to create this discussion.', + 'Select topic...': 'Select topic...', + 'Selected text': 'Selected text', + 'Send Public Message': 'Send Public Message', + 'Send a Lightning payment to this user': 'Send a Lightning payment to this user', + 'Service worker caches cleared. Please reload the page.': + 'Service worker caches cleared. Please reload the page.', + 'Service worker unregistered and caches cleared. Please reload the page.': + 'Service worker unregistered and caches cleared. Please reload the page.', + 'Service worker unregistered. Please reload the page.': + 'Service worker unregistered. Please reload the page.', + 'Share your thoughts, ask questions, or start a discussion...': + 'Share your thoughts, ask questions, or start a discussion...', + 'Short Video Note': 'Short Video Note', + 'Show RSS Feed': 'Show RSS Feed', + 'Show all discussions in a single list': 'Show all discussions in a single list', + 'Show less': 'Show less', + Since: 'Since', + Small: 'Small', + 'Some relays have temporarily disabled writes.': + 'Some relays have temporarily disabled writes.', + Source: 'Source', + 'Spell definition': 'Spell definition', + 'Spell published': 'Spell published', + 'Start date': 'Start date', + 'Start typing to see a preview...': 'Start typing to see a preview...', + 'Subject (Book Title)': 'Subject (Book Title)', + 'Subject (book title) is required for reading groups': + 'Subject (book title) is required for reading groups', + 'Subject / Topics': 'Subject / Topics', + Subscribe: 'Subscribe', + Subscribed: 'Subscribed', + 'Subscribed to topic': 'Subscribed to topic', + 'Subscribed to topic (local)': 'Subscribed to topic (local)', + 'Subscribing...': 'Subscribing...', + Summary: 'Summary', + 'Supported Event Types': 'Supported Event Types', + 'Take a note': 'Take a note', + 'The full prompt conversation (optional)': 'The full prompt conversation (optional)', + 'The main editor above should contain only the text you want to highlight. This field should contain the full quote or paragraph for context.': + 'The main editor above should contain only the text you want to highlight. This field should contain the full quote or paragraph for context.', + 'These relays were found from your NIP-05 identifier and signer. You can add them to your relay list.': + 'These relays were found from your NIP-05 identifier and signer. You can add them to your relay list.', + 'This file could be either audio or video. Please select the correct type:': + 'This file could be either audio or video. Please select the correct type:', + 'This store does not contain replaceable events': + 'This store does not contain replaceable events', + 'This will add additional tags for author and subject to help organize reading group discussions.': + 'This will add additional tags for author and subject to help organize reading group discussions.', + 'Thread Content': 'Thread Content', + 'Thread Title': 'Thread Title', + 'Thread creation timed out. Please try again.': 'Thread creation timed out. Please try again.', + 'Thread published': 'Thread published', + 'Threads are organized by topics. Choose a topic that best fits your discussion.': + 'Threads are organized by topics. Choose a topic that best fits your discussion.', + 'Time-based': 'Time-based', + 'Title is required': 'Title is required', + 'Title must be 100 characters or less': 'Title must be 100 characters or less', + 'To translate notes and other content, use your browser’s built-in translation. For example: right-click the page and choose “Translate to…”, or use the translate icon in the address bar.': + 'To translate notes and other content, use your browser’s built-in translation. For example: right-click the page and choose “Translate to…”, or use the translate icon in the address bar.', + Top: 'Top', + Topic: 'Topic', + URL: 'URL', + 'URL of the article cover image (optional)': 'URL of the article cover image (optional)', + 'Unique identifier for this article (required)': + 'Unique identifier for this article (required)', + 'Unmute failed': 'Unmute failed', + 'Unpin note': 'Unpin note', + Unsubscribe: 'Unsubscribe', + 'Unsubscribed from topic': 'Unsubscribed from topic', + 'Unsubscribing...': 'Unsubscribing...', + Until: 'Until', + Untitled: 'Untitled', + Update: 'Update', + 'Updating...': 'Updating...', + 'Upload Audio Comment': 'Upload Audio Comment', + 'Upload Audio Message': 'Upload Audio Message', + 'Upload Media': 'Upload Media', + Upvote: 'Upvote', + 'User unmuted': 'User unmuted', + 'Version number (optional)': 'Version number (optional)', + Video: 'Video', + 'Video Note': 'Video Note', + 'Video file': 'Video file', + 'View Console Logs': 'View Console Logs', + 'View JSON': 'View JSON', + 'View cached items in this store.': 'View cached items in this store.', + 'View definition': 'View definition', + 'View details about cached data in IndexedDB stores. Click on a store to view its items.': + 'View details about cached data in IndexedDB stores. Click on a store to view its items.', + 'View on Alexandria': 'View on Alexandria', + 'View on DecentNewsroom': 'View on DecentNewsroom', + 'View on Wikistr': 'View on Wikistr', + 'View recent console logs for debugging': 'View recent console logs for debugging', + 'Voice Comment': 'Voice Comment', + 'Voice Note': 'Voice Note', + 'Voice note or audio file': 'Voice note or audio file', + Volume: 'Volume', + 'Volume number (optional)': 'Volume number (optional)', + 'Vote published': 'Vote published', + 'Vote removed': 'Vote removed', + 'Website where LLM was accessed (optional)': 'Website where LLM was accessed (optional)', + 'Wiki Article (AsciiDoc)': 'Wiki Article (AsciiDoc)', + 'Wiki Article (Markdown)': 'Wiki Article (Markdown)', + 'You can only delete your own notes': 'You can only delete your own notes', + 'You must be logged in to create a thread': 'You must be logged in to create a thread', + 'You need to add at least one media server in order to upload media files.': + 'You need to add at least one media server in order to upload media files.', + 'You need to login first': 'You need to login first', + 'Your account is blocked from posting to this relay.': + 'Your account is blocked from posting to this relay.', + Zap: 'Zap', + 'Zap failed': 'Zap failed', + created_at: 'created_at', + 'e tag of kind 1040 event (optional)': 'e tag of kind 1040 event (optional)', + 'e.g. meetup, conference': 'e.g. meetup, conference', + 'e.g., 123-145 (optional)': 'e.g., 123-145 (optional)', + 'e.g., GPT-4, Claude, etc. (required)': 'e.g., GPT-4, Claude, etc. (required)', + 'e.g., my-article-title': 'e.g., my-article-title', + entries: 'entries', + 'from Bunker': 'from Bunker', + 'from Extension': 'from Extension', + 'from NIP-05': 'from NIP-05', + general: 'general', + 'https://example.com (required)': 'https://example.com (required)', + 'https://example.com/image.jpg': 'https://example.com/image.jpg', + id: 'id', + items: 'items', + kind: 'kind', + 'kind:pubkey:hex format (required)': 'kind:pubkey:hex format (required)', + 'last updated': 'last updated', + matching: 'matching', + naddr: 'naddr', + nevent: 'nevent', + 'nevent1..., naddr1..., note1..., hex ID, or https://...': + 'nevent1..., naddr1..., note1..., hex ID, or https://...', + 'no notes found': 'no notes found', + of: 'of', + 'on note': 'on note', + optional: 'optional', + pubkey: 'pubkey', + 'sent a public message': 'sent a public message', + 'sent you a public message': 'sent you a public message', + 'sent you a public message (along with {{count}} others)': + 'sent you a public message (along with {{count}} others)', + sig: 'sig', + 'started a discussion in {{topic}}': 'started a discussion in {{topic}}', + tags: 'tags', + thread: 'thread', + threads: 'threads', + 'topic1, topic2, topic3': 'topic1, topic2, topic3', + '{{count}} relay(s) selected': '{{count}} relay(s) selected', + '🔞 NSFW 🔞': '🔞 NSFW 🔞' } } diff --git a/src/i18n/locales/ru.ts b/src/i18n/locales/ru.ts index 63f67bc3..a3c073a7 100644 --- a/src/i18n/locales/ru.ts +++ b/src/i18n/locales/ru.ts @@ -1,13 +1,16 @@ export default { translation: { - // NOTE: The translations below were generated by ChatGPT and have not yet been verified. 'Welcome! 🥳': 'Добро пожаловать! 🥳', About: 'О нас', 'New Note': 'Новая заметка', Post: 'Опубликовать', Home: 'Главная', + Feed: 'Feed', + 'Favorites Feed': 'Favorites Feed', + 'Pinned note': 'Pinned note', 'Relay settings': 'Настройки ретрансляции', Settings: 'Настройки', + 'Account menu': 'Account menu', SidebarRelays: 'Ретрансляторы', Refresh: 'Обновить', Profile: 'Профиль', @@ -31,6 +34,12 @@ export default { 'loading...': 'загрузка...', 'Loading...': 'Загрузка...', 'no more notes': 'больше нет заметок', + 'calendar entries': 'calendar entries', + 'Loading calendar events...': 'Loading calendar events...', + 'No calendar events found': 'No calendar events found', + 'Calendar events in the next {{count}} months': 'Calendar events in the next {{count}} months', + 'The nostr.band relay appears to be temporarily out of service. Please try again later.': + 'The nostr.band relay appears to be temporarily out of service. Please try again later.', 'reply to': 'ответить', reply: 'ответить', Reply: 'Ответить', @@ -38,6 +47,9 @@ export default { 'Write something...': 'Напишите что-нибудь...', Cancel: 'Отмена', Mentions: 'Упоминания', + 'Search for event or address…': 'Search for event or address…', + 'Search notes…': 'Search notes…', + 'No notes found': 'No notes found', 'Failed to post': 'Ошибка публикации', 'Post successful': 'Успешно опубликовано', 'Your post has been published': 'Ваш пост опубликован', @@ -46,7 +58,22 @@ export default { Quote: 'Цитировать', 'Copy event ID': 'Копировать ID события', 'Copy user ID': 'Копировать ID пользователя', + 'Send public message': 'Send public message', 'View raw event': 'Посмотреть исходное событие', + 'Edit this event': 'Edit this event', + 'Clone or fork this event': 'Clone or fork this event', + 'Event kind': 'Event kind', + 'Note content': 'Note content', + Publish: 'Publish', + 'Post published': 'Post published', + 'Edit content and tags, then publish a new signed event.': + 'Edit content and tags, then publish a new signed event.', + 'Log in to publish': 'Log in to publish', + 'Set when you publish': 'set when you publish', + 'id and sig are assigned when you publish': 'id and sig are assigned when you publish', + 'Published to some relays only': 'Published to some relays only', + 'Add field': 'Add field', + 'View full profile': 'View full profile', Like: 'Нравится', 'switch to light theme': 'переключить на светлую тему', 'switch to dark theme': 'переключить на тёмную тему', @@ -57,18 +84,143 @@ export default { "username's used relays": 'Ретрансляторы пользователя {{username}}', "username's muted": '{{username}} заблокирован', Login: 'Войти', + 'Please log in to view notifications.': 'Please log in to view notifications.', 'Follows you': 'Подписан на вас', 'Relay Settings': 'Настройки ретрансляторов', + 'Relays and Storage Settings': 'Relays and Storage Settings', 'Relay set name': 'Имя набора ретрансляторов', 'Add a new relay set': 'Добавить новый набор ретрансляторов', Add: 'Добавить', 'n relays': '{{n}} ретрансляторов', Rename: 'Переименовать', + 'Copy share link': 'Copy share link', + 'Copy address': 'Copy address', + 'Copy payto URI': 'Copy payto URI', + 'Copied payto address': 'Copied payto address', + 'Copied to clipboard': 'Copied to clipboard', + 'Copied {{label}} address': 'Copied {{label}} address', + 'Lightning payment address – copy to pay via your wallet': + 'Lightning payment address – copy to pay via your wallet', + 'Payment address – copy to use in your wallet or app': + 'Payment address – copy to use in your wallet or app', + 'Click to open payment options': 'Click to open payment options', + 'Click to copy address': 'Click to copy address', + 'Open on website': 'Open on website', + 'Raw profile event': 'Raw profile event', + 'Full profile event': 'Full profile event', + 'Event (JSON)': 'Event (JSON)', + 'Save full profile': 'Save full profile', + 'Add tag': 'Add tag', + 'Remove tag': 'Remove tag', + 'Tag name': 'Tag name', + Value: 'Value', + 'Add value to tag': 'Add value to tag', + 'Remove value': 'Remove value', + 'No tags. Click "Add tag" to add one.': 'No tags. Click "Add tag" to add one.', + 'Profile updated': 'Profile updated', + 'Failed to publish profile': 'Failed to publish profile', + 'Invalid profile JSON': 'Invalid profile JSON', + 'Refresh cache': 'Refresh cache', + 'Force-refresh profile and payment info from relays': + 'Force-refresh profile and payment info from relays', + 'Profile and payment cache refreshed': 'Profile and payment cache refreshed', + 'Failed to refresh cache': 'Failed to refresh cache', + 'Raw payment info event': 'Raw payment info event', + 'Payment info': 'Payment info', + 'Edit payment info': 'Edit payment info', + 'Add payment info': 'Add payment info', + 'No payment info event yet. Click "Add payment info" to create one.': + 'No payment info event yet. Click "Add payment info" to create one.', + 'Content (JSON)': 'Content (JSON)', + Tags: 'Tags', + 'Tags (JSON array of arrays, e.g. [["payto","lightning","user@domain.com"]])': + 'Tags (JSON array of arrays, e.g. [["payto","lightning","user@domain.com"]])', + 'Payment info updated': 'Payment info updated', + 'Failed to publish payment info': 'Failed to publish payment info', + 'Invalid tags JSON': 'Invalid tags JSON', + 'Payment methods': 'Payment methods', + 'NIP-A3 payto tags: type (e.g. lightning) and authority (e.g. user@domain.com).': + 'NIP-A3 payto tags: type (e.g. lightning) and authority (e.g. user@domain.com).', + 'Type (e.g. lightning)': 'Type (e.g. lightning)', + 'Authority (e.g. user@domain.com)': 'Authority (e.g. user@domain.com)', + 'Add payment method': 'Add payment method', + Remove: 'Remove', + 'Additional content (JSON)': 'Additional content (JSON)', + 'Show full event JSON': 'Show full event JSON', + 'Tag list': 'Tag list', + 'Profile event tags (e.g. lud16, nip05, website). Saved with kind 0.': + 'Profile event tags (e.g. lud16, nip05, website). Saved with kind 0.', + 'Tag value': 'Tag value', + 'Saving…': 'Saving…', 'Share with Jumble': 'Поделиться через Jumble', 'Share with Alexandria': 'Поделиться через Alexandria', + 'Start video call': 'Start video call', + 'Copy call invite link': 'Copy call invite link', + 'Start call about this': 'Start call about this', + 'Send call invite': 'Send call invite', + 'Join the video call': 'Join the video call', + 'Schedule video call': 'Schedule video call', + "You're invited to a scheduled video call.": "You're invited to a scheduled video call.", + 'Create a calendar event and send an invite. The recipient will see the event with a join link.': + 'Create a calendar event and send an invite. The recipient will see the event with a join link.', + 'Schedule a video call': 'Schedule a video call', + 'Create a calendar event and send kind 24 invites to each listed invitee.': + 'Create a calendar event and send kind 24 invites to each listed invitee.', + Invitees: 'Invitees', + 'Paste nostr:npub1... or nostr:nprofile1... (one or more)': + 'Paste nostr:npub1... or nostr:nprofile1... (one or more)', + 'Schedule and send invites': 'Schedule and send invites', + 'Add at least one invitee (paste nostr:npub or nostr:nprofile links)': + 'Add at least one invitee (paste nostr:npub or nostr:nprofile links)', + 'Scheduled call created and {{count}} invite(s) sent': + 'Scheduled call created and {{count}} invite(s) sent', + 'Join video call': 'Join video call', + 'Scheduled video call': 'Scheduled video call', + 'Video call': 'Video call', + 'Schedule and send invite': 'Schedule and send invite', + 'Scheduling…': 'Scheduling…', + 'Please set a start time': 'Please set a start time', + 'End time must be after start time': 'End time must be after start time', + 'Failed to schedule call': 'Failed to schedule call', + 'Scheduled call created and invite sent': 'Scheduled call created and invite sent', + RSVP: 'RSVP', + 'RSVP: {{status}}': 'RSVP: {{status}}', + Accepted: 'Accepted', + Tentative: 'Tentative', + Declined: 'Declined', + 'You need to log in to RSVP': 'You need to log in to RSVP', + 'RSVP updated': 'RSVP updated', + 'Failed to update RSVP': 'Failed to update RSVP', + Organizer: 'Organizer', + Attendees: 'Attendees', + 'No response': 'No response', + 'Calendar Events': 'Calendar Events', + 'Calendar Event': 'Calendar Event', + 'Schedule in-person meeting': 'Schedule in-person meeting', + 'Create a calendar event and send an invite. No video link — for real-life meetups, conferences, etc.': + 'Create a calendar event and send an invite. No video link — for real-life meetups, conferences, etc.', + "You're invited to an in-person meeting.": "You're invited to an in-person meeting.", + 'Meeting created and invite sent': 'Meeting created and invite sent', + 'Failed to create meeting': 'Failed to create meeting', + 'Create and send invite': 'Create and send invite', + 'Creating…': 'Creating…', + 'In-person meeting': 'In-person meeting', + Location: 'Location', + 'Address, venue, or place': 'Address, venue, or place', + Description: 'Description', + 'Optional notes': 'Optional notes', + 'Create a calendar event for a real-life meetup and send kind 24 invites to each invitee.': + 'Create a calendar event for a real-life meetup and send kind 24 invites to each invitee.', + 'Meeting created and {{count}} invite(s) sent': 'Meeting created and {{count}} invite(s) sent', + 'Create and send invites': 'Create and send invites', + Title: 'Title', + Start: 'Start', + End: 'End', Delete: 'Удалить', 'Relay already exists': 'Ретранслятор уже существует', 'invalid relay URL': 'неверный URL ретранслятора', + 'Relay URL…': 'wss://… or relay host', + 'Open relay': 'Open relay', 'Add a new relay': 'Добавить новый ретранслятор', back: 'назад', 'Lost in the void': 'Потерялся в пустоте', @@ -115,6 +267,19 @@ export default { 'Picture note requires images': 'Заметка с изображением требует наличия изображений', Relays: 'Ретрансляторы', Image: 'изображение', + 'Upload Image': 'Upload Image', + 'Insert emoji': 'Insert emoji', + 'Insert GIF': 'Insert GIF', + 'Search GIFs': 'Search GIFs', + 'Choose a GIF': 'Choose a GIF', + 'Search GifBuddy for more GIFs': 'Search GifBuddy for more GIFs', + 'Add your own GIFs': 'Add your own GIFs', + 'Description (optional, for search)': 'Description (optional, for search)', + 'e.g. happy birthday, thumbs up': 'e.g. happy birthday, thumbs up', + 'Uploading...': 'Uploading...', + 'No GIFs found. Try searching or add your own. GIFs come from Nostr kind 1063 (NIP-94) events on GIF relays.': + 'No GIFs found. Try searching or add your own. GIFs come from Nostr kind 1063 (NIP-94) events on GIF relays.', + '{{name}} is not a GIF file': '{{name}} is not a GIF file', 'R & W': 'Чтение & Запись', Read: 'Читать', Write: 'Писать', @@ -155,8 +320,10 @@ export default { Mute: 'Заглушить', Muted: 'Заглушено', Unmute: 'Отменить заглушку', - 'Mute user': 'Заглушить пользователя', 'Unmute user': 'Снять заглушку с пользователя', + Block: 'Block', + Unblock: 'Unblock', + blocked: 'blocked', 'Append n relays': 'Добавить {{n}} ретрансляторов', Append: 'Добавить', 'Select relays to append': 'Выберите ретрансляторы для добавления', @@ -181,6 +348,24 @@ export default { 'Explore more': 'Исследовать больше', 'Payment page': 'Страница оплаты', 'Supported NIPs': 'Поддерживаемые NIP', + 'Relay liveliness (NIP-66)': 'Relay liveliness (NIP-66)', + 'Relay monitor (NIP-66)': 'Relay monitor (NIP-66)', + 'Auth required': 'Auth required', + 'Public (no auth)': 'Public (no auth)', + 'Payment required': 'Payment required', + 'No payment': 'No payment', + 'Writes required': 'Writes required', + 'Writes open': 'Writes open', + 'PoW required': 'PoW required', + 'No PoW': 'No PoW', + 'RTT open': 'RTT open', + 'RTT read': 'RTT read', + 'RTT write': 'RTT write', + 'Supported NIPs (from monitor)': 'Supported NIPs (from monitor)', + 'Last reported by monitor': 'Last reported by monitor', + Network: 'Network', + Type: 'Type', + Topics: 'Topics', 'Open in a': 'Открыть в {{a}}', 'Cannot handle event of kind k': 'Невозможно обработать событие типа {{k}}', 'Sorry! The note cannot be found 😔': 'Извините! Заметка не найдена 😔', @@ -212,9 +397,22 @@ export default { 'Seen on': 'Просмотрено на', 'Temporarily display this reply': 'Временно отобразить этот ответ', 'Note not found': 'Заметка не найдена', + 'The note was not found on your relays or default relays.': + 'The note was not found on your relays or default relays.', + "Try searching author's relays": "Try searching author's relays", + 'Searching external relays...': 'Searching external relays...', + "This will connect to the author's relays and relay hints": + "This will connect to the author's relays and relay hints", + 'Note could not be found anywhere': 'Note could not be found anywhere', + 'Try external relays': 'Try external relays', + 'Searching...': 'Searching...', + 'Show relays': 'Show relays', + 'No external relay hints available': 'No external relay hints available', 'no more replies': 'больше нет ответов', 'Relay sets': 'Наборы ретрансляторов', 'Favorite Relays': 'Избранные ретрансляторы', + 'Search for Relays': 'Search for Relays', + 'Using app default relays': 'Using app default relays', "Following's Favorites": 'Избранные ретрансляторы подписчиков', 'no more relays': 'больше нет ретрансляторов', 'Favorited by': 'Избранные у', @@ -230,10 +428,48 @@ export default { 'no bookmarks found': 'Закладки не найдены', 'no more bookmarks': 'Больше нет закладок', Bookmarks: 'Закладки', + 'Follow Packs': 'Follow Packs', + 'Follow Pack': 'Follow Pack', + 'Please log in to follow': 'Please log in to follow', + 'Following All': 'Following All', + 'Followed {{count}} users': 'Followed {{count}} users', + 'All available members are already followed or muted': + 'All available members are already followed or muted', + 'You are already following all members of this pack': + 'You are already following all members of this pack', + 'Failed to follow pack': 'Failed to follow pack', + '{{count}} profiles': '{{count}} profiles', 'Show more': 'Показать больше', General: 'Общие', Autoplay: 'Автовоспроизведение', 'Enable video autoplay on this device': 'Включить автовоспроизведение видео на этом устройстве', + 'Add random relays to every publish': 'Random relays in publish list', + 'Add random relays to every publish description': + 'Adds {{n}} random public relays from the NIP-66 lively list (preferring monitors that reported a write RTT) to the publish relay list. When ON, they are selected by default; when OFF, they appear in the list but are unchecked so you can optionally include them.', + relayType_local: 'Local', + relayType_relay_list: 'Relay list', + relayType_client_default: 'Client default', + relayType_open_from: 'Current feed', + relayType_favorite: 'Favorite', + relayType_relay_set: 'Relay set', + relayType_contextual: 'Reply/PM', + relayType_randomly_selected: 'Random (optional)', + 'Session relays': 'Session relays', + 'Session relays tab description': + 'Relay logic for this session: working and striked preset relays, and scored random relays (used to prefer faster, proven relays when adding random relays to publish).', + 'Session relays preset working': 'Working preset relays', + 'Session relays preset working hint': + 'Preset relays (from app defaults) that have not reached 3 publish failures this session.', + 'Session relays preset striked': 'Striked preset relays', + 'Session relays preset striked hint': + 'Preset relays that have reached 3 publish failures this session and are skipped for the rest of the session.', + 'Session relays scored random': 'Scored random relays', + 'Session relays scored random hint': + 'Relays that have accepted at least one publish this session; used to prefer faster relays when picking random relays. Sorted by average latency.', + 'Session relays all striked': 'All striked relays (any source)', + successes: 'successes', + None: 'None', + 'Cache & offline storage': 'Cache & offline storage', 'Paste or drop media files to upload': 'Вставьте или перетащите медиафайлы для загрузки', Preview: 'Предварительный просмотр', 'You are about to publish an event signed by [{{eventAuthorName}}]. You are currently logged in as [{{currentUsername}}]. Are you sure?': @@ -266,6 +502,7 @@ export default { 'Are you sure you want to reset your API key? This action cannot be undone.': 'Вы уверены, что хотите сбросить ваш API-ключ? Это действие не может быть отменено.', Warning: 'Предупреждение', + 'Errors & warnings': 'Errors & warnings', 'Your current API key will become invalid immediately, and any applications using it will stop working until you update them with the new key.': 'Ваш текущий API-ключ станет недействительным немедленно, и любые приложения, использующие его, перестанут работать, пока вы не обновите их новым ключом.', 'Service address': 'Адрес сервиса', @@ -297,6 +534,9 @@ export default { Article: 'Статья', Unfavorite: 'Убрать из избранного', 'Recommended relays': 'Рекомендуемые ретрансляторы', + 'Show recommended relays panel': 'Show recommended relays panel', + 'Display the right-side panel with recommended relays on desktop': + 'Display the right-side panel with recommended relays on desktop', 'Blossom server URLs': 'URLs сервера Blossom', 'You need to add at least one blossom server in order to upload media files.': 'Вам нужно добавить хотя бы один сервер Blossom, чтобы загружать медиафайлы.', @@ -323,7 +563,31 @@ export default { 'Refresh results': 'Обновить результаты', Poll: 'Опрос', Media: 'медиа', + Interests: 'Interests', + Calendar: 'Calendar', + 'No subscribed interests yet.': + 'No subscribed interests yet. Add topics in settings to see them here.', + 'No bookmarked notes with id tags yet.': + 'No bookmarked notes with id tags yet. Only classic (e-tag) bookmarks load in this feed.', + 'No follows or relays to load yet.': 'No follows or relays to load yet.', + 'Nothing to load for this feed.': 'Nothing to load for this feed.', 'Republish to ...': 'Ретранслировать в ...', + 'All available relays': 'All available relays', + 'All active relays (monitoring list)': 'All active relays (monitoring list)', + 'Successfully republish to all available relays': + 'Successfully republish to all available relays', + 'Failed to republish to all available relays: {{error}}': + 'Failed to republish to all available relays: {{error}}', + 'Successfully republish to all active relays': 'Successfully republish to all active relays', + 'Failed to republish to all active relays: {{error}}': + 'Failed to republish to all active relays: {{error}}', + 'No active relays in monitoring list': 'No active relays in monitoring list', + 'No relay accepted the event': 'No relay accepted the event', + 'No relays available': 'No relays available', + 'No write relays configured': 'No write relays configured', + 'Relay did not accept the event': 'Relay did not accept the event', + 'Only {{count}} relay(s) accepted the event; at least 5 required for "all active relays".': + 'Only {{count}} relay(s) accepted the event; at least 5 required for "all active relays".', 'Successfully republish to your write relays': 'Успешно ретранслировано в ваши ретрансляторы для записи', 'Failed to republish to your write relays: {{error}}': @@ -342,6 +606,7 @@ export default { 'No zaps yet': 'Пока нет запов', 'No more boosts': 'Больше нет бустов', 'No boosts yet': 'Пока нет бустов', + 'n more boosts': '{{count}} more boosts', Boosts: 'Бусты', FollowListNotFoundConfirmation: 'Список подписок не найден. Хотите создать новый? Если вы уже подписывались на пользователей ранее, пожалуйста, НЕ подтверждайте, так как эта операция приведет к потере вашего предыдущего списка подписок.', @@ -364,8 +629,13 @@ export default { 'Maybe Later': 'Возможно, позже', "Don't remind me again": 'Больше не напоминать', Posts: 'Посты', + 'Posts (OPs)': 'Posts (OPs)', + 'Kind 1 replies': 'Kind 1 replies', + Comments: 'Comments', + 'Replies & comments': 'Replies & comments', Articles: 'Статьи', Highlights: 'Выделения', + 'A note from': 'A note from', Polls: 'Опросы', 'Voice Posts': 'Голосовые посты', 'Photo Posts': 'Фото посты', @@ -391,6 +661,13 @@ export default { 'boosted your note': 'сделал буст вашей заметки', 'zapped your note': 'заппил вашу заметку', 'zapped you': 'заппил вас', + zapped: 'zapped', + 'Invalid zap receipt': 'Invalid zap receipt', + 'Zapped note': 'Zapped note', + 'Zapped profile': 'Zapped profile', + 'Zap reply threshold': 'Zap reply threshold', + 'Zaps above this amount will appear as replies in threads': + 'Zaps above this amount will appear as replies in threads', 'Mark as read': 'Отметить как прочитанное', Report: 'Пожаловаться', 'Successfully report': 'Жалоба успешно отправлена', @@ -406,7 +683,6 @@ export default { 'Просмотреть дополнительную информацию для каждого уведомления', 'See more notifications at a glance': 'Увидеть больше уведомлений с первого взгляда', Detailed: 'Подробный', - Compact: 'Компактный', 'Submit Relay': 'Отправить релей', Homepage: 'Домашняя страница', 'Proof of Work (difficulty {{minPow}})': 'Доказательство работы (сложность {{minPow}})', @@ -434,6 +710,23 @@ export default { '{{count}} relays': '{{count}} ретрансляторов', 'Republishing...': 'Ретрансляция...', 'Trending Notes': 'Популярные заметки', + 'Trending on Your Favorite Relays': 'Trending on Your Favorite Relays', + 'Trending on the Default Relays': 'Trending on the Default Relays', + 'Latest from your follows': 'Latest from your follows', + 'Latest from our recommended follows': 'Latest from our recommended follows', + 'Loading follow list…': 'Loading follow list…', + 'Could not load recommended follows': 'Could not load recommended follows', + 'Your follow list is empty': 'Your follow list is empty', + 'Loading recent posts from follows…': 'Loading recent posts from follows…', + 'Loading more…': 'Loading more…', + 'No recent posts from this user in the current fetch': + 'No recent posts from this user in the current fetch', + 'Loading trending notes from your relays...': 'Loading trending notes from your relays...', + Sort: 'Sort', + newest: 'newest', + oldest: 'oldest', + 'most popular': 'most popular', + 'least popular': 'least popular', 'Connected to': 'Подключено к', 'Disconnect Wallet': 'Отключить кошелёк', 'Are you absolutely sure?': 'Вы абсолютно уверены?', @@ -441,6 +734,690 @@ export default { Disconnect: 'Отключить', 'Set up your wallet to send and receive sats!': 'Настройте свой кошелёк, чтобы отправлять и получать саты!', - 'Set up': 'Настроить' + 'Set up': 'Настроить', + 'nested events': 'nested events', + 'Loading RSS feeds...': 'Loading RSS feeds...', + 'No RSS feed items available': 'No RSS feed items available', + 'Show or hide the RSS page and sidebar entry': 'Show or hide the RSS page and sidebar entry', + 'Refreshing feeds...': 'Refreshing feeds...', + 'All feeds': 'All feeds', + 'All time': 'All time', + 'Last hour': 'Last hour', + 'Last day': 'Last day', + 'Last week': 'Last week', + 'Last month': 'Last month', + 'No items match your filters': 'No items match your filters', + 'Search...': 'Search...', + '{{count}} feeds': '{{count}} feeds', + 'Toggle filters': 'Toggle filters', + 'Showing {{filtered}} of {{total}} items': 'Showing {{filtered}} of {{total}} items', + Full: 'Full', + Compact: 'Компактный', + Expand: 'Expand', + 'help.title': 'Help', + 'help.tabShortcuts': 'Keyboard shortcuts', + 'help.tabOverview': 'App overview', + 'shortcuts.title': 'Keyboard shortcuts', + 'shortcuts.intro': + 'Shortcuts for this app and common browsing. Modifier combos are Shift+Alt+key (Option+Shift+key on macOS); either modifier order works when typing.', + 'shortcuts.sectionApp': 'This app', + 'shortcuts.sectionSearch': 'Search bar', + 'shortcuts.sectionStandard': 'Standard', + 'shortcuts.openHelp': 'Show this help', + 'shortcuts.or': 'or', + 'shortcuts.then': 'then', + 'shortcuts.focusPrimary': + 'Focus main column scroll (desktop; then arrow keys, Page Up/Down, Home/End)', + 'shortcuts.focusSecondary': + 'Focus side panel scroll when it is open (desktop; same keys to scroll)', + 'shortcuts.newNote': 'New note / post (after login if needed)', + 'shortcuts.searchSuggest': 'Move through suggestions', + 'shortcuts.searchDismiss': 'Close search dropdown', + 'shortcuts.tabNavigate': 'Move focus to the next or previous control', + 'shortcuts.activate': 'Activate buttons and many controls', + 'shortcuts.closeOverlays': 'Close dialogs, menus, and the search dropdown', + 'shortcuts.scrollWhenFocused': 'Scroll the focused scrollable area', + 'shortcuts.browserBack': 'Browser back (history)', + 'No spells yet. Create one with the button above.': + 'No spells yet. Create one with the button above.', + 'Loading spells from your relays…': 'Loading spells from your relays…', + 'Could not run this spell. Check that it has a valid REQ/COUNT command, or add write relays in settings.': + 'Could not run this spell. Check that it has a valid REQ/COUNT command, or add write relays in settings.', + 'Select a spell…': 'Select a spell…', + 'Spells from follows': 'From people you follow ({{count}})', + 'Other spells': 'Other spells ({{count}})', + 'Select a spell to view its feed.': 'Select a spell to view its feed.', + 'Add another row': 'Add another row', + 'Remove this row': 'Remove this row', + 'One kind number per row (e.g. 1 for notes).': 'One kind number per row (e.g. 1 for notes).', + 'One author per row: $me, $contacts, or hex pubkey / npub.': + 'One author per row: $me, $contacts, or hex pubkey / npub.', + 'One hex event id per row.': 'One hex event id per row.', + 'One wss:// URL per row. Leave empty to use your write relays.': + 'One wss:// URL per row. Leave empty to use your write relays.', + 'One topic per row.': 'One topic per row.', + topic: 'topic', + 'Spell form fields': 'Spell form fields', + 'Counting matching events…': 'Counting matching events…', + 'Edit spell': 'Edit spell', + 'Clone spell': 'Clone spell', + 'Spell cloned': 'Spell cloned', + 'Clone spell intro': + 'This spell is preloaded from another author’s definition. Change anything you like, then save to publish a new spell signed with your account.', + 'Spell updated': 'Spell updated', + 'Relay URL': 'Relay', + Count: 'Count', + 'Edit spell relays': 'Edit relays', + 'COUNT spell relay errors hint': + 'One or more relays failed or returned an error. You can change the relay list in the spell and save again.', + 'COUNT spell total distinct explanation': + 'Distinct matching event IDs across all relays that responded successfully (duplicates across relays removed). Each relay only returns up to the filter limit.', + 'Leave empty to use your write relays.': 'Leave empty to use your write relays.', + 'COUNT spell result explanation': + 'Distinct events returned for this filter (merged from your spell relays and default write relays, duplicates removed). Relays only return up to the filter limit.', + 'COUNT spell may be capped by limit': + 'This count may equal your spell limit — there could be more matching events on the network.', + 'Spell count failed. Check relays or try again.': + 'Could not complete the count. Check relays or try again.', + 'REQ returns a feed; COUNT returns a number.': + 'REQ: scrollable feed (choose live Feed or one-shot Fetch below). COUNT: a single number, no feed.', + listImportManualLabel: 'Pre-fill from event', + listImportFromEventHint: + 'Supported tags are merged into the form (e, p, t, relay, r, a where possible). Non-empty content is skipped; encrypted private items are not read. You may see notices for unmapped tags.', + listImportManualPlaceholder: '64-char hex, nevent1…, or naddr1…', + listImportLoadManual: 'Apply', + listImportContentSkipped: + 'This event has non-empty content (may include encrypted private items). Only public tags were merged.', + listImportUnsupportedEmoji: + 'This list includes emoji tags (NIP-30); those are not added to the spell filter.', + listImportUnsupportedTag: + 'Tags of type “{{tag}}” ({{count}}) are not mapped to spell filters yet.', + listImportBadATag: 'Could not parse address tag: {{preview}}…', + listImportATagNotFound: 'Could not resolve address tag: {{preview}}…', + listImportATagFailed: 'Failed to resolve address tag: {{preview}}…', + listImportEventNotFound: 'No event found for that reference.', + 'REQ tag filters': 'REQ tag filters', + spellFormTagFiltersLabel: 'Tag filters on matching events', + spellCreateIntro: + 'Spells are saved relay filters (NIP-A7). The “Spell query” section is the real definition; the dashed box at the bottom is only for names, descriptions, and catalog labels. Use $me for your pubkey and $contacts for your follow list when executing.', + spellFormSectionQueryTitle: 'Spell query', + spellFormSectionQueryHint: + 'This block is the actual spell definition: it becomes the Nostr REQ/COUNT filter (kinds, authors, time range, tag filters on matching events, relays, etc.).', + spellFormSectionMetadataTitle: 'Listing & labels (optional)', + spellFormSectionMetadataBadge: 'Not part of the query', + spellFormSectionMetadataHint: + 'Name, description, and topic labels are only for display and spell pickers. They are not used when the spell fetches events.', + spellFormCatalogTopicsLabel: 'Topic labels on this spell (t tags)', + spellTopicsMetadataHint: + 'One topic per row. To filter which notes you see, use “REQ tag filters” in the spell query above (letter “t”).', + spellTagFiltersHint: + 'Optional filters on subscribed events (NIP-01 single-letter tags). Example: letter “t”, values “bitcoin”.', + spellTagFiltersEmpty: 'No tag filters yet. Add rows below or apply an event reference above.', + 'Tag filter letter': 'Tag letter', + 'Filter value': 'Value', + 'Add tag filter': 'Add tag filter', + spellPickerSectionYours: 'Your spells', + 'Failed to remove spell from local storage': 'Failed to remove spell from local storage', + Spells: 'Spells', + 'doublePane.secondaryEmpty': 'Open a note, profile, or settings item to show it here.', + 'doublePane.secondaryEmptyHint': 'Your feed and primary pages stay on the left.', + '(empty)': '(empty)', + '12-hour (AM/PM)': '12-hour (AM/PM)', + '24-hour': '24-hour', + 'A new version is available': 'A new version is available', + 'A short description of the article content': 'A short description of the article content', + AM: 'AM', + 'Access via': 'Access via', + 'Accessed On': 'Accessed On', + 'Accessed on': 'Accessed on', + 'Add RSS feed URLs to subscribe to. If no feeds are configured, the default feed will be used.': + 'Add RSS feed URLs to subscribe to. If no feeds are configured, the default feed will be used.', + 'Add a relay to block': 'Add a relay to block', + 'Add at least one invitee': 'Add at least one invitee', + 'Add client identifier': 'Add client identifier', + 'Add expiration tags by default': 'Add expiration tags by default', + 'Add quiet tags by default': 'Add quiet tags by default', + 'Add recipients using nostr: mentions (e.g., nostr:npub1...) or the recipient selector above': + 'Add recipients using nostr: mentions (e.g., nostr:npub1...) or the recipient selector above', + 'Add the source (where this text is from)': 'Add the source (where this text is from)', + 'Add to favorites': 'Add to favorites', + 'Add {{count}} Selected': 'Add {{count}} Selected', + 'Added at': 'Added at', + 'Added {{count}} relay(s)': 'Added {{count}} relay(s)', + 'Adding...': 'Adding...', + 'Adding…': 'Adding…', + 'Advanced Options': 'Advanced Options', + 'All Topics': 'All Topics', + 'All favorite relays': 'All favorite relays', + 'All feeds from OPML file are already added': 'All feeds from OPML file are already added', + 'All items deleted successfully': 'All items deleted successfully', + 'Already blocked': 'Already blocked', + 'Already saved': 'Already saved', + 'Application Recommendations': 'Application Recommendations', + 'Are you sure you want to clear all cached data? This will delete all stored events and settings from your browser.': + 'Are you sure you want to clear all cached data? This will delete all stored events and settings from your browser.', + 'Are you sure you want to delete all items from this store?': + 'Are you sure you want to delete all items from this store?', + 'Are you sure you want to unmute this user? This will restore the follow button.': + 'Are you sure you want to unmute this user? This will restore the follow button.', + "Are you sure you want to unregister the service worker? This will clear this app's service worker caches and you will need to reload the page.": + "Are you sure you want to unregister the service worker? This will clear this app's service worker caches and you will need to reload the page.", + 'Article exported as AsciiDoc': 'Article exported as AsciiDoc', + 'Article exported as Markdown': 'Article exported as Markdown', + 'Article title (optional)': 'Article title (optional)', + Audio: 'Audio', + Author: 'Author', + 'Author is required for reading groups': 'Author is required for reading groups', + 'Author name (optional)': 'Author name (optional)', + Authors: 'Authors', + 'Block Relay': 'Block Relay', + 'Blocked Relays': 'Blocked Relays', + 'Blocking...': 'Blocking...', + Blossom: 'Blossom', + Book: 'Book', + 'Brief description of the event': 'Brief description of the event', + 'Brief summary (optional)': 'Brief summary (optional)', + 'Brief summary of the article (optional)': 'Brief summary of the article (optional)', + 'Browse Cache': 'Browse Cache', + 'C-Tag': 'C-Tag', + 'Cache Relays': 'Cache Relays', + 'Cache cleared successfully': 'Cache cleared successfully', + 'Cache refreshed successfully': 'Cache refreshed successfully', + 'Cache relays are used to store and retrieve events locally. These relays are merged with your inbox and outbox relays.': + 'Cache relays are used to store and retrieve events locally. These relays are merged with your inbox and outbox relays.', + 'Cache relays must be local network URLs only (e.g., ws://localhost:4869 or ws://127.0.0.1:4869)': + 'Cache relays must be local network URLs only (e.g., ws://localhost:4869 or ws://127.0.0.1:4869)', + 'Cache relays saved': 'Cache relays saved', + Cancelled: 'Cancelled', + Chapter: 'Chapter', + 'Chapter Title': 'Chapter Title', + 'Chapter title (optional)': 'Chapter title (optional)', + Citation: 'Citation', + 'Citation title (optional)': 'Citation title (optional)', + 'Clean up duplicate replaceable events? This will keep only the newest version of each event.': + 'Clean up duplicate replaceable events? This will keep only the newest version of each event.', + 'Cleaned up {{deleted}} duplicate entries, kept {{kept}}': + 'Cleaned up {{deleted}} duplicate entries, kept {{kept}}', + 'Cleaned up {{deleted}} duplicate entries, kept {{kept}} (total items after cleanup: {{total}})': + 'Cleaned up {{deleted}} duplicate entries, kept {{kept}} (total items after cleanup: {{total}})', + 'Cleanup Duplicates': 'Cleanup Duplicates', + Clear: 'Clear', + 'Clear Cache': 'Clear Cache', + 'Clear Service Worker': 'Clear Service Worker', + 'Clear cached data stored in your browser, including IndexedDB events, localStorage settings, and service worker caches.': + 'Clear cached data stored in your browser, including IndexedDB events, localStorage settings, and service worker caches.', + 'Click update to get the latest features and improvements': + 'Click update to get the latest features and improvements', + Close: 'Close', + 'Comma or space-separated topics (will be added as t-tags)': + 'Comma or space-separated topics (will be added as t-tags)', + Command: 'Command', + Configure: 'Configure', + 'Connect Wallet': 'Connect Wallet', + 'Console Logs': 'Console Logs', + 'Console logs cleared': 'Console logs cleared', + 'Content is required': 'Content is required', + 'Content must be 5000 characters or less': 'Content must be 5000 characters or less', + Controversial: 'Controversial', + 'Copied!': 'Copied!', + 'Copy to clipboard': 'Copy to clipboard', + 'Create Article': 'Create Article', + 'Create Citation': 'Create Citation', + 'Create Highlight': 'Create Highlight', + 'Create New Thread': 'Create New Thread', + 'Create Poll': 'Create Poll', + 'Create Thread': 'Create Thread', + 'Create a Spell': 'Create a Spell', + 'Creating...': 'Creating...', + 'D-Tag': 'D-Tag', + 'D-Tag is required for articles': 'D-Tag is required for articles', + DOI: 'DOI', + 'Date-based (all-day)': 'Date-based (all-day)', + 'Default expiration (months)': 'Default expiration (months)', + 'Default quiet period (days)': 'Default quiet period (days)', + 'Delete All': 'Delete All', + 'Delete item': 'Delete item', + 'Deleted {{count}} event(s)': 'Deleted {{count}} event(s)', + 'Deletion request sent': 'Deletion request sent', + 'Description (content)': 'Description (content)', + 'Digital Object Identifier (optional)': 'Digital Object Identifier (optional)', + 'Disable word wrap': 'Disable word wrap', + 'Discovered Relays': 'Discovered Relays', + 'Discovering relays...': 'Discovering relays...', + Discussion: 'Discussion', + Discussions: 'Discussions', + Downvote: 'Downvote', + 'Edited by': 'Edited by', + Editor: 'Editor', + 'Editor name (optional)': 'Editor name (optional)', + 'Enable word wrap': 'Enable word wrap', + 'End date': 'End date', + 'End date must be after start date': 'End date must be after start date', + 'Enter a Nostr event identifier (nevent, naddr, note, or hex ID) OR a web URL (https://). Not both.': + 'Enter a Nostr event identifier (nevent, naddr, note, or hex ID) OR a web URL (https://). Not both.', + 'Enter a descriptive title for your thread': 'Enter a descriptive title for your thread', + 'Enter the author name': 'Enter the author name', + 'Enter the book title': 'Enter the book title', + 'Enter the specific text you want to highlight in the main content area above': + 'Enter the specific text you want to highlight in the main content area above', + 'Event IDs (ids)': 'Event IDs (ids)', + 'Event appears to be invalid or corrupted': 'Event appears to be invalid or corrupted', + 'Event has no value data': 'Event has no value data', + 'Event is missing required fields: {{fields}}': 'Event is missing required fields: {{fields}}', + 'Event type': 'Event type', + 'Expiration Tags': 'Expiration Tags', + 'Export OPML': 'Export OPML', + 'Export as AsciiDoc': 'Export as AsciiDoc', + 'Export as Markdown': 'Export as Markdown', + 'External Citation': 'External Citation', + 'External Citation Settings': 'External Citation Settings', + 'Failed to add relay. Please try again.': 'Failed to add relay. Please try again.', + 'Failed to add relays': 'Failed to add relays', + 'Failed to block relay. Please try again.': 'Failed to block relay. Please try again.', + 'Failed to cleanup duplicates': 'Failed to cleanup duplicates', + 'Failed to clear cache': 'Failed to clear cache', + 'Failed to copy': 'Failed to copy', + 'Failed to create relay set. Please try again.': + 'Failed to create relay set. Please try again.', + 'Failed to create thread': 'Failed to create thread', + 'Failed to create thread. Please try a different relay.': + 'Failed to create thread. Please try a different relay.', + 'Failed to delete all items': 'Failed to delete all items', + 'Failed to delete item': 'Failed to delete item', + 'Failed to discover relays': 'Failed to discover relays', + 'Failed to export OPML file': 'Failed to export OPML file', + 'Failed to export article': 'Failed to export article', + 'Failed to import OPML file: {{error}}': 'Failed to import OPML file: {{error}}', + 'Failed to load RSS feeds': 'Failed to load RSS feeds', + 'Failed to load store items': 'Failed to load store items', + 'Failed to mute user privately': 'Failed to mute user privately', + 'Failed to mute user publicly': 'Failed to mute user publicly', + 'Failed to pin note': 'Failed to pin note', + 'Failed to publish post': 'Failed to publish post', + 'Failed to publish reply': 'Failed to publish reply', + 'Failed to publish thread': 'Failed to publish thread', + 'Failed to publish to some relays. Please try again or use different relays.': + 'Failed to publish to some relays. Please try again or use different relays.', + 'Failed to save RSS feeds': 'Failed to save RSS feeds', + 'Failed to save cache relays': 'Failed to save cache relays', + 'Failed to save relay list': 'Failed to save relay list', + 'Failed to unregister service worker: ': 'Failed to unregister service worker: ', + 'Failed to unsubscribe from topic': 'Failed to unsubscribe from topic', + Favorite: 'Favorite', + Fetch: 'Fetch', + 'Fetch once, then stop.': 'Fetch once, then stop.', + 'Filter by': 'Filter by', + 'Flat View': 'Flat View', + 'Font size': 'Font size', + 'Full Quote/Context': 'Full Quote/Context', + 'Full-text search query': 'Full-text search query', + Geohash: 'Geohash', + 'Geohash (optional)': 'Geohash (optional)', + 'Global quiet mode': 'Global quiet mode', + 'Group discussions by topic': 'Group discussions by topic', + 'Grouped View': 'Grouped View', + Groups: 'Groups', + 'Handler {{index}}': 'Handler {{index}}', + 'Hardcopy Citation': 'Hardcopy Citation', + 'Hardcopy Citation Settings': 'Hardcopy Citation Settings', + Hide: 'Hide', + 'Hide interactions on all posts': 'Hide interactions on all posts', + 'Hide interactions on posts with quiet tags': 'Hide interactions on posts with quiet tags', + 'High PoW': 'High PoW', + 'Higher values make your thread harder to mine but more unique.': + 'Higher values make your thread harder to mine but more unique.', + Highlight: 'Highlight', + 'Highlight Settings': 'Highlight Settings', + 'How to Create a Highlight (NIP-84)': 'How to Create a Highlight (NIP-84)', + 'Human-readable spell name': 'Human-readable spell name', + 'Image URL': 'Image URL', + 'Import OPML': 'Import OPML', + 'Imported {{count}} feed(s) from OPML file': 'Imported {{count}} feed(s) from OPML file', + 'In-Browser Cache': 'In-Browser Cache', + Insert: 'Insert', + 'Insert URL into your post and publish to Nostr GIF library (NIP-94).': + 'Insert URL into your post and publish to Nostr GIF library (NIP-94).', + 'Insert event or address': 'Insert event or address', + 'Insert mention': 'Insert mention', + 'Internal Citation': 'Internal Citation', + 'Internal Citation Settings': 'Internal Citation Settings', + 'Invalid Event': 'Invalid Event', + 'Invalid Lightning Address': 'Invalid Lightning Address', + 'Invalid Lightning Address. Please enter a valid Lightning Address or LNURL.': + 'Invalid Lightning Address. Please enter a valid Lightning Address or LNURL.', + 'Invalid URL': 'Invalid URL', + 'Invalid content JSON': 'Invalid content JSON', + 'Invalid relay URL': 'Invalid relay URL', + 'Invalid source. Please enter a note ID, nevent, naddr, hex ID, or URL.': + 'Invalid source. Please enter a note ID, nevent, naddr, hex ID, or URL.', + 'Item deleted successfully': 'Item deleted successfully', + JSON: 'JSON', + 'Join link': 'Join link', + 'Journal/Publication name (optional)': 'Journal/Publication name (optional)', + Json: 'JSON', + Kinds: 'Kinds', + 'Language Model': 'Language Model', + Large: 'Large', + 'Leave empty for HiveTalk, or paste Zoom / Teams / other link': + 'Leave empty for HiveTalk, or paste Zoom / Teams / other link', + 'Lightning payment failed': 'Lightning payment failed', + Limit: 'Limit', + 'Live feed; keeps updating.': 'Live feed; keeps updating.', + 'Loading more...': 'Loading more...', + 'Loading relays...': 'Loading relays...', + 'Location (optional)': 'Location (optional)', + 'Log in to run this spell (it uses $me or $contacts).': + 'Log in to run this spell (it uses $me or $contacts).', + 'Login failed': 'Login failed', + 'Login to configure RSS feeds': 'Login to configure RSS feeds', + 'Long-form Article': 'Long-form Article', + 'Mailbox relays saved': 'Mailbox relays saved', + 'Mark as NSFW': 'Mark as NSFW', + 'Maximum {{max}} invitees': 'Maximum {{max}} invitees', + 'Maximum {{max}} invitees allowed': 'Maximum {{max}} invitees allowed', + Medium: 'Medium', + Mode: 'Mode', + 'Most Zapped': 'Most Zapped', + 'Move to top': 'Move to top', + 'Multiple choice': 'Multiple choice', + 'Mute failed': 'Mute failed', + NSFW: 'NSFW', + Name: 'Name', + 'Name of the language model used': 'Name of the language model used', + 'New External Citation': 'New External Citation', + 'New Hardcopy Citation': 'New Hardcopy Citation', + 'New Highlight': 'New Highlight', + 'New Internal Citation': 'New Internal Citation', + 'New Long-form Article': 'New Long-form Article', + 'New Poll': 'New Poll', + 'New Prompt Citation': 'New Prompt Citation', + 'New Public Message': 'New Public Message', + 'New Wiki Article': 'New Wiki Article', + 'New Wiki Article (Markdown)': 'New Wiki Article (Markdown)', + Newest: 'Newest', + 'No JSON available': 'No JSON available', + 'No RSS feeds found in OPML file': 'No RSS feeds found in OPML file', + 'No cached data found.': 'No cached data found.', + 'No console logs captured yet': 'No console logs captured yet', + 'No events found': 'No events found', + 'No feeds configured. Default feed will be used.': + 'No feeds configured. Default feed will be used.', + 'No feeds to export': 'No feeds to export', + 'No groups available. Join some groups first.': 'No groups available. Join some groups first.', + 'No items in this store.': 'No items in this store.', + 'No items match your search.': 'No items match your search.', + 'No logs match the current filters': 'No logs match the current filters', + 'No posts found': 'No posts found', + 'No posts match your search': 'No posts match your search', + 'No relays available. Please configure relays in settings.': + 'No relays available. Please configure relays in settings.', + 'No service workers or caches found for this app': + 'No service workers or caches found for this app', + 'No users found': 'No users found', + 'No valid RSS feed URLs found in OPML file': 'No valid RSS feed URLs found in OPML file', + 'Note pinned': 'Note pinned', + 'Note unpinned': 'Note unpinned', + Oldest: 'Oldest', + 'Open Timestamp': 'Open Timestamp', + 'Opens in a new tab. Copy a GIF URL there, then paste below. If this picker closed, click “Insert GIF” again to paste.': + 'Opens in a new tab. Copy a GIF URL there, then paste below. If this picker closed, click “Insert GIF” again to paste.', + Option: 'Option', + Optional: 'Optional', + 'Optional image for the event': 'Optional image for the event', + 'Optionally, add the full quote/context to show your highlight within it': + 'Optionally, add the full quote/context to show your highlight within it', + PM: 'PM', + 'Page Range': 'Page Range', + Pages: 'Pages', + 'Paste URL of a GIF': 'Paste URL of a GIF', + 'Paste the entire original passage that contains your highlight': + 'Paste the entire original passage that contains your highlight', + Photo: 'Photo', + 'Picture Note': 'Picture Note', + 'Pin note': 'Pin note', + 'Plain text description of the query': 'Plain text description of the query', + 'Please login to view bookmarks': 'Please login to view bookmarks', + 'Please select a group': 'Please select a group', + 'Please select at least one relay': 'Please select at least one relay', + 'Please set a start date': 'Please set a start date', + 'Poll with no options': 'Poll with no options', + 'Post published to some relays': 'Post published to some relays', + 'Posts will automatically include expiration tags': + 'Posts will automatically include expiration tags', + 'Posts will automatically include quiet tags': 'Posts will automatically include quiet tags', + 'Posts will be quiet for this many days': 'Posts will be quiet for this many days', + 'Posts will expire after this many months': 'Posts will expire after this many months', + 'Processing...': 'Processing...', + 'Profile event not available': 'Profile event not available', + 'Prompt Citation': 'Prompt Citation', + 'Prompt Citation Settings': 'Prompt Citation Settings', + 'Prompt Conversation Script': 'Prompt Conversation Script', + 'Proof of Work': 'Proof of Work', + 'Publish to Relays': 'Publish to Relays', + 'Published By': 'Published By', + 'Published In': 'Published In', + 'Published On': 'Published On', + 'Published in': 'Published in', + 'Published on': 'Published on', + 'Publisher name (optional)': 'Publisher name (optional)', + 'Quiet Tags': 'Quiet Tags', + 'RSS Feed': 'RSS Feed', + 'RSS Feed Settings': 'RSS Feed Settings', + 'RSS Feeds': 'RSS Feeds', + 'RSS feeds exported to OPML file': 'RSS feeds exported to OPML file', + 'RSS feeds saved': 'RSS feeds saved', + 'Rate limited. Please wait before trying again.': + 'Rate limited. Please wait before trying again.', + 'Reaction published': 'Reaction published', + 'Reaction removed': 'Reaction removed', + 'Read full article': 'Read full article', + 'Reading group entry': 'Reading group entry', + 'Readings Options': 'Readings Options', + Recipients: 'Recipients', + 'Recipients detected from your message:': 'Recipients detected from your message:', + 'Recommended Relays': 'Recommended Relays', + 'Recommended applications for handling events of kind {{kind}}': + 'Recommended applications for handling events of kind {{kind}}', + 'Reference to the cited Nostr event in kind:pubkey:hex format': + 'Reference to the cited Nostr event in kind:pubkey:hex format', + 'Refresh Cache': 'Refresh Cache', + 'Refreshing posts...': 'Refreshing posts...', + 'Relative: 7d, 24h, 1w, 1mo, 1y. Or Unix timestamp.': + 'Relative: 7d, 24h, 1w, 1mo, 1y. Or Unix timestamp.', + Relay: 'Relay', + 'Relay Hint': 'Relay Hint', + 'Relay URL (optional)': 'Relay URL (optional)', + 'Relay blocked successfully': 'Relay blocked successfully', + 'Relay requires authentication for write access. Please try a different relay or contact the relay operator.': + 'Relay requires authentication for write access. Please try a different relay or contact the relay operator.', + 'Relay set options': 'Relay set options', + 'Remove from favorites': 'Remove from favorites', + Rendered: 'Rendered', + 'Reply published': 'Reply published', + 'Reply published to some relays': 'Reply published to some relays', + 'Reply to Public Message': 'Reply to Public Message', + 'Republish to all active relays': 'Republish to all active relays', + 'Republish to all available relays': 'Republish to all available relays', + 'Required: start (or start date), invitees. Optional: title, end, location, summary, topics, image.': + 'Required: start (or start date), invitees. Optional: title, end, location, summary, topics, image.', + 'Required: start time or start date. Optional: title, end, location, summary, topics, image.': + 'Required: start time or start date. Optional: title, end, location, summary, topics, image.', + 'Required: start time, invitees. Join link defaults to HiveTalk. Optional: title, end, summary, topics, image.': + 'Required: start time, invitees. Join link defaults to HiveTalk. Optional: title, end, summary, topics, image.', + 'Required: start time. Join link defaults to HiveTalk. Optional: title, end, summary, topics, image.': + 'Required: start time. Join link defaults to HiveTalk. Optional: title, end, summary, topics, image.', + 'Respect quiet tags': 'Respect quiet tags', + 'Search (NIP-50)': 'Search (NIP-50)', + 'Search by name or npub…': 'Search by name or npub…', + 'Search calendar, publications, wiki…': 'Search calendar, publications, wiki…', + 'Search for user…': 'Search for user…', + 'Search items...': 'Search items...', + 'Search logs...': 'Search logs...', + 'Search notes, threads, long-form…': 'Search notes, threads, long-form…', + 'Search on GifBuddy': 'Search on GifBuddy', + 'Search posts...': 'Search posts...', + 'Search threads by title, content, tags, npub, author...': + 'Search threads by title, content, tags, npub, author...', + 'Searching all available relays...': 'Searching all available relays...', + 'Searching…': 'Searching…', + 'See reference': 'See reference', + 'Select Group': 'Select Group', + 'Select Media Type': 'Select Media Type', + 'Select group...': 'Select group...', + 'Select relays': 'Select relays', + 'Select the group where you want to create this discussion.': + 'Select the group where you want to create this discussion.', + 'Select topic...': 'Select topic...', + 'Selected text': 'Selected text', + 'Send Public Message': 'Send Public Message', + 'Send a Lightning payment to this user': 'Send a Lightning payment to this user', + 'Service worker caches cleared. Please reload the page.': + 'Service worker caches cleared. Please reload the page.', + 'Service worker unregistered and caches cleared. Please reload the page.': + 'Service worker unregistered and caches cleared. Please reload the page.', + 'Service worker unregistered. Please reload the page.': + 'Service worker unregistered. Please reload the page.', + 'Share your thoughts, ask questions, or start a discussion...': + 'Share your thoughts, ask questions, or start a discussion...', + 'Short Video Note': 'Short Video Note', + 'Show RSS Feed': 'Show RSS Feed', + 'Show all discussions in a single list': 'Show all discussions in a single list', + 'Show less': 'Show less', + Since: 'Since', + Small: 'Small', + 'Some relays have temporarily disabled writes.': + 'Some relays have temporarily disabled writes.', + Source: 'Source', + 'Spell definition': 'Spell definition', + 'Spell published': 'Spell published', + 'Start date': 'Start date', + 'Start typing to see a preview...': 'Start typing to see a preview...', + 'Subject (Book Title)': 'Subject (Book Title)', + 'Subject (book title) is required for reading groups': + 'Subject (book title) is required for reading groups', + 'Subject / Topics': 'Subject / Topics', + Subscribe: 'Subscribe', + Subscribed: 'Subscribed', + 'Subscribed to topic': 'Subscribed to topic', + 'Subscribed to topic (local)': 'Subscribed to topic (local)', + 'Subscribing...': 'Subscribing...', + Summary: 'Summary', + 'Supported Event Types': 'Supported Event Types', + 'Take a note': 'Take a note', + 'The full prompt conversation (optional)': 'The full prompt conversation (optional)', + 'The main editor above should contain only the text you want to highlight. This field should contain the full quote or paragraph for context.': + 'The main editor above should contain only the text you want to highlight. This field should contain the full quote or paragraph for context.', + 'These relays were found from your NIP-05 identifier and signer. You can add them to your relay list.': + 'These relays were found from your NIP-05 identifier and signer. You can add them to your relay list.', + 'This file could be either audio or video. Please select the correct type:': + 'This file could be either audio or video. Please select the correct type:', + 'This store does not contain replaceable events': + 'This store does not contain replaceable events', + 'This will add additional tags for author and subject to help organize reading group discussions.': + 'This will add additional tags for author and subject to help organize reading group discussions.', + 'Thread Content': 'Thread Content', + 'Thread Title': 'Thread Title', + 'Thread creation timed out. Please try again.': 'Thread creation timed out. Please try again.', + 'Thread published': 'Thread published', + 'Threads are organized by topics. Choose a topic that best fits your discussion.': + 'Threads are organized by topics. Choose a topic that best fits your discussion.', + 'Time-based': 'Time-based', + 'Title is required': 'Title is required', + 'Title must be 100 characters or less': 'Title must be 100 characters or less', + 'To translate notes and other content, use your browser’s built-in translation. For example: right-click the page and choose “Translate to…”, or use the translate icon in the address bar.': + 'To translate notes and other content, use your browser’s built-in translation. For example: right-click the page and choose “Translate to…”, or use the translate icon in the address bar.', + Top: 'Top', + Topic: 'Topic', + URL: 'URL', + 'URL of the article cover image (optional)': 'URL of the article cover image (optional)', + 'Unique identifier for this article (required)': + 'Unique identifier for this article (required)', + 'Unmute failed': 'Unmute failed', + 'Unpin note': 'Unpin note', + Unsubscribe: 'Unsubscribe', + 'Unsubscribed from topic': 'Unsubscribed from topic', + 'Unsubscribing...': 'Unsubscribing...', + Until: 'Until', + Untitled: 'Untitled', + Update: 'Update', + 'Updating...': 'Updating...', + 'Upload Audio Comment': 'Upload Audio Comment', + 'Upload Audio Message': 'Upload Audio Message', + 'Upload Media': 'Upload Media', + Upvote: 'Upvote', + 'User unmuted': 'User unmuted', + 'Version number (optional)': 'Version number (optional)', + Video: 'Video', + 'Video Note': 'Video Note', + 'Video file': 'Video file', + 'View Console Logs': 'View Console Logs', + 'View JSON': 'View JSON', + 'View cached items in this store.': 'View cached items in this store.', + 'View definition': 'View definition', + 'View details about cached data in IndexedDB stores. Click on a store to view its items.': + 'View details about cached data in IndexedDB stores. Click on a store to view its items.', + 'View on Alexandria': 'View on Alexandria', + 'View on DecentNewsroom': 'View on DecentNewsroom', + 'View on Wikistr': 'View on Wikistr', + 'View recent console logs for debugging': 'View recent console logs for debugging', + 'Voice Comment': 'Voice Comment', + 'Voice Note': 'Voice Note', + 'Voice note or audio file': 'Voice note or audio file', + Volume: 'Volume', + 'Volume number (optional)': 'Volume number (optional)', + 'Vote published': 'Vote published', + 'Vote removed': 'Vote removed', + 'Website where LLM was accessed (optional)': 'Website where LLM was accessed (optional)', + 'Wiki Article (AsciiDoc)': 'Wiki Article (AsciiDoc)', + 'Wiki Article (Markdown)': 'Wiki Article (Markdown)', + 'You can only delete your own notes': 'You can only delete your own notes', + 'You must be logged in to create a thread': 'You must be logged in to create a thread', + 'You need to add at least one media server in order to upload media files.': + 'You need to add at least one media server in order to upload media files.', + 'You need to login first': 'You need to login first', + 'Your account is blocked from posting to this relay.': + 'Your account is blocked from posting to this relay.', + Zap: 'Zap', + 'Zap failed': 'Zap failed', + created_at: 'created_at', + 'e tag of kind 1040 event (optional)': 'e tag of kind 1040 event (optional)', + 'e.g. meetup, conference': 'e.g. meetup, conference', + 'e.g., 123-145 (optional)': 'e.g., 123-145 (optional)', + 'e.g., GPT-4, Claude, etc. (required)': 'e.g., GPT-4, Claude, etc. (required)', + 'e.g., my-article-title': 'e.g., my-article-title', + entries: 'entries', + 'from Bunker': 'from Bunker', + 'from Extension': 'from Extension', + 'from NIP-05': 'from NIP-05', + general: 'general', + 'https://example.com (required)': 'https://example.com (required)', + 'https://example.com/image.jpg': 'https://example.com/image.jpg', + id: 'id', + items: 'items', + kind: 'kind', + 'kind:pubkey:hex format (required)': 'kind:pubkey:hex format (required)', + 'last updated': 'last updated', + matching: 'matching', + naddr: 'naddr', + nevent: 'nevent', + 'nevent1..., naddr1..., note1..., hex ID, or https://...': + 'nevent1..., naddr1..., note1..., hex ID, or https://...', + 'no notes found': 'no notes found', + of: 'of', + 'on note': 'on note', + optional: 'optional', + pubkey: 'pubkey', + 'sent a public message': 'sent a public message', + 'sent you a public message': 'sent you a public message', + 'sent you a public message (along with {{count}} others)': + 'sent you a public message (along with {{count}} others)', + sig: 'sig', + 'started a discussion in {{topic}}': 'started a discussion in {{topic}}', + tags: 'tags', + thread: 'thread', + threads: 'threads', + 'topic1, topic2, topic3': 'topic1, topic2, topic3', + '{{count}} relay(s) selected': '{{count}} relay(s) selected', + '🔞 NSFW 🔞': '🔞 NSFW 🔞' } } diff --git a/src/i18n/locales/th.ts b/src/i18n/locales/th.ts index fd8f138b..54129fb2 100644 --- a/src/i18n/locales/th.ts +++ b/src/i18n/locales/th.ts @@ -5,8 +5,12 @@ export default { 'New Note': 'โน้ตใหม่', Post: 'โพสต์', Home: 'หน้าหลัก', + Feed: 'Feed', + 'Favorites Feed': 'Favorites Feed', + 'Pinned note': 'Pinned note', 'Relay settings': 'การตั้งค่ารีเลย์', Settings: 'การตั้งค่า', + 'Account menu': 'Account menu', SidebarRelays: 'รีเลย์', Refresh: 'รีเฟรช', Profile: 'โปรไฟล์', @@ -30,6 +34,12 @@ export default { 'loading...': 'กำลังโหลด...', 'Loading...': 'กำลังโหลด...', 'no more notes': 'ไม่มีโน้ตเพิ่มเติม', + 'calendar entries': 'calendar entries', + 'Loading calendar events...': 'Loading calendar events...', + 'No calendar events found': 'No calendar events found', + 'Calendar events in the next {{count}} months': 'Calendar events in the next {{count}} months', + 'The nostr.band relay appears to be temporarily out of service. Please try again later.': + 'The nostr.band relay appears to be temporarily out of service. Please try again later.', 'reply to': 'ตอบกลับถึง', reply: 'ตอบกลับ', Reply: 'ตอบกลับ', @@ -37,6 +47,9 @@ export default { 'Write something...': 'เขียนอะไรบางอย่าง...', Cancel: 'ยกเลิก', Mentions: 'การกล่าวถึง', + 'Search for event or address…': 'Search for event or address…', + 'Search notes…': 'Search notes…', + 'No notes found': 'No notes found', 'Failed to post': 'โพสต์ไม่สำเร็จ', 'Post successful': 'โพสต์สำเร็จ', 'Your post has been published': 'โพสต์ของคุณถูกเผยแพร่แล้ว', @@ -45,7 +58,22 @@ export default { Quote: 'อ้างอิง', 'Copy event ID': 'คัดลอก ID เหตุการณ์', 'Copy user ID': 'คัดลอก ID ผู้ใช้', + 'Send public message': 'Send public message', 'View raw event': 'ดูเหตุการณ์ดิบ', + 'Edit this event': 'Edit this event', + 'Clone or fork this event': 'Clone or fork this event', + 'Event kind': 'Event kind', + 'Note content': 'Note content', + Publish: 'Publish', + 'Post published': 'Post published', + 'Edit content and tags, then publish a new signed event.': + 'Edit content and tags, then publish a new signed event.', + 'Log in to publish': 'Log in to publish', + 'Set when you publish': 'set when you publish', + 'id and sig are assigned when you publish': 'id and sig are assigned when you publish', + 'Published to some relays only': 'Published to some relays only', + 'Add field': 'Add field', + 'View full profile': 'View full profile', Like: 'ถูกใจ', 'switch to light theme': 'เปลี่ยนเป็นธีมสว่าง', 'switch to dark theme': 'เปลี่ยนเป็นธีมมืด', @@ -56,18 +84,143 @@ export default { "username's used relays": 'รีเลย์ที่ {{username}} ใช้งาน', "username's muted": 'ผู้ที่ {{username}} ปิดเสียง', Login: 'เข้าสู่ระบบ', + 'Please log in to view notifications.': 'Please log in to view notifications.', 'Follows you': 'ติดตามคุณ', 'Relay Settings': 'การตั้งค่ารีเลย์', + 'Relays and Storage Settings': 'Relays and Storage Settings', 'Relay set name': 'ชื่อชุดรีเลย์', 'Add a new relay set': 'เพิ่มชุดรีเลย์ใหม่', Add: 'เพิ่ม', 'n relays': '{{n}} รีเลย์', Rename: 'เปลี่ยนชื่อ', + 'Copy share link': 'Copy share link', + 'Copy address': 'Copy address', + 'Copy payto URI': 'Copy payto URI', + 'Copied payto address': 'Copied payto address', + 'Copied to clipboard': 'Copied to clipboard', + 'Copied {{label}} address': 'Copied {{label}} address', + 'Lightning payment address – copy to pay via your wallet': + 'Lightning payment address – copy to pay via your wallet', + 'Payment address – copy to use in your wallet or app': + 'Payment address – copy to use in your wallet or app', + 'Click to open payment options': 'Click to open payment options', + 'Click to copy address': 'Click to copy address', + 'Open on website': 'Open on website', + 'Raw profile event': 'Raw profile event', + 'Full profile event': 'Full profile event', + 'Event (JSON)': 'Event (JSON)', + 'Save full profile': 'Save full profile', + 'Add tag': 'Add tag', + 'Remove tag': 'Remove tag', + 'Tag name': 'Tag name', + Value: 'Value', + 'Add value to tag': 'Add value to tag', + 'Remove value': 'Remove value', + 'No tags. Click "Add tag" to add one.': 'No tags. Click "Add tag" to add one.', + 'Profile updated': 'Profile updated', + 'Failed to publish profile': 'Failed to publish profile', + 'Invalid profile JSON': 'Invalid profile JSON', + 'Refresh cache': 'Refresh cache', + 'Force-refresh profile and payment info from relays': + 'Force-refresh profile and payment info from relays', + 'Profile and payment cache refreshed': 'Profile and payment cache refreshed', + 'Failed to refresh cache': 'Failed to refresh cache', + 'Raw payment info event': 'Raw payment info event', + 'Payment info': 'Payment info', + 'Edit payment info': 'Edit payment info', + 'Add payment info': 'Add payment info', + 'No payment info event yet. Click "Add payment info" to create one.': + 'No payment info event yet. Click "Add payment info" to create one.', + 'Content (JSON)': 'Content (JSON)', + Tags: 'Tags', + 'Tags (JSON array of arrays, e.g. [["payto","lightning","user@domain.com"]])': + 'Tags (JSON array of arrays, e.g. [["payto","lightning","user@domain.com"]])', + 'Payment info updated': 'Payment info updated', + 'Failed to publish payment info': 'Failed to publish payment info', + 'Invalid tags JSON': 'Invalid tags JSON', + 'Payment methods': 'Payment methods', + 'NIP-A3 payto tags: type (e.g. lightning) and authority (e.g. user@domain.com).': + 'NIP-A3 payto tags: type (e.g. lightning) and authority (e.g. user@domain.com).', + 'Type (e.g. lightning)': 'Type (e.g. lightning)', + 'Authority (e.g. user@domain.com)': 'Authority (e.g. user@domain.com)', + 'Add payment method': 'Add payment method', + Remove: 'Remove', + 'Additional content (JSON)': 'Additional content (JSON)', + 'Show full event JSON': 'Show full event JSON', + 'Tag list': 'Tag list', + 'Profile event tags (e.g. lud16, nip05, website). Saved with kind 0.': + 'Profile event tags (e.g. lud16, nip05, website). Saved with kind 0.', + 'Tag value': 'Tag value', + 'Saving…': 'Saving…', 'Share with Jumble': 'แชร์ผ่าน Jumble', 'Share with Alexandria': 'แชร์ผ่าน Alexandria', + 'Start video call': 'Start video call', + 'Copy call invite link': 'Copy call invite link', + 'Start call about this': 'Start call about this', + 'Send call invite': 'Send call invite', + 'Join the video call': 'Join the video call', + 'Schedule video call': 'Schedule video call', + "You're invited to a scheduled video call.": "You're invited to a scheduled video call.", + 'Create a calendar event and send an invite. The recipient will see the event with a join link.': + 'Create a calendar event and send an invite. The recipient will see the event with a join link.', + 'Schedule a video call': 'Schedule a video call', + 'Create a calendar event and send kind 24 invites to each listed invitee.': + 'Create a calendar event and send kind 24 invites to each listed invitee.', + Invitees: 'Invitees', + 'Paste nostr:npub1... or nostr:nprofile1... (one or more)': + 'Paste nostr:npub1... or nostr:nprofile1... (one or more)', + 'Schedule and send invites': 'Schedule and send invites', + 'Add at least one invitee (paste nostr:npub or nostr:nprofile links)': + 'Add at least one invitee (paste nostr:npub or nostr:nprofile links)', + 'Scheduled call created and {{count}} invite(s) sent': + 'Scheduled call created and {{count}} invite(s) sent', + 'Join video call': 'Join video call', + 'Scheduled video call': 'Scheduled video call', + 'Video call': 'Video call', + 'Schedule and send invite': 'Schedule and send invite', + 'Scheduling…': 'Scheduling…', + 'Please set a start time': 'Please set a start time', + 'End time must be after start time': 'End time must be after start time', + 'Failed to schedule call': 'Failed to schedule call', + 'Scheduled call created and invite sent': 'Scheduled call created and invite sent', + RSVP: 'RSVP', + 'RSVP: {{status}}': 'RSVP: {{status}}', + Accepted: 'Accepted', + Tentative: 'Tentative', + Declined: 'Declined', + 'You need to log in to RSVP': 'You need to log in to RSVP', + 'RSVP updated': 'RSVP updated', + 'Failed to update RSVP': 'Failed to update RSVP', + Organizer: 'Organizer', + Attendees: 'Attendees', + 'No response': 'No response', + 'Calendar Events': 'Calendar Events', + 'Calendar Event': 'Calendar Event', + 'Schedule in-person meeting': 'Schedule in-person meeting', + 'Create a calendar event and send an invite. No video link — for real-life meetups, conferences, etc.': + 'Create a calendar event and send an invite. No video link — for real-life meetups, conferences, etc.', + "You're invited to an in-person meeting.": "You're invited to an in-person meeting.", + 'Meeting created and invite sent': 'Meeting created and invite sent', + 'Failed to create meeting': 'Failed to create meeting', + 'Create and send invite': 'Create and send invite', + 'Creating…': 'Creating…', + 'In-person meeting': 'In-person meeting', + Location: 'Location', + 'Address, venue, or place': 'Address, venue, or place', + Description: 'Description', + 'Optional notes': 'Optional notes', + 'Create a calendar event for a real-life meetup and send kind 24 invites to each invitee.': + 'Create a calendar event for a real-life meetup and send kind 24 invites to each invitee.', + 'Meeting created and {{count}} invite(s) sent': 'Meeting created and {{count}} invite(s) sent', + 'Create and send invites': 'Create and send invites', + Title: 'Title', + Start: 'Start', + End: 'End', Delete: 'ลบ', 'Relay already exists': 'รีเลย์มีอยู่แล้ว', 'invalid relay URL': 'URL รีเลย์ไม่ถูกต้อง', + 'Relay URL…': 'wss://… or relay host', + 'Open relay': 'Open relay', 'Add a new relay': 'เพิ่มรีเลย์ใหม่', back: 'ย้อนกลับ', 'Lost in the void': 'หลงอยู่ในความว่างเปล่า', @@ -113,6 +266,19 @@ export default { 'Picture note requires images': 'โน้ตรูปภาพต้องมีรูปภาพ', Relays: 'รีเลย์', Image: 'รูปภาพ', + 'Upload Image': 'Upload Image', + 'Insert emoji': 'Insert emoji', + 'Insert GIF': 'Insert GIF', + 'Search GIFs': 'Search GIFs', + 'Choose a GIF': 'Choose a GIF', + 'Search GifBuddy for more GIFs': 'Search GifBuddy for more GIFs', + 'Add your own GIFs': 'Add your own GIFs', + 'Description (optional, for search)': 'Description (optional, for search)', + 'e.g. happy birthday, thumbs up': 'e.g. happy birthday, thumbs up', + 'Uploading...': 'Uploading...', + 'No GIFs found. Try searching or add your own. GIFs come from Nostr kind 1063 (NIP-94) events on GIF relays.': + 'No GIFs found. Try searching or add your own. GIFs come from Nostr kind 1063 (NIP-94) events on GIF relays.', + '{{name}} is not a GIF file': '{{name}} is not a GIF file', 'R & W': 'อ่าน & เขียน', Read: 'อ่าน', Write: 'เขียน', @@ -152,6 +318,9 @@ export default { Muted: 'ปิดเสียงแล้ว', Unmute: 'ยกเลิกปิดเสียง', 'Unmute user': 'ยกเลิกปิดเสียงผู้ใช้', + Block: 'Block', + Unblock: 'Unblock', + blocked: 'blocked', 'Append n relays': 'เพิ่มรีเลย์ {{n}}', Append: 'เพิ่ม', 'Select relays to append': 'เลือกรีเลย์ที่จะเพิ่ม', @@ -176,6 +345,24 @@ export default { 'Explore more': 'สำรวจเพิ่มเติม', 'Payment page': 'หน้าชำระเงิน', 'Supported NIPs': 'NIP ที่รองรับ', + 'Relay liveliness (NIP-66)': 'Relay liveliness (NIP-66)', + 'Relay monitor (NIP-66)': 'Relay monitor (NIP-66)', + 'Auth required': 'Auth required', + 'Public (no auth)': 'Public (no auth)', + 'Payment required': 'Payment required', + 'No payment': 'No payment', + 'Writes required': 'Writes required', + 'Writes open': 'Writes open', + 'PoW required': 'PoW required', + 'No PoW': 'No PoW', + 'RTT open': 'RTT open', + 'RTT read': 'RTT read', + 'RTT write': 'RTT write', + 'Supported NIPs (from monitor)': 'Supported NIPs (from monitor)', + 'Last reported by monitor': 'Last reported by monitor', + Network: 'Network', + Type: 'Type', + Topics: 'Topics', 'Open in a': 'เปิดใน {{a}}', 'Cannot handle event of kind k': 'ไม่สามารถจัดการเหตุการณ์ประเภท {{k}}', 'Sorry! The note cannot be found 😔': 'ขออภัย! ไม่พบโน้ต 😔', @@ -206,9 +393,22 @@ export default { 'Seen on': 'เห็นเมื่อ', 'Temporarily display this reply': 'แสดงการตอบกลับนี้ชั่วคราว', 'Note not found': 'ไม่พบโน้ต', + 'The note was not found on your relays or default relays.': + 'The note was not found on your relays or default relays.', + "Try searching author's relays": "Try searching author's relays", + 'Searching external relays...': 'Searching external relays...', + "This will connect to the author's relays and relay hints": + "This will connect to the author's relays and relay hints", + 'Note could not be found anywhere': 'Note could not be found anywhere', + 'Try external relays': 'Try external relays', + 'Searching...': 'Searching...', + 'Show relays': 'Show relays', + 'No external relay hints available': 'No external relay hints available', 'no more replies': 'ไม่มีการตอบกลับเพิ่มเติม', 'Relay sets': 'ชุดรีเลย์', 'Favorite Relays': 'รีเลย์โปรด', + 'Search for Relays': 'Search for Relays', + 'Using app default relays': 'Using app default relays', "Following's Favorites": 'รายการโปรดของผู้ที่ติดตาม', 'no more relays': 'ไม่มีรีเลย์เพิ่มเติม', 'Favorited by': 'ถูกเพิ่มเป็นรายการโปรดโดย', @@ -224,10 +424,48 @@ export default { 'no bookmarks found': 'ไม่พบบุ๊กมาร์ก', 'no more bookmarks': 'ไม่มีบุ๊กมาร์กเพิ่มเติม', Bookmarks: 'บุ๊กมาร์ก', + 'Follow Packs': 'Follow Packs', + 'Follow Pack': 'Follow Pack', + 'Please log in to follow': 'Please log in to follow', + 'Following All': 'Following All', + 'Followed {{count}} users': 'Followed {{count}} users', + 'All available members are already followed or muted': + 'All available members are already followed or muted', + 'You are already following all members of this pack': + 'You are already following all members of this pack', + 'Failed to follow pack': 'Failed to follow pack', + '{{count}} profiles': '{{count}} profiles', 'Show more': 'แสดงเพิ่มเติม', General: 'ทั่วไป', Autoplay: 'เล่นอัตโนมัติ', 'Enable video autoplay on this device': 'เปิดใช้งานเล่นวิดีโออัตโนมัติบนอุปกรณ์นี้', + 'Add random relays to every publish': 'Random relays in publish list', + 'Add random relays to every publish description': + 'Adds {{n}} random public relays from the NIP-66 lively list (preferring monitors that reported a write RTT) to the publish relay list. When ON, they are selected by default; when OFF, they appear in the list but are unchecked so you can optionally include them.', + relayType_local: 'Local', + relayType_relay_list: 'Relay list', + relayType_client_default: 'Client default', + relayType_open_from: 'Current feed', + relayType_favorite: 'Favorite', + relayType_relay_set: 'Relay set', + relayType_contextual: 'Reply/PM', + relayType_randomly_selected: 'Random (optional)', + 'Session relays': 'Session relays', + 'Session relays tab description': + 'Relay logic for this session: working and striked preset relays, and scored random relays (used to prefer faster, proven relays when adding random relays to publish).', + 'Session relays preset working': 'Working preset relays', + 'Session relays preset working hint': + 'Preset relays (from app defaults) that have not reached 3 publish failures this session.', + 'Session relays preset striked': 'Striked preset relays', + 'Session relays preset striked hint': + 'Preset relays that have reached 3 publish failures this session and are skipped for the rest of the session.', + 'Session relays scored random': 'Scored random relays', + 'Session relays scored random hint': + 'Relays that have accepted at least one publish this session; used to prefer faster relays when picking random relays. Sorted by average latency.', + 'Session relays all striked': 'All striked relays (any source)', + successes: 'successes', + None: 'None', + 'Cache & offline storage': 'Cache & offline storage', 'Paste or drop media files to upload': 'วางหรือหย่อนไฟล์สื่อเพื่ออัปโหลด', Preview: 'ดูตัวอย่าง', 'You are about to publish an event signed by [{{eventAuthorName}}]. You are currently logged in as [{{currentUsername}}]. Are you sure?': @@ -260,6 +498,7 @@ export default { 'Are you sure you want to reset your API key? This action cannot be undone.': 'คุณแน่ใจหรือไม่ว่าต้องการรีเซ็ต API key? การกระทำนี้ไม่สามารถย้อนกลับได้', Warning: 'คำเตือน', + 'Errors & warnings': 'Errors & warnings', 'Your current API key will become invalid immediately, and any applications using it will stop working until you update them with the new key.': 'API key ปัจจุบันของคุณจะใช้ไม่ได้ทันที และแอปพลิเคชันที่ใช้งานจะหยุดทำงานจนกว่าคุณจะอัปเดตด้วยคีย์ใหม่', 'Service address': 'ที่อยู่บริการ', @@ -291,6 +530,9 @@ export default { Article: 'บทความ', Unfavorite: 'เลิกชื่นชอบ', 'Recommended relays': 'รีเลย์ที่แนะนำ', + 'Show recommended relays panel': 'Show recommended relays panel', + 'Display the right-side panel with recommended relays on desktop': + 'Display the right-side panel with recommended relays on desktop', 'Blossom server URLs': 'URL ของเซิร์ฟเวอร์ Blossom', 'You need to add at least one blossom server in order to upload media files.': 'คุณต้องเพิ่มเซิร์ฟเวอร์ Blossom อย่างน้อยหนึ่งตัวเพื่ออัปโหลดไฟล์สื่อ', @@ -317,7 +559,31 @@ export default { 'Refresh results': 'รีเฟรชผลลัพธ์', Poll: 'โพลล์', Media: 'สื่อ', + Interests: 'Interests', + Calendar: 'Calendar', + 'No subscribed interests yet.': + 'No subscribed interests yet. Add topics in settings to see them here.', + 'No bookmarked notes with id tags yet.': + 'No bookmarked notes with id tags yet. Only classic (e-tag) bookmarks load in this feed.', + 'No follows or relays to load yet.': 'No follows or relays to load yet.', + 'Nothing to load for this feed.': 'Nothing to load for this feed.', 'Republish to ...': 'เผยแพร่ซ้ำไปยัง ...', + 'All available relays': 'All available relays', + 'All active relays (monitoring list)': 'All active relays (monitoring list)', + 'Successfully republish to all available relays': + 'Successfully republish to all available relays', + 'Failed to republish to all available relays: {{error}}': + 'Failed to republish to all available relays: {{error}}', + 'Successfully republish to all active relays': 'Successfully republish to all active relays', + 'Failed to republish to all active relays: {{error}}': + 'Failed to republish to all active relays: {{error}}', + 'No active relays in monitoring list': 'No active relays in monitoring list', + 'No relay accepted the event': 'No relay accepted the event', + 'No relays available': 'No relays available', + 'No write relays configured': 'No write relays configured', + 'Relay did not accept the event': 'Relay did not accept the event', + 'Only {{count}} relay(s) accepted the event; at least 5 required for "all active relays".': + 'Only {{count}} relay(s) accepted the event; at least 5 required for "all active relays".', 'Successfully republish to your write relays': 'Successfully republish to your write relays', 'Failed to republish to your write relays: {{error}}': 'Failed to republish to your write relays: {{error}}', @@ -335,6 +601,7 @@ export default { 'No zaps yet': 'ยังไม่มีซาตส์', 'No more boosts': 'ไม่มีบูสต์เพิ่มเติม', 'No boosts yet': 'ยังไม่มีบูสต์', + 'n more boosts': '{{count}} more boosts', Boosts: 'บูสต์', FollowListNotFoundConfirmation: 'ไม่พบรายการติดตาม คุณต้องการสร้างรายการใหม่หรือไม่? หากคุณเคยติดตามผู้ใช้มาก่อน กรุณาอย่ายืนยัน เพราะการดำเนินการนี้จะทำให้คุณสูญเสียรายการติดตามก่อนหน้านี้', @@ -357,8 +624,13 @@ export default { 'Maybe Later': 'ทีหลังค่อยว่า', "Don't remind me again": 'ไม่ต้องเตือนอีก', Posts: 'โพสต์', + 'Posts (OPs)': 'Posts (OPs)', + 'Kind 1 replies': 'Kind 1 replies', + Comments: 'Comments', + 'Replies & comments': 'Replies & comments', Articles: 'บทความ', Highlights: 'ไฮไลต์', + 'A note from': 'A note from', Polls: 'โพล', 'Voice Posts': 'โพสต์เสียง', 'Photo Posts': 'โพสต์รูปภาพ', @@ -383,6 +655,13 @@ export default { 'boosted your note': 'ได้บูสต์โน้ตของคุณ', 'zapped your note': 'ได้แซปโน้ตของคุณ', 'zapped you': 'ได้แซปคุณ', + zapped: 'zapped', + 'Invalid zap receipt': 'Invalid zap receipt', + 'Zapped note': 'Zapped note', + 'Zapped profile': 'Zapped profile', + 'Zap reply threshold': 'Zap reply threshold', + 'Zaps above this amount will appear as replies in threads': + 'Zaps above this amount will appear as replies in threads', 'Mark as read': 'ทำเครื่องหมายว่าอ่านแล้ว', Report: 'รายงาน', 'Successfully report': 'รายงานสำเร็จ', @@ -397,7 +676,6 @@ export default { 'See extra info for each notification': 'ดูข้อมูลเพิ่มเติมสำหรับการแจ้งเตือนแต่ละรายการ', 'See more notifications at a glance': 'ดูการแจ้งเตือนเพิ่มเติมในแวบเดียว', Detailed: 'รายละเอียด', - Compact: 'กะทัดรัด', 'Submit Relay': 'ส่งรีเลย์', Homepage: 'หน้าแรก', 'Proof of Work (difficulty {{minPow}})': 'หลักฐานการทำงาน (ความยาก {{minPow}})', @@ -423,12 +701,713 @@ export default { '{{count}} relays': 'รีเลย์ {{count}} ตัว', 'Republishing...': 'กำลังเผยแพร่ซ้ำ...', 'Trending Notes': 'โน้ตยอดนิยม', + 'Trending on Your Favorite Relays': 'Trending on Your Favorite Relays', + 'Trending on the Default Relays': 'Trending on the Default Relays', + 'Latest from your follows': 'Latest from your follows', + 'Latest from our recommended follows': 'Latest from our recommended follows', + 'Loading follow list…': 'Loading follow list…', + 'Could not load recommended follows': 'Could not load recommended follows', + 'Your follow list is empty': 'Your follow list is empty', + 'Loading recent posts from follows…': 'Loading recent posts from follows…', + 'Loading more…': 'Loading more…', + 'No recent posts from this user in the current fetch': + 'No recent posts from this user in the current fetch', + 'Loading trending notes from your relays...': 'Loading trending notes from your relays...', + Sort: 'Sort', + newest: 'newest', + oldest: 'oldest', + 'most popular': 'most popular', + 'least popular': 'least popular', 'Connected to': 'เชื่อมต่อกับ', 'Disconnect Wallet': 'ตัดการเชื่อมต่อกระเป๋าสตางค์', 'Are you absolutely sure?': 'คุณแน่ใจอย่างยิ่งหรือไม่?', 'You will not be able to send zaps to others.': 'คุณจะไม่สามารถส่งซาตส์ไปยังผู้อื่นได้', Disconnect: 'ตัดการเชื่อมต่อ', 'Set up your wallet to send and receive sats!': 'ตั้งค่ากระเป๋าของคุณเพื่อส่งและรับ sats!', - 'Set up': 'ตั้งค่า' + 'Set up': 'ตั้งค่า', + 'nested events': 'nested events', + 'Loading RSS feeds...': 'Loading RSS feeds...', + 'No RSS feed items available': 'No RSS feed items available', + 'Show or hide the RSS page and sidebar entry': 'Show or hide the RSS page and sidebar entry', + 'Refreshing feeds...': 'Refreshing feeds...', + 'All feeds': 'All feeds', + 'All time': 'All time', + 'Last hour': 'Last hour', + 'Last day': 'Last day', + 'Last week': 'Last week', + 'Last month': 'Last month', + 'No items match your filters': 'No items match your filters', + 'Search...': 'Search...', + '{{count}} feeds': '{{count}} feeds', + 'Toggle filters': 'Toggle filters', + 'Showing {{filtered}} of {{total}} items': 'Showing {{filtered}} of {{total}} items', + Full: 'Full', + Compact: 'กะทัดรัด', + Expand: 'Expand', + 'help.title': 'Help', + 'help.tabShortcuts': 'Keyboard shortcuts', + 'help.tabOverview': 'App overview', + 'shortcuts.title': 'Keyboard shortcuts', + 'shortcuts.intro': + 'Shortcuts for this app and common browsing. Modifier combos are Shift+Alt+key (Option+Shift+key on macOS); either modifier order works when typing.', + 'shortcuts.sectionApp': 'This app', + 'shortcuts.sectionSearch': 'Search bar', + 'shortcuts.sectionStandard': 'Standard', + 'shortcuts.openHelp': 'Show this help', + 'shortcuts.or': 'or', + 'shortcuts.then': 'then', + 'shortcuts.focusPrimary': + 'Focus main column scroll (desktop; then arrow keys, Page Up/Down, Home/End)', + 'shortcuts.focusSecondary': + 'Focus side panel scroll when it is open (desktop; same keys to scroll)', + 'shortcuts.newNote': 'New note / post (after login if needed)', + 'shortcuts.searchSuggest': 'Move through suggestions', + 'shortcuts.searchDismiss': 'Close search dropdown', + 'shortcuts.tabNavigate': 'Move focus to the next or previous control', + 'shortcuts.activate': 'Activate buttons and many controls', + 'shortcuts.closeOverlays': 'Close dialogs, menus, and the search dropdown', + 'shortcuts.scrollWhenFocused': 'Scroll the focused scrollable area', + 'shortcuts.browserBack': 'Browser back (history)', + 'No spells yet. Create one with the button above.': + 'No spells yet. Create one with the button above.', + 'Loading spells from your relays…': 'Loading spells from your relays…', + 'Could not run this spell. Check that it has a valid REQ/COUNT command, or add write relays in settings.': + 'Could not run this spell. Check that it has a valid REQ/COUNT command, or add write relays in settings.', + 'Select a spell…': 'Select a spell…', + 'Spells from follows': 'From people you follow ({{count}})', + 'Other spells': 'Other spells ({{count}})', + 'Select a spell to view its feed.': 'Select a spell to view its feed.', + 'Add another row': 'Add another row', + 'Remove this row': 'Remove this row', + 'One kind number per row (e.g. 1 for notes).': 'One kind number per row (e.g. 1 for notes).', + 'One author per row: $me, $contacts, or hex pubkey / npub.': + 'One author per row: $me, $contacts, or hex pubkey / npub.', + 'One hex event id per row.': 'One hex event id per row.', + 'One wss:// URL per row. Leave empty to use your write relays.': + 'One wss:// URL per row. Leave empty to use your write relays.', + 'One topic per row.': 'One topic per row.', + topic: 'topic', + 'Spell form fields': 'Spell form fields', + 'Counting matching events…': 'Counting matching events…', + 'Edit spell': 'Edit spell', + 'Clone spell': 'Clone spell', + 'Spell cloned': 'Spell cloned', + 'Clone spell intro': + 'This spell is preloaded from another author’s definition. Change anything you like, then save to publish a new spell signed with your account.', + 'Spell updated': 'Spell updated', + 'Relay URL': 'Relay', + Count: 'Count', + 'Edit spell relays': 'Edit relays', + 'COUNT spell relay errors hint': + 'One or more relays failed or returned an error. You can change the relay list in the spell and save again.', + 'COUNT spell total distinct explanation': + 'Distinct matching event IDs across all relays that responded successfully (duplicates across relays removed). Each relay only returns up to the filter limit.', + 'Leave empty to use your write relays.': 'Leave empty to use your write relays.', + 'COUNT spell result explanation': + 'Distinct events returned for this filter (merged from your spell relays and default write relays, duplicates removed). Relays only return up to the filter limit.', + 'COUNT spell may be capped by limit': + 'This count may equal your spell limit — there could be more matching events on the network.', + 'Spell count failed. Check relays or try again.': + 'Could not complete the count. Check relays or try again.', + 'REQ returns a feed; COUNT returns a number.': + 'REQ: scrollable feed (choose live Feed or one-shot Fetch below). COUNT: a single number, no feed.', + listImportManualLabel: 'Pre-fill from event', + listImportFromEventHint: + 'Supported tags are merged into the form (e, p, t, relay, r, a where possible). Non-empty content is skipped; encrypted private items are not read. You may see notices for unmapped tags.', + listImportManualPlaceholder: '64-char hex, nevent1…, or naddr1…', + listImportLoadManual: 'Apply', + listImportContentSkipped: + 'This event has non-empty content (may include encrypted private items). Only public tags were merged.', + listImportUnsupportedEmoji: + 'This list includes emoji tags (NIP-30); those are not added to the spell filter.', + listImportUnsupportedTag: + 'Tags of type “{{tag}}” ({{count}}) are not mapped to spell filters yet.', + listImportBadATag: 'Could not parse address tag: {{preview}}…', + listImportATagNotFound: 'Could not resolve address tag: {{preview}}…', + listImportATagFailed: 'Failed to resolve address tag: {{preview}}…', + listImportEventNotFound: 'No event found for that reference.', + 'REQ tag filters': 'REQ tag filters', + spellFormTagFiltersLabel: 'Tag filters on matching events', + spellCreateIntro: + 'Spells are saved relay filters (NIP-A7). The “Spell query” section is the real definition; the dashed box at the bottom is only for names, descriptions, and catalog labels. Use $me for your pubkey and $contacts for your follow list when executing.', + spellFormSectionQueryTitle: 'Spell query', + spellFormSectionQueryHint: + 'This block is the actual spell definition: it becomes the Nostr REQ/COUNT filter (kinds, authors, time range, tag filters on matching events, relays, etc.).', + spellFormSectionMetadataTitle: 'Listing & labels (optional)', + spellFormSectionMetadataBadge: 'Not part of the query', + spellFormSectionMetadataHint: + 'Name, description, and topic labels are only for display and spell pickers. They are not used when the spell fetches events.', + spellFormCatalogTopicsLabel: 'Topic labels on this spell (t tags)', + spellTopicsMetadataHint: + 'One topic per row. To filter which notes you see, use “REQ tag filters” in the spell query above (letter “t”).', + spellTagFiltersHint: + 'Optional filters on subscribed events (NIP-01 single-letter tags). Example: letter “t”, values “bitcoin”.', + spellTagFiltersEmpty: 'No tag filters yet. Add rows below or apply an event reference above.', + 'Tag filter letter': 'Tag letter', + 'Filter value': 'Value', + 'Add tag filter': 'Add tag filter', + spellPickerSectionYours: 'Your spells', + 'Failed to remove spell from local storage': 'Failed to remove spell from local storage', + Spells: 'Spells', + 'doublePane.secondaryEmpty': 'Open a note, profile, or settings item to show it here.', + 'doublePane.secondaryEmptyHint': 'Your feed and primary pages stay on the left.', + '(empty)': '(empty)', + '12-hour (AM/PM)': '12-hour (AM/PM)', + '24-hour': '24-hour', + 'A new version is available': 'A new version is available', + 'A short description of the article content': 'A short description of the article content', + AM: 'AM', + 'Access via': 'Access via', + 'Accessed On': 'Accessed On', + 'Accessed on': 'Accessed on', + 'Add RSS feed URLs to subscribe to. If no feeds are configured, the default feed will be used.': + 'Add RSS feed URLs to subscribe to. If no feeds are configured, the default feed will be used.', + 'Add a relay to block': 'Add a relay to block', + 'Add at least one invitee': 'Add at least one invitee', + 'Add client identifier': 'Add client identifier', + 'Add expiration tags by default': 'Add expiration tags by default', + 'Add quiet tags by default': 'Add quiet tags by default', + 'Add recipients using nostr: mentions (e.g., nostr:npub1...) or the recipient selector above': + 'Add recipients using nostr: mentions (e.g., nostr:npub1...) or the recipient selector above', + 'Add the source (where this text is from)': 'Add the source (where this text is from)', + 'Add to favorites': 'Add to favorites', + 'Add {{count}} Selected': 'Add {{count}} Selected', + 'Added at': 'Added at', + 'Added {{count}} relay(s)': 'Added {{count}} relay(s)', + 'Adding...': 'Adding...', + 'Adding…': 'Adding…', + 'Advanced Options': 'Advanced Options', + 'All Topics': 'All Topics', + 'All favorite relays': 'All favorite relays', + 'All feeds from OPML file are already added': 'All feeds from OPML file are already added', + 'All items deleted successfully': 'All items deleted successfully', + 'Already blocked': 'Already blocked', + 'Already saved': 'Already saved', + 'Application Recommendations': 'Application Recommendations', + 'Are you sure you want to clear all cached data? This will delete all stored events and settings from your browser.': + 'Are you sure you want to clear all cached data? This will delete all stored events and settings from your browser.', + 'Are you sure you want to delete all items from this store?': + 'Are you sure you want to delete all items from this store?', + 'Are you sure you want to unmute this user? This will restore the follow button.': + 'Are you sure you want to unmute this user? This will restore the follow button.', + "Are you sure you want to unregister the service worker? This will clear this app's service worker caches and you will need to reload the page.": + "Are you sure you want to unregister the service worker? This will clear this app's service worker caches and you will need to reload the page.", + 'Article exported as AsciiDoc': 'Article exported as AsciiDoc', + 'Article exported as Markdown': 'Article exported as Markdown', + 'Article title (optional)': 'Article title (optional)', + Audio: 'Audio', + Author: 'Author', + 'Author is required for reading groups': 'Author is required for reading groups', + 'Author name (optional)': 'Author name (optional)', + Authors: 'Authors', + 'Block Relay': 'Block Relay', + 'Blocked Relays': 'Blocked Relays', + 'Blocking...': 'Blocking...', + Blossom: 'Blossom', + Book: 'Book', + 'Brief description of the event': 'Brief description of the event', + 'Brief summary (optional)': 'Brief summary (optional)', + 'Brief summary of the article (optional)': 'Brief summary of the article (optional)', + 'Browse Cache': 'Browse Cache', + 'C-Tag': 'C-Tag', + 'Cache Relays': 'Cache Relays', + 'Cache cleared successfully': 'Cache cleared successfully', + 'Cache refreshed successfully': 'Cache refreshed successfully', + 'Cache relays are used to store and retrieve events locally. These relays are merged with your inbox and outbox relays.': + 'Cache relays are used to store and retrieve events locally. These relays are merged with your inbox and outbox relays.', + 'Cache relays must be local network URLs only (e.g., ws://localhost:4869 or ws://127.0.0.1:4869)': + 'Cache relays must be local network URLs only (e.g., ws://localhost:4869 or ws://127.0.0.1:4869)', + 'Cache relays saved': 'Cache relays saved', + Cancelled: 'Cancelled', + Chapter: 'Chapter', + 'Chapter Title': 'Chapter Title', + 'Chapter title (optional)': 'Chapter title (optional)', + Citation: 'Citation', + 'Citation title (optional)': 'Citation title (optional)', + 'Clean up duplicate replaceable events? This will keep only the newest version of each event.': + 'Clean up duplicate replaceable events? This will keep only the newest version of each event.', + 'Cleaned up {{deleted}} duplicate entries, kept {{kept}}': + 'Cleaned up {{deleted}} duplicate entries, kept {{kept}}', + 'Cleaned up {{deleted}} duplicate entries, kept {{kept}} (total items after cleanup: {{total}})': + 'Cleaned up {{deleted}} duplicate entries, kept {{kept}} (total items after cleanup: {{total}})', + 'Cleanup Duplicates': 'Cleanup Duplicates', + Clear: 'Clear', + 'Clear Cache': 'Clear Cache', + 'Clear Service Worker': 'Clear Service Worker', + 'Clear cached data stored in your browser, including IndexedDB events, localStorage settings, and service worker caches.': + 'Clear cached data stored in your browser, including IndexedDB events, localStorage settings, and service worker caches.', + 'Click update to get the latest features and improvements': + 'Click update to get the latest features and improvements', + Close: 'Close', + 'Comma or space-separated topics (will be added as t-tags)': + 'Comma or space-separated topics (will be added as t-tags)', + Command: 'Command', + Configure: 'Configure', + 'Connect Wallet': 'Connect Wallet', + 'Console Logs': 'Console Logs', + 'Console logs cleared': 'Console logs cleared', + 'Content is required': 'Content is required', + 'Content must be 5000 characters or less': 'Content must be 5000 characters or less', + Controversial: 'Controversial', + 'Copied!': 'Copied!', + 'Copy to clipboard': 'Copy to clipboard', + 'Create Article': 'Create Article', + 'Create Citation': 'Create Citation', + 'Create Highlight': 'Create Highlight', + 'Create New Thread': 'Create New Thread', + 'Create Poll': 'Create Poll', + 'Create Thread': 'Create Thread', + 'Create a Spell': 'Create a Spell', + 'Creating...': 'Creating...', + 'D-Tag': 'D-Tag', + 'D-Tag is required for articles': 'D-Tag is required for articles', + DOI: 'DOI', + 'Date-based (all-day)': 'Date-based (all-day)', + 'Default expiration (months)': 'Default expiration (months)', + 'Default quiet period (days)': 'Default quiet period (days)', + 'Delete All': 'Delete All', + 'Delete item': 'Delete item', + 'Deleted {{count}} event(s)': 'Deleted {{count}} event(s)', + 'Deletion request sent': 'Deletion request sent', + 'Description (content)': 'Description (content)', + 'Digital Object Identifier (optional)': 'Digital Object Identifier (optional)', + 'Disable word wrap': 'Disable word wrap', + 'Discovered Relays': 'Discovered Relays', + 'Discovering relays...': 'Discovering relays...', + Discussion: 'Discussion', + Discussions: 'Discussions', + Downvote: 'Downvote', + 'Edited by': 'Edited by', + Editor: 'Editor', + 'Editor name (optional)': 'Editor name (optional)', + 'Enable word wrap': 'Enable word wrap', + 'End date': 'End date', + 'End date must be after start date': 'End date must be after start date', + 'Enter a Nostr event identifier (nevent, naddr, note, or hex ID) OR a web URL (https://). Not both.': + 'Enter a Nostr event identifier (nevent, naddr, note, or hex ID) OR a web URL (https://). Not both.', + 'Enter a descriptive title for your thread': 'Enter a descriptive title for your thread', + 'Enter the author name': 'Enter the author name', + 'Enter the book title': 'Enter the book title', + 'Enter the specific text you want to highlight in the main content area above': + 'Enter the specific text you want to highlight in the main content area above', + 'Event IDs (ids)': 'Event IDs (ids)', + 'Event appears to be invalid or corrupted': 'Event appears to be invalid or corrupted', + 'Event has no value data': 'Event has no value data', + 'Event is missing required fields: {{fields}}': 'Event is missing required fields: {{fields}}', + 'Event type': 'Event type', + 'Expiration Tags': 'Expiration Tags', + 'Export OPML': 'Export OPML', + 'Export as AsciiDoc': 'Export as AsciiDoc', + 'Export as Markdown': 'Export as Markdown', + 'External Citation': 'External Citation', + 'External Citation Settings': 'External Citation Settings', + 'Failed to add relay. Please try again.': 'Failed to add relay. Please try again.', + 'Failed to add relays': 'Failed to add relays', + 'Failed to block relay. Please try again.': 'Failed to block relay. Please try again.', + 'Failed to cleanup duplicates': 'Failed to cleanup duplicates', + 'Failed to clear cache': 'Failed to clear cache', + 'Failed to copy': 'Failed to copy', + 'Failed to create relay set. Please try again.': + 'Failed to create relay set. Please try again.', + 'Failed to create thread': 'Failed to create thread', + 'Failed to create thread. Please try a different relay.': + 'Failed to create thread. Please try a different relay.', + 'Failed to delete all items': 'Failed to delete all items', + 'Failed to delete item': 'Failed to delete item', + 'Failed to discover relays': 'Failed to discover relays', + 'Failed to export OPML file': 'Failed to export OPML file', + 'Failed to export article': 'Failed to export article', + 'Failed to import OPML file: {{error}}': 'Failed to import OPML file: {{error}}', + 'Failed to load RSS feeds': 'Failed to load RSS feeds', + 'Failed to load store items': 'Failed to load store items', + 'Failed to mute user privately': 'Failed to mute user privately', + 'Failed to mute user publicly': 'Failed to mute user publicly', + 'Failed to pin note': 'Failed to pin note', + 'Failed to publish post': 'Failed to publish post', + 'Failed to publish reply': 'Failed to publish reply', + 'Failed to publish thread': 'Failed to publish thread', + 'Failed to publish to some relays. Please try again or use different relays.': + 'Failed to publish to some relays. Please try again or use different relays.', + 'Failed to save RSS feeds': 'Failed to save RSS feeds', + 'Failed to save cache relays': 'Failed to save cache relays', + 'Failed to save relay list': 'Failed to save relay list', + 'Failed to unregister service worker: ': 'Failed to unregister service worker: ', + 'Failed to unsubscribe from topic': 'Failed to unsubscribe from topic', + Favorite: 'Favorite', + Fetch: 'Fetch', + 'Fetch once, then stop.': 'Fetch once, then stop.', + 'Filter by': 'Filter by', + 'Flat View': 'Flat View', + 'Font size': 'Font size', + 'Full Quote/Context': 'Full Quote/Context', + 'Full-text search query': 'Full-text search query', + Geohash: 'Geohash', + 'Geohash (optional)': 'Geohash (optional)', + 'Global quiet mode': 'Global quiet mode', + 'Group discussions by topic': 'Group discussions by topic', + 'Grouped View': 'Grouped View', + Groups: 'Groups', + 'Handler {{index}}': 'Handler {{index}}', + 'Hardcopy Citation': 'Hardcopy Citation', + 'Hardcopy Citation Settings': 'Hardcopy Citation Settings', + Hide: 'Hide', + 'Hide interactions on all posts': 'Hide interactions on all posts', + 'Hide interactions on posts with quiet tags': 'Hide interactions on posts with quiet tags', + 'High PoW': 'High PoW', + 'Higher values make your thread harder to mine but more unique.': + 'Higher values make your thread harder to mine but more unique.', + Highlight: 'Highlight', + 'Highlight Settings': 'Highlight Settings', + 'How to Create a Highlight (NIP-84)': 'How to Create a Highlight (NIP-84)', + 'Human-readable spell name': 'Human-readable spell name', + 'Image URL': 'Image URL', + 'Import OPML': 'Import OPML', + 'Imported {{count}} feed(s) from OPML file': 'Imported {{count}} feed(s) from OPML file', + 'In-Browser Cache': 'In-Browser Cache', + Insert: 'Insert', + 'Insert URL into your post and publish to Nostr GIF library (NIP-94).': + 'Insert URL into your post and publish to Nostr GIF library (NIP-94).', + 'Insert event or address': 'Insert event or address', + 'Insert mention': 'Insert mention', + 'Internal Citation': 'Internal Citation', + 'Internal Citation Settings': 'Internal Citation Settings', + 'Invalid Event': 'Invalid Event', + 'Invalid Lightning Address': 'Invalid Lightning Address', + 'Invalid Lightning Address. Please enter a valid Lightning Address or LNURL.': + 'Invalid Lightning Address. Please enter a valid Lightning Address or LNURL.', + 'Invalid URL': 'Invalid URL', + 'Invalid content JSON': 'Invalid content JSON', + 'Invalid relay URL': 'Invalid relay URL', + 'Invalid source. Please enter a note ID, nevent, naddr, hex ID, or URL.': + 'Invalid source. Please enter a note ID, nevent, naddr, hex ID, or URL.', + 'Item deleted successfully': 'Item deleted successfully', + JSON: 'JSON', + 'Join link': 'Join link', + 'Journal/Publication name (optional)': 'Journal/Publication name (optional)', + Json: 'JSON', + Kinds: 'Kinds', + 'Language Model': 'Language Model', + Large: 'Large', + 'Leave empty for HiveTalk, or paste Zoom / Teams / other link': + 'Leave empty for HiveTalk, or paste Zoom / Teams / other link', + 'Lightning payment failed': 'Lightning payment failed', + Limit: 'Limit', + 'Live feed; keeps updating.': 'Live feed; keeps updating.', + 'Loading more...': 'Loading more...', + 'Loading relays...': 'Loading relays...', + 'Location (optional)': 'Location (optional)', + 'Log in to run this spell (it uses $me or $contacts).': + 'Log in to run this spell (it uses $me or $contacts).', + 'Login failed': 'Login failed', + 'Login to configure RSS feeds': 'Login to configure RSS feeds', + 'Long-form Article': 'Long-form Article', + 'Mailbox relays saved': 'Mailbox relays saved', + 'Mark as NSFW': 'Mark as NSFW', + 'Maximum {{max}} invitees': 'Maximum {{max}} invitees', + 'Maximum {{max}} invitees allowed': 'Maximum {{max}} invitees allowed', + Medium: 'Medium', + Mode: 'Mode', + 'Most Zapped': 'Most Zapped', + 'Move to top': 'Move to top', + 'Multiple choice': 'Multiple choice', + 'Mute failed': 'Mute failed', + NSFW: 'NSFW', + Name: 'Name', + 'Name of the language model used': 'Name of the language model used', + 'New External Citation': 'New External Citation', + 'New Hardcopy Citation': 'New Hardcopy Citation', + 'New Highlight': 'New Highlight', + 'New Internal Citation': 'New Internal Citation', + 'New Long-form Article': 'New Long-form Article', + 'New Poll': 'New Poll', + 'New Prompt Citation': 'New Prompt Citation', + 'New Public Message': 'New Public Message', + 'New Wiki Article': 'New Wiki Article', + 'New Wiki Article (Markdown)': 'New Wiki Article (Markdown)', + Newest: 'Newest', + 'No JSON available': 'No JSON available', + 'No RSS feeds found in OPML file': 'No RSS feeds found in OPML file', + 'No cached data found.': 'No cached data found.', + 'No console logs captured yet': 'No console logs captured yet', + 'No events found': 'No events found', + 'No feeds configured. Default feed will be used.': + 'No feeds configured. Default feed will be used.', + 'No feeds to export': 'No feeds to export', + 'No groups available. Join some groups first.': 'No groups available. Join some groups first.', + 'No items in this store.': 'No items in this store.', + 'No items match your search.': 'No items match your search.', + 'No logs match the current filters': 'No logs match the current filters', + 'No posts found': 'No posts found', + 'No posts match your search': 'No posts match your search', + 'No relays available. Please configure relays in settings.': + 'No relays available. Please configure relays in settings.', + 'No service workers or caches found for this app': + 'No service workers or caches found for this app', + 'No users found': 'No users found', + 'No valid RSS feed URLs found in OPML file': 'No valid RSS feed URLs found in OPML file', + 'Note pinned': 'Note pinned', + 'Note unpinned': 'Note unpinned', + Oldest: 'Oldest', + 'Open Timestamp': 'Open Timestamp', + 'Opens in a new tab. Copy a GIF URL there, then paste below. If this picker closed, click “Insert GIF” again to paste.': + 'Opens in a new tab. Copy a GIF URL there, then paste below. If this picker closed, click “Insert GIF” again to paste.', + Option: 'Option', + Optional: 'Optional', + 'Optional image for the event': 'Optional image for the event', + 'Optionally, add the full quote/context to show your highlight within it': + 'Optionally, add the full quote/context to show your highlight within it', + PM: 'PM', + 'Page Range': 'Page Range', + Pages: 'Pages', + 'Paste URL of a GIF': 'Paste URL of a GIF', + 'Paste the entire original passage that contains your highlight': + 'Paste the entire original passage that contains your highlight', + Photo: 'Photo', + 'Picture Note': 'Picture Note', + 'Pin note': 'Pin note', + 'Plain text description of the query': 'Plain text description of the query', + 'Please login to view bookmarks': 'Please login to view bookmarks', + 'Please select a group': 'Please select a group', + 'Please select at least one relay': 'Please select at least one relay', + 'Please set a start date': 'Please set a start date', + 'Poll with no options': 'Poll with no options', + 'Post published to some relays': 'Post published to some relays', + 'Posts will automatically include expiration tags': + 'Posts will automatically include expiration tags', + 'Posts will automatically include quiet tags': 'Posts will automatically include quiet tags', + 'Posts will be quiet for this many days': 'Posts will be quiet for this many days', + 'Posts will expire after this many months': 'Posts will expire after this many months', + 'Processing...': 'Processing...', + 'Profile event not available': 'Profile event not available', + 'Prompt Citation': 'Prompt Citation', + 'Prompt Citation Settings': 'Prompt Citation Settings', + 'Prompt Conversation Script': 'Prompt Conversation Script', + 'Proof of Work': 'Proof of Work', + 'Publish to Relays': 'Publish to Relays', + 'Published By': 'Published By', + 'Published In': 'Published In', + 'Published On': 'Published On', + 'Published in': 'Published in', + 'Published on': 'Published on', + 'Publisher name (optional)': 'Publisher name (optional)', + 'Quiet Tags': 'Quiet Tags', + 'RSS Feed': 'RSS Feed', + 'RSS Feed Settings': 'RSS Feed Settings', + 'RSS Feeds': 'RSS Feeds', + 'RSS feeds exported to OPML file': 'RSS feeds exported to OPML file', + 'RSS feeds saved': 'RSS feeds saved', + 'Rate limited. Please wait before trying again.': + 'Rate limited. Please wait before trying again.', + 'Reaction published': 'Reaction published', + 'Reaction removed': 'Reaction removed', + 'Read full article': 'Read full article', + 'Reading group entry': 'Reading group entry', + 'Readings Options': 'Readings Options', + Recipients: 'Recipients', + 'Recipients detected from your message:': 'Recipients detected from your message:', + 'Recommended Relays': 'Recommended Relays', + 'Recommended applications for handling events of kind {{kind}}': + 'Recommended applications for handling events of kind {{kind}}', + 'Reference to the cited Nostr event in kind:pubkey:hex format': + 'Reference to the cited Nostr event in kind:pubkey:hex format', + 'Refresh Cache': 'Refresh Cache', + 'Refreshing posts...': 'Refreshing posts...', + 'Relative: 7d, 24h, 1w, 1mo, 1y. Or Unix timestamp.': + 'Relative: 7d, 24h, 1w, 1mo, 1y. Or Unix timestamp.', + Relay: 'Relay', + 'Relay Hint': 'Relay Hint', + 'Relay URL (optional)': 'Relay URL (optional)', + 'Relay blocked successfully': 'Relay blocked successfully', + 'Relay requires authentication for write access. Please try a different relay or contact the relay operator.': + 'Relay requires authentication for write access. Please try a different relay or contact the relay operator.', + 'Relay set options': 'Relay set options', + 'Remove from favorites': 'Remove from favorites', + Rendered: 'Rendered', + 'Reply published': 'Reply published', + 'Reply published to some relays': 'Reply published to some relays', + 'Reply to Public Message': 'Reply to Public Message', + 'Republish to all active relays': 'Republish to all active relays', + 'Republish to all available relays': 'Republish to all available relays', + 'Required: start (or start date), invitees. Optional: title, end, location, summary, topics, image.': + 'Required: start (or start date), invitees. Optional: title, end, location, summary, topics, image.', + 'Required: start time or start date. Optional: title, end, location, summary, topics, image.': + 'Required: start time or start date. Optional: title, end, location, summary, topics, image.', + 'Required: start time, invitees. Join link defaults to HiveTalk. Optional: title, end, summary, topics, image.': + 'Required: start time, invitees. Join link defaults to HiveTalk. Optional: title, end, summary, topics, image.', + 'Required: start time. Join link defaults to HiveTalk. Optional: title, end, summary, topics, image.': + 'Required: start time. Join link defaults to HiveTalk. Optional: title, end, summary, topics, image.', + 'Respect quiet tags': 'Respect quiet tags', + 'Search (NIP-50)': 'Search (NIP-50)', + 'Search by name or npub…': 'Search by name or npub…', + 'Search calendar, publications, wiki…': 'Search calendar, publications, wiki…', + 'Search for user…': 'Search for user…', + 'Search items...': 'Search items...', + 'Search logs...': 'Search logs...', + 'Search notes, threads, long-form…': 'Search notes, threads, long-form…', + 'Search on GifBuddy': 'Search on GifBuddy', + 'Search posts...': 'Search posts...', + 'Search threads by title, content, tags, npub, author...': + 'Search threads by title, content, tags, npub, author...', + 'Searching all available relays...': 'Searching all available relays...', + 'Searching…': 'Searching…', + 'See reference': 'See reference', + 'Select Group': 'Select Group', + 'Select Media Type': 'Select Media Type', + 'Select group...': 'Select group...', + 'Select relays': 'Select relays', + 'Select the group where you want to create this discussion.': + 'Select the group where you want to create this discussion.', + 'Select topic...': 'Select topic...', + 'Selected text': 'Selected text', + 'Send Public Message': 'Send Public Message', + 'Send a Lightning payment to this user': 'Send a Lightning payment to this user', + 'Service worker caches cleared. Please reload the page.': + 'Service worker caches cleared. Please reload the page.', + 'Service worker unregistered and caches cleared. Please reload the page.': + 'Service worker unregistered and caches cleared. Please reload the page.', + 'Service worker unregistered. Please reload the page.': + 'Service worker unregistered. Please reload the page.', + 'Share your thoughts, ask questions, or start a discussion...': + 'Share your thoughts, ask questions, or start a discussion...', + 'Short Video Note': 'Short Video Note', + 'Show RSS Feed': 'Show RSS Feed', + 'Show all discussions in a single list': 'Show all discussions in a single list', + 'Show less': 'Show less', + Since: 'Since', + Small: 'Small', + 'Some relays have temporarily disabled writes.': + 'Some relays have temporarily disabled writes.', + Source: 'Source', + 'Spell definition': 'Spell definition', + 'Spell published': 'Spell published', + 'Start date': 'Start date', + 'Start typing to see a preview...': 'Start typing to see a preview...', + 'Subject (Book Title)': 'Subject (Book Title)', + 'Subject (book title) is required for reading groups': + 'Subject (book title) is required for reading groups', + 'Subject / Topics': 'Subject / Topics', + Subscribe: 'Subscribe', + Subscribed: 'Subscribed', + 'Subscribed to topic': 'Subscribed to topic', + 'Subscribed to topic (local)': 'Subscribed to topic (local)', + 'Subscribing...': 'Subscribing...', + Summary: 'Summary', + 'Supported Event Types': 'Supported Event Types', + 'Take a note': 'Take a note', + 'The full prompt conversation (optional)': 'The full prompt conversation (optional)', + 'The main editor above should contain only the text you want to highlight. This field should contain the full quote or paragraph for context.': + 'The main editor above should contain only the text you want to highlight. This field should contain the full quote or paragraph for context.', + 'These relays were found from your NIP-05 identifier and signer. You can add them to your relay list.': + 'These relays were found from your NIP-05 identifier and signer. You can add them to your relay list.', + 'This file could be either audio or video. Please select the correct type:': + 'This file could be either audio or video. Please select the correct type:', + 'This store does not contain replaceable events': + 'This store does not contain replaceable events', + 'This will add additional tags for author and subject to help organize reading group discussions.': + 'This will add additional tags for author and subject to help organize reading group discussions.', + 'Thread Content': 'Thread Content', + 'Thread Title': 'Thread Title', + 'Thread creation timed out. Please try again.': 'Thread creation timed out. Please try again.', + 'Thread published': 'Thread published', + 'Threads are organized by topics. Choose a topic that best fits your discussion.': + 'Threads are organized by topics. Choose a topic that best fits your discussion.', + 'Time-based': 'Time-based', + 'Title is required': 'Title is required', + 'Title must be 100 characters or less': 'Title must be 100 characters or less', + 'To translate notes and other content, use your browser’s built-in translation. For example: right-click the page and choose “Translate to…”, or use the translate icon in the address bar.': + 'To translate notes and other content, use your browser’s built-in translation. For example: right-click the page and choose “Translate to…”, or use the translate icon in the address bar.', + Top: 'Top', + Topic: 'Topic', + URL: 'URL', + 'URL of the article cover image (optional)': 'URL of the article cover image (optional)', + 'Unique identifier for this article (required)': + 'Unique identifier for this article (required)', + 'Unmute failed': 'Unmute failed', + 'Unpin note': 'Unpin note', + Unsubscribe: 'Unsubscribe', + 'Unsubscribed from topic': 'Unsubscribed from topic', + 'Unsubscribing...': 'Unsubscribing...', + Until: 'Until', + Untitled: 'Untitled', + Update: 'Update', + 'Updating...': 'Updating...', + 'Upload Audio Comment': 'Upload Audio Comment', + 'Upload Audio Message': 'Upload Audio Message', + 'Upload Media': 'Upload Media', + Upvote: 'Upvote', + 'User unmuted': 'User unmuted', + 'Version number (optional)': 'Version number (optional)', + Video: 'Video', + 'Video Note': 'Video Note', + 'Video file': 'Video file', + 'View Console Logs': 'View Console Logs', + 'View JSON': 'View JSON', + 'View cached items in this store.': 'View cached items in this store.', + 'View definition': 'View definition', + 'View details about cached data in IndexedDB stores. Click on a store to view its items.': + 'View details about cached data in IndexedDB stores. Click on a store to view its items.', + 'View on Alexandria': 'View on Alexandria', + 'View on DecentNewsroom': 'View on DecentNewsroom', + 'View on Wikistr': 'View on Wikistr', + 'View recent console logs for debugging': 'View recent console logs for debugging', + 'Voice Comment': 'Voice Comment', + 'Voice Note': 'Voice Note', + 'Voice note or audio file': 'Voice note or audio file', + Volume: 'Volume', + 'Volume number (optional)': 'Volume number (optional)', + 'Vote published': 'Vote published', + 'Vote removed': 'Vote removed', + 'Website where LLM was accessed (optional)': 'Website where LLM was accessed (optional)', + 'Wiki Article (AsciiDoc)': 'Wiki Article (AsciiDoc)', + 'Wiki Article (Markdown)': 'Wiki Article (Markdown)', + 'You can only delete your own notes': 'You can only delete your own notes', + 'You must be logged in to create a thread': 'You must be logged in to create a thread', + 'You need to add at least one media server in order to upload media files.': + 'You need to add at least one media server in order to upload media files.', + 'You need to login first': 'You need to login first', + 'Your account is blocked from posting to this relay.': + 'Your account is blocked from posting to this relay.', + Zap: 'Zap', + 'Zap failed': 'Zap failed', + created_at: 'created_at', + 'e tag of kind 1040 event (optional)': 'e tag of kind 1040 event (optional)', + 'e.g. meetup, conference': 'e.g. meetup, conference', + 'e.g., 123-145 (optional)': 'e.g., 123-145 (optional)', + 'e.g., GPT-4, Claude, etc. (required)': 'e.g., GPT-4, Claude, etc. (required)', + 'e.g., my-article-title': 'e.g., my-article-title', + entries: 'entries', + 'from Bunker': 'from Bunker', + 'from Extension': 'from Extension', + 'from NIP-05': 'from NIP-05', + general: 'general', + 'https://example.com (required)': 'https://example.com (required)', + 'https://example.com/image.jpg': 'https://example.com/image.jpg', + id: 'id', + items: 'items', + kind: 'kind', + 'kind:pubkey:hex format (required)': 'kind:pubkey:hex format (required)', + 'last updated': 'last updated', + matching: 'matching', + naddr: 'naddr', + nevent: 'nevent', + 'nevent1..., naddr1..., note1..., hex ID, or https://...': + 'nevent1..., naddr1..., note1..., hex ID, or https://...', + 'no notes found': 'no notes found', + of: 'of', + 'on note': 'on note', + optional: 'optional', + pubkey: 'pubkey', + 'sent a public message': 'sent a public message', + 'sent you a public message': 'sent you a public message', + 'sent you a public message (along with {{count}} others)': + 'sent you a public message (along with {{count}} others)', + sig: 'sig', + 'started a discussion in {{topic}}': 'started a discussion in {{topic}}', + tags: 'tags', + thread: 'thread', + threads: 'threads', + 'topic1, topic2, topic3': 'topic1, topic2, topic3', + '{{count}} relay(s) selected': '{{count}} relay(s) selected', + '🔞 NSFW 🔞': '🔞 NSFW 🔞' } } diff --git a/src/i18n/locales/zh.ts b/src/i18n/locales/zh.ts index a9bcf572..11facec8 100644 --- a/src/i18n/locales/zh.ts +++ b/src/i18n/locales/zh.ts @@ -5,8 +5,12 @@ export default { 'New Note': '发布新笔记', Post: '发布笔记', Home: '主页', + Feed: 'Feed', + 'Favorites Feed': 'Favorites Feed', + 'Pinned note': 'Pinned note', 'Relay settings': '服务器设置', Settings: '设置', + 'Account menu': 'Account menu', SidebarRelays: '服务器', Refresh: '刷新列表', Profile: '个人资料', @@ -30,6 +34,12 @@ export default { 'loading...': '加载中...', 'Loading...': '加载中...', 'no more notes': '到底了', + 'calendar entries': 'calendar entries', + 'Loading calendar events...': 'Loading calendar events...', + 'No calendar events found': 'No calendar events found', + 'Calendar events in the next {{count}} months': 'Calendar events in the next {{count}} months', + 'The nostr.band relay appears to be temporarily out of service. Please try again later.': + 'The nostr.band relay appears to be temporarily out of service. Please try again later.', 'reply to': '回复', reply: '回复', Reply: '回复', @@ -37,6 +47,9 @@ export default { 'Write something...': '写点什么...', Cancel: '取消', Mentions: '提及', + 'Search for event or address…': 'Search for event or address…', + 'Search notes…': 'Search notes…', + 'No notes found': 'No notes found', 'Failed to post': '发布失败', 'Post successful': '发布成功', 'Your post has been published': '您的笔记已发布', @@ -45,7 +58,22 @@ export default { Quote: '引用', 'Copy event ID': '复制事件 ID', 'Copy user ID': '复制用户 ID', + 'Send public message': 'Send public message', 'View raw event': '查看原始事件', + 'Edit this event': 'Edit this event', + 'Clone or fork this event': 'Clone or fork this event', + 'Event kind': 'Event kind', + 'Note content': 'Note content', + Publish: 'Publish', + 'Post published': 'Post published', + 'Edit content and tags, then publish a new signed event.': + 'Edit content and tags, then publish a new signed event.', + 'Log in to publish': 'Log in to publish', + 'Set when you publish': 'set when you publish', + 'id and sig are assigned when you publish': 'id and sig are assigned when you publish', + 'Published to some relays only': 'Published to some relays only', + 'Add field': 'Add field', + 'View full profile': 'View full profile', Like: '点赞', 'switch to light theme': '切换到浅色主题', 'switch to dark theme': '切换到深色主题', @@ -56,18 +84,143 @@ export default { "username's used relays": '{{username}} 使用的服务器', "username's muted": '{{username}} 屏蔽的用户', Login: '登录', + 'Please log in to view notifications.': 'Please log in to view notifications.', 'Follows you': '关注了你', 'Relay Settings': '服务器设置', + 'Relays and Storage Settings': 'Relays and Storage Settings', 'Relay set name': '服务器组名', 'Add a new relay set': '添加新的服务器组', Add: '添加', 'n relays': '{{n}} 个服务器', Rename: '重命名', + 'Copy share link': 'Copy share link', + 'Copy address': 'Copy address', + 'Copy payto URI': 'Copy payto URI', + 'Copied payto address': 'Copied payto address', + 'Copied to clipboard': 'Copied to clipboard', + 'Copied {{label}} address': 'Copied {{label}} address', + 'Lightning payment address – copy to pay via your wallet': + 'Lightning payment address – copy to pay via your wallet', + 'Payment address – copy to use in your wallet or app': + 'Payment address – copy to use in your wallet or app', + 'Click to open payment options': 'Click to open payment options', + 'Click to copy address': 'Click to copy address', + 'Open on website': 'Open on website', + 'Raw profile event': 'Raw profile event', + 'Full profile event': 'Full profile event', + 'Event (JSON)': 'Event (JSON)', + 'Save full profile': 'Save full profile', + 'Add tag': 'Add tag', + 'Remove tag': 'Remove tag', + 'Tag name': 'Tag name', + Value: 'Value', + 'Add value to tag': 'Add value to tag', + 'Remove value': 'Remove value', + 'No tags. Click "Add tag" to add one.': 'No tags. Click "Add tag" to add one.', + 'Profile updated': 'Profile updated', + 'Failed to publish profile': 'Failed to publish profile', + 'Invalid profile JSON': 'Invalid profile JSON', + 'Refresh cache': 'Refresh cache', + 'Force-refresh profile and payment info from relays': + 'Force-refresh profile and payment info from relays', + 'Profile and payment cache refreshed': 'Profile and payment cache refreshed', + 'Failed to refresh cache': 'Failed to refresh cache', + 'Raw payment info event': 'Raw payment info event', + 'Payment info': 'Payment info', + 'Edit payment info': 'Edit payment info', + 'Add payment info': 'Add payment info', + 'No payment info event yet. Click "Add payment info" to create one.': + 'No payment info event yet. Click "Add payment info" to create one.', + 'Content (JSON)': 'Content (JSON)', + Tags: 'Tags', + 'Tags (JSON array of arrays, e.g. [["payto","lightning","user@domain.com"]])': + 'Tags (JSON array of arrays, e.g. [["payto","lightning","user@domain.com"]])', + 'Payment info updated': 'Payment info updated', + 'Failed to publish payment info': 'Failed to publish payment info', + 'Invalid tags JSON': 'Invalid tags JSON', + 'Payment methods': 'Payment methods', + 'NIP-A3 payto tags: type (e.g. lightning) and authority (e.g. user@domain.com).': + 'NIP-A3 payto tags: type (e.g. lightning) and authority (e.g. user@domain.com).', + 'Type (e.g. lightning)': 'Type (e.g. lightning)', + 'Authority (e.g. user@domain.com)': 'Authority (e.g. user@domain.com)', + 'Add payment method': 'Add payment method', + Remove: 'Remove', + 'Additional content (JSON)': 'Additional content (JSON)', + 'Show full event JSON': 'Show full event JSON', + 'Tag list': 'Tag list', + 'Profile event tags (e.g. lud16, nip05, website). Saved with kind 0.': + 'Profile event tags (e.g. lud16, nip05, website). Saved with kind 0.', + 'Tag value': 'Tag value', + 'Saving…': 'Saving…', 'Share with Jumble': '通过Jumble分享', 'Share with Alexandria': '通过Alexandria分享', + 'Start video call': 'Start video call', + 'Copy call invite link': 'Copy call invite link', + 'Start call about this': 'Start call about this', + 'Send call invite': 'Send call invite', + 'Join the video call': 'Join the video call', + 'Schedule video call': 'Schedule video call', + "You're invited to a scheduled video call.": "You're invited to a scheduled video call.", + 'Create a calendar event and send an invite. The recipient will see the event with a join link.': + 'Create a calendar event and send an invite. The recipient will see the event with a join link.', + 'Schedule a video call': 'Schedule a video call', + 'Create a calendar event and send kind 24 invites to each listed invitee.': + 'Create a calendar event and send kind 24 invites to each listed invitee.', + Invitees: 'Invitees', + 'Paste nostr:npub1... or nostr:nprofile1... (one or more)': + 'Paste nostr:npub1... or nostr:nprofile1... (one or more)', + 'Schedule and send invites': 'Schedule and send invites', + 'Add at least one invitee (paste nostr:npub or nostr:nprofile links)': + 'Add at least one invitee (paste nostr:npub or nostr:nprofile links)', + 'Scheduled call created and {{count}} invite(s) sent': + 'Scheduled call created and {{count}} invite(s) sent', + 'Join video call': 'Join video call', + 'Scheduled video call': 'Scheduled video call', + 'Video call': 'Video call', + 'Schedule and send invite': 'Schedule and send invite', + 'Scheduling…': 'Scheduling…', + 'Please set a start time': 'Please set a start time', + 'End time must be after start time': 'End time must be after start time', + 'Failed to schedule call': 'Failed to schedule call', + 'Scheduled call created and invite sent': 'Scheduled call created and invite sent', + RSVP: 'RSVP', + 'RSVP: {{status}}': 'RSVP: {{status}}', + Accepted: 'Accepted', + Tentative: 'Tentative', + Declined: 'Declined', + 'You need to log in to RSVP': 'You need to log in to RSVP', + 'RSVP updated': 'RSVP updated', + 'Failed to update RSVP': 'Failed to update RSVP', + Organizer: 'Organizer', + Attendees: 'Attendees', + 'No response': 'No response', + 'Calendar Events': 'Calendar Events', + 'Calendar Event': 'Calendar Event', + 'Schedule in-person meeting': 'Schedule in-person meeting', + 'Create a calendar event and send an invite. No video link — for real-life meetups, conferences, etc.': + 'Create a calendar event and send an invite. No video link — for real-life meetups, conferences, etc.', + "You're invited to an in-person meeting.": "You're invited to an in-person meeting.", + 'Meeting created and invite sent': 'Meeting created and invite sent', + 'Failed to create meeting': 'Failed to create meeting', + 'Create and send invite': 'Create and send invite', + 'Creating…': 'Creating…', + 'In-person meeting': 'In-person meeting', + Location: 'Location', + 'Address, venue, or place': 'Address, venue, or place', + Description: 'Description', + 'Optional notes': 'Optional notes', + 'Create a calendar event for a real-life meetup and send kind 24 invites to each invitee.': + 'Create a calendar event for a real-life meetup and send kind 24 invites to each invitee.', + 'Meeting created and {{count}} invite(s) sent': 'Meeting created and {{count}} invite(s) sent', + 'Create and send invites': 'Create and send invites', + Title: 'Title', + Start: 'Start', + End: 'End', Delete: '删除', 'Relay already exists': '服务器已存在', 'invalid relay URL': '无效的服务器地址', + 'Relay URL…': 'wss://… or relay host', + 'Open relay': 'Open relay', 'Add a new relay': '添加新的服务器', back: '返回', 'Lost in the void': '迷失在虚空中', @@ -112,7 +265,19 @@ export default { 'Picture note requires images': '图片笔记需要有图片', Relays: '服务器', Image: '图片', - Normal: '普通', + 'Upload Image': 'Upload Image', + 'Insert emoji': 'Insert emoji', + 'Insert GIF': 'Insert GIF', + 'Search GIFs': 'Search GIFs', + 'Choose a GIF': 'Choose a GIF', + 'Search GifBuddy for more GIFs': 'Search GifBuddy for more GIFs', + 'Add your own GIFs': 'Add your own GIFs', + 'Description (optional, for search)': 'Description (optional, for search)', + 'e.g. happy birthday, thumbs up': 'e.g. happy birthday, thumbs up', + 'Uploading...': 'Uploading...', + 'No GIFs found. Try searching or add your own. GIFs come from Nostr kind 1063 (NIP-94) events on GIF relays.': + 'No GIFs found. Try searching or add your own. GIFs come from Nostr kind 1063 (NIP-94) events on GIF relays.', + '{{name}} is not a GIF file': '{{name}} is not a GIF file', 'R & W': '读写', Read: '只读', Write: '只写', @@ -123,7 +288,6 @@ export default { Pull: '拉取', 'Select all': '全选', 'Relay Sets': '服务器组', - Mailbox: '邮箱', 'Read & Write Relays': '读写服务器', 'read relays description': '读服务器用于寻找与您有关的事件。其他用户会将想要你看到的事件发布到您的读服务器。', @@ -143,7 +307,6 @@ export default { 'Copy private key': '复制私钥', 'Enter the password to decrypt your ncryptsec': '输入密码以解密您的 ncryptsec', Back: '返回', - 'password (optional): encrypt nsec': '密码 (可选): 加密 nsec', 'optional: encrypt nsec': '可选: 加密 nsec', password: '密码', 'Sign up': '注册', @@ -154,6 +317,9 @@ export default { Muted: '已屏蔽', Unmute: '取消屏蔽', 'Unmute user': '取消屏蔽用户', + Block: 'Block', + Unblock: 'Unblock', + blocked: 'blocked', 'Append n relays': '追加 {{n}} 个服务器', Append: '追加', 'Select relays to append': '选择要追加的服务器', @@ -178,6 +344,24 @@ export default { 'Explore more': '探索更多', 'Payment page': '付款页面', 'Supported NIPs': '支持的 NIP', + 'Relay liveliness (NIP-66)': 'Relay liveliness (NIP-66)', + 'Relay monitor (NIP-66)': 'Relay monitor (NIP-66)', + 'Auth required': 'Auth required', + 'Public (no auth)': 'Public (no auth)', + 'Payment required': 'Payment required', + 'No payment': 'No payment', + 'Writes required': 'Writes required', + 'Writes open': 'Writes open', + 'PoW required': 'PoW required', + 'No PoW': 'No PoW', + 'RTT open': 'RTT open', + 'RTT read': 'RTT read', + 'RTT write': 'RTT write', + 'Supported NIPs (from monitor)': 'Supported NIPs (from monitor)', + 'Last reported by monitor': 'Last reported by monitor', + Network: 'Network', + Type: 'Type', + Topics: 'Topics', 'Open in a': '在 {{a}} 中打开', 'Cannot handle event of kind k': '无法处理类型为 {{k}} 的事件', 'Sorry! The note cannot be found 😔': '抱歉!找不到该笔记 😔', @@ -208,9 +392,22 @@ export default { 'Seen on': '来自', 'Temporarily display this reply': '临时显示此回复', 'Note not found': '未找到该笔记', + 'The note was not found on your relays or default relays.': + 'The note was not found on your relays or default relays.', + "Try searching author's relays": "Try searching author's relays", + 'Searching external relays...': 'Searching external relays...', + "This will connect to the author's relays and relay hints": + "This will connect to the author's relays and relay hints", + 'Note could not be found anywhere': 'Note could not be found anywhere', + 'Try external relays': 'Try external relays', + 'Searching...': 'Searching...', + 'Show relays': 'Show relays', + 'No external relay hints available': 'No external relay hints available', 'no more replies': '没有更多回复了', 'Relay sets': '服务器组', 'Favorite Relays': '收藏的服务器', + 'Search for Relays': 'Search for Relays', + 'Using app default relays': 'Using app default relays', "Following's Favorites": '关注人的收藏', 'no more relays': '没有更多服务器了', 'Favorited by': '收藏自', @@ -226,10 +423,48 @@ export default { 'no bookmarks found': '暂无收藏', 'no more bookmarks': '到底了', Bookmarks: '收藏', + 'Follow Packs': 'Follow Packs', + 'Follow Pack': 'Follow Pack', + 'Please log in to follow': 'Please log in to follow', + 'Following All': 'Following All', + 'Followed {{count}} users': 'Followed {{count}} users', + 'All available members are already followed or muted': + 'All available members are already followed or muted', + 'You are already following all members of this pack': + 'You are already following all members of this pack', + 'Failed to follow pack': 'Failed to follow pack', + '{{count}} profiles': '{{count}} profiles', 'Show more': '显示更多', General: '常规', Autoplay: '自动播放', 'Enable video autoplay on this device': '在此设备上启用视频自动播放', + 'Add random relays to every publish': 'Random relays in publish list', + 'Add random relays to every publish description': + 'Adds {{n}} random public relays from the NIP-66 lively list (preferring monitors that reported a write RTT) to the publish relay list. When ON, they are selected by default; when OFF, they appear in the list but are unchecked so you can optionally include them.', + relayType_local: 'Local', + relayType_relay_list: 'Relay list', + relayType_client_default: 'Client default', + relayType_open_from: 'Current feed', + relayType_favorite: 'Favorite', + relayType_relay_set: 'Relay set', + relayType_contextual: 'Reply/PM', + relayType_randomly_selected: 'Random (optional)', + 'Session relays': 'Session relays', + 'Session relays tab description': + 'Relay logic for this session: working and striked preset relays, and scored random relays (used to prefer faster, proven relays when adding random relays to publish).', + 'Session relays preset working': 'Working preset relays', + 'Session relays preset working hint': + 'Preset relays (from app defaults) that have not reached 3 publish failures this session.', + 'Session relays preset striked': 'Striked preset relays', + 'Session relays preset striked hint': + 'Preset relays that have reached 3 publish failures this session and are skipped for the rest of the session.', + 'Session relays scored random': 'Scored random relays', + 'Session relays scored random hint': + 'Relays that have accepted at least one publish this session; used to prefer faster relays when picking random relays. Sorted by average latency.', + 'Session relays all striked': 'All striked relays (any source)', + successes: 'successes', + None: 'None', + 'Cache & offline storage': 'Cache & offline storage', 'Paste or drop media files to upload': '支持粘贴或拖放媒体文件进行上传', Preview: '预览', 'You are about to publish an event signed by [{{eventAuthorName}}]. You are currently logged in as [{{currentUsername}}]. Are you sure?': @@ -262,6 +497,7 @@ export default { 'Are you sure you want to reset your API key? This action cannot be undone.': '您确定要重置您的 API key?此操作无法撤销。', Warning: '警告', + 'Errors & warnings': 'Errors & warnings', 'Your current API key will become invalid immediately, and any applications using it will stop working until you update them with the new key.': '您当前的 API key 将立即失效,任何使用它的应用程序将停止工作,直到您用新 key 更新它们。', 'Service address': '服务地址', @@ -292,6 +528,9 @@ export default { Article: '文章', Unfavorite: '取消收藏', 'Recommended relays': '推荐服务器', + 'Show recommended relays panel': 'Show recommended relays panel', + 'Display the right-side panel with recommended relays on desktop': + 'Display the right-side panel with recommended relays on desktop', 'Blossom server URLs': 'Blossom 服务器地址', 'You need to add at least one blossom server in order to upload media files.': '您需要添加至少一个 Blossom 服务器才能上传媒体文件。', @@ -318,7 +557,31 @@ export default { 'Refresh results': '刷新结果', Poll: '投票', Media: '媒体', + Interests: 'Interests', + Calendar: 'Calendar', + 'No subscribed interests yet.': + 'No subscribed interests yet. Add topics in settings to see them here.', + 'No bookmarked notes with id tags yet.': + 'No bookmarked notes with id tags yet. Only classic (e-tag) bookmarks load in this feed.', + 'No follows or relays to load yet.': 'No follows or relays to load yet.', + 'Nothing to load for this feed.': 'Nothing to load for this feed.', 'Republish to ...': '重新发布到 ...', + 'All available relays': 'All available relays', + 'All active relays (monitoring list)': 'All active relays (monitoring list)', + 'Successfully republish to all available relays': + 'Successfully republish to all available relays', + 'Failed to republish to all available relays: {{error}}': + 'Failed to republish to all available relays: {{error}}', + 'Successfully republish to all active relays': 'Successfully republish to all active relays', + 'Failed to republish to all active relays: {{error}}': + 'Failed to republish to all active relays: {{error}}', + 'No active relays in monitoring list': 'No active relays in monitoring list', + 'No relay accepted the event': 'No relay accepted the event', + 'No relays available': 'No relays available', + 'No write relays configured': 'No write relays configured', + 'Relay did not accept the event': 'Relay did not accept the event', + 'Only {{count}} relay(s) accepted the event; at least 5 required for "all active relays".': + 'Only {{count}} relay(s) accepted the event; at least 5 required for "all active relays".', 'Successfully republish to your write relays': '成功重新发布到您的写服务器', 'Failed to republish to your write relays: {{error}}': '重新发布到您的写服务器失败: {{error}}', 'Successfully republish to relay set: {{name}}': '成功重新发布到服务器组: {{name}}', @@ -334,6 +597,7 @@ export default { 'No zaps yet': '暂无打闪', 'No more boosts': '没有更多助推了', 'No boosts yet': '暂无助推', + 'n more boosts': '{{count}} more boosts', Boosts: '助推', FollowListNotFoundConfirmation: '未找到关注列表。你想创建一个新的吗?如果你之前已经关注了用户,请不要确认,因为此操作会导致你丢失之前的关注列表。', @@ -355,8 +619,13 @@ export default { 'Maybe Later': '稍后处理', "Don't remind me again": '不再提醒', Posts: '帖子', + 'Posts (OPs)': 'Posts (OPs)', + 'Kind 1 replies': 'Kind 1 replies', + Comments: 'Comments', + 'Replies & comments': 'Replies & comments', Articles: '文章', Highlights: '高亮', + 'A note from': 'A note from', Polls: '投票', 'Voice Posts': '语音帖子', 'Photo Posts': '图片帖子', @@ -381,6 +650,13 @@ export default { 'boosted your note': '助推了您的笔记', 'zapped your note': '打闪了您的笔记', 'zapped you': '给您打闪', + zapped: 'zapped', + 'Invalid zap receipt': 'Invalid zap receipt', + 'Zapped note': 'Zapped note', + 'Zapped profile': 'Zapped profile', + 'Zap reply threshold': 'Zap reply threshold', + 'Zaps above this amount will appear as replies in threads': + 'Zaps above this amount will appear as replies in threads', 'Mark as read': '标记为已读', Report: '举报', 'Successfully report': '举报成功', @@ -395,7 +671,6 @@ export default { 'See extra info for each notification': '查看每条通知的详细信息', 'See more notifications at a glance': '一目了然地查看更多通知', Detailed: '详细', - Compact: '紧凑', 'Submit Relay': '提交服务器', Homepage: '主页', 'Proof of Work (difficulty {{minPow}})': '工作量证明 (难度 {{minPow}})', @@ -421,12 +696,713 @@ export default { '{{count}} relays': '{{count}} 个服务器', 'Republishing...': '正在重新发布...', 'Trending Notes': '热门笔记', + 'Trending on Your Favorite Relays': 'Trending on Your Favorite Relays', + 'Trending on the Default Relays': 'Trending on the Default Relays', + 'Latest from your follows': 'Latest from your follows', + 'Latest from our recommended follows': 'Latest from our recommended follows', + 'Loading follow list…': 'Loading follow list…', + 'Could not load recommended follows': 'Could not load recommended follows', + 'Your follow list is empty': 'Your follow list is empty', + 'Loading recent posts from follows…': 'Loading recent posts from follows…', + 'Loading more…': 'Loading more…', + 'No recent posts from this user in the current fetch': + 'No recent posts from this user in the current fetch', + 'Loading trending notes from your relays...': 'Loading trending notes from your relays...', + Sort: 'Sort', + newest: 'newest', + oldest: 'oldest', + 'most popular': 'most popular', + 'least popular': 'least popular', 'Connected to': '已连接到', 'Disconnect Wallet': '断开钱包连接', 'Are you absolutely sure?': '您确定吗?', 'You will not be able to send zaps to others.': '您将无法向他人发送打闪。', Disconnect: '断开连接', 'Set up your wallet to send and receive sats!': '设置你的钱包以发送和接收 sats!', - 'Set up': '去设置' + 'Set up': '去设置', + 'nested events': 'nested events', + 'Loading RSS feeds...': 'Loading RSS feeds...', + 'No RSS feed items available': 'No RSS feed items available', + 'Show or hide the RSS page and sidebar entry': 'Show or hide the RSS page and sidebar entry', + 'Refreshing feeds...': 'Refreshing feeds...', + 'All feeds': 'All feeds', + 'All time': 'All time', + 'Last hour': 'Last hour', + 'Last day': 'Last day', + 'Last week': 'Last week', + 'Last month': 'Last month', + 'No items match your filters': 'No items match your filters', + 'Search...': 'Search...', + '{{count}} feeds': '{{count}} feeds', + 'Toggle filters': 'Toggle filters', + 'Showing {{filtered}} of {{total}} items': 'Showing {{filtered}} of {{total}} items', + Full: 'Full', + Compact: '紧凑', + Expand: 'Expand', + 'help.title': 'Help', + 'help.tabShortcuts': 'Keyboard shortcuts', + 'help.tabOverview': 'App overview', + 'shortcuts.title': 'Keyboard shortcuts', + 'shortcuts.intro': + 'Shortcuts for this app and common browsing. Modifier combos are Shift+Alt+key (Option+Shift+key on macOS); either modifier order works when typing.', + 'shortcuts.sectionApp': 'This app', + 'shortcuts.sectionSearch': 'Search bar', + 'shortcuts.sectionStandard': 'Standard', + 'shortcuts.openHelp': 'Show this help', + 'shortcuts.or': 'or', + 'shortcuts.then': 'then', + 'shortcuts.focusPrimary': + 'Focus main column scroll (desktop; then arrow keys, Page Up/Down, Home/End)', + 'shortcuts.focusSecondary': + 'Focus side panel scroll when it is open (desktop; same keys to scroll)', + 'shortcuts.newNote': 'New note / post (after login if needed)', + 'shortcuts.searchSuggest': 'Move through suggestions', + 'shortcuts.searchDismiss': 'Close search dropdown', + 'shortcuts.tabNavigate': 'Move focus to the next or previous control', + 'shortcuts.activate': 'Activate buttons and many controls', + 'shortcuts.closeOverlays': 'Close dialogs, menus, and the search dropdown', + 'shortcuts.scrollWhenFocused': 'Scroll the focused scrollable area', + 'shortcuts.browserBack': 'Browser back (history)', + 'No spells yet. Create one with the button above.': + 'No spells yet. Create one with the button above.', + 'Loading spells from your relays…': 'Loading spells from your relays…', + 'Could not run this spell. Check that it has a valid REQ/COUNT command, or add write relays in settings.': + 'Could not run this spell. Check that it has a valid REQ/COUNT command, or add write relays in settings.', + 'Select a spell…': 'Select a spell…', + 'Spells from follows': 'From people you follow ({{count}})', + 'Other spells': 'Other spells ({{count}})', + 'Select a spell to view its feed.': 'Select a spell to view its feed.', + 'Add another row': 'Add another row', + 'Remove this row': 'Remove this row', + 'One kind number per row (e.g. 1 for notes).': 'One kind number per row (e.g. 1 for notes).', + 'One author per row: $me, $contacts, or hex pubkey / npub.': + 'One author per row: $me, $contacts, or hex pubkey / npub.', + 'One hex event id per row.': 'One hex event id per row.', + 'One wss:// URL per row. Leave empty to use your write relays.': + 'One wss:// URL per row. Leave empty to use your write relays.', + 'One topic per row.': 'One topic per row.', + topic: 'topic', + 'Spell form fields': 'Spell form fields', + 'Counting matching events…': 'Counting matching events…', + 'Edit spell': 'Edit spell', + 'Clone spell': 'Clone spell', + 'Spell cloned': 'Spell cloned', + 'Clone spell intro': + 'This spell is preloaded from another author’s definition. Change anything you like, then save to publish a new spell signed with your account.', + 'Spell updated': 'Spell updated', + 'Relay URL': 'Relay', + Count: 'Count', + 'Edit spell relays': 'Edit relays', + 'COUNT spell relay errors hint': + 'One or more relays failed or returned an error. You can change the relay list in the spell and save again.', + 'COUNT spell total distinct explanation': + 'Distinct matching event IDs across all relays that responded successfully (duplicates across relays removed). Each relay only returns up to the filter limit.', + 'Leave empty to use your write relays.': 'Leave empty to use your write relays.', + 'COUNT spell result explanation': + 'Distinct events returned for this filter (merged from your spell relays and default write relays, duplicates removed). Relays only return up to the filter limit.', + 'COUNT spell may be capped by limit': + 'This count may equal your spell limit — there could be more matching events on the network.', + 'Spell count failed. Check relays or try again.': + 'Could not complete the count. Check relays or try again.', + 'REQ returns a feed; COUNT returns a number.': + 'REQ: scrollable feed (choose live Feed or one-shot Fetch below). COUNT: a single number, no feed.', + listImportManualLabel: 'Pre-fill from event', + listImportFromEventHint: + 'Supported tags are merged into the form (e, p, t, relay, r, a where possible). Non-empty content is skipped; encrypted private items are not read. You may see notices for unmapped tags.', + listImportManualPlaceholder: '64-char hex, nevent1…, or naddr1…', + listImportLoadManual: 'Apply', + listImportContentSkipped: + 'This event has non-empty content (may include encrypted private items). Only public tags were merged.', + listImportUnsupportedEmoji: + 'This list includes emoji tags (NIP-30); those are not added to the spell filter.', + listImportUnsupportedTag: + 'Tags of type “{{tag}}” ({{count}}) are not mapped to spell filters yet.', + listImportBadATag: 'Could not parse address tag: {{preview}}…', + listImportATagNotFound: 'Could not resolve address tag: {{preview}}…', + listImportATagFailed: 'Failed to resolve address tag: {{preview}}…', + listImportEventNotFound: 'No event found for that reference.', + 'REQ tag filters': 'REQ tag filters', + spellFormTagFiltersLabel: 'Tag filters on matching events', + spellCreateIntro: + 'Spells are saved relay filters (NIP-A7). The “Spell query” section is the real definition; the dashed box at the bottom is only for names, descriptions, and catalog labels. Use $me for your pubkey and $contacts for your follow list when executing.', + spellFormSectionQueryTitle: 'Spell query', + spellFormSectionQueryHint: + 'This block is the actual spell definition: it becomes the Nostr REQ/COUNT filter (kinds, authors, time range, tag filters on matching events, relays, etc.).', + spellFormSectionMetadataTitle: 'Listing & labels (optional)', + spellFormSectionMetadataBadge: 'Not part of the query', + spellFormSectionMetadataHint: + 'Name, description, and topic labels are only for display and spell pickers. They are not used when the spell fetches events.', + spellFormCatalogTopicsLabel: 'Topic labels on this spell (t tags)', + spellTopicsMetadataHint: + 'One topic per row. To filter which notes you see, use “REQ tag filters” in the spell query above (letter “t”).', + spellTagFiltersHint: + 'Optional filters on subscribed events (NIP-01 single-letter tags). Example: letter “t”, values “bitcoin”.', + spellTagFiltersEmpty: 'No tag filters yet. Add rows below or apply an event reference above.', + 'Tag filter letter': 'Tag letter', + 'Filter value': 'Value', + 'Add tag filter': 'Add tag filter', + spellPickerSectionYours: 'Your spells', + 'Failed to remove spell from local storage': 'Failed to remove spell from local storage', + Spells: 'Spells', + 'doublePane.secondaryEmpty': 'Open a note, profile, or settings item to show it here.', + 'doublePane.secondaryEmptyHint': 'Your feed and primary pages stay on the left.', + '(empty)': '(empty)', + '12-hour (AM/PM)': '12-hour (AM/PM)', + '24-hour': '24-hour', + 'A new version is available': 'A new version is available', + 'A short description of the article content': 'A short description of the article content', + AM: 'AM', + 'Access via': 'Access via', + 'Accessed On': 'Accessed On', + 'Accessed on': 'Accessed on', + 'Add RSS feed URLs to subscribe to. If no feeds are configured, the default feed will be used.': + 'Add RSS feed URLs to subscribe to. If no feeds are configured, the default feed will be used.', + 'Add a relay to block': 'Add a relay to block', + 'Add at least one invitee': 'Add at least one invitee', + 'Add client identifier': 'Add client identifier', + 'Add expiration tags by default': 'Add expiration tags by default', + 'Add quiet tags by default': 'Add quiet tags by default', + 'Add recipients using nostr: mentions (e.g., nostr:npub1...) or the recipient selector above': + 'Add recipients using nostr: mentions (e.g., nostr:npub1...) or the recipient selector above', + 'Add the source (where this text is from)': 'Add the source (where this text is from)', + 'Add to favorites': 'Add to favorites', + 'Add {{count}} Selected': 'Add {{count}} Selected', + 'Added at': 'Added at', + 'Added {{count}} relay(s)': 'Added {{count}} relay(s)', + 'Adding...': 'Adding...', + 'Adding…': 'Adding…', + 'Advanced Options': 'Advanced Options', + 'All Topics': 'All Topics', + 'All favorite relays': 'All favorite relays', + 'All feeds from OPML file are already added': 'All feeds from OPML file are already added', + 'All items deleted successfully': 'All items deleted successfully', + 'Already blocked': 'Already blocked', + 'Already saved': 'Already saved', + 'Application Recommendations': 'Application Recommendations', + 'Are you sure you want to clear all cached data? This will delete all stored events and settings from your browser.': + 'Are you sure you want to clear all cached data? This will delete all stored events and settings from your browser.', + 'Are you sure you want to delete all items from this store?': + 'Are you sure you want to delete all items from this store?', + 'Are you sure you want to unmute this user? This will restore the follow button.': + 'Are you sure you want to unmute this user? This will restore the follow button.', + "Are you sure you want to unregister the service worker? This will clear this app's service worker caches and you will need to reload the page.": + "Are you sure you want to unregister the service worker? This will clear this app's service worker caches and you will need to reload the page.", + 'Article exported as AsciiDoc': 'Article exported as AsciiDoc', + 'Article exported as Markdown': 'Article exported as Markdown', + 'Article title (optional)': 'Article title (optional)', + Audio: 'Audio', + Author: 'Author', + 'Author is required for reading groups': 'Author is required for reading groups', + 'Author name (optional)': 'Author name (optional)', + Authors: 'Authors', + 'Block Relay': 'Block Relay', + 'Blocked Relays': 'Blocked Relays', + 'Blocking...': 'Blocking...', + Blossom: 'Blossom', + Book: 'Book', + 'Brief description of the event': 'Brief description of the event', + 'Brief summary (optional)': 'Brief summary (optional)', + 'Brief summary of the article (optional)': 'Brief summary of the article (optional)', + 'Browse Cache': 'Browse Cache', + 'C-Tag': 'C-Tag', + 'Cache Relays': 'Cache Relays', + 'Cache cleared successfully': 'Cache cleared successfully', + 'Cache refreshed successfully': 'Cache refreshed successfully', + 'Cache relays are used to store and retrieve events locally. These relays are merged with your inbox and outbox relays.': + 'Cache relays are used to store and retrieve events locally. These relays are merged with your inbox and outbox relays.', + 'Cache relays must be local network URLs only (e.g., ws://localhost:4869 or ws://127.0.0.1:4869)': + 'Cache relays must be local network URLs only (e.g., ws://localhost:4869 or ws://127.0.0.1:4869)', + 'Cache relays saved': 'Cache relays saved', + Cancelled: 'Cancelled', + Chapter: 'Chapter', + 'Chapter Title': 'Chapter Title', + 'Chapter title (optional)': 'Chapter title (optional)', + Citation: 'Citation', + 'Citation title (optional)': 'Citation title (optional)', + 'Clean up duplicate replaceable events? This will keep only the newest version of each event.': + 'Clean up duplicate replaceable events? This will keep only the newest version of each event.', + 'Cleaned up {{deleted}} duplicate entries, kept {{kept}}': + 'Cleaned up {{deleted}} duplicate entries, kept {{kept}}', + 'Cleaned up {{deleted}} duplicate entries, kept {{kept}} (total items after cleanup: {{total}})': + 'Cleaned up {{deleted}} duplicate entries, kept {{kept}} (total items after cleanup: {{total}})', + 'Cleanup Duplicates': 'Cleanup Duplicates', + Clear: 'Clear', + 'Clear Cache': 'Clear Cache', + 'Clear Service Worker': 'Clear Service Worker', + 'Clear cached data stored in your browser, including IndexedDB events, localStorage settings, and service worker caches.': + 'Clear cached data stored in your browser, including IndexedDB events, localStorage settings, and service worker caches.', + 'Click update to get the latest features and improvements': + 'Click update to get the latest features and improvements', + Close: 'Close', + 'Comma or space-separated topics (will be added as t-tags)': + 'Comma or space-separated topics (will be added as t-tags)', + Command: 'Command', + Configure: 'Configure', + 'Connect Wallet': 'Connect Wallet', + 'Console Logs': 'Console Logs', + 'Console logs cleared': 'Console logs cleared', + 'Content is required': 'Content is required', + 'Content must be 5000 characters or less': 'Content must be 5000 characters or less', + Controversial: 'Controversial', + 'Copied!': 'Copied!', + 'Copy to clipboard': 'Copy to clipboard', + 'Create Article': 'Create Article', + 'Create Citation': 'Create Citation', + 'Create Highlight': 'Create Highlight', + 'Create New Thread': 'Create New Thread', + 'Create Poll': 'Create Poll', + 'Create Thread': 'Create Thread', + 'Create a Spell': 'Create a Spell', + 'Creating...': 'Creating...', + 'D-Tag': 'D-Tag', + 'D-Tag is required for articles': 'D-Tag is required for articles', + DOI: 'DOI', + 'Date-based (all-day)': 'Date-based (all-day)', + 'Default expiration (months)': 'Default expiration (months)', + 'Default quiet period (days)': 'Default quiet period (days)', + 'Delete All': 'Delete All', + 'Delete item': 'Delete item', + 'Deleted {{count}} event(s)': 'Deleted {{count}} event(s)', + 'Deletion request sent': 'Deletion request sent', + 'Description (content)': 'Description (content)', + 'Digital Object Identifier (optional)': 'Digital Object Identifier (optional)', + 'Disable word wrap': 'Disable word wrap', + 'Discovered Relays': 'Discovered Relays', + 'Discovering relays...': 'Discovering relays...', + Discussion: 'Discussion', + Discussions: 'Discussions', + Downvote: 'Downvote', + 'Edited by': 'Edited by', + Editor: 'Editor', + 'Editor name (optional)': 'Editor name (optional)', + 'Enable word wrap': 'Enable word wrap', + 'End date': 'End date', + 'End date must be after start date': 'End date must be after start date', + 'Enter a Nostr event identifier (nevent, naddr, note, or hex ID) OR a web URL (https://). Not both.': + 'Enter a Nostr event identifier (nevent, naddr, note, or hex ID) OR a web URL (https://). Not both.', + 'Enter a descriptive title for your thread': 'Enter a descriptive title for your thread', + 'Enter the author name': 'Enter the author name', + 'Enter the book title': 'Enter the book title', + 'Enter the specific text you want to highlight in the main content area above': + 'Enter the specific text you want to highlight in the main content area above', + 'Event IDs (ids)': 'Event IDs (ids)', + 'Event appears to be invalid or corrupted': 'Event appears to be invalid or corrupted', + 'Event has no value data': 'Event has no value data', + 'Event is missing required fields: {{fields}}': 'Event is missing required fields: {{fields}}', + 'Event type': 'Event type', + 'Expiration Tags': 'Expiration Tags', + 'Export OPML': 'Export OPML', + 'Export as AsciiDoc': 'Export as AsciiDoc', + 'Export as Markdown': 'Export as Markdown', + 'External Citation': 'External Citation', + 'External Citation Settings': 'External Citation Settings', + 'Failed to add relay. Please try again.': 'Failed to add relay. Please try again.', + 'Failed to add relays': 'Failed to add relays', + 'Failed to block relay. Please try again.': 'Failed to block relay. Please try again.', + 'Failed to cleanup duplicates': 'Failed to cleanup duplicates', + 'Failed to clear cache': 'Failed to clear cache', + 'Failed to copy': 'Failed to copy', + 'Failed to create relay set. Please try again.': + 'Failed to create relay set. Please try again.', + 'Failed to create thread': 'Failed to create thread', + 'Failed to create thread. Please try a different relay.': + 'Failed to create thread. Please try a different relay.', + 'Failed to delete all items': 'Failed to delete all items', + 'Failed to delete item': 'Failed to delete item', + 'Failed to discover relays': 'Failed to discover relays', + 'Failed to export OPML file': 'Failed to export OPML file', + 'Failed to export article': 'Failed to export article', + 'Failed to import OPML file: {{error}}': 'Failed to import OPML file: {{error}}', + 'Failed to load RSS feeds': 'Failed to load RSS feeds', + 'Failed to load store items': 'Failed to load store items', + 'Failed to mute user privately': 'Failed to mute user privately', + 'Failed to mute user publicly': 'Failed to mute user publicly', + 'Failed to pin note': 'Failed to pin note', + 'Failed to publish post': 'Failed to publish post', + 'Failed to publish reply': 'Failed to publish reply', + 'Failed to publish thread': 'Failed to publish thread', + 'Failed to publish to some relays. Please try again or use different relays.': + 'Failed to publish to some relays. Please try again or use different relays.', + 'Failed to save RSS feeds': 'Failed to save RSS feeds', + 'Failed to save cache relays': 'Failed to save cache relays', + 'Failed to save relay list': 'Failed to save relay list', + 'Failed to unregister service worker: ': 'Failed to unregister service worker: ', + 'Failed to unsubscribe from topic': 'Failed to unsubscribe from topic', + Favorite: 'Favorite', + Fetch: 'Fetch', + 'Fetch once, then stop.': 'Fetch once, then stop.', + 'Filter by': 'Filter by', + 'Flat View': 'Flat View', + 'Font size': 'Font size', + 'Full Quote/Context': 'Full Quote/Context', + 'Full-text search query': 'Full-text search query', + Geohash: 'Geohash', + 'Geohash (optional)': 'Geohash (optional)', + 'Global quiet mode': 'Global quiet mode', + 'Group discussions by topic': 'Group discussions by topic', + 'Grouped View': 'Grouped View', + Groups: 'Groups', + 'Handler {{index}}': 'Handler {{index}}', + 'Hardcopy Citation': 'Hardcopy Citation', + 'Hardcopy Citation Settings': 'Hardcopy Citation Settings', + Hide: 'Hide', + 'Hide interactions on all posts': 'Hide interactions on all posts', + 'Hide interactions on posts with quiet tags': 'Hide interactions on posts with quiet tags', + 'High PoW': 'High PoW', + 'Higher values make your thread harder to mine but more unique.': + 'Higher values make your thread harder to mine but more unique.', + Highlight: 'Highlight', + 'Highlight Settings': 'Highlight Settings', + 'How to Create a Highlight (NIP-84)': 'How to Create a Highlight (NIP-84)', + 'Human-readable spell name': 'Human-readable spell name', + 'Image URL': 'Image URL', + 'Import OPML': 'Import OPML', + 'Imported {{count}} feed(s) from OPML file': 'Imported {{count}} feed(s) from OPML file', + 'In-Browser Cache': 'In-Browser Cache', + Insert: 'Insert', + 'Insert URL into your post and publish to Nostr GIF library (NIP-94).': + 'Insert URL into your post and publish to Nostr GIF library (NIP-94).', + 'Insert event or address': 'Insert event or address', + 'Insert mention': 'Insert mention', + 'Internal Citation': 'Internal Citation', + 'Internal Citation Settings': 'Internal Citation Settings', + 'Invalid Event': 'Invalid Event', + 'Invalid Lightning Address': 'Invalid Lightning Address', + 'Invalid Lightning Address. Please enter a valid Lightning Address or LNURL.': + 'Invalid Lightning Address. Please enter a valid Lightning Address or LNURL.', + 'Invalid URL': 'Invalid URL', + 'Invalid content JSON': 'Invalid content JSON', + 'Invalid relay URL': 'Invalid relay URL', + 'Invalid source. Please enter a note ID, nevent, naddr, hex ID, or URL.': + 'Invalid source. Please enter a note ID, nevent, naddr, hex ID, or URL.', + 'Item deleted successfully': 'Item deleted successfully', + JSON: 'JSON', + 'Join link': 'Join link', + 'Journal/Publication name (optional)': 'Journal/Publication name (optional)', + Json: 'JSON', + Kinds: 'Kinds', + 'Language Model': 'Language Model', + Large: 'Large', + 'Leave empty for HiveTalk, or paste Zoom / Teams / other link': + 'Leave empty for HiveTalk, or paste Zoom / Teams / other link', + 'Lightning payment failed': 'Lightning payment failed', + Limit: 'Limit', + 'Live feed; keeps updating.': 'Live feed; keeps updating.', + 'Loading more...': 'Loading more...', + 'Loading relays...': 'Loading relays...', + 'Location (optional)': 'Location (optional)', + 'Log in to run this spell (it uses $me or $contacts).': + 'Log in to run this spell (it uses $me or $contacts).', + 'Login failed': 'Login failed', + 'Login to configure RSS feeds': 'Login to configure RSS feeds', + 'Long-form Article': 'Long-form Article', + 'Mailbox relays saved': 'Mailbox relays saved', + 'Mark as NSFW': 'Mark as NSFW', + 'Maximum {{max}} invitees': 'Maximum {{max}} invitees', + 'Maximum {{max}} invitees allowed': 'Maximum {{max}} invitees allowed', + Medium: 'Medium', + Mode: 'Mode', + 'Most Zapped': 'Most Zapped', + 'Move to top': 'Move to top', + 'Multiple choice': 'Multiple choice', + 'Mute failed': 'Mute failed', + NSFW: 'NSFW', + Name: 'Name', + 'Name of the language model used': 'Name of the language model used', + 'New External Citation': 'New External Citation', + 'New Hardcopy Citation': 'New Hardcopy Citation', + 'New Highlight': 'New Highlight', + 'New Internal Citation': 'New Internal Citation', + 'New Long-form Article': 'New Long-form Article', + 'New Poll': 'New Poll', + 'New Prompt Citation': 'New Prompt Citation', + 'New Public Message': 'New Public Message', + 'New Wiki Article': 'New Wiki Article', + 'New Wiki Article (Markdown)': 'New Wiki Article (Markdown)', + Newest: 'Newest', + 'No JSON available': 'No JSON available', + 'No RSS feeds found in OPML file': 'No RSS feeds found in OPML file', + 'No cached data found.': 'No cached data found.', + 'No console logs captured yet': 'No console logs captured yet', + 'No events found': 'No events found', + 'No feeds configured. Default feed will be used.': + 'No feeds configured. Default feed will be used.', + 'No feeds to export': 'No feeds to export', + 'No groups available. Join some groups first.': 'No groups available. Join some groups first.', + 'No items in this store.': 'No items in this store.', + 'No items match your search.': 'No items match your search.', + 'No logs match the current filters': 'No logs match the current filters', + 'No posts found': 'No posts found', + 'No posts match your search': 'No posts match your search', + 'No relays available. Please configure relays in settings.': + 'No relays available. Please configure relays in settings.', + 'No service workers or caches found for this app': + 'No service workers or caches found for this app', + 'No users found': 'No users found', + 'No valid RSS feed URLs found in OPML file': 'No valid RSS feed URLs found in OPML file', + 'Note pinned': 'Note pinned', + 'Note unpinned': 'Note unpinned', + Oldest: 'Oldest', + 'Open Timestamp': 'Open Timestamp', + 'Opens in a new tab. Copy a GIF URL there, then paste below. If this picker closed, click “Insert GIF” again to paste.': + 'Opens in a new tab. Copy a GIF URL there, then paste below. If this picker closed, click “Insert GIF” again to paste.', + Option: 'Option', + Optional: 'Optional', + 'Optional image for the event': 'Optional image for the event', + 'Optionally, add the full quote/context to show your highlight within it': + 'Optionally, add the full quote/context to show your highlight within it', + PM: 'PM', + 'Page Range': 'Page Range', + Pages: 'Pages', + 'Paste URL of a GIF': 'Paste URL of a GIF', + 'Paste the entire original passage that contains your highlight': + 'Paste the entire original passage that contains your highlight', + Photo: 'Photo', + 'Picture Note': 'Picture Note', + 'Pin note': 'Pin note', + 'Plain text description of the query': 'Plain text description of the query', + 'Please login to view bookmarks': 'Please login to view bookmarks', + 'Please select a group': 'Please select a group', + 'Please select at least one relay': 'Please select at least one relay', + 'Please set a start date': 'Please set a start date', + 'Poll with no options': 'Poll with no options', + 'Post published to some relays': 'Post published to some relays', + 'Posts will automatically include expiration tags': + 'Posts will automatically include expiration tags', + 'Posts will automatically include quiet tags': 'Posts will automatically include quiet tags', + 'Posts will be quiet for this many days': 'Posts will be quiet for this many days', + 'Posts will expire after this many months': 'Posts will expire after this many months', + 'Processing...': 'Processing...', + 'Profile event not available': 'Profile event not available', + 'Prompt Citation': 'Prompt Citation', + 'Prompt Citation Settings': 'Prompt Citation Settings', + 'Prompt Conversation Script': 'Prompt Conversation Script', + 'Proof of Work': 'Proof of Work', + 'Publish to Relays': 'Publish to Relays', + 'Published By': 'Published By', + 'Published In': 'Published In', + 'Published On': 'Published On', + 'Published in': 'Published in', + 'Published on': 'Published on', + 'Publisher name (optional)': 'Publisher name (optional)', + 'Quiet Tags': 'Quiet Tags', + 'RSS Feed': 'RSS Feed', + 'RSS Feed Settings': 'RSS Feed Settings', + 'RSS Feeds': 'RSS Feeds', + 'RSS feeds exported to OPML file': 'RSS feeds exported to OPML file', + 'RSS feeds saved': 'RSS feeds saved', + 'Rate limited. Please wait before trying again.': + 'Rate limited. Please wait before trying again.', + 'Reaction published': 'Reaction published', + 'Reaction removed': 'Reaction removed', + 'Read full article': 'Read full article', + 'Reading group entry': 'Reading group entry', + 'Readings Options': 'Readings Options', + Recipients: 'Recipients', + 'Recipients detected from your message:': 'Recipients detected from your message:', + 'Recommended Relays': 'Recommended Relays', + 'Recommended applications for handling events of kind {{kind}}': + 'Recommended applications for handling events of kind {{kind}}', + 'Reference to the cited Nostr event in kind:pubkey:hex format': + 'Reference to the cited Nostr event in kind:pubkey:hex format', + 'Refresh Cache': 'Refresh Cache', + 'Refreshing posts...': 'Refreshing posts...', + 'Relative: 7d, 24h, 1w, 1mo, 1y. Or Unix timestamp.': + 'Relative: 7d, 24h, 1w, 1mo, 1y. Or Unix timestamp.', + Relay: 'Relay', + 'Relay Hint': 'Relay Hint', + 'Relay URL (optional)': 'Relay URL (optional)', + 'Relay blocked successfully': 'Relay blocked successfully', + 'Relay requires authentication for write access. Please try a different relay or contact the relay operator.': + 'Relay requires authentication for write access. Please try a different relay or contact the relay operator.', + 'Relay set options': 'Relay set options', + 'Remove from favorites': 'Remove from favorites', + Rendered: 'Rendered', + 'Reply published': 'Reply published', + 'Reply published to some relays': 'Reply published to some relays', + 'Reply to Public Message': 'Reply to Public Message', + 'Republish to all active relays': 'Republish to all active relays', + 'Republish to all available relays': 'Republish to all available relays', + 'Required: start (or start date), invitees. Optional: title, end, location, summary, topics, image.': + 'Required: start (or start date), invitees. Optional: title, end, location, summary, topics, image.', + 'Required: start time or start date. Optional: title, end, location, summary, topics, image.': + 'Required: start time or start date. Optional: title, end, location, summary, topics, image.', + 'Required: start time, invitees. Join link defaults to HiveTalk. Optional: title, end, summary, topics, image.': + 'Required: start time, invitees. Join link defaults to HiveTalk. Optional: title, end, summary, topics, image.', + 'Required: start time. Join link defaults to HiveTalk. Optional: title, end, summary, topics, image.': + 'Required: start time. Join link defaults to HiveTalk. Optional: title, end, summary, topics, image.', + 'Respect quiet tags': 'Respect quiet tags', + 'Search (NIP-50)': 'Search (NIP-50)', + 'Search by name or npub…': 'Search by name or npub…', + 'Search calendar, publications, wiki…': 'Search calendar, publications, wiki…', + 'Search for user…': 'Search for user…', + 'Search items...': 'Search items...', + 'Search logs...': 'Search logs...', + 'Search notes, threads, long-form…': 'Search notes, threads, long-form…', + 'Search on GifBuddy': 'Search on GifBuddy', + 'Search posts...': 'Search posts...', + 'Search threads by title, content, tags, npub, author...': + 'Search threads by title, content, tags, npub, author...', + 'Searching all available relays...': 'Searching all available relays...', + 'Searching…': 'Searching…', + 'See reference': 'See reference', + 'Select Group': 'Select Group', + 'Select Media Type': 'Select Media Type', + 'Select group...': 'Select group...', + 'Select relays': 'Select relays', + 'Select the group where you want to create this discussion.': + 'Select the group where you want to create this discussion.', + 'Select topic...': 'Select topic...', + 'Selected text': 'Selected text', + 'Send Public Message': 'Send Public Message', + 'Send a Lightning payment to this user': 'Send a Lightning payment to this user', + 'Service worker caches cleared. Please reload the page.': + 'Service worker caches cleared. Please reload the page.', + 'Service worker unregistered and caches cleared. Please reload the page.': + 'Service worker unregistered and caches cleared. Please reload the page.', + 'Service worker unregistered. Please reload the page.': + 'Service worker unregistered. Please reload the page.', + 'Share your thoughts, ask questions, or start a discussion...': + 'Share your thoughts, ask questions, or start a discussion...', + 'Short Video Note': 'Short Video Note', + 'Show RSS Feed': 'Show RSS Feed', + 'Show all discussions in a single list': 'Show all discussions in a single list', + 'Show less': 'Show less', + Since: 'Since', + Small: 'Small', + 'Some relays have temporarily disabled writes.': + 'Some relays have temporarily disabled writes.', + Source: 'Source', + 'Spell definition': 'Spell definition', + 'Spell published': 'Spell published', + 'Start date': 'Start date', + 'Start typing to see a preview...': 'Start typing to see a preview...', + 'Subject (Book Title)': 'Subject (Book Title)', + 'Subject (book title) is required for reading groups': + 'Subject (book title) is required for reading groups', + 'Subject / Topics': 'Subject / Topics', + Subscribe: 'Subscribe', + Subscribed: 'Subscribed', + 'Subscribed to topic': 'Subscribed to topic', + 'Subscribed to topic (local)': 'Subscribed to topic (local)', + 'Subscribing...': 'Subscribing...', + Summary: 'Summary', + 'Supported Event Types': 'Supported Event Types', + 'Take a note': 'Take a note', + 'The full prompt conversation (optional)': 'The full prompt conversation (optional)', + 'The main editor above should contain only the text you want to highlight. This field should contain the full quote or paragraph for context.': + 'The main editor above should contain only the text you want to highlight. This field should contain the full quote or paragraph for context.', + 'These relays were found from your NIP-05 identifier and signer. You can add them to your relay list.': + 'These relays were found from your NIP-05 identifier and signer. You can add them to your relay list.', + 'This file could be either audio or video. Please select the correct type:': + 'This file could be either audio or video. Please select the correct type:', + 'This store does not contain replaceable events': + 'This store does not contain replaceable events', + 'This will add additional tags for author and subject to help organize reading group discussions.': + 'This will add additional tags for author and subject to help organize reading group discussions.', + 'Thread Content': 'Thread Content', + 'Thread Title': 'Thread Title', + 'Thread creation timed out. Please try again.': 'Thread creation timed out. Please try again.', + 'Thread published': 'Thread published', + 'Threads are organized by topics. Choose a topic that best fits your discussion.': + 'Threads are organized by topics. Choose a topic that best fits your discussion.', + 'Time-based': 'Time-based', + 'Title is required': 'Title is required', + 'Title must be 100 characters or less': 'Title must be 100 characters or less', + 'To translate notes and other content, use your browser’s built-in translation. For example: right-click the page and choose “Translate to…”, or use the translate icon in the address bar.': + 'To translate notes and other content, use your browser’s built-in translation. For example: right-click the page and choose “Translate to…”, or use the translate icon in the address bar.', + Top: 'Top', + Topic: 'Topic', + URL: 'URL', + 'URL of the article cover image (optional)': 'URL of the article cover image (optional)', + 'Unique identifier for this article (required)': + 'Unique identifier for this article (required)', + 'Unmute failed': 'Unmute failed', + 'Unpin note': 'Unpin note', + Unsubscribe: 'Unsubscribe', + 'Unsubscribed from topic': 'Unsubscribed from topic', + 'Unsubscribing...': 'Unsubscribing...', + Until: 'Until', + Untitled: 'Untitled', + Update: 'Update', + 'Updating...': 'Updating...', + 'Upload Audio Comment': 'Upload Audio Comment', + 'Upload Audio Message': 'Upload Audio Message', + 'Upload Media': 'Upload Media', + Upvote: 'Upvote', + 'User unmuted': 'User unmuted', + 'Version number (optional)': 'Version number (optional)', + Video: 'Video', + 'Video Note': 'Video Note', + 'Video file': 'Video file', + 'View Console Logs': 'View Console Logs', + 'View JSON': 'View JSON', + 'View cached items in this store.': 'View cached items in this store.', + 'View definition': 'View definition', + 'View details about cached data in IndexedDB stores. Click on a store to view its items.': + 'View details about cached data in IndexedDB stores. Click on a store to view its items.', + 'View on Alexandria': 'View on Alexandria', + 'View on DecentNewsroom': 'View on DecentNewsroom', + 'View on Wikistr': 'View on Wikistr', + 'View recent console logs for debugging': 'View recent console logs for debugging', + 'Voice Comment': 'Voice Comment', + 'Voice Note': 'Voice Note', + 'Voice note or audio file': 'Voice note or audio file', + Volume: 'Volume', + 'Volume number (optional)': 'Volume number (optional)', + 'Vote published': 'Vote published', + 'Vote removed': 'Vote removed', + 'Website where LLM was accessed (optional)': 'Website where LLM was accessed (optional)', + 'Wiki Article (AsciiDoc)': 'Wiki Article (AsciiDoc)', + 'Wiki Article (Markdown)': 'Wiki Article (Markdown)', + 'You can only delete your own notes': 'You can only delete your own notes', + 'You must be logged in to create a thread': 'You must be logged in to create a thread', + 'You need to add at least one media server in order to upload media files.': + 'You need to add at least one media server in order to upload media files.', + 'You need to login first': 'You need to login first', + 'Your account is blocked from posting to this relay.': + 'Your account is blocked from posting to this relay.', + Zap: 'Zap', + 'Zap failed': 'Zap failed', + created_at: 'created_at', + 'e tag of kind 1040 event (optional)': 'e tag of kind 1040 event (optional)', + 'e.g. meetup, conference': 'e.g. meetup, conference', + 'e.g., 123-145 (optional)': 'e.g., 123-145 (optional)', + 'e.g., GPT-4, Claude, etc. (required)': 'e.g., GPT-4, Claude, etc. (required)', + 'e.g., my-article-title': 'e.g., my-article-title', + entries: 'entries', + 'from Bunker': 'from Bunker', + 'from Extension': 'from Extension', + 'from NIP-05': 'from NIP-05', + general: 'general', + 'https://example.com (required)': 'https://example.com (required)', + 'https://example.com/image.jpg': 'https://example.com/image.jpg', + id: 'id', + items: 'items', + kind: 'kind', + 'kind:pubkey:hex format (required)': 'kind:pubkey:hex format (required)', + 'last updated': 'last updated', + matching: 'matching', + naddr: 'naddr', + nevent: 'nevent', + 'nevent1..., naddr1..., note1..., hex ID, or https://...': + 'nevent1..., naddr1..., note1..., hex ID, or https://...', + 'no notes found': 'no notes found', + of: 'of', + 'on note': 'on note', + optional: 'optional', + pubkey: 'pubkey', + 'sent a public message': 'sent a public message', + 'sent you a public message': 'sent you a public message', + 'sent you a public message (along with {{count}} others)': + 'sent you a public message (along with {{count}} others)', + sig: 'sig', + 'started a discussion in {{topic}}': 'started a discussion in {{topic}}', + tags: 'tags', + thread: 'thread', + threads: 'threads', + 'topic1, topic2, topic3': 'topic1, topic2, topic3', + '{{count}} relay(s) selected': '{{count}} relay(s) selected', + '🔞 NSFW 🔞': '🔞 NSFW 🔞' } }