From 4aeda76cdfcd9b9987f5debefa2a1a0d1194d3ba Mon Sep 17 00:00:00 2001 From: David Ralph Date: Wed, 4 Feb 2026 14:00:16 +0000 Subject: [PATCH] fix(translations): add missing strings --- .claude/settings.local.json | 8 +++ CLAUDE.md | 59 +++++++++++++---- scripts/findUnusedTranslations.cjs | 36 +++++------ scripts/updateTranslationPercentages.cjs | 2 +- src/components/Elements/AddModal/AddModal.jsx | 24 +++---- .../MainModal/components/ModalTopBar.jsx | 10 +-- .../Elements/ShareModal/ShareModal.jsx | 23 +++---- .../components/PhotoInformation.jsx | 2 +- .../options/sections/SourceSection.jsx | 4 +- .../components/Elements/Lightbox/Lightbox.jsx | 2 +- .../misc/components/AddWidgetModal.jsx | 4 +- .../misc/components/SortableWidgetItem.jsx | 22 ++++--- src/features/misc/sections/Language.jsx | 2 +- src/features/navbar/components/Notes.jsx | 2 +- .../options/components/SortableItem.jsx | 10 +-- src/i18n/locales/ar.json | 63 +++++++++++++++++-- src/i18n/locales/arz.json | 63 +++++++++++++++++-- src/i18n/locales/az.json | 63 +++++++++++++++++-- src/i18n/locales/azb.json | 63 +++++++++++++++++-- src/i18n/locales/bn.json | 63 +++++++++++++++++-- src/i18n/locales/de_DE.json | 63 +++++++++++++++++-- src/i18n/locales/el.json | 63 +++++++++++++++++-- src/i18n/locales/en_GB.json | 63 +++++++++++++++++-- src/i18n/locales/en_US.json | 63 +++++++++++++++++-- src/i18n/locales/es.json | 63 +++++++++++++++++-- src/i18n/locales/es_419.json | 63 +++++++++++++++++-- src/i18n/locales/et.json | 63 +++++++++++++++++-- src/i18n/locales/fa.json | 63 +++++++++++++++++-- src/i18n/locales/fr.json | 63 +++++++++++++++++-- src/i18n/locales/hu.json | 63 +++++++++++++++++-- src/i18n/locales/id_ID.json | 63 +++++++++++++++++-- src/i18n/locales/ja.json | 63 +++++++++++++++++-- src/i18n/locales/lt.json | 63 +++++++++++++++++-- src/i18n/locales/lv.json | 63 +++++++++++++++++-- src/i18n/locales/nl.json | 63 +++++++++++++++++-- src/i18n/locales/no.json | 63 +++++++++++++++++-- src/i18n/locales/peo.json | 63 +++++++++++++++++-- src/i18n/locales/pt.json | 63 +++++++++++++++++-- src/i18n/locales/pt_BR.json | 63 +++++++++++++++++-- src/i18n/locales/ru.json | 63 +++++++++++++++++-- src/i18n/locales/sl.json | 63 +++++++++++++++++-- src/i18n/locales/sv.json | 63 +++++++++++++++++-- src/i18n/locales/ta.json | 63 +++++++++++++++++-- src/i18n/locales/tr_TR.json | 63 +++++++++++++++++-- src/i18n/locales/uk.json | 63 +++++++++++++++++-- src/i18n/locales/vi.json | 63 +++++++++++++++++-- src/i18n/locales/zh_CN.json | 63 +++++++++++++++++-- src/i18n/locales/zh_Hant.json | 63 +++++++++++++++++-- vite.config.mjs | 16 ++--- 49 files changed, 2084 insertions(+), 221 deletions(-) create mode 100644 .claude/settings.local.json diff --git a/.claude/settings.local.json b/.claude/settings.local.json new file mode 100644 index 00000000..f8f0a98c --- /dev/null +++ b/.claude/settings.local.json @@ -0,0 +1,8 @@ +{ + "permissions": { + "allow": [ + "Bash(perl -i -pe:*)", + "Bash(bun run:*)" + ] + } +} diff --git a/CLAUDE.md b/CLAUDE.md index d4308116..bcddf350 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -94,7 +94,25 @@ bun run pretty # Format code with Prettier ### 5. Commenting **Do not add comments to the codebase.** Keep code clean and self-explanatory. Use descriptive variable/function names instead of comments. -### 6. Naming Conventions +### 6. Emojis +**Do not use emojis in code strings.** Avoid text emojis in console logs, placeholders, or any code strings. + +**Exception:** User-facing toast notifications may include emojis for visual feedback. + +```javascript +// Bad - emojis in console logs +console.log('🔨 Building Chrome extension...'); +console.log('✅ Build complete!'); + +// Good - no emojis +console.log('Building Chrome extension...'); +console.log('Build complete!'); + +// Exception - toast notifications are allowed +toast(`🏆 ${getMessage('achievement_unlocked', { name })}`); +``` + +### 7. Naming Conventions **Keep variable and function names concise.** Avoid verbose redundant prefixes like "is" in state variables. ```javascript @@ -113,7 +131,7 @@ const [isRefreshing, setIsRefreshing] = useState(false); - Use "is" prefix for boolean functions/methods that return a value: `isValid()`, `isAuthenticated()` - Use "has" prefix for boolean properties: `hasPermission`, `hasError` -### 7. Package Manager +### 8. Package Manager **Always use Bun** (not npm or yarn): ```bash bun install # Install dependencies @@ -121,7 +139,7 @@ bun run dev # Start dev server bun run build # Production build ``` -### 8. Build Targets +### 9. Build Targets The project builds for **multiple browsers**: - Chrome/Edge (Chromium) - Firefox @@ -138,13 +156,13 @@ Build outputs: - `build/firefox/` - Firefox extension - `safari/Mue Extension/Resources/` - Safari extension -### 9. State Management +### 10. State Management - **Persistent settings** - Use `localStorage` via custom hooks - **Shared state** - Use React Context (see `src/contexts/`) - **Component state** - Use `useState`, `useReducer` for local state - **Custom hooks** - Create hooks for reusable stateful logic -### 10. Styling Conventions +### 11. Styling Conventions SCSS files are organized in `src/scss/`: - `_variables.scss` - Color palette, breakpoints, sizes - `_mixins.scss` - Reusable style mixins @@ -152,7 +170,7 @@ SCSS files are organized in `src/scss/`: **Use existing variables and mixins** for consistency. -### 11. Development Server +### 12. Development Server ```bash bun run dev # Local development with HMR at localhost bun run dev:host # Expose on network for testing on other devices @@ -160,7 +178,7 @@ bun run dev:host # Expose on network for testing on other devices Hot Module Replacement (HMR) is enabled for fast development. -### 12. Path Aliases +### 13. Path Aliases Use configured path aliases instead of relative imports: ```javascript // Good @@ -174,13 +192,13 @@ import Button from '../../../components/Button'; Available aliases: `@/`, `components/`, `contexts/`, `hooks/`, `assets/`, `config/`, `features/`, `lib/`, `scss/`, `translations/`, `utils/` -### 13. Error Handling +### 14. Error Handling - Sentry is integrated for error tracking - Use `ErrorBoundary` component for React error boundaries - Handle async errors gracefully with try/catch - Show user-friendly error messages via `react-toastify` -### 14. Browser Extension Best Practices +### 15. Browser Extension Best Practices - Use Manifest V3 APIs (not deprecated V2 APIs) - Test extension loading/unloading - Handle permissions properly @@ -188,14 +206,29 @@ Available aliases: `@/`, `components/`, `contexts/`, `hooks/`, `assets/`, `confi - Store data in `localStorage` or `IndexedDB`, not sync storage - Ensure cross-browser compatibility (check MDN for API support) -### 15. Internationalization (i18n) -- Use `@eartharoid/i18n` for translations +### 16. Internationalization (i18n) +**All user-visible strings MUST be integrated with i18n.** Never hardcode user-facing text. + +```javascript +// Bad - hardcoded strings + +toast('Settings saved successfully!'); +placeholder="Enter your name" + +// Good - using i18n + +toast(getMessage('settings.saved_successfully')); +placeholder={getMessage('user.name_placeholder')} +``` + +- Use `@eartharoid/i18n` for all translations - Access translations via the i18n context -- Add new keys to `en_GB.json` first +- Add new keys to `en_GB.json` first, then run `bun run translations` - Test with multiple locales to ensure proper rendering - Support RTL languages where applicable +- Console logs and developer-facing messages do not need i18n -### 16. Performance +### 17. Performance - Lazy load components where appropriate - Optimize images (use modern formats like WebP) - Minimize bundle size (check Vite build output) diff --git a/scripts/findUnusedTranslations.cjs b/scripts/findUnusedTranslations.cjs index 28ef59b8..2129c868 100644 --- a/scripts/findUnusedTranslations.cjs +++ b/scripts/findUnusedTranslations.cjs @@ -107,7 +107,7 @@ function isKeyUsed(key, files, fileContentsCache) { function main() { - console.log('🔍 Finding unused translation keys...\n'); + console.log('Finding unused translation keys...\n'); let translationKeys = []; @@ -115,9 +115,9 @@ function main() { const localeContent = fs.readFileSync(LOCALE_FILE, 'utf-8'); const localeData = JSON.parse(localeContent); translationKeys = flattenKeys(localeData); - console.log(`📝 Found ${translationKeys.length} translation keys in en_GB.json`); + console.log(`Found ${translationKeys.length} translation keys in en_GB.json`); } catch (error) { - console.error(`❌ Error reading locale file: ${error.message}`); + console.error(`Error reading locale file: ${error.message}`); process.exit(1); } @@ -127,24 +127,24 @@ function main() { const achievementsData = JSON.parse(achievementsContent); const achievementKeys = flattenKeys(achievementsData, 'achievements'); translationKeys.push(...achievementKeys); - console.log(`📝 Found ${achievementKeys.length} achievement keys in achievements/en_GB.json`); + console.log(`Found ${achievementKeys.length} achievement keys in achievements/en_GB.json`); } } catch (error) { - console.warn(`⚠️ Warning: Could not read achievements file: ${error.message}`); + console.warn(`Warning: Could not read achievements file: ${error.message}`); } - console.log(`\n📊 Total keys to check: ${translationKeys.length}`); + console.log(`\nTotal keys to check: ${translationKeys.length}`); - console.log('📂 Scanning source files...'); + console.log('Scanning source files...'); const files = getAllFiles(SEARCH_DIR); - console.log(`📄 Found ${files.length} files to search\n`); + console.log(`Found ${files.length} files to search\n`); const fileContentsCache = new Map(); const unusedKeys = []; const usedKeys = []; - console.log('🔎 Searching for key usage (including template literals)...'); + console.log('Searching for key usage (including template literals)...'); let processed = 0; const totalKeys = translationKeys.length; @@ -170,15 +170,15 @@ function main() { console.log(`\r Progress: ${totalKeys}/${totalKeys} (100%) - ${totalTime}s total \n`); console.log('\n' + '='.repeat(70)); - console.log('📋 RESULTS'); + console.log('RESULTS'); console.log('='.repeat(70) + '\n'); - console.log(`✅ Used keys: ${usedKeys.length}`); - console.log(`❌ Unused keys: ${unusedKeys.length}`); - console.log(`📊 Usage rate: ${((usedKeys.length / totalKeys) * 100).toFixed(2)}%\n`); + console.log(`Used keys: ${usedKeys.length}`); + console.log(`Unused keys: ${unusedKeys.length}`); + console.log(`Usage rate: ${((usedKeys.length / totalKeys) * 100).toFixed(2)}%\n`); if (unusedKeys.length > 0) { - console.log('🗑️ Unused translation keys:\n'); + console.log('Unused translation keys:\n'); const grouped = {}; unusedKeys.forEach(key => { @@ -208,16 +208,16 @@ function main() { ].join('\n'); fs.writeFileSync(outputFile, outputContent, 'utf-8'); - console.log(`\n💾 Full list saved to: ${path.relative(process.cwd(), outputFile)}`); + console.log(`\nFull list saved to: ${path.relative(process.cwd(), outputFile)}`); } else { - console.log('🎉 No unused translation keys found!'); + console.log('No unused translation keys found!'); } console.log('\n' + '='.repeat(70) + '\n'); if (unusedKeys.length > 0) { - console.log('💡 Tip: You can safely remove these keys from your translation files to reduce bundle size.'); - console.log('⚠️ Note: Some keys might be used dynamically - review before removing!'); + console.log('Tip: You can safely remove these keys from your translation files to reduce bundle size.'); + console.log('Note: Some keys might be used dynamically - review before removing!'); } } diff --git a/scripts/updateTranslationPercentages.cjs b/scripts/updateTranslationPercentages.cjs index 9820936f..7e4f33e9 100644 --- a/scripts/updateTranslationPercentages.cjs +++ b/scripts/updateTranslationPercentages.cjs @@ -68,7 +68,7 @@ async function updateTranslationPercentages() { fs.writeFileSync(outputPath, JSON.stringify(percentages, null, 2)); fs.appendFileSync(outputPath, '\n'); - console.log(`✓ Translation percentages updated successfully!`); + console.log(`Translation percentages updated successfully!`); console.log(` Total languages: ${Object.keys(percentages).length}`); console.log(` Output: ${outputPath}`); diff --git a/src/components/Elements/AddModal/AddModal.jsx b/src/components/Elements/AddModal/AddModal.jsx index 01f70f62..d506d7a5 100644 --- a/src/components/Elements/AddModal/AddModal.jsx +++ b/src/components/Elements/AddModal/AddModal.jsx @@ -121,7 +121,7 @@ function AddModal({ urlError, iconError, addLink, closeModal, edit, editData, ed {suggestedName && !name && ( - Suggested: {suggestedName} + {variables.getMessage('widgets.quicklinks.suggested', { name: suggestedName })} )} @@ -130,7 +130,7 @@ function AddModal({ urlError, iconError, addLink, closeModal, edit, editData, ed name="quicklink_modal_name" noSetting={true} onChange={(value) => setName(value)} - placeholder={suggestedName || 'Enter link name (optional)'} + placeholder={suggestedName || variables.getMessage('widgets.quicklinks.name_placeholder')} />
@@ -149,23 +149,23 @@ function AddModal({ urlError, iconError, addLink, closeModal, edit, editData, ed } setUrl(finalValue); }} - placeholder="example.com" + placeholder={variables.getMessage('widgets.quicklinks.url_placeholder')} />
setIconType(value)} items={[ - { value: 'auto', text: 'Auto-detect Icon' }, - { value: 'custom_url', text: 'Custom Icon URL' }, - { value: 'custom_upload', text: 'Upload Icon' }, - { value: 'emoji', text: 'Emoji' }, - { value: 'letter', text: 'Letter Avatar' }, + { value: 'auto', text: variables.getMessage('widgets.quicklinks.icon_type_auto') }, + { value: 'custom_url', text: variables.getMessage('widgets.quicklinks.icon_type_custom_url') }, + { value: 'custom_upload', text: variables.getMessage('widgets.quicklinks.icon_type_upload') }, + { value: 'emoji', text: variables.getMessage('widgets.quicklinks.icon_type_emoji') }, + { value: 'letter', text: variables.getMessage('widgets.quicklinks.icon_type_letter') }, ]} />
@@ -177,7 +177,7 @@ function AddModal({ urlError, iconError, addLink, closeModal, edit, editData, ed name="quicklink_modal_icon_url" noSetting={true} onChange={(value) => setIcon(value)} - placeholder="https://example.com/icon.png" + placeholder={variables.getMessage('widgets.quicklinks.icon_url_placeholder')} /> )} @@ -192,7 +192,7 @@ function AddModal({ urlError, iconError, addLink, closeModal, edit, editData, ed {iconPreview && ( Preview )} @@ -210,7 +210,7 @@ function AddModal({ urlError, iconError, addLink, closeModal, edit, editData, ed name="quicklink_modal_emoji" noSetting={true} onChange={(value) => setIcon(value)} - placeholder="🚀" + placeholder="" /> )} diff --git a/src/components/Elements/MainModal/components/ModalTopBar.jsx b/src/components/Elements/MainModal/components/ModalTopBar.jsx index b652d60c..0799cd0c 100644 --- a/src/components/Elements/MainModal/components/ModalTopBar.jsx +++ b/src/components/Elements/MainModal/components/ModalTopBar.jsx @@ -199,22 +199,22 @@ function ModalTopBar({
- + - + @@ -241,7 +241,7 @@ function ModalTopBar({ }} role="button" tabIndex={0} - aria-label={`Navigate to ${item.label}`} + aria-label={t('common.navigation.navigate_to', { item: item.label })} > {item.label} diff --git a/src/components/Elements/ShareModal/ShareModal.jsx b/src/components/Elements/ShareModal/ShareModal.jsx index 2491e82b..94f270ce 100644 --- a/src/components/Elements/ShareModal/ShareModal.jsx +++ b/src/components/Elements/ShareModal/ShareModal.jsx @@ -15,17 +15,17 @@ function ShareModal({ modalClose, data }) { if (data.startsWith('https://cdn.')) { data = { url: data, - name: 'this image', + name: variables.getMessage('modals.share.item_type.image'), }; } else if (data.startsWith('"')) { data = { url: data, - name: 'this quote', + name: variables.getMessage('modals.share.item_type.quote'), }; } else { data = { url: data, - name: 'this marketplace item', + name: variables.getMessage('modals.share.item_type.marketplace_item'), }; } @@ -53,13 +53,13 @@ function ShareModal({ modalClose, data }) { onClick={() => window .open( - `https://x.com/intent/tweet?text=Check out ${data.name} on @getmue: ${data.url}`, + `https://x.com/intent/tweet?text=${variables.getMessage('modals.share.twitter_message', { name: data.name })}: ${data.url}`, '_blank', ) .focus() } icon={} - tooltipTitle="X (Twitter)" + tooltipTitle={variables.getMessage('modals.share.social.twitter')} type="icon" />
diff --git a/src/features/background/components/PhotoInformation.jsx b/src/features/background/components/PhotoInformation.jsx index 5cab43f0..96e2721c 100644 --- a/src/features/background/components/PhotoInformation.jsx +++ b/src/features/background/components/PhotoInformation.jsx @@ -134,7 +134,7 @@ function PhotoInformation({ info, url, api }) { target="_blank" rel="noopener noreferrer" > - location + {t('common.alt_text.location')} ); }; diff --git a/src/features/background/options/sections/SourceSection.jsx b/src/features/background/options/sections/SourceSection.jsx index 2ba748d6..18ee8c5a 100644 --- a/src/features/background/options/sections/SourceSection.jsx +++ b/src/features/background/options/sections/SourceSection.jsx @@ -51,10 +51,10 @@ const SourceSection = ({ title={variables.getMessage( 'modals.main.settings.sections.background.installed_packs_title', )} - subtitle={`${installedPhotoPacks.length} ${installedPhotoPacks.length === 1 ? 'pack' : 'packs'} • ${totalPhotoCount} ${totalPhotoCount === 1 ? 'photo' : 'photos'}`} + subtitle={`${installedPhotoPacks.length} ${installedPhotoPacks.length === 1 ? variables.getMessage('modals.main.settings.sections.background.source.pack_count.singular') : variables.getMessage('modals.main.settings.sections.background.source.pack_count.plural')} • ${totalPhotoCount} ${totalPhotoCount === 1 ? variables.getMessage('modals.main.settings.sections.background.source.photo_count.singular') : variables.getMessage('modals.main.settings.sections.background.source.photo_count.plural')}`} /> -
@@ -46,10 +52,10 @@ export const SortableWidgetItem = ({ value, startEditWidget, deleteWidget }) => e.stopPropagation(); startEditWidget(value); }} - title="Edit" + title={t('common.actions.edit')} > - Edit + {t('common.actions.edit')}
diff --git a/src/features/misc/sections/Language.jsx b/src/features/misc/sections/Language.jsx index 85fe5bd8..f6568b05 100644 --- a/src/features/misc/sections/Language.jsx +++ b/src/features/misc/sections/Language.jsx @@ -91,7 +91,7 @@ const LanguageOptions = () => { target="_blank" rel="noopener noreferrer" > - Add translation + {t('common.add_translation')} diff --git a/src/features/navbar/components/Notes.jsx b/src/features/navbar/components/Notes.jsx index db08a688..abb13122 100644 --- a/src/features/navbar/components/Notes.jsx +++ b/src/features/navbar/components/Notes.jsx @@ -64,7 +64,7 @@ const Notes = ({ notesRef, floatRef, position, xPosition, yPosition }) => { } variables.stats.postEvent('feature', 'Notes download'); - saveFile(notes, 'mue-notes.txt', 'text/plain'); + saveFile(notes, t('widgets.navbar.notes.export_filename'), 'text/plain'); }; return ( diff --git a/src/features/quicklinks/options/components/SortableItem.jsx b/src/features/quicklinks/options/components/SortableItem.jsx index 9e3581a0..615cee79 100644 --- a/src/features/quicklinks/options/components/SortableItem.jsx +++ b/src/features/quicklinks/options/components/SortableItem.jsx @@ -1,10 +1,12 @@ import { MdEdit, MdDelete } from 'react-icons/md'; import { useSortable } from '@dnd-kit/sortable'; import { CSS } from '@dnd-kit/utilities'; +import { useT } from 'contexts/TranslationContext'; import { DragHandle } from './DragHandle'; import { SmartIcon } from 'components/Elements/SmartIcon'; export const SortableItem = ({ value, enabled, startEditLink, deleteLink }) => { + const t = useT(); const { attributes, listeners, setNodeRef, transform, transition, isDragging } = useSortable({ id: value.key, disabled: !enabled, @@ -43,12 +45,12 @@ export const SortableItem = ({ value, enabled, startEditLink, deleteLink }) => { e.stopPropagation(); startEditLink(value); }} - title="Edit" + title={t('common.actions.edit')} disabled={!enabled} aria-disabled={!enabled} > - Edit + {t('common.actions.edit')} diff --git a/src/i18n/locales/ar.json b/src/i18n/locales/ar.json index a00db4e3..2c794e48 100644 --- a/src/i18n/locales/ar.json +++ b/src/i18n/locales/ar.json @@ -39,7 +39,17 @@ "icon": "الأيقونة (اختياري)", "add": "إضافة", "name_error": "يجب إدخال الاسم", - "url_error": "يجب إدخال الرابط" + "url_error": "يجب إدخال الرابط", + "suggested": "Suggested: {name}", + "name_placeholder": "Enter link name (optional)", + "url_placeholder": "example.com", + "icon_url_placeholder": "https://example.com/icon.png", + "icon_type_label": "Icon Type", + "icon_type_auto": "Auto-detect Icon", + "icon_type_custom_url": "Custom Icon URL", + "icon_type_upload": "Upload Icon", + "icon_type_emoji": "Emoji", + "icon_type_letter": "Letter Avatar" }, "date": { "week": "الأسبوع" @@ -63,7 +73,8 @@ }, "notes": { "title": "الملاحظات", - "placeholder": "اكتب هنا" + "placeholder": "اكتب هنا", + "export_filename": "mue-notes.txt" }, "todo": { "title": "المهام", @@ -316,7 +327,16 @@ "photo_pack_settings": { "title": "{name} Settings", "refresh_photos": "Refresh Photos" - } + }, + "pack_count": { + "singular": "pack", + "plural": "packs" + }, + "photo_count": { + "singular": "photo", + "plural": "photos" + }, + "get_more": "Get more" }, "search": { "title": "البحث", @@ -726,9 +746,44 @@ } }, "share": { - "copy_link": "نسخ الرابط" + "copy_link": "نسخ الرابط", + "item_type": { + "image": "this image", + "quote": "this quote", + "marketplace_item": "this marketplace item" + }, + "social": { + "twitter": "X (Twitter)", + "facebook": "Facebook", + "email": "Email", + "wechat": "WeChat", + "qq": "Tencent QQ" + }, + "twitter_message": "Check out {name} on @getmue", + "email_subject": "Check out this on Mue!", + "email_body": "{name} on Mue: {url}" } }, + "common": { + "navigation": { + "back": "Back", + "forward": "Forward", + "navigate_back": "Navigate back", + "navigate_forward": "Navigate forward", + "navigate_to": "Navigate to {item}" + }, + "actions": { + "edit": "Edit", + "remove": "Remove" + }, + "alt_text": { + "preview": "Preview", + "location": "Location", + "screenshot": "Screenshot" + }, + "add_translation": "Add translation", + "above_widgets": "Above widgets" + }, "toasts": { "quote": "تم نسخ الاقتباس", "notes": "تم نسخ الملاحظات", diff --git a/src/i18n/locales/arz.json b/src/i18n/locales/arz.json index f99f2819..bc317c87 100644 --- a/src/i18n/locales/arz.json +++ b/src/i18n/locales/arz.json @@ -39,7 +39,17 @@ "icon": "Icon (optional)", "add": "Add", "name_error": "Must provide name", - "url_error": "Must provide URL" + "url_error": "Must provide URL", + "suggested": "Suggested: {name}", + "name_placeholder": "Enter link name (optional)", + "url_placeholder": "example.com", + "icon_url_placeholder": "https://example.com/icon.png", + "icon_type_label": "Icon Type", + "icon_type_auto": "Auto-detect Icon", + "icon_type_custom_url": "Custom Icon URL", + "icon_type_upload": "Upload Icon", + "icon_type_emoji": "Emoji", + "icon_type_letter": "Letter Avatar" }, "date": { "week": "Week" @@ -63,7 +73,8 @@ }, "notes": { "title": "Notes", - "placeholder": "Type here" + "placeholder": "Type here", + "export_filename": "mue-notes.txt" }, "todo": { "title": "Todo", @@ -316,7 +327,16 @@ "photo_pack_settings": { "title": "{name} Settings", "refresh_photos": "Refresh Photos" - } + }, + "pack_count": { + "singular": "pack", + "plural": "packs" + }, + "photo_count": { + "singular": "photo", + "plural": "photos" + }, + "get_more": "Get more" }, "search": { "title": "Search", @@ -726,9 +746,44 @@ } }, "share": { - "copy_link": "Copy link" + "copy_link": "Copy link", + "item_type": { + "image": "this image", + "quote": "this quote", + "marketplace_item": "this marketplace item" + }, + "social": { + "twitter": "X (Twitter)", + "facebook": "Facebook", + "email": "Email", + "wechat": "WeChat", + "qq": "Tencent QQ" + }, + "twitter_message": "Check out {name} on @getmue", + "email_subject": "Check out this on Mue!", + "email_body": "{name} on Mue: {url}" } }, + "common": { + "navigation": { + "back": "Back", + "forward": "Forward", + "navigate_back": "Navigate back", + "navigate_forward": "Navigate forward", + "navigate_to": "Navigate to {item}" + }, + "actions": { + "edit": "Edit", + "remove": "Remove" + }, + "alt_text": { + "preview": "Preview", + "location": "Location", + "screenshot": "Screenshot" + }, + "add_translation": "Add translation", + "above_widgets": "Above widgets" + }, "toasts": { "quote": "Quote copied", "notes": "Notes copied", diff --git a/src/i18n/locales/az.json b/src/i18n/locales/az.json index c490bbef..c31cb3e4 100644 --- a/src/i18n/locales/az.json +++ b/src/i18n/locales/az.json @@ -39,7 +39,17 @@ "icon": "İkon (istəyə bağlı)", "add": "Əlavə et", "name_error": "Ad göstərilməlidir", - "url_error": "URL göstərilməlidir" + "url_error": "URL göstərilməlidir", + "suggested": "Suggested: {name}", + "name_placeholder": "Enter link name (optional)", + "url_placeholder": "example.com", + "icon_url_placeholder": "https://example.com/icon.png", + "icon_type_label": "Icon Type", + "icon_type_auto": "Auto-detect Icon", + "icon_type_custom_url": "Custom Icon URL", + "icon_type_upload": "Upload Icon", + "icon_type_emoji": "Emoji", + "icon_type_letter": "Letter Avatar" }, "date": { "week": "Həftə" @@ -63,7 +73,8 @@ }, "notes": { "title": "Qeydlər", - "placeholder": "Buraya yazın" + "placeholder": "Buraya yazın", + "export_filename": "mue-notes.txt" }, "todo": { "title": "Ediləcək", @@ -316,7 +327,16 @@ "photo_pack_settings": { "title": "{name} Settings", "refresh_photos": "Refresh Photos" - } + }, + "pack_count": { + "singular": "pack", + "plural": "packs" + }, + "photo_count": { + "singular": "photo", + "plural": "photos" + }, + "get_more": "Get more" }, "search": { "title": "Axtarış", @@ -726,9 +746,44 @@ } }, "share": { - "copy_link": "Keçidi kopyala" + "copy_link": "Keçidi kopyala", + "item_type": { + "image": "this image", + "quote": "this quote", + "marketplace_item": "this marketplace item" + }, + "social": { + "twitter": "X (Twitter)", + "facebook": "Facebook", + "email": "Email", + "wechat": "WeChat", + "qq": "Tencent QQ" + }, + "twitter_message": "Check out {name} on @getmue", + "email_subject": "Check out this on Mue!", + "email_body": "{name} on Mue: {url}" } }, + "common": { + "navigation": { + "back": "Back", + "forward": "Forward", + "navigate_back": "Navigate back", + "navigate_forward": "Navigate forward", + "navigate_to": "Navigate to {item}" + }, + "actions": { + "edit": "Edit", + "remove": "Remove" + }, + "alt_text": { + "preview": "Preview", + "location": "Location", + "screenshot": "Screenshot" + }, + "add_translation": "Add translation", + "above_widgets": "Above widgets" + }, "toasts": { "quote": "Sitat kopyalandı", "notes": "Qeydlər kopyalandı", diff --git a/src/i18n/locales/azb.json b/src/i18n/locales/azb.json index 93441d97..e3421b66 100644 --- a/src/i18n/locales/azb.json +++ b/src/i18n/locales/azb.json @@ -39,7 +39,17 @@ "icon": "İkon (istəyə bağlı)", "add": "Əlavə et", "name_error": "Ad göstərilməlidir", - "url_error": "URL göstərilməlidir" + "url_error": "URL göstərilməlidir", + "suggested": "Suggested: {name}", + "name_placeholder": "Enter link name (optional)", + "url_placeholder": "example.com", + "icon_url_placeholder": "https://example.com/icon.png", + "icon_type_label": "Icon Type", + "icon_type_auto": "Auto-detect Icon", + "icon_type_custom_url": "Custom Icon URL", + "icon_type_upload": "Upload Icon", + "icon_type_emoji": "Emoji", + "icon_type_letter": "Letter Avatar" }, "date": { "week": "Həftə" @@ -63,7 +73,8 @@ }, "notes": { "title": "Qeydlər", - "placeholder": "Buraya yazın" + "placeholder": "Buraya yazın", + "export_filename": "mue-notes.txt" }, "todo": { "title": "Görüləcək İşlər", @@ -316,7 +327,16 @@ "photo_pack_settings": { "title": "{name} Settings", "refresh_photos": "Refresh Photos" - } + }, + "pack_count": { + "singular": "pack", + "plural": "packs" + }, + "photo_count": { + "singular": "photo", + "plural": "photos" + }, + "get_more": "Get more" }, "search": { "title": "Axtarış", @@ -726,9 +746,44 @@ } }, "share": { - "copy_link": "Linki kopyala" + "copy_link": "Linki kopyala", + "item_type": { + "image": "this image", + "quote": "this quote", + "marketplace_item": "this marketplace item" + }, + "social": { + "twitter": "X (Twitter)", + "facebook": "Facebook", + "email": "Email", + "wechat": "WeChat", + "qq": "Tencent QQ" + }, + "twitter_message": "Check out {name} on @getmue", + "email_subject": "Check out this on Mue!", + "email_body": "{name} on Mue: {url}" } }, + "common": { + "navigation": { + "back": "Back", + "forward": "Forward", + "navigate_back": "Navigate back", + "navigate_forward": "Navigate forward", + "navigate_to": "Navigate to {item}" + }, + "actions": { + "edit": "Edit", + "remove": "Remove" + }, + "alt_text": { + "preview": "Preview", + "location": "Location", + "screenshot": "Screenshot" + }, + "add_translation": "Add translation", + "above_widgets": "Above widgets" + }, "toasts": { "quote": "Sitat kopyalandı", "notes": "Qeydlər kopyalandı", diff --git a/src/i18n/locales/bn.json b/src/i18n/locales/bn.json index d1607244..5afcee00 100644 --- a/src/i18n/locales/bn.json +++ b/src/i18n/locales/bn.json @@ -39,7 +39,17 @@ "icon": "আইকন (ঐচ্ছিক)", "add": "যোগ করুন", "name_error": "অবশ্যই নাম দিতে হবে", - "url_error": "অবশ্যই URL দিতে হবে" + "url_error": "অবশ্যই URL দিতে হবে", + "suggested": "Suggested: {name}", + "name_placeholder": "Enter link name (optional)", + "url_placeholder": "example.com", + "icon_url_placeholder": "https://example.com/icon.png", + "icon_type_label": "Icon Type", + "icon_type_auto": "Auto-detect Icon", + "icon_type_custom_url": "Custom Icon URL", + "icon_type_upload": "Upload Icon", + "icon_type_emoji": "Emoji", + "icon_type_letter": "Letter Avatar" }, "date": { "week": "সপ্তাহ" @@ -63,7 +73,8 @@ }, "notes": { "title": "মন্তব্য", - "placeholder": "এখানে লিখুন" + "placeholder": "এখানে লিখুন", + "export_filename": "mue-notes.txt" }, "todo": { "title": "সব", @@ -316,7 +327,16 @@ "photo_pack_settings": { "title": "{name} Settings", "refresh_photos": "Refresh Photos" - } + }, + "pack_count": { + "singular": "pack", + "plural": "packs" + }, + "photo_count": { + "singular": "photo", + "plural": "photos" + }, + "get_more": "Get more" }, "search": { "title": "Search", @@ -726,9 +746,44 @@ } }, "share": { - "copy_link": "Copy link" + "copy_link": "Copy link", + "item_type": { + "image": "this image", + "quote": "this quote", + "marketplace_item": "this marketplace item" + }, + "social": { + "twitter": "X (Twitter)", + "facebook": "Facebook", + "email": "Email", + "wechat": "WeChat", + "qq": "Tencent QQ" + }, + "twitter_message": "Check out {name} on @getmue", + "email_subject": "Check out this on Mue!", + "email_body": "{name} on Mue: {url}" } }, + "common": { + "navigation": { + "back": "Back", + "forward": "Forward", + "navigate_back": "Navigate back", + "navigate_forward": "Navigate forward", + "navigate_to": "Navigate to {item}" + }, + "actions": { + "edit": "Edit", + "remove": "Remove" + }, + "alt_text": { + "preview": "Preview", + "location": "Location", + "screenshot": "Screenshot" + }, + "add_translation": "Add translation", + "above_widgets": "Above widgets" + }, "toasts": { "quote": "Quote copied", "notes": "Notes copied", diff --git a/src/i18n/locales/de_DE.json b/src/i18n/locales/de_DE.json index 88f4f624..ff6491d0 100644 --- a/src/i18n/locales/de_DE.json +++ b/src/i18n/locales/de_DE.json @@ -39,7 +39,17 @@ "icon": "Icon (optional)", "add": "Hinzufügen", "name_error": "Muss einen Namen angeben", - "url_error": "Muss eine URL angeben" + "url_error": "Muss eine URL angeben", + "suggested": "Suggested: {name}", + "name_placeholder": "Enter link name (optional)", + "url_placeholder": "example.com", + "icon_url_placeholder": "https://example.com/icon.png", + "icon_type_label": "Icon Type", + "icon_type_auto": "Auto-detect Icon", + "icon_type_custom_url": "Custom Icon URL", + "icon_type_upload": "Upload Icon", + "icon_type_emoji": "Emoji", + "icon_type_letter": "Letter Avatar" }, "date": { "week": "Kalenderwoche" @@ -63,7 +73,8 @@ }, "notes": { "title": "Notizen", - "placeholder": "Hier eingeben" + "placeholder": "Hier eingeben", + "export_filename": "mue-notes.txt" }, "todo": { "title": "Machen", @@ -316,7 +327,16 @@ "photo_pack_settings": { "title": "{name} Settings", "refresh_photos": "Refresh Photos" - } + }, + "pack_count": { + "singular": "pack", + "plural": "packs" + }, + "photo_count": { + "singular": "photo", + "plural": "photos" + }, + "get_more": "Get more" }, "search": { "title": "Suche", @@ -726,9 +746,44 @@ } }, "share": { - "copy_link": "Link kopieren" + "copy_link": "Link kopieren", + "item_type": { + "image": "this image", + "quote": "this quote", + "marketplace_item": "this marketplace item" + }, + "social": { + "twitter": "X (Twitter)", + "facebook": "Facebook", + "email": "Email", + "wechat": "WeChat", + "qq": "Tencent QQ" + }, + "twitter_message": "Check out {name} on @getmue", + "email_subject": "Check out this on Mue!", + "email_body": "{name} on Mue: {url}" } }, + "common": { + "navigation": { + "back": "Back", + "forward": "Forward", + "navigate_back": "Navigate back", + "navigate_forward": "Navigate forward", + "navigate_to": "Navigate to {item}" + }, + "actions": { + "edit": "Edit", + "remove": "Remove" + }, + "alt_text": { + "preview": "Preview", + "location": "Location", + "screenshot": "Screenshot" + }, + "add_translation": "Add translation", + "above_widgets": "Above widgets" + }, "toasts": { "quote": "Kopierte zitate", "notes": "Kopierte notizen", diff --git a/src/i18n/locales/el.json b/src/i18n/locales/el.json index a9110cd4..c52e2ba7 100644 --- a/src/i18n/locales/el.json +++ b/src/i18n/locales/el.json @@ -39,7 +39,17 @@ "icon": "Icon (optional)", "add": "Add", "name_error": "Must provide name", - "url_error": "Must provide URL" + "url_error": "Must provide URL", + "suggested": "Suggested: {name}", + "name_placeholder": "Enter link name (optional)", + "url_placeholder": "example.com", + "icon_url_placeholder": "https://example.com/icon.png", + "icon_type_label": "Icon Type", + "icon_type_auto": "Auto-detect Icon", + "icon_type_custom_url": "Custom Icon URL", + "icon_type_upload": "Upload Icon", + "icon_type_emoji": "Emoji", + "icon_type_letter": "Letter Avatar" }, "date": { "week": "Week" @@ -63,7 +73,8 @@ }, "notes": { "title": "Notes", - "placeholder": "Type here" + "placeholder": "Type here", + "export_filename": "mue-notes.txt" }, "todo": { "title": "Todo", @@ -316,7 +327,16 @@ "photo_pack_settings": { "title": "{name} Settings", "refresh_photos": "Refresh Photos" - } + }, + "pack_count": { + "singular": "pack", + "plural": "packs" + }, + "photo_count": { + "singular": "photo", + "plural": "photos" + }, + "get_more": "Get more" }, "search": { "title": "Search", @@ -726,9 +746,44 @@ } }, "share": { - "copy_link": "Copy link" + "copy_link": "Copy link", + "item_type": { + "image": "this image", + "quote": "this quote", + "marketplace_item": "this marketplace item" + }, + "social": { + "twitter": "X (Twitter)", + "facebook": "Facebook", + "email": "Email", + "wechat": "WeChat", + "qq": "Tencent QQ" + }, + "twitter_message": "Check out {name} on @getmue", + "email_subject": "Check out this on Mue!", + "email_body": "{name} on Mue: {url}" } }, + "common": { + "navigation": { + "back": "Back", + "forward": "Forward", + "navigate_back": "Navigate back", + "navigate_forward": "Navigate forward", + "navigate_to": "Navigate to {item}" + }, + "actions": { + "edit": "Edit", + "remove": "Remove" + }, + "alt_text": { + "preview": "Preview", + "location": "Location", + "screenshot": "Screenshot" + }, + "add_translation": "Add translation", + "above_widgets": "Above widgets" + }, "toasts": { "quote": "Quote copied", "notes": "Notes copied", diff --git a/src/i18n/locales/en_GB.json b/src/i18n/locales/en_GB.json index 22ec07e4..c315bb51 100644 --- a/src/i18n/locales/en_GB.json +++ b/src/i18n/locales/en_GB.json @@ -39,7 +39,17 @@ "icon": "Icon (optional)", "add": "Add", "name_error": "Must provide name", - "url_error": "Must provide URL" + "url_error": "Must provide URL", + "suggested": "Suggested: {name}", + "name_placeholder": "Enter link name (optional)", + "url_placeholder": "example.com", + "icon_url_placeholder": "https://example.com/icon.png", + "icon_type_label": "Icon Type", + "icon_type_auto": "Auto-detect Icon", + "icon_type_custom_url": "Custom Icon URL", + "icon_type_upload": "Upload Icon", + "icon_type_emoji": "Emoji", + "icon_type_letter": "Letter Avatar" }, "date": { "week": "Week" @@ -63,7 +73,8 @@ }, "notes": { "title": "Notes", - "placeholder": "Type here" + "placeholder": "Type here", + "export_filename": "mue-notes.txt" }, "todo": { "title": "Todo", @@ -316,7 +327,16 @@ "photo_pack_settings": { "title": "{name} Settings", "refresh_photos": "Refresh Photos" - } + }, + "pack_count": { + "singular": "pack", + "plural": "packs" + }, + "photo_count": { + "singular": "photo", + "plural": "photos" + }, + "get_more": "Get more" }, "search": { "title": "Search", @@ -726,9 +746,44 @@ } }, "share": { - "copy_link": "Copy link" + "copy_link": "Copy link", + "item_type": { + "image": "this image", + "quote": "this quote", + "marketplace_item": "this marketplace item" + }, + "social": { + "twitter": "X (Twitter)", + "facebook": "Facebook", + "email": "Email", + "wechat": "WeChat", + "qq": "Tencent QQ" + }, + "twitter_message": "Check out {name} on @getmue", + "email_subject": "Check out this on Mue!", + "email_body": "{name} on Mue: {url}" } }, + "common": { + "navigation": { + "back": "Back", + "forward": "Forward", + "navigate_back": "Navigate back", + "navigate_forward": "Navigate forward", + "navigate_to": "Navigate to {item}" + }, + "actions": { + "edit": "Edit", + "remove": "Remove" + }, + "alt_text": { + "preview": "Preview", + "location": "Location", + "screenshot": "Screenshot" + }, + "add_translation": "Add translation", + "above_widgets": "Above widgets" + }, "toasts": { "quote": "Quote copied", "notes": "Notes copied", diff --git a/src/i18n/locales/en_US.json b/src/i18n/locales/en_US.json index 3d38463b..e7ba06fb 100644 --- a/src/i18n/locales/en_US.json +++ b/src/i18n/locales/en_US.json @@ -39,7 +39,17 @@ "icon": "Icon (optional)", "add": "Add", "name_error": "Must provide name", - "url_error": "Must provide URL" + "url_error": "Must provide URL", + "suggested": "Suggested: {name}", + "name_placeholder": "Enter link name (optional)", + "url_placeholder": "example.com", + "icon_url_placeholder": "https://example.com/icon.png", + "icon_type_label": "Icon Type", + "icon_type_auto": "Auto-detect Icon", + "icon_type_custom_url": "Custom Icon URL", + "icon_type_upload": "Upload Icon", + "icon_type_emoji": "Emoji", + "icon_type_letter": "Letter Avatar" }, "date": { "week": "Week" @@ -63,7 +73,8 @@ }, "notes": { "title": "Notes", - "placeholder": "Type here" + "placeholder": "Type here", + "export_filename": "mue-notes.txt" }, "todo": { "title": "To-do", @@ -316,7 +327,16 @@ "photo_pack_settings": { "title": "{name} Settings", "refresh_photos": "Refresh Photos" - } + }, + "pack_count": { + "singular": "pack", + "plural": "packs" + }, + "photo_count": { + "singular": "photo", + "plural": "photos" + }, + "get_more": "Get more" }, "search": { "title": "Search", @@ -726,9 +746,44 @@ } }, "share": { - "copy_link": "Copy link" + "copy_link": "Copy link", + "item_type": { + "image": "this image", + "quote": "this quote", + "marketplace_item": "this marketplace item" + }, + "social": { + "twitter": "X (Twitter)", + "facebook": "Facebook", + "email": "Email", + "wechat": "WeChat", + "qq": "Tencent QQ" + }, + "twitter_message": "Check out {name} on @getmue", + "email_subject": "Check out this on Mue!", + "email_body": "{name} on Mue: {url}" } }, + "common": { + "navigation": { + "back": "Back", + "forward": "Forward", + "navigate_back": "Navigate back", + "navigate_forward": "Navigate forward", + "navigate_to": "Navigate to {item}" + }, + "actions": { + "edit": "Edit", + "remove": "Remove" + }, + "alt_text": { + "preview": "Preview", + "location": "Location", + "screenshot": "Screenshot" + }, + "add_translation": "Add translation", + "above_widgets": "Above widgets" + }, "toasts": { "quote": "Quote copied", "notes": "Notes copied", diff --git a/src/i18n/locales/es.json b/src/i18n/locales/es.json index 12f11177..b8b0b532 100644 --- a/src/i18n/locales/es.json +++ b/src/i18n/locales/es.json @@ -39,7 +39,17 @@ "icon": "Icono (opcional)", "add": "Añadir", "name_error": "Debe indicar el nombre", - "url_error": "Debe indicar la URL" + "url_error": "Debe indicar la URL", + "suggested": "Suggested: {name}", + "name_placeholder": "Enter link name (optional)", + "url_placeholder": "example.com", + "icon_url_placeholder": "https://example.com/icon.png", + "icon_type_label": "Icon Type", + "icon_type_auto": "Auto-detect Icon", + "icon_type_custom_url": "Custom Icon URL", + "icon_type_upload": "Upload Icon", + "icon_type_emoji": "Emoji", + "icon_type_letter": "Letter Avatar" }, "date": { "week": "Semana" @@ -63,7 +73,8 @@ }, "notes": { "title": "Notas", - "placeholder": "Escribe aquí" + "placeholder": "Escribe aquí", + "export_filename": "mue-notes.txt" }, "todo": { "title": "Tareas", @@ -316,7 +327,16 @@ "photo_pack_settings": { "title": "{name} Settings", "refresh_photos": "Refresh Photos" - } + }, + "pack_count": { + "singular": "pack", + "plural": "packs" + }, + "photo_count": { + "singular": "photo", + "plural": "photos" + }, + "get_more": "Get more" }, "search": { "title": "Búsqueda", @@ -726,9 +746,44 @@ } }, "share": { - "copy_link": "Copiar enlace" + "copy_link": "Copiar enlace", + "item_type": { + "image": "this image", + "quote": "this quote", + "marketplace_item": "this marketplace item" + }, + "social": { + "twitter": "X (Twitter)", + "facebook": "Facebook", + "email": "Email", + "wechat": "WeChat", + "qq": "Tencent QQ" + }, + "twitter_message": "Check out {name} on @getmue", + "email_subject": "Check out this on Mue!", + "email_body": "{name} on Mue: {url}" } }, + "common": { + "navigation": { + "back": "Back", + "forward": "Forward", + "navigate_back": "Navigate back", + "navigate_forward": "Navigate forward", + "navigate_to": "Navigate to {item}" + }, + "actions": { + "edit": "Edit", + "remove": "Remove" + }, + "alt_text": { + "preview": "Preview", + "location": "Location", + "screenshot": "Screenshot" + }, + "add_translation": "Add translation", + "above_widgets": "Above widgets" + }, "toasts": { "quote": "Cita copiada", "notes": "Notas copiadas", diff --git a/src/i18n/locales/es_419.json b/src/i18n/locales/es_419.json index 4dee3bba..d8f6e492 100644 --- a/src/i18n/locales/es_419.json +++ b/src/i18n/locales/es_419.json @@ -39,7 +39,17 @@ "icon": "Icono (opcional)", "add": "Añadir", "name_error": "Debe indicar el nombre", - "url_error": "Debe indicar la URL" + "url_error": "Debe indicar la URL", + "suggested": "Suggested: {name}", + "name_placeholder": "Enter link name (optional)", + "url_placeholder": "example.com", + "icon_url_placeholder": "https://example.com/icon.png", + "icon_type_label": "Icon Type", + "icon_type_auto": "Auto-detect Icon", + "icon_type_custom_url": "Custom Icon URL", + "icon_type_upload": "Upload Icon", + "icon_type_emoji": "Emoji", + "icon_type_letter": "Letter Avatar" }, "date": { "week": "Semana" @@ -63,7 +73,8 @@ }, "notes": { "title": "Notas", - "placeholder": "Escribe aquí" + "placeholder": "Escribe aquí", + "export_filename": "mue-notes.txt" }, "todo": { "title": "Todo", @@ -316,7 +327,16 @@ "photo_pack_settings": { "title": "{name} Settings", "refresh_photos": "Refresh Photos" - } + }, + "pack_count": { + "singular": "pack", + "plural": "packs" + }, + "photo_count": { + "singular": "photo", + "plural": "photos" + }, + "get_more": "Get more" }, "search": { "title": "Búsqueda", @@ -726,9 +746,44 @@ } }, "share": { - "copy_link": "Copy link" + "copy_link": "Copy link", + "item_type": { + "image": "this image", + "quote": "this quote", + "marketplace_item": "this marketplace item" + }, + "social": { + "twitter": "X (Twitter)", + "facebook": "Facebook", + "email": "Email", + "wechat": "WeChat", + "qq": "Tencent QQ" + }, + "twitter_message": "Check out {name} on @getmue", + "email_subject": "Check out this on Mue!", + "email_body": "{name} on Mue: {url}" } }, + "common": { + "navigation": { + "back": "Back", + "forward": "Forward", + "navigate_back": "Navigate back", + "navigate_forward": "Navigate forward", + "navigate_to": "Navigate to {item}" + }, + "actions": { + "edit": "Edit", + "remove": "Remove" + }, + "alt_text": { + "preview": "Preview", + "location": "Location", + "screenshot": "Screenshot" + }, + "add_translation": "Add translation", + "above_widgets": "Above widgets" + }, "toasts": { "quote": "Citación copiada", "notes": "Notas copiadas", diff --git a/src/i18n/locales/et.json b/src/i18n/locales/et.json index 11875bff..ca08567f 100644 --- a/src/i18n/locales/et.json +++ b/src/i18n/locales/et.json @@ -39,7 +39,17 @@ "icon": "Ikoon (valikuline)", "add": "Lisa", "name_error": "Nimi peab olema määratud", - "url_error": "URL peab olema määratud" + "url_error": "URL peab olema määratud", + "suggested": "Suggested: {name}", + "name_placeholder": "Enter link name (optional)", + "url_placeholder": "example.com", + "icon_url_placeholder": "https://example.com/icon.png", + "icon_type_label": "Icon Type", + "icon_type_auto": "Auto-detect Icon", + "icon_type_custom_url": "Custom Icon URL", + "icon_type_upload": "Upload Icon", + "icon_type_emoji": "Emoji", + "icon_type_letter": "Letter Avatar" }, "date": { "week": "Nädal" @@ -63,7 +73,8 @@ }, "notes": { "title": "Märkmed", - "placeholder": "Kirjuta siia" + "placeholder": "Kirjuta siia", + "export_filename": "mue-notes.txt" }, "todo": { "title": "Ülesanded", @@ -316,7 +327,16 @@ "photo_pack_settings": { "title": "{name} Settings", "refresh_photos": "Refresh Photos" - } + }, + "pack_count": { + "singular": "pack", + "plural": "packs" + }, + "photo_count": { + "singular": "photo", + "plural": "photos" + }, + "get_more": "Get more" }, "search": { "title": "Otsing", @@ -726,9 +746,44 @@ } }, "share": { - "copy_link": "Kopeeri link" + "copy_link": "Kopeeri link", + "item_type": { + "image": "this image", + "quote": "this quote", + "marketplace_item": "this marketplace item" + }, + "social": { + "twitter": "X (Twitter)", + "facebook": "Facebook", + "email": "Email", + "wechat": "WeChat", + "qq": "Tencent QQ" + }, + "twitter_message": "Check out {name} on @getmue", + "email_subject": "Check out this on Mue!", + "email_body": "{name} on Mue: {url}" } }, + "common": { + "navigation": { + "back": "Back", + "forward": "Forward", + "navigate_back": "Navigate back", + "navigate_forward": "Navigate forward", + "navigate_to": "Navigate to {item}" + }, + "actions": { + "edit": "Edit", + "remove": "Remove" + }, + "alt_text": { + "preview": "Preview", + "location": "Location", + "screenshot": "Screenshot" + }, + "add_translation": "Add translation", + "above_widgets": "Above widgets" + }, "toasts": { "quote": "Tsitaat kopeeritud", "notes": "Märkmed kopeeritud", diff --git a/src/i18n/locales/fa.json b/src/i18n/locales/fa.json index 607d1c90..633c92dc 100644 --- a/src/i18n/locales/fa.json +++ b/src/i18n/locales/fa.json @@ -39,7 +39,17 @@ "icon": "Icon (optional)", "add": "Add", "name_error": "Must provide name", - "url_error": "Must provide URL" + "url_error": "Must provide URL", + "suggested": "Suggested: {name}", + "name_placeholder": "Enter link name (optional)", + "url_placeholder": "example.com", + "icon_url_placeholder": "https://example.com/icon.png", + "icon_type_label": "Icon Type", + "icon_type_auto": "Auto-detect Icon", + "icon_type_custom_url": "Custom Icon URL", + "icon_type_upload": "Upload Icon", + "icon_type_emoji": "Emoji", + "icon_type_letter": "Letter Avatar" }, "date": { "week": "Week" @@ -63,7 +73,8 @@ }, "notes": { "title": "Notes", - "placeholder": "Type here" + "placeholder": "Type here", + "export_filename": "mue-notes.txt" }, "todo": { "title": "Todo", @@ -316,7 +327,16 @@ "photo_pack_settings": { "title": "{name} Settings", "refresh_photos": "Refresh Photos" - } + }, + "pack_count": { + "singular": "pack", + "plural": "packs" + }, + "photo_count": { + "singular": "photo", + "plural": "photos" + }, + "get_more": "Get more" }, "search": { "title": "Search", @@ -726,9 +746,44 @@ } }, "share": { - "copy_link": "Copy link" + "copy_link": "Copy link", + "item_type": { + "image": "this image", + "quote": "this quote", + "marketplace_item": "this marketplace item" + }, + "social": { + "twitter": "X (Twitter)", + "facebook": "Facebook", + "email": "Email", + "wechat": "WeChat", + "qq": "Tencent QQ" + }, + "twitter_message": "Check out {name} on @getmue", + "email_subject": "Check out this on Mue!", + "email_body": "{name} on Mue: {url}" } }, + "common": { + "navigation": { + "back": "Back", + "forward": "Forward", + "navigate_back": "Navigate back", + "navigate_forward": "Navigate forward", + "navigate_to": "Navigate to {item}" + }, + "actions": { + "edit": "Edit", + "remove": "Remove" + }, + "alt_text": { + "preview": "Preview", + "location": "Location", + "screenshot": "Screenshot" + }, + "add_translation": "Add translation", + "above_widgets": "Above widgets" + }, "toasts": { "quote": "Quote copied", "notes": "Notes copied", diff --git a/src/i18n/locales/fr.json b/src/i18n/locales/fr.json index 8bdd3aad..4d4cda07 100644 --- a/src/i18n/locales/fr.json +++ b/src/i18n/locales/fr.json @@ -39,7 +39,17 @@ "icon": "Icône (facultatif)", "add": "Ajouter", "name_error": "Le nom est obligatoire", - "url_error": "L'URL est obligatoire" + "url_error": "L'URL est obligatoire", + "suggested": "Suggested: {name}", + "name_placeholder": "Enter link name (optional)", + "url_placeholder": "example.com", + "icon_url_placeholder": "https://example.com/icon.png", + "icon_type_label": "Icon Type", + "icon_type_auto": "Auto-detect Icon", + "icon_type_custom_url": "Custom Icon URL", + "icon_type_upload": "Upload Icon", + "icon_type_emoji": "Emoji", + "icon_type_letter": "Letter Avatar" }, "date": { "week": "Semaine" @@ -63,7 +73,8 @@ }, "notes": { "title": "Notes", - "placeholder": "Tapez ici" + "placeholder": "Tapez ici", + "export_filename": "mue-notes.txt" }, "todo": { "title": "À faire", @@ -316,7 +327,16 @@ "photo_pack_settings": { "title": "{name} Settings", "refresh_photos": "Refresh Photos" - } + }, + "pack_count": { + "singular": "pack", + "plural": "packs" + }, + "photo_count": { + "singular": "photo", + "plural": "photos" + }, + "get_more": "Get more" }, "search": { "title": "Recherche", @@ -726,9 +746,44 @@ } }, "share": { - "copy_link": "Copier le lien" + "copy_link": "Copier le lien", + "item_type": { + "image": "this image", + "quote": "this quote", + "marketplace_item": "this marketplace item" + }, + "social": { + "twitter": "X (Twitter)", + "facebook": "Facebook", + "email": "Email", + "wechat": "WeChat", + "qq": "Tencent QQ" + }, + "twitter_message": "Check out {name} on @getmue", + "email_subject": "Check out this on Mue!", + "email_body": "{name} on Mue: {url}" } }, + "common": { + "navigation": { + "back": "Back", + "forward": "Forward", + "navigate_back": "Navigate back", + "navigate_forward": "Navigate forward", + "navigate_to": "Navigate to {item}" + }, + "actions": { + "edit": "Edit", + "remove": "Remove" + }, + "alt_text": { + "preview": "Preview", + "location": "Location", + "screenshot": "Screenshot" + }, + "add_translation": "Add translation", + "above_widgets": "Above widgets" + }, "toasts": { "quote": "Citation copiée", "notes": "Notes copiées", diff --git a/src/i18n/locales/hu.json b/src/i18n/locales/hu.json index adde6f5d..7dbd3b4e 100644 --- a/src/i18n/locales/hu.json +++ b/src/i18n/locales/hu.json @@ -39,7 +39,17 @@ "icon": "Icon (optional)", "add": "Add", "name_error": "Must provide name", - "url_error": "Must provide URL" + "url_error": "Must provide URL", + "suggested": "Suggested: {name}", + "name_placeholder": "Enter link name (optional)", + "url_placeholder": "example.com", + "icon_url_placeholder": "https://example.com/icon.png", + "icon_type_label": "Icon Type", + "icon_type_auto": "Auto-detect Icon", + "icon_type_custom_url": "Custom Icon URL", + "icon_type_upload": "Upload Icon", + "icon_type_emoji": "Emoji", + "icon_type_letter": "Letter Avatar" }, "date": { "week": "Week" @@ -63,7 +73,8 @@ }, "notes": { "title": "Notes", - "placeholder": "Type here" + "placeholder": "Type here", + "export_filename": "mue-notes.txt" }, "todo": { "title": "Todo", @@ -316,7 +327,16 @@ "photo_pack_settings": { "title": "{name} Settings", "refresh_photos": "Refresh Photos" - } + }, + "pack_count": { + "singular": "pack", + "plural": "packs" + }, + "photo_count": { + "singular": "photo", + "plural": "photos" + }, + "get_more": "Get more" }, "search": { "title": "Search", @@ -726,9 +746,44 @@ } }, "share": { - "copy_link": "Copy link" + "copy_link": "Copy link", + "item_type": { + "image": "this image", + "quote": "this quote", + "marketplace_item": "this marketplace item" + }, + "social": { + "twitter": "X (Twitter)", + "facebook": "Facebook", + "email": "Email", + "wechat": "WeChat", + "qq": "Tencent QQ" + }, + "twitter_message": "Check out {name} on @getmue", + "email_subject": "Check out this on Mue!", + "email_body": "{name} on Mue: {url}" } }, + "common": { + "navigation": { + "back": "Back", + "forward": "Forward", + "navigate_back": "Navigate back", + "navigate_forward": "Navigate forward", + "navigate_to": "Navigate to {item}" + }, + "actions": { + "edit": "Edit", + "remove": "Remove" + }, + "alt_text": { + "preview": "Preview", + "location": "Location", + "screenshot": "Screenshot" + }, + "add_translation": "Add translation", + "above_widgets": "Above widgets" + }, "toasts": { "quote": "Quote copied", "notes": "Notes copied", diff --git a/src/i18n/locales/id_ID.json b/src/i18n/locales/id_ID.json index 5f346d92..0fe52370 100644 --- a/src/i18n/locales/id_ID.json +++ b/src/i18n/locales/id_ID.json @@ -39,7 +39,17 @@ "icon": "Ikon (opsional)", "add": "Tambah", "name_error": "Harap cantumkan nama", - "url_error": "Harap cantumkan URL" + "url_error": "Harap cantumkan URL", + "suggested": "Suggested: {name}", + "name_placeholder": "Enter link name (optional)", + "url_placeholder": "example.com", + "icon_url_placeholder": "https://example.com/icon.png", + "icon_type_label": "Icon Type", + "icon_type_auto": "Auto-detect Icon", + "icon_type_custom_url": "Custom Icon URL", + "icon_type_upload": "Upload Icon", + "icon_type_emoji": "Emoji", + "icon_type_letter": "Letter Avatar" }, "date": { "week": "Pekan" @@ -63,7 +73,8 @@ }, "notes": { "title": "Catatan", - "placeholder": "Ketik di sini" + "placeholder": "Ketik di sini", + "export_filename": "mue-notes.txt" }, "todo": { "title": "Tugas", @@ -316,7 +327,16 @@ "photo_pack_settings": { "title": "{name} Settings", "refresh_photos": "Refresh Photos" - } + }, + "pack_count": { + "singular": "pack", + "plural": "packs" + }, + "photo_count": { + "singular": "photo", + "plural": "photos" + }, + "get_more": "Get more" }, "search": { "title": "Cari", @@ -726,9 +746,44 @@ } }, "share": { - "copy_link": "Copy link" + "copy_link": "Copy link", + "item_type": { + "image": "this image", + "quote": "this quote", + "marketplace_item": "this marketplace item" + }, + "social": { + "twitter": "X (Twitter)", + "facebook": "Facebook", + "email": "Email", + "wechat": "WeChat", + "qq": "Tencent QQ" + }, + "twitter_message": "Check out {name} on @getmue", + "email_subject": "Check out this on Mue!", + "email_body": "{name} on Mue: {url}" } }, + "common": { + "navigation": { + "back": "Back", + "forward": "Forward", + "navigate_back": "Navigate back", + "navigate_forward": "Navigate forward", + "navigate_to": "Navigate to {item}" + }, + "actions": { + "edit": "Edit", + "remove": "Remove" + }, + "alt_text": { + "preview": "Preview", + "location": "Location", + "screenshot": "Screenshot" + }, + "add_translation": "Add translation", + "above_widgets": "Above widgets" + }, "toasts": { "quote": "Berhasil menyalin kutipan", "notes": "Berhasil menyalin catatan", diff --git a/src/i18n/locales/ja.json b/src/i18n/locales/ja.json index 20c89b80..e5d04c64 100644 --- a/src/i18n/locales/ja.json +++ b/src/i18n/locales/ja.json @@ -39,7 +39,17 @@ "icon": "Icon (optional)", "add": "Add", "name_error": "Must provide name", - "url_error": "Must provide URL" + "url_error": "Must provide URL", + "suggested": "Suggested: {name}", + "name_placeholder": "Enter link name (optional)", + "url_placeholder": "example.com", + "icon_url_placeholder": "https://example.com/icon.png", + "icon_type_label": "Icon Type", + "icon_type_auto": "Auto-detect Icon", + "icon_type_custom_url": "Custom Icon URL", + "icon_type_upload": "Upload Icon", + "icon_type_emoji": "Emoji", + "icon_type_letter": "Letter Avatar" }, "date": { "week": "Week" @@ -63,7 +73,8 @@ }, "notes": { "title": "Notes", - "placeholder": "Type here" + "placeholder": "Type here", + "export_filename": "mue-notes.txt" }, "todo": { "title": "Todo", @@ -316,7 +327,16 @@ "photo_pack_settings": { "title": "{name} Settings", "refresh_photos": "Refresh Photos" - } + }, + "pack_count": { + "singular": "pack", + "plural": "packs" + }, + "photo_count": { + "singular": "photo", + "plural": "photos" + }, + "get_more": "Get more" }, "search": { "title": "Search", @@ -726,9 +746,44 @@ } }, "share": { - "copy_link": "Copy link" + "copy_link": "Copy link", + "item_type": { + "image": "this image", + "quote": "this quote", + "marketplace_item": "this marketplace item" + }, + "social": { + "twitter": "X (Twitter)", + "facebook": "Facebook", + "email": "Email", + "wechat": "WeChat", + "qq": "Tencent QQ" + }, + "twitter_message": "Check out {name} on @getmue", + "email_subject": "Check out this on Mue!", + "email_body": "{name} on Mue: {url}" } }, + "common": { + "navigation": { + "back": "Back", + "forward": "Forward", + "navigate_back": "Navigate back", + "navigate_forward": "Navigate forward", + "navigate_to": "Navigate to {item}" + }, + "actions": { + "edit": "Edit", + "remove": "Remove" + }, + "alt_text": { + "preview": "Preview", + "location": "Location", + "screenshot": "Screenshot" + }, + "add_translation": "Add translation", + "above_widgets": "Above widgets" + }, "toasts": { "quote": "Quote copied", "notes": "Notes copied", diff --git a/src/i18n/locales/lt.json b/src/i18n/locales/lt.json index 05a420d2..78293ca0 100644 --- a/src/i18n/locales/lt.json +++ b/src/i18n/locales/lt.json @@ -39,7 +39,17 @@ "icon": "Piktograma (neprivaloma)", "add": "Pridėti", "name_error": "Būtina įvesti pavadinimą", - "url_error": "Būtina įvesti URL" + "url_error": "Būtina įvesti URL", + "suggested": "Suggested: {name}", + "name_placeholder": "Enter link name (optional)", + "url_placeholder": "example.com", + "icon_url_placeholder": "https://example.com/icon.png", + "icon_type_label": "Icon Type", + "icon_type_auto": "Auto-detect Icon", + "icon_type_custom_url": "Custom Icon URL", + "icon_type_upload": "Upload Icon", + "icon_type_emoji": "Emoji", + "icon_type_letter": "Letter Avatar" }, "date": { "week": "Savaitė" @@ -63,7 +73,8 @@ }, "notes": { "title": "Užrašai", - "placeholder": "Rašykite čia" + "placeholder": "Rašykite čia", + "export_filename": "mue-notes.txt" }, "todo": { "title": "Užduotys", @@ -316,7 +327,16 @@ "photo_pack_settings": { "title": "{name} Settings", "refresh_photos": "Refresh Photos" - } + }, + "pack_count": { + "singular": "pack", + "plural": "packs" + }, + "photo_count": { + "singular": "photo", + "plural": "photos" + }, + "get_more": "Get more" }, "search": { "title": "Paieška", @@ -726,9 +746,44 @@ } }, "share": { - "copy_link": "Kopijuoti nuorodą" + "copy_link": "Kopijuoti nuorodą", + "item_type": { + "image": "this image", + "quote": "this quote", + "marketplace_item": "this marketplace item" + }, + "social": { + "twitter": "X (Twitter)", + "facebook": "Facebook", + "email": "Email", + "wechat": "WeChat", + "qq": "Tencent QQ" + }, + "twitter_message": "Check out {name} on @getmue", + "email_subject": "Check out this on Mue!", + "email_body": "{name} on Mue: {url}" } }, + "common": { + "navigation": { + "back": "Back", + "forward": "Forward", + "navigate_back": "Navigate back", + "navigate_forward": "Navigate forward", + "navigate_to": "Navigate to {item}" + }, + "actions": { + "edit": "Edit", + "remove": "Remove" + }, + "alt_text": { + "preview": "Preview", + "location": "Location", + "screenshot": "Screenshot" + }, + "add_translation": "Add translation", + "above_widgets": "Above widgets" + }, "toasts": { "quote": "Citata nukopijuota", "notes": "Užrašai nukopijuoti", diff --git a/src/i18n/locales/lv.json b/src/i18n/locales/lv.json index d4ece427..89b9567e 100644 --- a/src/i18n/locales/lv.json +++ b/src/i18n/locales/lv.json @@ -39,7 +39,17 @@ "icon": "Ikona (neobligāti)", "add": "Pievienot", "name_error": "Jānorāda nosaukums", - "url_error": "Jānorāda URL" + "url_error": "Jānorāda URL", + "suggested": "Suggested: {name}", + "name_placeholder": "Enter link name (optional)", + "url_placeholder": "example.com", + "icon_url_placeholder": "https://example.com/icon.png", + "icon_type_label": "Icon Type", + "icon_type_auto": "Auto-detect Icon", + "icon_type_custom_url": "Custom Icon URL", + "icon_type_upload": "Upload Icon", + "icon_type_emoji": "Emoji", + "icon_type_letter": "Letter Avatar" }, "date": { "week": "Nedēļa" @@ -63,7 +73,8 @@ }, "notes": { "title": "Piezīmes", - "placeholder": "Rakstiet šeit" + "placeholder": "Rakstiet šeit", + "export_filename": "mue-notes.txt" }, "todo": { "title": "Darāmo lietu saraksts", @@ -316,7 +327,16 @@ "photo_pack_settings": { "title": "{name} Settings", "refresh_photos": "Refresh Photos" - } + }, + "pack_count": { + "singular": "pack", + "plural": "packs" + }, + "photo_count": { + "singular": "photo", + "plural": "photos" + }, + "get_more": "Get more" }, "search": { "title": "Meklēšana", @@ -726,9 +746,44 @@ } }, "share": { - "copy_link": "Kopēt saiti" + "copy_link": "Kopēt saiti", + "item_type": { + "image": "this image", + "quote": "this quote", + "marketplace_item": "this marketplace item" + }, + "social": { + "twitter": "X (Twitter)", + "facebook": "Facebook", + "email": "Email", + "wechat": "WeChat", + "qq": "Tencent QQ" + }, + "twitter_message": "Check out {name} on @getmue", + "email_subject": "Check out this on Mue!", + "email_body": "{name} on Mue: {url}" } }, + "common": { + "navigation": { + "back": "Back", + "forward": "Forward", + "navigate_back": "Navigate back", + "navigate_forward": "Navigate forward", + "navigate_to": "Navigate to {item}" + }, + "actions": { + "edit": "Edit", + "remove": "Remove" + }, + "alt_text": { + "preview": "Preview", + "location": "Location", + "screenshot": "Screenshot" + }, + "add_translation": "Add translation", + "above_widgets": "Above widgets" + }, "toasts": { "quote": "Citāts nokopēts", "notes": "Piezīmes nokopētas", diff --git a/src/i18n/locales/nl.json b/src/i18n/locales/nl.json index fd53df32..5800e346 100644 --- a/src/i18n/locales/nl.json +++ b/src/i18n/locales/nl.json @@ -39,7 +39,17 @@ "icon": "Icoon (optioneel)", "add": "Toevoegen", "name_error": "Naam moet worden opgegeven", - "url_error": "URL moet worden opgegeven" + "url_error": "URL moet worden opgegeven", + "suggested": "Suggested: {name}", + "name_placeholder": "Enter link name (optional)", + "url_placeholder": "example.com", + "icon_url_placeholder": "https://example.com/icon.png", + "icon_type_label": "Icon Type", + "icon_type_auto": "Auto-detect Icon", + "icon_type_custom_url": "Custom Icon URL", + "icon_type_upload": "Upload Icon", + "icon_type_emoji": "Emoji", + "icon_type_letter": "Letter Avatar" }, "date": { "week": "Week" @@ -63,7 +73,8 @@ }, "notes": { "title": "Notities", - "placeholder": "Typ hier" + "placeholder": "Typ hier", + "export_filename": "mue-notes.txt" }, "todo": { "title": "Taken", @@ -316,7 +327,16 @@ "photo_pack_settings": { "title": "{name} Settings", "refresh_photos": "Refresh Photos" - } + }, + "pack_count": { + "singular": "pack", + "plural": "packs" + }, + "photo_count": { + "singular": "photo", + "plural": "photos" + }, + "get_more": "Get more" }, "search": { "title": "Zoekbalk", @@ -726,9 +746,44 @@ } }, "share": { - "copy_link": "Kopieer link" + "copy_link": "Kopieer link", + "item_type": { + "image": "this image", + "quote": "this quote", + "marketplace_item": "this marketplace item" + }, + "social": { + "twitter": "X (Twitter)", + "facebook": "Facebook", + "email": "Email", + "wechat": "WeChat", + "qq": "Tencent QQ" + }, + "twitter_message": "Check out {name} on @getmue", + "email_subject": "Check out this on Mue!", + "email_body": "{name} on Mue: {url}" } }, + "common": { + "navigation": { + "back": "Back", + "forward": "Forward", + "navigate_back": "Navigate back", + "navigate_forward": "Navigate forward", + "navigate_to": "Navigate to {item}" + }, + "actions": { + "edit": "Edit", + "remove": "Remove" + }, + "alt_text": { + "preview": "Preview", + "location": "Location", + "screenshot": "Screenshot" + }, + "add_translation": "Add translation", + "above_widgets": "Above widgets" + }, "toasts": { "quote": "Het citaat is gekopieerd", "notes": "Notes copied", diff --git a/src/i18n/locales/no.json b/src/i18n/locales/no.json index 4432c3db..eef505b2 100644 --- a/src/i18n/locales/no.json +++ b/src/i18n/locales/no.json @@ -39,7 +39,17 @@ "icon": "Icon (optional)", "add": "Add", "name_error": "Must provide name", - "url_error": "Must provide URL" + "url_error": "Must provide URL", + "suggested": "Suggested: {name}", + "name_placeholder": "Enter link name (optional)", + "url_placeholder": "example.com", + "icon_url_placeholder": "https://example.com/icon.png", + "icon_type_label": "Icon Type", + "icon_type_auto": "Auto-detect Icon", + "icon_type_custom_url": "Custom Icon URL", + "icon_type_upload": "Upload Icon", + "icon_type_emoji": "Emoji", + "icon_type_letter": "Letter Avatar" }, "date": { "week": "Week" @@ -63,7 +73,8 @@ }, "notes": { "title": "Notes", - "placeholder": "Type here" + "placeholder": "Type here", + "export_filename": "mue-notes.txt" }, "todo": { "title": "Todo", @@ -316,7 +327,16 @@ "photo_pack_settings": { "title": "{name} Settings", "refresh_photos": "Refresh Photos" - } + }, + "pack_count": { + "singular": "pack", + "plural": "packs" + }, + "photo_count": { + "singular": "photo", + "plural": "photos" + }, + "get_more": "Get more" }, "search": { "title": "Søkebar", @@ -726,9 +746,44 @@ } }, "share": { - "copy_link": "Copy link" + "copy_link": "Copy link", + "item_type": { + "image": "this image", + "quote": "this quote", + "marketplace_item": "this marketplace item" + }, + "social": { + "twitter": "X (Twitter)", + "facebook": "Facebook", + "email": "Email", + "wechat": "WeChat", + "qq": "Tencent QQ" + }, + "twitter_message": "Check out {name} on @getmue", + "email_subject": "Check out this on Mue!", + "email_body": "{name} on Mue: {url}" } }, + "common": { + "navigation": { + "back": "Back", + "forward": "Forward", + "navigate_back": "Navigate back", + "navigate_forward": "Navigate forward", + "navigate_to": "Navigate to {item}" + }, + "actions": { + "edit": "Edit", + "remove": "Remove" + }, + "alt_text": { + "preview": "Preview", + "location": "Location", + "screenshot": "Screenshot" + }, + "add_translation": "Add translation", + "above_widgets": "Above widgets" + }, "toasts": { "quote": "Sitat kopiert", "notes": "Notes copied", diff --git a/src/i18n/locales/peo.json b/src/i18n/locales/peo.json index d56e8167..01126ff7 100644 --- a/src/i18n/locales/peo.json +++ b/src/i18n/locales/peo.json @@ -39,7 +39,17 @@ "icon": "Icon (optional)", "add": "Add", "name_error": "Must provide name", - "url_error": "Must provide URL" + "url_error": "Must provide URL", + "suggested": "Suggested: {name}", + "name_placeholder": "Enter link name (optional)", + "url_placeholder": "example.com", + "icon_url_placeholder": "https://example.com/icon.png", + "icon_type_label": "Icon Type", + "icon_type_auto": "Auto-detect Icon", + "icon_type_custom_url": "Custom Icon URL", + "icon_type_upload": "Upload Icon", + "icon_type_emoji": "Emoji", + "icon_type_letter": "Letter Avatar" }, "date": { "week": "Week" @@ -63,7 +73,8 @@ }, "notes": { "title": "Notes", - "placeholder": "Type here" + "placeholder": "Type here", + "export_filename": "mue-notes.txt" }, "todo": { "title": "Todo", @@ -316,7 +327,16 @@ "photo_pack_settings": { "title": "{name} Settings", "refresh_photos": "Refresh Photos" - } + }, + "pack_count": { + "singular": "pack", + "plural": "packs" + }, + "photo_count": { + "singular": "photo", + "plural": "photos" + }, + "get_more": "Get more" }, "search": { "title": "Search", @@ -726,9 +746,44 @@ } }, "share": { - "copy_link": "Copy link" + "copy_link": "Copy link", + "item_type": { + "image": "this image", + "quote": "this quote", + "marketplace_item": "this marketplace item" + }, + "social": { + "twitter": "X (Twitter)", + "facebook": "Facebook", + "email": "Email", + "wechat": "WeChat", + "qq": "Tencent QQ" + }, + "twitter_message": "Check out {name} on @getmue", + "email_subject": "Check out this on Mue!", + "email_body": "{name} on Mue: {url}" } }, + "common": { + "navigation": { + "back": "Back", + "forward": "Forward", + "navigate_back": "Navigate back", + "navigate_forward": "Navigate forward", + "navigate_to": "Navigate to {item}" + }, + "actions": { + "edit": "Edit", + "remove": "Remove" + }, + "alt_text": { + "preview": "Preview", + "location": "Location", + "screenshot": "Screenshot" + }, + "add_translation": "Add translation", + "above_widgets": "Above widgets" + }, "toasts": { "quote": "Quote copied", "notes": "Notes copied", diff --git a/src/i18n/locales/pt.json b/src/i18n/locales/pt.json index fc93e570..b7c08266 100644 --- a/src/i18n/locales/pt.json +++ b/src/i18n/locales/pt.json @@ -39,7 +39,17 @@ "icon": "Ícone (opcional)", "add": "Adicionar", "name_error": "Deve fornecer o nome", - "url_error": "Forneça uma URL" + "url_error": "Forneça uma URL", + "suggested": "Suggested: {name}", + "name_placeholder": "Enter link name (optional)", + "url_placeholder": "example.com", + "icon_url_placeholder": "https://example.com/icon.png", + "icon_type_label": "Icon Type", + "icon_type_auto": "Auto-detect Icon", + "icon_type_custom_url": "Custom Icon URL", + "icon_type_upload": "Upload Icon", + "icon_type_emoji": "Emoji", + "icon_type_letter": "Letter Avatar" }, "date": { "week": "Semana" @@ -63,7 +73,8 @@ }, "notes": { "title": "Notas", - "placeholder": "Digite aqui" + "placeholder": "Digite aqui", + "export_filename": "mue-notes.txt" }, "todo": { "title": "Tarefas", @@ -316,7 +327,16 @@ "photo_pack_settings": { "title": "{name} Settings", "refresh_photos": "Refresh Photos" - } + }, + "pack_count": { + "singular": "pack", + "plural": "packs" + }, + "photo_count": { + "singular": "photo", + "plural": "photos" + }, + "get_more": "Get more" }, "search": { "title": "Pesquisar", @@ -726,9 +746,44 @@ } }, "share": { - "copy_link": "Copiar ligação" + "copy_link": "Copiar ligação", + "item_type": { + "image": "this image", + "quote": "this quote", + "marketplace_item": "this marketplace item" + }, + "social": { + "twitter": "X (Twitter)", + "facebook": "Facebook", + "email": "Email", + "wechat": "WeChat", + "qq": "Tencent QQ" + }, + "twitter_message": "Check out {name} on @getmue", + "email_subject": "Check out this on Mue!", + "email_body": "{name} on Mue: {url}" } }, + "common": { + "navigation": { + "back": "Back", + "forward": "Forward", + "navigate_back": "Navigate back", + "navigate_forward": "Navigate forward", + "navigate_to": "Navigate to {item}" + }, + "actions": { + "edit": "Edit", + "remove": "Remove" + }, + "alt_text": { + "preview": "Preview", + "location": "Location", + "screenshot": "Screenshot" + }, + "add_translation": "Add translation", + "above_widgets": "Above widgets" + }, "toasts": { "quote": "Citação copiada", "notes": "Notas copiadas", diff --git a/src/i18n/locales/pt_BR.json b/src/i18n/locales/pt_BR.json index 3a6d5e3b..8518e3f1 100644 --- a/src/i18n/locales/pt_BR.json +++ b/src/i18n/locales/pt_BR.json @@ -39,7 +39,17 @@ "icon": "Ícone (opcional)", "add": "Adicionar", "name_error": "Deve fornecer o nome", - "url_error": "Forneça uma URL" + "url_error": "Forneça uma URL", + "suggested": "Suggested: {name}", + "name_placeholder": "Enter link name (optional)", + "url_placeholder": "example.com", + "icon_url_placeholder": "https://example.com/icon.png", + "icon_type_label": "Icon Type", + "icon_type_auto": "Auto-detect Icon", + "icon_type_custom_url": "Custom Icon URL", + "icon_type_upload": "Upload Icon", + "icon_type_emoji": "Emoji", + "icon_type_letter": "Letter Avatar" }, "date": { "week": "Semana" @@ -63,7 +73,8 @@ }, "notes": { "title": "Notas", - "placeholder": "Digite aqui" + "placeholder": "Digite aqui", + "export_filename": "mue-notes.txt" }, "todo": { "title": "Tarefas", @@ -316,7 +327,16 @@ "photo_pack_settings": { "title": "{name} Settings", "refresh_photos": "Refresh Photos" - } + }, + "pack_count": { + "singular": "pack", + "plural": "packs" + }, + "photo_count": { + "singular": "photo", + "plural": "photos" + }, + "get_more": "Get more" }, "search": { "title": "Pesquisar", @@ -726,9 +746,44 @@ } }, "share": { - "copy_link": "Copiar link" + "copy_link": "Copiar link", + "item_type": { + "image": "this image", + "quote": "this quote", + "marketplace_item": "this marketplace item" + }, + "social": { + "twitter": "X (Twitter)", + "facebook": "Facebook", + "email": "Email", + "wechat": "WeChat", + "qq": "Tencent QQ" + }, + "twitter_message": "Check out {name} on @getmue", + "email_subject": "Check out this on Mue!", + "email_body": "{name} on Mue: {url}" } }, + "common": { + "navigation": { + "back": "Back", + "forward": "Forward", + "navigate_back": "Navigate back", + "navigate_forward": "Navigate forward", + "navigate_to": "Navigate to {item}" + }, + "actions": { + "edit": "Edit", + "remove": "Remove" + }, + "alt_text": { + "preview": "Preview", + "location": "Location", + "screenshot": "Screenshot" + }, + "add_translation": "Add translation", + "above_widgets": "Above widgets" + }, "toasts": { "quote": "Citação copiada", "notes": "Notas copiadas", diff --git a/src/i18n/locales/ru.json b/src/i18n/locales/ru.json index b0438bd8..98be3a2a 100644 --- a/src/i18n/locales/ru.json +++ b/src/i18n/locales/ru.json @@ -39,7 +39,17 @@ "icon": "Значок (необязательно)", "add": "Add", "name_error": "Должно содержать имя", - "url_error": "Должно содержать URL" + "url_error": "Должно содержать URL", + "suggested": "Suggested: {name}", + "name_placeholder": "Enter link name (optional)", + "url_placeholder": "example.com", + "icon_url_placeholder": "https://example.com/icon.png", + "icon_type_label": "Icon Type", + "icon_type_auto": "Auto-detect Icon", + "icon_type_custom_url": "Custom Icon URL", + "icon_type_upload": "Upload Icon", + "icon_type_emoji": "Emoji", + "icon_type_letter": "Letter Avatar" }, "date": { "week": "Неделя" @@ -63,7 +73,8 @@ }, "notes": { "title": "Notes", - "placeholder": "Напишите здесь" + "placeholder": "Напишите здесь", + "export_filename": "mue-notes.txt" }, "todo": { "title": "Задачи", @@ -316,7 +327,16 @@ "photo_pack_settings": { "title": "{name} Settings", "refresh_photos": "Refresh Photos" - } + }, + "pack_count": { + "singular": "pack", + "plural": "packs" + }, + "photo_count": { + "singular": "photo", + "plural": "photos" + }, + "get_more": "Get more" }, "search": { "title": "Панель поиска", @@ -726,9 +746,44 @@ } }, "share": { - "copy_link": "Копировать ссылку" + "copy_link": "Копировать ссылку", + "item_type": { + "image": "this image", + "quote": "this quote", + "marketplace_item": "this marketplace item" + }, + "social": { + "twitter": "X (Twitter)", + "facebook": "Facebook", + "email": "Email", + "wechat": "WeChat", + "qq": "Tencent QQ" + }, + "twitter_message": "Check out {name} on @getmue", + "email_subject": "Check out this on Mue!", + "email_body": "{name} on Mue: {url}" } }, + "common": { + "navigation": { + "back": "Back", + "forward": "Forward", + "navigate_back": "Navigate back", + "navigate_forward": "Navigate forward", + "navigate_to": "Navigate to {item}" + }, + "actions": { + "edit": "Edit", + "remove": "Remove" + }, + "alt_text": { + "preview": "Preview", + "location": "Location", + "screenshot": "Screenshot" + }, + "add_translation": "Add translation", + "above_widgets": "Above widgets" + }, "toasts": { "quote": "Цитата скопирована", "notes": "Notes copied", diff --git a/src/i18n/locales/sl.json b/src/i18n/locales/sl.json index 7390c1c3..61ceed5d 100644 --- a/src/i18n/locales/sl.json +++ b/src/i18n/locales/sl.json @@ -39,7 +39,17 @@ "icon": "Ikona (neobvezno)", "add": "Dodaj", "name_error": "Vnesite ime", - "url_error": "Vnesite URL" + "url_error": "Vnesite URL", + "suggested": "Suggested: {name}", + "name_placeholder": "Enter link name (optional)", + "url_placeholder": "example.com", + "icon_url_placeholder": "https://example.com/icon.png", + "icon_type_label": "Icon Type", + "icon_type_auto": "Auto-detect Icon", + "icon_type_custom_url": "Custom Icon URL", + "icon_type_upload": "Upload Icon", + "icon_type_emoji": "Emoji", + "icon_type_letter": "Letter Avatar" }, "date": { "week": "Teden" @@ -63,7 +73,8 @@ }, "notes": { "title": "Opombe", - "placeholder": "Vnesite tukaj" + "placeholder": "Vnesite tukaj", + "export_filename": "mue-notes.txt" }, "todo": { "title": "Opravila", @@ -316,7 +327,16 @@ "photo_pack_settings": { "title": "{name} Settings", "refresh_photos": "Refresh Photos" - } + }, + "pack_count": { + "singular": "pack", + "plural": "packs" + }, + "photo_count": { + "singular": "photo", + "plural": "photos" + }, + "get_more": "Get more" }, "search": { "title": "Iskanje", @@ -726,9 +746,44 @@ } }, "share": { - "copy_link": "Kopiraj povezavo" + "copy_link": "Kopiraj povezavo", + "item_type": { + "image": "this image", + "quote": "this quote", + "marketplace_item": "this marketplace item" + }, + "social": { + "twitter": "X (Twitter)", + "facebook": "Facebook", + "email": "Email", + "wechat": "WeChat", + "qq": "Tencent QQ" + }, + "twitter_message": "Check out {name} on @getmue", + "email_subject": "Check out this on Mue!", + "email_body": "{name} on Mue: {url}" } }, + "common": { + "navigation": { + "back": "Back", + "forward": "Forward", + "navigate_back": "Navigate back", + "navigate_forward": "Navigate forward", + "navigate_to": "Navigate to {item}" + }, + "actions": { + "edit": "Edit", + "remove": "Remove" + }, + "alt_text": { + "preview": "Preview", + "location": "Location", + "screenshot": "Screenshot" + }, + "add_translation": "Add translation", + "above_widgets": "Above widgets" + }, "toasts": { "quote": "Citat kopiran", "notes": "Opombe kopirane", diff --git a/src/i18n/locales/sv.json b/src/i18n/locales/sv.json index 98ccaa99..4384c564 100644 --- a/src/i18n/locales/sv.json +++ b/src/i18n/locales/sv.json @@ -39,7 +39,17 @@ "icon": "Icon (optional)", "add": "Add", "name_error": "Must provide name", - "url_error": "Must provide URL" + "url_error": "Must provide URL", + "suggested": "Suggested: {name}", + "name_placeholder": "Enter link name (optional)", + "url_placeholder": "example.com", + "icon_url_placeholder": "https://example.com/icon.png", + "icon_type_label": "Icon Type", + "icon_type_auto": "Auto-detect Icon", + "icon_type_custom_url": "Custom Icon URL", + "icon_type_upload": "Upload Icon", + "icon_type_emoji": "Emoji", + "icon_type_letter": "Letter Avatar" }, "date": { "week": "Week" @@ -63,7 +73,8 @@ }, "notes": { "title": "Notes", - "placeholder": "Type here" + "placeholder": "Type here", + "export_filename": "mue-notes.txt" }, "todo": { "title": "Todo", @@ -316,7 +327,16 @@ "photo_pack_settings": { "title": "{name} Settings", "refresh_photos": "Refresh Photos" - } + }, + "pack_count": { + "singular": "pack", + "plural": "packs" + }, + "photo_count": { + "singular": "photo", + "plural": "photos" + }, + "get_more": "Get more" }, "search": { "title": "Search", @@ -726,9 +746,44 @@ } }, "share": { - "copy_link": "Copy link" + "copy_link": "Copy link", + "item_type": { + "image": "this image", + "quote": "this quote", + "marketplace_item": "this marketplace item" + }, + "social": { + "twitter": "X (Twitter)", + "facebook": "Facebook", + "email": "Email", + "wechat": "WeChat", + "qq": "Tencent QQ" + }, + "twitter_message": "Check out {name} on @getmue", + "email_subject": "Check out this on Mue!", + "email_body": "{name} on Mue: {url}" } }, + "common": { + "navigation": { + "back": "Back", + "forward": "Forward", + "navigate_back": "Navigate back", + "navigate_forward": "Navigate forward", + "navigate_to": "Navigate to {item}" + }, + "actions": { + "edit": "Edit", + "remove": "Remove" + }, + "alt_text": { + "preview": "Preview", + "location": "Location", + "screenshot": "Screenshot" + }, + "add_translation": "Add translation", + "above_widgets": "Above widgets" + }, "toasts": { "quote": "Quote copied", "notes": "Notes copied", diff --git a/src/i18n/locales/ta.json b/src/i18n/locales/ta.json index 85c3dfa1..940be6cc 100644 --- a/src/i18n/locales/ta.json +++ b/src/i18n/locales/ta.json @@ -39,7 +39,17 @@ "icon": "படவுரு (விரும்பினால்)", "add": "கூட்டு", "name_error": "பெயரை வழங்க வேண்டும்", - "url_error": "முகவரி ஐ வழங்க வேண்டும்" + "url_error": "முகவரி ஐ வழங்க வேண்டும்", + "suggested": "Suggested: {name}", + "name_placeholder": "Enter link name (optional)", + "url_placeholder": "example.com", + "icon_url_placeholder": "https://example.com/icon.png", + "icon_type_label": "Icon Type", + "icon_type_auto": "Auto-detect Icon", + "icon_type_custom_url": "Custom Icon URL", + "icon_type_upload": "Upload Icon", + "icon_type_emoji": "Emoji", + "icon_type_letter": "Letter Avatar" }, "date": { "week": "வாரம்" @@ -63,7 +73,8 @@ }, "notes": { "title": "குறிப்புகள்", - "placeholder": "இங்கே தட்டச்சு செய்க" + "placeholder": "இங்கே தட்டச்சு செய்க", + "export_filename": "mue-notes.txt" }, "todo": { "title": "அனைத்தும்", @@ -316,7 +327,16 @@ "photo_pack_settings": { "title": "{name} Settings", "refresh_photos": "Refresh Photos" - } + }, + "pack_count": { + "singular": "pack", + "plural": "packs" + }, + "photo_count": { + "singular": "photo", + "plural": "photos" + }, + "get_more": "Get more" }, "search": { "title": "தேடல்", @@ -726,9 +746,44 @@ } }, "share": { - "copy_link": "இணைப்பை நகலெடுக்கவும்" + "copy_link": "இணைப்பை நகலெடுக்கவும்", + "item_type": { + "image": "this image", + "quote": "this quote", + "marketplace_item": "this marketplace item" + }, + "social": { + "twitter": "X (Twitter)", + "facebook": "Facebook", + "email": "Email", + "wechat": "WeChat", + "qq": "Tencent QQ" + }, + "twitter_message": "Check out {name} on @getmue", + "email_subject": "Check out this on Mue!", + "email_body": "{name} on Mue: {url}" } }, + "common": { + "navigation": { + "back": "Back", + "forward": "Forward", + "navigate_back": "Navigate back", + "navigate_forward": "Navigate forward", + "navigate_to": "Navigate to {item}" + }, + "actions": { + "edit": "Edit", + "remove": "Remove" + }, + "alt_text": { + "preview": "Preview", + "location": "Location", + "screenshot": "Screenshot" + }, + "add_translation": "Add translation", + "above_widgets": "Above widgets" + }, "toasts": { "quote": "மேற்கோள் நகலெடுக்கப்பட்டது", "notes": "குறிப்புகள் நகலெடுக்கப்பட்டன", diff --git a/src/i18n/locales/tr_TR.json b/src/i18n/locales/tr_TR.json index 8bc196b6..360e9824 100644 --- a/src/i18n/locales/tr_TR.json +++ b/src/i18n/locales/tr_TR.json @@ -39,7 +39,17 @@ "icon": "İkon (İsteğe Bağlı)", "add": "Ekle", "name_error": "İsim belirtilmelidir", - "url_error": "URL sağlanmalıdır" + "url_error": "URL sağlanmalıdır", + "suggested": "Suggested: {name}", + "name_placeholder": "Enter link name (optional)", + "url_placeholder": "example.com", + "icon_url_placeholder": "https://example.com/icon.png", + "icon_type_label": "Icon Type", + "icon_type_auto": "Auto-detect Icon", + "icon_type_custom_url": "Custom Icon URL", + "icon_type_upload": "Upload Icon", + "icon_type_emoji": "Emoji", + "icon_type_letter": "Letter Avatar" }, "date": { "week": "{number}. Hafta" @@ -63,7 +73,8 @@ }, "notes": { "title": "Notlar", - "placeholder": "Buraya yaz" + "placeholder": "Buraya yaz", + "export_filename": "mue-notes.txt" }, "todo": { "title": "Yapılacaklar", @@ -316,7 +327,16 @@ "photo_pack_settings": { "title": "{name} Settings", "refresh_photos": "Refresh Photos" - } + }, + "pack_count": { + "singular": "pack", + "plural": "packs" + }, + "photo_count": { + "singular": "photo", + "plural": "photos" + }, + "get_more": "Get more" }, "search": { "title": "Arama", @@ -726,9 +746,44 @@ } }, "share": { - "copy_link": "Bağlantıyı kopyala" + "copy_link": "Bağlantıyı kopyala", + "item_type": { + "image": "this image", + "quote": "this quote", + "marketplace_item": "this marketplace item" + }, + "social": { + "twitter": "X (Twitter)", + "facebook": "Facebook", + "email": "Email", + "wechat": "WeChat", + "qq": "Tencent QQ" + }, + "twitter_message": "Check out {name} on @getmue", + "email_subject": "Check out this on Mue!", + "email_body": "{name} on Mue: {url}" } }, + "common": { + "navigation": { + "back": "Back", + "forward": "Forward", + "navigate_back": "Navigate back", + "navigate_forward": "Navigate forward", + "navigate_to": "Navigate to {item}" + }, + "actions": { + "edit": "Edit", + "remove": "Remove" + }, + "alt_text": { + "preview": "Preview", + "location": "Location", + "screenshot": "Screenshot" + }, + "add_translation": "Add translation", + "above_widgets": "Above widgets" + }, "toasts": { "quote": "Alıntı kopyalandı", "notes": "Not kopyalandı", diff --git a/src/i18n/locales/uk.json b/src/i18n/locales/uk.json index fa9619a7..d5f0c618 100644 --- a/src/i18n/locales/uk.json +++ b/src/i18n/locales/uk.json @@ -39,7 +39,17 @@ "icon": "Іконка (необов'язково)", "add": "Додати", "name_error": "Необхідно вказати ім'я", - "url_error": "Необхідно вказати URL-адресу" + "url_error": "Необхідно вказати URL-адресу", + "suggested": "Suggested: {name}", + "name_placeholder": "Enter link name (optional)", + "url_placeholder": "example.com", + "icon_url_placeholder": "https://example.com/icon.png", + "icon_type_label": "Icon Type", + "icon_type_auto": "Auto-detect Icon", + "icon_type_custom_url": "Custom Icon URL", + "icon_type_upload": "Upload Icon", + "icon_type_emoji": "Emoji", + "icon_type_letter": "Letter Avatar" }, "date": { "week": "Тиждень" @@ -63,7 +73,8 @@ }, "notes": { "title": "Примітки", - "placeholder": "Введіть тут" + "placeholder": "Введіть тут", + "export_filename": "mue-notes.txt" }, "todo": { "title": "Todo", @@ -316,7 +327,16 @@ "photo_pack_settings": { "title": "{name} Settings", "refresh_photos": "Refresh Photos" - } + }, + "pack_count": { + "singular": "pack", + "plural": "packs" + }, + "photo_count": { + "singular": "photo", + "plural": "photos" + }, + "get_more": "Get more" }, "search": { "title": "Пошук", @@ -726,9 +746,44 @@ } }, "share": { - "copy_link": "Скопіювати посилання" + "copy_link": "Скопіювати посилання", + "item_type": { + "image": "this image", + "quote": "this quote", + "marketplace_item": "this marketplace item" + }, + "social": { + "twitter": "X (Twitter)", + "facebook": "Facebook", + "email": "Email", + "wechat": "WeChat", + "qq": "Tencent QQ" + }, + "twitter_message": "Check out {name} on @getmue", + "email_subject": "Check out this on Mue!", + "email_body": "{name} on Mue: {url}" } }, + "common": { + "navigation": { + "back": "Back", + "forward": "Forward", + "navigate_back": "Navigate back", + "navigate_forward": "Navigate forward", + "navigate_to": "Navigate to {item}" + }, + "actions": { + "edit": "Edit", + "remove": "Remove" + }, + "alt_text": { + "preview": "Preview", + "location": "Location", + "screenshot": "Screenshot" + }, + "add_translation": "Add translation", + "above_widgets": "Above widgets" + }, "toasts": { "quote": "Скопійовані квоти", "notes": "Нотатки скопійовано", diff --git a/src/i18n/locales/vi.json b/src/i18n/locales/vi.json index 410ee158..953c2b87 100644 --- a/src/i18n/locales/vi.json +++ b/src/i18n/locales/vi.json @@ -39,7 +39,17 @@ "icon": "Icon (optional)", "add": "Add", "name_error": "Must provide name", - "url_error": "Must provide URL" + "url_error": "Must provide URL", + "suggested": "Suggested: {name}", + "name_placeholder": "Enter link name (optional)", + "url_placeholder": "example.com", + "icon_url_placeholder": "https://example.com/icon.png", + "icon_type_label": "Icon Type", + "icon_type_auto": "Auto-detect Icon", + "icon_type_custom_url": "Custom Icon URL", + "icon_type_upload": "Upload Icon", + "icon_type_emoji": "Emoji", + "icon_type_letter": "Letter Avatar" }, "date": { "week": "Week" @@ -63,7 +73,8 @@ }, "notes": { "title": "Notes", - "placeholder": "Type here" + "placeholder": "Type here", + "export_filename": "mue-notes.txt" }, "todo": { "title": "Todo", @@ -316,7 +327,16 @@ "photo_pack_settings": { "title": "{name} Settings", "refresh_photos": "Refresh Photos" - } + }, + "pack_count": { + "singular": "pack", + "plural": "packs" + }, + "photo_count": { + "singular": "photo", + "plural": "photos" + }, + "get_more": "Get more" }, "search": { "title": "Search", @@ -726,9 +746,44 @@ } }, "share": { - "copy_link": "Copy link" + "copy_link": "Copy link", + "item_type": { + "image": "this image", + "quote": "this quote", + "marketplace_item": "this marketplace item" + }, + "social": { + "twitter": "X (Twitter)", + "facebook": "Facebook", + "email": "Email", + "wechat": "WeChat", + "qq": "Tencent QQ" + }, + "twitter_message": "Check out {name} on @getmue", + "email_subject": "Check out this on Mue!", + "email_body": "{name} on Mue: {url}" } }, + "common": { + "navigation": { + "back": "Back", + "forward": "Forward", + "navigate_back": "Navigate back", + "navigate_forward": "Navigate forward", + "navigate_to": "Navigate to {item}" + }, + "actions": { + "edit": "Edit", + "remove": "Remove" + }, + "alt_text": { + "preview": "Preview", + "location": "Location", + "screenshot": "Screenshot" + }, + "add_translation": "Add translation", + "above_widgets": "Above widgets" + }, "toasts": { "quote": "Quote copied", "notes": "Notes copied", diff --git a/src/i18n/locales/zh_CN.json b/src/i18n/locales/zh_CN.json index 20eda0c5..9e5b0aee 100644 --- a/src/i18n/locales/zh_CN.json +++ b/src/i18n/locales/zh_CN.json @@ -39,7 +39,17 @@ "icon": "图标 (可选)", "add": "添加", "name_error": "请输入名称", - "url_error": "请输入链接" + "url_error": "请输入链接", + "suggested": "Suggested: {name}", + "name_placeholder": "Enter link name (optional)", + "url_placeholder": "example.com", + "icon_url_placeholder": "https://example.com/icon.png", + "icon_type_label": "Icon Type", + "icon_type_auto": "Auto-detect Icon", + "icon_type_custom_url": "Custom Icon URL", + "icon_type_upload": "Upload Icon", + "icon_type_emoji": "Emoji", + "icon_type_letter": "Letter Avatar" }, "date": { "week": "周" @@ -63,7 +73,8 @@ }, "notes": { "title": "便签", - "placeholder": "请键入内容" + "placeholder": "请键入内容", + "export_filename": "mue-notes.txt" }, "todo": { "title": "计划任务", @@ -316,7 +327,16 @@ "photo_pack_settings": { "title": "{name} Settings", "refresh_photos": "Refresh Photos" - } + }, + "pack_count": { + "singular": "pack", + "plural": "packs" + }, + "photo_count": { + "singular": "photo", + "plural": "photos" + }, + "get_more": "Get more" }, "search": { "title": "搜索栏", @@ -726,9 +746,44 @@ } }, "share": { - "copy_link": "Copy link" + "copy_link": "Copy link", + "item_type": { + "image": "this image", + "quote": "this quote", + "marketplace_item": "this marketplace item" + }, + "social": { + "twitter": "X (Twitter)", + "facebook": "Facebook", + "email": "Email", + "wechat": "WeChat", + "qq": "Tencent QQ" + }, + "twitter_message": "Check out {name} on @getmue", + "email_subject": "Check out this on Mue!", + "email_body": "{name} on Mue: {url}" } }, + "common": { + "navigation": { + "back": "Back", + "forward": "Forward", + "navigate_back": "Navigate back", + "navigate_forward": "Navigate forward", + "navigate_to": "Navigate to {item}" + }, + "actions": { + "edit": "Edit", + "remove": "Remove" + }, + "alt_text": { + "preview": "Preview", + "location": "Location", + "screenshot": "Screenshot" + }, + "add_translation": "Add translation", + "above_widgets": "Above widgets" + }, "toasts": { "quote": "名言已复制", "notes": "便签已复制", diff --git a/src/i18n/locales/zh_Hant.json b/src/i18n/locales/zh_Hant.json index b03b870a..30b544cc 100644 --- a/src/i18n/locales/zh_Hant.json +++ b/src/i18n/locales/zh_Hant.json @@ -39,7 +39,17 @@ "icon": "圖示(選擇性)", "add": "增加", "name_error": "必須提供名稱", - "url_error": "必須提供網址" + "url_error": "必須提供網址", + "suggested": "Suggested: {name}", + "name_placeholder": "Enter link name (optional)", + "url_placeholder": "example.com", + "icon_url_placeholder": "https://example.com/icon.png", + "icon_type_label": "Icon Type", + "icon_type_auto": "Auto-detect Icon", + "icon_type_custom_url": "Custom Icon URL", + "icon_type_upload": "Upload Icon", + "icon_type_emoji": "Emoji", + "icon_type_letter": "Letter Avatar" }, "date": { "week": "週" @@ -63,7 +73,8 @@ }, "notes": { "title": "筆記", - "placeholder": "在此輸入" + "placeholder": "在此輸入", + "export_filename": "mue-notes.txt" }, "todo": { "title": "待辦事項", @@ -316,7 +327,16 @@ "photo_pack_settings": { "title": "{name} Settings", "refresh_photos": "Refresh Photos" - } + }, + "pack_count": { + "singular": "pack", + "plural": "packs" + }, + "photo_count": { + "singular": "photo", + "plural": "photos" + }, + "get_more": "Get more" }, "search": { "title": "Search", @@ -726,9 +746,44 @@ } }, "share": { - "copy_link": "Copy link" + "copy_link": "Copy link", + "item_type": { + "image": "this image", + "quote": "this quote", + "marketplace_item": "this marketplace item" + }, + "social": { + "twitter": "X (Twitter)", + "facebook": "Facebook", + "email": "Email", + "wechat": "WeChat", + "qq": "Tencent QQ" + }, + "twitter_message": "Check out {name} on @getmue", + "email_subject": "Check out this on Mue!", + "email_body": "{name} on Mue: {url}" } }, + "common": { + "navigation": { + "back": "Back", + "forward": "Forward", + "navigate_back": "Navigate back", + "navigate_forward": "Navigate forward", + "navigate_to": "Navigate to {item}" + }, + "actions": { + "edit": "Edit", + "remove": "Remove" + }, + "alt_text": { + "preview": "Preview", + "location": "Location", + "screenshot": "Screenshot" + }, + "add_translation": "Add translation", + "above_widgets": "Above widgets" + }, "toasts": { "quote": "Quote copied", "notes": "Notes copied", diff --git a/vite.config.mjs b/vite.config.mjs index 86c85903..38372e10 100644 --- a/vite.config.mjs +++ b/vite.config.mjs @@ -12,7 +12,7 @@ const prepareBuilds = () => ({ name: 'prepareBuilds', closeBundle() { if (isProd) { - console.log('📦 Building extension packages...'); + console.log('Building extension packages...'); fs.mkdirSync(path.resolve(__dirname, './build'), { recursive: true }); fs.mkdirSync(path.resolve(__dirname, './dist'), { recursive: true }); @@ -21,7 +21,7 @@ const prepareBuilds = () => ({ fs.mkdirSync(distAssetsPath, { recursive: true }); fs.cpSync(path.resolve(__dirname, './src/assets'), distAssetsPath, { recursive: true }); - console.log('🔨 Building Chrome extension...'); + console.log('Building Chrome extension...'); const chromeBuildPath = path.resolve(__dirname, './build/chrome'); fs.mkdirSync(chromeBuildPath, { recursive: true }); @@ -48,7 +48,7 @@ const prepareBuilds = () => ({ { recursive: true }, ); - console.log('🦊 Building Firefox extension...'); + console.log('Building Firefox extension...'); const firefoxBuildPath = path.resolve(__dirname, './build/firefox'); fs.mkdirSync(firefoxBuildPath, { recursive: true }); @@ -69,7 +69,7 @@ const prepareBuilds = () => ({ { recursive: true }, ); - console.log('🧭 Building Safari extension...'); + console.log('Building Safari extension...'); const safariResourcesPath = path.resolve(__dirname, './safari/Mue Extension/Resources'); fs.mkdirSync(safariResourcesPath, { recursive: true }); @@ -95,18 +95,18 @@ const prepareBuilds = () => ({ { recursive: true }, ); - console.log('📦 Creating distribution packages...'); + console.log('Creating distribution packages...'); const chromeZip = new ADMZip(); chromeZip.addLocalFolder(chromeBuildPath); chromeZip.writeZip(path.resolve(__dirname, `./build/chrome-${pkg.version}.zip`)); - console.log(`✅ Chrome: chrome-${pkg.version}.zip`); + console.log(`Chrome: chrome-${pkg.version}.zip`); const firefoxZip = new ADMZip(); firefoxZip.addLocalFolder(firefoxBuildPath); firefoxZip.writeZip(path.resolve(__dirname, `./build/firefox-${pkg.version}.zip`)); - console.log(`✅ Firefox: firefox-${pkg.version}.zip`); + console.log(`Firefox: firefox-${pkg.version}.zip`); - console.log('✨ Build complete!'); + console.log('Build complete!'); } }, });