@docusaurus/theme-translations 2.0.0-beta.17 → 2.0.0-beta.18
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/lib/index.d.ts +3 -1
- package/lib/index.d.ts.map +1 -1
- package/lib/utils.d.ts +13 -0
- package/lib/utils.d.ts.map +1 -0
- package/lib/utils.js +82 -0
- package/lib/utils.js.map +1 -0
- package/locales/ar/theme-common.json +1 -1
- package/locales/base/theme-common.json +2 -2
- package/locales/bn/theme-common.json +1 -1
- package/locales/cs/theme-common.json +1 -1
- package/locales/da/theme-common.json +1 -1
- package/locales/de/theme-common.json +1 -1
- package/locales/es/theme-common.json +1 -1
- package/locales/fa/theme-common.json +1 -1
- package/locales/fil/theme-common.json +1 -1
- package/locales/fr/theme-common.json +1 -1
- package/locales/he/theme-common.json +1 -1
- package/locales/hi/theme-common.json +1 -1
- package/locales/it/theme-common.json +1 -1
- package/locales/ja/theme-common.json +1 -1
- package/locales/ko/theme-common.json +1 -1
- package/locales/pl/theme-common.json +1 -1
- package/locales/pt-BR/theme-common.json +1 -1
- package/locales/pt-PT/theme-common.json +1 -1
- package/locales/ru/plugin-ideal-image.json +5 -5
- package/locales/ru/theme-common.json +16 -16
- package/locales/ru/theme-search-algolia.json +1 -1
- package/locales/sr/theme-common.json +1 -1
- package/locales/tr/theme-common.json +1 -1
- package/locales/vi/plugin-ideal-image.json +5 -5
- package/locales/vi/theme-common.json +10 -10
- package/locales/vi/theme-search-algolia.json +1 -1
- package/locales/zh-Hans/theme-common.json +2 -2
- package/locales/zh-Hant/theme-common.json +2 -2
- package/package.json +7 -7
- package/src/index.ts +1 -1
- package/src/utils.ts +99 -0
package/lib/index.d.ts
CHANGED
|
@@ -9,5 +9,7 @@ export declare function readDefaultCodeTranslationMessages({ dirPath, locale, na
|
|
|
9
9
|
dirPath?: string;
|
|
10
10
|
locale: string;
|
|
11
11
|
name: string;
|
|
12
|
-
}): Promise<
|
|
12
|
+
}): Promise<{
|
|
13
|
+
[msgId: string]: string;
|
|
14
|
+
}>;
|
|
13
15
|
//# sourceMappingURL=index.d.ts.map
|
package/lib/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAUH,wBAAgB,2BAA2B,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,CAepE;AAGD,wBAAsB,kCAAkC,CAAC,EACvD,OAAoC,EACpC,MAAM,EACN,IAAI,GACL,EAAE;IACD,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;CACd,GAAG,OAAO,CAAC,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAUH,wBAAgB,2BAA2B,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,CAepE;AAGD,wBAAsB,kCAAkC,CAAC,EACvD,OAAoC,EACpC,MAAM,EACN,IAAI,GACL,EAAE;IACD,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;CACd,GAAG,OAAO,CAAC;IAAC,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAAA;CAAC,CAAC,CAerC"}
|
package/lib/utils.d.ts
ADDED
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Copyright (c) Facebook, Inc. and its affiliates.
|
|
3
|
+
*
|
|
4
|
+
* This source code is licensed under the MIT license found in the
|
|
5
|
+
* LICENSE file in the root directory of this source tree.
|
|
6
|
+
*/
|
|
7
|
+
import type { TranslationFileContent } from '@docusaurus/types';
|
|
8
|
+
export declare function getThemes(): Promise<{
|
|
9
|
+
name: string;
|
|
10
|
+
src: string[];
|
|
11
|
+
}[]>;
|
|
12
|
+
export declare function extractThemeCodeMessages(targetDirs?: string[]): Promise<TranslationFileContent>;
|
|
13
|
+
//# sourceMappingURL=utils.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAeH,OAAO,KAAK,EAAC,sBAAsB,EAAC,MAAM,mBAAmB,CAAC;AAa9D,wBAAsB,SAAS,IAAI,OAAO,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,MAAM,EAAE,CAAA;CAAC,EAAE,CAAC,CA0B1E;AAED,wBAAsB,wBAAwB,CAC5C,UAAU,CAAC,EAAE,MAAM,EAAE,GACpB,OAAO,CAAC,sBAAsB,CAAC,CAmCjC"}
|
package/lib/utils.js
ADDED
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Copyright (c) Facebook, Inc. and its affiliates.
|
|
4
|
+
*
|
|
5
|
+
* This source code is licensed under the MIT license found in the
|
|
6
|
+
* LICENSE file in the root directory of this source tree.
|
|
7
|
+
*/
|
|
8
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
9
|
+
exports.extractThemeCodeMessages = exports.getThemes = void 0;
|
|
10
|
+
const tslib_1 = require("tslib");
|
|
11
|
+
// This file isn't used by index.ts. It's used by update.mjs and tests. It's
|
|
12
|
+
// only here so that (a) we get a partially typed infrastructure (although the
|
|
13
|
+
// update script has ts-check anyways) (b) the test coverage isn't destroyed by
|
|
14
|
+
// the untested update.mjs file (c) we can ergonomically import the util
|
|
15
|
+
// functions in the Jest test without using `await import`
|
|
16
|
+
const path_1 = tslib_1.__importDefault(require("path"));
|
|
17
|
+
const fs_extra_1 = tslib_1.__importDefault(require("fs-extra"));
|
|
18
|
+
// Unsafe import, should we create a package for the translationsExtractor ?;
|
|
19
|
+
const translationsExtractor_1 = require("@docusaurus/core/lib/server/translations/translationsExtractor");
|
|
20
|
+
async function getPackageCodePath(packageName) {
|
|
21
|
+
const packagePath = path_1.default.join(__dirname, '../..', packageName);
|
|
22
|
+
const packageJsonPath = path_1.default.join(packagePath, 'package.json');
|
|
23
|
+
const { main } = await fs_extra_1.default.readJSON(packageJsonPath);
|
|
24
|
+
const packageSrcPath = path_1.default.join(packagePath, path_1.default.dirname(main));
|
|
25
|
+
const packageLibNextPath = packageSrcPath.replace('lib', 'lib-next');
|
|
26
|
+
return (await fs_extra_1.default.pathExists(packageLibNextPath))
|
|
27
|
+
? packageLibNextPath
|
|
28
|
+
: packageSrcPath;
|
|
29
|
+
}
|
|
30
|
+
async function getThemes() {
|
|
31
|
+
return [
|
|
32
|
+
{
|
|
33
|
+
name: 'theme-common',
|
|
34
|
+
src: [
|
|
35
|
+
await getPackageCodePath('docusaurus-theme-classic'),
|
|
36
|
+
await getPackageCodePath('docusaurus-theme-common'),
|
|
37
|
+
],
|
|
38
|
+
},
|
|
39
|
+
{
|
|
40
|
+
name: 'theme-search-algolia',
|
|
41
|
+
src: [await getPackageCodePath('docusaurus-theme-search-algolia')],
|
|
42
|
+
},
|
|
43
|
+
{
|
|
44
|
+
name: 'theme-live-codeblock',
|
|
45
|
+
src: [await getPackageCodePath('docusaurus-theme-live-codeblock')],
|
|
46
|
+
},
|
|
47
|
+
{
|
|
48
|
+
name: 'plugin-pwa',
|
|
49
|
+
src: [await getPackageCodePath('docusaurus-plugin-pwa')],
|
|
50
|
+
},
|
|
51
|
+
{
|
|
52
|
+
name: 'plugin-ideal-image',
|
|
53
|
+
src: [await getPackageCodePath('docusaurus-plugin-ideal-image')],
|
|
54
|
+
},
|
|
55
|
+
];
|
|
56
|
+
}
|
|
57
|
+
exports.getThemes = getThemes;
|
|
58
|
+
async function extractThemeCodeMessages(targetDirs) {
|
|
59
|
+
// eslint-disable-next-line no-param-reassign
|
|
60
|
+
targetDirs ?? (targetDirs = (await getThemes()).flatMap((theme) => theme.src));
|
|
61
|
+
const filePaths = (await (0, translationsExtractor_1.globSourceCodeFilePaths)(targetDirs)).filter((filePath) => ['.js', '.jsx'].includes(path_1.default.extname(filePath)));
|
|
62
|
+
const filesExtractedTranslations = await (0, translationsExtractor_1.extractAllSourceCodeFileTranslations)(filePaths, {
|
|
63
|
+
presets: [require.resolve('@docusaurus/core/lib/babel/preset')],
|
|
64
|
+
});
|
|
65
|
+
filesExtractedTranslations.forEach((fileExtractedTranslations) => {
|
|
66
|
+
if (fileExtractedTranslations.warnings.length > 0) {
|
|
67
|
+
throw new Error(`
|
|
68
|
+
Please make sure all theme translations are static!
|
|
69
|
+
Some warnings were found!
|
|
70
|
+
|
|
71
|
+
${fileExtractedTranslations.warnings.join('\n\n')}
|
|
72
|
+
`);
|
|
73
|
+
}
|
|
74
|
+
});
|
|
75
|
+
const translations = filesExtractedTranslations.reduce((acc, extractedTranslations) => ({
|
|
76
|
+
...acc,
|
|
77
|
+
...extractedTranslations.translations,
|
|
78
|
+
}), {});
|
|
79
|
+
return translations;
|
|
80
|
+
}
|
|
81
|
+
exports.extractThemeCodeMessages = extractThemeCodeMessages;
|
|
82
|
+
//# sourceMappingURL=utils.js.map
|
package/lib/utils.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"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"}
|
|
@@ -26,8 +26,8 @@
|
|
|
26
26
|
"theme.blog.sidebar.navAriaLabel": "أحدث مشاركات المدونة",
|
|
27
27
|
"theme.blog.tagTitle": "{nPosts} موسومة ب \"{tagName}\"",
|
|
28
28
|
"theme.colorToggle.ariaLabel": "Switch between dark and light mode (currently {mode})",
|
|
29
|
-
"theme.colorToggle.ariaLabel.mode.light": "light mode",
|
|
30
29
|
"theme.colorToggle.ariaLabel.mode.dark": "dark mode",
|
|
30
|
+
"theme.colorToggle.ariaLabel.mode.light": "light mode",
|
|
31
31
|
"theme.common.editThisPage": "تعديل هذه الصفحة",
|
|
32
32
|
"theme.common.headingLinkTitle": "ارتباط مباشر بالعنوان",
|
|
33
33
|
"theme.common.skipToMainContent": "انتقل إلى المحتوى الرئيسي",
|
|
@@ -53,10 +53,10 @@
|
|
|
53
53
|
"theme.blog.tagTitle___DESCRIPTION": "The title of the page for a blog tag",
|
|
54
54
|
"theme.colorToggle.ariaLabel": "Switch between dark and light mode (currently {mode})",
|
|
55
55
|
"theme.colorToggle.ariaLabel___DESCRIPTION": "The ARIA label for the navbar color mode toggle",
|
|
56
|
-
"theme.colorToggle.ariaLabel.mode.light": "light mode",
|
|
57
|
-
"theme.colorToggle.ariaLabel.mode.light___DESCRIPTION": "The name for the light color mode",
|
|
58
56
|
"theme.colorToggle.ariaLabel.mode.dark": "dark mode",
|
|
59
57
|
"theme.colorToggle.ariaLabel.mode.dark___DESCRIPTION": "The name for the dark color mode",
|
|
58
|
+
"theme.colorToggle.ariaLabel.mode.light": "light mode",
|
|
59
|
+
"theme.colorToggle.ariaLabel.mode.light___DESCRIPTION": "The name for the light color mode",
|
|
60
60
|
"theme.common.editThisPage": "Edit this page",
|
|
61
61
|
"theme.common.editThisPage___DESCRIPTION": "The link label to edit the current page",
|
|
62
62
|
"theme.common.headingLinkTitle": "Direct link to heading",
|
|
@@ -26,8 +26,8 @@
|
|
|
26
26
|
"theme.blog.sidebar.navAriaLabel": "সাম্প্রতিক ব্লগ পোস্ট নেভিগেশন",
|
|
27
27
|
"theme.blog.tagTitle": "{nPosts} সঙ্গে ট্যাগ্গেড \"{tagName}\" ",
|
|
28
28
|
"theme.colorToggle.ariaLabel": "Switch between dark and light mode (currently {mode})",
|
|
29
|
-
"theme.colorToggle.ariaLabel.mode.light": "light mode",
|
|
30
29
|
"theme.colorToggle.ariaLabel.mode.dark": "dark mode",
|
|
30
|
+
"theme.colorToggle.ariaLabel.mode.light": "light mode",
|
|
31
31
|
"theme.common.editThisPage": "এই পেজটি এডিট করুন",
|
|
32
32
|
"theme.common.headingLinkTitle": "হেডিং এর সঙ্গে সরাসরি লিংকড",
|
|
33
33
|
"theme.common.skipToMainContent": "স্কিপ করে মূল কন্টেন্ট এ যান",
|
|
@@ -26,8 +26,8 @@
|
|
|
26
26
|
"theme.blog.sidebar.navAriaLabel": "Navigace s aktuálními články na blogu",
|
|
27
27
|
"theme.blog.tagTitle": "{nPosts} s tagem \"{tagName}\"",
|
|
28
28
|
"theme.colorToggle.ariaLabel": "Switch between dark and light mode (currently {mode})",
|
|
29
|
-
"theme.colorToggle.ariaLabel.mode.light": "light mode",
|
|
30
29
|
"theme.colorToggle.ariaLabel.mode.dark": "dark mode",
|
|
30
|
+
"theme.colorToggle.ariaLabel.mode.light": "light mode",
|
|
31
31
|
"theme.common.editThisPage": "Upravit tuto stránku",
|
|
32
32
|
"theme.common.headingLinkTitle": "Přímý odkaz na nadpis",
|
|
33
33
|
"theme.common.skipToMainContent": "Přeskočit na hlavní obsah",
|
|
@@ -26,8 +26,8 @@
|
|
|
26
26
|
"theme.blog.sidebar.navAriaLabel": "Blog recent posts navigation",
|
|
27
27
|
"theme.blog.tagTitle": "{nPosts} med følgende tag \"{tagName}\"",
|
|
28
28
|
"theme.colorToggle.ariaLabel": "Switch between dark and light mode (currently {mode})",
|
|
29
|
-
"theme.colorToggle.ariaLabel.mode.light": "light mode",
|
|
30
29
|
"theme.colorToggle.ariaLabel.mode.dark": "dark mode",
|
|
30
|
+
"theme.colorToggle.ariaLabel.mode.light": "light mode",
|
|
31
31
|
"theme.common.editThisPage": "Rediger denne side",
|
|
32
32
|
"theme.common.headingLinkTitle": "Direkte link til overskrift",
|
|
33
33
|
"theme.common.skipToMainContent": "Hop til hovedindhold",
|
|
@@ -26,8 +26,8 @@
|
|
|
26
26
|
"theme.blog.sidebar.navAriaLabel": "Blog recent posts navigation",
|
|
27
27
|
"theme.blog.tagTitle": "{nPosts} getaggt mit \"{tagName}\"",
|
|
28
28
|
"theme.colorToggle.ariaLabel": "Switch between dark and light mode (currently {mode})",
|
|
29
|
-
"theme.colorToggle.ariaLabel.mode.light": "light mode",
|
|
30
29
|
"theme.colorToggle.ariaLabel.mode.dark": "dark mode",
|
|
30
|
+
"theme.colorToggle.ariaLabel.mode.light": "light mode",
|
|
31
31
|
"theme.common.editThisPage": "Diese Seite bearbeiten",
|
|
32
32
|
"theme.common.headingLinkTitle": "Direkter Link zur Überschrift",
|
|
33
33
|
"theme.common.skipToMainContent": "Zum Hauptinhalt springen",
|
|
@@ -26,8 +26,8 @@
|
|
|
26
26
|
"theme.blog.sidebar.navAriaLabel": "Navegación de publicaciones recientes",
|
|
27
27
|
"theme.blog.tagTitle": "{nPosts} etiquetados con \"{tagName}\"",
|
|
28
28
|
"theme.colorToggle.ariaLabel": "Switch between dark and light mode (currently {mode})",
|
|
29
|
-
"theme.colorToggle.ariaLabel.mode.light": "light mode",
|
|
30
29
|
"theme.colorToggle.ariaLabel.mode.dark": "dark mode",
|
|
30
|
+
"theme.colorToggle.ariaLabel.mode.light": "light mode",
|
|
31
31
|
"theme.common.editThisPage": "Editar esta página",
|
|
32
32
|
"theme.common.headingLinkTitle": "Enlace directo al encabezado",
|
|
33
33
|
"theme.common.skipToMainContent": "Saltar al contenido principal",
|
|
@@ -26,8 +26,8 @@
|
|
|
26
26
|
"theme.blog.sidebar.navAriaLabel": "کنترل پست های اخیر وبلاگ",
|
|
27
27
|
"theme.blog.tagTitle": "{nPosts} با برچسب \"{tagName}\"",
|
|
28
28
|
"theme.colorToggle.ariaLabel": "Switch between dark and light mode (currently {mode})",
|
|
29
|
-
"theme.colorToggle.ariaLabel.mode.light": "light mode",
|
|
30
29
|
"theme.colorToggle.ariaLabel.mode.dark": "dark mode",
|
|
30
|
+
"theme.colorToggle.ariaLabel.mode.light": "light mode",
|
|
31
31
|
"theme.common.editThisPage": "ویرایش مطالب این صفحه",
|
|
32
32
|
"theme.common.headingLinkTitle": "لینک مستقیم به عنوان",
|
|
33
33
|
"theme.common.skipToMainContent": "پرش به مطلب اصلی",
|
|
@@ -26,8 +26,8 @@
|
|
|
26
26
|
"theme.blog.sidebar.navAriaLabel": "Blog recent posts navigation",
|
|
27
27
|
"theme.blog.tagTitle": "{nPosts} na may tag na \"{tagName}\"",
|
|
28
28
|
"theme.colorToggle.ariaLabel": "Switch between dark and light mode (currently {mode})",
|
|
29
|
-
"theme.colorToggle.ariaLabel.mode.light": "light mode",
|
|
30
29
|
"theme.colorToggle.ariaLabel.mode.dark": "dark mode",
|
|
30
|
+
"theme.colorToggle.ariaLabel.mode.light": "light mode",
|
|
31
31
|
"theme.common.editThisPage": "I-edit ang page",
|
|
32
32
|
"theme.common.headingLinkTitle": "Direktang link patungo sa heading",
|
|
33
33
|
"theme.common.skipToMainContent": "Lumaktaw patungo sa pangunahing content",
|
|
@@ -26,8 +26,8 @@
|
|
|
26
26
|
"theme.blog.sidebar.navAriaLabel": "Navigation article de blog récent",
|
|
27
27
|
"theme.blog.tagTitle": "{nPosts} tagués avec « {tagName} »",
|
|
28
28
|
"theme.colorToggle.ariaLabel": "Switch between dark and light mode (currently {mode})",
|
|
29
|
-
"theme.colorToggle.ariaLabel.mode.light": "light mode",
|
|
30
29
|
"theme.colorToggle.ariaLabel.mode.dark": "dark mode",
|
|
30
|
+
"theme.colorToggle.ariaLabel.mode.light": "light mode",
|
|
31
31
|
"theme.common.editThisPage": "Éditer cette page",
|
|
32
32
|
"theme.common.headingLinkTitle": "Lien direct vers le titre",
|
|
33
33
|
"theme.common.skipToMainContent": "Aller au contenu principal",
|
|
@@ -26,8 +26,8 @@
|
|
|
26
26
|
"theme.blog.sidebar.navAriaLabel": "מעבר לרשומות אחרונות בבלוג",
|
|
27
27
|
"theme.blog.tagTitle": "{nPosts} עם התגית \"{tagName}\"",
|
|
28
28
|
"theme.colorToggle.ariaLabel": "Switch between dark and light mode (currently {mode})",
|
|
29
|
-
"theme.colorToggle.ariaLabel.mode.light": "light mode",
|
|
30
29
|
"theme.colorToggle.ariaLabel.mode.dark": "dark mode",
|
|
30
|
+
"theme.colorToggle.ariaLabel.mode.light": "light mode",
|
|
31
31
|
"theme.common.editThisPage": "ערוך דף זה",
|
|
32
32
|
"theme.common.headingLinkTitle": "קישור ישיר לכותרת",
|
|
33
33
|
"theme.common.skipToMainContent": "דלג לתוכן הראשי",
|
|
@@ -26,8 +26,8 @@
|
|
|
26
26
|
"theme.blog.sidebar.navAriaLabel": "नया ब्लॉग पोस्ट नेविगेशन",
|
|
27
27
|
"theme.blog.tagTitle": "{nPosts} पोस्ट \"{tagName}\" टैग के साथ",
|
|
28
28
|
"theme.colorToggle.ariaLabel": "Switch between dark and light mode (currently {mode})",
|
|
29
|
-
"theme.colorToggle.ariaLabel.mode.light": "light mode",
|
|
30
29
|
"theme.colorToggle.ariaLabel.mode.dark": "dark mode",
|
|
30
|
+
"theme.colorToggle.ariaLabel.mode.light": "light mode",
|
|
31
31
|
"theme.common.editThisPage": "इस पेज को बदलें",
|
|
32
32
|
"theme.common.headingLinkTitle": "शीर्षक का सीधा लिंक",
|
|
33
33
|
"theme.common.skipToMainContent": "मुख्य कंटेंट तक स्किप करें",
|
|
@@ -26,8 +26,8 @@
|
|
|
26
26
|
"theme.blog.sidebar.navAriaLabel": "Navigazione dei post recenti del blog",
|
|
27
27
|
"theme.blog.tagTitle": "{nPosts} etichettati con \"{tagName}\"",
|
|
28
28
|
"theme.colorToggle.ariaLabel": "Switch between dark and light mode (currently {mode})",
|
|
29
|
-
"theme.colorToggle.ariaLabel.mode.light": "light mode",
|
|
30
29
|
"theme.colorToggle.ariaLabel.mode.dark": "dark mode",
|
|
30
|
+
"theme.colorToggle.ariaLabel.mode.light": "light mode",
|
|
31
31
|
"theme.common.editThisPage": "Modifica questa pagina",
|
|
32
32
|
"theme.common.headingLinkTitle": "Link diretto all'intestazione",
|
|
33
33
|
"theme.common.skipToMainContent": "Passa al contenuto principale",
|
|
@@ -26,8 +26,8 @@
|
|
|
26
26
|
"theme.blog.sidebar.navAriaLabel": "Blog recent posts navigation",
|
|
27
27
|
"theme.blog.tagTitle": "「{tagName}」タグの記事が{nPosts}あります",
|
|
28
28
|
"theme.colorToggle.ariaLabel": "Switch between dark and light mode (currently {mode})",
|
|
29
|
-
"theme.colorToggle.ariaLabel.mode.light": "light mode",
|
|
30
29
|
"theme.colorToggle.ariaLabel.mode.dark": "dark mode",
|
|
30
|
+
"theme.colorToggle.ariaLabel.mode.light": "light mode",
|
|
31
31
|
"theme.common.editThisPage": "このページを編集",
|
|
32
32
|
"theme.common.headingLinkTitle": "見出しへの直接リンク",
|
|
33
33
|
"theme.common.skipToMainContent": "メインコンテンツまでスキップ",
|
|
@@ -26,8 +26,8 @@
|
|
|
26
26
|
"theme.blog.sidebar.navAriaLabel": "최근 블로그 문서 둘러보기",
|
|
27
27
|
"theme.blog.tagTitle": "\"{tagName}\" 태그로 연결된 {nPosts}개의 게시물이 있습니다.",
|
|
28
28
|
"theme.colorToggle.ariaLabel": "어두운 모드와 밝은 모드 전환하기 (현재 {mode})",
|
|
29
|
-
"theme.colorToggle.ariaLabel.mode.light": "밝은 모드",
|
|
30
29
|
"theme.colorToggle.ariaLabel.mode.dark": "어두운 모드",
|
|
30
|
+
"theme.colorToggle.ariaLabel.mode.light": "밝은 모드",
|
|
31
31
|
"theme.common.editThisPage": "페이지 편집",
|
|
32
32
|
"theme.common.headingLinkTitle": "제목으로 바로 가기",
|
|
33
33
|
"theme.common.skipToMainContent": "본문으로 건너뛰기",
|
|
@@ -26,8 +26,8 @@
|
|
|
26
26
|
"theme.blog.sidebar.navAriaLabel": "Blog recent posts navigation",
|
|
27
27
|
"theme.blog.tagTitle": "{nPosts} z tagiem \"{tagName}\"",
|
|
28
28
|
"theme.colorToggle.ariaLabel": "Switch between dark and light mode (currently {mode})",
|
|
29
|
-
"theme.colorToggle.ariaLabel.mode.light": "light mode",
|
|
30
29
|
"theme.colorToggle.ariaLabel.mode.dark": "dark mode",
|
|
30
|
+
"theme.colorToggle.ariaLabel.mode.light": "light mode",
|
|
31
31
|
"theme.common.editThisPage": "Edytuj tą stronę",
|
|
32
32
|
"theme.common.headingLinkTitle": "Bezpośredni link do nagłówka",
|
|
33
33
|
"theme.common.skipToMainContent": "Przejdź do głównej zawartości",
|
|
@@ -26,8 +26,8 @@
|
|
|
26
26
|
"theme.blog.sidebar.navAriaLabel": "Blog recent posts navigation",
|
|
27
27
|
"theme.blog.tagTitle": "{nPosts} marcadas com \"{tagName}\"",
|
|
28
28
|
"theme.colorToggle.ariaLabel": "Switch between dark and light mode (currently {mode})",
|
|
29
|
-
"theme.colorToggle.ariaLabel.mode.light": "light mode",
|
|
30
29
|
"theme.colorToggle.ariaLabel.mode.dark": "dark mode",
|
|
30
|
+
"theme.colorToggle.ariaLabel.mode.light": "light mode",
|
|
31
31
|
"theme.common.editThisPage": "Editar essa página",
|
|
32
32
|
"theme.common.headingLinkTitle": "Link direto para o título",
|
|
33
33
|
"theme.common.skipToMainContent": "Pular para o conteúdo principal",
|
|
@@ -26,8 +26,8 @@
|
|
|
26
26
|
"theme.blog.sidebar.navAriaLabel": "Blog recent posts navigation",
|
|
27
27
|
"theme.blog.tagTitle": "{nPosts} marcadas com \"{tagName}\"",
|
|
28
28
|
"theme.colorToggle.ariaLabel": "Switch between dark and light mode (currently {mode})",
|
|
29
|
-
"theme.colorToggle.ariaLabel.mode.light": "light mode",
|
|
30
29
|
"theme.colorToggle.ariaLabel.mode.dark": "dark mode",
|
|
30
|
+
"theme.colorToggle.ariaLabel.mode.light": "light mode",
|
|
31
31
|
"theme.common.editThisPage": "Editar esta página",
|
|
32
32
|
"theme.common.headingLinkTitle": "Link direto para o título",
|
|
33
33
|
"theme.common.skipToMainContent": "Saltar para o conteúdo principal",
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
|
-
"theme.IdealImageMessage.404error": "404.
|
|
3
|
-
"theme.IdealImageMessage.error": "
|
|
4
|
-
"theme.IdealImageMessage.load": "
|
|
5
|
-
"theme.IdealImageMessage.loading": "
|
|
6
|
-
"theme.IdealImageMessage.offline": "
|
|
2
|
+
"theme.IdealImageMessage.404error": "404. Изображение не найдено",
|
|
3
|
+
"theme.IdealImageMessage.error": "Ошибка. Нажмите для перезагрузки",
|
|
4
|
+
"theme.IdealImageMessage.load": "Нажмите для загрузки {sizeMessage}",
|
|
5
|
+
"theme.IdealImageMessage.loading": "Загрузка...",
|
|
6
|
+
"theme.IdealImageMessage.offline": "Ваш браузер находится в автономном режиме. Изображение не загружено"
|
|
7
7
|
}
|
|
@@ -1,18 +1,18 @@
|
|
|
1
1
|
{
|
|
2
2
|
"theme.AnnouncementBar.closeButtonAriaLabel": "Закрыть",
|
|
3
|
-
"theme.BackToTopButton.buttonAriaLabel": "
|
|
3
|
+
"theme.BackToTopButton.buttonAriaLabel": "Прокрутка к началу",
|
|
4
4
|
"theme.CodeBlock.copied": "Скопировано",
|
|
5
5
|
"theme.CodeBlock.copy": "Скопировать",
|
|
6
6
|
"theme.CodeBlock.copyButtonAriaLabel": "Скопировать в буфер обмена",
|
|
7
|
-
"theme.DocSidebarItem.toggleCollapsedCategoryAriaLabel": "
|
|
8
|
-
"theme.ErrorPageContent.title": "
|
|
9
|
-
"theme.ErrorPageContent.tryAgain": "
|
|
7
|
+
"theme.DocSidebarItem.toggleCollapsedCategoryAriaLabel": "Свернуть/развернуть категорию '{label}'",
|
|
8
|
+
"theme.ErrorPageContent.title": "На странице произошёл сбой.",
|
|
9
|
+
"theme.ErrorPageContent.tryAgain": "Попробуйте ещё раз",
|
|
10
10
|
"theme.NotFound.p1": "К сожалению, мы не смогли найти запрашиваемую вами страницу.",
|
|
11
11
|
"theme.NotFound.p2": "Пожалуйста, обратитесь к владельцу сайта, с которого вы перешли на эту ссылку, чтобы сообщить ему, что ссылка не работает.",
|
|
12
12
|
"theme.NotFound.title": "Страница не найдена",
|
|
13
13
|
"theme.TOCCollapsible.toggleButtonLabel": "Содержание этой страницы",
|
|
14
|
-
"theme.blog.archive.description": "
|
|
15
|
-
"theme.blog.archive.title": "
|
|
14
|
+
"theme.blog.archive.description": "Архив",
|
|
15
|
+
"theme.blog.archive.title": "Архив",
|
|
16
16
|
"theme.blog.paginator.navAriaLabel": "Навигация по странице списка блогов",
|
|
17
17
|
"theme.blog.paginator.newerEntries": "Следующие записи",
|
|
18
18
|
"theme.blog.paginator.olderEntries": "Предыдущие записи",
|
|
@@ -21,17 +21,17 @@
|
|
|
21
21
|
"theme.blog.post.paginator.olderPost": "Предыдущий пост",
|
|
22
22
|
"theme.blog.post.plurals": "{count} запись|{count} записи|{count} записей",
|
|
23
23
|
"theme.blog.post.readMore": "Читать дальше",
|
|
24
|
-
"theme.blog.post.readMoreLabel": "
|
|
24
|
+
"theme.blog.post.readMoreLabel": "Подробнее о {title}",
|
|
25
25
|
"theme.blog.post.readingTime.plurals": "{readingTime} мин. чтения",
|
|
26
26
|
"theme.blog.sidebar.navAriaLabel": "Навигация по последним постам в блоге",
|
|
27
27
|
"theme.blog.tagTitle": "{nPosts} с тегом \"{tagName}\"",
|
|
28
|
-
"theme.colorToggle.ariaLabel": "
|
|
29
|
-
"theme.colorToggle.ariaLabel.mode.
|
|
30
|
-
"theme.colorToggle.ariaLabel.mode.
|
|
28
|
+
"theme.colorToggle.ariaLabel": "Переключение между темным и светлым режимом (сейчас используется {mode})",
|
|
29
|
+
"theme.colorToggle.ariaLabel.mode.dark": "Тёмный режим",
|
|
30
|
+
"theme.colorToggle.ariaLabel.mode.light": "Светлый режим",
|
|
31
31
|
"theme.common.editThisPage": "Отредактировать эту страницу",
|
|
32
32
|
"theme.common.headingLinkTitle": "Прямая ссылка на этот заголовок",
|
|
33
33
|
"theme.common.skipToMainContent": "Перейти к основному содержимому",
|
|
34
|
-
"theme.docs.DocCard.categoryDescription": "{count}
|
|
34
|
+
"theme.docs.DocCard.categoryDescription": "{count} элемент|{count} элемента|{count} элементов",
|
|
35
35
|
"theme.docs.paginator.navAriaLabel": "Навигация по странице документации",
|
|
36
36
|
"theme.docs.paginator.next": "Следующая страница",
|
|
37
37
|
"theme.docs.paginator.previous": "Предыдущая страница",
|
|
@@ -39,9 +39,9 @@
|
|
|
39
39
|
"theme.docs.sidebar.collapseButtonTitle": "Свернуть сайдбар",
|
|
40
40
|
"theme.docs.sidebar.expandButtonAriaLabel": "Развернуть сайдбар",
|
|
41
41
|
"theme.docs.sidebar.expandButtonTitle": "Развернуть сайдбар",
|
|
42
|
-
"theme.docs.tagDocListPageTitle": "{nDocsTagged}
|
|
43
|
-
"theme.docs.tagDocListPageTitle.nDocsTagged": "
|
|
44
|
-
"theme.docs.versionBadge.label": "
|
|
42
|
+
"theme.docs.tagDocListPageTitle": "{nDocsTagged} с тегом \"{tagName}\"",
|
|
43
|
+
"theme.docs.tagDocListPageTitle.nDocsTagged": "Одна страница|{count} страницы|{count} страниц",
|
|
44
|
+
"theme.docs.versionBadge.label": "Версия: {versionLabel}",
|
|
45
45
|
"theme.docs.versions.latestVersionLinkLabel": "последней версии",
|
|
46
46
|
"theme.docs.versions.latestVersionSuggestionLabel": "Актуальная документация находится на странице {latestVersionLink} ({versionLabel}).",
|
|
47
47
|
"theme.docs.versions.unmaintainedVersionLabel": "Это документация {siteTitle} для версии {versionLabel}, которая уже не поддерживается.",
|
|
@@ -49,9 +49,9 @@
|
|
|
49
49
|
"theme.lastUpdated.atDate": " {date}",
|
|
50
50
|
"theme.lastUpdated.byUser": " от {user}",
|
|
51
51
|
"theme.lastUpdated.lastUpdatedAtBy": "Последнее обновление{atDate}{byUser}",
|
|
52
|
-
"theme.navbar.mobileLanguageDropdown.label": "
|
|
52
|
+
"theme.navbar.mobileLanguageDropdown.label": "Языки",
|
|
53
53
|
"theme.navbar.mobileSidebarSecondaryMenu.backButtonLabel": "← Перейти к главному меню",
|
|
54
|
-
"theme.navbar.mobileVersionsDropdown.label": "
|
|
54
|
+
"theme.navbar.mobileVersionsDropdown.label": "Версии",
|
|
55
55
|
"theme.tags.tagsListLabel": "Теги:",
|
|
56
56
|
"theme.tags.tagsPageLink": "Посмотреть все теги",
|
|
57
57
|
"theme.tags.tagsPageTitle": "Теги"
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"theme.SearchBar.label": "Поиск",
|
|
3
|
-
"theme.SearchBar.seeAll": "
|
|
3
|
+
"theme.SearchBar.seeAll": "Посмотреть все результаты ({count})",
|
|
4
4
|
"theme.SearchPage.algoliaLabel": "Поиск от Algolia",
|
|
5
5
|
"theme.SearchPage.documentsFound.plurals": "{count} документ|{count} документа|{count} документов",
|
|
6
6
|
"theme.SearchPage.emptyResultsTitle": "Поиск по сайту",
|
|
@@ -26,8 +26,8 @@
|
|
|
26
26
|
"theme.blog.sidebar.navAriaLabel": "Недавни постови на блогу",
|
|
27
27
|
"theme.blog.tagTitle": "{nPosts} означени са \"{tagName}\"",
|
|
28
28
|
"theme.colorToggle.ariaLabel": "Switch between dark and light mode (currently {mode})",
|
|
29
|
-
"theme.colorToggle.ariaLabel.mode.light": "light mode",
|
|
30
29
|
"theme.colorToggle.ariaLabel.mode.dark": "dark mode",
|
|
30
|
+
"theme.colorToggle.ariaLabel.mode.light": "light mode",
|
|
31
31
|
"theme.common.editThisPage": "Уреди ову страницу",
|
|
32
32
|
"theme.common.headingLinkTitle": "Веза до наслова",
|
|
33
33
|
"theme.common.skipToMainContent": "Пређи на главни садржај",
|
|
@@ -26,8 +26,8 @@
|
|
|
26
26
|
"theme.blog.sidebar.navAriaLabel": "Blog son gönderiler navigasyonu",
|
|
27
27
|
"theme.blog.tagTitle": "\"{tagName}\" ile etiketlenmiş {nPosts}",
|
|
28
28
|
"theme.colorToggle.ariaLabel": "Switch between dark and light mode (currently {mode})",
|
|
29
|
-
"theme.colorToggle.ariaLabel.mode.light": "light mode",
|
|
30
29
|
"theme.colorToggle.ariaLabel.mode.dark": "dark mode",
|
|
30
|
+
"theme.colorToggle.ariaLabel.mode.light": "light mode",
|
|
31
31
|
"theme.common.editThisPage": "Bu sayfayı düzenle",
|
|
32
32
|
"theme.common.headingLinkTitle": "Başlığa doğrudan bağlantı",
|
|
33
33
|
"theme.common.skipToMainContent": "Ana içeriğe geç",
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
|
-
"theme.IdealImageMessage.404error": "404.
|
|
3
|
-
"theme.IdealImageMessage.error": "
|
|
4
|
-
"theme.IdealImageMessage.load": "
|
|
5
|
-
"theme.IdealImageMessage.loading": "
|
|
6
|
-
"theme.IdealImageMessage.offline": "
|
|
2
|
+
"theme.IdealImageMessage.404error": "404. Không tìm thấy ảnh",
|
|
3
|
+
"theme.IdealImageMessage.error": "Có lỗi. Nhấn để tải lại",
|
|
4
|
+
"theme.IdealImageMessage.load": "Nhấn để tải {sizeMessage}",
|
|
5
|
+
"theme.IdealImageMessage.loading": "Đang tái...",
|
|
6
|
+
"theme.IdealImageMessage.offline": "Hiện bạn đang ngoại tuyến. Không thể tải ảnh"
|
|
7
7
|
}
|
|
@@ -4,9 +4,9 @@
|
|
|
4
4
|
"theme.CodeBlock.copied": "Đã sao chép",
|
|
5
5
|
"theme.CodeBlock.copy": "Sao chép",
|
|
6
6
|
"theme.CodeBlock.copyButtonAriaLabel": "Sao chép code vào bộ nhớ tạm",
|
|
7
|
-
"theme.DocSidebarItem.toggleCollapsedCategoryAriaLabel": "
|
|
8
|
-
"theme.ErrorPageContent.title": "
|
|
9
|
-
"theme.ErrorPageContent.tryAgain": "
|
|
7
|
+
"theme.DocSidebarItem.toggleCollapsedCategoryAriaLabel": "Chuyển đổi danh mục thanh bên có thể thu gọn '{label}'",
|
|
8
|
+
"theme.ErrorPageContent.title": "Trang này đã bị lỗi.",
|
|
9
|
+
"theme.ErrorPageContent.tryAgain": "Thử lại",
|
|
10
10
|
"theme.NotFound.p1": "Chúng tôi không thể tìm thấy những gì bạn đang tìm kiếm.",
|
|
11
11
|
"theme.NotFound.p2": "Vui lòng liên hệ với trang web đã dẫn bạn tới đây và thông báo cho họ biết rằng đường dẫn này bị hỏng.",
|
|
12
12
|
"theme.NotFound.title": "Không tìm thấy trang",
|
|
@@ -21,17 +21,17 @@
|
|
|
21
21
|
"theme.blog.post.paginator.olderPost": "Bài cũ hơn",
|
|
22
22
|
"theme.blog.post.plurals": "Một bài viết|{count} bài viết",
|
|
23
23
|
"theme.blog.post.readMore": "Đọc Tiếp",
|
|
24
|
-
"theme.blog.post.readMoreLabel": "
|
|
24
|
+
"theme.blog.post.readMoreLabel": "Đọc thêm về {title}",
|
|
25
25
|
"theme.blog.post.readingTime.plurals": "Một phút để đọc|{readingTime} phút để đọc",
|
|
26
26
|
"theme.blog.sidebar.navAriaLabel": "Điều hướng các bài viết gần đây trên blog",
|
|
27
27
|
"theme.blog.tagTitle": "{nPosts} được gắn thẻ \"{tagName}\"",
|
|
28
|
-
"theme.colorToggle.ariaLabel": "
|
|
29
|
-
"theme.colorToggle.ariaLabel.mode.
|
|
30
|
-
"theme.colorToggle.ariaLabel.mode.
|
|
28
|
+
"theme.colorToggle.ariaLabel": "Chuyển đổi chế độ sáng và tối (hiện tại {mode})",
|
|
29
|
+
"theme.colorToggle.ariaLabel.mode.dark": "chế độ tối",
|
|
30
|
+
"theme.colorToggle.ariaLabel.mode.light": "chế độ sáng",
|
|
31
31
|
"theme.common.editThisPage": "Sửa trang này",
|
|
32
32
|
"theme.common.headingLinkTitle": "Đường dẫn trực tiếp tới đề mục này",
|
|
33
33
|
"theme.common.skipToMainContent": "Nhảy tới nội dung",
|
|
34
|
-
"theme.docs.DocCard.categoryDescription": "{count}
|
|
34
|
+
"theme.docs.DocCard.categoryDescription": "{count} mục",
|
|
35
35
|
"theme.docs.paginator.navAriaLabel": "Thanh điều hướng của trang tài liệu",
|
|
36
36
|
"theme.docs.paginator.next": "Kế tiếp",
|
|
37
37
|
"theme.docs.paginator.previous": "Trước",
|
|
@@ -49,9 +49,9 @@
|
|
|
49
49
|
"theme.lastUpdated.atDate": " vào {date}",
|
|
50
50
|
"theme.lastUpdated.byUser": " bởi {user}",
|
|
51
51
|
"theme.lastUpdated.lastUpdatedAtBy": "Cập nhật lần cuối {atDate} bởi {byUser}",
|
|
52
|
-
"theme.navbar.mobileLanguageDropdown.label": "
|
|
52
|
+
"theme.navbar.mobileLanguageDropdown.label": "Ngôn ngữ",
|
|
53
53
|
"theme.navbar.mobileSidebarSecondaryMenu.backButtonLabel": "← Trở lại menu chính",
|
|
54
|
-
"theme.navbar.mobileVersionsDropdown.label": "
|
|
54
|
+
"theme.navbar.mobileVersionsDropdown.label": "Phiên bản",
|
|
55
55
|
"theme.tags.tagsListLabel": "Thẻ:",
|
|
56
56
|
"theme.tags.tagsPageLink": "Xem tất cả Thẻ",
|
|
57
57
|
"theme.tags.tagsPageTitle": "Thẻ"
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"theme.SearchBar.label": "Tìm kiếm",
|
|
3
|
-
"theme.SearchBar.seeAll": "
|
|
3
|
+
"theme.SearchBar.seeAll": "Xem {count} kết quả",
|
|
4
4
|
"theme.SearchPage.algoliaLabel": "Tìm kiếm với Algolia",
|
|
5
5
|
"theme.SearchPage.documentsFound.plurals": "Tìm thấy một kết quả|Tìm thấy {count} kết quả",
|
|
6
6
|
"theme.SearchPage.emptyResultsTitle": "Tìm kiếm",
|
|
@@ -26,8 +26,8 @@
|
|
|
26
26
|
"theme.blog.sidebar.navAriaLabel": "最近博文导航",
|
|
27
27
|
"theme.blog.tagTitle": "{nPosts} 含有标签「{tagName}」",
|
|
28
28
|
"theme.colorToggle.ariaLabel": "切换浅色/暗黑模式(当前为{mode})",
|
|
29
|
-
"theme.colorToggle.ariaLabel.mode.light": "浅色模式",
|
|
30
29
|
"theme.colorToggle.ariaLabel.mode.dark": "暗黑模式",
|
|
30
|
+
"theme.colorToggle.ariaLabel.mode.light": "浅色模式",
|
|
31
31
|
"theme.common.editThisPage": "编辑此页",
|
|
32
32
|
"theme.common.headingLinkTitle": "标题的直接链接",
|
|
33
33
|
"theme.common.skipToMainContent": "跳到主要内容",
|
|
@@ -39,7 +39,7 @@
|
|
|
39
39
|
"theme.docs.sidebar.collapseButtonTitle": "收起侧边栏",
|
|
40
40
|
"theme.docs.sidebar.expandButtonAriaLabel": "展开侧边栏",
|
|
41
41
|
"theme.docs.sidebar.expandButtonTitle": "展开侧边栏",
|
|
42
|
-
"theme.docs.tagDocListPageTitle": "{nDocsTagged}
|
|
42
|
+
"theme.docs.tagDocListPageTitle": "{nDocsTagged}「{tagName}」",
|
|
43
43
|
"theme.docs.tagDocListPageTitle.nDocsTagged": "{count} 篇文档带有标签",
|
|
44
44
|
"theme.docs.versionBadge.label": "版本:{versionLabel}",
|
|
45
45
|
"theme.docs.versions.latestVersionLinkLabel": "最新版本",
|
|
@@ -26,8 +26,8 @@
|
|
|
26
26
|
"theme.blog.sidebar.navAriaLabel": "最近部落格文章導覽",
|
|
27
27
|
"theme.blog.tagTitle": "{nPosts} 含有標籤「{tagName}」",
|
|
28
28
|
"theme.colorToggle.ariaLabel": "切換淺色/暗黑模式(當前為{mode})",
|
|
29
|
-
"theme.colorToggle.ariaLabel.mode.light": "淺色模式",
|
|
30
29
|
"theme.colorToggle.ariaLabel.mode.dark": "暗黑模式",
|
|
30
|
+
"theme.colorToggle.ariaLabel.mode.light": "淺色模式",
|
|
31
31
|
"theme.common.editThisPage": "編輯此頁",
|
|
32
32
|
"theme.common.headingLinkTitle": "標題的直接連結",
|
|
33
33
|
"theme.common.skipToMainContent": "跳至主要内容",
|
|
@@ -39,7 +39,7 @@
|
|
|
39
39
|
"theme.docs.sidebar.collapseButtonTitle": "收起側邊欄",
|
|
40
40
|
"theme.docs.sidebar.expandButtonAriaLabel": "展開側邊欄",
|
|
41
41
|
"theme.docs.sidebar.expandButtonTitle": "展開側邊欄",
|
|
42
|
-
"theme.docs.tagDocListPageTitle": "{nDocsTagged}
|
|
42
|
+
"theme.docs.tagDocListPageTitle": "{nDocsTagged}「{tagName}」",
|
|
43
43
|
"theme.docs.tagDocListPageTitle.nDocsTagged": "{count} 篇文件帶有標籤",
|
|
44
44
|
"theme.docs.versionBadge.label": "版本:{versionLabel}",
|
|
45
45
|
"theme.docs.versions.latestVersionLinkLabel": "最新版本",
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@docusaurus/theme-translations",
|
|
3
|
-
"version": "2.0.0-beta.
|
|
3
|
+
"version": "2.0.0-beta.18",
|
|
4
4
|
"description": "Docusaurus theme translations.",
|
|
5
5
|
"main": "lib/index.js",
|
|
6
6
|
"types": "lib/index.d.ts",
|
|
@@ -14,21 +14,21 @@
|
|
|
14
14
|
},
|
|
15
15
|
"license": "MIT",
|
|
16
16
|
"scripts": {
|
|
17
|
-
"build": "tsc",
|
|
18
|
-
"watch": "tsc --watch",
|
|
19
|
-
"update": "node ./update.
|
|
17
|
+
"build": "tsc -p tsconfig.build.json",
|
|
18
|
+
"watch": "tsc -p tsconfig.build.json --watch",
|
|
19
|
+
"update": "node ./update.mjs"
|
|
20
20
|
},
|
|
21
21
|
"dependencies": {
|
|
22
22
|
"fs-extra": "^10.0.1",
|
|
23
23
|
"tslib": "^2.3.1"
|
|
24
24
|
},
|
|
25
25
|
"devDependencies": {
|
|
26
|
-
"@docusaurus/core": "2.0.0-beta.
|
|
27
|
-
"@docusaurus/logger": "2.0.0-beta.
|
|
26
|
+
"@docusaurus/core": "2.0.0-beta.18",
|
|
27
|
+
"@docusaurus/logger": "2.0.0-beta.18",
|
|
28
28
|
"lodash": "^4.17.21"
|
|
29
29
|
},
|
|
30
30
|
"engines": {
|
|
31
31
|
"node": ">=14"
|
|
32
32
|
},
|
|
33
|
-
"gitHead": "
|
|
33
|
+
"gitHead": "1a945d06993d53376e61bed2c942799fe07dc336"
|
|
34
34
|
}
|
package/src/index.ts
CHANGED
|
@@ -39,7 +39,7 @@ export async function readDefaultCodeTranslationMessages({
|
|
|
39
39
|
dirPath?: string;
|
|
40
40
|
locale: string;
|
|
41
41
|
name: string;
|
|
42
|
-
}): Promise<
|
|
42
|
+
}): Promise<{[msgId: string]: string}> {
|
|
43
43
|
const localesToTry = codeTranslationLocalesToTry(locale);
|
|
44
44
|
|
|
45
45
|
// Return the content of the first file that match
|
package/src/utils.ts
ADDED
|
@@ -0,0 +1,99 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Copyright (c) Facebook, Inc. and its affiliates.
|
|
3
|
+
*
|
|
4
|
+
* This source code is licensed under the MIT license found in the
|
|
5
|
+
* LICENSE file in the root directory of this source tree.
|
|
6
|
+
*/
|
|
7
|
+
|
|
8
|
+
// This file isn't used by index.ts. It's used by update.mjs and tests. It's
|
|
9
|
+
// only here so that (a) we get a partially typed infrastructure (although the
|
|
10
|
+
// update script has ts-check anyways) (b) the test coverage isn't destroyed by
|
|
11
|
+
// the untested update.mjs file (c) we can ergonomically import the util
|
|
12
|
+
// functions in the Jest test without using `await import`
|
|
13
|
+
|
|
14
|
+
import path from 'path';
|
|
15
|
+
import fs from 'fs-extra';
|
|
16
|
+
// Unsafe import, should we create a package for the translationsExtractor ?;
|
|
17
|
+
import {
|
|
18
|
+
globSourceCodeFilePaths,
|
|
19
|
+
extractAllSourceCodeFileTranslations,
|
|
20
|
+
} from '@docusaurus/core/lib/server/translations/translationsExtractor';
|
|
21
|
+
import type {TranslationFileContent} from '@docusaurus/types';
|
|
22
|
+
|
|
23
|
+
async function getPackageCodePath(packageName: string) {
|
|
24
|
+
const packagePath = path.join(__dirname, '../..', packageName);
|
|
25
|
+
const packageJsonPath = path.join(packagePath, 'package.json');
|
|
26
|
+
const {main} = await fs.readJSON(packageJsonPath);
|
|
27
|
+
const packageSrcPath = path.join(packagePath, path.dirname(main));
|
|
28
|
+
const packageLibNextPath = packageSrcPath.replace('lib', 'lib-next');
|
|
29
|
+
return (await fs.pathExists(packageLibNextPath))
|
|
30
|
+
? packageLibNextPath
|
|
31
|
+
: packageSrcPath;
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
export async function getThemes(): Promise<{name: string; src: string[]}[]> {
|
|
35
|
+
return [
|
|
36
|
+
{
|
|
37
|
+
name: 'theme-common',
|
|
38
|
+
src: [
|
|
39
|
+
await getPackageCodePath('docusaurus-theme-classic'),
|
|
40
|
+
await getPackageCodePath('docusaurus-theme-common'),
|
|
41
|
+
],
|
|
42
|
+
},
|
|
43
|
+
{
|
|
44
|
+
name: 'theme-search-algolia',
|
|
45
|
+
src: [await getPackageCodePath('docusaurus-theme-search-algolia')],
|
|
46
|
+
},
|
|
47
|
+
{
|
|
48
|
+
name: 'theme-live-codeblock',
|
|
49
|
+
src: [await getPackageCodePath('docusaurus-theme-live-codeblock')],
|
|
50
|
+
},
|
|
51
|
+
{
|
|
52
|
+
name: 'plugin-pwa',
|
|
53
|
+
src: [await getPackageCodePath('docusaurus-plugin-pwa')],
|
|
54
|
+
},
|
|
55
|
+
{
|
|
56
|
+
name: 'plugin-ideal-image',
|
|
57
|
+
src: [await getPackageCodePath('docusaurus-plugin-ideal-image')],
|
|
58
|
+
},
|
|
59
|
+
];
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
export async function extractThemeCodeMessages(
|
|
63
|
+
targetDirs?: string[],
|
|
64
|
+
): Promise<TranslationFileContent> {
|
|
65
|
+
// eslint-disable-next-line no-param-reassign
|
|
66
|
+
targetDirs ??= (await getThemes()).flatMap((theme) => theme.src);
|
|
67
|
+
|
|
68
|
+
const filePaths = (await globSourceCodeFilePaths(targetDirs)).filter(
|
|
69
|
+
(filePath) => ['.js', '.jsx'].includes(path.extname(filePath)),
|
|
70
|
+
);
|
|
71
|
+
|
|
72
|
+
const filesExtractedTranslations = await extractAllSourceCodeFileTranslations(
|
|
73
|
+
filePaths,
|
|
74
|
+
{
|
|
75
|
+
presets: [require.resolve('@docusaurus/core/lib/babel/preset')],
|
|
76
|
+
},
|
|
77
|
+
);
|
|
78
|
+
|
|
79
|
+
filesExtractedTranslations.forEach((fileExtractedTranslations) => {
|
|
80
|
+
if (fileExtractedTranslations.warnings.length > 0) {
|
|
81
|
+
throw new Error(`
|
|
82
|
+
Please make sure all theme translations are static!
|
|
83
|
+
Some warnings were found!
|
|
84
|
+
|
|
85
|
+
${fileExtractedTranslations.warnings.join('\n\n')}
|
|
86
|
+
`);
|
|
87
|
+
}
|
|
88
|
+
});
|
|
89
|
+
|
|
90
|
+
const translations = filesExtractedTranslations.reduce(
|
|
91
|
+
(acc, extractedTranslations) => ({
|
|
92
|
+
...acc,
|
|
93
|
+
...extractedTranslations.translations,
|
|
94
|
+
}),
|
|
95
|
+
{},
|
|
96
|
+
);
|
|
97
|
+
|
|
98
|
+
return translations;
|
|
99
|
+
}
|