chore: i18n the last - hopefully
This commit is contained in:
@@ -28,8 +28,8 @@ export default [
|
|||||||
i18next,
|
i18next,
|
||||||
},
|
},
|
||||||
rules: {
|
rules: {
|
||||||
'i18next/no-literal-string': ['warn', {
|
'i18next/no-literal-string': ['error', {
|
||||||
mode: 'jsx-only',
|
mode: 'jsx-text-only',
|
||||||
'jsx-components': {
|
'jsx-components': {
|
||||||
exclude: ['Trans'],
|
exclude: ['Trans'],
|
||||||
},
|
},
|
||||||
@@ -83,6 +83,13 @@ export default [
|
|||||||
'[0-9!-/:-@[-`{-~]+',
|
'[0-9!-/:-@[-`{-~]+',
|
||||||
'[A-Z_-]+',
|
'[A-Z_-]+',
|
||||||
/^\p{Emoji}+$/u,
|
/^\p{Emoji}+$/u,
|
||||||
|
/^[\s\p{Emoji}\uFE0F]+$/u,
|
||||||
|
/^[\s0-9%—()\-+.]+$/,
|
||||||
|
/^[\s+ו○●⊘→←↶↷―✕✖✔❝]+$/,
|
||||||
|
/^H[1-6]$/,
|
||||||
|
/^(DB\s*→\s*File|File\s*→\s*DB)$/,
|
||||||
|
/^\/posts\/$/,
|
||||||
|
'bDS',
|
||||||
'[✓✗▼▶◀▲]+'
|
'[✓✗▼▶◀▲]+'
|
||||||
],
|
],
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -11,7 +11,7 @@
|
|||||||
"dev:electron": "wait-on http://localhost:5173 && cross-env NODE_ENV=development node ./node_modules/electron/cli.js .",
|
"dev:electron": "wait-on http://localhost:5173 && cross-env NODE_ENV=development node ./node_modules/electron/cli.js .",
|
||||||
"start": "concurrently --kill-others \"npm run dev:renderer\" \"npm run start:electron\"",
|
"start": "concurrently --kill-others \"npm run dev:renderer\" \"npm run start:electron\"",
|
||||||
"start:electron": "wait-on http://localhost:5173 && cross-env NODE_ENV=development node ./node_modules/electron/cli.js .",
|
"start:electron": "wait-on http://localhost:5173 && cross-env NODE_ENV=development node ./node_modules/electron/cli.js .",
|
||||||
"build": "npm run db:generate && npm run build:main && npm run build:renderer",
|
"build": "npm run lint && npm run db:generate && npm run build:main && npm run build:renderer",
|
||||||
"build:main": "node ./node_modules/typescript/bin/tsc -p tsconfig.main.json",
|
"build:main": "node ./node_modules/typescript/bin/tsc -p tsconfig.main.json",
|
||||||
"build:renderer": "node ./node_modules/vite/bin/vite.js build",
|
"build:renderer": "node ./node_modules/vite/bin/vite.js build",
|
||||||
"start:prod": "node ./node_modules/electron/cli.js .",
|
"start:prod": "node ./node_modules/electron/cli.js .",
|
||||||
@@ -20,8 +20,8 @@
|
|||||||
"test:watch": "vitest",
|
"test:watch": "vitest",
|
||||||
"test:coverage": "vitest run --coverage",
|
"test:coverage": "vitest run --coverage",
|
||||||
"test:ui": "vitest --ui",
|
"test:ui": "vitest --ui",
|
||||||
"lint": "eslint \"src/renderer/**/*.{ts,tsx}\"",
|
"lint": "eslint \"src/renderer/**/*.{ts,tsx}\" --max-warnings 0",
|
||||||
"lint:i18n": "eslint \"src/renderer/**/*.{ts,tsx}\" --rule \"i18next/no-literal-string: warn\"",
|
"lint:i18n": "eslint \"src/renderer/**/*.{ts,tsx}\" --max-warnings 0",
|
||||||
"db:generate": "node ./node_modules/drizzle-kit/bin.cjs generate",
|
"db:generate": "node ./node_modules/drizzle-kit/bin.cjs generate",
|
||||||
"db:migrate": "node ./node_modules/tsx/dist/cli.mjs src/main/database/migrate.ts",
|
"db:migrate": "node ./node_modules/tsx/dist/cli.mjs src/main/database/migrate.ts",
|
||||||
"db:studio": "node ./node_modules/drizzle-kit/bin.cjs studio"
|
"db:studio": "node ./node_modules/drizzle-kit/bin.cjs studio"
|
||||||
|
|||||||
@@ -95,8 +95,6 @@ const EditorToolbar: React.FC<EditorToolbarProps> = ({ onUserInteraction }) => {
|
|||||||
const [insertMode, setInsertMode] = useState<InsertModalMode>(null);
|
const [insertMode, setInsertMode] = useState<InsertModalMode>(null);
|
||||||
const [selectedText, setSelectedText] = useState('');
|
const [selectedText, setSelectedText] = useState('');
|
||||||
|
|
||||||
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
||||||
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
||||||
const runCommand = useCallback((commandKey: any, payload?: unknown) => {
|
const runCommand = useCallback((commandKey: any, payload?: unknown) => {
|
||||||
if (loading) return;
|
if (loading) return;
|
||||||
const editor = getEditor();
|
const editor = getEditor();
|
||||||
|
|||||||
@@ -51,7 +51,7 @@ export const StatusBar: React.FC = () => {
|
|||||||
<span className="task-spinner" />
|
<span className="task-spinner" />
|
||||||
<span>{runningTasks[0].message}</span>
|
<span>{runningTasks[0].message}</span>
|
||||||
{runningTasks.length > 1 && (
|
{runningTasks.length > 1 && (
|
||||||
<span className="text-muted">+{runningTasks.length - 1} more</span>
|
<span className="text-muted">{t('statusBar.more', { count: runningTasks.length - 1 })}</span>
|
||||||
)}
|
)}
|
||||||
</div>
|
</div>
|
||||||
)}
|
)}
|
||||||
|
|||||||
@@ -698,6 +698,7 @@
|
|||||||
"postSearch.hint": "Mit ↑↓ navigieren, Enter auswählen, Esc schließen",
|
"postSearch.hint": "Mit ↑↓ navigieren, Enter auswählen, Esc schließen",
|
||||||
"statusBar.posts": "{count} Beiträge",
|
"statusBar.posts": "{count} Beiträge",
|
||||||
"statusBar.media": "{count} Medien",
|
"statusBar.media": "{count} Medien",
|
||||||
|
"statusBar.more": "+{count} weitere",
|
||||||
"statusBar.theme": "Theme: {theme}",
|
"statusBar.theme": "Theme: {theme}",
|
||||||
"statusBar.ui": "UI",
|
"statusBar.ui": "UI",
|
||||||
"statusBar.uiLanguage": "UI-Sprache",
|
"statusBar.uiLanguage": "UI-Sprache",
|
||||||
|
|||||||
@@ -698,6 +698,7 @@
|
|||||||
"postSearch.hint": "Use ↑↓ to navigate, Enter to select, Esc to close",
|
"postSearch.hint": "Use ↑↓ to navigate, Enter to select, Esc to close",
|
||||||
"statusBar.posts": "{count} posts",
|
"statusBar.posts": "{count} posts",
|
||||||
"statusBar.media": "{count} media",
|
"statusBar.media": "{count} media",
|
||||||
|
"statusBar.more": "+{count} more",
|
||||||
"statusBar.theme": "Theme: {theme}",
|
"statusBar.theme": "Theme: {theme}",
|
||||||
"statusBar.ui": "UI",
|
"statusBar.ui": "UI",
|
||||||
"statusBar.uiLanguage": "UI language",
|
"statusBar.uiLanguage": "UI language",
|
||||||
|
|||||||
@@ -698,6 +698,7 @@
|
|||||||
"postSearch.hint": "Busca por título, slug o contenido",
|
"postSearch.hint": "Busca por título, slug o contenido",
|
||||||
"statusBar.posts": "Publicaciones",
|
"statusBar.posts": "Publicaciones",
|
||||||
"statusBar.media": "Medios",
|
"statusBar.media": "Medios",
|
||||||
|
"statusBar.more": "+{count} más",
|
||||||
"statusBar.theme": "Tema: {theme}",
|
"statusBar.theme": "Tema: {theme}",
|
||||||
"statusBar.ui": "UI",
|
"statusBar.ui": "UI",
|
||||||
"statusBar.uiLanguage": "Idioma de la interfaz",
|
"statusBar.uiLanguage": "Idioma de la interfaz",
|
||||||
|
|||||||
@@ -698,6 +698,7 @@
|
|||||||
"postSearch.hint": "Rechercher par titre, slug ou contenu",
|
"postSearch.hint": "Rechercher par titre, slug ou contenu",
|
||||||
"statusBar.posts": "Articles",
|
"statusBar.posts": "Articles",
|
||||||
"statusBar.media": "Médias",
|
"statusBar.media": "Médias",
|
||||||
|
"statusBar.more": "+{count} en plus",
|
||||||
"statusBar.theme": "Thème : {theme}",
|
"statusBar.theme": "Thème : {theme}",
|
||||||
"statusBar.ui": "UI",
|
"statusBar.ui": "UI",
|
||||||
"statusBar.uiLanguage": "Langue de l’interface",
|
"statusBar.uiLanguage": "Langue de l’interface",
|
||||||
|
|||||||
@@ -698,6 +698,7 @@
|
|||||||
"postSearch.hint": "Cerca per titolo, slug o contenuto",
|
"postSearch.hint": "Cerca per titolo, slug o contenuto",
|
||||||
"statusBar.posts": "Articoli",
|
"statusBar.posts": "Articoli",
|
||||||
"statusBar.media": "Media",
|
"statusBar.media": "Media",
|
||||||
|
"statusBar.more": "+{count} in più",
|
||||||
"statusBar.theme": "Tema: {theme}",
|
"statusBar.theme": "Tema: {theme}",
|
||||||
"statusBar.ui": "UI",
|
"statusBar.ui": "UI",
|
||||||
"statusBar.uiLanguage": "Lingua interfaccia",
|
"statusBar.uiLanguage": "Lingua interfaccia",
|
||||||
|
|||||||
Reference in New Issue
Block a user