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 && (
)}
@@ -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"
/>
}
- tooltipTitle="Facebook"
+ tooltipTitle={variables.getMessage('modals.share.social.facebook')}
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"
>
-

+

);
};
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')}`}
/>
- } label="Get more" />
+ } label={variables.getMessage('modals.main.settings.sections.background.source.get_more')} />
>
);
diff --git a/src/features/misc/components/AddWidgetModal.jsx b/src/features/misc/components/AddWidgetModal.jsx
index d32f81cf..58135901 100644
--- a/src/features/misc/components/AddWidgetModal.jsx
+++ b/src/features/misc/components/AddWidgetModal.jsx
@@ -94,7 +94,9 @@ function AddWidgetModal({ urlError, addWidget, closeModal, edit, editData, editW
checked={renderAbove}
onChange={(e) => setRenderAbove(e.target.checked)}
className="checkbox-input"
- aria-label="Render above other widgets"
+ aria-label={variables.getMessage(
+ 'modals.main.settings.sections.advanced.custom_widget.render_above',
+ )}
/>
{renderAbove && }
diff --git a/src/features/misc/components/SortableWidgetItem.jsx b/src/features/misc/components/SortableWidgetItem.jsx
index 68bed675..ba1c219a 100644
--- a/src/features/misc/components/SortableWidgetItem.jsx
+++ b/src/features/misc/components/SortableWidgetItem.jsx
@@ -1,9 +1,17 @@
import { MdEdit, MdDelete, MdWidgets } 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';
export const SortableWidgetItem = ({ value, startEditWidget, deleteWidget }) => {
+ const t = useT();
+
+ const getPositionLabel = (position) => {
+ const positionKey = position?.replace('-', '_');
+ const translationKey = `modals.main.settings.sections.advanced.custom_widget.positions.${positionKey}`;
+ return t(translationKey) || t('modals.main.settings.sections.advanced.custom_widget.positions.top_right');
+ };
const { attributes, listeners, setNodeRef, transform, transition, isDragging } = useSortable({
id: value.key,
});
@@ -33,10 +41,8 @@ export const SortableWidgetItem = ({ value, startEditWidget, deleteWidget }) =>
{value.url}
- {value.position
- ? value.position.replace('-', ' ').replace(/\b\w/g, (l) => l.toUpperCase())
- : 'Top Right'}
- {value.renderAbove ? ' • Above widgets' : ''}
+ {getPositionLabel(value.position)}
+ {value.renderAbove ? ` • ${t('common.above_widgets')}` : ''}
@@ -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')}
e.stopPropagation();
deleteWidget(value.key, e);
}}
- title="Remove"
+ title={t('common.actions.remove')}
>
- Remove
+ {t('common.actions.remove')}
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')}
{
e.stopPropagation();
deleteLink(value.key, e);
}}
- title="Remove"
+ title={t('common.actions.remove')}
disabled={!enabled}
aria-disabled={!enabled}
>
- Remove
+ {t('common.actions.remove')}
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!');
}
},
});