From b165037381d0f9659a0e9518b47ac2ec9f8e231b Mon Sep 17 00:00:00 2001
From: Matt <44753941+Madoshakalaka@users.noreply.github.com>
Date: Wed, 12 Jan 2022 21:23:30 +0800
Subject: [PATCH] Incorporate in-code translation in the workflow (#2349)
* implements #2276
* add localization and website contributing guides
* fix typo
* Update build-website.yml
* add note for write-translations
* attempt 2 at making CI build the stubs
* experiment: delete part of the stubs...
expecting ci to rebuild it
* write-translations for dev and check- for ci
* catch promise errors
* commit the missing mdx instruction
* fix English grammar in check report
---
.github/dependabot.yml | 6 +
.github/workflows/build-website.yml | 10 +-
CONTRIBUTING.md | 7 +
README.md | 2 +-
website/README.md | 37 +++-
website/check-translations.js | 37 ++++
website/i18n/ja/code.json | 198 ++++++++++++++++++
.../current.json | 82 ++++++++
.../version-0.18.0.json | 42 ++++
.../version-0.19.0.json | 58 +++++
.../ja/docusaurus-theme-classic/footer.json | 38 ++++
.../ja/docusaurus-theme-classic/navbar.json | 18 ++
website/i18n/zh-CN/code.json | 198 ++++++++++++++++++
.../current.json | 82 ++++++++
.../version-0.18.0.json | 42 ++++
.../version-0.19.0.json | 58 +++++
.../docusaurus-theme-classic/footer.json | 38 ++++
.../docusaurus-theme-classic/navbar.json | 18 ++
website/i18n/zh-TW/code.json | 198 ++++++++++++++++++
.../current.json | 82 ++++++++
.../version-0.18.0.json | 42 ++++
.../version-0.19.0.json | 58 +++++
.../docusaurus-theme-classic/footer.json | 38 ++++
.../docusaurus-theme-classic/navbar.json | 18 ++
website/mdx-jetbrains.jpg | Bin 0 -> 144228 bytes
website/package-lock.json | 47 +++++
website/package.json | 6 +-
website/write-translations.js | 32 +++
28 files changed, 1482 insertions(+), 10 deletions(-)
create mode 100644 website/check-translations.js
create mode 100644 website/i18n/ja/code.json
create mode 100644 website/i18n/ja/docusaurus-plugin-content-docs/current.json
create mode 100644 website/i18n/ja/docusaurus-plugin-content-docs/version-0.18.0.json
create mode 100644 website/i18n/ja/docusaurus-plugin-content-docs/version-0.19.0.json
create mode 100644 website/i18n/ja/docusaurus-theme-classic/footer.json
create mode 100644 website/i18n/ja/docusaurus-theme-classic/navbar.json
create mode 100644 website/i18n/zh-CN/code.json
create mode 100644 website/i18n/zh-CN/docusaurus-plugin-content-docs/current.json
create mode 100644 website/i18n/zh-CN/docusaurus-plugin-content-docs/version-0.18.0.json
create mode 100644 website/i18n/zh-CN/docusaurus-plugin-content-docs/version-0.19.0.json
create mode 100644 website/i18n/zh-CN/docusaurus-theme-classic/footer.json
create mode 100644 website/i18n/zh-CN/docusaurus-theme-classic/navbar.json
create mode 100644 website/i18n/zh-TW/code.json
create mode 100644 website/i18n/zh-TW/docusaurus-plugin-content-docs/current.json
create mode 100644 website/i18n/zh-TW/docusaurus-plugin-content-docs/version-0.18.0.json
create mode 100644 website/i18n/zh-TW/docusaurus-plugin-content-docs/version-0.19.0.json
create mode 100644 website/i18n/zh-TW/docusaurus-theme-classic/footer.json
create mode 100644 website/i18n/zh-TW/docusaurus-theme-classic/navbar.json
create mode 100644 website/mdx-jetbrains.jpg
create mode 100644 website/write-translations.js
diff --git a/.github/dependabot.yml b/.github/dependabot.yml
index b58570f85..871868f0e 100644
--- a/.github/dependabot.yml
+++ b/.github/dependabot.yml
@@ -6,3 +6,9 @@ updates:
interval: "weekly"
day: "friday"
open-pull-requests-limit: 5
+
+ - package-ecosystem: "npm"
+ directory: "/website"
+ schedule:
+ interval: "daily"
+ target-branch: "master"
diff --git a/.github/workflows/build-website.yml b/.github/workflows/build-website.yml
index a67eca797..18e31b04a 100644
--- a/.github/workflows/build-website.yml
+++ b/.github/workflows/build-website.yml
@@ -20,15 +20,21 @@ jobs:
PR_INFO_FILE: ".PR_INFO"
steps:
- uses: actions/checkout@v2
+
- name: Setup node
uses: actions/setup-node@v1
with:
- node-version: "14.x"
+ node-version: "16"
+
+ - name: Check Translations
+ run: |
+ cd website
+ npm install
+ npm run check-translations
- name: Build
run: |
cd website
- npm install
npm run build
- name: Upload build artifact
diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md
index aaca04c3b..f27a882f1 100644
--- a/CONTRIBUTING.md
+++ b/CONTRIBUTING.md
@@ -101,3 +101,10 @@ Below, you can find some useful guidance and best practices on how to write APIs
- [The Rust API Guidelines](https://rust-lang.github.io/api-guidelines/)
- [Elegant Library APIs in Rust](https://deterministic.space/elegant-apis-in-rust.html)
+
+## Website
+
+The source code of our website ([https://yew.rs](https://yew.rs)) is in the [website directory](website).
+Most of the times, edits can be done in markdown.
+
+[website/README.md](website/README.md) has more detailed instructions.
\ No newline at end of file
diff --git a/README.md b/README.md
index bf46ee912..03bbb56fc 100644
--- a/README.md
+++ b/README.md
@@ -11,7 +11,7 @@
-
+
diff --git a/website/README.md b/website/README.md
index 7bf6d35b7..8fea65924 100644
--- a/website/README.md
+++ b/website/README.md
@@ -2,6 +2,9 @@
This website is built using [Docusaurus 2](https://docusaurus.io/), a modern static website generator.
+Most of the content sits inside the [docs](docs) folder and the [versioned_docs](versioned_docs) folder in the form of
+markdown.
+
## Installation
```console
@@ -18,7 +21,7 @@ This command starts a local development server and opens up a browser window. Mo
without having to restart the server.
Note this only builds for English locale unlike a production build.
-> Documentation is written in `mdx`, markdown empowered with jsx.
+> Documentation is written in `mdx`, a superset of markdown empowered with jsx.
> JetBrains and VSCode both provide MDX plugins.
## Production Build
@@ -29,10 +32,34 @@ npm run build
This command generates static content into the `build` directory and can be served using any static contents hosting service.
-## Deployment
+## Localization
-```console
-GIT_USER= USE_SSH=true yarn deploy
+Localization is done on [GitLocalize](https://gitlocalize.com/repo/4999/whole_project).
+You can sign in with your GitHub account to start translating.
+
+When you add to the docs in the `mdx` files,
+Contributors on GitLocalize will translate the added content
+and the translation will get dumped under the [i18n](i18n) folder in a later time.
+
+If you are a native speaker of one of the translated languages,
+and you are interested in translating your edits yourself,
+you are welcome to navigate to the folder and do it yourself!
+
+If you want to write displayed content in `html/jsx` instead of vanilla markdown,
+You should wrap your text in `` tags.
+It helps docusaurus to extract those texts and compile them to `.json` files to
+get further translated in GitLocalize.
+
+```jsx
+import Translate from '@docusaurus/Translate';
+
+
+
+
;
```
-If you are using GitHub pages for hosting, this command is a convenient way to build the website and push to the `gh-pages` branch.
+If your pull request adds new `` tags,
+make sure you do `npm run write-translations` to generate the new stubs for later localization.
+And you are always welcome to add localization yourself in your native languages!
diff --git a/website/check-translations.js b/website/check-translations.js
new file mode 100644
index 000000000..8b61965c6
--- /dev/null
+++ b/website/check-translations.js
@@ -0,0 +1,37 @@
+const {i18n: {locales}} = require('./docusaurus.config.js');
+const util = require('util');
+const exec = util.promisify(require('child_process').exec);
+const path = require('path');
+const fs = require('fs');
+const os = require('os');
+const dircompare = require('dir-compare');
+const writeTranslations = require('./write-translations.js')
+
+
+const temp = fs.mkdtempSync(path.join(os.tmpdir(), 'yew-website-'));
+
+
+async function main() {
+ await new Promise(resolve => {
+ fs.cp('i18n', temp, {recursive: true}, () => {
+ resolve()
+ })
+ })
+
+ await writeTranslations()
+
+ const result = await dircompare.compare(temp, 'i18n', {compareContent: true});
+ if (result.same) {
+ console.log("Translations unchanged");
+ } else {
+ console.error("Translations changed, please run `npm run write-translations` to generate the stubs");
+ process.exitCode = 1;
+ }
+}
+
+main()
+ .catch(e => console.error(e))
+
+
+
+
diff --git a/website/i18n/ja/code.json b/website/i18n/ja/code.json
new file mode 100644
index 000000000..3df58d96d
--- /dev/null
+++ b/website/i18n/ja/code.json
@@ -0,0 +1,198 @@
+{
+ "theme.ErrorPageContent.title": {
+ "message": "This page crashed.",
+ "description": "The title of the fallback page when the page crashed"
+ },
+ "theme.ErrorPageContent.tryAgain": {
+ "message": "Try again",
+ "description": "The label of the button to try again when the page crashed"
+ },
+ "theme.NotFound.title": {
+ "message": "ページが見つかりません",
+ "description": "The title of the 404 page"
+ },
+ "theme.NotFound.p1": {
+ "message": "お探しのページが見つかりませんでした。",
+ "description": "The first paragraph of the 404 page"
+ },
+ "theme.NotFound.p2": {
+ "message": "このページにリンクしているサイトの所有者に連絡をしてリンクが壊れていることを伝えてください。",
+ "description": "The 2nd paragraph of the 404 page"
+ },
+ "theme.AnnouncementBar.closeButtonAriaLabel": {
+ "message": "閉じる",
+ "description": "The ARIA label for close button of announcement bar"
+ },
+ "theme.BackToTopButton.buttonAriaLabel": {
+ "message": "Scroll back to top",
+ "description": "The ARIA label for the back to top button"
+ },
+ "theme.blog.archive.title": {
+ "message": "Archive",
+ "description": "The page & hero title of the blog archive page"
+ },
+ "theme.blog.archive.description": {
+ "message": "Archive",
+ "description": "The page & hero description of the blog archive page"
+ },
+ "theme.blog.paginator.navAriaLabel": {
+ "message": "ブログ記事一覧のナビゲーション",
+ "description": "The ARIA label for the blog pagination"
+ },
+ "theme.blog.paginator.newerEntries": {
+ "message": "新しい記事",
+ "description": "The label used to navigate to the newer blog posts page (previous page)"
+ },
+ "theme.blog.paginator.olderEntries": {
+ "message": "過去の記事",
+ "description": "The label used to navigate to the older blog posts page (next page)"
+ },
+ "theme.blog.post.readingTime.plurals": {
+ "message": "約{readingTime}分",
+ "description": "Pluralized label for \"{readingTime} min read\". Use as much plural forms (separated by \"|\") as your language support (see https://www.unicode.org/cldr/cldr-aux/charts/34/supplemental/language_plural_rules.html)"
+ },
+ "theme.blog.post.readMore": {
+ "message": "もっと見る",
+ "description": "The label used in blog post item excerpts to link to full blog posts"
+ },
+ "theme.blog.post.paginator.navAriaLabel": {
+ "message": "ブログ記事のナビゲーション",
+ "description": "The ARIA label for the blog posts pagination"
+ },
+ "theme.blog.post.paginator.newerPost": {
+ "message": "新しい記事",
+ "description": "The blog post button label to navigate to the newer/previous post"
+ },
+ "theme.blog.post.paginator.olderPost": {
+ "message": "過去の記事",
+ "description": "The blog post button label to navigate to the older/next post"
+ },
+ "theme.blog.sidebar.navAriaLabel": {
+ "message": "Blog recent posts navigation",
+ "description": "The ARIA label for recent posts in the blog sidebar"
+ },
+ "theme.blog.post.plurals": {
+ "message": "{count}件",
+ "description": "Pluralized label for \"{count} posts\". Use as much plural forms (separated by \"|\") as your language support (see https://www.unicode.org/cldr/cldr-aux/charts/34/supplemental/language_plural_rules.html)"
+ },
+ "theme.blog.tagTitle": {
+ "message": "「{tagName}」タグの記事が{nPosts}あります",
+ "description": "The title of the page for a blog tag"
+ },
+ "theme.tags.tagsPageLink": {
+ "message": "全てのタグを見る",
+ "description": "The label of the link targeting the tag list page"
+ },
+ "theme.CodeBlock.copyButtonAriaLabel": {
+ "message": "クリップボードにコードをコピー",
+ "description": "The ARIA label for copy code blocks button"
+ },
+ "theme.CodeBlock.copied": {
+ "message": "コピーしました",
+ "description": "The copied button label on code blocks"
+ },
+ "theme.CodeBlock.copy": {
+ "message": "コピー",
+ "description": "The copy button label on code blocks"
+ },
+ "theme.docs.sidebar.expandButtonTitle": {
+ "message": "サイドバーを開く",
+ "description": "The ARIA label and title attribute for expand button of doc sidebar"
+ },
+ "theme.docs.sidebar.expandButtonAriaLabel": {
+ "message": "サイドバーを開く",
+ "description": "The ARIA label and title attribute for expand button of doc sidebar"
+ },
+ "theme.docs.paginator.navAriaLabel": {
+ "message": "ドキュメントのナビゲーション",
+ "description": "The ARIA label for the docs pagination"
+ },
+ "theme.docs.paginator.next": {
+ "message": "次へ",
+ "description": "The label used to navigate to the next doc"
+ },
+ "theme.docs.paginator.previous": {
+ "message": "前へ",
+ "description": "The label used to navigate to the previous doc"
+ },
+ "theme.docs.sidebar.collapseButtonTitle": {
+ "message": "サイドバーを隠す",
+ "description": "The title attribute for collapse button of doc sidebar"
+ },
+ "theme.docs.sidebar.collapseButtonAriaLabel": {
+ "message": "サイドバーを隠す",
+ "description": "The title attribute for collapse button of doc sidebar"
+ },
+ "theme.DocSidebarItem.toggleCollapsedCategoryAriaLabel": {
+ "message": "Toggle the collapsible sidebar category '{label}'",
+ "description": "The ARIA label to toggle the collapsible sidebar category"
+ },
+ "theme.docs.tagDocListPageTitle.nDocsTagged": {
+ "message": "One doc tagged|{count} docs tagged",
+ "description": "Pluralized label for \"{count} docs tagged\". Use as much plural forms (separated by \"|\") as your language support (see https://www.unicode.org/cldr/cldr-aux/charts/34/supplemental/language_plural_rules.html)"
+ },
+ "theme.docs.tagDocListPageTitle": {
+ "message": "{nDocsTagged} with \"{tagName}\"",
+ "description": "The title of the page for a docs tag"
+ },
+ "theme.docs.versions.unreleasedVersionLabel": {
+ "message": "これはリリース前の{siteTitle} {versionLabel}のドキュメントです。",
+ "description": "The label used to tell the user that he's browsing an unreleased doc version"
+ },
+ "theme.docs.versions.unmaintainedVersionLabel": {
+ "message": "これは{siteTitle} {versionLabel}のドキュメントで現在はアクティブにメンテナンスされていません。",
+ "description": "The label used to tell the user that he's browsing an unmaintained doc version"
+ },
+ "theme.docs.versions.latestVersionSuggestionLabel": {
+ "message": "最新のドキュメントは{latestVersionLink} ({versionLabel}) を見てください。",
+ "description": "The label used to tell the user to check the latest version"
+ },
+ "theme.docs.versions.latestVersionLinkLabel": {
+ "message": "最新バージョン",
+ "description": "The label used for the latest version suggestion link label"
+ },
+ "theme.common.editThisPage": {
+ "message": "このページを編集",
+ "description": "The link label to edit the current page"
+ },
+ "theme.common.headingLinkTitle": {
+ "message": "見出しへの直接リンク",
+ "description": "Title for link to heading"
+ },
+ "theme.lastUpdated.atDate": {
+ "message": "{date}に",
+ "description": "The words used to describe on which date a page has been last updated"
+ },
+ "theme.lastUpdated.byUser": {
+ "message": "{user}が",
+ "description": "The words used to describe by who the page has been last updated"
+ },
+ "theme.lastUpdated.lastUpdatedAtBy": {
+ "message": "{atDate}{byUser}最終更新",
+ "description": "The sentence used to display when a page has been last updated, and by who"
+ },
+ "theme.navbar.mobileSidebarSecondaryMenu.backButtonLabel": {
+ "message": "← Back to main menu",
+ "description": "The label of the back button to return to main menu, inside the mobile navbar sidebar secondary menu (notably used to display the docs sidebar)"
+ },
+ "theme.navbar.mobileVersionsDropdown.label": {
+ "message": "Versions",
+ "description": "The label for the navbar versions dropdown on mobile view"
+ },
+ "theme.common.skipToMainContent": {
+ "message": "メインコンテンツまでスキップ",
+ "description": "The skip to content label used for accessibility, allowing to rapidly navigate to main content with keyboard tab/enter navigation"
+ },
+ "theme.tags.tagsListLabel": {
+ "message": "タグ:",
+ "description": "The label alongside a tag list"
+ },
+ "theme.TOCCollapsible.toggleButtonLabel": {
+ "message": "On this page",
+ "description": "The label used by the button on the collapsible TOC component"
+ },
+ "theme.tags.tagsPageTitle": {
+ "message": "タグ",
+ "description": "The title of the tag list page"
+ }
+}
\ No newline at end of file
diff --git a/website/i18n/ja/docusaurus-plugin-content-docs/current.json b/website/i18n/ja/docusaurus-plugin-content-docs/current.json
new file mode 100644
index 000000000..259c1caf1
--- /dev/null
+++ b/website/i18n/ja/docusaurus-plugin-content-docs/current.json
@@ -0,0 +1,82 @@
+{
+ "version.label": {
+ "message": "Next",
+ "description": "The label for version current"
+ },
+ "sidebar.sidebar.category.Getting Started": {
+ "message": "Getting Started",
+ "description": "The label for category Getting Started in sidebar sidebar"
+ },
+ "sidebar.sidebar.category.Concepts": {
+ "message": "Concepts",
+ "description": "The label for category Concepts in sidebar sidebar"
+ },
+ "sidebar.sidebar.category.Concepts.link.generated-index.title": {
+ "message": "Yew concepts",
+ "description": "The generated-index page title for category Concepts in sidebar sidebar"
+ },
+ "sidebar.sidebar.category.Concepts.link.generated-index.description": {
+ "message": "Learn about the important Yew concepts!",
+ "description": "The generated-index page description for category Concepts in sidebar sidebar"
+ },
+ "sidebar.sidebar.category.Components": {
+ "message": "Components",
+ "description": "The label for category Components in sidebar sidebar"
+ },
+ "sidebar.sidebar.category.HTML": {
+ "message": "HTML",
+ "description": "The label for category HTML in sidebar sidebar"
+ },
+ "sidebar.sidebar.category.Function Components": {
+ "message": "Function Components",
+ "description": "The label for category Function Components in sidebar sidebar"
+ },
+ "sidebar.sidebar.category.wasm-bindgen": {
+ "message": "wasm-bindgen",
+ "description": "The label for category wasm-bindgen in sidebar sidebar"
+ },
+ "sidebar.sidebar.category.wasm-bindgen.link.generated-index.title": {
+ "message": "wasm-bindgen",
+ "description": "The generated-index page title for category wasm-bindgen in sidebar sidebar"
+ },
+ "sidebar.sidebar.category.wasm-bindgen.link.generated-index.description": {
+ "message": "Learn about wasm-bindgen",
+ "description": "The generated-index page description for category wasm-bindgen in sidebar sidebar"
+ },
+ "sidebar.sidebar.category.Advanced topics": {
+ "message": "Advanced topics",
+ "description": "The label for category Advanced topics in sidebar sidebar"
+ },
+ "sidebar.sidebar.category.Advanced topics.link.generated-index.title": {
+ "message": "Advanced topics",
+ "description": "The generated-index page title for category Advanced topics in sidebar sidebar"
+ },
+ "sidebar.sidebar.category.Advanced topics.link.generated-index.description": {
+ "message": "Learn about the advanced topics and inner workings of Yew!",
+ "description": "The generated-index page description for category Advanced topics in sidebar sidebar"
+ },
+ "sidebar.sidebar.category.More": {
+ "message": "More",
+ "description": "The label for category More in sidebar sidebar"
+ },
+ "sidebar.sidebar.category.More.link.generated-index.title": {
+ "message": "Miscellaneous",
+ "description": "The generated-index page title for category More in sidebar sidebar"
+ },
+ "sidebar.sidebar.category.Migration guides": {
+ "message": "Migration guides",
+ "description": "The label for category Migration guides in sidebar sidebar"
+ },
+ "sidebar.sidebar.category.yew": {
+ "message": "yew",
+ "description": "The label for category yew in sidebar sidebar"
+ },
+ "sidebar.sidebar.category.yew-agent": {
+ "message": "yew-agent",
+ "description": "The label for category yew-agent in sidebar sidebar"
+ },
+ "sidebar.sidebar.category.yew-router": {
+ "message": "yew-router",
+ "description": "The label for category yew-router in sidebar sidebar"
+ }
+}
\ No newline at end of file
diff --git a/website/i18n/ja/docusaurus-plugin-content-docs/version-0.18.0.json b/website/i18n/ja/docusaurus-plugin-content-docs/version-0.18.0.json
new file mode 100644
index 000000000..76ef8c1a8
--- /dev/null
+++ b/website/i18n/ja/docusaurus-plugin-content-docs/version-0.18.0.json
@@ -0,0 +1,42 @@
+{
+ "version.label": {
+ "message": "0.18.0",
+ "description": "The label for version 0.18.0"
+ },
+ "sidebar.sidebar.category.Getting Started": {
+ "message": "Getting Started",
+ "description": "The label for category Getting Started in sidebar sidebar"
+ },
+ "sidebar.sidebar.category.Project Setup": {
+ "message": "Project Setup",
+ "description": "The label for category Project Setup in sidebar sidebar"
+ },
+ "sidebar.sidebar.category.Concepts": {
+ "message": "Concepts",
+ "description": "The label for category Concepts in sidebar sidebar"
+ },
+ "sidebar.sidebar.category.Components": {
+ "message": "Components",
+ "description": "The label for category Components in sidebar sidebar"
+ },
+ "sidebar.sidebar.category.wasm-bindgen": {
+ "message": "wasm-bindgen",
+ "description": "The label for category wasm-bindgen in sidebar sidebar"
+ },
+ "sidebar.sidebar.category.HTML": {
+ "message": "HTML",
+ "description": "The label for category HTML in sidebar sidebar"
+ },
+ "sidebar.sidebar.category.Services": {
+ "message": "Services",
+ "description": "The label for category Services in sidebar sidebar"
+ },
+ "sidebar.sidebar.category.Advanced topics": {
+ "message": "Advanced topics",
+ "description": "The label for category Advanced topics in sidebar sidebar"
+ },
+ "sidebar.sidebar.category.More": {
+ "message": "More",
+ "description": "The label for category More in sidebar sidebar"
+ }
+}
\ No newline at end of file
diff --git a/website/i18n/ja/docusaurus-plugin-content-docs/version-0.19.0.json b/website/i18n/ja/docusaurus-plugin-content-docs/version-0.19.0.json
new file mode 100644
index 000000000..755f3ae10
--- /dev/null
+++ b/website/i18n/ja/docusaurus-plugin-content-docs/version-0.19.0.json
@@ -0,0 +1,58 @@
+{
+ "version.label": {
+ "message": "0.19.0",
+ "description": "The label for version 0.19.0"
+ },
+ "sidebar.sidebar.category.Getting Started": {
+ "message": "Getting Started",
+ "description": "The label for category Getting Started in sidebar sidebar"
+ },
+ "sidebar.sidebar.category.Project Setup": {
+ "message": "Project Setup",
+ "description": "The label for category Project Setup in sidebar sidebar"
+ },
+ "sidebar.sidebar.category.Concepts": {
+ "message": "Concepts",
+ "description": "The label for category Concepts in sidebar sidebar"
+ },
+ "sidebar.sidebar.category.wasm-bindgen": {
+ "message": "wasm-bindgen",
+ "description": "The label for category wasm-bindgen in sidebar sidebar"
+ },
+ "sidebar.sidebar.category.Components": {
+ "message": "Components",
+ "description": "The label for category Components in sidebar sidebar"
+ },
+ "sidebar.sidebar.category.HTML": {
+ "message": "HTML",
+ "description": "The label for category HTML in sidebar sidebar"
+ },
+ "sidebar.sidebar.category.Function Components": {
+ "message": "Function Components",
+ "description": "The label for category Function Components in sidebar sidebar"
+ },
+ "sidebar.sidebar.category.Advanced topics": {
+ "message": "Advanced topics",
+ "description": "The label for category Advanced topics in sidebar sidebar"
+ },
+ "sidebar.sidebar.category.More": {
+ "message": "More",
+ "description": "The label for category More in sidebar sidebar"
+ },
+ "sidebar.sidebar.category.Migration guides": {
+ "message": "Migration guides",
+ "description": "The label for category Migration guides in sidebar sidebar"
+ },
+ "sidebar.sidebar.category.yew": {
+ "message": "yew",
+ "description": "The label for category yew in sidebar sidebar"
+ },
+ "sidebar.sidebar.category.yew-agent": {
+ "message": "yew-agent",
+ "description": "The label for category yew-agent in sidebar sidebar"
+ },
+ "sidebar.sidebar.category.yew-router": {
+ "message": "yew-router",
+ "description": "The label for category yew-router in sidebar sidebar"
+ }
+}
\ No newline at end of file
diff --git a/website/i18n/ja/docusaurus-theme-classic/footer.json b/website/i18n/ja/docusaurus-theme-classic/footer.json
new file mode 100644
index 000000000..fe88dc57b
--- /dev/null
+++ b/website/i18n/ja/docusaurus-theme-classic/footer.json
@@ -0,0 +1,38 @@
+{
+ "link.title.Support": {
+ "message": "Support",
+ "description": "The title of the footer links column with title=Support in the footer"
+ },
+ "link.title.Participate": {
+ "message": "Participate",
+ "description": "The title of the footer links column with title=Participate in the footer"
+ },
+ "link.title.More": {
+ "message": "More",
+ "description": "The title of the footer links column with title=More in the footer"
+ },
+ "link.item.label.Fund Issues": {
+ "message": "Fund Issues",
+ "description": "The label of footer link with label=Fund Issues linking to https://issuehunt.io/r/yewstack/yew"
+ },
+ "link.item.label.Sponsor Project": {
+ "message": "Sponsor Project",
+ "description": "The label of footer link with label=Sponsor Project linking to https://opencollective.com/yew"
+ },
+ "link.item.label.GitHub": {
+ "message": "GitHub",
+ "description": "The label of footer link with label=GitHub linking to https://github.com/yewstack/yew"
+ },
+ "link.item.label.Discord": {
+ "message": "Discord",
+ "description": "The label of footer link with label=Discord linking to https://discord.gg/VQck8X4"
+ },
+ "link.item.label.Twitter": {
+ "message": "Twitter",
+ "description": "The label of footer link with label=Twitter linking to https://twitter.com/yewstack"
+ },
+ "link.item.label.Yew Awesome": {
+ "message": "Yew Awesome",
+ "description": "The label of footer link with label=Yew Awesome linking to https://github.com/jetli/awesome-yew"
+ }
+}
\ No newline at end of file
diff --git a/website/i18n/ja/docusaurus-theme-classic/navbar.json b/website/i18n/ja/docusaurus-theme-classic/navbar.json
new file mode 100644
index 000000000..e2f600ffa
--- /dev/null
+++ b/website/i18n/ja/docusaurus-theme-classic/navbar.json
@@ -0,0 +1,18 @@
+{
+ "title": {
+ "message": "Yew",
+ "description": "The title in the navbar"
+ },
+ "item.label.Docs": {
+ "message": "Docs",
+ "description": "Navbar item with label Docs"
+ },
+ "item.label.API": {
+ "message": "API",
+ "description": "Navbar item with label API"
+ },
+ "item.label.GitHub": {
+ "message": "GitHub",
+ "description": "Navbar item with label GitHub"
+ }
+}
\ No newline at end of file
diff --git a/website/i18n/zh-CN/code.json b/website/i18n/zh-CN/code.json
new file mode 100644
index 000000000..c4e34f318
--- /dev/null
+++ b/website/i18n/zh-CN/code.json
@@ -0,0 +1,198 @@
+{
+ "theme.ErrorPageContent.title": {
+ "message": "This page crashed.",
+ "description": "The title of the fallback page when the page crashed"
+ },
+ "theme.ErrorPageContent.tryAgain": {
+ "message": "Try again",
+ "description": "The label of the button to try again when the page crashed"
+ },
+ "theme.NotFound.title": {
+ "message": "页面找不到啦",
+ "description": "The title of the 404 page"
+ },
+ "theme.NotFound.p1": {
+ "message": "We could not find what you were looking for.",
+ "description": "The first paragraph of the 404 page"
+ },
+ "theme.NotFound.p2": {
+ "message": "Please contact the owner of the site that linked you to the original URL and let them know their link is broken.",
+ "description": "The 2nd paragraph of the 404 page"
+ },
+ "theme.AnnouncementBar.closeButtonAriaLabel": {
+ "message": "Close",
+ "description": "The ARIA label for close button of announcement bar"
+ },
+ "theme.BackToTopButton.buttonAriaLabel": {
+ "message": "Scroll back to top",
+ "description": "The ARIA label for the back to top button"
+ },
+ "theme.blog.archive.title": {
+ "message": "Archive",
+ "description": "The page & hero title of the blog archive page"
+ },
+ "theme.blog.archive.description": {
+ "message": "Archive",
+ "description": "The page & hero description of the blog archive page"
+ },
+ "theme.blog.paginator.navAriaLabel": {
+ "message": "Blog list page navigation",
+ "description": "The ARIA label for the blog pagination"
+ },
+ "theme.blog.paginator.newerEntries": {
+ "message": "Newer Entries",
+ "description": "The label used to navigate to the newer blog posts page (previous page)"
+ },
+ "theme.blog.paginator.olderEntries": {
+ "message": "Older Entries",
+ "description": "The label used to navigate to the older blog posts page (next page)"
+ },
+ "theme.blog.post.readingTime.plurals": {
+ "message": "One min read|{readingTime} min read",
+ "description": "Pluralized label for \"{readingTime} min read\". Use as much plural forms (separated by \"|\") as your language support (see https://www.unicode.org/cldr/cldr-aux/charts/34/supplemental/language_plural_rules.html)"
+ },
+ "theme.blog.post.readMore": {
+ "message": "Read More",
+ "description": "The label used in blog post item excerpts to link to full blog posts"
+ },
+ "theme.blog.post.paginator.navAriaLabel": {
+ "message": "Blog post page navigation",
+ "description": "The ARIA label for the blog posts pagination"
+ },
+ "theme.blog.post.paginator.newerPost": {
+ "message": "Newer Post",
+ "description": "The blog post button label to navigate to the newer/previous post"
+ },
+ "theme.blog.post.paginator.olderPost": {
+ "message": "Older Post",
+ "description": "The blog post button label to navigate to the older/next post"
+ },
+ "theme.blog.sidebar.navAriaLabel": {
+ "message": "Blog recent posts navigation",
+ "description": "The ARIA label for recent posts in the blog sidebar"
+ },
+ "theme.blog.post.plurals": {
+ "message": "One post|{count} posts",
+ "description": "Pluralized label for \"{count} posts\". Use as much plural forms (separated by \"|\") as your language support (see https://www.unicode.org/cldr/cldr-aux/charts/34/supplemental/language_plural_rules.html)"
+ },
+ "theme.blog.tagTitle": {
+ "message": "{nPosts} tagged with \"{tagName}\"",
+ "description": "The title of the page for a blog tag"
+ },
+ "theme.tags.tagsPageLink": {
+ "message": "View All Tags",
+ "description": "The label of the link targeting the tag list page"
+ },
+ "theme.CodeBlock.copyButtonAriaLabel": {
+ "message": "Copy code to clipboard",
+ "description": "The ARIA label for copy code blocks button"
+ },
+ "theme.CodeBlock.copied": {
+ "message": "Copied",
+ "description": "The copied button label on code blocks"
+ },
+ "theme.CodeBlock.copy": {
+ "message": "Copy",
+ "description": "The copy button label on code blocks"
+ },
+ "theme.docs.sidebar.expandButtonTitle": {
+ "message": "Expand sidebar",
+ "description": "The ARIA label and title attribute for expand button of doc sidebar"
+ },
+ "theme.docs.sidebar.expandButtonAriaLabel": {
+ "message": "Expand sidebar",
+ "description": "The ARIA label and title attribute for expand button of doc sidebar"
+ },
+ "theme.docs.paginator.navAriaLabel": {
+ "message": "Docs pages navigation",
+ "description": "The ARIA label for the docs pagination"
+ },
+ "theme.docs.paginator.next": {
+ "message": "Next",
+ "description": "The label used to navigate to the next doc"
+ },
+ "theme.docs.paginator.previous": {
+ "message": "Previous",
+ "description": "The label used to navigate to the previous doc"
+ },
+ "theme.docs.sidebar.collapseButtonTitle": {
+ "message": "Collapse sidebar",
+ "description": "The title attribute for collapse button of doc sidebar"
+ },
+ "theme.docs.sidebar.collapseButtonAriaLabel": {
+ "message": "Collapse sidebar",
+ "description": "The title attribute for collapse button of doc sidebar"
+ },
+ "theme.DocSidebarItem.toggleCollapsedCategoryAriaLabel": {
+ "message": "Toggle the collapsible sidebar category '{label}'",
+ "description": "The ARIA label to toggle the collapsible sidebar category"
+ },
+ "theme.docs.tagDocListPageTitle.nDocsTagged": {
+ "message": "One doc tagged|{count} docs tagged",
+ "description": "Pluralized label for \"{count} docs tagged\". Use as much plural forms (separated by \"|\") as your language support (see https://www.unicode.org/cldr/cldr-aux/charts/34/supplemental/language_plural_rules.html)"
+ },
+ "theme.docs.tagDocListPageTitle": {
+ "message": "{nDocsTagged} with \"{tagName}\"",
+ "description": "The title of the page for a docs tag"
+ },
+ "theme.docs.versions.unreleasedVersionLabel": {
+ "message": "This is unreleased documentation for {siteTitle} {versionLabel} version.",
+ "description": "The label used to tell the user that he's browsing an unreleased doc version"
+ },
+ "theme.docs.versions.unmaintainedVersionLabel": {
+ "message": "This is documentation for {siteTitle} {versionLabel}, which is no longer actively maintained.",
+ "description": "The label used to tell the user that he's browsing an unmaintained doc version"
+ },
+ "theme.docs.versions.latestVersionSuggestionLabel": {
+ "message": "For up-to-date documentation, see the {latestVersionLink} ({versionLabel}).",
+ "description": "The label used to tell the user to check the latest version"
+ },
+ "theme.docs.versions.latestVersionLinkLabel": {
+ "message": "latest version",
+ "description": "The label used for the latest version suggestion link label"
+ },
+ "theme.common.editThisPage": {
+ "message": "Edit this page",
+ "description": "The link label to edit the current page"
+ },
+ "theme.common.headingLinkTitle": {
+ "message": "Direct link to heading",
+ "description": "Title for link to heading"
+ },
+ "theme.lastUpdated.atDate": {
+ "message": " on {date}",
+ "description": "The words used to describe on which date a page has been last updated"
+ },
+ "theme.lastUpdated.byUser": {
+ "message": " by {user}",
+ "description": "The words used to describe by who the page has been last updated"
+ },
+ "theme.lastUpdated.lastUpdatedAtBy": {
+ "message": "Last updated{atDate}{byUser}",
+ "description": "The sentence used to display when a page has been last updated, and by who"
+ },
+ "theme.navbar.mobileSidebarSecondaryMenu.backButtonLabel": {
+ "message": "← Back to main menu",
+ "description": "The label of the back button to return to main menu, inside the mobile navbar sidebar secondary menu (notably used to display the docs sidebar)"
+ },
+ "theme.navbar.mobileVersionsDropdown.label": {
+ "message": "Versions",
+ "description": "The label for the navbar versions dropdown on mobile view"
+ },
+ "theme.common.skipToMainContent": {
+ "message": "Skip to main content",
+ "description": "The skip to content label used for accessibility, allowing to rapidly navigate to main content with keyboard tab/enter navigation"
+ },
+ "theme.tags.tagsListLabel": {
+ "message": "Tags:",
+ "description": "The label alongside a tag list"
+ },
+ "theme.TOCCollapsible.toggleButtonLabel": {
+ "message": "On this page",
+ "description": "The label used by the button on the collapsible TOC component"
+ },
+ "theme.tags.tagsPageTitle": {
+ "message": "Tags",
+ "description": "The title of the tag list page"
+ }
+}
\ No newline at end of file
diff --git a/website/i18n/zh-CN/docusaurus-plugin-content-docs/current.json b/website/i18n/zh-CN/docusaurus-plugin-content-docs/current.json
new file mode 100644
index 000000000..259c1caf1
--- /dev/null
+++ b/website/i18n/zh-CN/docusaurus-plugin-content-docs/current.json
@@ -0,0 +1,82 @@
+{
+ "version.label": {
+ "message": "Next",
+ "description": "The label for version current"
+ },
+ "sidebar.sidebar.category.Getting Started": {
+ "message": "Getting Started",
+ "description": "The label for category Getting Started in sidebar sidebar"
+ },
+ "sidebar.sidebar.category.Concepts": {
+ "message": "Concepts",
+ "description": "The label for category Concepts in sidebar sidebar"
+ },
+ "sidebar.sidebar.category.Concepts.link.generated-index.title": {
+ "message": "Yew concepts",
+ "description": "The generated-index page title for category Concepts in sidebar sidebar"
+ },
+ "sidebar.sidebar.category.Concepts.link.generated-index.description": {
+ "message": "Learn about the important Yew concepts!",
+ "description": "The generated-index page description for category Concepts in sidebar sidebar"
+ },
+ "sidebar.sidebar.category.Components": {
+ "message": "Components",
+ "description": "The label for category Components in sidebar sidebar"
+ },
+ "sidebar.sidebar.category.HTML": {
+ "message": "HTML",
+ "description": "The label for category HTML in sidebar sidebar"
+ },
+ "sidebar.sidebar.category.Function Components": {
+ "message": "Function Components",
+ "description": "The label for category Function Components in sidebar sidebar"
+ },
+ "sidebar.sidebar.category.wasm-bindgen": {
+ "message": "wasm-bindgen",
+ "description": "The label for category wasm-bindgen in sidebar sidebar"
+ },
+ "sidebar.sidebar.category.wasm-bindgen.link.generated-index.title": {
+ "message": "wasm-bindgen",
+ "description": "The generated-index page title for category wasm-bindgen in sidebar sidebar"
+ },
+ "sidebar.sidebar.category.wasm-bindgen.link.generated-index.description": {
+ "message": "Learn about wasm-bindgen",
+ "description": "The generated-index page description for category wasm-bindgen in sidebar sidebar"
+ },
+ "sidebar.sidebar.category.Advanced topics": {
+ "message": "Advanced topics",
+ "description": "The label for category Advanced topics in sidebar sidebar"
+ },
+ "sidebar.sidebar.category.Advanced topics.link.generated-index.title": {
+ "message": "Advanced topics",
+ "description": "The generated-index page title for category Advanced topics in sidebar sidebar"
+ },
+ "sidebar.sidebar.category.Advanced topics.link.generated-index.description": {
+ "message": "Learn about the advanced topics and inner workings of Yew!",
+ "description": "The generated-index page description for category Advanced topics in sidebar sidebar"
+ },
+ "sidebar.sidebar.category.More": {
+ "message": "More",
+ "description": "The label for category More in sidebar sidebar"
+ },
+ "sidebar.sidebar.category.More.link.generated-index.title": {
+ "message": "Miscellaneous",
+ "description": "The generated-index page title for category More in sidebar sidebar"
+ },
+ "sidebar.sidebar.category.Migration guides": {
+ "message": "Migration guides",
+ "description": "The label for category Migration guides in sidebar sidebar"
+ },
+ "sidebar.sidebar.category.yew": {
+ "message": "yew",
+ "description": "The label for category yew in sidebar sidebar"
+ },
+ "sidebar.sidebar.category.yew-agent": {
+ "message": "yew-agent",
+ "description": "The label for category yew-agent in sidebar sidebar"
+ },
+ "sidebar.sidebar.category.yew-router": {
+ "message": "yew-router",
+ "description": "The label for category yew-router in sidebar sidebar"
+ }
+}
\ No newline at end of file
diff --git a/website/i18n/zh-CN/docusaurus-plugin-content-docs/version-0.18.0.json b/website/i18n/zh-CN/docusaurus-plugin-content-docs/version-0.18.0.json
new file mode 100644
index 000000000..76ef8c1a8
--- /dev/null
+++ b/website/i18n/zh-CN/docusaurus-plugin-content-docs/version-0.18.0.json
@@ -0,0 +1,42 @@
+{
+ "version.label": {
+ "message": "0.18.0",
+ "description": "The label for version 0.18.0"
+ },
+ "sidebar.sidebar.category.Getting Started": {
+ "message": "Getting Started",
+ "description": "The label for category Getting Started in sidebar sidebar"
+ },
+ "sidebar.sidebar.category.Project Setup": {
+ "message": "Project Setup",
+ "description": "The label for category Project Setup in sidebar sidebar"
+ },
+ "sidebar.sidebar.category.Concepts": {
+ "message": "Concepts",
+ "description": "The label for category Concepts in sidebar sidebar"
+ },
+ "sidebar.sidebar.category.Components": {
+ "message": "Components",
+ "description": "The label for category Components in sidebar sidebar"
+ },
+ "sidebar.sidebar.category.wasm-bindgen": {
+ "message": "wasm-bindgen",
+ "description": "The label for category wasm-bindgen in sidebar sidebar"
+ },
+ "sidebar.sidebar.category.HTML": {
+ "message": "HTML",
+ "description": "The label for category HTML in sidebar sidebar"
+ },
+ "sidebar.sidebar.category.Services": {
+ "message": "Services",
+ "description": "The label for category Services in sidebar sidebar"
+ },
+ "sidebar.sidebar.category.Advanced topics": {
+ "message": "Advanced topics",
+ "description": "The label for category Advanced topics in sidebar sidebar"
+ },
+ "sidebar.sidebar.category.More": {
+ "message": "More",
+ "description": "The label for category More in sidebar sidebar"
+ }
+}
\ No newline at end of file
diff --git a/website/i18n/zh-CN/docusaurus-plugin-content-docs/version-0.19.0.json b/website/i18n/zh-CN/docusaurus-plugin-content-docs/version-0.19.0.json
new file mode 100644
index 000000000..755f3ae10
--- /dev/null
+++ b/website/i18n/zh-CN/docusaurus-plugin-content-docs/version-0.19.0.json
@@ -0,0 +1,58 @@
+{
+ "version.label": {
+ "message": "0.19.0",
+ "description": "The label for version 0.19.0"
+ },
+ "sidebar.sidebar.category.Getting Started": {
+ "message": "Getting Started",
+ "description": "The label for category Getting Started in sidebar sidebar"
+ },
+ "sidebar.sidebar.category.Project Setup": {
+ "message": "Project Setup",
+ "description": "The label for category Project Setup in sidebar sidebar"
+ },
+ "sidebar.sidebar.category.Concepts": {
+ "message": "Concepts",
+ "description": "The label for category Concepts in sidebar sidebar"
+ },
+ "sidebar.sidebar.category.wasm-bindgen": {
+ "message": "wasm-bindgen",
+ "description": "The label for category wasm-bindgen in sidebar sidebar"
+ },
+ "sidebar.sidebar.category.Components": {
+ "message": "Components",
+ "description": "The label for category Components in sidebar sidebar"
+ },
+ "sidebar.sidebar.category.HTML": {
+ "message": "HTML",
+ "description": "The label for category HTML in sidebar sidebar"
+ },
+ "sidebar.sidebar.category.Function Components": {
+ "message": "Function Components",
+ "description": "The label for category Function Components in sidebar sidebar"
+ },
+ "sidebar.sidebar.category.Advanced topics": {
+ "message": "Advanced topics",
+ "description": "The label for category Advanced topics in sidebar sidebar"
+ },
+ "sidebar.sidebar.category.More": {
+ "message": "More",
+ "description": "The label for category More in sidebar sidebar"
+ },
+ "sidebar.sidebar.category.Migration guides": {
+ "message": "Migration guides",
+ "description": "The label for category Migration guides in sidebar sidebar"
+ },
+ "sidebar.sidebar.category.yew": {
+ "message": "yew",
+ "description": "The label for category yew in sidebar sidebar"
+ },
+ "sidebar.sidebar.category.yew-agent": {
+ "message": "yew-agent",
+ "description": "The label for category yew-agent in sidebar sidebar"
+ },
+ "sidebar.sidebar.category.yew-router": {
+ "message": "yew-router",
+ "description": "The label for category yew-router in sidebar sidebar"
+ }
+}
\ No newline at end of file
diff --git a/website/i18n/zh-CN/docusaurus-theme-classic/footer.json b/website/i18n/zh-CN/docusaurus-theme-classic/footer.json
new file mode 100644
index 000000000..fe88dc57b
--- /dev/null
+++ b/website/i18n/zh-CN/docusaurus-theme-classic/footer.json
@@ -0,0 +1,38 @@
+{
+ "link.title.Support": {
+ "message": "Support",
+ "description": "The title of the footer links column with title=Support in the footer"
+ },
+ "link.title.Participate": {
+ "message": "Participate",
+ "description": "The title of the footer links column with title=Participate in the footer"
+ },
+ "link.title.More": {
+ "message": "More",
+ "description": "The title of the footer links column with title=More in the footer"
+ },
+ "link.item.label.Fund Issues": {
+ "message": "Fund Issues",
+ "description": "The label of footer link with label=Fund Issues linking to https://issuehunt.io/r/yewstack/yew"
+ },
+ "link.item.label.Sponsor Project": {
+ "message": "Sponsor Project",
+ "description": "The label of footer link with label=Sponsor Project linking to https://opencollective.com/yew"
+ },
+ "link.item.label.GitHub": {
+ "message": "GitHub",
+ "description": "The label of footer link with label=GitHub linking to https://github.com/yewstack/yew"
+ },
+ "link.item.label.Discord": {
+ "message": "Discord",
+ "description": "The label of footer link with label=Discord linking to https://discord.gg/VQck8X4"
+ },
+ "link.item.label.Twitter": {
+ "message": "Twitter",
+ "description": "The label of footer link with label=Twitter linking to https://twitter.com/yewstack"
+ },
+ "link.item.label.Yew Awesome": {
+ "message": "Yew Awesome",
+ "description": "The label of footer link with label=Yew Awesome linking to https://github.com/jetli/awesome-yew"
+ }
+}
\ No newline at end of file
diff --git a/website/i18n/zh-CN/docusaurus-theme-classic/navbar.json b/website/i18n/zh-CN/docusaurus-theme-classic/navbar.json
new file mode 100644
index 000000000..e2f600ffa
--- /dev/null
+++ b/website/i18n/zh-CN/docusaurus-theme-classic/navbar.json
@@ -0,0 +1,18 @@
+{
+ "title": {
+ "message": "Yew",
+ "description": "The title in the navbar"
+ },
+ "item.label.Docs": {
+ "message": "Docs",
+ "description": "Navbar item with label Docs"
+ },
+ "item.label.API": {
+ "message": "API",
+ "description": "Navbar item with label API"
+ },
+ "item.label.GitHub": {
+ "message": "GitHub",
+ "description": "Navbar item with label GitHub"
+ }
+}
\ No newline at end of file
diff --git a/website/i18n/zh-TW/code.json b/website/i18n/zh-TW/code.json
new file mode 100644
index 000000000..5200609e7
--- /dev/null
+++ b/website/i18n/zh-TW/code.json
@@ -0,0 +1,198 @@
+{
+ "theme.ErrorPageContent.title": {
+ "message": "This page crashed.",
+ "description": "The title of the fallback page when the page crashed"
+ },
+ "theme.ErrorPageContent.tryAgain": {
+ "message": "Try again",
+ "description": "The label of the button to try again when the page crashed"
+ },
+ "theme.NotFound.title": {
+ "message": "Page Not Found",
+ "description": "The title of the 404 page"
+ },
+ "theme.NotFound.p1": {
+ "message": "We could not find what you were looking for.",
+ "description": "The first paragraph of the 404 page"
+ },
+ "theme.NotFound.p2": {
+ "message": "Please contact the owner of the site that linked you to the original URL and let them know their link is broken.",
+ "description": "The 2nd paragraph of the 404 page"
+ },
+ "theme.AnnouncementBar.closeButtonAriaLabel": {
+ "message": "Close",
+ "description": "The ARIA label for close button of announcement bar"
+ },
+ "theme.BackToTopButton.buttonAriaLabel": {
+ "message": "Scroll back to top",
+ "description": "The ARIA label for the back to top button"
+ },
+ "theme.blog.archive.title": {
+ "message": "Archive",
+ "description": "The page & hero title of the blog archive page"
+ },
+ "theme.blog.archive.description": {
+ "message": "Archive",
+ "description": "The page & hero description of the blog archive page"
+ },
+ "theme.blog.paginator.navAriaLabel": {
+ "message": "Blog list page navigation",
+ "description": "The ARIA label for the blog pagination"
+ },
+ "theme.blog.paginator.newerEntries": {
+ "message": "Newer Entries",
+ "description": "The label used to navigate to the newer blog posts page (previous page)"
+ },
+ "theme.blog.paginator.olderEntries": {
+ "message": "Older Entries",
+ "description": "The label used to navigate to the older blog posts page (next page)"
+ },
+ "theme.blog.post.readingTime.plurals": {
+ "message": "One min read|{readingTime} min read",
+ "description": "Pluralized label for \"{readingTime} min read\". Use as much plural forms (separated by \"|\") as your language support (see https://www.unicode.org/cldr/cldr-aux/charts/34/supplemental/language_plural_rules.html)"
+ },
+ "theme.blog.post.readMore": {
+ "message": "Read More",
+ "description": "The label used in blog post item excerpts to link to full blog posts"
+ },
+ "theme.blog.post.paginator.navAriaLabel": {
+ "message": "Blog post page navigation",
+ "description": "The ARIA label for the blog posts pagination"
+ },
+ "theme.blog.post.paginator.newerPost": {
+ "message": "Newer Post",
+ "description": "The blog post button label to navigate to the newer/previous post"
+ },
+ "theme.blog.post.paginator.olderPost": {
+ "message": "Older Post",
+ "description": "The blog post button label to navigate to the older/next post"
+ },
+ "theme.blog.sidebar.navAriaLabel": {
+ "message": "Blog recent posts navigation",
+ "description": "The ARIA label for recent posts in the blog sidebar"
+ },
+ "theme.blog.post.plurals": {
+ "message": "One post|{count} posts",
+ "description": "Pluralized label for \"{count} posts\". Use as much plural forms (separated by \"|\") as your language support (see https://www.unicode.org/cldr/cldr-aux/charts/34/supplemental/language_plural_rules.html)"
+ },
+ "theme.blog.tagTitle": {
+ "message": "{nPosts} tagged with \"{tagName}\"",
+ "description": "The title of the page for a blog tag"
+ },
+ "theme.tags.tagsPageLink": {
+ "message": "View All Tags",
+ "description": "The label of the link targeting the tag list page"
+ },
+ "theme.CodeBlock.copyButtonAriaLabel": {
+ "message": "Copy code to clipboard",
+ "description": "The ARIA label for copy code blocks button"
+ },
+ "theme.CodeBlock.copied": {
+ "message": "Copied",
+ "description": "The copied button label on code blocks"
+ },
+ "theme.CodeBlock.copy": {
+ "message": "Copy",
+ "description": "The copy button label on code blocks"
+ },
+ "theme.docs.sidebar.expandButtonTitle": {
+ "message": "Expand sidebar",
+ "description": "The ARIA label and title attribute for expand button of doc sidebar"
+ },
+ "theme.docs.sidebar.expandButtonAriaLabel": {
+ "message": "Expand sidebar",
+ "description": "The ARIA label and title attribute for expand button of doc sidebar"
+ },
+ "theme.docs.paginator.navAriaLabel": {
+ "message": "Docs pages navigation",
+ "description": "The ARIA label for the docs pagination"
+ },
+ "theme.docs.paginator.next": {
+ "message": "Next",
+ "description": "The label used to navigate to the next doc"
+ },
+ "theme.docs.paginator.previous": {
+ "message": "Previous",
+ "description": "The label used to navigate to the previous doc"
+ },
+ "theme.docs.sidebar.collapseButtonTitle": {
+ "message": "Collapse sidebar",
+ "description": "The title attribute for collapse button of doc sidebar"
+ },
+ "theme.docs.sidebar.collapseButtonAriaLabel": {
+ "message": "Collapse sidebar",
+ "description": "The title attribute for collapse button of doc sidebar"
+ },
+ "theme.DocSidebarItem.toggleCollapsedCategoryAriaLabel": {
+ "message": "Toggle the collapsible sidebar category '{label}'",
+ "description": "The ARIA label to toggle the collapsible sidebar category"
+ },
+ "theme.docs.tagDocListPageTitle.nDocsTagged": {
+ "message": "One doc tagged|{count} docs tagged",
+ "description": "Pluralized label for \"{count} docs tagged\". Use as much plural forms (separated by \"|\") as your language support (see https://www.unicode.org/cldr/cldr-aux/charts/34/supplemental/language_plural_rules.html)"
+ },
+ "theme.docs.tagDocListPageTitle": {
+ "message": "{nDocsTagged} with \"{tagName}\"",
+ "description": "The title of the page for a docs tag"
+ },
+ "theme.docs.versions.unreleasedVersionLabel": {
+ "message": "This is unreleased documentation for {siteTitle} {versionLabel} version.",
+ "description": "The label used to tell the user that he's browsing an unreleased doc version"
+ },
+ "theme.docs.versions.unmaintainedVersionLabel": {
+ "message": "This is documentation for {siteTitle} {versionLabel}, which is no longer actively maintained.",
+ "description": "The label used to tell the user that he's browsing an unmaintained doc version"
+ },
+ "theme.docs.versions.latestVersionSuggestionLabel": {
+ "message": "For up-to-date documentation, see the {latestVersionLink} ({versionLabel}).",
+ "description": "The label used to tell the user to check the latest version"
+ },
+ "theme.docs.versions.latestVersionLinkLabel": {
+ "message": "latest version",
+ "description": "The label used for the latest version suggestion link label"
+ },
+ "theme.common.editThisPage": {
+ "message": "Edit this page",
+ "description": "The link label to edit the current page"
+ },
+ "theme.common.headingLinkTitle": {
+ "message": "Direct link to heading",
+ "description": "Title for link to heading"
+ },
+ "theme.lastUpdated.atDate": {
+ "message": " on {date}",
+ "description": "The words used to describe on which date a page has been last updated"
+ },
+ "theme.lastUpdated.byUser": {
+ "message": " by {user}",
+ "description": "The words used to describe by who the page has been last updated"
+ },
+ "theme.lastUpdated.lastUpdatedAtBy": {
+ "message": "Last updated{atDate}{byUser}",
+ "description": "The sentence used to display when a page has been last updated, and by who"
+ },
+ "theme.navbar.mobileSidebarSecondaryMenu.backButtonLabel": {
+ "message": "← Back to main menu",
+ "description": "The label of the back button to return to main menu, inside the mobile navbar sidebar secondary menu (notably used to display the docs sidebar)"
+ },
+ "theme.navbar.mobileVersionsDropdown.label": {
+ "message": "Versions",
+ "description": "The label for the navbar versions dropdown on mobile view"
+ },
+ "theme.common.skipToMainContent": {
+ "message": "Skip to main content",
+ "description": "The skip to content label used for accessibility, allowing to rapidly navigate to main content with keyboard tab/enter navigation"
+ },
+ "theme.tags.tagsListLabel": {
+ "message": "Tags:",
+ "description": "The label alongside a tag list"
+ },
+ "theme.TOCCollapsible.toggleButtonLabel": {
+ "message": "On this page",
+ "description": "The label used by the button on the collapsible TOC component"
+ },
+ "theme.tags.tagsPageTitle": {
+ "message": "Tags",
+ "description": "The title of the tag list page"
+ }
+}
\ No newline at end of file
diff --git a/website/i18n/zh-TW/docusaurus-plugin-content-docs/current.json b/website/i18n/zh-TW/docusaurus-plugin-content-docs/current.json
new file mode 100644
index 000000000..259c1caf1
--- /dev/null
+++ b/website/i18n/zh-TW/docusaurus-plugin-content-docs/current.json
@@ -0,0 +1,82 @@
+{
+ "version.label": {
+ "message": "Next",
+ "description": "The label for version current"
+ },
+ "sidebar.sidebar.category.Getting Started": {
+ "message": "Getting Started",
+ "description": "The label for category Getting Started in sidebar sidebar"
+ },
+ "sidebar.sidebar.category.Concepts": {
+ "message": "Concepts",
+ "description": "The label for category Concepts in sidebar sidebar"
+ },
+ "sidebar.sidebar.category.Concepts.link.generated-index.title": {
+ "message": "Yew concepts",
+ "description": "The generated-index page title for category Concepts in sidebar sidebar"
+ },
+ "sidebar.sidebar.category.Concepts.link.generated-index.description": {
+ "message": "Learn about the important Yew concepts!",
+ "description": "The generated-index page description for category Concepts in sidebar sidebar"
+ },
+ "sidebar.sidebar.category.Components": {
+ "message": "Components",
+ "description": "The label for category Components in sidebar sidebar"
+ },
+ "sidebar.sidebar.category.HTML": {
+ "message": "HTML",
+ "description": "The label for category HTML in sidebar sidebar"
+ },
+ "sidebar.sidebar.category.Function Components": {
+ "message": "Function Components",
+ "description": "The label for category Function Components in sidebar sidebar"
+ },
+ "sidebar.sidebar.category.wasm-bindgen": {
+ "message": "wasm-bindgen",
+ "description": "The label for category wasm-bindgen in sidebar sidebar"
+ },
+ "sidebar.sidebar.category.wasm-bindgen.link.generated-index.title": {
+ "message": "wasm-bindgen",
+ "description": "The generated-index page title for category wasm-bindgen in sidebar sidebar"
+ },
+ "sidebar.sidebar.category.wasm-bindgen.link.generated-index.description": {
+ "message": "Learn about wasm-bindgen",
+ "description": "The generated-index page description for category wasm-bindgen in sidebar sidebar"
+ },
+ "sidebar.sidebar.category.Advanced topics": {
+ "message": "Advanced topics",
+ "description": "The label for category Advanced topics in sidebar sidebar"
+ },
+ "sidebar.sidebar.category.Advanced topics.link.generated-index.title": {
+ "message": "Advanced topics",
+ "description": "The generated-index page title for category Advanced topics in sidebar sidebar"
+ },
+ "sidebar.sidebar.category.Advanced topics.link.generated-index.description": {
+ "message": "Learn about the advanced topics and inner workings of Yew!",
+ "description": "The generated-index page description for category Advanced topics in sidebar sidebar"
+ },
+ "sidebar.sidebar.category.More": {
+ "message": "More",
+ "description": "The label for category More in sidebar sidebar"
+ },
+ "sidebar.sidebar.category.More.link.generated-index.title": {
+ "message": "Miscellaneous",
+ "description": "The generated-index page title for category More in sidebar sidebar"
+ },
+ "sidebar.sidebar.category.Migration guides": {
+ "message": "Migration guides",
+ "description": "The label for category Migration guides in sidebar sidebar"
+ },
+ "sidebar.sidebar.category.yew": {
+ "message": "yew",
+ "description": "The label for category yew in sidebar sidebar"
+ },
+ "sidebar.sidebar.category.yew-agent": {
+ "message": "yew-agent",
+ "description": "The label for category yew-agent in sidebar sidebar"
+ },
+ "sidebar.sidebar.category.yew-router": {
+ "message": "yew-router",
+ "description": "The label for category yew-router in sidebar sidebar"
+ }
+}
\ No newline at end of file
diff --git a/website/i18n/zh-TW/docusaurus-plugin-content-docs/version-0.18.0.json b/website/i18n/zh-TW/docusaurus-plugin-content-docs/version-0.18.0.json
new file mode 100644
index 000000000..76ef8c1a8
--- /dev/null
+++ b/website/i18n/zh-TW/docusaurus-plugin-content-docs/version-0.18.0.json
@@ -0,0 +1,42 @@
+{
+ "version.label": {
+ "message": "0.18.0",
+ "description": "The label for version 0.18.0"
+ },
+ "sidebar.sidebar.category.Getting Started": {
+ "message": "Getting Started",
+ "description": "The label for category Getting Started in sidebar sidebar"
+ },
+ "sidebar.sidebar.category.Project Setup": {
+ "message": "Project Setup",
+ "description": "The label for category Project Setup in sidebar sidebar"
+ },
+ "sidebar.sidebar.category.Concepts": {
+ "message": "Concepts",
+ "description": "The label for category Concepts in sidebar sidebar"
+ },
+ "sidebar.sidebar.category.Components": {
+ "message": "Components",
+ "description": "The label for category Components in sidebar sidebar"
+ },
+ "sidebar.sidebar.category.wasm-bindgen": {
+ "message": "wasm-bindgen",
+ "description": "The label for category wasm-bindgen in sidebar sidebar"
+ },
+ "sidebar.sidebar.category.HTML": {
+ "message": "HTML",
+ "description": "The label for category HTML in sidebar sidebar"
+ },
+ "sidebar.sidebar.category.Services": {
+ "message": "Services",
+ "description": "The label for category Services in sidebar sidebar"
+ },
+ "sidebar.sidebar.category.Advanced topics": {
+ "message": "Advanced topics",
+ "description": "The label for category Advanced topics in sidebar sidebar"
+ },
+ "sidebar.sidebar.category.More": {
+ "message": "More",
+ "description": "The label for category More in sidebar sidebar"
+ }
+}
\ No newline at end of file
diff --git a/website/i18n/zh-TW/docusaurus-plugin-content-docs/version-0.19.0.json b/website/i18n/zh-TW/docusaurus-plugin-content-docs/version-0.19.0.json
new file mode 100644
index 000000000..755f3ae10
--- /dev/null
+++ b/website/i18n/zh-TW/docusaurus-plugin-content-docs/version-0.19.0.json
@@ -0,0 +1,58 @@
+{
+ "version.label": {
+ "message": "0.19.0",
+ "description": "The label for version 0.19.0"
+ },
+ "sidebar.sidebar.category.Getting Started": {
+ "message": "Getting Started",
+ "description": "The label for category Getting Started in sidebar sidebar"
+ },
+ "sidebar.sidebar.category.Project Setup": {
+ "message": "Project Setup",
+ "description": "The label for category Project Setup in sidebar sidebar"
+ },
+ "sidebar.sidebar.category.Concepts": {
+ "message": "Concepts",
+ "description": "The label for category Concepts in sidebar sidebar"
+ },
+ "sidebar.sidebar.category.wasm-bindgen": {
+ "message": "wasm-bindgen",
+ "description": "The label for category wasm-bindgen in sidebar sidebar"
+ },
+ "sidebar.sidebar.category.Components": {
+ "message": "Components",
+ "description": "The label for category Components in sidebar sidebar"
+ },
+ "sidebar.sidebar.category.HTML": {
+ "message": "HTML",
+ "description": "The label for category HTML in sidebar sidebar"
+ },
+ "sidebar.sidebar.category.Function Components": {
+ "message": "Function Components",
+ "description": "The label for category Function Components in sidebar sidebar"
+ },
+ "sidebar.sidebar.category.Advanced topics": {
+ "message": "Advanced topics",
+ "description": "The label for category Advanced topics in sidebar sidebar"
+ },
+ "sidebar.sidebar.category.More": {
+ "message": "More",
+ "description": "The label for category More in sidebar sidebar"
+ },
+ "sidebar.sidebar.category.Migration guides": {
+ "message": "Migration guides",
+ "description": "The label for category Migration guides in sidebar sidebar"
+ },
+ "sidebar.sidebar.category.yew": {
+ "message": "yew",
+ "description": "The label for category yew in sidebar sidebar"
+ },
+ "sidebar.sidebar.category.yew-agent": {
+ "message": "yew-agent",
+ "description": "The label for category yew-agent in sidebar sidebar"
+ },
+ "sidebar.sidebar.category.yew-router": {
+ "message": "yew-router",
+ "description": "The label for category yew-router in sidebar sidebar"
+ }
+}
\ No newline at end of file
diff --git a/website/i18n/zh-TW/docusaurus-theme-classic/footer.json b/website/i18n/zh-TW/docusaurus-theme-classic/footer.json
new file mode 100644
index 000000000..fe88dc57b
--- /dev/null
+++ b/website/i18n/zh-TW/docusaurus-theme-classic/footer.json
@@ -0,0 +1,38 @@
+{
+ "link.title.Support": {
+ "message": "Support",
+ "description": "The title of the footer links column with title=Support in the footer"
+ },
+ "link.title.Participate": {
+ "message": "Participate",
+ "description": "The title of the footer links column with title=Participate in the footer"
+ },
+ "link.title.More": {
+ "message": "More",
+ "description": "The title of the footer links column with title=More in the footer"
+ },
+ "link.item.label.Fund Issues": {
+ "message": "Fund Issues",
+ "description": "The label of footer link with label=Fund Issues linking to https://issuehunt.io/r/yewstack/yew"
+ },
+ "link.item.label.Sponsor Project": {
+ "message": "Sponsor Project",
+ "description": "The label of footer link with label=Sponsor Project linking to https://opencollective.com/yew"
+ },
+ "link.item.label.GitHub": {
+ "message": "GitHub",
+ "description": "The label of footer link with label=GitHub linking to https://github.com/yewstack/yew"
+ },
+ "link.item.label.Discord": {
+ "message": "Discord",
+ "description": "The label of footer link with label=Discord linking to https://discord.gg/VQck8X4"
+ },
+ "link.item.label.Twitter": {
+ "message": "Twitter",
+ "description": "The label of footer link with label=Twitter linking to https://twitter.com/yewstack"
+ },
+ "link.item.label.Yew Awesome": {
+ "message": "Yew Awesome",
+ "description": "The label of footer link with label=Yew Awesome linking to https://github.com/jetli/awesome-yew"
+ }
+}
\ No newline at end of file
diff --git a/website/i18n/zh-TW/docusaurus-theme-classic/navbar.json b/website/i18n/zh-TW/docusaurus-theme-classic/navbar.json
new file mode 100644
index 000000000..e2f600ffa
--- /dev/null
+++ b/website/i18n/zh-TW/docusaurus-theme-classic/navbar.json
@@ -0,0 +1,18 @@
+{
+ "title": {
+ "message": "Yew",
+ "description": "The title in the navbar"
+ },
+ "item.label.Docs": {
+ "message": "Docs",
+ "description": "Navbar item with label Docs"
+ },
+ "item.label.API": {
+ "message": "API",
+ "description": "Navbar item with label API"
+ },
+ "item.label.GitHub": {
+ "message": "GitHub",
+ "description": "Navbar item with label GitHub"
+ }
+}
\ No newline at end of file
diff --git a/website/mdx-jetbrains.jpg b/website/mdx-jetbrains.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..7b5cc00c6292f8a385917dadf590e2dab97ec8f2
GIT binary patch
literal 144228
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
z
z?%&yn+L*<|XxBBb4at(9Aly`9YSo$?MaSMRFz9}r6-kgYfBoW*1+CPJ1*zbo16LC5
z0&65iu4$YMogWO-6iDO~hC0c2*wbu!x%j)xjTp&1|9P(BToH3i&7nmrDz`))<<%QJ
zWI|3PA5x)PKd=y6BkaD$r`8wx6?F)1}>g|?O3USuwS-fGMczp9xZGnk`bF&;&|^{?^CsjI&%S-
z_6Wi#e|FWTI~!86>hJxr!m~2RIwy_Q+~=wJn>}F;)dG>mX+jG|85EOxDo>iCa$O)*
z%rnqiRai9W`L+Ng{UVirqQBG*ik!+M5b|_O#-oCRz78zj=Cc>paXHU_*~#&+;U~!j
zhm92!JI%vDq*>pl_k=4>XAC%~$!a0Y&oAA78T>`&x4Kr9(B%$D-gRu!;ayOE77w8!
zYCe+{*>wFm(qE33o-&;-HIFVw}M0@*()FUGy@o6VJ>ynaz)IHur
z`CyE?Ep?+hku@?u*xtg|9ylIT0`K{5d299p(Iq}Rk7{QgDbC-b;V+iVq?G4xes62L
zK2c5B-dG@N>yVuA-y8|B??%F1$NA&+s|9~40*SILTV33>#Q`5w-S%?>ecXXmc_=by!%0DLB
zDfB0n2RdKPFazLP0bI>`>*2aE5~b1jCyNPE{-Beuu>{Y&i|YnEdltSP-vy1
zB`U%`Nl@qB|J!9OH(L7B-~Sm9|9`Yig)h0$fA6&alZes48lBDAEKV?P+a(osH#YuF
zzpBu~IIF18@88h=<-u5Hl;-RCbH;!PFgS~fwjamG%+WWU=4etgafrW41&ZGI^d;e0
z*-CX}{$iyW;aRs+J}yefLRW97vp^(!i@3|D4Z$rG`gC2%V*QPzzz|?ud;y=k`djVb@K784D3MFi$H=qc>I@-e6l{9f|{VXp3A
zj9~Mew{q~sd@vCzgrKL1dU{6BHEWtQ&VsT)&4Nb*^!>b#uD>v|u*f
zzNp{zaoM8We15&gsbQB28-?MB7)eLU(5F-Y=1SP(ba)7Z(
z--p~Sc@s(4Zb4dmn!RGYU3Kk?nl6!`mmRV#AD=S$;xq**6TquJ#&Kr=7SDVl_MN6U
z=~9;MqeABp?PPaa#|a&7m6@~;W2awqls2YIO_=%y6Dj=&{5>BY1>5WahjJPnR4~Z
z`D?Rny*w8kn=aQxp3b+-lG#JN}UqP+=niQ@(lpMh9VxkB`Fgs{5Wms99H_
zFwJX|aBZzR!l+HM!kqhKa9v)4mtiN%@GqN(A;h$EHHiH1o=+s$!9FRii1K4+-GAZX
zxTa9=f(ijzQRVF=RNouta&o__n}gW3F?$u0wY1+9IU7HS;2fVq3tXYC}Y
z8Jlpdp@WE78011Yo_?UvlLmX{G)M_tMl;sA(sUjp;N;lr;<@C(=ezAAx3rmbC
zZH!4>J=km^N>*ctV0!rjR1=H;sjLz?*e4Je2#@a!1iw|}JB8R_!VHH!uR~%=`-|u=`nxa-SDOwHQ-=sW1_c
zgvX$Fyj*WFZYM3YHbe3V9r0K%{BM~u85rk4{|?*Qva972#-){%r;mQ?(hDzn`{FDA
zZ1+gwf$tB7*Hu@@*I&Y4wS`YnkdjIL!?!T+i|aSjkGwV$h=Rx9Ja)rsvf>$}DK$~wYX&vf
zU)JRG=iJ7fUmGWbo3N96@E$Evc)16bi5k-Tu-5qKQxceTi>d-v=ssp+cPSv-y`lNz
zm-osuuNMLyo=y!n=NbK+7Mn<~Hr|22GGkY}O^5cUx6#=3orXhSZ!EW_qzCANCLg3#
zc|vx(Vy|3~BOUJZ=YGvsxi8AaE&^80i2xpvSj+B1a9vO5J2Dp)51KcQI#v-Pqm^iL
z;gtpvd}HU+^K*5E)>Zg^m1v*|H1tXb4oFb?Og
zn*k9D&Jl}~6K5IX{NVKYS;yh2rirzMS9*HOr+~_(KGZk
zXie_dT$W#hB7QNif?PV(>wzS3RUNbHz%4i4Q(co50c${{X7dV6!@rPF`Xk#LwSD%y
zd?F+M+6}ux{Qbihbv?rw+CpFF(`?nf3M&%lY7|m1wX~&j-j5&u7YQz5k
zK3i~@*UyaHD?Gdp%kDzG`#pN>NUR%aC+FQm6i9sYjAwu-FyWJxo%PI&gFT7etR;2&
zVNiHOrc=7@9rl-Mx@IZPOn~_aDE9NHY3P$_$j>GfUV*-dKpIwqX+
z3;H1_8BQ#{N(4bYhTOlyNO|C4j8Tz|`7fm;JHm3}-k%h??PrI}ne=j5$+%zeq
zhDD4m<=ZIwalN~*0z>pez?t!M1n@=>ZjjkSQ+PyakO#hw7ma8r)QlGqRG6^Yhn9Z|
z6Z+1<-X~+B{&nRL66=%&rp|qWF_IQe%|U3hOeFR6q;F7IM};s$-F4-n{eFFdv-Q0^
zZ$(}#(MWS!+y*M2d$Z5X5u_yAh@RiVa8eH34gvxpq*BoLoop((Rs#!fNsHG?irR&C@zDKxj4px59r|xh@NKo;}Lc$Rd9G}tAhiD9s
zcz=v<$wFOA_!Q%ABNUUlWO&1^JH#_peBDOsS+WhJAn^!#=p$wNvgMenXyHCZg5Tq6EG41Lhf#W2RFmEi89P%0A2MIe%!S80aH;xcJ?`d};8Zks(RFtCerKUjV=KCL
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