From 61279f6d008a36a81324b1d022e9c1d52ce588ad Mon Sep 17 00:00:00 2001 From: Rongjian Zhang Date: Sat, 3 Jul 2021 11:26:39 +0800 Subject: [PATCH] refactor: flatten locale map --- packages/bytemd/package.json | 2 - packages/bytemd/src/editor.svelte | 12 +-- packages/bytemd/src/editor.ts | 42 ++++----- packages/bytemd/src/help.svelte | 4 +- packages/bytemd/src/locales/ca.json | 101 ++++++++++------------ packages/bytemd/src/locales/en.json | 103 +++++++++++------------ packages/bytemd/src/locales/es.json | 101 ++++++++++------------ packages/bytemd/src/locales/ja.json | 101 ++++++++++------------ packages/bytemd/src/locales/ko.json | 36 ++++---- packages/bytemd/src/locales/ru.json | 95 ++++++++++----------- packages/bytemd/src/locales/zh_Hans.json | 103 +++++++++++------------ packages/bytemd/src/locales/zh_Hant.json | 101 ++++++++++------------ packages/bytemd/src/status.svelte | 10 +-- packages/bytemd/src/toc.svelte | 2 +- packages/bytemd/src/toolbar.svelte | 22 ++--- packages/bytemd/src/types.ts | 3 +- pnpm-lock.yaml | 20 ++--- 17 files changed, 382 insertions(+), 476 deletions(-) diff --git a/packages/bytemd/package.json b/packages/bytemd/package.json index b19cdcb..4845b5d 100644 --- a/packages/bytemd/package.json +++ b/packages/bytemd/package.json @@ -31,7 +31,6 @@ "@types/lodash.throttle": "^4.1.6", "@types/mdast": "^3.0.3", "codemirror-ssr": "^0.0.6", - "deepmerge": "^4.2.2", "hast-util-sanitize": "^3.0.2", "lodash.debounce": "^4.0.8", "lodash.throttle": "^4.1.1", @@ -42,7 +41,6 @@ "remark-rehype": "^8.1.0", "select-files": "^1.0.1", "tippy.js": "^6.3.1", - "tsdef": "^0.0.14", "unified": "^9.2.1", "unist-util-visit": "^2.0.3", "vfile": "^4.2.1", diff --git a/packages/bytemd/src/editor.svelte b/packages/bytemd/src/editor.svelte index 07f8925..2db48cc 100644 --- a/packages/bytemd/src/editor.svelte +++ b/packages/bytemd/src/editor.svelte @@ -4,12 +4,7 @@ import type { Editor, KeyMap, Linter, Annotation } from 'codemirror' import type { Root, Element } from 'hast' import type { VFile } from 'vfile' - import type { - BytemdEditorContext, - BytemdLocale, - BytemdPlugin, - EditorProps, - } from './types' + import type { BytemdEditorContext, BytemdPlugin, EditorProps } from './types' import { onMount, createEventDispatcher, onDestroy, tick } from 'svelte' import debounce from 'lodash.debounce' import throttle from 'lodash.throttle' @@ -25,7 +20,6 @@ import Status from './status.svelte' import { icons } from './icons' import en from './locales/en.json' - import deepmerge from 'deepmerge' import Help from './help.svelte' import factory from 'codemirror-ssr' import usePlaceholder from 'codemirror-ssr/addon/display/placeholder' @@ -51,9 +45,7 @@ export let overridePreview: EditorProps['overridePreview'] export let maxLength: EditorProps['maxLength'] - // do deep merge to support incomplete locales, use en as fallback - $: mergedLocale = deepmerge(en, locale ?? {}) as BytemdLocale - + const mergedLocale = { ...en, ...locale } const dispatch = createEventDispatcher() $: actions = getBuiltinActions(mergedLocale, plugins, uploadImages) diff --git a/packages/bytemd/src/editor.ts b/packages/bytemd/src/editor.ts index 3515ab8..ba6be43 100644 --- a/packages/bytemd/src/editor.ts +++ b/packages/bytemd/src/editor.ts @@ -151,11 +151,11 @@ export function getBuiltinActions( handler: { type: 'dropdown', actions: [1, 2, 3, 4, 5, 6].map((level) => ({ - title: locale.action[`h${level}` as keyof typeof locale.action], + title: locale[`h${level}` as keyof BytemdLocale], icon: icons[`h${level}` as keyof typeof icons], cheatsheet: level <= 3 - ? `${'#'.repeat(level)} ${locale.action.headingText}` + ? `${'#'.repeat(level)} ${locale.headingText}` : undefined, handler: { type: 'action', @@ -172,9 +172,9 @@ export function getBuiltinActions( }, }, { - title: locale.action.bold, + title: locale.bold, icon: icons.bold, - cheatsheet: `**${locale.action.boldText}**`, + cheatsheet: `**${locale.boldText}**`, handler: { type: 'action', shortcut: getShortcutWithPrefix('B'), @@ -185,9 +185,9 @@ export function getBuiltinActions( }, }, { - title: locale.action.italic, + title: locale.italic, icon: icons.italic, - cheatsheet: `*${locale.action.italicText}*`, + cheatsheet: `*${locale.italicText}*`, handler: { type: 'action', shortcut: getShortcutWithPrefix('I'), @@ -198,9 +198,9 @@ export function getBuiltinActions( }, }, { - title: locale.action.quote, + title: locale.quote, icon: icons.quote, - cheatsheet: `> ${locale.action.quotedText}`, + cheatsheet: `> ${locale.quotedText}`, handler: { type: 'action', click({ replaceLines, editor }) { @@ -210,9 +210,9 @@ export function getBuiltinActions( }, }, { - title: locale.action.link, + title: locale.link, icon: icons.link, - cheatsheet: `[${locale.action.linkText}](url)`, + cheatsheet: `[${locale.linkText}](url)`, handler: { type: 'action', shortcut: getShortcutWithPrefix('K'), @@ -228,9 +228,9 @@ export function getBuiltinActions( }, }, { - title: locale.action.image, + title: locale.image, icon: icons.image, - cheatsheet: `![${locale.action.imageAlt}](url "${locale.action.imageTitle}")`, + cheatsheet: `![${locale.imageAlt}](url "${locale.imageTitle}")`, handler: uploadImages ? { type: 'action', @@ -249,9 +249,9 @@ export function getBuiltinActions( : undefined, }, { - title: locale.action.code, + title: locale.code, icon: icons.code, - cheatsheet: '`' + locale.action.codeText + '`', + cheatsheet: '`' + locale.codeText + '`', handler: { type: 'action', shortcut: getShortcutWithPrefix('K', true), @@ -262,9 +262,9 @@ export function getBuiltinActions( }, }, { - title: locale.action.codeBlock, + title: locale.codeBlock, icon: icons.codeBlock, - cheatsheet: '```' + locale.action.codeLang + '↵', + cheatsheet: '```' + locale.codeLang + '↵', handler: { type: 'action', shortcut: getShortcutWithPrefix('C', true), @@ -279,9 +279,9 @@ export function getBuiltinActions( }, }, { - title: locale.action.ul, + title: locale.ul, icon: icons.ul, - cheatsheet: `- ${locale.action.ulItem}`, + cheatsheet: `- ${locale.ulItem}`, handler: { type: 'action', shortcut: getShortcutWithPrefix('U', true), @@ -292,9 +292,9 @@ export function getBuiltinActions( }, }, { - title: locale.action.ol, + title: locale.ol, icon: icons.ol, - cheatsheet: `1. ${locale.action.olItem}`, + cheatsheet: `1. ${locale.olItem}`, handler: { type: 'action', shortcut: getShortcutWithPrefix('O', true), @@ -305,7 +305,7 @@ export function getBuiltinActions( }, }, { - title: locale.action.hr, + title: locale.hr, icon: icons.hr, cheatsheet: '---', }, diff --git a/packages/bytemd/src/help.svelte b/packages/bytemd/src/help.svelte index ea30c77..53dc67e 100644 --- a/packages/bytemd/src/help.svelte +++ b/packages/bytemd/src/help.svelte @@ -25,7 +25,7 @@
-

{locale.sidebar.cheatsheet}

+

{locale.cheatsheet}

-

{locale.sidebar.shortcuts}

+

{locale.shortcuts}

diff --git a/packages/bytemd/src/toc.svelte b/packages/bytemd/src/toc.svelte index b299588..ca932b8 100644 --- a/packages/bytemd/src/toc.svelte +++ b/packages/bytemd/src/toc.svelte @@ -53,7 +53,7 @@
-

{locale.sidebar.toc}

+

{locale.toc}

dispatch('tab', 'preview')} class="bytemd-toolbar-tab" class:bytemd-toolbar-tab-active={activeTab === 'preview'} > - {locale.toolbar.preview} + {locale.preview}