@rigel-cms/rigel 1.4.0-rc.1 → 1.4.0-rc.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +4 -2
- package/docs/README.md +28 -0
- package/docs/authors.md +133 -0
- package/docs/content-locales.md +12 -3
- package/docs/content-model.md +131 -0
- package/docs/getting-started.md +139 -0
- package/docs/github.md +112 -0
- package/docs/media.md +75 -0
- package/docs/menus.md +95 -0
- package/docs/preview-hosts.md +78 -0
- package/docs/preview.md +100 -0
- package/docs/seo.md +87 -0
- package/docs/sidebar.md +97 -0
- package/package.json +2 -3
- package/src/article-render.ts +12 -5
- package/src/config.ts +5 -0
- package/src/editor/App.svelte +67 -21
- package/src/editor/i18n/de/fields.json +2 -0
- package/src/editor/i18n/de/shell.json +8 -2
- package/src/editor/i18n/en/fields.json +2 -0
- package/src/editor/i18n/en/shell.json +8 -2
- package/src/editor/i18n/es/fields.json +2 -0
- package/src/editor/i18n/es/shell.json +8 -2
- package/src/editor/i18n/fr/fields.json +2 -0
- package/src/editor/i18n/fr/shell.json +8 -2
- package/src/editor/i18n/it/fields.json +2 -0
- package/src/editor/i18n/it/shell.json +8 -2
- package/src/editor/i18n/ja/fields.json +2 -0
- package/src/editor/i18n/ja/shell.json +8 -2
- package/src/editor/i18n/nl/fields.json +2 -0
- package/src/editor/i18n/nl/shell.json +8 -2
- package/src/editor/i18n/ru/fields.json +2 -0
- package/src/editor/i18n/ru/shell.json +8 -2
- package/src/editor/i18n/zh/fields.json +2 -0
- package/src/editor/i18n/zh/shell.json +8 -2
- package/src/editor/lib/BlockEditor.svelte +4 -3
- package/src/editor/lib/CollectionPanel.svelte +10 -2
- package/src/editor/lib/MarkdownEditor.svelte +38 -5
- package/src/editor/lib/PropertiesTabs.svelte +8 -1
- package/src/editor/lib/SchemaField.svelte +16 -2
- package/src/editor/lib/SchemaPanel.svelte +9 -3
- package/src/editor/lib/Settings.svelte +37 -30
- package/src/editor/lib/TopBar.svelte +13 -49
- package/src/editor/lib/VisualEditor.svelte +64 -13
- package/src/editor/lib/markdown-blocks.ts +69 -0
- package/src/editor/lib/media-library.ts +2 -1
- package/src/editor/lib/settings.ts +2 -0
- package/src/editor/styles.css +17 -1
- package/src/index.ts +1 -1
- package/src/manifest/pages.ts +0 -4
- package/src/manifest/search.ts +41 -0
- package/src/manifest/types.ts +1 -0
- package/src/schema/types.ts +1 -0
- package/src/schema/validate.ts +1 -0
- package/src/vite/manifest-plugin.ts +2 -1
package/src/config.ts
CHANGED
|
@@ -9,12 +9,15 @@ import { DEFAULT_MAX_FILE_SIZE } from "./media-types";
|
|
|
9
9
|
import { systemMessage } from "./editor/i18n/format";
|
|
10
10
|
import { localeNames, type Locale } from "./editor/i18n/locales";
|
|
11
11
|
import { validateContentLocales, validateContentLocale } from "./manifest/content-locales";
|
|
12
|
+
import { effectiveSearchScope } from "./manifest/search";
|
|
12
13
|
|
|
13
14
|
export interface ContentLocalesConfig {
|
|
14
15
|
defaultLocale: string;
|
|
15
16
|
locales: { code: string; label: string }[];
|
|
16
17
|
}
|
|
17
18
|
|
|
19
|
+
export type SearchScope = "all" | "currentLocale";
|
|
20
|
+
|
|
18
21
|
export interface RigelConfig {
|
|
19
22
|
copyDir: string;
|
|
20
23
|
mediaDir?: string;
|
|
@@ -25,6 +28,7 @@ export interface RigelConfig {
|
|
|
25
28
|
demo?: boolean;
|
|
26
29
|
languages?: Locale[];
|
|
27
30
|
contentLocales?: ContentLocalesConfig;
|
|
31
|
+
search?: { scope: SearchScope };
|
|
28
32
|
extensions?: string[];
|
|
29
33
|
collections?: CollectionConfig[];
|
|
30
34
|
menus?: { folder: string; maxDepth?: number };
|
|
@@ -56,6 +60,7 @@ const DEFAULTS: Pick<RigelConfig, "copyDir" | "backend"> = {
|
|
|
56
60
|
|
|
57
61
|
export function parseConfig(options: Partial<RigelConfig> = {}): RigelConfig {
|
|
58
62
|
const cfg = { ...DEFAULTS, ...options };
|
|
63
|
+
cfg.search = { scope: effectiveSearchScope(cfg.search, undefined) };
|
|
59
64
|
if (cfg.contentLocales !== undefined) {
|
|
60
65
|
validateContentLocales(cfg.contentLocales);
|
|
61
66
|
cfg.contentLocales = { ...cfg.contentLocales, locales: cfg.contentLocales.locales.map(locale => ({ ...locale })) };
|
package/src/editor/App.svelte
CHANGED
|
@@ -12,10 +12,11 @@
|
|
|
12
12
|
import SitePreview from "./lib/SitePreview.svelte";
|
|
13
13
|
import ImagePicker from "./lib/ImagePicker.svelte";
|
|
14
14
|
import Settings from "./lib/Settings.svelte";
|
|
15
|
+
import { effectiveSearchScope } from "../manifest/search";
|
|
15
16
|
import TopBar from "./lib/TopBar.svelte";
|
|
16
17
|
import Select from "./lib/Select.svelte";
|
|
17
18
|
import { contentForLocale, selectionInContent } from "../manifest/content-locales";
|
|
18
|
-
import { pageCategories, pageTemplates, inPageCategory
|
|
19
|
+
import { pageCategories, pageTemplates, inPageCategory } from "../manifest/pages";
|
|
19
20
|
import { validateDocumentSlugs } from "../slugs";
|
|
20
21
|
import Shortcuts from "./lib/Shortcuts.svelte";
|
|
21
22
|
import CollectionPanel from "./lib/CollectionPanel.svelte";
|
|
@@ -160,7 +161,7 @@
|
|
|
160
161
|
if (!Array.isArray(data.pages) || (data.backend === "github" && !data.github)) throw new Error($t("shell.configurationIncomplete"));
|
|
161
162
|
blueprint = data;
|
|
162
163
|
manifest = data;
|
|
163
|
-
pagesFilter =
|
|
164
|
+
pagesFilter = null;
|
|
164
165
|
ready = true;
|
|
165
166
|
if (data.backend === "github" && data.github) {
|
|
166
167
|
const session = readSession(data.github);
|
|
@@ -470,7 +471,9 @@
|
|
|
470
471
|
|
|
471
472
|
const sortedPosts = $derived.by(() => {
|
|
472
473
|
if (!coll) return [];
|
|
473
|
-
const
|
|
474
|
+
const query = (Object.hasOwn(collectionQueries, coll.name) ? collectionQueries[coll.name] : "").trim().toLocaleLowerCase();
|
|
475
|
+
const fields = coll.fields.filter(field => (field.key === "description" && (field.type === "string" || field.type === "text")) || (field.key === "tags" && field.type === "tags"));
|
|
476
|
+
const posts = coll.posts.filter(post => !query || [post.frontmatter.title, effectiveSlug(post.frontmatter, post.slug), ...fields.flatMap(field => post.frontmatter[field.key] ?? [])].some(value => typeof value === "string" && value.toLocaleLowerCase().includes(query)));
|
|
474
477
|
if (!sortBy) return posts;
|
|
475
478
|
return posts.sort((a, b) => {
|
|
476
479
|
const va = cellValue(a, sortBy);
|
|
@@ -480,7 +483,16 @@
|
|
|
480
483
|
});
|
|
481
484
|
|
|
482
485
|
const sidebar = $derived(buildSidebar(visibleContent, $t));
|
|
483
|
-
let pagesFilter = $state<string | null>(
|
|
486
|
+
let pagesFilter = $state<string | null>(null);
|
|
487
|
+
let pagesQuery = $state("");
|
|
488
|
+
let collectionQueries = $state<Record<string, string>>({});
|
|
489
|
+
const tableQuery = $derived(sel?.kind === "collection" ? Object.hasOwn(collectionQueries, sel.name) ? collectionQueries[sel.name] : "" : pagesQuery);
|
|
490
|
+
const searchLabel = $derived(sel?.kind === "collection" && coll ? $t("shell.searchNamedEntries", { name: coll.label }) : $t("shell.searchPages"));
|
|
491
|
+
function setTableQuery(value: string) {
|
|
492
|
+
if (sel?.kind === "collection") collectionQueries[sel.name] = value;
|
|
493
|
+
else pagesQuery = value;
|
|
494
|
+
}
|
|
495
|
+
let pagesSearch: HTMLInputElement;
|
|
484
496
|
let entryList = $state<Sel | null>(null);
|
|
485
497
|
const categories = $derived(pageCategories(visibleContent));
|
|
486
498
|
const pageCategory = $derived(sel?.kind === "pages" && sel.category !== undefined ? sel.category : pagesFilter);
|
|
@@ -521,11 +533,12 @@
|
|
|
521
533
|
...visibleContent.pages.filter((p) => !p.shared && inPageCategory(p.category, pageCategory))
|
|
522
534
|
.map((p) => ({ slug: p.slug, path: previewPath(manifest.preview ?? {}, { kind: "page", slug: p.slug }), title: p.label, category: p.category, draft: false, target: { kind: "page", slug: p.slug } as Sel })),
|
|
523
535
|
...pageDocuments
|
|
524
|
-
.map((doc) => ({ slug: effectiveSlug(doc.data, doc.slug), path: previewPath(manifest.preview ?? {}, { kind: "document", type: doc.type, slug: effectiveSlug(doc.data, doc.slug) }), title: String(doc.data.title ?? doc.slug), category: docTypes.find(type => type.name === doc.type)?.category, draft: doc.data.draft === true, target: { kind: "document", type: doc.type, id: doc.id } as Sel }))
|
|
536
|
+
.map((doc) => ({ slug: effectiveSlug(doc.data, doc.slug), path: previewPath(manifest.preview ?? {}, { kind: "document", type: doc.type, slug: effectiveSlug(doc.data, doc.slug) }), title: String(doc.data.title ?? doc.data.name ?? doc.slug), category: docTypes.find(type => type.name === doc.type)?.category, draft: doc.data.draft === true, target: { kind: "document", type: doc.type, id: doc.id } as Sel }))
|
|
525
537
|
.filter(doc => inPageCategory(doc.category, pageCategory)),
|
|
526
538
|
];
|
|
527
539
|
const key = sortBy === "slug" || sortBy === "category" || sortBy === "path" ? sortBy : "title";
|
|
528
|
-
|
|
540
|
+
const query = pagesQuery.trim().toLocaleLowerCase();
|
|
541
|
+
return rows.filter(row => !query || [row.title, row.slug, row.category ?? (categories.length ? $t("shell.coreCategory") : "")].some(value => value.toLocaleLowerCase().includes(query))).sort((a, b) => String(a[key] ?? "").localeCompare(String(b[key] ?? "")) * sortDir);
|
|
529
542
|
});
|
|
530
543
|
function documentCell(doc: ContentDocument, key: string): string {
|
|
531
544
|
return String(key === "title" ? doc.data.title ?? doc.data.name ?? doc.slug : key === "slug" ? activeDocType?.shared ? doc.slug : effectiveSlug(doc.data, doc.slug) : doc.data[key] ?? "");
|
|
@@ -639,10 +652,19 @@
|
|
|
639
652
|
action?.();
|
|
640
653
|
}
|
|
641
654
|
|
|
642
|
-
function select(next: Sel | null) {
|
|
655
|
+
function select(next: Sel | null, fromSidebar = false) {
|
|
643
656
|
if (manifest.contentLocales && !selectionInContent(visibleContent, next)) return;
|
|
644
|
-
|
|
645
|
-
|
|
657
|
+
const resetPages = fromSidebar && next?.kind === "pages";
|
|
658
|
+
const resetCollection = fromSidebar && next?.kind === "collection";
|
|
659
|
+
if (sel && next && sameSel(sel, next) && !resetPages && !resetCollection) return;
|
|
660
|
+
requestNavigation(() => {
|
|
661
|
+
if (resetPages) {
|
|
662
|
+
pagesFilter = next.category ?? null;
|
|
663
|
+
pagesQuery = "";
|
|
664
|
+
}
|
|
665
|
+
if (resetCollection) collectionQueries[next.name] = "";
|
|
666
|
+
openSelection(next);
|
|
667
|
+
});
|
|
646
668
|
}
|
|
647
669
|
|
|
648
670
|
function openSelection(next: Sel | null) {
|
|
@@ -694,19 +716,25 @@
|
|
|
694
716
|
void tick().then(() => document.querySelector<HTMLButtonElement>(".content-language button[role=combobox]")?.focus({ preventScroll: true }));
|
|
695
717
|
}
|
|
696
718
|
|
|
697
|
-
function switchContentLocale(value: string | string[]) {
|
|
719
|
+
function switchContentLocale(value: string | string[], target?: Sel) {
|
|
698
720
|
localeControlRevision += 1;
|
|
699
721
|
if (typeof value !== "string" || value === contentLocale || !manifest.contentLocales?.locales.some(locale => locale.code === value)) return;
|
|
700
722
|
requestNavigation(() => {
|
|
701
723
|
const destination = contentForLocale(manifest, value);
|
|
702
724
|
selectedContentLocale = value;
|
|
703
|
-
if (pagesFilter && !pageCategories(destination).includes(pagesFilter)) pagesFilter =
|
|
725
|
+
if (pagesFilter && !pageCategories(destination).includes(pagesFilter)) pagesFilter = null;
|
|
704
726
|
if (!selectionInContent(destination, entryList)) entryList = null;
|
|
705
727
|
if (!selectionInContent(destination, sel)) openSelection(null);
|
|
728
|
+
if (target && selectionInContent(destination, target)) openSelection(target);
|
|
706
729
|
focusContentLocale();
|
|
707
730
|
}, focusContentLocale);
|
|
708
731
|
}
|
|
709
732
|
|
|
733
|
+
function selectSearch(next: Sel, locale?: string) {
|
|
734
|
+
if (locale && locale !== contentLocale && manifest.contentLocales?.locales.some(entry => entry.code === locale)) switchContentLocale(locale, next);
|
|
735
|
+
else select(next);
|
|
736
|
+
}
|
|
737
|
+
|
|
710
738
|
function sort(key: string) {
|
|
711
739
|
if (sortBy === key) sortDir = sortDir === 1 ? -1 : 1;
|
|
712
740
|
else {
|
|
@@ -877,7 +905,7 @@
|
|
|
877
905
|
<img src={logo} alt="" width="32" height="32" />
|
|
878
906
|
<span>Rigel <span class="brand-suffix">CMS</span></span>
|
|
879
907
|
</a>
|
|
880
|
-
<TopBar manifest
|
|
908
|
+
<TopBar {manifest} {sel} {contentLocale} scope={effectiveSearchScope(manifest.search, settings.userPref.searchScope)} onselect={selectSearch} />
|
|
881
909
|
{#if manifest.contentLocales && manifest.contentLocales.locales.length > 1}
|
|
882
910
|
<div class="content-language" data-locale={contentLocale}>
|
|
883
911
|
{#key localeControlRevision}
|
|
@@ -905,7 +933,7 @@
|
|
|
905
933
|
data-tooltip={node.label}
|
|
906
934
|
class:active={navActive(node.target)}
|
|
907
935
|
aria-current={navActive(node.target) ? "page" : undefined}
|
|
908
|
-
onclick={() => select(node.target)}
|
|
936
|
+
onclick={() => select(node.target, true)}
|
|
909
937
|
>
|
|
910
938
|
<SidebarIcon name={node.icon ?? ({ pages: "files", page: "file-text", collection: "newspaper", documents: "squares-four", document: "file-text", menus: "list", media: "images" }[node.target.kind])} /><span class="sidebar-label">{node.label}</span>
|
|
911
939
|
</button>
|
|
@@ -995,11 +1023,27 @@
|
|
|
995
1023
|
{/if}
|
|
996
1024
|
<div class="titlebar">
|
|
997
1025
|
<h2>{sel.kind === "page" ? page?.label : sel.kind === "menu" ? String(draft.title || menu?.slug || "") : sel.kind === "post" ? String(draft.title || post?.slug || "") : sel.kind === "document" ? activeDocType?.singleton ? activeDocType.title : String(draft.title || draft.name || activeDocument?.slug || sel.id) : listTitle}</h2>
|
|
998
|
-
{#if sel.kind === "pages"
|
|
999
|
-
|
|
1026
|
+
{#if sel.kind === "pages"}
|
|
1027
|
+
{#if templates.length}
|
|
1028
|
+
<button class="primary" onclick={() => newPage(pageDocType, true)}>{$t("shell.addNew")}</button>
|
|
1029
|
+
{/if}
|
|
1000
1030
|
{/if}
|
|
1001
|
-
{#if (sel?.kind === "collection" && coll) || (sel?.kind === "
|
|
1002
|
-
<button class="primary" onclick={() => (sel?.kind === "collection" ? newPost(coll!) : newPage(
|
|
1031
|
+
{#if (sel?.kind === "collection" && coll) || (sel?.kind === "documents" && activeDocType && activeDocType.creatable !== false && !activeDocType.singleton)}
|
|
1032
|
+
<button class="primary" onclick={() => (sel?.kind === "collection" ? newPost(coll!) : newPage(activeDocType))}>{$t("shell.addNew")}</button>
|
|
1033
|
+
{/if}
|
|
1034
|
+
{#if sel.kind === "pages" || (sel.kind === "collection" && coll)}
|
|
1035
|
+
<div class="pages-controls">
|
|
1036
|
+
{#if sel.kind === "pages" && categories.length}
|
|
1037
|
+
<Select ariaLabel={$t("shell.category")} value={JSON.stringify(pageCategory)} options={[{ value: "null", label: $t("shell.allPages") }, { value: JSON.stringify(""), label: $t("shell.coreCategory") }, ...categories.map(category => ({ value: JSON.stringify(category), label: category }))]} onchange={(value) => { if (typeof value === "string") { pagesFilter = JSON.parse(value); select({ kind: "pages" }); } }} />
|
|
1038
|
+
{/if}
|
|
1039
|
+
<div class="pages-search">
|
|
1040
|
+
<Icon name="magnifier" size={18} />
|
|
1041
|
+
<input type="search" aria-label={searchLabel} placeholder={searchLabel} value={tableQuery} oninput={(event) => setTableQuery(event.currentTarget.value)} bind:this={pagesSearch} />
|
|
1042
|
+
{#if tableQuery}
|
|
1043
|
+
<button type="button" class="icon-btn" aria-label={$t("fields.clear")} onclick={() => { setTableQuery(""); pagesSearch.focus(); }}><Icon name="x" size={16} /></button>
|
|
1044
|
+
{/if}
|
|
1045
|
+
</div>
|
|
1046
|
+
</div>
|
|
1003
1047
|
{/if}
|
|
1004
1048
|
{#if sel?.kind === "post" && post}
|
|
1005
1049
|
<button class="icon-btn" aria-label={$t("shell.deletePost")} data-tooltip={$t("shell.deletePost")} disabled={saveState === "saving"} onclick={deletePost}>
|
|
@@ -1025,6 +1069,7 @@
|
|
|
1025
1069
|
{:else if sel?.kind === "media"}
|
|
1026
1070
|
<ImagePicker inline />
|
|
1027
1071
|
{:else if sel?.kind === "pages" || sel?.kind === "documents" || sel?.kind === "menus" || (sel?.kind === "collection" && coll)}
|
|
1072
|
+
|
|
1028
1073
|
<div class="table-card">
|
|
1029
1074
|
<table>
|
|
1030
1075
|
<thead>
|
|
@@ -1061,7 +1106,7 @@
|
|
|
1061
1106
|
{/each}
|
|
1062
1107
|
</tr>
|
|
1063
1108
|
{:else}
|
|
1064
|
-
<tr><td colspan={columns.length}>{$t("shell.noEntries")}</td></tr>
|
|
1109
|
+
<tr><td colspan={columns.length}>{$t((sel?.kind === "pages" || sel?.kind === "collection") && tableQuery.trim() ? "shell.noResults" : "shell.noEntries")}</td></tr>
|
|
1065
1110
|
{/each}
|
|
1066
1111
|
</tbody>
|
|
1067
1112
|
</table>
|
|
@@ -1081,6 +1126,7 @@
|
|
|
1081
1126
|
documents={draftDocuments}
|
|
1082
1127
|
previewPath={documentPreview("draft")}
|
|
1083
1128
|
websitePath={documentPreview("website")}
|
|
1129
|
+
bodyInline={settings.userPref.editorExperience === "inline"}
|
|
1084
1130
|
creating={newDocument?.id === sel.id}
|
|
1085
1131
|
devMode={settings.devMode}
|
|
1086
1132
|
reloadToken={documentReload}
|
|
@@ -1136,8 +1182,8 @@
|
|
|
1136
1182
|
devMode={settings.devMode}
|
|
1137
1183
|
onchange={(next) => { draft = next; touch(); }}
|
|
1138
1184
|
>
|
|
1139
|
-
{#snippet properties(selected, focusToken, bodyInline, oneditbody, bodyLoading)}
|
|
1140
|
-
<CollectionPanel fields={coll.fields} values={draft} storageSlug={post.slug} documents={manifest.documents ?? []} body={bodyDraft as ArticleBody} {bodyInline} {bodyLoading} {oneditbody} {selected} {focusToken} devMode={settings.devMode} onchange={(key, value) => { draft[key] = value; touch(); }} onbody={(value) => { bodyDraft = value; touch(); }} />
|
|
1185
|
+
{#snippet properties(selected, focusToken, bodyInline, oneditbody, bodyLoading, inlineFields, oneditfield)}
|
|
1186
|
+
<CollectionPanel fields={coll.fields} values={draft} storageSlug={post.slug} documents={manifest.documents ?? []} body={bodyDraft as ArticleBody} {bodyInline} {bodyLoading} {inlineFields} {oneditbody} {oneditfield} {selected} {focusToken} devMode={settings.devMode} onchange={(key, value) => { draft[key] = value; touch(); }} onbody={(value) => { bodyDraft = value; touch(); }} />
|
|
1141
1187
|
{/snippet}
|
|
1142
1188
|
</VisualEditor>
|
|
1143
1189
|
{/key}
|
|
@@ -1166,7 +1212,7 @@
|
|
|
1166
1212
|
{/if}
|
|
1167
1213
|
|
|
1168
1214
|
{#if settingsOpen}
|
|
1169
|
-
<Settings bind:s={settings} github={githubMode ? manifest.github : undefined} user={githubAccess?.user} error={settingsError} saving={saveState === "saving"} onerase={eraseBrowserData} onclose={() => (settingsOpen = false)} />
|
|
1215
|
+
<Settings bind:s={settings} search={manifest.search} contentLocales={manifest.contentLocales} github={githubMode ? manifest.github : undefined} user={githubAccess?.user} error={settingsError} saving={saveState === "saving"} onerase={eraseBrowserData} onclose={() => (settingsOpen = false)} />
|
|
1170
1216
|
{/if}
|
|
1171
1217
|
{#if shortcutsOpen}
|
|
1172
1218
|
<Shortcuts onclose={() => (shortcutsOpen = false)} />
|
|
@@ -50,6 +50,8 @@
|
|
|
50
50
|
"fields.editArticleBody": "Artikeltext in der Vorschau bearbeiten",
|
|
51
51
|
"fields.loadingPreview": "Vorschau wird geladen…",
|
|
52
52
|
"fields.editArticleBodyHint": "Klicken Sie zum Bearbeiten auf den Artikeltext in der Vorschau. Änderungen an den Inhalten müssen gespeichert werden.",
|
|
53
|
+
"fields.editRichText": "In der Vorschau bearbeiten",
|
|
54
|
+
"fields.editRichTextHint": "Klicke in der Vorschau auf diesen Text, um ihn zu bearbeiten. Änderungen müssen gespeichert werden.",
|
|
53
55
|
"fields.seoNotSet": "Nicht festgelegt",
|
|
54
56
|
"fields.seoTooShort": "Zu kurz",
|
|
55
57
|
"fields.seoTooLong": "Zu lang",
|
|
@@ -1,5 +1,11 @@
|
|
|
1
1
|
{
|
|
2
|
+
"shell.searchScope": "Inhaltssprachen durchsuchen",
|
|
3
|
+
"shell.searchScopeDefault": "Website-Standard ({scope})",
|
|
4
|
+
"shell.searchScopeAll": "Alle Sprachen",
|
|
5
|
+
"shell.searchScopeCurrent": "Aktuelle Inhaltssprache",
|
|
2
6
|
"shell.coreCategory": "Standard",
|
|
7
|
+
"shell.searchPages": "Seiten suchen",
|
|
8
|
+
"shell.searchNamedEntries": "In {name} suchen",
|
|
3
9
|
"shell.template": "Vorlage",
|
|
4
10
|
"shell.chooseTemplate": "Vorlage auswählen",
|
|
5
11
|
"shell.search": "Suchen",
|
|
@@ -24,7 +30,7 @@
|
|
|
24
30
|
"shell.searchNavigate": "navigieren",
|
|
25
31
|
"shell.searchOpen": "öffnen",
|
|
26
32
|
"shell.searchClose": "schließen",
|
|
27
|
-
"shell.
|
|
33
|
+
"shell.interface": "Benutzeroberfläche",
|
|
28
34
|
"shell.editor": "Editor",
|
|
29
35
|
"shell.connection": "Verbindung",
|
|
30
36
|
"shell.media": "Medien",
|
|
@@ -44,7 +50,7 @@
|
|
|
44
50
|
"shell.articleBodyEditing": "Artikeltext bearbeiten",
|
|
45
51
|
"shell.sidebar": "Seitenleiste",
|
|
46
52
|
"shell.inlinePreview": "Inline-Vorschau",
|
|
47
|
-
"shell.editorExperienceHint": "Mit der Inline-Vorschau kannst du auf
|
|
53
|
+
"shell.editorExperienceHint": "Mit der Inline-Vorschau kannst du auf Rich-Text-Bereiche klicken und direkt auf der Seite schreiben. Felder ohne Vorschau-Bindung bleiben in der Seitenleiste. Diese Einstellung wird in diesem Browser gespeichert; Inhalte müssen weiterhin mit Speichern gesichert werden.",
|
|
48
54
|
"shell.githubAccount": "GitHub-Konto",
|
|
49
55
|
"shell.noGithubAccount": "Kein GitHub-Konto verbunden.",
|
|
50
56
|
"shell.repository": "Repository",
|
|
@@ -50,6 +50,8 @@
|
|
|
50
50
|
"fields.editArticleBody": "Edit article body in preview",
|
|
51
51
|
"fields.loadingPreview": "Loading preview…",
|
|
52
52
|
"fields.editArticleBodyHint": "Click the article body in the preview to edit. Content changes require Save.",
|
|
53
|
+
"fields.editRichText": "Edit in preview",
|
|
54
|
+
"fields.editRichTextHint": "Click this text in the preview to edit. Content changes require Save.",
|
|
53
55
|
"fields.seoNotSet": "Not set",
|
|
54
56
|
"fields.seoTooShort": "Too short",
|
|
55
57
|
"fields.seoTooLong": "Too long",
|
|
@@ -1,5 +1,11 @@
|
|
|
1
1
|
{
|
|
2
|
+
"shell.searchScope": "Search content languages",
|
|
3
|
+
"shell.searchScopeDefault": "Website default ({scope})",
|
|
4
|
+
"shell.searchScopeAll": "All languages",
|
|
5
|
+
"shell.searchScopeCurrent": "Current content language",
|
|
2
6
|
"shell.coreCategory": "Core",
|
|
7
|
+
"shell.searchPages": "Search pages",
|
|
8
|
+
"shell.searchNamedEntries": "Search {name}",
|
|
3
9
|
"shell.template": "Template",
|
|
4
10
|
"shell.chooseTemplate": "Choose a template",
|
|
5
11
|
"shell.search": "Search",
|
|
@@ -24,7 +30,7 @@
|
|
|
24
30
|
"shell.searchNavigate": "navigate",
|
|
25
31
|
"shell.searchOpen": "open",
|
|
26
32
|
"shell.searchClose": "close",
|
|
27
|
-
"shell.
|
|
33
|
+
"shell.interface": "Interface",
|
|
28
34
|
"shell.editor": "Editor",
|
|
29
35
|
"shell.connection": "Connection",
|
|
30
36
|
"shell.media": "Media",
|
|
@@ -44,7 +50,7 @@
|
|
|
44
50
|
"shell.articleBodyEditing": "Article body editing",
|
|
45
51
|
"shell.sidebar": "Sidebar",
|
|
46
52
|
"shell.inlinePreview": "Inline preview",
|
|
47
|
-
"shell.editorExperienceHint": "Inline preview lets you click
|
|
53
|
+
"shell.editorExperienceHint": "Inline preview lets you click bound rich text and write directly on the page. Fields without a preview binding stay in the sidebar. This preference saves in this browser; content still requires Save.",
|
|
48
54
|
"shell.githubAccount": "GitHub account",
|
|
49
55
|
"shell.noGithubAccount": "No GitHub account connected.",
|
|
50
56
|
"shell.repository": "Repository",
|
|
@@ -50,6 +50,8 @@
|
|
|
50
50
|
"fields.editArticleBody": "Editar el cuerpo del artículo en la vista previa",
|
|
51
51
|
"fields.loadingPreview": "Cargando vista previa…",
|
|
52
52
|
"fields.editArticleBodyHint": "Haz clic en el cuerpo del artículo en la vista previa para editarlo. Los cambios en el contenido requieren pulsar Guardar.",
|
|
53
|
+
"fields.editRichText": "Editar en la vista previa",
|
|
54
|
+
"fields.editRichTextHint": "Haz clic en este texto de la vista previa para editarlo. Los cambios requieren pulsar Guardar.",
|
|
53
55
|
"fields.seoNotSet": "Sin definir",
|
|
54
56
|
"fields.seoTooShort": "Demasiado corto",
|
|
55
57
|
"fields.seoTooLong": "Demasiado largo",
|
|
@@ -1,5 +1,11 @@
|
|
|
1
1
|
{
|
|
2
|
+
"shell.searchScope": "Idiomas del contenido de búsqueda",
|
|
3
|
+
"shell.searchScopeDefault": "Predeterminado del sitio ({scope})",
|
|
4
|
+
"shell.searchScopeAll": "Todos los idiomas",
|
|
5
|
+
"shell.searchScopeCurrent": "Idioma actual del contenido",
|
|
2
6
|
"shell.coreCategory": "Principales",
|
|
7
|
+
"shell.searchPages": "Buscar páginas",
|
|
8
|
+
"shell.searchNamedEntries": "Buscar en {name}",
|
|
3
9
|
"shell.template": "Plantilla",
|
|
4
10
|
"shell.chooseTemplate": "Elige una plantilla",
|
|
5
11
|
"shell.search": "Buscar",
|
|
@@ -24,7 +30,7 @@
|
|
|
24
30
|
"shell.searchNavigate": "navegar",
|
|
25
31
|
"shell.searchOpen": "abrir",
|
|
26
32
|
"shell.searchClose": "cerrar",
|
|
27
|
-
"shell.
|
|
33
|
+
"shell.interface": "Interfaz",
|
|
28
34
|
"shell.editor": "Editor",
|
|
29
35
|
"shell.connection": "Conexión",
|
|
30
36
|
"shell.media": "Archivos multimedia",
|
|
@@ -44,7 +50,7 @@
|
|
|
44
50
|
"shell.articleBodyEditing": "Edición del cuerpo del artículo",
|
|
45
51
|
"shell.sidebar": "Barra lateral",
|
|
46
52
|
"shell.inlinePreview": "Vista previa en línea",
|
|
47
|
-
"shell.editorExperienceHint": "La vista previa en línea permite hacer clic en
|
|
53
|
+
"shell.editorExperienceHint": "La vista previa en línea permite hacer clic en los textos enriquecidos vinculados y escribir directamente en la página. Los campos sin vínculo de vista previa permanecen en la barra lateral. Esta preferencia se guarda en este navegador; para guardar el contenido sigue siendo necesario pulsar Guardar.",
|
|
48
54
|
"shell.githubAccount": "Cuenta de GitHub",
|
|
49
55
|
"shell.noGithubAccount": "No hay ninguna cuenta de GitHub conectada.",
|
|
50
56
|
"shell.repository": "Repositorio",
|
|
@@ -50,6 +50,8 @@
|
|
|
50
50
|
"fields.editArticleBody": "Modifier le corps de l’article dans l’aperçu",
|
|
51
51
|
"fields.loadingPreview": "Chargement de l’aperçu…",
|
|
52
52
|
"fields.editArticleBodyHint": "Cliquez sur le corps de l’article dans l’aperçu pour le modifier. Enregistrez pour conserver les modifications du contenu.",
|
|
53
|
+
"fields.editRichText": "Modifier dans l’aperçu",
|
|
54
|
+
"fields.editRichTextHint": "Cliquez sur ce texte dans l’aperçu pour le modifier. Enregistrez pour conserver les modifications du contenu.",
|
|
53
55
|
"fields.seoNotSet": "Non défini",
|
|
54
56
|
"fields.seoTooShort": "Trop court",
|
|
55
57
|
"fields.seoTooLong": "Trop long",
|
|
@@ -1,5 +1,11 @@
|
|
|
1
1
|
{
|
|
2
|
+
"shell.searchScope": "Langues du contenu recherché",
|
|
3
|
+
"shell.searchScopeDefault": "Par défaut du site ({scope})",
|
|
4
|
+
"shell.searchScopeAll": "Toutes les langues",
|
|
5
|
+
"shell.searchScopeCurrent": "Langue actuelle du contenu",
|
|
2
6
|
"shell.coreCategory": "Principales",
|
|
7
|
+
"shell.searchPages": "Rechercher des pages",
|
|
8
|
+
"shell.searchNamedEntries": "Rechercher dans {name}",
|
|
3
9
|
"shell.template": "Modèle",
|
|
4
10
|
"shell.chooseTemplate": "Choisir un modèle",
|
|
5
11
|
"shell.search": "Rechercher",
|
|
@@ -24,7 +30,7 @@
|
|
|
24
30
|
"shell.searchNavigate": "parcourir",
|
|
25
31
|
"shell.searchOpen": "ouvrir",
|
|
26
32
|
"shell.searchClose": "fermer",
|
|
27
|
-
"shell.
|
|
33
|
+
"shell.interface": "Interface",
|
|
28
34
|
"shell.editor": "Éditeur",
|
|
29
35
|
"shell.connection": "Connexion",
|
|
30
36
|
"shell.media": "Médias",
|
|
@@ -44,7 +50,7 @@
|
|
|
44
50
|
"shell.articleBodyEditing": "Édition du corps des articles",
|
|
45
51
|
"shell.sidebar": "Barre latérale",
|
|
46
52
|
"shell.inlinePreview": "Aperçu avec édition intégrée",
|
|
47
|
-
"shell.editorExperienceHint": "L’aperçu avec édition intégrée permet de cliquer sur
|
|
53
|
+
"shell.editorExperienceHint": "L’aperçu avec édition intégrée permet de cliquer sur les textes enrichis liés pour écrire directement sur la page. Les champs sans liaison d’aperçu restent dans la barre latérale. Cette préférence est enregistrée dans ce navigateur ; le contenu nécessite toujours un clic sur Enregistrer.",
|
|
48
54
|
"shell.githubAccount": "Compte GitHub",
|
|
49
55
|
"shell.noGithubAccount": "Aucun compte GitHub connecté.",
|
|
50
56
|
"shell.repository": "Dépôt",
|
|
@@ -50,6 +50,8 @@
|
|
|
50
50
|
"fields.editArticleBody": "Modifica il corpo dell’articolo nell’anteprima",
|
|
51
51
|
"fields.loadingPreview": "Caricamento dell’anteprima…",
|
|
52
52
|
"fields.editArticleBodyHint": "Fai clic sul corpo dell’articolo nell’anteprima per modificarlo. Premi Salva per salvare le modifiche ai contenuti.",
|
|
53
|
+
"fields.editRichText": "Modifica nell’anteprima",
|
|
54
|
+
"fields.editRichTextHint": "Fai clic su questo testo nell’anteprima per modificarlo. Premi Salva per salvare le modifiche ai contenuti.",
|
|
53
55
|
"fields.seoNotSet": "Non impostato",
|
|
54
56
|
"fields.seoTooShort": "Troppo breve",
|
|
55
57
|
"fields.seoTooLong": "Troppo lungo",
|
|
@@ -1,5 +1,11 @@
|
|
|
1
1
|
{
|
|
2
|
+
"shell.searchScope": "Lingue dei contenuti da cercare",
|
|
3
|
+
"shell.searchScopeDefault": "Predefinito del sito ({scope})",
|
|
4
|
+
"shell.searchScopeAll": "Tutte le lingue",
|
|
5
|
+
"shell.searchScopeCurrent": "Lingua attuale del contenuto",
|
|
2
6
|
"shell.coreCategory": "Principali",
|
|
7
|
+
"shell.searchPages": "Cerca pagine",
|
|
8
|
+
"shell.searchNamedEntries": "Cerca in {name}",
|
|
3
9
|
"shell.template": "Modello",
|
|
4
10
|
"shell.chooseTemplate": "Scegli un modello",
|
|
5
11
|
"shell.search": "Cerca",
|
|
@@ -24,7 +30,7 @@
|
|
|
24
30
|
"shell.searchNavigate": "naviga",
|
|
25
31
|
"shell.searchOpen": "apri",
|
|
26
32
|
"shell.searchClose": "chiudi",
|
|
27
|
-
"shell.
|
|
33
|
+
"shell.interface": "Interfaccia",
|
|
28
34
|
"shell.editor": "Editor",
|
|
29
35
|
"shell.connection": "Connessione",
|
|
30
36
|
"shell.media": "Media",
|
|
@@ -44,7 +50,7 @@
|
|
|
44
50
|
"shell.articleBodyEditing": "Modifica del corpo dell’articolo",
|
|
45
51
|
"shell.sidebar": "Barra laterale",
|
|
46
52
|
"shell.inlinePreview": "Anteprima con modifica diretta",
|
|
47
|
-
"shell.editorExperienceHint": "L’anteprima con modifica diretta permette di fare clic
|
|
53
|
+
"shell.editorExperienceHint": "L’anteprima con modifica diretta permette di fare clic sui testi formattati collegati e scrivere direttamente nella pagina. I campi senza collegamento all’anteprima restano nella barra laterale. Questa preferenza viene salvata in questo browser; per salvare i contenuti devi comunque premere Salva.",
|
|
48
54
|
"shell.githubAccount": "Account GitHub",
|
|
49
55
|
"shell.noGithubAccount": "Nessun account GitHub collegato.",
|
|
50
56
|
"shell.repository": "Repository",
|
|
@@ -50,6 +50,8 @@
|
|
|
50
50
|
"fields.editArticleBody": "プレビューで記事本文を編集",
|
|
51
51
|
"fields.loadingPreview": "プレビューを読み込み中…",
|
|
52
52
|
"fields.editArticleBodyHint": "プレビューの記事本文をクリックすると編集できます。コンテンツの変更には保存が必要です。",
|
|
53
|
+
"fields.editRichText": "プレビューで編集",
|
|
54
|
+
"fields.editRichTextHint": "プレビューのこのテキストをクリックすると編集できます。変更には保存が必要です。",
|
|
53
55
|
"fields.seoNotSet": "未設定",
|
|
54
56
|
"fields.seoTooShort": "短すぎます",
|
|
55
57
|
"fields.seoTooLong": "長すぎます",
|
|
@@ -1,5 +1,11 @@
|
|
|
1
1
|
{
|
|
2
|
+
"shell.searchScope": "検索するコンテンツの言語",
|
|
3
|
+
"shell.searchScopeDefault": "サイトの既定値({scope})",
|
|
4
|
+
"shell.searchScopeAll": "すべての言語",
|
|
5
|
+
"shell.searchScopeCurrent": "現在のコンテンツ言語",
|
|
2
6
|
"shell.coreCategory": "基本",
|
|
7
|
+
"shell.searchPages": "ページを検索",
|
|
8
|
+
"shell.searchNamedEntries": "{name}内を検索",
|
|
3
9
|
"shell.template": "テンプレート",
|
|
4
10
|
"shell.chooseTemplate": "テンプレートを選択",
|
|
5
11
|
"shell.search": "検索",
|
|
@@ -24,7 +30,7 @@
|
|
|
24
30
|
"shell.searchNavigate": "移動",
|
|
25
31
|
"shell.searchOpen": "開く",
|
|
26
32
|
"shell.searchClose": "閉じる",
|
|
27
|
-
"shell.
|
|
33
|
+
"shell.interface": "インターフェース",
|
|
28
34
|
"shell.editor": "エディター",
|
|
29
35
|
"shell.connection": "接続",
|
|
30
36
|
"shell.media": "メディア",
|
|
@@ -44,7 +50,7 @@
|
|
|
44
50
|
"shell.articleBodyEditing": "記事本文の編集",
|
|
45
51
|
"shell.sidebar": "サイドバー",
|
|
46
52
|
"shell.inlinePreview": "インラインプレビュー",
|
|
47
|
-
"shell.editorExperienceHint": "
|
|
53
|
+
"shell.editorExperienceHint": "インラインプレビューでは、プレビューに紐づいたリッチテキストをクリックしてページ上で直接編集できます。プレビューに紐づかないフィールドはサイドバーに表示されます。この設定はこのブラウザーに保存されますが、コンテンツには引き続き「保存」が必要です。",
|
|
48
54
|
"shell.githubAccount": "GitHubアカウント",
|
|
49
55
|
"shell.noGithubAccount": "GitHubアカウントが接続されていません。",
|
|
50
56
|
"shell.repository": "リポジトリ",
|
|
@@ -50,6 +50,8 @@
|
|
|
50
50
|
"fields.editArticleBody": "Artikeltekst in het voorbeeld bewerken",
|
|
51
51
|
"fields.loadingPreview": "Voorbeeld laden…",
|
|
52
52
|
"fields.editArticleBodyHint": "Klik op de artikeltekst in het voorbeeld om deze te bewerken. Wijzigingen in de inhoud moeten worden opgeslagen.",
|
|
53
|
+
"fields.editRichText": "Bewerken in het voorbeeld",
|
|
54
|
+
"fields.editRichTextHint": "Klik op deze tekst in het voorbeeld om deze te bewerken. Wijzigingen moeten worden opgeslagen.",
|
|
53
55
|
"fields.seoNotSet": "Niet ingesteld",
|
|
54
56
|
"fields.seoTooShort": "Te kort",
|
|
55
57
|
"fields.seoTooLong": "Te lang",
|
|
@@ -1,5 +1,11 @@
|
|
|
1
1
|
{
|
|
2
|
+
"shell.searchScope": "Inhoudstalen doorzoeken",
|
|
3
|
+
"shell.searchScopeDefault": "Websitestandaard ({scope})",
|
|
4
|
+
"shell.searchScopeAll": "Alle talen",
|
|
5
|
+
"shell.searchScopeCurrent": "Huidige inhoudstaal",
|
|
2
6
|
"shell.coreCategory": "Standaard",
|
|
7
|
+
"shell.searchPages": "Pagina’s zoeken",
|
|
8
|
+
"shell.searchNamedEntries": "Zoeken in {name}",
|
|
3
9
|
"shell.template": "Sjabloon",
|
|
4
10
|
"shell.chooseTemplate": "Kies een sjabloon",
|
|
5
11
|
"shell.search": "Zoeken",
|
|
@@ -24,7 +30,7 @@
|
|
|
24
30
|
"shell.searchNavigate": "navigeren",
|
|
25
31
|
"shell.searchOpen": "openen",
|
|
26
32
|
"shell.searchClose": "sluiten",
|
|
27
|
-
"shell.
|
|
33
|
+
"shell.interface": "Interface",
|
|
28
34
|
"shell.editor": "Editor",
|
|
29
35
|
"shell.connection": "Verbinding",
|
|
30
36
|
"shell.media": "Media",
|
|
@@ -44,7 +50,7 @@
|
|
|
44
50
|
"shell.articleBodyEditing": "Artikeltekst bewerken",
|
|
45
51
|
"shell.sidebar": "Zijbalk",
|
|
46
52
|
"shell.inlinePreview": "Inline voorbeeld",
|
|
47
|
-
"shell.editorExperienceHint": "Met het inline voorbeeld kun je op
|
|
53
|
+
"shell.editorExperienceHint": "Met het inline voorbeeld kun je op gekoppelde rich text klikken en direct op de pagina schrijven. Velden zonder koppeling met het voorbeeld blijven in de zijbalk. Deze voorkeur wordt in deze browser opgeslagen; inhoud moet je nog steeds opslaan met Opslaan.",
|
|
48
54
|
"shell.githubAccount": "GitHub-account",
|
|
49
55
|
"shell.noGithubAccount": "Er is geen GitHub-account gekoppeld.",
|
|
50
56
|
"shell.repository": "Repository",
|
|
@@ -52,6 +52,8 @@
|
|
|
52
52
|
"fields.editArticleBody": "Редактировать текст статьи в предпросмотре",
|
|
53
53
|
"fields.loadingPreview": "Загрузка предпросмотра…",
|
|
54
54
|
"fields.editArticleBodyHint": "Нажмите на текст статьи в предпросмотре, чтобы редактировать его. Изменения содержимого нужно сохранить.",
|
|
55
|
+
"fields.editRichText": "Редактировать в предпросмотре",
|
|
56
|
+
"fields.editRichTextHint": "Нажмите на этот текст в предпросмотре, чтобы редактировать его. Изменения нужно сохранить.",
|
|
55
57
|
"fields.seoNotSet": "Не задано",
|
|
56
58
|
"fields.seoTooShort": "Слишком коротко",
|
|
57
59
|
"fields.seoTooLong": "Слишком длинно",
|
|
@@ -1,5 +1,11 @@
|
|
|
1
1
|
{
|
|
2
|
+
"shell.searchScope": "Языки содержимого для поиска",
|
|
3
|
+
"shell.searchScopeDefault": "По умолчанию на сайте ({scope})",
|
|
4
|
+
"shell.searchScopeAll": "Все языки",
|
|
5
|
+
"shell.searchScopeCurrent": "Текущий язык содержимого",
|
|
2
6
|
"shell.coreCategory": "Основные",
|
|
7
|
+
"shell.searchPages": "Поиск страниц",
|
|
8
|
+
"shell.searchNamedEntries": "Поиск в {name}",
|
|
3
9
|
"shell.template": "Шаблон",
|
|
4
10
|
"shell.chooseTemplate": "Выберите шаблон",
|
|
5
11
|
"shell.search": "Поиск",
|
|
@@ -24,7 +30,7 @@
|
|
|
24
30
|
"shell.searchNavigate": "перемещение",
|
|
25
31
|
"shell.searchOpen": "открыть",
|
|
26
32
|
"shell.searchClose": "закрыть",
|
|
27
|
-
"shell.
|
|
33
|
+
"shell.interface": "Интерфейс",
|
|
28
34
|
"shell.editor": "Редактор",
|
|
29
35
|
"shell.connection": "Подключение",
|
|
30
36
|
"shell.media": "Медиафайлы",
|
|
@@ -44,7 +50,7 @@
|
|
|
44
50
|
"shell.articleBodyEditing": "Редактирование текста статьи",
|
|
45
51
|
"shell.sidebar": "Боковая панель",
|
|
46
52
|
"shell.inlinePreview": "Прямо в предпросмотре",
|
|
47
|
-
"shell.editorExperienceHint": "Этот режим позволяет нажать на текст
|
|
53
|
+
"shell.editorExperienceHint": "Этот режим позволяет нажать на связанный форматированный текст и редактировать его прямо на странице. Поля без привязки к предпросмотру остаются на боковой панели. Настройка сохраняется в этом браузере; для сохранения содержимого по-прежнему нужно нажать «Сохранить».",
|
|
48
54
|
"shell.githubAccount": "Учётная запись GitHub",
|
|
49
55
|
"shell.noGithubAccount": "Учётная запись GitHub не подключена.",
|
|
50
56
|
"shell.repository": "Репозиторий",
|
|
@@ -50,6 +50,8 @@
|
|
|
50
50
|
"fields.editArticleBody": "在预览中编辑文章正文",
|
|
51
51
|
"fields.loadingPreview": "正在加载预览…",
|
|
52
52
|
"fields.editArticleBodyHint": "点击预览中的文章正文即可编辑。内容更改后需保存。",
|
|
53
|
+
"fields.editRichText": "在预览中编辑",
|
|
54
|
+
"fields.editRichTextHint": "点击预览中的这段文字即可编辑。更改后需保存。",
|
|
53
55
|
"fields.seoNotSet": "未设置",
|
|
54
56
|
"fields.seoTooShort": "过短",
|
|
55
57
|
"fields.seoTooLong": "过长",
|
|
@@ -1,5 +1,11 @@
|
|
|
1
1
|
{
|
|
2
|
+
"shell.searchScope": "搜索内容语言",
|
|
3
|
+
"shell.searchScopeDefault": "网站默认({scope})",
|
|
4
|
+
"shell.searchScopeAll": "所有语言",
|
|
5
|
+
"shell.searchScopeCurrent": "当前内容语言",
|
|
2
6
|
"shell.coreCategory": "基础",
|
|
7
|
+
"shell.searchPages": "搜索页面",
|
|
8
|
+
"shell.searchNamedEntries": "在{name}中搜索",
|
|
3
9
|
"shell.template": "模板",
|
|
4
10
|
"shell.chooseTemplate": "选择模板",
|
|
5
11
|
"shell.search": "搜索",
|
|
@@ -24,7 +30,7 @@
|
|
|
24
30
|
"shell.searchNavigate": "切换",
|
|
25
31
|
"shell.searchOpen": "打开",
|
|
26
32
|
"shell.searchClose": "关闭",
|
|
27
|
-
"shell.
|
|
33
|
+
"shell.interface": "界面",
|
|
28
34
|
"shell.editor": "编辑器",
|
|
29
35
|
"shell.connection": "连接",
|
|
30
36
|
"shell.media": "媒体",
|
|
@@ -44,7 +50,7 @@
|
|
|
44
50
|
"shell.articleBodyEditing": "文章正文编辑",
|
|
45
51
|
"shell.sidebar": "侧边栏",
|
|
46
52
|
"shell.inlinePreview": "行内预览",
|
|
47
|
-
"shell.editorExperienceHint": "
|
|
53
|
+
"shell.editorExperienceHint": "行内预览让你点击预览中绑定的富文本,直接在页面上编辑。没有预览绑定的字段仍在侧边栏中。此偏好设置保存在当前浏览器中;内容仍需点击“保存”才会保存。",
|
|
48
54
|
"shell.githubAccount": "GitHub 账号",
|
|
49
55
|
"shell.noGithubAccount": "未连接 GitHub 账号。",
|
|
50
56
|
"shell.repository": "仓库",
|