{"id":75588,"date":"2024-09-03T19:40:44","date_gmt":"2024-09-03T16:10:44","guid":{"rendered":"https:\/\/nabfollower.com\/blog\/mdx-with-translations-157c\/"},"modified":"2024-09-03T19:40:44","modified_gmt":"2024-09-03T16:10:44","slug":"mdx-with-translations-157c","status":"publish","type":"post","link":"https:\/\/nabfollower.com\/blog\/mdx-with-translations-157c\/","title":{"rendered":"MDX \u0628\u0627 \u062a\u0631\u062c\u0645\u0647 \ud83d\udc20"},"content":{"rendered":"<p>Summarize this content to 400 words in Persian Lang \u062f\u0631 \u0633\u0627\u0644\u200c\u0647\u0627\u06cc \u0627\u062e\u06cc\u0631 \u0646\u06cc\u0627\u0632 \u0628\u0647 \u0642\u0627\u0644\u0628\u06cc \u0622\u0633\u0627\u0646 \u0648 \u062f\u0631 \u0639\u06cc\u0646 \u062d\u0627\u0644 \u0627\u0646\u0639\u0637\u0627\u0641\u200c\u067e\u0630\u06cc\u0631 \u0628\u0631\u0627\u06cc \u0645\u062d\u062a\u0648\u0627\u06cc \u062b\u0627\u0628\u062a \u0633\u0627\u062f\u0647 \u0627\u0641\u0632\u0627\u06cc\u0634 \u06cc\u0627\u0641\u062a\u0647 \u0627\u0633\u062a. \u062f\u0631 \u0627\u0635\u0644\u060c HTML \u0628\u0631\u0627\u06cc \u0622\u0646 \u062f\u0631 \u0646\u0638\u0631 \u06af\u0631\u0641\u062a\u0647 \u0634\u062f\u0647 \u0628\u0648\u062f &#8211; \u0627\u0645\u0627 \u0628\u06cc\u0627\u06cc\u06cc\u062f \u0635\u0627\u062f\u0642 \u0628\u0627\u0634\u06cc\u0645: \u0646\u0647 \u0633\u0627\u062f\u0647 \u0627\u0633\u062a \u0648 \u0646\u0647 \u0627\u0646\u0639\u0637\u0627\u0641 \u067e\u0630\u06cc\u0631. \u067e\u06cc\u0634\u0646\u0647\u0627\u062f\u0647\u0627\u06cc \u062c\u0627\u06cc\u06af\u0632\u06cc\u0646 \u0632\u06cc\u0627\u062f\u06cc \u0648\u062c\u0648\u062f \u062f\u0627\u0631\u062f &#8211; \u062a\u0642\u0631\u06cc\u0628\u0627\u064b \u0647\u0631 CMS \u0628\u0627 \u0644\u0647\u062c\u0647 \u062e\u0627\u0635 \u062e\u0648\u062f \u0627\u0631\u0627\u0626\u0647 \u0645\u06cc \u0634\u0648\u062f.<\/p>\n<p>\u06cc\u06a9\u06cc \u0627\u0632 \u0631\u0642\u0628\u0627\u06cc \u062e\u0648\u0628 \u0628\u0631\u0627\u06cc \u0645\u062d\u062a\u0648\u0627\u06cc \u062b\u0627\u0628\u062a \u06a9\u0647 \u0645\u06cc \u062a\u0648\u0627\u0646\u062f \u0628\u0647 \u062e\u0648\u0628\u06cc \u062e\u0648\u0627\u0646\u062f\u0647 \u0634\u0648\u062f \u0648 \u0627\u0631\u0627\u0626\u0647 \u0634\u0648\u062f\u060c Markdown \u0627\u0633\u062a. \u0628\u0627 \u0627\u06cc\u0646 \u062d\u0627\u0644\u060c \u06a9\u0627\u0633\u062a\u06cc \u0647\u0627\u06cc \u0628\u0633\u06cc\u0627\u0631 \u06a9\u0645\u06cc \u062f\u0627\u0631\u062f. \u0645\u0647\u0645\u062a\u0631 \u0627\u0632 \u0647\u0645\u0647\u060c Markdown \u0628\u0647 \u0637\u0648\u0631 \u06a9\u0627\u0645\u0644 \u0645\u0634\u062e\u0635 \u0646\u0634\u062f\u0647 \u0627\u0633\u062a &#8211; \u0645\u0646\u062c\u0631 \u0628\u0647 \u06af\u0648\u06cc\u0634 \u0647\u0627\u06cc \u0645\u062a\u0639\u062f\u062f\u06cc \u0645\u06cc \u0634\u0648\u062f \u06a9\u0647 \u0648\u062c\u0648\u062f \u062f\u0627\u0631\u062f. \u0639\u0644\u0627\u0648\u0647 \u0628\u0631 \u0627\u06cc\u0646\u060c \u0628\u0633\u06cc\u0627\u0631\u06cc \u0627\u0632 \u0686\u06cc\u0632\u0647\u0627\u06cc \u0636\u0631\u0648\u0631\u06cc \u0641\u0642\u0637 \u0628\u0647 \u0635\u0648\u0631\u062a \u067e\u0633\u0648\u0646\u062f\u0647\u0627\u06cc \u063a\u06cc\u0631 \u0627\u0633\u062a\u0627\u0646\u062f\u0627\u0631\u062f \u062f\u0631 \u062f\u0633\u062a\u0631\u0633 \u0647\u0633\u062a\u0646\u062f. \u062f\u0631 \u0646\u0647\u0627\u06cc\u062a\u060c \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 \u0627\u062c\u0632\u0627\u06cc \u0633\u0641\u0627\u0631\u0634\u06cc \u062f\u0631 Markdown \u0627\u0645\u06a9\u0627\u0646 \u067e\u0630\u06cc\u0631 \u0646\u06cc\u0633\u062a.<\/p>\n<p>\u0627\u06cc\u0646\u062c\u0627\u0633\u062a \u06a9\u0647 MDX \u0648\u0627\u0631\u062f \u0639\u0645\u0644 \u0645\u06cc \u0634\u0648\u062f. \u0627\u06cc\u0646 \u062f\u0631 \u0627\u0635\u0644 \u062a\u0631\u06a9\u06cc\u0628\u06cc \u0627\u0632 JSX \/ React \u0648 \u06af\u0648\u06cc\u0634 \u0645\u0634\u062e\u0635 Markdown \u0627\u0633\u062a. \u0627\u0633\u0627\u0633\u0627\u064b\u060c \u0627\u06cc\u0646 \u0627\u062c\u0627\u0632\u0647 \u0645\u06cc \u062f\u0647\u062f \u062a\u0627 \u0645\u062a\u0646 \u0647\u0627\u06cc\u06cc \u0631\u0627 \u0628\u0646\u0648\u06cc\u0633\u06cc\u062f \u06a9\u0647 \u0628\u0647 \u0633\u0627\u062f\u06af\u06cc Markdown \u0633\u0627\u062f\u0647 \u0647\u0633\u062a\u0646\u062f \u0648 \u0647\u0645\u0686\u0646\u06cc\u0646 \u0627\u062c\u0632\u0627\u06cc \u067e\u06cc\u0686\u06cc\u062f\u0647 \u0627\u06cc \u0631\u0627 \u06a9\u0647 \u0645\u0645\u06a9\u0646 \u0627\u0633\u062a \u062f\u0631 JSX \u06a9\u0627\u0645\u0644 \u0627\u0646\u062c\u0627\u0645 \u062f\u0627\u062f\u0647 \u0628\u0627\u0634\u06cc\u062f \u0627\u06cc\u062c\u0627\u062f \u06a9\u0646\u06cc\u062f.<\/p>\n<p>  \u0633\u0627\u062e\u062a\u0627\u0631 \u0648\u0628 \u0633\u0627\u06cc\u062a<\/p>\n<p>\u0645\u0627 \u0628\u0631 \u0627\u0633\u0627\u0633 \u0633\u0627\u062e\u062a\u0627\u0631\u06cc \u06a9\u0647 \u062f\u0631 \u0635\u0641\u062d\u0627\u062a \u0633\u0631\u06cc\u0639\u062a\u0631 \u0645\u0642\u0627\u0644\u0647 \u0627\u062e\u06cc\u0631 \u0645\u0646\u062a\u0634\u0631 \u0634\u062f\u0647 \u062e\u0648\u062f \u0628\u0627 React \u0648 \u067e\u0633\u062a \u0648\u0628\u0644\u0627\u06af \u0627\u0635\u0644\u06cc \u062e\u0648\u062f \u062f\u0631 \u0633\u0627\u0644 2019 \u062a\u0646\u0638\u06cc\u0645 \u0634\u062f\u0647 \u0627\u0633\u062a. \u062f\u0631 \u0627\u06cc\u0646 \u0633\u0627\u062e\u062a\u0627\u0631\u060c \u0647\u0645\u0647 \u0635\u0641\u062d\u0627\u062a \u0631\u0627 \u0628\u0627 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 React \u0628\u0631\u0627\u06cc \u0647\u0631 \u0635\u0641\u062d\u0647 \u0628\u0647 \u062a\u0631\u062a\u06cc\u0628 \u0646\u0633\u0628\u06cc \u0645\u0633\u06cc\u0631 \u062e\u0648\u062f \u0642\u0631\u0627\u0631 \u062f\u0627\u062f\u0647 \u0627\u06cc\u0645:<\/p>\n<p>\u0627\u06a9\u0646\u0648\u0646 \u062f\u0648 \u0686\u06cc\u0632 \u0648\u062c\u0648\u062f \u062f\u0627\u0631\u062f \u06a9\u0647 \u0645\u06cc \u062e\u0648\u0627\u0647\u06cc\u0645 \u0628\u0647 \u0622\u0646\u0647\u0627 \u0631\u0633\u06cc\u062f\u06af\u06cc \u06a9\u0646\u06cc\u0645:<\/p>\n<p>\u0646\u0648\u0634\u062a\u0646 \u0645\u062d\u062a\u0648\u0627 (\u0648 \u062e\u0648\u0627\u0646\u062f\u0646) \u0631\u0627 \u0628\u0631\u0627\u06cc \u0647\u0631 \u06a9\u0627\u0631\u0645\u0646\u062f \u062f\u0631 smapiot \u0628\u0647\u0628\u0648\u062f \u0628\u062e\u0634\u06cc\u062f<br \/>\n\u0633\u0627\u062f\u0647 \u0633\u0627\u0632\u06cc \u062a\u0631\u062c\u0645\u0647 \u0647\u0627\u061b \u062f\u0631 \u062d\u0627\u0644 \u062d\u0627\u0636\u0631 \u0633\u0627\u062e\u062a\u0627\u0631 \u0646\u06cc\u0627\u0632 \u0628\u0647 \u062a\u06a9\u0631\u0627\u0631 \u0635\u0641\u062d\u0627\u062a \u062f\u0627\u0631\u062f (\u0642\u0631\u0627\u0631 \u062f\u0627\u062f\u0646 \u0622\u0646\u0647\u0627 \u0628\u0627 \u0645\u062d\u062a\u0648\u0627\u06cc \u0645\u062e\u062a\u0644\u0641 \/ \u062a\u0631\u062c\u0645\u0647 \u0634\u062f\u0647 \u062f\u0631 \u067e\u0648\u0634\u0647 \u0647\u0627\u06cc &#8220;de&#8221; \u0648 &#8220;en&#8221;).<\/p>\n<p>\u0628\u0631\u0627\u06cc \u0627\u0648\u0644\u06cc \u0645\u06cc\u200c\u062e\u0648\u0627\u0647\u06cc\u0645 \u0627\u0632 MDX \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u06a9\u0646\u06cc\u0645 &#8211; \u0628\u0631\u0627\u06cc \u062f\u0648\u0645\u06cc \u0628\u0627\u06cc\u062f \u0631\u0627\u0647\u200c\u062d\u0644\u06cc \u0627\u0631\u0627\u0626\u0647 \u06a9\u0646\u06cc\u0645 \u06a9\u0647 \u0628\u0647 \u0645\u0627 \u0627\u0645\u06a9\u0627\u0646 \u0645\u06cc\u200c\u062f\u0647\u062f \u0633\u0627\u062e\u062a\u0627\u0631\u06cc \u0645\u0633\u0637\u062d \u062f\u0627\u0634\u062a\u0647 \u0628\u0627\u0634\u06cc\u0645.<\/p>\n<p>  \u0627\u062f\u063a\u0627\u0645 MDX<\/p>\n<p>\u0622\u0648\u0631\u062f\u0646 MDX \u0628\u0647 \u0631\u0627\u0647 \u062d\u0644 \u062f\u0631 \u0648\u0627\u0642\u0639 \u06a9\u0627\u0645\u0644\u0627\u064b \u0633\u0627\u062f\u0647 \u0627\u0633\u062a. \u0631\u0627 @mdx-js\/mdx \u0628\u0633\u062a\u0647 \u0634\u0627\u0645\u0644 \u0647\u0645\u0647 \u0686\u06cc\u0632 \u0628\u0631\u0627\u06cc \u06a9\u0627\u0645\u067e\u0627\u06cc\u0644 \u0648 \u06a9\u0627\u0631 \u0628\u0627 \u0641\u0627\u06cc\u0644 \u0647\u0627\u06cc MDX \u0627\u0633\u062a. \u0628\u0627 \u0627\u06cc\u0646 \u062d\u0627\u0644\u060c \u0627\u0632 \u0622\u0646\u062c\u0627\u06cc\u06cc \u06a9\u0647 \u0645\u0627 \u062f\u0631 \u062d\u0627\u0644 \u062d\u0627\u0636\u0631 \u0627\u0632 \u06cc\u06a9 \u0628\u0627\u0646\u062f\u0644\u0631 (Vite) \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0645\u06cc \u06a9\u0646\u06cc\u0645\u060c \u0645\u06cc \u062a\u0648\u0627\u0646\u06cc\u0645 \u0641\u0642\u0637 \u0628\u0647 \u0627\u0641\u0632\u0648\u0646\u0647 \u062e\u0627\u0635\u06cc \u06a9\u0647 \u0628\u0631\u0627\u06cc \u0622\u0646 \u0628\u0627\u0646\u062f\u0644\u0631 \u0648\u062c\u0648\u062f \u062f\u0627\u0631\u062f\u060c \u062a\u06a9\u06cc\u0647 \u06a9\u0646\u06cc\u0645.<\/p>\n<p>npm i @mdx-js\/rollup &#8211;save-dev<\/p>\n<p>\u0686\u0631\u0627 \u0628\u0633\u062a\u0647 \u0627\u06cc \u0628\u0647 \u0646\u0627\u0645 \u0646\u0635\u0628 \u0645\u06cc \u06a9\u0646\u06cc\u0645 rollup \u0627\u06af\u0631 \u0628\u0627\u0646\u062f\u0644\u0631 \u0645\u0627 Vite \u0628\u0627\u0634\u062f\u061f \u0628\u0647 \u0646\u0638\u0631 \u0645\u06cc \u0631\u0633\u062f \u06a9\u0647 Vite \u062f\u0631 \u0648\u0627\u0642\u0639 \u0641\u0642\u0637 \u06cc\u06a9 \u0627\u0628\u0632\u0627\u0631 \u0633\u0627\u062e\u062a \u0627\u0633\u062a &#8211; \u0628\u0631\u0627\u06cc \u0628\u0633\u062a\u0647 \u0628\u0646\u062f\u06cc \u0648\u0627\u0642\u0639\u06cc \u0627\u0632 \u062f\u0648 \u0686\u06cc\u0632 \u062f\u06cc\u06af\u0631 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0645\u06cc \u0634\u0648\u062f:<\/p>\n<p>esbuild \u0628\u0631\u0627\u06cc \u0628\u0633\u062a\u0647\u200c\u0628\u0646\u062f\u06cc\/\u067e\u0631\u062f\u0627\u0632\u0634 \u0647\u0631 \u0686\u06cc\u0632\u06cc \u062f\u0631 \u0628\u0633\u062a\u0647\u200c\u0647\u0627\u06cc \u0634\u062e\u0635 \u062b\u0627\u0644\u062b (\u0648 \u0647\u0645\u0686\u0646\u06cc\u0646 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 \u0622\u0646\u060c \u0628\u0647 \u0639\u0646\u0648\u0627\u0646 \u0645\u062b\u0627\u0644\u060c \u062f\u0631 \u0641\u0627\u06cc\u0644 \u067e\u06cc\u06a9\u0631\u0628\u0646\u062f\u06cc)<br \/>\n\u062c\u0645\u0639 \u0622\u0648\u0631\u06cc \u0628\u0631\u0627\u06cc \u0628\u0633\u062a\u0647 \u0628\u0646\u062f\u06cc\/\u067e\u0631\u062f\u0627\u0632\u0634 \u06a9\u062f \u06a9\u0627\u0631\u0628\u0631<\/p>\n<p>\u0627\u0632 \u0627\u06cc\u0646 \u0631\u0648 \u067e\u0644\u0627\u06af\u06cc\u0646 \u062c\u0645\u0639 \u0622\u0648\u0631\u06cc &#8211; \u06a9\u0647 \u062a\u0645\u0627\u0645 \u0686\u06cc\u0632\u06cc \u0627\u0633\u062a \u06a9\u0647 \u0645\u0627 \u0646\u06cc\u0627\u0632 \u062f\u0627\u0631\u06cc\u0645.<\/p>\n<p>\u0627\u062f\u063a\u0627\u0645 \u062f\u0631 \u0645\u0627 vite.config.mjs \u0641\u0627\u06cc\u0644 \u0628\u0647 \u0634\u06a9\u0644 \u0632\u06cc\u0631 \u0627\u0633\u062a:<\/p>\n<p>import codegen from &#8216;vite-plugin-codegen&#8217;;<br \/>\nimport mdx from &#8216;@mdx-js\/rollup&#8217;;<br \/>\nimport { resolve } from &#8216;path&#8217;;<\/p>\n<p>export default {<br \/>\n  build: {<br \/>\n    assetsInlineLimit: 0,<br \/>\n  },<br \/>\n  resolve: {<br \/>\n    alias: {<br \/>\n      &#8216;@&#8217;: resolve(__dirname, &#8216;src&#8217;),<br \/>\n    },<br \/>\n  },<br \/>\n  plugins: [<br \/>\n    codegen(),<br \/>\n    mdx(),<br \/>\n  ],<br \/>\n};<\/p>\n<p>\u062a\u0648\u062c\u0647 \u062f\u0627\u0634\u062a\u0647 \u0628\u0627\u0634\u06cc\u062f \u06a9\u0647 \u0645\u0627 \u062f\u0631 \u062d\u0627\u0644 \u062d\u0627\u0636\u0631 \u0647\u06cc\u0686 \u06af\u0632\u06cc\u0646\u0647 \u0627\u06cc \u0627\u0631\u0627\u0626\u0647 \u0646\u0645\u06cc \u062f\u0647\u06cc\u0645. \u0627\u06cc\u0646 \u0641\u0642\u0637 \u06a9\u0627\u0631 \u0645\u06cc \u06a9\u0646\u062f!<\/p>\n<p>\u067e\u0633 \u0627\u06cc\u0646\u062c\u0627 \u0686\u0647 \u06a9\u0627\u0631 \u0645\u06cc \u062a\u0648\u0627\u0646\u06cc\u0645 \u0628\u06a9\u0646\u06cc\u0645\u061f \u06cc\u06a9\u06cc \u0627\u0632 \u0635\u0641\u062d\u0627\u062a \u0642\u0628\u0644\u06cc \u0645\u0627 \u0631\u0627 \u062f\u0631 \u0646\u0638\u0631 \u0628\u06af\u06cc\u0631\u06cc\u062f\u060c \u0633\u0644\u0628 \u0645\u0633\u0626\u0648\u0644\u06cc\u062a \u0642\u0627\u0646\u0648\u0646\u06cc (\u0686\u0647 \u06a9\u0633\u06cc \u0635\u0641\u062d\u0627\u062a \u0642\u0627\u0646\u0648\u0646\u06cc \u0631\u0627 \u062f\u0648\u0633\u062a \u0646\u062f\u0627\u0631\u062f\u061f!):<\/p>\n<p>import * as React from &#8216;react&#8217;;<br \/>\nimport { Page } from &#8216;@smapiot\/components\/lib\/basic\/Page&#8217;;<\/p>\n<p>export const meta = {<br \/>\n  title: &#8216;Legal Disclaimer&#8217;,<br \/>\n  legal: &#8216;Legal Disclaimer&#8217;,<br \/>\n};<\/p>\n<p>const title = &#8216;smapiot &#8211; Legal Disclaimer&#8217;;<\/p>\n<p>export default () =&gt; (<br \/>\n  &lt;Page title={title}&gt;<br \/>\n    &lt;section className=&#8221;container&#8221;&gt;<br \/>\n      &lt;h1&gt;Legal Disclaimer&lt;\/h1&gt;<br \/>\n      &lt;h3&gt;Liability for Contents&lt;\/h3&gt;<br \/>\n      &lt;p&gt;<br \/>\n        The contents of our pages have been compiled with the greatest care. However, we cannot guarantee for accuracy,<br \/>\n        completeness or topicality of the contents. As service providers, we are liable for own contents of these<br \/>\n        websites according to sec. 7, paragraph 1 German Telemedia Act (TMG). However, according to sec. 8 to 10 German<br \/>\n        Telemedia Act (TMG), service providers are not obligated to permanently monitor submitted or stored information<br \/>\n        or to search for evidences that indicate illegal activities. Legal obligations to removing information or to<br \/>\n        blocking the use of information remain unchallenged. In this case, liability is only possible at the time of<br \/>\n        knowledge about a specific violation of law. Illegal contents will be removed immediately at the time we get<br \/>\n        knowledge of them.<br \/>\n      &lt;\/p&gt;<br \/>\n      &lt;h3&gt;Liability for Links&lt;\/h3&gt;<br \/>\n      &lt;p&gt;<br \/>\n        Our web pages include links to external third party websites. We have no influence on the contents of those<br \/>\n        external websites, therefore we cannot guarantee for those contents. Providers or administrators of linked<br \/>\n        websites are always responsible for their own contents. The linked websites had been checked for possible<br \/>\n        violations of law at the time of the establishment of the link. Illegal contents were not detected at the time<br \/>\n        of the linking. A permanent monitoring of the contents of linked websites cannot be imposed without reasonable<br \/>\n        indications that there has been a violation of law. Illegal links will be removed immediately at the time we get<br \/>\n        knowledge of them.<br \/>\n      &lt;\/p&gt;<br \/>\n      &lt;h3&gt;Copyright&lt;\/h3&gt;<br \/>\n      &lt;p&gt;<br \/>\n        Contents and compilations published on these websites by the providers are subject to German copyright laws.<br \/>\n        Reproduction, editing, distribution as well as the use of any kind outside the scope of the copyright law<br \/>\n        require a written permission of the author or originator. Downloads and copies of these websites are permitted<br \/>\n        for private use only. The commercial use of our contents without permission of the originator is prohibited.<br \/>\n        Copyright laws of third parties are respected as long as the contents on these websites do not originate from<br \/>\n        the provider. Contributions of third parties on this site are indicated as such. However, if you notice any<br \/>\n        violations of copyright law, please inform us. Such contents will be removed immediately.<br \/>\n      &lt;\/p&gt;<br \/>\n    &lt;\/section&gt;<br \/>\n  &lt;\/Page&gt;<br \/>\n);<\/p>\n<p>\u0627\u06cc\u0646 \u062e\u06cc\u0644\u06cc \u0628\u062f \u0646\u06cc\u0633\u062a! \u06a9\u0627\u0631\u06cc \u06a9\u0647 \u0627\u06a9\u0646\u0648\u0646 \u0645\u06cc \u062a\u0648\u0627\u0646\u06cc\u0645 \u0627\u0646\u062c\u0627\u0645 \u062f\u0647\u06cc\u0645 \u0627\u06cc\u0646 \u0627\u0633\u062a \u06a9\u0647 \u0646\u0627\u0645 \u0622\u0646 \u0631\u0627 \u0627\u0632 \u0622\u0646 \u062a\u063a\u06cc\u06cc\u0631 \u062f\u0647\u06cc\u0645 \u0633\u0644\u0628 \u0645\u0633\u0626\u0648\u0644\u06cc\u062a.tsx \u0628\u0647 \u0633\u0644\u0628 \u0645\u0633\u0626\u0648\u0644\u06cc\u062a.mdx \u0648 \u0645\u062d\u062a\u0648\u0627\u06cc \u0622\u0646 \u0631\u0627 \u0628\u0647 \u0635\u0648\u0631\u062a \u0632\u06cc\u0631 \u062a\u063a\u06cc\u06cc\u0631 \u062f\u0647\u06cc\u062f:<\/p>\n<p>export const meta = {<br \/>\n  title: &#8216;Legal Disclaimer&#8217;,<br \/>\n  legal: &#8216;Legal Disclaimer&#8217;,<br \/>\n};<\/p>\n<p>&lt;section className=&#8221;container&#8221;&gt;<br \/>\n  # Legal Disclaimer<\/p>\n<p>  ### Liability for Contents<\/p>\n<p>  The contents of our pages have been compiled with the greatest care. However, we cannot guarantee for accuracy, completeness or topicality of the contents. As service providers, we are liable for own contents of these websites according to sec. 7, paragraph 1 German Telemedia Act (TMG). However, according to sec. 8 to 10 German Telemedia Act (TMG), service providers are not obligated to permanently monitor submitted or stored information or to search for evidences that indicate illegal activities. Legal obligations to removing information or to blocking the use of information remain unchallenged. In this case, liability is only possible at the time of knowledge about a specific violation of law. Illegal contents will be removed immediately at the time we get knowledge of them.<\/p>\n<p>  ### Liability for Links<\/p>\n<p>  Our web pages include links to external third party websites. We have no influence on the contents of those external websites, therefore we cannot guarantee for those contents. Providers or administrators of linked websites are always responsible for their own contents. The linked websites had been checked for possible violations of law at the time of the establishment of the link. Illegal contents were not detected at the time of the linking. A permanent monitoring of the contents of linked websites cannot be imposed without reasonable indications that there has been a violation of law. Illegal links will be removed immediately at the time we get knowledge of them.<\/p>\n<p>  ### Copyright<\/p>\n<p>  Contents and compilations published on these websites by the providers are subject to German copyright laws. Reproduction, editing, distribution as well as the use of any kind outside the scope of the copyright law require a written permission of the author or originator. Downloads and copies of these websites are permitted for private use only. The commercial use of our contents without permission of the originator is prohibited. Copyright laws of third parties are respected as long as the contents on these websites do not originate from the provider. Contributions of third parties on this site are indicated as such. However, if you notice any violations of copyright law, please inform us. Such contents will be removed immediately.<br \/>\n&lt;\/section&gt;<\/p>\n<p>\u062e\u0648\u0627\u0646\u062f\u0646 \u0628\u0633\u06cc\u0627\u0631 \u0622\u0633\u0627\u0646 \u062a\u0631 \u0627\u0633\u062a! \u062a\u0648\u062c\u0647 \u062f\u0627\u0634\u062a\u0647 \u0628\u0627\u0634\u06cc\u062f \u06a9\u0647 \u0648\u0627\u0631\u062f\u0627\u062a \u063a\u06cc\u0631 \u0636\u0631\u0648\u0631\u06cc \u0645\u0627\u0646\u0646\u062f react \u0645\u06cc \u062a\u0648\u0627\u0646\u062f \u062d\u0630\u0641 \u0634\u0648\u062f\u060c \u062f\u0631 \u062d\u0627\u0644\u06cc \u06a9\u0647 \u062c\u0632\u0621 \u0628\u0633\u062a\u0647 \u0628\u0646\u062f\u06cc \u062f\u06cc\u06af \u0628\u062e\u0627\u0631 Page \u0627\u06a9\u0646\u0648\u0646 \u0628\u0647 \u0637\u0648\u0631 \u062e\u0648\u062f\u06a9\u0627\u0631 \u062f\u0631\u062c \u062e\u0648\u0627\u0647\u062f \u0634\u062f.<\/p>\n<p>\u0627\u0645\u0627 \u0686\u06cc\u0632 \u062f\u0648\u0645\u06cc \u0628\u0648\u062f \u06a9\u0647 \u0645\u0627 \u0628\u0647 \u0622\u0646 \u0646\u06cc\u0627\u0632 \u062f\u0627\u0634\u062a\u06cc\u0645\u060c \u062f\u0631\u0633\u062a \u0627\u0633\u062a\u061f \u062f\u0631 \u0645\u0648\u0631\u062f \u0628\u0647\u0628\u0648\u062f\u0647\u0627\u06cc \u0645\u062d\u0644\u06cc \u0633\u0627\u0632\u06cc \/ \u0633\u0627\u062e\u062a\u0627\u0631 \u0635\u0641\u062d\u0647 \u0686\u0637\u0648\u0631\u061f<\/p>\n<p>\u0628\u06cc\u0627\u06cc\u06cc\u062f \u0628\u0628\u06cc\u0646\u06cc\u0645 \u0627\u06cc\u0646\u062c\u0627 \u0686\u0647 \u06a9\u0627\u0631\u06cc \u0645\u06cc \u062a\u0648\u0627\u0646\u06cc\u0645 \u0627\u0646\u062c\u0627\u0645 \u062f\u0647\u06cc\u0645!<\/p>\n<p>  \u0627\u0631\u0627\u0626\u0647 \u062a\u0631\u062c\u0645\u0647<\/p>\n<p>\u0686\u0647 \u0645\u06cc \u0634\u0648\u062f \u0627\u06af\u0631 \u0631\u0634\u062a\u0647 \u0647\u0627\u06cc \u0645\u062d\u0644\u06cc \u0633\u0627\u0632\u06cc \u0631\u0627 \u0647\u0645\u0647 \u062f\u0631 \u06cc\u06a9 \u0633\u0627\u06cc\u062f\u06a9\u0627\u0631 \u06a9\u0648\u0686\u06a9 \u0642\u0631\u0627\u0631 \u062f\u0647\u06cc\u0645\u061f \u0628\u0647 \u0639\u0646\u0648\u0627\u0646 \u0645\u062b\u0627\u0644\u060c \u0628\u0631\u0627\u06cc \u0641\u0627\u06cc\u0644\u06cc \u0645\u0627\u0646\u0646\u062f \u0633\u0644\u0628 \u0645\u0633\u0626\u0648\u0644\u06cc\u062a.mdx \u0645\u0627 \u0647\u0645\u0686\u0646\u06cc\u0646 \u06cc\u06a9 \u0641\u0627\u06cc\u0644 \u062e\u0648\u0627\u0647\u06cc\u0645 \u062f\u0627\u0634\u062a \u0633\u0644\u0628 \u0645\u0633\u0626\u0648\u0644\u06cc\u062a.yml. \u062f\u0631 \u0627\u06cc\u0646 \u0641\u0627\u06cc\u0644 \u0645\u06cc\u200c\u062a\u0648\u0627\u0646\u06cc\u0645 \u062a\u0631\u062c\u0645\u0647\u200c\u0647\u0627 \u0631\u0627 \u0628\u0627 \u062a\u0648\u062c\u0647 \u0628\u0647 \u0632\u0628\u0627\u0646\u200c\u0647\u0627 \u0642\u0631\u0627\u0631 \u062f\u0647\u06cc\u0645.<\/p>\n<p>\u06a9\u0644 \u0633\u0627\u062e\u062a\u0627\u0631 \u0645\u06cc \u062a\u0648\u0627\u0646\u062f \u0628\u0647 \u0627\u06cc\u0646 \u0634\u06a9\u0644 \u0628\u0627\u0634\u062f:<\/p>\n<p>\u062c\u0627\u06cc\u06cc \u06a9\u0647 \u06cc\u06a9 \u0641\u0627\u06cc\u0644 \u0641\u0631\u062f\u06cc\u060c \u0628\u0647 \u0639\u0646\u0648\u0627\u0646 \u0645\u062b\u0627\u0644\u060c \u0628\u0631\u0627\u06cc \u0633\u0644\u0628 \u0645\u0633\u0626\u0648\u0644\u06cc\u062a.yml \u0645\u06cc \u062a\u0648\u0627\u0646\u062f \u0628\u0647 \u0635\u0648\u0631\u062a \u0632\u06cc\u0631 \u0646\u0648\u0634\u062a\u0647 \u0634\u0648\u062f:<\/p>\n<p>de:<br \/>\n  content$: |<br \/>\n    # Haftungsausschluss<\/p>\n<p>    ### Haftung f\u00fcr Inhalte<\/p>\n<p>    Die Inhalte unserer Seiten wurden mit gr\u00f6\u00dfter Sorgfalt erstellt. F\u00fcr die Richtigkeit, Vollst\u00e4ndigkeit und Aktualit\u00e4t der Inhalte k\u00f6nnen wir jedoch keine Gew\u00e4hr \u00fcbernehmen. Als Diensteanbieter sind wir gem\u00e4\u00df \u00a7 7 Abs.1 TMG f\u00fcr eigene Inhalte auf diesen Seiten nach den allgemeinen Gesetzen verantwortlich. Nach \u00a7\u00a7 8 bis 10 TMG sind wir als Diensteanbieter jedoch nicht verpflichtet, \u00fcbermittelte oder gespeicherte fremde Informationen zu \u00fcberwachen oder nach Umst\u00e4nden zu forschen, die auf eine rechtswidrige T\u00e4tigkeit hinweisen. Verpflichtungen zur Entfernung oder Sperrung der Nutzung von Informationen nach den allgemeinen Gesetzen bleiben hiervon unber\u00fchrt. Eine diesbez\u00fcgliche Haftung ist jedoch erst ab dem Zeitpunkt der Kenntnis einer konkreten Rechtsverletzung m\u00f6glich. Bei Bekanntwerden von entsprechenden Rechtsverletzungen werden wir diese Inhalte umgehend entfernen.<\/p>\n<p>    ### Haftung f\u00fcr Links<\/p>\n<p>    Unser Angebot enth\u00e4lt Links zu externen Webseiten Dritter, auf deren Inhalte wir keinen Einfluss haben. Deshalb k\u00f6nnen wir f\u00fcr diese fremden Inhalte auch keine Gew\u00e4hr \u00fcbernehmen. F\u00fcr die Inhalte der verlinkten Seiten ist stets der jeweilige Anbieter oder Betreiber der Seiten verantwortlich. Die verlinkten Seiten wurden zum Zeitpunkt der Verlinkung auf m\u00f6gliche Rechtsverst\u00f6\u00dfe \u00fcberpr\u00fcft. Rechtswidrige Inhalte waren zum Zeitpunkt der Verlinkung nicht erkennbar. Eine permanente inhaltliche Kontrolle der verlinkten Seiten ist jedoch ohne konkrete Anhaltspunkte einer Rechtsverletzung nicht zumutbar. Bei Bekanntwerden von Rechtsverletzungen werden wir derartige Links umgehend entfernen.<\/p>\n<p>    ### Urheberrecht<\/p>\n<p>    Die durch die Seitenbetreiber erstellten Inhalte und Werke auf diesen Seiten unterliegen dem deutschen Urheberrecht. Die Vervielf\u00e4ltigung, Bearbeitung, Verbreitung und jede Art der Verwertung au\u00dferhalb der Grenzen des Urheberrechtes bed\u00fcrfen der schriftlichen Zustimmung des jeweiligen Autors bzw. Erstellers. Downloads und Kopien dieser Seite sind nur f\u00fcr den privaten, nicht kommerziellen Gebrauch gestattet. Soweit die Inhalte auf dieser Seite nicht vom Betreiber erstellt wurden, werden die Urheberrechte Dritter beachtet. Insbesondere werden Inhalte Dritter als solche gekennzeichnet. Sollten Sie trotzdem auf eine Urheberrechtsverletzung aufmerksam werden, bitten wir um einen entsprechenden Hinweis. Bei Bekanntwerden von Rechtsverletzungen werden wir derartige Inhalte umgehend entfernen.<br \/>\nen:<br \/>\n  content$: |<br \/>\n    # Legal Disclaimer<\/p>\n<p>    ### Liability for Contents<\/p>\n<p>    The contents of our pages have been compiled with the greatest care. However, we cannot guarantee for accuracy, completeness or topicality of the contents. As service providers, we are liable for own contents of these websites according to sec. 7, paragraph 1 German Telemedia Act (TMG). However, according to sec. 8 to 10 German Telemedia Act (TMG), service providers are not obligated to permanently monitor submitted or stored information or to search for evidences that indicate illegal activities. Legal obligations to removing information or to blocking the use of information remain unchallenged. In this case, liability is only possible at the time of knowledge about a specific violation of law. Illegal contents will be removed immediately at the time we get knowledge of them.<\/p>\n<p>    ### Liability for Links<\/p>\n<p>    Our web pages include links to external third party websites. We have no influence on the contents of those external websites, therefore we cannot guarantee for those contents. Providers or administrators of linked websites are always responsible for their own contents. The linked websites had been checked for possible violations of law at the time of the establishment of the link. Illegal contents were not detected at the time of the linking. A permanent monitoring of the contents of linked websites cannot be imposed without reasonable indications that there has been a violation of law. Illegal links will be removed immediately at the time we get knowledge of them.<\/p>\n<p>    ### Copyright<\/p>\n<p>    Contents and compilations published on these websites by the providers are subject to German copyright laws. Reproduction, editing, distribution as well as the use of any kind outside the scope of the copyright law require a written permission of the author or originator. Downloads and copies of these websites are permitted for private use only. The commercial use of our contents without permission of the originator is prohibited. Copyright laws of third parties are respected as long as the contents on these websites do not originate from the provider. Contributions of third parties on this site are indicated as such. However, if you notice any violations of copyright law, please inform us. Such contents will be removed immediately.<\/p>\n<p>\u0628\u0631\u0627\u06cc \u0627\u06cc\u0646 \u0641\u0627\u06cc\u0644 \u0645\u062c\u0645\u0648\u0639\u0647 \u0627\u06cc \u0627\u0632 \u0642\u0631\u0627\u0631\u062f\u0627\u062f\u0647\u0627 \u0648\u062c\u0648\u062f \u062f\u0627\u0631\u062f:<\/p>\n<p>\u06a9\u0644\u06cc\u062f\u0647\u0627\u06cc \u0633\u0637\u062d \u0628\u0627\u0644\u0627 \u0628\u0627\u06cc\u062f \u0632\u0628\u0627\u0646 \u0645\u0639\u062a\u0628\u0631 \u0628\u0627\u0634\u0646\u062f (\u0641\u0642\u0637 \u062f\u0631 \u062d\u0627\u0644 \u062d\u0627\u0636\u0631 de \u0648 en)<br \/>\n\u06a9\u0644\u06cc\u062f\u0647\u0627 \u0645\u06cc \u062a\u0648\u0627\u0646\u0646\u062f \u062a\u0648 \u062f\u0631 \u062a\u0648 \u0628\u0627\u0634\u0646\u062f\u060c \u0628\u0647 \u0639\u0646\u0648\u0627\u0646 \u0645\u062b\u0627\u0644\u060c \u0627\u0634\u06cc\u0627 \/ \u0622\u0631\u0627\u06cc\u0647 \u0647\u0627 \u0645\u062c\u0627\u0632 \u0647\u0633\u062a\u0646\u062f<br \/>\n\u0648\u0642\u062a\u06cc \u06cc\u06a9 \u06a9\u0644\u06cc\u062f \u0628\u0627 \u06cc\u06a9 \u062e\u062a\u0645 \u0645\u06cc \u0634\u0648\u062f $ \u0627\u0645\u0636\u0627 \u06a9\u0646\u06cc\u062f \u06a9\u0647 \u0628\u0647 \u0639\u0646\u0648\u0627\u0646 Markdown \u062a\u0641\u0633\u06cc\u0631 \u0645\u06cc \u0634\u0648\u062f (\u0628\u0647 \u0637\u0648\u0631 \u062e\u0627\u0635\u060c MDX)<\/p>\n<p>\u0641\u0627\u06cc\u0644 MDX \u0628\u0627 \u0686\u0646\u06cc\u0646 \u0641\u0627\u06cc\u0644 \u0633\u0627\u06cc\u062f\u06a9\u0627\u0631 \u0686\u06af\u0648\u0646\u0647 \u0628\u0647 \u0646\u0638\u0631 \u0645\u06cc \u0631\u0633\u062f\u061f<\/p>\n<p>export const meta = {<br \/>\n  title: &#8216;Legal Disclaimer&#8217;,<br \/>\n  legal: &#8216;Legal Disclaimer&#8217;,<br \/>\n};<\/p>\n<p>&lt;section className=&#8221;container&#8221;&gt;<br \/>\n  {locale.content$}<br \/>\n&lt;\/section&gt;<\/p>\n<p>\u062d\u0627\u0644\u0627 \u0627\u06cc\u0646 \u062c\u0630\u0627\u0628 \u0628\u0647 \u0646\u0638\u0631 \u0645\u06cc \u0631\u0633\u062f!<\/p>\n<p>\u0628\u0631\u0627\u06cc \u0627\u062f\u063a\u0627\u0645 \u0628\u0648\u0645\u06cc \u0633\u0627\u0632\u06cc \u0647\u0646\u0648\u0632 \u0628\u0627\u06cc\u062f \u06a9\u0627\u0631\u06cc \u0627\u0646\u062c\u0627\u0645 \u062f\u0647\u06cc\u0645. \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 \u0631\u0627 \u0628\u0628\u06cc\u0646\u06cc\u062f locale \u062f\u0631 \u06a9\u062f \u0628\u0627\u0644\u0627 \u0627\u0645\u0627 \u0686\u06af\u0648\u0646\u0647 \u0645\u06cc \u0634\u0648\u062f locale \u0645\u0646\u0638\u0631\u0647 \u0631\u0627 \u062f\u0631 \u0641\u0627\u06cc\u0644 \u0648\u0627\u0631\u062f \u06a9\u0646\u06cc\u062f\u061f \u0628\u0627\u0644\u0627\u062e\u0631\u0647 \u0645\u0627 \u0622\u0646 \u0631\u0627 \u0646\u0645\u06cc \u0628\u06cc\u0646\u06cc\u0645!<\/p>\n<p>\u0645\u0639\u0644\u0648\u0645 \u0634\u062f \u06a9\u0647 \u0645\u06cc \u062a\u0648\u0627\u0646\u06cc\u0645 \u06a9\u062f \u062a\u0648\u0644\u06cc\u062f \u0634\u062f\u0647 \u0631\u0627 \u062a\u0648\u0633\u0637 MDX \u062f\u0633\u062a\u06a9\u0627\u0631\u06cc \u06a9\u0646\u06cc\u0645. \u0628\u06cc\u0627\u06cc\u06cc\u062f \u0628\u0627 \u0627\u0641\u0632\u0648\u062f\u0646 \u06cc\u06a9 \u0627\u0641\u0632\u0648\u0646\u0647 \u0633\u0641\u0627\u0631\u0634\u06cc \u0628\u0647 \u0627\u0628\u0632\u0627\u0631\u060c \u06a9\u0645\u06cc \u0627\u0628\u0632\u0627\u0631 \u0631\u0627 \u067e\u06cc\u06a9\u0631\u0628\u0646\u062f\u06cc \u06a9\u0646\u06cc\u0645 recmaPlugins \u06af\u0632\u06cc\u0646\u0647 \u0627\u06cc\u0646 \u0628\u0647 \u0645\u0627 \u0627\u062c\u0627\u0632\u0647 \u0645\u06cc \u062f\u0647\u062f \u062a\u0627 \u06a9\u0646\u062a\u0631\u0644 \u06a9\u0627\u0645\u0644\u06cc \u0628\u0631 \u062f\u0631\u062e\u062a \u0646\u062d\u0648 \u0627\u0646\u062a\u0632\u0627\u0639\u06cc \u062a\u0648\u0644\u06cc\u062f \u0634\u062f\u0647 (AST) \u062f\u0627\u0634\u062a\u0647 \u0628\u0627\u0634\u06cc\u0645\u060c \u06a9\u0647 \u0633\u067e\u0633 \u0628\u0631\u0627\u06cc \u062a\u0648\u0644\u06cc\u062f \u06a9\u062f \u0648\u0627\u0642\u0639\u06cc \u0646\u0634\u0627\u0646 \u062f\u0647\u0646\u062f\u0647 \u0641\u0627\u06cc\u0644 MDX \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0645\u06cc \u0634\u0648\u062f.<\/p>\n<p>import codegen from &#8216;vite-plugin-codegen&#8217;;<br \/>\nimport mdx from &#8216;@mdx-js\/rollup&#8217;;<br \/>\nimport { resolve } from &#8216;path&#8217;;<br \/>\nimport localize from &#8216;.\/src\/tools\/localize.mjs&#8217;;<\/p>\n<p>export default {<br \/>\n  build: {<br \/>\n    assetsInlineLimit: 0,<br \/>\n  },<br \/>\n  resolve: {<br \/>\n    alias: {<br \/>\n      &#8216;@&#8217;: resolve(__dirname, &#8216;src&#8217;),<br \/>\n    },<br \/>\n  },<br \/>\n  plugins: [<br \/>\n    codegen(),<br \/>\n    mdx({<br \/>\n      recmaPlugins: [localize],<br \/>\n    }),<br \/>\n  ],<br \/>\n};<\/p>\n<p>\u0648\u0627\u0631\u062f\u0627\u062a\u06cc localize \u062a\u0627\u0628\u0639 \u067e\u0644\u0627\u06af\u06cc\u0646 \u0648\u0627\u0642\u0639\u06cc \u0627\u0633\u062a &#8211; \u06a9\u0647 \u0641\u0642\u0637 \u0639\u0645\u0644\u06a9\u0631\u062f \u062f\u06cc\u06af\u0631\u06cc \u0631\u0627 \u0627\u0631\u0627\u0626\u0647 \u0645\u06cc \u062f\u0647\u062f &#8211; \u0628\u0647 \u0627\u0635\u0637\u0644\u0627\u062d \u062a\u0631\u0627\u0646\u0633\u0641\u0648\u0631\u0645\u0627\u062a\u0648\u0631. \u062a\u0631\u0627\u0646\u0633\u0641\u0648\u0631\u0645\u0627\u062a\u0648\u0631 \u0645\u0633\u0626\u0648\u0644 \u062f\u0633\u062a\u06a9\u0627\u0631\u06cc AST \u0627\u0633\u062a.<\/p>\n<p>\u0631\u0627 transform \u062a\u0627\u0628\u0639 \u062f\u0631 \u0642\u0637\u0639\u0647 \u0628\u0639\u062f\u06cc\u060c AST \u0648 \u0641\u0627\u06cc\u0644 \u0645\u062c\u0627\u0632\u06cc (\u06cc\u0639\u0646\u06cc \u0646\u0627\u0645\u060c \u0645\u062d\u062a\u0648\u0627\u060c &#8230;) \u0641\u0627\u06cc\u0644 MDX \u0631\u0627 \u06a9\u0647 \u062f\u0631 \u062d\u0627\u0644 \u062d\u0627\u0636\u0631 \u062f\u0631 \u062d\u0627\u0644 \u0645\u062f\u06cc\u0631\u06cc\u062a \u0627\u0633\u062a\u060c \u062f\u0631\u06cc\u0627\u0641\u062a \u0645\u06cc \u06a9\u0646\u062f.<\/p>\n<p>\u0628\u06cc\u0627\u06cc\u06cc\u062f \u0642\u0628\u0644 \u0627\u0632 \u0627\u06cc\u0646\u06a9\u0647 \u0628\u0647 \u0627\u06cc\u0646 \u06a9\u062f \u0628\u067e\u0631\u062f\u0627\u0632\u06cc\u0645\u060c \u06a9\u062f \u0631\u0627 \u0628\u0628\u06cc\u0646\u06cc\u0645:<\/p>\n<p>import { compileSync } from &#8216;@mdx-js\/mdx&#8217;;<br \/>\nimport { loadLocale } from &#8216;.\/localization.mjs&#8217;;<\/p>\n<p>function fromMarkdown(content) {<br \/>\n  let result = {};<br \/>\n  compileSync(content, {<br \/>\n    development: false,<br \/>\n    recmaPlugins: [<br \/>\n      () =&gt; (ast) =&gt; {<br \/>\n        const [, fn] = ast.body;<br \/>\n        result = {<br \/>\n          type: &#8216;CallExpression&#8217;,<br \/>\n          optional: false,<br \/>\n          callee: {<br \/>\n            &#8230;fn,<br \/>\n            id: null,<br \/>\n          },<br \/>\n          arguments: [<br \/>\n            {<br \/>\n              type: &#8216;ObjectExpression&#8217;,<br \/>\n              properties: [],<br \/>\n            },<br \/>\n          ],<br \/>\n        };<br \/>\n      },<br \/>\n    ],<br \/>\n  });<\/p>\n<p>  return result;<br \/>\n}<\/p>\n<p>function getExpression(content, key) {<br \/>\n  switch (typeof content) {<br \/>\n    case &#8216;object&#8217;:<br \/>\n      if (Array.isArray(content)) {<br \/>\n        return {<br \/>\n          type: &#8216;ArrayExpression&#8217;,<br \/>\n          elements: content.map((item, i) =&gt; getExpression(item, `${i}`)),<br \/>\n        };<br \/>\n      }<\/p>\n<p>      return {<br \/>\n        type: &#8216;ObjectExpression&#8217;,<br \/>\n        properties: Object.entries(content).map(([name, value]) =&gt; ({<br \/>\n          type: &#8216;Property&#8217;,<br \/>\n          key: {<br \/>\n            type: &#8216;Identifier&#8217;,<br \/>\n            name,<br \/>\n          },<br \/>\n          value: getExpression(value, name),<br \/>\n          kind: &#8216;init&#8217;,<br \/>\n        })),<br \/>\n      };<br \/>\n    case &#8216;number&#8217;:<br \/>\n    case &#8216;boolean&#8217;:<br \/>\n      return {<br \/>\n        type: &#8216;Literal&#8217;,<br \/>\n        value: content,<br \/>\n      };<br \/>\n    case &#8216;string&#8217;:<br \/>\n      if (key.endsWith(&#8216;$&#8217;)) {<br \/>\n        \/\/ uses potentially markdown<br \/>\n        return fromMarkdown(content);<br \/>\n      }<\/p>\n<p>      return {<br \/>\n        type: &#8216;Literal&#8217;,<br \/>\n        value: content,<br \/>\n      };<br \/>\n    case &#8216;undefined&#8217;:<br \/>\n    default:<br \/>\n      return {<br \/>\n        type: &#8216;Literal&#8217;,<br \/>\n        value: null,<br \/>\n      };<br \/>\n  }<br \/>\n}<\/p>\n<p>async function transform(ast, vfile) {<br \/>\n  const language = process.env.WEBSITE_LOCALE || &#8216;en&#8217;;<\/p>\n<p>  const source = vfile.history[0];<br \/>\n  const locale = await loadLocale(source, language);<\/p>\n<p>  const idx = ast.body.findLastIndex((m) =&gt; m.type === &#8216;ImportDeclaration&#8217;);<br \/>\n  const imprt = ast.body.find((node) =&gt; node.type === &#8216;ImportDeclaration&#8217; &amp;&amp; node.source.value === &#8216;react\/jsx-runtime&#8217;);<\/p>\n<p>  const requiredImports = [<br \/>\n    [&#8216;_jsx&#8217;, &#8216;jsx&#8217;],<br \/>\n    [&#8216;_jsxs&#8217;, &#8216;jsxs&#8217;],<br \/>\n    [&#8216;_Fragment&#8217;, &#8216;Fragment&#8217;],<br \/>\n  ];<\/p>\n<p>  for (const requiredImport of requiredImports) {<br \/>\n    const [alias, original] = requiredImport;<\/p>\n<p>    if (!imprt.specifiers.find((node) =&gt; node.type === &#8216;ImportSpecifier&#8217; &amp;&amp; node.imported.name === original)) {<br \/>\n      imprt.specifiers.push({<br \/>\n        type: &#8216;ImportSpecifier&#8217;,<br \/>\n        imported: {<br \/>\n          type: &#8216;Identifier&#8217;,<br \/>\n          name: original,<br \/>\n        },<br \/>\n        local: {<br \/>\n          type: &#8216;Identifier&#8217;,<br \/>\n          name: alias,<br \/>\n        },<br \/>\n      });<br \/>\n    }<br \/>\n  }<\/p>\n<p>  ast.body.splice(idx + 1, 0, {<br \/>\n    type: &#8216;VariableDeclaration&#8217;,<br \/>\n    kind: &#8216;const&#8217;,<br \/>\n    declarations: [<br \/>\n      {<br \/>\n        type: &#8216;VariableDeclarator&#8217;,<br \/>\n        id: {<br \/>\n          type: &#8216;Identifier&#8217;,<br \/>\n          name: &#8216;locale&#8217;,<br \/>\n        },<br \/>\n        init: getExpression(locale, language),<br \/>\n      },<br \/>\n    ],<br \/>\n  });<br \/>\n}<\/p>\n<p>const plugin = () =&gt; transform;<\/p>\n<p>export default plugin;<\/p>\n<p>\u0628\u0647 \u0646\u0638\u0631 \u067e\u06cc\u0686\u06cc\u062f\u0647 \u062a\u0631 \u0627\u0632 \u0622\u0646 \u0686\u06cc\u0632\u06cc \u0627\u0633\u062a \u06a9\u0647 \u0628\u0627\u06cc\u062f \u0628\u0627\u0634\u062f! \u062f\u0631 \u067e\u0627\u06cc\u0627\u0646\u060c \u0647\u0645\u0647 \u0686\u06cc\u0632 \u0628\u0647 \u062a\u063a\u06cc\u06cc\u0631 AST \u062e\u0644\u0627\u0635\u0647 \u0645\u06cc \u0634\u0648\u062f<\/p>\n<p>\u0628\u062f\u0633\u062a \u0622\u0648\u0631\u062f\u0646 locale \u0628\u0631\u0627\u06cc \u0633\u0646\u062f<br \/>\n\u0648\u0627\u0631\u062f \u06a9\u0631\u062f\u0646 \u0646\u0627\u0645 \u0628\u0627\u0644\u0642\u0648\u0647 \u06af\u0645\u0634\u062f\u0647 (\u0628\u0631\u0627\u06cc \u067e\u0634\u062a\u06cc\u0628\u0627\u0646\u06cc \u06a9\u0627\u0645\u0644 \u0627\u0632 Markdown \/ \u0645\u062d\u062a\u0648\u0627\u06cc \u062a\u0648\u0644\u06cc\u062f \u0634\u062f\u0647\u060c \u062f\u0631 \u0635\u0648\u0631\u062a \u0648\u062c\u0648\u062f) \u062f\u0631 react\/jsx-runtime \u0648\u0627\u0631\u062f\u0627\u062a<br \/>\n\u062f\u0631\u062c \u06a9\u0646\u06cc\u062f locale \u0627\u0639\u0644\u0627\u0645\u06cc\u0647 &#8211; \u0627\u0648\u0644\u06cc\u0646 \u0686\u06cc\u0632 \u0628\u0639\u062f \u0627\u0632 \u0648\u0627\u0631\u062f\u0627\u062a (\u0627\u0632 \u0627\u06cc\u0646 \u0637\u0631\u06cc\u0642 \u0645\u06cc \u062a\u0648\u0627\u0646\u06cc\u062f \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u06a9\u0646\u06cc\u062f locale \u062a\u0642\u0631\u06cc\u0628\u0627\u064b \u062f\u0631 \u0647\u0645\u0647 \u062c\u0627\u06cc \u0633\u0646\u062f<br \/>\n\u0645\u0642\u062f\u0627\u0631\u062f\u0647\u06cc \u0627\u0648\u0644\u06cc\u0647 locale \u0645\u062a\u063a\u06cc\u0631 \u0634\u06cc\u0626\u06cc \u0628\u0627\u0634\u062f \u06a9\u0647 \u0645\u06cc \u0634\u0646\u0627\u0633\u06cc\u0645. \u0628\u0647 \u0627\u0633\u062a\u062b\u0646\u0627\u06cc \u0631\u0634\u062a\u0647 \u0647\u0627\u06cc Markdown (\u067e\u0633\u0648\u0646\u062f \u0628\u0627 $): \u0627\u06cc\u0646\u0647\u0627 \u0628\u0647 \u06cc\u06a9 IIFE \u062a\u0628\u062f\u06cc\u0644 \u0645\u06cc \u0634\u0648\u0646\u062f \u06a9\u0647 \u06a9\u062f MDX \u0627\u0635\u0644\u06cc \u0631\u0627 \u062d\u0641\u0638 \u0645\u06cc \u06a9\u0646\u062f<\/p>\n<p>\u06cc\u06a9 \u0631\u0627\u0647 \u062e\u0648\u0628 \u0628\u0631\u0627\u06cc \u062f\u06cc\u062f\u0646 \u06a9\u0627\u0631\u0647\u0627\u06cc\u06cc \u06a9\u0647 \u0627\u0646\u062c\u0627\u0645 \u0645\u06cc \u062f\u0647\u06cc\u0645 \u0631\u0627 \u0645\u06cc \u062a\u0648\u0627\u0646 \u0628\u0627 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 \u0632\u0645\u06cc\u0646 \u0628\u0627\u0632\u06cc MDX \u0645\u0634\u0627\u0647\u062f\u0647 \u06a9\u0631\u062f.<\/p>\n<p>\u0647\u0645\u0627\u0646\u0637\u0648\u0631 \u06a9\u0647 \u0645\u06cc \u0628\u06cc\u0646\u06cc\u062f \u06a9\u062f \u06a9\u0627\u0645\u067e\u0627\u06cc\u0644 \u0634\u062f\u0647 \u06a9\u0645\u06cc \u0639\u062c\u06cc\u0628 \u0627\u0633\u062a\u060c \u0627\u0645\u0627 \u0645\u06cc \u062a\u0648\u0627\u0646\u062f \u0628\u0647 \u062e\u0648\u0628\u06cc \u0628\u0647 \u0641\u0627\u06cc\u0644 MDX \u0627\u0635\u0644\u06cc \u0645\u0627 \u0646\u06af\u0627\u0634\u062a \u0634\u0648\u062f.<\/p>\n<p>\u062f\u0631 \u0645\u0642\u0627\u0628\u0644\u060c \u062f\u06cc\u062f\u06af\u0627\u0647\u06cc \u06a9\u0647 \u062f\u0631 \u0648\u0627\u0642\u0639 \u0628\u06cc\u0634\u062a\u0631 \u0628\u0647 \u0622\u0646 \u0639\u0644\u0627\u0642\u0647 \u062f\u0627\u0631\u06cc\u0645\u060c \u0645\u0631\u062d\u0644\u0647 \u0642\u0628\u0644 \u0627\u0632 \u0642\u0631\u0627\u0631 \u06af\u0631\u0641\u062a\u0646 \u06a9\u062f \u062f\u0631 \u0622\u0646 \u062d\u0627\u0644\u062a \u06a9\u0627\u0645\u067e\u0627\u06cc\u0644 \u0634\u062f\u0647 \u0627\u0633\u062a. \u0627\u06cc\u0646 \u0646\u0645\u0627\u06cc &#8220;east&#8221; \u062f\u0631 \u0632\u0645\u06cc\u0646 \u0628\u0627\u0632\u06cc \u0627\u0633\u062a (\u06cc\u0639\u0646\u06cc AST \u0635\u062d\u0646\u0647 ESTree).<\/p>\n<p>\u0686\u06cc\u0632\u06cc \u06a9\u0647 \u0645\u06cc \u062e\u0648\u0627\u0647\u06cc\u0645 \u0628\u0627 \u0627\u0641\u0632\u0648\u0646\u0647 \u062e\u0648\u062f \u0628\u0647 \u062f\u0633\u062a \u0622\u0648\u0631\u06cc\u0645 \u0627\u06cc\u0646 \u0627\u0633\u062a \u06a9\u0647 \u0634\u0631\u0648\u0639 \u0631\u0627 \u062f\u0633\u062a\u06a9\u0627\u0631\u06cc \u0645\u06cc \u06a9\u0646\u06cc\u0645. \u0645\u062a\u0623\u0633\u0641\u0627\u0646\u0647\u060c \u0628\u0647 \u0637\u0648\u0631 \u0645\u0633\u062a\u0642\u06cc\u0645 \u062f\u0631 \u06a9\u062f MDX \u0645\u0627 \u0628\u0627\u06cc\u062f \u0627\u0632 \u06cc\u06a9 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u06a9\u0646\u06cc\u0645 export \u0628\u0631\u0627\u06cc \u0622\u0646\u060c \u0627\u0645\u0627 \u0628\u0627 \u062f\u0633\u062a\u06a9\u0627\u0631\u06cc \u0645\u0633\u062a\u0642\u06cc\u0645 AST \u0645\u0627 \u062f\u0631 \u0648\u0627\u0642\u0639 \u0628\u0647 \u0622\u0646 \u0646\u06cc\u0627\u0632 \u0646\u062f\u0627\u0631\u06cc\u0645.<\/p>\n<p>\u0628\u0631\u0627\u06cc \u0628\u0647 \u062f\u0633\u062a \u0622\u0648\u0631\u062f\u0646 locale \u0645\u062a\u063a\u06cc\u0631 \/ \u0634\u06cc \u0645\u0627 loadLocale \u0639\u0645\u0644\u06a9\u0631\u062f \u0627\u0632 \u06cc\u06a9 \u0645\u0627\u0698\u0648\u0644 \u0627\u062e\u062a\u0635\u0627\u0635\u06cc<\/p>\n<p>\u0627\u06cc\u0646 \u0645\u0627\u0698\u0648\u0644 \u0627\u0646\u062c\u0627\u0645 \u0645\u06cc \u062f\u0647\u062f:<\/p>\n<p>\u062a\u0631\u062c\u0645\u0647 \u0647\u0627\u06cc \u062e\u0627\u0635 \u0645\u062d\u0644\u06cc \/ \u0641\u0627\u06cc\u0644 \u0631\u0627 \u0628\u062e\u0648\u0627\u0646\u06cc\u062f \u0648 \u062a\u062c\u0632\u06cc\u0647 \u06a9\u0646\u06cc\u062f<br \/>\n\u062a\u0631\u062c\u0645\u0647 \u0647\u0627\u06cc \u0632\u0628\u0627\u0646 \u062e\u0627\u0635 \u0641\u0627\u06cc\u0644 \u0645\u062d\u0644\u06cc \u0631\u0627 \u062f\u0631\u06cc\u0627\u0641\u062a \u06a9\u0646\u06cc\u062f<br \/>\n\u062a\u0631\u062c\u0645\u0647 \u0647\u0627\u06cc \u062c\u0647\u0627\u0646\u06cc \u0631\u0627 \u0628\u062e\u0648\u0627\u0646\u06cc\u062f \u0648 \u062a\u062c\u0632\u06cc\u0647 \u06a9\u0646\u06cc\u062f<br \/>\n\u062a\u0631\u062c\u0645\u0647 \u0647\u0627\u06cc \u0632\u0628\u0627\u0646 \u062e\u0627\u0635 \u0641\u0627\u06cc\u0644 \u0633\u0631\u0627\u0633\u0631\u06cc \u0631\u0627 \u062f\u0631\u06cc\u0627\u0641\u062a \u06a9\u0646\u06cc\u062f<br \/>\n\u0627\u062f\u063a\u0627\u0645 \u0628\u0627 \u062a\u0631\u062c\u0645\u0647 \u0647\u0627\u06cc \u0645\u062d\u0644\u06cc \u06a9\u0647 \u0628\u0627\u0644\u0627\u062a\u0631 \u062f\u0631 \u0646\u0638\u0631 \u06af\u0631\u0641\u062a\u0647 \u0645\u06cc \u0634\u0648\u0646\u062f<\/p>\n<p>\u0628\u0631\u0627\u06cc \u0628\u0647 \u062f\u0633\u062a \u0622\u0648\u0631\u062f\u0646 \u062a\u0631\u062c\u0645\u0647 \u0647\u0627\u06cc \u062e\u0627\u0635 \u0632\u0628\u0627\u0646\u060c \u0645\u0627 \u06cc\u06a9 \u062a\u0631\u062c\u0645\u0647 \u067e\u0627\u06cc\u0647 \u0631\u0627 \u0627\u0646\u062a\u062e\u0627\u0628 \u0645\u06cc \u06a9\u0646\u06cc\u0645 (\u062f\u0631 \u0645\u0648\u0631\u062f \u0645\u0627 en) \u0648 \u0627\u0632 \u0637\u0631\u06cc\u0642 \u0634\u06cc &#8220;\u0631\u0627\u0647 \u0628\u0631\u0648\u06cc\u062f&#8221;. \u0632\u0628\u0627\u0646 \u0641\u0639\u0644\u06cc (\u0628\u06af\u0630\u0631\u06cc\u0645 de) \u0633\u067e\u0633 \u06cc\u0627 \u062a\u0631\u062c\u0645\u0647 \u067e\u0627\u06cc\u0647 \u0631\u0627 \u0644\u063a\u0648 \u0645\u06cc \u06a9\u0646\u062f \u06cc\u0627 \u0641\u0642\u0637 \u0627\u0632 \u0642\u0637\u0639\u0647 \u0628\u0647 \u062f\u0633\u062a \u0622\u0645\u062f\u0647 \u0627\u0632 \u062a\u0631\u062c\u0645\u0647 \u067e\u0627\u06cc\u0647 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0645\u06cc \u06a9\u0646\u062f.<\/p>\n<p>\u0634\u0645\u0627 \u0645\u06cc \u062a\u0648\u0627\u0646\u06cc\u062f \u0627\u06cc\u0646 \u0641\u0631\u0622\u06cc\u0646\u062f \u0631\u0627 \u0628\u0647 \u0639\u0646\u0648\u0627\u0646 \u06cc\u06a9 \u0627\u062f\u063a\u0627\u0645 \u0639\u0645\u06cc\u0642 \u0628\u0627 \u062a\u0631\u062c\u0645\u0647 \u0627\u0635\u0644\u06cc \u06a9\u0647 \u062a\u0631\u062c\u0645\u0647 \u0627\u0635\u0644\u06cc \u0627\u0633\u062a \u062f\u0631 \u0646\u0638\u0631 \u0628\u06af\u06cc\u0631\u06cc\u062f.<\/p>\n<p>import { readFile } from &#8216;fs\/promises&#8217;;<br \/>\nimport { resolve } from &#8216;path&#8217;;<br \/>\nimport { parse } from &#8216;yaml&#8217;;<\/p>\n<p>async function getLocalization(path) {<br \/>\n  try {<br \/>\n    const content = await readFile(path, &#8216;utf8&#8217;);<br \/>\n    return parse(content);<br \/>\n  } catch (e) {<br \/>\n    console.error(&#8216;Error reading YAML file:&#8217;, e);<br \/>\n    return {};<br \/>\n  }<br \/>\n}<\/p>\n<p>function mergeLocale(result, baseLocale, newLocale) {<br \/>\n  if (!newLocale) {<br \/>\n    Object.assign(result, baseLocale);<br \/>\n  } else {<br \/>\n    Object.entries(baseLocale).forEach(([name, value]) =&gt; {<br \/>\n      const c = newLocale[name];<\/p>\n<p>      if (typeof value === &#8216;object&#8217;) {<br \/>\n        mergeLocale((result[name] = {}), value, c || {});<br \/>\n      } else if (typeof c === &#8216;string&#8217; || c) {<br \/>\n        result[name] = c;<br \/>\n      } else {<br \/>\n        result[name] = value;<br \/>\n      }<br \/>\n    });<br \/>\n  }<\/p>\n<p>  return result;<br \/>\n}<\/p>\n<p>function getLocale(locales, lang) {<br \/>\n  const baseLocale = locales.en || {};<\/p>\n<p>  if (lang !== &#8216;en&#8217; &amp;&amp; lang in locales) {<br \/>\n    const newLocale = locales[lang] || {};<br \/>\n    return mergeLocale({}, baseLocale, newLocale);<br \/>\n  }<\/p>\n<p>  return baseLocale;<br \/>\n}<\/p>\n<p>export async function loadLocale(source, language) {<br \/>\n  if (source.endsWith(&#8216;.mdx&#8217;)) {<br \/>\n    const globalFn = resolve(import.meta.dirname, &#8216;..&#8217;, &#8216;global.yml&#8217;);<br \/>\n    const targetFn = source.replace(&#8216;.mdx&#8217;, &#8216;.yml&#8217;);<\/p>\n<p>    const globals = await getLocalization(globalFn);<br \/>\n    const locales = await getLocalization(targetFn);<\/p>\n<p>    return {<br \/>\n      &#8230;getLocale(globals, language),<br \/>\n      &#8230;getLocale(locales, language),<br \/>\n      language,<br \/>\n    };<br \/>\n  }<\/p>\n<p>  return { language };<br \/>\n}<\/p>\n<p>\u062a\u0631\u062c\u0645\u0647 \u0647\u0627\u06cc \u0633\u0631\u0627\u0633\u0631\u06cc \u062f\u0631 \u067e\u0648\u0634\u0647 \u0628\u0627\u0644\u0627 \u0642\u0631\u0627\u0631 \u0645\u06cc \u06af\u06cc\u0631\u0646\u062f pages. \u0646\u0627\u0645 \u0641\u0627\u06cc\u0644 \u0627\u0633\u062a global.yml.<\/p>\n<p>\u0628\u0631\u0627\u06cc global.yml \u0645\u0627 \u0641\u0642\u0637 \u0628\u0631\u062e\u06cc \u0627\u0632 \u0627\u0635\u0637\u0644\u0627\u062d\u0627\u062a \u062a\u0631\u062c\u0645\u0647 \u0628\u0633\u06cc\u0627\u0631 \u0631\u0627\u06cc\u062c \u0631\u0627 \u0630\u062e\u06cc\u0631\u0647 \u06a9\u0631\u062f\u0647 \u0627\u06cc\u0645. \u06cc\u06a9 \u0645\u062b\u0627\u0644:<\/p>\n<p>de:<br \/>\n  germany: Deutschland<br \/>\nen:<br \/>\n  germany: Germany<\/p>\n<p>\u0632\u0645\u0627\u0646\u06cc \u06a9\u0647 \u062a\u0631\u062c\u0645\u0647\u200c\u0647\u0627\u06cc \u062c\u062f\u06cc\u062f \u0645\u06cc\u200c\u0622\u06cc\u0646\u062f\u060c \u0641\u0642\u0637 \u0645\u06cc\u200c\u062a\u0648\u0627\u0646\u06cc\u062f \u06cc\u06a9 \u0641\u0627\u06cc\u0644 \u0631\u0627 \u062a\u063a\u06cc\u06cc\u0631 \u062f\u0647\u06cc\u062f (\u06cc\u0627 \u0641\u0642\u0637 \u062a\u063a\u06cc\u06cc\u0631 \u0633\u0627\u062e\u062a\u0627\u0631 \u062f\u0631 \u06cc\u06a9 \u0645\u06a9\u0627\u0646 \u0645\u0633\u062a\u0642\u0644 \u0627\u0632 \u062a\u063a\u06cc\u06cc\u0631\u0627\u062a \u0632\u0628\u0627\u0646) \u06a9\u0627\u0631 \u0628\u0632\u0631\u06af\u06cc \u0627\u0633\u062a. \u0628\u0631\u0627\u06cc \u0645\u0627 \u0627\u06cc\u0646 \u0628\u0633\u06cc\u0627\u0631 \u0645\u0647\u0645 \u0628\u0648\u062f \u0648 \u0633\u0627\u062e\u062a\u0627\u0631 \u062c\u062f\u06cc\u062f \u0646\u0634\u0627\u0646 \u062f\u0647\u0646\u062f\u0647 \u0622\u0646 \u0627\u0633\u062a.<\/p>\n<p>  \u0646\u062a\u06cc\u062c\u0647 \u06af\u06cc\u0631\u06cc<\/p>\n<p>\u0628\u0627 \u0631\u0648\u06cc\u06a9\u0631\u062f \u062c\u062f\u06cc\u062f\u060c \u0646\u0648\u0634\u062a\u0646 \u0635\u0641\u062d\u0627\u062a \u0628\u0633\u06cc\u0627\u0631 \u0622\u0633\u0627\u0646 \u062a\u0631 \u0627\u0632 \u0642\u0628\u0644 \u0627\u0633\u062a. \u0647\u0645\u0686\u0646\u06cc\u0646\u060c \u0627\u0632 \u0622\u0646\u062c\u0627\u06cc\u06cc \u06a9\u0647 \u0645\u0627 \u0627\u06a9\u0646\u0648\u0646 \u06cc\u06a9 \u0633\u06cc\u0633\u062a\u0645 \u062a\u0631\u062c\u0645\u0647 \u062b\u0627\u0628\u062a \u062f\u0627\u0631\u06cc\u0645\u060c \u0646\u06cc\u0627\u0632\u06cc \u0628\u0647 \u06a9\u067e\u06cc \u06a9\u0631\u062f\u0646 \u0635\u0641\u062d\u0627\u062a \u06cc\u0627 \u0627\u0631\u0627\u0626\u0647 \u0633\u06cc\u0633\u062a\u0645 \u067e\u06cc\u0686\u06cc\u062f\u0647 \u0628\u0631\u0627\u06cc \u0627\u062c\u0632\u0627\u06cc \u0645\u06cc\u0627\u0646\u06cc \u0646\u062f\u0627\u0631\u06cc\u0645. \u0647\u0645\u0647 \u0627\u06cc\u0646\u0647\u0627 \u0642\u0628\u0644\u0627\u064b \u062f\u0631 \u0632\u0645\u0627\u0646 \u06a9\u0627\u0645\u067e\u0627\u06cc\u0644 \u062f\u0631 \u0633\u0627\u062e\u062a\u0627\u0631 \u062f\u0627\u062f\u0647 \u0634\u062f\u0647 \u0627\u0646\u062c\u0627\u0645 \u0634\u062f\u0647 \u0627\u0633\u062a.<\/p>\n<p>\u062f\u0631 \u0633\u0627\u0644\u200c\u0647\u0627\u06cc \u0627\u062e\u06cc\u0631 \u0646\u06cc\u0627\u0632 \u0628\u0647 \u0642\u0627\u0644\u0628\u06cc \u0622\u0633\u0627\u0646 \u0648 \u062f\u0631 \u0639\u06cc\u0646 \u062d\u0627\u0644 \u0627\u0646\u0639\u0637\u0627\u0641\u200c\u067e\u0630\u06cc\u0631 \u0628\u0631\u0627\u06cc \u0645\u062d\u062a\u0648\u0627\u06cc \u062b\u0627\u0628\u062a \u0633\u0627\u062f\u0647 \u0627\u0641\u0632\u0627\u06cc\u0634 \u06cc\u0627\u0641\u062a\u0647 \u0627\u0633\u062a. \u062f\u0631 \u0627\u0635\u0644\u060c HTML \u0628\u0631\u0627\u06cc \u0622\u0646 \u062f\u0631 \u0646\u0638\u0631 \u06af\u0631\u0641\u062a\u0647 \u0634\u062f\u0647 \u0628\u0648\u062f &#8211; \u0627\u0645\u0627 \u0628\u06cc\u0627\u06cc\u06cc\u062f \u0635\u0627\u062f\u0642 \u0628\u0627\u0634\u06cc\u0645: \u0646\u0647 \u0633\u0627\u062f\u0647 \u0627\u0633\u062a \u0648 \u0646\u0647 \u0627\u0646\u0639\u0637\u0627\u0641 \u067e\u0630\u06cc\u0631. \u067e\u06cc\u0634\u0646\u0647\u0627\u062f\u0647\u0627\u06cc \u062c\u0627\u06cc\u06af\u0632\u06cc\u0646 \u0632\u06cc\u0627\u062f\u06cc \u0648\u062c\u0648\u062f \u062f\u0627\u0631\u062f &#8211; \u062a\u0642\u0631\u06cc\u0628\u0627\u064b \u0647\u0631 CMS \u0628\u0627 \u0644\u0647\u062c\u0647 \u062e\u0627\u0635 \u062e\u0648\u062f \u0627\u0631\u0627\u0626\u0647 \u0645\u06cc \u0634\u0648\u062f.<\/p>\n<p>\u06cc\u06a9\u06cc \u0627\u0632 \u0631\u0642\u0628\u0627\u06cc \u062e\u0648\u0628 \u0628\u0631\u0627\u06cc \u0645\u062d\u062a\u0648\u0627\u06cc \u062b\u0627\u0628\u062a \u06a9\u0647 \u0645\u06cc \u062a\u0648\u0627\u0646\u062f \u0628\u0647 \u062e\u0648\u0628\u06cc \u062e\u0648\u0627\u0646\u062f\u0647 \u0634\u0648\u062f \u0648 \u0627\u0631\u0627\u0626\u0647 \u0634\u0648\u062f\u060c Markdown \u0627\u0633\u062a. \u0628\u0627 \u0627\u06cc\u0646 \u062d\u0627\u0644\u060c \u06a9\u0627\u0633\u062a\u06cc \u0647\u0627\u06cc \u0628\u0633\u06cc\u0627\u0631 \u06a9\u0645\u06cc \u062f\u0627\u0631\u062f. \u0645\u0647\u0645\u062a\u0631 \u0627\u0632 \u0647\u0645\u0647\u060c Markdown \u0628\u0647 \u0637\u0648\u0631 \u06a9\u0627\u0645\u0644 \u0645\u0634\u062e\u0635 \u0646\u0634\u062f\u0647 \u0627\u0633\u062a &#8211; \u0645\u0646\u062c\u0631 \u0628\u0647 \u06af\u0648\u06cc\u0634 \u0647\u0627\u06cc \u0645\u062a\u0639\u062f\u062f\u06cc \u0645\u06cc \u0634\u0648\u062f \u06a9\u0647 \u0648\u062c\u0648\u062f \u062f\u0627\u0631\u062f. \u0639\u0644\u0627\u0648\u0647 \u0628\u0631 \u0627\u06cc\u0646\u060c \u0628\u0633\u06cc\u0627\u0631\u06cc \u0627\u0632 \u0686\u06cc\u0632\u0647\u0627\u06cc \u0636\u0631\u0648\u0631\u06cc \u0641\u0642\u0637 \u0628\u0647 \u0635\u0648\u0631\u062a \u067e\u0633\u0648\u0646\u062f\u0647\u0627\u06cc \u063a\u06cc\u0631 \u0627\u0633\u062a\u0627\u0646\u062f\u0627\u0631\u062f \u062f\u0631 \u062f\u0633\u062a\u0631\u0633 \u0647\u0633\u062a\u0646\u062f. \u062f\u0631 \u0646\u0647\u0627\u06cc\u062a\u060c \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 \u0627\u062c\u0632\u0627\u06cc \u0633\u0641\u0627\u0631\u0634\u06cc \u062f\u0631 Markdown \u0627\u0645\u06a9\u0627\u0646 \u067e\u0630\u06cc\u0631 \u0646\u06cc\u0633\u062a.<\/p>\n<p>\u0627\u06cc\u0646\u062c\u0627\u0633\u062a \u06a9\u0647 MDX \u0648\u0627\u0631\u062f \u0639\u0645\u0644 \u0645\u06cc \u0634\u0648\u062f. \u0627\u06cc\u0646 \u062f\u0631 \u0627\u0635\u0644 \u062a\u0631\u06a9\u06cc\u0628\u06cc \u0627\u0632 JSX \/ React \u0648 \u06af\u0648\u06cc\u0634 \u0645\u0634\u062e\u0635 Markdown \u0627\u0633\u062a. \u0627\u0633\u0627\u0633\u0627\u064b\u060c \u0627\u06cc\u0646 \u0627\u062c\u0627\u0632\u0647 \u0645\u06cc \u062f\u0647\u062f \u062a\u0627 \u0645\u062a\u0646 \u0647\u0627\u06cc\u06cc \u0631\u0627 \u0628\u0646\u0648\u06cc\u0633\u06cc\u062f \u06a9\u0647 \u0628\u0647 \u0633\u0627\u062f\u06af\u06cc Markdown \u0633\u0627\u062f\u0647 \u0647\u0633\u062a\u0646\u062f \u0648 \u0647\u0645\u0686\u0646\u06cc\u0646 \u0627\u062c\u0632\u0627\u06cc \u067e\u06cc\u0686\u06cc\u062f\u0647 \u0627\u06cc \u0631\u0627 \u06a9\u0647 \u0645\u0645\u06a9\u0646 \u0627\u0633\u062a \u062f\u0631 JSX \u06a9\u0627\u0645\u0644 \u0627\u0646\u062c\u0627\u0645 \u062f\u0627\u062f\u0647 \u0628\u0627\u0634\u06cc\u062f \u0627\u06cc\u062c\u0627\u062f \u06a9\u0646\u06cc\u062f.<\/p>\n<div id=\"ez-toc-container\" class=\"ez-toc-v2_0_85 counter-hierarchy ez-toc-counter-rtl ez-toc-grey ez-toc-container-direction\">\n<div class=\"ez-toc-title-container\">\n<p class=\"ez-toc-title\" style=\"cursor:inherit\">\u0641\u0647\u0631\u0633\u062a \u0645\u0637\u0627\u0644\u0628<\/p>\n<span class=\"ez-toc-title-toggle\"><a href=\"#\" class=\"ez-toc-pull-right ez-toc-btn ez-toc-btn-xs ez-toc-btn-default ez-toc-toggle\" aria-label=\"Toggle Table of Content\"><span class=\"ez-toc-js-icon-con\"><span class=\"\"><span class=\"eztoc-hide\" style=\"display:none;\">Toggle<\/span><span class=\"ez-toc-icon-toggle-span\"><svg style=\"fill: #999;color:#999\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" class=\"list-377408\" width=\"20px\" height=\"20px\" viewBox=\"0 0 24 24\" fill=\"none\"><path d=\"M6 6H4v2h2V6zm14 0H8v2h12V6zM4 11h2v2H4v-2zm16 0H8v2h12v-2zM4 16h2v2H4v-2zm16 0H8v2h12v-2z\" fill=\"currentColor\"><\/path><\/svg><svg style=\"fill: #999;color:#999\" class=\"arrow-unsorted-368013\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"10px\" height=\"10px\" viewBox=\"0 0 24 24\" version=\"1.2\" baseProfile=\"tiny\"><path d=\"M18.2 9.3l-6.2-6.3-6.2 6.3c-.2.2-.3.4-.3.7s.1.5.3.7c.2.2.4.3.7.3h11c.3 0 .5-.1.7-.3.2-.2.3-.5.3-.7s-.1-.5-.3-.7zM5.8 14.7l6.2 6.3 6.2-6.3c.2-.2.3-.5.3-.7s-.1-.5-.3-.7c-.2-.2-.4-.3-.7-.3h-11c-.3 0-.5.1-.7.3-.2.2-.3.5-.3.7s.1.5.3.7z\"\/><\/svg><\/span><\/span><\/span><\/a><\/span><\/div>\n<nav><ul class='ez-toc-list ez-toc-list-level-1 ' ><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-1\" href=\"https:\/\/nabfollower.com\/blog\/mdx-with-translations-157c\/#%D8%B3%D8%A7%D8%AE%D8%AA%D8%A7%D8%B1_%D9%88%D8%A8_%D8%B3%D8%A7%DB%8C%D8%AA\" >\u0633\u0627\u062e\u062a\u0627\u0631 \u0648\u0628 \u0633\u0627\u06cc\u062a<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-2\" href=\"https:\/\/nabfollower.com\/blog\/mdx-with-translations-157c\/#%D8%A7%D8%AF%D8%BA%D8%A7%D9%85_MDX\" >\u0627\u062f\u063a\u0627\u0645 MDX<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-3\" href=\"https:\/\/nabfollower.com\/blog\/mdx-with-translations-157c\/#%D8%A7%D8%B1%D8%A7%D8%A6%D9%87_%D8%AA%D8%B1%D8%AC%D9%85%D9%87\" >\u0627\u0631\u0627\u0626\u0647 \u062a\u0631\u062c\u0645\u0647<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-4\" href=\"https:\/\/nabfollower.com\/blog\/mdx-with-translations-157c\/#%D9%86%D8%AA%DB%8C%D8%AC%D9%87_%DA%AF%DB%8C%D8%B1%DB%8C\" >\u0646\u062a\u06cc\u062c\u0647 \u06af\u06cc\u0631\u06cc<\/a><\/li><\/ul><\/nav><\/div>\n<h2><span class=\"ez-toc-section\" id=\"%D8%B3%D8%A7%D8%AE%D8%AA%D8%A7%D8%B1_%D9%88%D8%A8_%D8%B3%D8%A7%DB%8C%D8%AA\"><\/span>\n<p>  \u0633\u0627\u062e\u062a\u0627\u0631 \u0648\u0628 \u0633\u0627\u06cc\u062a<br \/>\n<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>\u0645\u0627 \u0628\u0631 \u0627\u0633\u0627\u0633 \u0633\u0627\u062e\u062a\u0627\u0631\u06cc \u06a9\u0647 \u062f\u0631 \u0635\u0641\u062d\u0627\u062a \u0633\u0631\u06cc\u0639\u062a\u0631 \u0645\u0642\u0627\u0644\u0647 \u0627\u062e\u06cc\u0631 \u0645\u0646\u062a\u0634\u0631 \u0634\u062f\u0647 \u062e\u0648\u062f \u0628\u0627 React \u0648 \u067e\u0633\u062a \u0648\u0628\u0644\u0627\u06af \u0627\u0635\u0644\u06cc \u062e\u0648\u062f \u062f\u0631 \u0633\u0627\u0644 2019 \u062a\u0646\u0638\u06cc\u0645 \u0634\u062f\u0647 \u0627\u0633\u062a. \u062f\u0631 \u0627\u06cc\u0646 \u0633\u0627\u062e\u062a\u0627\u0631\u060c \u0647\u0645\u0647 \u0635\u0641\u062d\u0627\u062a \u0631\u0627 \u0628\u0627 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 React \u0628\u0631\u0627\u06cc \u0647\u0631 \u0635\u0641\u062d\u0647 \u0628\u0647 \u062a\u0631\u062a\u06cc\u0628 \u0646\u0633\u0628\u06cc \u0645\u0633\u06cc\u0631 \u062e\u0648\u062f \u0642\u0631\u0627\u0631 \u062f\u0627\u062f\u0647 \u0627\u06cc\u0645:<\/p>\n<p><\/p>\n<p>\u0627\u06a9\u0646\u0648\u0646 \u062f\u0648 \u0686\u06cc\u0632 \u0648\u062c\u0648\u062f \u062f\u0627\u0631\u062f \u06a9\u0647 \u0645\u06cc \u062e\u0648\u0627\u0647\u06cc\u0645 \u0628\u0647 \u0622\u0646\u0647\u0627 \u0631\u0633\u06cc\u062f\u06af\u06cc \u06a9\u0646\u06cc\u0645:<\/p>\n<ol>\n<li>\u0646\u0648\u0634\u062a\u0646 \u0645\u062d\u062a\u0648\u0627 (\u0648 \u062e\u0648\u0627\u0646\u062f\u0646) \u0631\u0627 \u0628\u0631\u0627\u06cc \u0647\u0631 \u06a9\u0627\u0631\u0645\u0646\u062f \u062f\u0631 smapiot \u0628\u0647\u0628\u0648\u062f \u0628\u062e\u0634\u06cc\u062f<\/li>\n<li>\u0633\u0627\u062f\u0647 \u0633\u0627\u0632\u06cc \u062a\u0631\u062c\u0645\u0647 \u0647\u0627\u061b \u062f\u0631 \u062d\u0627\u0644 \u062d\u0627\u0636\u0631 \u0633\u0627\u062e\u062a\u0627\u0631 \u0646\u06cc\u0627\u0632 \u0628\u0647 \u062a\u06a9\u0631\u0627\u0631 \u0635\u0641\u062d\u0627\u062a \u062f\u0627\u0631\u062f (\u0642\u0631\u0627\u0631 \u062f\u0627\u062f\u0646 \u0622\u0646\u0647\u0627 \u0628\u0627 \u0645\u062d\u062a\u0648\u0627\u06cc \u0645\u062e\u062a\u0644\u0641 \/ \u062a\u0631\u062c\u0645\u0647 \u0634\u062f\u0647 \u062f\u0631 \u067e\u0648\u0634\u0647 \u0647\u0627\u06cc &#8220;de&#8221; \u0648 &#8220;en&#8221;).<\/li>\n<\/ol>\n<p>\u0628\u0631\u0627\u06cc \u0627\u0648\u0644\u06cc \u0645\u06cc\u200c\u062e\u0648\u0627\u0647\u06cc\u0645 \u0627\u0632 MDX \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u06a9\u0646\u06cc\u0645 &#8211; \u0628\u0631\u0627\u06cc \u062f\u0648\u0645\u06cc \u0628\u0627\u06cc\u062f \u0631\u0627\u0647\u200c\u062d\u0644\u06cc \u0627\u0631\u0627\u0626\u0647 \u06a9\u0646\u06cc\u0645 \u06a9\u0647 \u0628\u0647 \u0645\u0627 \u0627\u0645\u06a9\u0627\u0646 \u0645\u06cc\u200c\u062f\u0647\u062f \u0633\u0627\u062e\u062a\u0627\u0631\u06cc \u0645\u0633\u0637\u062d \u062f\u0627\u0634\u062a\u0647 \u0628\u0627\u0634\u06cc\u0645.<\/p>\n<h2><span class=\"ez-toc-section\" id=\"%D8%A7%D8%AF%D8%BA%D8%A7%D9%85_MDX\"><\/span>\n<p>  \u0627\u062f\u063a\u0627\u0645 MDX<br \/>\n<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>\u0622\u0648\u0631\u062f\u0646 MDX \u0628\u0647 \u0631\u0627\u0647 \u062d\u0644 \u062f\u0631 \u0648\u0627\u0642\u0639 \u06a9\u0627\u0645\u0644\u0627\u064b \u0633\u0627\u062f\u0647 \u0627\u0633\u062a. \u0631\u0627 <code>@mdx-js\/mdx<\/code> \u0628\u0633\u062a\u0647 \u0634\u0627\u0645\u0644 \u0647\u0645\u0647 \u0686\u06cc\u0632 \u0628\u0631\u0627\u06cc \u06a9\u0627\u0645\u067e\u0627\u06cc\u0644 \u0648 \u06a9\u0627\u0631 \u0628\u0627 \u0641\u0627\u06cc\u0644 \u0647\u0627\u06cc MDX \u0627\u0633\u062a. \u0628\u0627 \u0627\u06cc\u0646 \u062d\u0627\u0644\u060c \u0627\u0632 \u0622\u0646\u062c\u0627\u06cc\u06cc \u06a9\u0647 \u0645\u0627 \u062f\u0631 \u062d\u0627\u0644 \u062d\u0627\u0636\u0631 \u0627\u0632 \u06cc\u06a9 \u0628\u0627\u0646\u062f\u0644\u0631 (Vite) \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0645\u06cc \u06a9\u0646\u06cc\u0645\u060c \u0645\u06cc \u062a\u0648\u0627\u0646\u06cc\u0645 \u0641\u0642\u0637 \u0628\u0647 \u0627\u0641\u0632\u0648\u0646\u0647 \u062e\u0627\u0635\u06cc \u06a9\u0647 \u0628\u0631\u0627\u06cc \u0622\u0646 \u0628\u0627\u0646\u062f\u0644\u0631 \u0648\u062c\u0648\u062f \u062f\u0627\u0631\u062f\u060c \u062a\u06a9\u06cc\u0647 \u06a9\u0646\u06cc\u0645.\n<\/p>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight shell\"><code>npm i @mdx-js\/rollup <span class=\"nt\">--save-dev<\/span>\n<\/code><\/pre>\n<\/div>\n<p>\u0686\u0631\u0627 \u0628\u0633\u062a\u0647 \u0627\u06cc \u0628\u0647 \u0646\u0627\u0645 \u0646\u0635\u0628 \u0645\u06cc \u06a9\u0646\u06cc\u0645 <code>rollup<\/code> \u0627\u06af\u0631 \u0628\u0627\u0646\u062f\u0644\u0631 \u0645\u0627 Vite \u0628\u0627\u0634\u062f\u061f \u0628\u0647 \u0646\u0638\u0631 \u0645\u06cc \u0631\u0633\u062f \u06a9\u0647 Vite \u062f\u0631 \u0648\u0627\u0642\u0639 \u0641\u0642\u0637 \u06cc\u06a9 \u0627\u0628\u0632\u0627\u0631 \u0633\u0627\u062e\u062a \u0627\u0633\u062a &#8211; \u0628\u0631\u0627\u06cc \u0628\u0633\u062a\u0647 \u0628\u0646\u062f\u06cc \u0648\u0627\u0642\u0639\u06cc \u0627\u0632 \u062f\u0648 \u0686\u06cc\u0632 \u062f\u06cc\u06af\u0631 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0645\u06cc \u0634\u0648\u062f:<\/p>\n<ul>\n<li>esbuild \u0628\u0631\u0627\u06cc \u0628\u0633\u062a\u0647\u200c\u0628\u0646\u062f\u06cc\/\u067e\u0631\u062f\u0627\u0632\u0634 \u0647\u0631 \u0686\u06cc\u0632\u06cc \u062f\u0631 \u0628\u0633\u062a\u0647\u200c\u0647\u0627\u06cc \u0634\u062e\u0635 \u062b\u0627\u0644\u062b (\u0648 \u0647\u0645\u0686\u0646\u06cc\u0646 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 \u0622\u0646\u060c \u0628\u0647 \u0639\u0646\u0648\u0627\u0646 \u0645\u062b\u0627\u0644\u060c \u062f\u0631 \u0641\u0627\u06cc\u0644 \u067e\u06cc\u06a9\u0631\u0628\u0646\u062f\u06cc)<\/li>\n<li>\u062c\u0645\u0639 \u0622\u0648\u0631\u06cc \u0628\u0631\u0627\u06cc \u0628\u0633\u062a\u0647 \u0628\u0646\u062f\u06cc\/\u067e\u0631\u062f\u0627\u0632\u0634 \u06a9\u062f \u06a9\u0627\u0631\u0628\u0631<\/li>\n<\/ul>\n<p>\u0627\u0632 \u0627\u06cc\u0646 \u0631\u0648 \u067e\u0644\u0627\u06af\u06cc\u0646 \u062c\u0645\u0639 \u0622\u0648\u0631\u06cc &#8211; \u06a9\u0647 \u062a\u0645\u0627\u0645 \u0686\u06cc\u0632\u06cc \u0627\u0633\u062a \u06a9\u0647 \u0645\u0627 \u0646\u06cc\u0627\u0632 \u062f\u0627\u0631\u06cc\u0645.<\/p>\n<p>\u0627\u062f\u063a\u0627\u0645 \u062f\u0631 \u0645\u0627 <em>vite.config.mjs<\/em> \u0641\u0627\u06cc\u0644 \u0628\u0647 \u0634\u06a9\u0644 \u0632\u06cc\u0631 \u0627\u0633\u062a:\n<\/p>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight javascript\"><code><span class=\"k\">import<\/span> <span class=\"nx\">codegen<\/span> <span class=\"k\">from<\/span> <span class=\"dl\">'<\/span><span class=\"s1\">vite-plugin-codegen<\/span><span class=\"dl\">'<\/span><span class=\"p\">;<\/span>\n<span class=\"k\">import<\/span> <span class=\"nx\">mdx<\/span> <span class=\"k\">from<\/span> <span class=\"dl\">'<\/span><span class=\"s1\">@mdx-js\/rollup<\/span><span class=\"dl\">'<\/span><span class=\"p\">;<\/span>\n<span class=\"k\">import<\/span> <span class=\"p\">{<\/span> <span class=\"nx\">resolve<\/span> <span class=\"p\">}<\/span> <span class=\"k\">from<\/span> <span class=\"dl\">'<\/span><span class=\"s1\">path<\/span><span class=\"dl\">'<\/span><span class=\"p\">;<\/span>\n\n<span class=\"k\">export<\/span> <span class=\"k\">default<\/span> <span class=\"p\">{<\/span>\n  <span class=\"na\">build<\/span><span class=\"p\">:<\/span> <span class=\"p\">{<\/span>\n    <span class=\"na\">assetsInlineLimit<\/span><span class=\"p\">:<\/span> <span class=\"mi\">0<\/span><span class=\"p\">,<\/span>\n  <span class=\"p\">},<\/span>\n  <span class=\"na\">resolve<\/span><span class=\"p\">:<\/span> <span class=\"p\">{<\/span>\n    <span class=\"na\">alias<\/span><span class=\"p\">:<\/span> <span class=\"p\">{<\/span>\n      <span class=\"dl\">'<\/span><span class=\"s1\">@<\/span><span class=\"dl\">'<\/span><span class=\"p\">:<\/span> <span class=\"nf\">resolve<\/span><span class=\"p\">(<\/span><span class=\"nx\">__dirname<\/span><span class=\"p\">,<\/span> <span class=\"dl\">'<\/span><span class=\"s1\">src<\/span><span class=\"dl\">'<\/span><span class=\"p\">),<\/span>\n    <span class=\"p\">},<\/span>\n  <span class=\"p\">},<\/span>\n  <span class=\"na\">plugins<\/span><span class=\"p\">:<\/span> <span class=\"p\">[<\/span>\n    <span class=\"nf\">codegen<\/span><span class=\"p\">(),<\/span>\n    <span class=\"nf\">mdx<\/span><span class=\"p\">(),<\/span>\n  <span class=\"p\">],<\/span>\n<span class=\"p\">};<\/span>\n<\/code><\/pre>\n<\/div>\n<p>\u062a\u0648\u062c\u0647 \u062f\u0627\u0634\u062a\u0647 \u0628\u0627\u0634\u06cc\u062f \u06a9\u0647 \u0645\u0627 \u062f\u0631 \u062d\u0627\u0644 \u062d\u0627\u0636\u0631 \u0647\u06cc\u0686 \u06af\u0632\u06cc\u0646\u0647 \u0627\u06cc \u0627\u0631\u0627\u0626\u0647 \u0646\u0645\u06cc \u062f\u0647\u06cc\u0645. \u0627\u06cc\u0646 \u0641\u0642\u0637 \u06a9\u0627\u0631 \u0645\u06cc \u06a9\u0646\u062f!<\/p>\n<p>\u067e\u0633 \u0627\u06cc\u0646\u062c\u0627 \u0686\u0647 \u06a9\u0627\u0631 \u0645\u06cc \u062a\u0648\u0627\u0646\u06cc\u0645 \u0628\u06a9\u0646\u06cc\u0645\u061f \u06cc\u06a9\u06cc \u0627\u0632 \u0635\u0641\u062d\u0627\u062a \u0642\u0628\u0644\u06cc \u0645\u0627 \u0631\u0627 \u062f\u0631 \u0646\u0638\u0631 \u0628\u06af\u06cc\u0631\u06cc\u062f\u060c \u0633\u0644\u0628 \u0645\u0633\u0626\u0648\u0644\u06cc\u062a \u0642\u0627\u0646\u0648\u0646\u06cc (\u0686\u0647 \u06a9\u0633\u06cc \u0635\u0641\u062d\u0627\u062a \u0642\u0627\u0646\u0648\u0646\u06cc \u0631\u0627 \u062f\u0648\u0633\u062a \u0646\u062f\u0627\u0631\u062f\u061f!):\n<\/p>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight jsx\"><code><span class=\"k\">import<\/span> <span class=\"o\">*<\/span> <span class=\"k\">as<\/span> <span class=\"nx\">React<\/span> <span class=\"k\">from<\/span> <span class=\"dl\">'<\/span><span class=\"s1\">react<\/span><span class=\"dl\">'<\/span><span class=\"p\">;<\/span>\n<span class=\"k\">import<\/span> <span class=\"p\">{<\/span> <span class=\"nx\">Page<\/span> <span class=\"p\">}<\/span> <span class=\"k\">from<\/span> <span class=\"dl\">'<\/span><span class=\"s1\">@smapiot\/components\/lib\/basic\/Page<\/span><span class=\"dl\">'<\/span><span class=\"p\">;<\/span>\n\n<span class=\"k\">export<\/span> <span class=\"kd\">const<\/span> <span class=\"nx\">meta<\/span> <span class=\"o\">=<\/span> <span class=\"p\">{<\/span>\n  <span class=\"na\">title<\/span><span class=\"p\">:<\/span> <span class=\"dl\">'<\/span><span class=\"s1\">Legal Disclaimer<\/span><span class=\"dl\">'<\/span><span class=\"p\">,<\/span>\n  <span class=\"na\">legal<\/span><span class=\"p\">:<\/span> <span class=\"dl\">'<\/span><span class=\"s1\">Legal Disclaimer<\/span><span class=\"dl\">'<\/span><span class=\"p\">,<\/span>\n<span class=\"p\">};<\/span>\n\n<span class=\"kd\">const<\/span> <span class=\"nx\">title<\/span> <span class=\"o\">=<\/span> <span class=\"dl\">'<\/span><span class=\"s1\">smapiot - Legal Disclaimer<\/span><span class=\"dl\">'<\/span><span class=\"p\">;<\/span>\n\n<span class=\"k\">export<\/span> <span class=\"k\">default <\/span><span class=\"p\">()<\/span> <span class=\"o\">=&gt;<\/span> <span class=\"p\">(<\/span>\n  <span class=\"p\">&lt;<\/span><span class=\"nc\">Page<\/span> <span class=\"na\">title<\/span><span class=\"p\">=<\/span><span class=\"si\">{<\/span><span class=\"nx\">title<\/span><span class=\"si\">}<\/span><span class=\"p\">&gt;<\/span>\n    <span class=\"p\">&lt;<\/span><span class=\"nt\">section<\/span> <span class=\"na\">className<\/span><span class=\"p\">=<\/span><span class=\"s\">\"container\"<\/span><span class=\"p\">&gt;<\/span>\n      <span class=\"p\">&lt;<\/span><span class=\"nt\">h1<\/span><span class=\"p\">&gt;<\/span>Legal Disclaimer<span class=\"p\">&lt;\/<\/span><span class=\"nt\">h1<\/span><span class=\"p\">&gt;<\/span>\n      <span class=\"p\">&lt;<\/span><span class=\"nt\">h3<\/span><span class=\"p\">&gt;<\/span>Liability for Contents<span class=\"p\">&lt;\/<\/span><span class=\"nt\">h3<\/span><span class=\"p\">&gt;<\/span>\n      <span class=\"p\">&lt;<\/span><span class=\"nt\">p<\/span><span class=\"p\">&gt;<\/span>\n        The contents of our pages have been compiled with the greatest care. However, we cannot guarantee for accuracy,\n        completeness or topicality of the contents. As service providers, we are liable for own contents of these\n        websites according to sec. 7, paragraph 1 German Telemedia Act (TMG). However, according to sec. 8 to 10 German\n        Telemedia Act (TMG), service providers are not obligated to permanently monitor submitted or stored information\n        or to search for evidences that indicate illegal activities. Legal obligations to removing information or to\n        blocking the use of information remain unchallenged. In this case, liability is only possible at the time of\n        knowledge about a specific violation of law. Illegal contents will be removed immediately at the time we get\n        knowledge of them.\n      <span class=\"p\">&lt;\/<\/span><span class=\"nt\">p<\/span><span class=\"p\">&gt;<\/span>\n      <span class=\"p\">&lt;<\/span><span class=\"nt\">h3<\/span><span class=\"p\">&gt;<\/span>Liability for Links<span class=\"p\">&lt;\/<\/span><span class=\"nt\">h3<\/span><span class=\"p\">&gt;<\/span>\n      <span class=\"p\">&lt;<\/span><span class=\"nt\">p<\/span><span class=\"p\">&gt;<\/span>\n        Our web pages include links to external third party websites. We have no influence on the contents of those\n        external websites, therefore we cannot guarantee for those contents. Providers or administrators of linked\n        websites are always responsible for their own contents. The linked websites had been checked for possible\n        violations of law at the time of the establishment of the link. Illegal contents were not detected at the time\n        of the linking. A permanent monitoring of the contents of linked websites cannot be imposed without reasonable\n        indications that there has been a violation of law. Illegal links will be removed immediately at the time we get\n        knowledge of them.\n      <span class=\"p\">&lt;\/<\/span><span class=\"nt\">p<\/span><span class=\"p\">&gt;<\/span>\n      <span class=\"p\">&lt;<\/span><span class=\"nt\">h3<\/span><span class=\"p\">&gt;<\/span>Copyright<span class=\"p\">&lt;\/<\/span><span class=\"nt\">h3<\/span><span class=\"p\">&gt;<\/span>\n      <span class=\"p\">&lt;<\/span><span class=\"nt\">p<\/span><span class=\"p\">&gt;<\/span>\n        Contents and compilations published on these websites by the providers are subject to German copyright laws.\n        Reproduction, editing, distribution as well as the use of any kind outside the scope of the copyright law\n        require a written permission of the author or originator. Downloads and copies of these websites are permitted\n        for private use only. The commercial use of our contents without permission of the originator is prohibited.\n        Copyright laws of third parties are respected as long as the contents on these websites do not originate from\n        the provider. Contributions of third parties on this site are indicated as such. However, if you notice any\n        violations of copyright law, please inform us. Such contents will be removed immediately.\n      <span class=\"p\">&lt;\/<\/span><span class=\"nt\">p<\/span><span class=\"p\">&gt;<\/span>\n    <span class=\"p\">&lt;\/<\/span><span class=\"nt\">section<\/span><span class=\"p\">&gt;<\/span>\n  <span class=\"p\">&lt;\/<\/span><span class=\"nc\">Page<\/span><span class=\"p\">&gt;<\/span>\n<span class=\"p\">);<\/span>\n<\/code><\/pre>\n<\/div>\n<p>\u0627\u06cc\u0646 \u062e\u06cc\u0644\u06cc \u0628\u062f \u0646\u06cc\u0633\u062a! \u06a9\u0627\u0631\u06cc \u06a9\u0647 \u0627\u06a9\u0646\u0648\u0646 \u0645\u06cc \u062a\u0648\u0627\u0646\u06cc\u0645 \u0627\u0646\u062c\u0627\u0645 \u062f\u0647\u06cc\u0645 \u0627\u06cc\u0646 \u0627\u0633\u062a \u06a9\u0647 \u0646\u0627\u0645 \u0622\u0646 \u0631\u0627 \u0627\u0632 \u0622\u0646 \u062a\u063a\u06cc\u06cc\u0631 \u062f\u0647\u06cc\u0645 <em>\u0633\u0644\u0628 \u0645\u0633\u0626\u0648\u0644\u06cc\u062a.tsx<\/em> \u0628\u0647 <em>\u0633\u0644\u0628 \u0645\u0633\u0626\u0648\u0644\u06cc\u062a.mdx<\/em> \u0648 \u0645\u062d\u062a\u0648\u0627\u06cc \u0622\u0646 \u0631\u0627 \u0628\u0647 \u0635\u0648\u0631\u062a \u0632\u06cc\u0631 \u062a\u063a\u06cc\u06cc\u0631 \u062f\u0647\u06cc\u062f:\n<\/p>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight plaintext\"><code>export const meta = {\n  title: 'Legal Disclaimer',\n  legal: 'Legal Disclaimer',\n};\n\n&lt;section className=\"container\"&gt;\n  # Legal Disclaimer\n\n  ### Liability for Contents\n\n  The contents of our pages have been compiled with the greatest care. However, we cannot guarantee for accuracy, completeness or topicality of the contents. As service providers, we are liable for own contents of these websites according to sec. 7, paragraph 1 German Telemedia Act (TMG). However, according to sec. 8 to 10 German Telemedia Act (TMG), service providers are not obligated to permanently monitor submitted or stored information or to search for evidences that indicate illegal activities. Legal obligations to removing information or to blocking the use of information remain unchallenged. In this case, liability is only possible at the time of knowledge about a specific violation of law. Illegal contents will be removed immediately at the time we get knowledge of them.\n\n  ### Liability for Links\n\n  Our web pages include links to external third party websites. We have no influence on the contents of those external websites, therefore we cannot guarantee for those contents. Providers or administrators of linked websites are always responsible for their own contents. The linked websites had been checked for possible violations of law at the time of the establishment of the link. Illegal contents were not detected at the time of the linking. A permanent monitoring of the contents of linked websites cannot be imposed without reasonable indications that there has been a violation of law. Illegal links will be removed immediately at the time we get knowledge of them.\n\n  ### Copyright\n\n  Contents and compilations published on these websites by the providers are subject to German copyright laws. Reproduction, editing, distribution as well as the use of any kind outside the scope of the copyright law require a written permission of the author or originator. Downloads and copies of these websites are permitted for private use only. The commercial use of our contents without permission of the originator is prohibited. Copyright laws of third parties are respected as long as the contents on these websites do not originate from the provider. Contributions of third parties on this site are indicated as such. However, if you notice any violations of copyright law, please inform us. Such contents will be removed immediately.\n&lt;\/section&gt;\n<\/code><\/pre>\n<\/div>\n<p>\u062e\u0648\u0627\u0646\u062f\u0646 \u0628\u0633\u06cc\u0627\u0631 \u0622\u0633\u0627\u0646 \u062a\u0631 \u0627\u0633\u062a! \u062a\u0648\u062c\u0647 \u062f\u0627\u0634\u062a\u0647 \u0628\u0627\u0634\u06cc\u062f \u06a9\u0647 \u0648\u0627\u0631\u062f\u0627\u062a \u063a\u06cc\u0631 \u0636\u0631\u0648\u0631\u06cc \u0645\u0627\u0646\u0646\u062f <code>react<\/code> \u0645\u06cc \u062a\u0648\u0627\u0646\u062f \u062d\u0630\u0641 \u0634\u0648\u062f\u060c \u062f\u0631 \u062d\u0627\u0644\u06cc \u06a9\u0647 \u062c\u0632\u0621 \u0628\u0633\u062a\u0647 \u0628\u0646\u062f\u06cc \u062f\u06cc\u06af \u0628\u062e\u0627\u0631 <code>Page<\/code> \u0627\u06a9\u0646\u0648\u0646 \u0628\u0647 \u0637\u0648\u0631 \u062e\u0648\u062f\u06a9\u0627\u0631 \u062f\u0631\u062c \u062e\u0648\u0627\u0647\u062f \u0634\u062f.<\/p>\n<p>\u0627\u0645\u0627 \u0686\u06cc\u0632 \u062f\u0648\u0645\u06cc \u0628\u0648\u062f \u06a9\u0647 \u0645\u0627 \u0628\u0647 \u0622\u0646 \u0646\u06cc\u0627\u0632 \u062f\u0627\u0634\u062a\u06cc\u0645\u060c \u062f\u0631\u0633\u062a \u0627\u0633\u062a\u061f \u062f\u0631 \u0645\u0648\u0631\u062f \u0628\u0647\u0628\u0648\u062f\u0647\u0627\u06cc \u0645\u062d\u0644\u06cc \u0633\u0627\u0632\u06cc \/ \u0633\u0627\u062e\u062a\u0627\u0631 \u0635\u0641\u062d\u0647 \u0686\u0637\u0648\u0631\u061f<\/p>\n<p>\u0628\u06cc\u0627\u06cc\u06cc\u062f \u0628\u0628\u06cc\u0646\u06cc\u0645 \u0627\u06cc\u0646\u062c\u0627 \u0686\u0647 \u06a9\u0627\u0631\u06cc \u0645\u06cc \u062a\u0648\u0627\u0646\u06cc\u0645 \u0627\u0646\u062c\u0627\u0645 \u062f\u0647\u06cc\u0645!<\/p>\n<h2><span class=\"ez-toc-section\" id=\"%D8%A7%D8%B1%D8%A7%D8%A6%D9%87_%D8%AA%D8%B1%D8%AC%D9%85%D9%87\"><\/span>\n<p>  \u0627\u0631\u0627\u0626\u0647 \u062a\u0631\u062c\u0645\u0647<br \/>\n<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>\u0686\u0647 \u0645\u06cc \u0634\u0648\u062f \u0627\u06af\u0631 \u0631\u0634\u062a\u0647 \u0647\u0627\u06cc \u0645\u062d\u0644\u06cc \u0633\u0627\u0632\u06cc \u0631\u0627 \u0647\u0645\u0647 \u062f\u0631 \u06cc\u06a9 \u0633\u0627\u06cc\u062f\u06a9\u0627\u0631 \u06a9\u0648\u0686\u06a9 \u0642\u0631\u0627\u0631 \u062f\u0647\u06cc\u0645\u061f \u0628\u0647 \u0639\u0646\u0648\u0627\u0646 \u0645\u062b\u0627\u0644\u060c \u0628\u0631\u0627\u06cc \u0641\u0627\u06cc\u0644\u06cc \u0645\u0627\u0646\u0646\u062f <em>\u0633\u0644\u0628 \u0645\u0633\u0626\u0648\u0644\u06cc\u062a.mdx<\/em> \u0645\u0627 \u0647\u0645\u0686\u0646\u06cc\u0646 \u06cc\u06a9 \u0641\u0627\u06cc\u0644 \u062e\u0648\u0627\u0647\u06cc\u0645 \u062f\u0627\u0634\u062a <em>\u0633\u0644\u0628 \u0645\u0633\u0626\u0648\u0644\u06cc\u062a.yml<\/em>. \u062f\u0631 \u0627\u06cc\u0646 \u0641\u0627\u06cc\u0644 \u0645\u06cc\u200c\u062a\u0648\u0627\u0646\u06cc\u0645 \u062a\u0631\u062c\u0645\u0647\u200c\u0647\u0627 \u0631\u0627 \u0628\u0627 \u062a\u0648\u062c\u0647 \u0628\u0647 \u0632\u0628\u0627\u0646\u200c\u0647\u0627 \u0642\u0631\u0627\u0631 \u062f\u0647\u06cc\u0645.<\/p>\n<p>\u06a9\u0644 \u0633\u0627\u062e\u062a\u0627\u0631 \u0645\u06cc \u062a\u0648\u0627\u0646\u062f \u0628\u0647 \u0627\u06cc\u0646 \u0634\u06a9\u0644 \u0628\u0627\u0634\u062f:<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/media.dev.to\/cdn-cgi\/image\/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto\/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fepvq7566frpfpph1vq7t.png\" alt=\"\u0633\u0627\u062e\u062a\u0627\u0631 \u0645\u062c\u062f\u062f \u0635\u0641\u062d\u0627\u062a\" width=\"237\" height=\"543\" title=\"\"><\/p>\n<p>\u062c\u0627\u06cc\u06cc \u06a9\u0647 \u06cc\u06a9 \u0641\u0627\u06cc\u0644 \u0641\u0631\u062f\u06cc\u060c \u0628\u0647 \u0639\u0646\u0648\u0627\u0646 \u0645\u062b\u0627\u0644\u060c \u0628\u0631\u0627\u06cc <em>\u0633\u0644\u0628 \u0645\u0633\u0626\u0648\u0644\u06cc\u062a.yml<\/em> \u0645\u06cc \u062a\u0648\u0627\u0646\u062f \u0628\u0647 \u0635\u0648\u0631\u062a \u0632\u06cc\u0631 \u0646\u0648\u0634\u062a\u0647 \u0634\u0648\u062f:\n<\/p>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight yaml\"><code><span class=\"na\">de<\/span><span class=\"pi\">:<\/span>\n  <span class=\"na\">content$<\/span><span class=\"pi\">:<\/span> <span class=\"pi\">|<\/span>\n    <span class=\"s\"># Haftungsausschluss<\/span>\n\n    <span class=\"s\">### Haftung f\u00fcr Inhalte<\/span>\n\n    <span class=\"s\">Die Inhalte unserer Seiten wurden mit gr\u00f6\u00dfter Sorgfalt erstellt. F\u00fcr die Richtigkeit, Vollst\u00e4ndigkeit und Aktualit\u00e4t der Inhalte k\u00f6nnen wir jedoch keine Gew\u00e4hr \u00fcbernehmen. Als Diensteanbieter sind wir gem\u00e4\u00df \u00a7 7 Abs.1 TMG f\u00fcr eigene Inhalte auf diesen Seiten nach den allgemeinen Gesetzen verantwortlich. Nach \u00a7\u00a7 8 bis 10 TMG sind wir als Diensteanbieter jedoch nicht verpflichtet, \u00fcbermittelte oder gespeicherte fremde Informationen zu \u00fcberwachen oder nach Umst\u00e4nden zu forschen, die auf eine rechtswidrige T\u00e4tigkeit hinweisen. Verpflichtungen zur Entfernung oder Sperrung der Nutzung von Informationen nach den allgemeinen Gesetzen bleiben hiervon unber\u00fchrt. Eine diesbez\u00fcgliche Haftung ist jedoch erst ab dem Zeitpunkt der Kenntnis einer konkreten Rechtsverletzung m\u00f6glich. Bei Bekanntwerden von entsprechenden Rechtsverletzungen werden wir diese Inhalte umgehend entfernen.<\/span>\n\n    <span class=\"s\">### Haftung f\u00fcr Links<\/span>\n\n    <span class=\"s\">Unser Angebot enth\u00e4lt Links zu externen Webseiten Dritter, auf deren Inhalte wir keinen Einfluss haben. Deshalb k\u00f6nnen wir f\u00fcr diese fremden Inhalte auch keine Gew\u00e4hr \u00fcbernehmen. F\u00fcr die Inhalte der verlinkten Seiten ist stets der jeweilige Anbieter oder Betreiber der Seiten verantwortlich. Die verlinkten Seiten wurden zum Zeitpunkt der Verlinkung auf m\u00f6gliche Rechtsverst\u00f6\u00dfe \u00fcberpr\u00fcft. Rechtswidrige Inhalte waren zum Zeitpunkt der Verlinkung nicht erkennbar. Eine permanente inhaltliche Kontrolle der verlinkten Seiten ist jedoch ohne konkrete Anhaltspunkte einer Rechtsverletzung nicht zumutbar. Bei Bekanntwerden von Rechtsverletzungen werden wir derartige Links umgehend entfernen.<\/span>\n\n    <span class=\"s\">### Urheberrecht<\/span>\n\n    <span class=\"s\">Die durch die Seitenbetreiber erstellten Inhalte und Werke auf diesen Seiten unterliegen dem deutschen Urheberrecht. Die Vervielf\u00e4ltigung, Bearbeitung, Verbreitung und jede Art der Verwertung au\u00dferhalb der Grenzen des Urheberrechtes bed\u00fcrfen der schriftlichen Zustimmung des jeweiligen Autors bzw. Erstellers. Downloads und Kopien dieser Seite sind nur f\u00fcr den privaten, nicht kommerziellen Gebrauch gestattet. Soweit die Inhalte auf dieser Seite nicht vom Betreiber erstellt wurden, werden die Urheberrechte Dritter beachtet. Insbesondere werden Inhalte Dritter als solche gekennzeichnet. Sollten Sie trotzdem auf eine Urheberrechtsverletzung aufmerksam werden, bitten wir um einen entsprechenden Hinweis. Bei Bekanntwerden von Rechtsverletzungen werden wir derartige Inhalte umgehend entfernen.<\/span>\n<span class=\"na\">en<\/span><span class=\"pi\">:<\/span>\n  <span class=\"na\">content$<\/span><span class=\"pi\">:<\/span> <span class=\"pi\">|<\/span>\n    <span class=\"s\"># Legal Disclaimer<\/span>\n\n    <span class=\"s\">### Liability for Contents<\/span>\n\n    <span class=\"s\">The contents of our pages have been compiled with the greatest care. However, we cannot guarantee for accuracy, completeness or topicality of the contents. As service providers, we are liable for own contents of these websites according to sec. 7, paragraph 1 German Telemedia Act (TMG). However, according to sec. 8 to 10 German Telemedia Act (TMG), service providers are not obligated to permanently monitor submitted or stored information or to search for evidences that indicate illegal activities. Legal obligations to removing information or to blocking the use of information remain unchallenged. In this case, liability is only possible at the time of knowledge about a specific violation of law. Illegal contents will be removed immediately at the time we get knowledge of them.<\/span>\n\n    <span class=\"s\">### Liability for Links<\/span>\n\n    <span class=\"s\">Our web pages include links to external third party websites. We have no influence on the contents of those external websites, therefore we cannot guarantee for those contents. Providers or administrators of linked websites are always responsible for their own contents. The linked websites had been checked for possible violations of law at the time of the establishment of the link. Illegal contents were not detected at the time of the linking. A permanent monitoring of the contents of linked websites cannot be imposed without reasonable indications that there has been a violation of law. Illegal links will be removed immediately at the time we get knowledge of them.<\/span>\n\n    <span class=\"s\">### Copyright<\/span>\n\n    <span class=\"s\">Contents and compilations published on these websites by the providers are subject to German copyright laws. Reproduction, editing, distribution as well as the use of any kind outside the scope of the copyright law require a written permission of the author or originator. Downloads and copies of these websites are permitted for private use only. The commercial use of our contents without permission of the originator is prohibited. Copyright laws of third parties are respected as long as the contents on these websites do not originate from the provider. Contributions of third parties on this site are indicated as such. However, if you notice any violations of copyright law, please inform us. Such contents will be removed immediately.<\/span>\n<\/code><\/pre>\n<\/div>\n<p>\u0628\u0631\u0627\u06cc \u0627\u06cc\u0646 \u0641\u0627\u06cc\u0644 \u0645\u062c\u0645\u0648\u0639\u0647 \u0627\u06cc \u0627\u0632 \u0642\u0631\u0627\u0631\u062f\u0627\u062f\u0647\u0627 \u0648\u062c\u0648\u062f \u062f\u0627\u0631\u062f:<\/p>\n<ul>\n<li>\u06a9\u0644\u06cc\u062f\u0647\u0627\u06cc \u0633\u0637\u062d \u0628\u0627\u0644\u0627 \u0628\u0627\u06cc\u062f \u0632\u0628\u0627\u0646 \u0645\u0639\u062a\u0628\u0631 \u0628\u0627\u0634\u0646\u062f (\u0641\u0642\u0637 \u062f\u0631 \u062d\u0627\u0644 \u062d\u0627\u0636\u0631 <code>de<\/code> \u0648 <code>en<\/code>)<\/li>\n<li>\u06a9\u0644\u06cc\u062f\u0647\u0627 \u0645\u06cc \u062a\u0648\u0627\u0646\u0646\u062f \u062a\u0648 \u062f\u0631 \u062a\u0648 \u0628\u0627\u0634\u0646\u062f\u060c \u0628\u0647 \u0639\u0646\u0648\u0627\u0646 \u0645\u062b\u0627\u0644\u060c \u0627\u0634\u06cc\u0627 \/ \u0622\u0631\u0627\u06cc\u0647 \u0647\u0627 \u0645\u062c\u0627\u0632 \u0647\u0633\u062a\u0646\u062f<\/li>\n<li>\u0648\u0642\u062a\u06cc \u06cc\u06a9 \u06a9\u0644\u06cc\u062f \u0628\u0627 \u06cc\u06a9 \u062e\u062a\u0645 \u0645\u06cc \u0634\u0648\u062f <code>$<\/code> \u0627\u0645\u0636\u0627 \u06a9\u0646\u06cc\u062f \u06a9\u0647 \u0628\u0647 \u0639\u0646\u0648\u0627\u0646 Markdown \u062a\u0641\u0633\u06cc\u0631 \u0645\u06cc \u0634\u0648\u062f (\u0628\u0647 \u0637\u0648\u0631 \u062e\u0627\u0635\u060c MDX)<\/li>\n<\/ul>\n<p>\u0641\u0627\u06cc\u0644 MDX \u0628\u0627 \u0686\u0646\u06cc\u0646 \u0641\u0627\u06cc\u0644 \u0633\u0627\u06cc\u062f\u06a9\u0627\u0631 \u0686\u06af\u0648\u0646\u0647 \u0628\u0647 \u0646\u0638\u0631 \u0645\u06cc \u0631\u0633\u062f\u061f\n<\/p>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight plaintext\"><code>export const meta = {\n  title: 'Legal Disclaimer',\n  legal: 'Legal Disclaimer',\n};\n\n&lt;section className=\"container\"&gt;\n  {locale.content$}\n&lt;\/section&gt;\n<\/code><\/pre>\n<\/div>\n<p>\u062d\u0627\u0644\u0627 \u0627\u06cc\u0646 \u062c\u0630\u0627\u0628 \u0628\u0647 \u0646\u0638\u0631 \u0645\u06cc \u0631\u0633\u062f!<\/p>\n<p>\u0628\u0631\u0627\u06cc \u0627\u062f\u063a\u0627\u0645 \u0628\u0648\u0645\u06cc \u0633\u0627\u0632\u06cc \u0647\u0646\u0648\u0632 \u0628\u0627\u06cc\u062f \u06a9\u0627\u0631\u06cc \u0627\u0646\u062c\u0627\u0645 \u062f\u0647\u06cc\u0645. \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 \u0631\u0627 \u0628\u0628\u06cc\u0646\u06cc\u062f <code>locale<\/code> \u062f\u0631 \u06a9\u062f \u0628\u0627\u0644\u0627 \u0627\u0645\u0627 \u0686\u06af\u0648\u0646\u0647 \u0645\u06cc \u0634\u0648\u062f <code>locale<\/code> \u0645\u0646\u0638\u0631\u0647 \u0631\u0627 \u062f\u0631 \u0641\u0627\u06cc\u0644 \u0648\u0627\u0631\u062f \u06a9\u0646\u06cc\u062f\u061f \u0628\u0627\u0644\u0627\u062e\u0631\u0647 \u0645\u0627 \u0622\u0646 \u0631\u0627 \u0646\u0645\u06cc \u0628\u06cc\u0646\u06cc\u0645!<\/p>\n<p>\u0645\u0639\u0644\u0648\u0645 \u0634\u062f \u06a9\u0647 \u0645\u06cc \u062a\u0648\u0627\u0646\u06cc\u0645 \u06a9\u062f \u062a\u0648\u0644\u06cc\u062f \u0634\u062f\u0647 \u0631\u0627 \u062a\u0648\u0633\u0637 MDX \u062f\u0633\u062a\u06a9\u0627\u0631\u06cc \u06a9\u0646\u06cc\u0645. \u0628\u06cc\u0627\u06cc\u06cc\u062f \u0628\u0627 \u0627\u0641\u0632\u0648\u062f\u0646 \u06cc\u06a9 \u0627\u0641\u0632\u0648\u0646\u0647 \u0633\u0641\u0627\u0631\u0634\u06cc \u0628\u0647 \u0627\u0628\u0632\u0627\u0631\u060c \u06a9\u0645\u06cc \u0627\u0628\u0632\u0627\u0631 \u0631\u0627 \u067e\u06cc\u06a9\u0631\u0628\u0646\u062f\u06cc \u06a9\u0646\u06cc\u0645 <code>recmaPlugins<\/code> \u06af\u0632\u06cc\u0646\u0647 \u0627\u06cc\u0646 \u0628\u0647 \u0645\u0627 \u0627\u062c\u0627\u0632\u0647 \u0645\u06cc \u062f\u0647\u062f \u062a\u0627 \u06a9\u0646\u062a\u0631\u0644 \u06a9\u0627\u0645\u0644\u06cc \u0628\u0631 \u062f\u0631\u062e\u062a \u0646\u062d\u0648 \u0627\u0646\u062a\u0632\u0627\u0639\u06cc \u062a\u0648\u0644\u06cc\u062f \u0634\u062f\u0647 (AST) \u062f\u0627\u0634\u062a\u0647 \u0628\u0627\u0634\u06cc\u0645\u060c \u06a9\u0647 \u0633\u067e\u0633 \u0628\u0631\u0627\u06cc \u062a\u0648\u0644\u06cc\u062f \u06a9\u062f \u0648\u0627\u0642\u0639\u06cc \u0646\u0634\u0627\u0646 \u062f\u0647\u0646\u062f\u0647 \u0641\u0627\u06cc\u0644 MDX \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0645\u06cc \u0634\u0648\u062f.\n<\/p>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight javascript\"><code><span class=\"k\">import<\/span> <span class=\"nx\">codegen<\/span> <span class=\"k\">from<\/span> <span class=\"dl\">'<\/span><span class=\"s1\">vite-plugin-codegen<\/span><span class=\"dl\">'<\/span><span class=\"p\">;<\/span>\n<span class=\"k\">import<\/span> <span class=\"nx\">mdx<\/span> <span class=\"k\">from<\/span> <span class=\"dl\">'<\/span><span class=\"s1\">@mdx-js\/rollup<\/span><span class=\"dl\">'<\/span><span class=\"p\">;<\/span>\n<span class=\"k\">import<\/span> <span class=\"p\">{<\/span> <span class=\"nx\">resolve<\/span> <span class=\"p\">}<\/span> <span class=\"k\">from<\/span> <span class=\"dl\">'<\/span><span class=\"s1\">path<\/span><span class=\"dl\">'<\/span><span class=\"p\">;<\/span>\n<span class=\"k\">import<\/span> <span class=\"nx\">localize<\/span> <span class=\"k\">from<\/span> <span class=\"dl\">'<\/span><span class=\"s1\">.\/src\/tools\/localize.mjs<\/span><span class=\"dl\">'<\/span><span class=\"p\">;<\/span>\n\n<span class=\"k\">export<\/span> <span class=\"k\">default<\/span> <span class=\"p\">{<\/span>\n  <span class=\"na\">build<\/span><span class=\"p\">:<\/span> <span class=\"p\">{<\/span>\n    <span class=\"na\">assetsInlineLimit<\/span><span class=\"p\">:<\/span> <span class=\"mi\">0<\/span><span class=\"p\">,<\/span>\n  <span class=\"p\">},<\/span>\n  <span class=\"na\">resolve<\/span><span class=\"p\">:<\/span> <span class=\"p\">{<\/span>\n    <span class=\"na\">alias<\/span><span class=\"p\">:<\/span> <span class=\"p\">{<\/span>\n      <span class=\"dl\">'<\/span><span class=\"s1\">@<\/span><span class=\"dl\">'<\/span><span class=\"p\">:<\/span> <span class=\"nf\">resolve<\/span><span class=\"p\">(<\/span><span class=\"nx\">__dirname<\/span><span class=\"p\">,<\/span> <span class=\"dl\">'<\/span><span class=\"s1\">src<\/span><span class=\"dl\">'<\/span><span class=\"p\">),<\/span>\n    <span class=\"p\">},<\/span>\n  <span class=\"p\">},<\/span>\n  <span class=\"na\">plugins<\/span><span class=\"p\">:<\/span> <span class=\"p\">[<\/span>\n    <span class=\"nf\">codegen<\/span><span class=\"p\">(),<\/span>\n    <span class=\"nf\">mdx<\/span><span class=\"p\">({<\/span>\n      <span class=\"na\">recmaPlugins<\/span><span class=\"p\">:<\/span> <span class=\"p\">[<\/span><span class=\"nx\">localize<\/span><span class=\"p\">],<\/span>\n    <span class=\"p\">}),<\/span>\n  <span class=\"p\">],<\/span>\n<span class=\"p\">};<\/span>\n<\/code><\/pre>\n<\/div>\n<p>\u0648\u0627\u0631\u062f\u0627\u062a\u06cc <code>localize<\/code> \u062a\u0627\u0628\u0639 \u067e\u0644\u0627\u06af\u06cc\u0646 \u0648\u0627\u0642\u0639\u06cc \u0627\u0633\u062a &#8211; \u06a9\u0647 \u0641\u0642\u0637 \u0639\u0645\u0644\u06a9\u0631\u062f \u062f\u06cc\u06af\u0631\u06cc \u0631\u0627 \u0627\u0631\u0627\u0626\u0647 \u0645\u06cc \u062f\u0647\u062f &#8211; \u0628\u0647 \u0627\u0635\u0637\u0644\u0627\u062d \u062a\u0631\u0627\u0646\u0633\u0641\u0648\u0631\u0645\u0627\u062a\u0648\u0631. \u062a\u0631\u0627\u0646\u0633\u0641\u0648\u0631\u0645\u0627\u062a\u0648\u0631 \u0645\u0633\u0626\u0648\u0644 \u062f\u0633\u062a\u06a9\u0627\u0631\u06cc AST \u0627\u0633\u062a.<\/p>\n<p>\u0631\u0627 <code>transform<\/code> \u062a\u0627\u0628\u0639 \u062f\u0631 \u0642\u0637\u0639\u0647 \u0628\u0639\u062f\u06cc\u060c AST \u0648 \u0641\u0627\u06cc\u0644 \u0645\u062c\u0627\u0632\u06cc (\u06cc\u0639\u0646\u06cc \u0646\u0627\u0645\u060c \u0645\u062d\u062a\u0648\u0627\u060c &#8230;) \u0641\u0627\u06cc\u0644 MDX \u0631\u0627 \u06a9\u0647 \u062f\u0631 \u062d\u0627\u0644 \u062d\u0627\u0636\u0631 \u062f\u0631 \u062d\u0627\u0644 \u0645\u062f\u06cc\u0631\u06cc\u062a \u0627\u0633\u062a\u060c \u062f\u0631\u06cc\u0627\u0641\u062a \u0645\u06cc \u06a9\u0646\u062f.<\/p>\n<p>\u0628\u06cc\u0627\u06cc\u06cc\u062f \u0642\u0628\u0644 \u0627\u0632 \u0627\u06cc\u0646\u06a9\u0647 \u0628\u0647 \u0627\u06cc\u0646 \u06a9\u062f \u0628\u067e\u0631\u062f\u0627\u0632\u06cc\u0645\u060c \u06a9\u062f \u0631\u0627 \u0628\u0628\u06cc\u0646\u06cc\u0645:\n<\/p>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight javascript\"><code><span class=\"k\">import<\/span> <span class=\"p\">{<\/span> <span class=\"nx\">compileSync<\/span> <span class=\"p\">}<\/span> <span class=\"k\">from<\/span> <span class=\"dl\">'<\/span><span class=\"s1\">@mdx-js\/mdx<\/span><span class=\"dl\">'<\/span><span class=\"p\">;<\/span>\n<span class=\"k\">import<\/span> <span class=\"p\">{<\/span> <span class=\"nx\">loadLocale<\/span> <span class=\"p\">}<\/span> <span class=\"k\">from<\/span> <span class=\"dl\">'<\/span><span class=\"s1\">.\/localization.mjs<\/span><span class=\"dl\">'<\/span><span class=\"p\">;<\/span>\n\n<span class=\"kd\">function<\/span> <span class=\"nf\">fromMarkdown<\/span><span class=\"p\">(<\/span><span class=\"nx\">content<\/span><span class=\"p\">)<\/span> <span class=\"p\">{<\/span>\n  <span class=\"kd\">let<\/span> <span class=\"nx\">result<\/span> <span class=\"o\">=<\/span> <span class=\"p\">{};<\/span>\n  <span class=\"nf\">compileSync<\/span><span class=\"p\">(<\/span><span class=\"nx\">content<\/span><span class=\"p\">,<\/span> <span class=\"p\">{<\/span>\n    <span class=\"na\">development<\/span><span class=\"p\">:<\/span> <span class=\"kc\">false<\/span><span class=\"p\">,<\/span>\n    <span class=\"na\">recmaPlugins<\/span><span class=\"p\">:<\/span> <span class=\"p\">[<\/span>\n      <span class=\"p\">()<\/span> <span class=\"o\">=&gt;<\/span> <span class=\"p\">(<\/span><span class=\"nx\">ast<\/span><span class=\"p\">)<\/span> <span class=\"o\">=&gt;<\/span> <span class=\"p\">{<\/span>\n        <span class=\"kd\">const<\/span> <span class=\"p\">[,<\/span> <span class=\"nx\">fn<\/span><span class=\"p\">]<\/span> <span class=\"o\">=<\/span> <span class=\"nx\">ast<\/span><span class=\"p\">.<\/span><span class=\"nx\">body<\/span><span class=\"p\">;<\/span>\n        <span class=\"nx\">result<\/span> <span class=\"o\">=<\/span> <span class=\"p\">{<\/span>\n          <span class=\"na\">type<\/span><span class=\"p\">:<\/span> <span class=\"dl\">'<\/span><span class=\"s1\">CallExpression<\/span><span class=\"dl\">'<\/span><span class=\"p\">,<\/span>\n          <span class=\"na\">optional<\/span><span class=\"p\">:<\/span> <span class=\"kc\">false<\/span><span class=\"p\">,<\/span>\n          <span class=\"na\">callee<\/span><span class=\"p\">:<\/span> <span class=\"p\">{<\/span>\n            <span class=\"p\">...<\/span><span class=\"nx\">fn<\/span><span class=\"p\">,<\/span>\n            <span class=\"na\">id<\/span><span class=\"p\">:<\/span> <span class=\"kc\">null<\/span><span class=\"p\">,<\/span>\n          <span class=\"p\">},<\/span>\n          <span class=\"na\">arguments<\/span><span class=\"p\">:<\/span> <span class=\"p\">[<\/span>\n            <span class=\"p\">{<\/span>\n              <span class=\"na\">type<\/span><span class=\"p\">:<\/span> <span class=\"dl\">'<\/span><span class=\"s1\">ObjectExpression<\/span><span class=\"dl\">'<\/span><span class=\"p\">,<\/span>\n              <span class=\"na\">properties<\/span><span class=\"p\">:<\/span> <span class=\"p\">[],<\/span>\n            <span class=\"p\">},<\/span>\n          <span class=\"p\">],<\/span>\n        <span class=\"p\">};<\/span>\n      <span class=\"p\">},<\/span>\n    <span class=\"p\">],<\/span>\n  <span class=\"p\">});<\/span>\n\n  <span class=\"k\">return<\/span> <span class=\"nx\">result<\/span><span class=\"p\">;<\/span>\n<span class=\"p\">}<\/span>\n\n<span class=\"kd\">function<\/span> <span class=\"nf\">getExpression<\/span><span class=\"p\">(<\/span><span class=\"nx\">content<\/span><span class=\"p\">,<\/span> <span class=\"nx\">key<\/span><span class=\"p\">)<\/span> <span class=\"p\">{<\/span>\n  <span class=\"k\">switch <\/span><span class=\"p\">(<\/span><span class=\"k\">typeof<\/span> <span class=\"nx\">content<\/span><span class=\"p\">)<\/span> <span class=\"p\">{<\/span>\n    <span class=\"k\">case<\/span> <span class=\"dl\">'<\/span><span class=\"s1\">object<\/span><span class=\"dl\">'<\/span><span class=\"p\">:<\/span>\n      <span class=\"k\">if <\/span><span class=\"p\">(<\/span><span class=\"nb\">Array<\/span><span class=\"p\">.<\/span><span class=\"nf\">isArray<\/span><span class=\"p\">(<\/span><span class=\"nx\">content<\/span><span class=\"p\">))<\/span> <span class=\"p\">{<\/span>\n        <span class=\"k\">return<\/span> <span class=\"p\">{<\/span>\n          <span class=\"na\">type<\/span><span class=\"p\">:<\/span> <span class=\"dl\">'<\/span><span class=\"s1\">ArrayExpression<\/span><span class=\"dl\">'<\/span><span class=\"p\">,<\/span>\n          <span class=\"na\">elements<\/span><span class=\"p\">:<\/span> <span class=\"nx\">content<\/span><span class=\"p\">.<\/span><span class=\"nf\">map<\/span><span class=\"p\">((<\/span><span class=\"nx\">item<\/span><span class=\"p\">,<\/span> <span class=\"nx\">i<\/span><span class=\"p\">)<\/span> <span class=\"o\">=&gt;<\/span> <span class=\"nf\">getExpression<\/span><span class=\"p\">(<\/span><span class=\"nx\">item<\/span><span class=\"p\">,<\/span> <span class=\"s2\">`<\/span><span class=\"p\">${<\/span><span class=\"nx\">i<\/span><span class=\"p\">}<\/span><span class=\"s2\">`<\/span><span class=\"p\">)),<\/span>\n        <span class=\"p\">};<\/span>\n      <span class=\"p\">}<\/span>\n\n      <span class=\"k\">return<\/span> <span class=\"p\">{<\/span>\n        <span class=\"na\">type<\/span><span class=\"p\">:<\/span> <span class=\"dl\">'<\/span><span class=\"s1\">ObjectExpression<\/span><span class=\"dl\">'<\/span><span class=\"p\">,<\/span>\n        <span class=\"na\">properties<\/span><span class=\"p\">:<\/span> <span class=\"nb\">Object<\/span><span class=\"p\">.<\/span><span class=\"nf\">entries<\/span><span class=\"p\">(<\/span><span class=\"nx\">content<\/span><span class=\"p\">).<\/span><span class=\"nf\">map<\/span><span class=\"p\">(([<\/span><span class=\"nx\">name<\/span><span class=\"p\">,<\/span> <span class=\"nx\">value<\/span><span class=\"p\">])<\/span> <span class=\"o\">=&gt;<\/span> <span class=\"p\">({<\/span>\n          <span class=\"na\">type<\/span><span class=\"p\">:<\/span> <span class=\"dl\">'<\/span><span class=\"s1\">Property<\/span><span class=\"dl\">'<\/span><span class=\"p\">,<\/span>\n          <span class=\"na\">key<\/span><span class=\"p\">:<\/span> <span class=\"p\">{<\/span>\n            <span class=\"na\">type<\/span><span class=\"p\">:<\/span> <span class=\"dl\">'<\/span><span class=\"s1\">Identifier<\/span><span class=\"dl\">'<\/span><span class=\"p\">,<\/span>\n            <span class=\"nx\">name<\/span><span class=\"p\">,<\/span>\n          <span class=\"p\">},<\/span>\n          <span class=\"na\">value<\/span><span class=\"p\">:<\/span> <span class=\"nf\">getExpression<\/span><span class=\"p\">(<\/span><span class=\"nx\">value<\/span><span class=\"p\">,<\/span> <span class=\"nx\">name<\/span><span class=\"p\">),<\/span>\n          <span class=\"na\">kind<\/span><span class=\"p\">:<\/span> <span class=\"dl\">'<\/span><span class=\"s1\">init<\/span><span class=\"dl\">'<\/span><span class=\"p\">,<\/span>\n        <span class=\"p\">})),<\/span>\n      <span class=\"p\">};<\/span>\n    <span class=\"k\">case<\/span> <span class=\"dl\">'<\/span><span class=\"s1\">number<\/span><span class=\"dl\">'<\/span><span class=\"p\">:<\/span>\n    <span class=\"k\">case<\/span> <span class=\"dl\">'<\/span><span class=\"s1\">boolean<\/span><span class=\"dl\">'<\/span><span class=\"p\">:<\/span>\n      <span class=\"k\">return<\/span> <span class=\"p\">{<\/span>\n        <span class=\"na\">type<\/span><span class=\"p\">:<\/span> <span class=\"dl\">'<\/span><span class=\"s1\">Literal<\/span><span class=\"dl\">'<\/span><span class=\"p\">,<\/span>\n        <span class=\"na\">value<\/span><span class=\"p\">:<\/span> <span class=\"nx\">content<\/span><span class=\"p\">,<\/span>\n      <span class=\"p\">};<\/span>\n    <span class=\"k\">case<\/span> <span class=\"dl\">'<\/span><span class=\"s1\">string<\/span><span class=\"dl\">'<\/span><span class=\"p\">:<\/span>\n      <span class=\"k\">if <\/span><span class=\"p\">(<\/span><span class=\"nx\">key<\/span><span class=\"p\">.<\/span><span class=\"nf\">endsWith<\/span><span class=\"p\">(<\/span><span class=\"dl\">'<\/span><span class=\"s1\">$<\/span><span class=\"dl\">'<\/span><span class=\"p\">))<\/span> <span class=\"p\">{<\/span>\n        <span class=\"c1\">\/\/ uses potentially markdown<\/span>\n        <span class=\"k\">return<\/span> <span class=\"nf\">fromMarkdown<\/span><span class=\"p\">(<\/span><span class=\"nx\">content<\/span><span class=\"p\">);<\/span>\n      <span class=\"p\">}<\/span>\n\n      <span class=\"k\">return<\/span> <span class=\"p\">{<\/span>\n        <span class=\"na\">type<\/span><span class=\"p\">:<\/span> <span class=\"dl\">'<\/span><span class=\"s1\">Literal<\/span><span class=\"dl\">'<\/span><span class=\"p\">,<\/span>\n        <span class=\"na\">value<\/span><span class=\"p\">:<\/span> <span class=\"nx\">content<\/span><span class=\"p\">,<\/span>\n      <span class=\"p\">};<\/span>\n    <span class=\"k\">case<\/span> <span class=\"dl\">'<\/span><span class=\"s1\">undefined<\/span><span class=\"dl\">'<\/span><span class=\"p\">:<\/span>\n    <span class=\"k\">default<\/span><span class=\"p\">:<\/span>\n      <span class=\"k\">return<\/span> <span class=\"p\">{<\/span>\n        <span class=\"na\">type<\/span><span class=\"p\">:<\/span> <span class=\"dl\">'<\/span><span class=\"s1\">Literal<\/span><span class=\"dl\">'<\/span><span class=\"p\">,<\/span>\n        <span class=\"na\">value<\/span><span class=\"p\">:<\/span> <span class=\"kc\">null<\/span><span class=\"p\">,<\/span>\n      <span class=\"p\">};<\/span>\n  <span class=\"p\">}<\/span>\n<span class=\"p\">}<\/span>\n\n<span class=\"k\">async<\/span> <span class=\"kd\">function<\/span> <span class=\"nf\">transform<\/span><span class=\"p\">(<\/span><span class=\"nx\">ast<\/span><span class=\"p\">,<\/span> <span class=\"nx\">vfile<\/span><span class=\"p\">)<\/span> <span class=\"p\">{<\/span>\n  <span class=\"kd\">const<\/span> <span class=\"nx\">language<\/span> <span class=\"o\">=<\/span> <span class=\"nx\">process<\/span><span class=\"p\">.<\/span><span class=\"nx\">env<\/span><span class=\"p\">.<\/span><span class=\"nx\">WEBSITE_LOCALE<\/span> <span class=\"o\">||<\/span> <span class=\"dl\">'<\/span><span class=\"s1\">en<\/span><span class=\"dl\">'<\/span><span class=\"p\">;<\/span>\n\n  <span class=\"kd\">const<\/span> <span class=\"nx\">source<\/span> <span class=\"o\">=<\/span> <span class=\"nx\">vfile<\/span><span class=\"p\">.<\/span><span class=\"nx\">history<\/span><span class=\"p\">[<\/span><span class=\"mi\">0<\/span><span class=\"p\">];<\/span>\n  <span class=\"kd\">const<\/span> <span class=\"nx\">locale<\/span> <span class=\"o\">=<\/span> <span class=\"k\">await<\/span> <span class=\"nf\">loadLocale<\/span><span class=\"p\">(<\/span><span class=\"nx\">source<\/span><span class=\"p\">,<\/span> <span class=\"nx\">language<\/span><span class=\"p\">);<\/span>\n\n  <span class=\"kd\">const<\/span> <span class=\"nx\">idx<\/span> <span class=\"o\">=<\/span> <span class=\"nx\">ast<\/span><span class=\"p\">.<\/span><span class=\"nx\">body<\/span><span class=\"p\">.<\/span><span class=\"nf\">findLastIndex<\/span><span class=\"p\">((<\/span><span class=\"nx\">m<\/span><span class=\"p\">)<\/span> <span class=\"o\">=&gt;<\/span> <span class=\"nx\">m<\/span><span class=\"p\">.<\/span><span class=\"nx\">type<\/span> <span class=\"o\">===<\/span> <span class=\"dl\">'<\/span><span class=\"s1\">ImportDeclaration<\/span><span class=\"dl\">'<\/span><span class=\"p\">);<\/span>\n  <span class=\"kd\">const<\/span> <span class=\"nx\">imprt<\/span> <span class=\"o\">=<\/span> <span class=\"nx\">ast<\/span><span class=\"p\">.<\/span><span class=\"nx\">body<\/span><span class=\"p\">.<\/span><span class=\"nf\">find<\/span><span class=\"p\">((<\/span><span class=\"nx\">node<\/span><span class=\"p\">)<\/span> <span class=\"o\">=&gt;<\/span> <span class=\"nx\">node<\/span><span class=\"p\">.<\/span><span class=\"nx\">type<\/span> <span class=\"o\">===<\/span> <span class=\"dl\">'<\/span><span class=\"s1\">ImportDeclaration<\/span><span class=\"dl\">'<\/span> <span class=\"o\">&amp;&amp;<\/span> <span class=\"nx\">node<\/span><span class=\"p\">.<\/span><span class=\"nx\">source<\/span><span class=\"p\">.<\/span><span class=\"nx\">value<\/span> <span class=\"o\">===<\/span> <span class=\"dl\">'<\/span><span class=\"s1\">react\/jsx-runtime<\/span><span class=\"dl\">'<\/span><span class=\"p\">);<\/span>\n\n  <span class=\"kd\">const<\/span> <span class=\"nx\">requiredImports<\/span> <span class=\"o\">=<\/span> <span class=\"p\">[<\/span>\n    <span class=\"p\">[<\/span><span class=\"dl\">'<\/span><span class=\"s1\">_jsx<\/span><span class=\"dl\">'<\/span><span class=\"p\">,<\/span> <span class=\"dl\">'<\/span><span class=\"s1\">jsx<\/span><span class=\"dl\">'<\/span><span class=\"p\">],<\/span>\n    <span class=\"p\">[<\/span><span class=\"dl\">'<\/span><span class=\"s1\">_jsxs<\/span><span class=\"dl\">'<\/span><span class=\"p\">,<\/span> <span class=\"dl\">'<\/span><span class=\"s1\">jsxs<\/span><span class=\"dl\">'<\/span><span class=\"p\">],<\/span>\n    <span class=\"p\">[<\/span><span class=\"dl\">'<\/span><span class=\"s1\">_Fragment<\/span><span class=\"dl\">'<\/span><span class=\"p\">,<\/span> <span class=\"dl\">'<\/span><span class=\"s1\">Fragment<\/span><span class=\"dl\">'<\/span><span class=\"p\">],<\/span>\n  <span class=\"p\">];<\/span>\n\n  <span class=\"k\">for <\/span><span class=\"p\">(<\/span><span class=\"kd\">const<\/span> <span class=\"nx\">requiredImport<\/span> <span class=\"k\">of<\/span> <span class=\"nx\">requiredImports<\/span><span class=\"p\">)<\/span> <span class=\"p\">{<\/span>\n    <span class=\"kd\">const<\/span> <span class=\"p\">[<\/span><span class=\"nx\">alias<\/span><span class=\"p\">,<\/span> <span class=\"nx\">original<\/span><span class=\"p\">]<\/span> <span class=\"o\">=<\/span> <span class=\"nx\">requiredImport<\/span><span class=\"p\">;<\/span>\n\n    <span class=\"k\">if <\/span><span class=\"p\">(<\/span><span class=\"o\">!<\/span><span class=\"nx\">imprt<\/span><span class=\"p\">.<\/span><span class=\"nx\">specifiers<\/span><span class=\"p\">.<\/span><span class=\"nf\">find<\/span><span class=\"p\">((<\/span><span class=\"nx\">node<\/span><span class=\"p\">)<\/span> <span class=\"o\">=&gt;<\/span> <span class=\"nx\">node<\/span><span class=\"p\">.<\/span><span class=\"nx\">type<\/span> <span class=\"o\">===<\/span> <span class=\"dl\">'<\/span><span class=\"s1\">ImportSpecifier<\/span><span class=\"dl\">'<\/span> <span class=\"o\">&amp;&amp;<\/span> <span class=\"nx\">node<\/span><span class=\"p\">.<\/span><span class=\"nx\">imported<\/span><span class=\"p\">.<\/span><span class=\"nx\">name<\/span> <span class=\"o\">===<\/span> <span class=\"nx\">original<\/span><span class=\"p\">))<\/span> <span class=\"p\">{<\/span>\n      <span class=\"nx\">imprt<\/span><span class=\"p\">.<\/span><span class=\"nx\">specifiers<\/span><span class=\"p\">.<\/span><span class=\"nf\">push<\/span><span class=\"p\">({<\/span>\n        <span class=\"na\">type<\/span><span class=\"p\">:<\/span> <span class=\"dl\">'<\/span><span class=\"s1\">ImportSpecifier<\/span><span class=\"dl\">'<\/span><span class=\"p\">,<\/span>\n        <span class=\"na\">imported<\/span><span class=\"p\">:<\/span> <span class=\"p\">{<\/span>\n          <span class=\"na\">type<\/span><span class=\"p\">:<\/span> <span class=\"dl\">'<\/span><span class=\"s1\">Identifier<\/span><span class=\"dl\">'<\/span><span class=\"p\">,<\/span>\n          <span class=\"na\">name<\/span><span class=\"p\">:<\/span> <span class=\"nx\">original<\/span><span class=\"p\">,<\/span>\n        <span class=\"p\">},<\/span>\n        <span class=\"na\">local<\/span><span class=\"p\">:<\/span> <span class=\"p\">{<\/span>\n          <span class=\"na\">type<\/span><span class=\"p\">:<\/span> <span class=\"dl\">'<\/span><span class=\"s1\">Identifier<\/span><span class=\"dl\">'<\/span><span class=\"p\">,<\/span>\n          <span class=\"na\">name<\/span><span class=\"p\">:<\/span> <span class=\"nx\">alias<\/span><span class=\"p\">,<\/span>\n        <span class=\"p\">},<\/span>\n      <span class=\"p\">});<\/span>\n    <span class=\"p\">}<\/span>\n  <span class=\"p\">}<\/span>\n\n  <span class=\"nx\">ast<\/span><span class=\"p\">.<\/span><span class=\"nx\">body<\/span><span class=\"p\">.<\/span><span class=\"nf\">splice<\/span><span class=\"p\">(<\/span><span class=\"nx\">idx<\/span> <span class=\"o\">+<\/span> <span class=\"mi\">1<\/span><span class=\"p\">,<\/span> <span class=\"mi\">0<\/span><span class=\"p\">,<\/span> <span class=\"p\">{<\/span>\n    <span class=\"na\">type<\/span><span class=\"p\">:<\/span> <span class=\"dl\">'<\/span><span class=\"s1\">VariableDeclaration<\/span><span class=\"dl\">'<\/span><span class=\"p\">,<\/span>\n    <span class=\"na\">kind<\/span><span class=\"p\">:<\/span> <span class=\"dl\">'<\/span><span class=\"s1\">const<\/span><span class=\"dl\">'<\/span><span class=\"p\">,<\/span>\n    <span class=\"na\">declarations<\/span><span class=\"p\">:<\/span> <span class=\"p\">[<\/span>\n      <span class=\"p\">{<\/span>\n        <span class=\"na\">type<\/span><span class=\"p\">:<\/span> <span class=\"dl\">'<\/span><span class=\"s1\">VariableDeclarator<\/span><span class=\"dl\">'<\/span><span class=\"p\">,<\/span>\n        <span class=\"na\">id<\/span><span class=\"p\">:<\/span> <span class=\"p\">{<\/span>\n          <span class=\"na\">type<\/span><span class=\"p\">:<\/span> <span class=\"dl\">'<\/span><span class=\"s1\">Identifier<\/span><span class=\"dl\">'<\/span><span class=\"p\">,<\/span>\n          <span class=\"na\">name<\/span><span class=\"p\">:<\/span> <span class=\"dl\">'<\/span><span class=\"s1\">locale<\/span><span class=\"dl\">'<\/span><span class=\"p\">,<\/span>\n        <span class=\"p\">},<\/span>\n        <span class=\"na\">init<\/span><span class=\"p\">:<\/span> <span class=\"nf\">getExpression<\/span><span class=\"p\">(<\/span><span class=\"nx\">locale<\/span><span class=\"p\">,<\/span> <span class=\"nx\">language<\/span><span class=\"p\">),<\/span>\n      <span class=\"p\">},<\/span>\n    <span class=\"p\">],<\/span>\n  <span class=\"p\">});<\/span>\n<span class=\"p\">}<\/span>\n\n<span class=\"kd\">const<\/span> <span class=\"nx\">plugin<\/span> <span class=\"o\">=<\/span> <span class=\"p\">()<\/span> <span class=\"o\">=&gt;<\/span> <span class=\"nx\">transform<\/span><span class=\"p\">;<\/span>\n\n<span class=\"k\">export<\/span> <span class=\"k\">default<\/span> <span class=\"nx\">plugin<\/span><span class=\"p\">;<\/span>\n<\/code><\/pre>\n<\/div>\n<p>\u0628\u0647 \u0646\u0638\u0631 \u067e\u06cc\u0686\u06cc\u062f\u0647 \u062a\u0631 \u0627\u0632 \u0622\u0646 \u0686\u06cc\u0632\u06cc \u0627\u0633\u062a \u06a9\u0647 \u0628\u0627\u06cc\u062f \u0628\u0627\u0634\u062f! \u062f\u0631 \u067e\u0627\u06cc\u0627\u0646\u060c \u0647\u0645\u0647 \u0686\u06cc\u0632 \u0628\u0647 \u062a\u063a\u06cc\u06cc\u0631 AST \u062e\u0644\u0627\u0635\u0647 \u0645\u06cc \u0634\u0648\u062f<\/p>\n<ul>\n<li>\u0628\u062f\u0633\u062a \u0622\u0648\u0631\u062f\u0646 <code>locale<\/code> \u0628\u0631\u0627\u06cc \u0633\u0646\u062f<\/li>\n<li>\u0648\u0627\u0631\u062f \u06a9\u0631\u062f\u0646 \u0646\u0627\u0645 \u0628\u0627\u0644\u0642\u0648\u0647 \u06af\u0645\u0634\u062f\u0647 (\u0628\u0631\u0627\u06cc \u067e\u0634\u062a\u06cc\u0628\u0627\u0646\u06cc \u06a9\u0627\u0645\u0644 \u0627\u0632 Markdown \/ \u0645\u062d\u062a\u0648\u0627\u06cc \u062a\u0648\u0644\u06cc\u062f \u0634\u062f\u0647\u060c \u062f\u0631 \u0635\u0648\u0631\u062a \u0648\u062c\u0648\u062f) \u062f\u0631 <code>react\/jsx-runtime<\/code> \u0648\u0627\u0631\u062f\u0627\u062a<\/li>\n<li>\u062f\u0631\u062c \u06a9\u0646\u06cc\u062f <code>locale<\/code> \u0627\u0639\u0644\u0627\u0645\u06cc\u0647 &#8211; \u0627\u0648\u0644\u06cc\u0646 \u0686\u06cc\u0632 <em>\u0628\u0639\u062f \u0627\u0632<\/em> \u0648\u0627\u0631\u062f\u0627\u062a (\u0627\u0632 \u0627\u06cc\u0646 \u0637\u0631\u06cc\u0642 \u0645\u06cc \u062a\u0648\u0627\u0646\u06cc\u062f \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u06a9\u0646\u06cc\u062f <code>locale<\/code> \u062a\u0642\u0631\u06cc\u0628\u0627\u064b \u062f\u0631 \u0647\u0645\u0647 \u062c\u0627\u06cc \u0633\u0646\u062f<\/li>\n<li>\u0645\u0642\u062f\u0627\u0631\u062f\u0647\u06cc \u0627\u0648\u0644\u06cc\u0647 <code>locale<\/code> \u0645\u062a\u063a\u06cc\u0631 \u0634\u06cc\u0626\u06cc \u0628\u0627\u0634\u062f \u06a9\u0647 \u0645\u06cc \u0634\u0646\u0627\u0633\u06cc\u0645. \u0628\u0647 \u0627\u0633\u062a\u062b\u0646\u0627\u06cc \u0631\u0634\u062a\u0647 \u0647\u0627\u06cc Markdown (\u067e\u0633\u0648\u0646\u062f \u0628\u0627 <code>$<\/code>): \u0627\u06cc\u0646\u0647\u0627 \u0628\u0647 \u06cc\u06a9 IIFE \u062a\u0628\u062f\u06cc\u0644 \u0645\u06cc \u0634\u0648\u0646\u062f \u06a9\u0647 \u06a9\u062f MDX \u0627\u0635\u0644\u06cc \u0631\u0627 \u062d\u0641\u0638 \u0645\u06cc \u06a9\u0646\u062f<\/li>\n<\/ul>\n<p>\u06cc\u06a9 \u0631\u0627\u0647 \u062e\u0648\u0628 \u0628\u0631\u0627\u06cc \u062f\u06cc\u062f\u0646 \u06a9\u0627\u0631\u0647\u0627\u06cc\u06cc \u06a9\u0647 \u0627\u0646\u062c\u0627\u0645 \u0645\u06cc \u062f\u0647\u06cc\u0645 \u0631\u0627 \u0645\u06cc \u062a\u0648\u0627\u0646 \u0628\u0627 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 \u0632\u0645\u06cc\u0646 \u0628\u0627\u0632\u06cc MDX \u0645\u0634\u0627\u0647\u062f\u0647 \u06a9\u0631\u062f.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/media.dev.to\/cdn-cgi\/image\/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto\/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F8c58rl9ib54w7cm9geba.png\" alt=\"\u06a9\u062f \u06a9\u0627\u0645\u067e\u0627\u06cc\u0644 \u0634\u062f\u0647\" width=\"800\" height=\"464\" title=\"\"><\/p>\n<p>\u0647\u0645\u0627\u0646\u0637\u0648\u0631 \u06a9\u0647 \u0645\u06cc \u0628\u06cc\u0646\u06cc\u062f \u06a9\u062f \u06a9\u0627\u0645\u067e\u0627\u06cc\u0644 \u0634\u062f\u0647 \u06a9\u0645\u06cc \u0639\u062c\u06cc\u0628 \u0627\u0633\u062a\u060c \u0627\u0645\u0627 \u0645\u06cc \u062a\u0648\u0627\u0646\u062f \u0628\u0647 \u062e\u0648\u0628\u06cc \u0628\u0647 \u0641\u0627\u06cc\u0644 MDX \u0627\u0635\u0644\u06cc \u0645\u0627 \u0646\u06af\u0627\u0634\u062a \u0634\u0648\u062f.<\/p>\n<p>\u062f\u0631 \u0645\u0642\u0627\u0628\u0644\u060c \u062f\u06cc\u062f\u06af\u0627\u0647\u06cc \u06a9\u0647 \u062f\u0631 \u0648\u0627\u0642\u0639 \u0628\u06cc\u0634\u062a\u0631 \u0628\u0647 \u0622\u0646 \u0639\u0644\u0627\u0642\u0647 \u062f\u0627\u0631\u06cc\u0645\u060c \u0645\u0631\u062d\u0644\u0647 \u0642\u0628\u0644 \u0627\u0632 \u0642\u0631\u0627\u0631 \u06af\u0631\u0641\u062a\u0646 \u06a9\u062f \u062f\u0631 \u0622\u0646 \u062d\u0627\u0644\u062a \u06a9\u0627\u0645\u067e\u0627\u06cc\u0644 \u0634\u062f\u0647 \u0627\u0633\u062a. \u0627\u06cc\u0646 \u0646\u0645\u0627\u06cc &#8220;east&#8221; \u062f\u0631 \u0632\u0645\u06cc\u0646 \u0628\u0627\u0632\u06cc \u0627\u0633\u062a (\u06cc\u0639\u0646\u06cc AST \u0635\u062d\u0646\u0647 ESTree).<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/media.dev.to\/cdn-cgi\/image\/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto\/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fvci3lla78gbyegntv56e.png\" alt=\"\u0646\u0645\u0627\u06cc\u0646\u062f\u06af\u06cc ESTree\" width=\"800\" height=\"496\" title=\"\"><\/p>\n<p>\u0686\u06cc\u0632\u06cc \u06a9\u0647 \u0645\u06cc \u062e\u0648\u0627\u0647\u06cc\u0645 \u0628\u0627 \u0627\u0641\u0632\u0648\u0646\u0647 \u062e\u0648\u062f \u0628\u0647 \u062f\u0633\u062a \u0622\u0648\u0631\u06cc\u0645 \u0627\u06cc\u0646 \u0627\u0633\u062a \u06a9\u0647 \u0634\u0631\u0648\u0639 \u0631\u0627 \u062f\u0633\u062a\u06a9\u0627\u0631\u06cc \u0645\u06cc \u06a9\u0646\u06cc\u0645. \u0645\u062a\u0623\u0633\u0641\u0627\u0646\u0647\u060c \u0628\u0647 \u0637\u0648\u0631 \u0645\u0633\u062a\u0642\u06cc\u0645 \u062f\u0631 \u06a9\u062f MDX \u0645\u0627 \u0628\u0627\u06cc\u062f \u0627\u0632 \u06cc\u06a9 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u06a9\u0646\u06cc\u0645 <code>export<\/code> \u0628\u0631\u0627\u06cc \u0622\u0646\u060c \u0627\u0645\u0627 \u0628\u0627 \u062f\u0633\u062a\u06a9\u0627\u0631\u06cc \u0645\u0633\u062a\u0642\u06cc\u0645 AST \u0645\u0627 \u062f\u0631 \u0648\u0627\u0642\u0639 \u0628\u0647 \u0622\u0646 \u0646\u06cc\u0627\u0632 \u0646\u062f\u0627\u0631\u06cc\u0645.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/media.dev.to\/cdn-cgi\/image\/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto\/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Febj3ranmzxh6izea13tf.png\" alt=\"\u0645\u0641\u0647\u0648\u0645 \u06a9\u0627\u0631\u06cc \u06a9\u0647 \u0645\u06cc \u062e\u0648\u0627\u0647\u06cc\u0645 \u0627\u0646\u062c\u0627\u0645 \u062f\u0647\u06cc\u0645\" width=\"800\" height=\"518\" title=\"\"><\/p>\n<p>\u0628\u0631\u0627\u06cc \u0628\u0647 \u062f\u0633\u062a \u0622\u0648\u0631\u062f\u0646 <code>locale<\/code> \u0645\u062a\u063a\u06cc\u0631 \/ \u0634\u06cc \u0645\u0627 <code>loadLocale<\/code> \u0639\u0645\u0644\u06a9\u0631\u062f \u0627\u0632 \u06cc\u06a9 \u0645\u0627\u0698\u0648\u0644 \u0627\u062e\u062a\u0635\u0627\u0635\u06cc<\/p>\n<p>\u0627\u06cc\u0646 \u0645\u0627\u0698\u0648\u0644 \u0627\u0646\u062c\u0627\u0645 \u0645\u06cc \u062f\u0647\u062f:<\/p>\n<ol>\n<li>\u062a\u0631\u062c\u0645\u0647 \u0647\u0627\u06cc \u062e\u0627\u0635 \u0645\u062d\u0644\u06cc \/ \u0641\u0627\u06cc\u0644 \u0631\u0627 \u0628\u062e\u0648\u0627\u0646\u06cc\u062f \u0648 \u062a\u062c\u0632\u06cc\u0647 \u06a9\u0646\u06cc\u062f<\/li>\n<li>\u062a\u0631\u062c\u0645\u0647 \u0647\u0627\u06cc \u0632\u0628\u0627\u0646 \u062e\u0627\u0635 \u0641\u0627\u06cc\u0644 \u0645\u062d\u0644\u06cc \u0631\u0627 \u062f\u0631\u06cc\u0627\u0641\u062a \u06a9\u0646\u06cc\u062f<\/li>\n<li>\u062a\u0631\u062c\u0645\u0647 \u0647\u0627\u06cc \u062c\u0647\u0627\u0646\u06cc \u0631\u0627 \u0628\u062e\u0648\u0627\u0646\u06cc\u062f \u0648 \u062a\u062c\u0632\u06cc\u0647 \u06a9\u0646\u06cc\u062f<\/li>\n<li>\u062a\u0631\u062c\u0645\u0647 \u0647\u0627\u06cc \u0632\u0628\u0627\u0646 \u062e\u0627\u0635 \u0641\u0627\u06cc\u0644 \u0633\u0631\u0627\u0633\u0631\u06cc \u0631\u0627 \u062f\u0631\u06cc\u0627\u0641\u062a \u06a9\u0646\u06cc\u062f<\/li>\n<li>\u0627\u062f\u063a\u0627\u0645 \u0628\u0627 \u062a\u0631\u062c\u0645\u0647 \u0647\u0627\u06cc \u0645\u062d\u0644\u06cc \u06a9\u0647 \u0628\u0627\u0644\u0627\u062a\u0631 \u062f\u0631 \u0646\u0638\u0631 \u06af\u0631\u0641\u062a\u0647 \u0645\u06cc \u0634\u0648\u0646\u062f<\/li>\n<\/ol>\n<p>\u0628\u0631\u0627\u06cc \u0628\u0647 \u062f\u0633\u062a \u0622\u0648\u0631\u062f\u0646 \u062a\u0631\u062c\u0645\u0647 \u0647\u0627\u06cc \u062e\u0627\u0635 \u0632\u0628\u0627\u0646\u060c \u0645\u0627 \u06cc\u06a9 \u062a\u0631\u062c\u0645\u0647 \u067e\u0627\u06cc\u0647 \u0631\u0627 \u0627\u0646\u062a\u062e\u0627\u0628 \u0645\u06cc \u06a9\u0646\u06cc\u0645 (\u062f\u0631 \u0645\u0648\u0631\u062f \u0645\u0627 <code>en<\/code>) \u0648 \u0627\u0632 \u0637\u0631\u06cc\u0642 \u0634\u06cc &#8220;\u0631\u0627\u0647 \u0628\u0631\u0648\u06cc\u062f&#8221;. \u0632\u0628\u0627\u0646 \u0641\u0639\u0644\u06cc (\u0628\u06af\u0630\u0631\u06cc\u0645 <code>de<\/code>) \u0633\u067e\u0633 \u06cc\u0627 \u062a\u0631\u062c\u0645\u0647 \u067e\u0627\u06cc\u0647 \u0631\u0627 \u0644\u063a\u0648 \u0645\u06cc \u06a9\u0646\u062f \u06cc\u0627 \u0641\u0642\u0637 \u0627\u0632 \u0642\u0637\u0639\u0647 \u0628\u0647 \u062f\u0633\u062a \u0622\u0645\u062f\u0647 \u0627\u0632 \u062a\u0631\u062c\u0645\u0647 \u067e\u0627\u06cc\u0647 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0645\u06cc \u06a9\u0646\u062f.<\/p>\n<p>\u0634\u0645\u0627 \u0645\u06cc \u062a\u0648\u0627\u0646\u06cc\u062f \u0627\u06cc\u0646 \u0641\u0631\u0622\u06cc\u0646\u062f \u0631\u0627 \u0628\u0647 \u0639\u0646\u0648\u0627\u0646 \u06cc\u06a9 \u0627\u062f\u063a\u0627\u0645 \u0639\u0645\u06cc\u0642 \u0628\u0627 \u062a\u0631\u062c\u0645\u0647 \u0627\u0635\u0644\u06cc \u06a9\u0647 \u062a\u0631\u062c\u0645\u0647 \u0627\u0635\u0644\u06cc \u0627\u0633\u062a \u062f\u0631 \u0646\u0638\u0631 \u0628\u06af\u06cc\u0631\u06cc\u062f.\n<\/p>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight javascript\"><code><span class=\"k\">import<\/span> <span class=\"p\">{<\/span> <span class=\"nx\">readFile<\/span> <span class=\"p\">}<\/span> <span class=\"k\">from<\/span> <span class=\"dl\">'<\/span><span class=\"s1\">fs\/promises<\/span><span class=\"dl\">'<\/span><span class=\"p\">;<\/span>\n<span class=\"k\">import<\/span> <span class=\"p\">{<\/span> <span class=\"nx\">resolve<\/span> <span class=\"p\">}<\/span> <span class=\"k\">from<\/span> <span class=\"dl\">'<\/span><span class=\"s1\">path<\/span><span class=\"dl\">'<\/span><span class=\"p\">;<\/span>\n<span class=\"k\">import<\/span> <span class=\"p\">{<\/span> <span class=\"nx\">parse<\/span> <span class=\"p\">}<\/span> <span class=\"k\">from<\/span> <span class=\"dl\">'<\/span><span class=\"s1\">yaml<\/span><span class=\"dl\">'<\/span><span class=\"p\">;<\/span>\n\n<span class=\"k\">async<\/span> <span class=\"kd\">function<\/span> <span class=\"nf\">getLocalization<\/span><span class=\"p\">(<\/span><span class=\"nx\">path<\/span><span class=\"p\">)<\/span> <span class=\"p\">{<\/span>\n  <span class=\"k\">try<\/span> <span class=\"p\">{<\/span>\n    <span class=\"kd\">const<\/span> <span class=\"nx\">content<\/span> <span class=\"o\">=<\/span> <span class=\"k\">await<\/span> <span class=\"nf\">readFile<\/span><span class=\"p\">(<\/span><span class=\"nx\">path<\/span><span class=\"p\">,<\/span> <span class=\"dl\">'<\/span><span class=\"s1\">utf8<\/span><span class=\"dl\">'<\/span><span class=\"p\">);<\/span>\n    <span class=\"k\">return<\/span> <span class=\"nf\">parse<\/span><span class=\"p\">(<\/span><span class=\"nx\">content<\/span><span class=\"p\">);<\/span>\n  <span class=\"p\">}<\/span> <span class=\"k\">catch <\/span><span class=\"p\">(<\/span><span class=\"nx\">e<\/span><span class=\"p\">)<\/span> <span class=\"p\">{<\/span>\n    <span class=\"nx\">console<\/span><span class=\"p\">.<\/span><span class=\"nf\">error<\/span><span class=\"p\">(<\/span><span class=\"dl\">'<\/span><span class=\"s1\">Error reading YAML file:<\/span><span class=\"dl\">'<\/span><span class=\"p\">,<\/span> <span class=\"nx\">e<\/span><span class=\"p\">);<\/span>\n    <span class=\"k\">return<\/span> <span class=\"p\">{};<\/span>\n  <span class=\"p\">}<\/span>\n<span class=\"p\">}<\/span>\n\n<span class=\"kd\">function<\/span> <span class=\"nf\">mergeLocale<\/span><span class=\"p\">(<\/span><span class=\"nx\">result<\/span><span class=\"p\">,<\/span> <span class=\"nx\">baseLocale<\/span><span class=\"p\">,<\/span> <span class=\"nx\">newLocale<\/span><span class=\"p\">)<\/span> <span class=\"p\">{<\/span>\n  <span class=\"k\">if <\/span><span class=\"p\">(<\/span><span class=\"o\">!<\/span><span class=\"nx\">newLocale<\/span><span class=\"p\">)<\/span> <span class=\"p\">{<\/span>\n    <span class=\"nb\">Object<\/span><span class=\"p\">.<\/span><span class=\"nf\">assign<\/span><span class=\"p\">(<\/span><span class=\"nx\">result<\/span><span class=\"p\">,<\/span> <span class=\"nx\">baseLocale<\/span><span class=\"p\">);<\/span>\n  <span class=\"p\">}<\/span> <span class=\"k\">else<\/span> <span class=\"p\">{<\/span>\n    <span class=\"nb\">Object<\/span><span class=\"p\">.<\/span><span class=\"nf\">entries<\/span><span class=\"p\">(<\/span><span class=\"nx\">baseLocale<\/span><span class=\"p\">).<\/span><span class=\"nf\">forEach<\/span><span class=\"p\">(([<\/span><span class=\"nx\">name<\/span><span class=\"p\">,<\/span> <span class=\"nx\">value<\/span><span class=\"p\">])<\/span> <span class=\"o\">=&gt;<\/span> <span class=\"p\">{<\/span>\n      <span class=\"kd\">const<\/span> <span class=\"nx\">c<\/span> <span class=\"o\">=<\/span> <span class=\"nx\">newLocale<\/span><span class=\"p\">[<\/span><span class=\"nx\">name<\/span><span class=\"p\">];<\/span>\n\n      <span class=\"k\">if <\/span><span class=\"p\">(<\/span><span class=\"k\">typeof<\/span> <span class=\"nx\">value<\/span> <span class=\"o\">===<\/span> <span class=\"dl\">'<\/span><span class=\"s1\">object<\/span><span class=\"dl\">'<\/span><span class=\"p\">)<\/span> <span class=\"p\">{<\/span>\n        <span class=\"nf\">mergeLocale<\/span><span class=\"p\">((<\/span><span class=\"nx\">result<\/span><span class=\"p\">[<\/span><span class=\"nx\">name<\/span><span class=\"p\">]<\/span> <span class=\"o\">=<\/span> <span class=\"p\">{}),<\/span> <span class=\"nx\">value<\/span><span class=\"p\">,<\/span> <span class=\"nx\">c<\/span> <span class=\"o\">||<\/span> <span class=\"p\">{});<\/span>\n      <span class=\"p\">}<\/span> <span class=\"k\">else<\/span> <span class=\"k\">if <\/span><span class=\"p\">(<\/span><span class=\"k\">typeof<\/span> <span class=\"nx\">c<\/span> <span class=\"o\">===<\/span> <span class=\"dl\">'<\/span><span class=\"s1\">string<\/span><span class=\"dl\">'<\/span> <span class=\"o\">||<\/span> <span class=\"nx\">c<\/span><span class=\"p\">)<\/span> <span class=\"p\">{<\/span>\n        <span class=\"nx\">result<\/span><span class=\"p\">[<\/span><span class=\"nx\">name<\/span><span class=\"p\">]<\/span> <span class=\"o\">=<\/span> <span class=\"nx\">c<\/span><span class=\"p\">;<\/span>\n      <span class=\"p\">}<\/span> <span class=\"k\">else<\/span> <span class=\"p\">{<\/span>\n        <span class=\"nx\">result<\/span><span class=\"p\">[<\/span><span class=\"nx\">name<\/span><span class=\"p\">]<\/span> <span class=\"o\">=<\/span> <span class=\"nx\">value<\/span><span class=\"p\">;<\/span>\n      <span class=\"p\">}<\/span>\n    <span class=\"p\">});<\/span>\n  <span class=\"p\">}<\/span>\n\n  <span class=\"k\">return<\/span> <span class=\"nx\">result<\/span><span class=\"p\">;<\/span>\n<span class=\"p\">}<\/span>\n\n<span class=\"kd\">function<\/span> <span class=\"nf\">getLocale<\/span><span class=\"p\">(<\/span><span class=\"nx\">locales<\/span><span class=\"p\">,<\/span> <span class=\"nx\">lang<\/span><span class=\"p\">)<\/span> <span class=\"p\">{<\/span>\n  <span class=\"kd\">const<\/span> <span class=\"nx\">baseLocale<\/span> <span class=\"o\">=<\/span> <span class=\"nx\">locales<\/span><span class=\"p\">.<\/span><span class=\"nx\">en<\/span> <span class=\"o\">||<\/span> <span class=\"p\">{};<\/span>\n\n  <span class=\"k\">if <\/span><span class=\"p\">(<\/span><span class=\"nx\">lang<\/span> <span class=\"o\">!==<\/span> <span class=\"dl\">'<\/span><span class=\"s1\">en<\/span><span class=\"dl\">'<\/span> <span class=\"o\">&amp;&amp;<\/span> <span class=\"nx\">lang<\/span> <span class=\"k\">in<\/span> <span class=\"nx\">locales<\/span><span class=\"p\">)<\/span> <span class=\"p\">{<\/span>\n    <span class=\"kd\">const<\/span> <span class=\"nx\">newLocale<\/span> <span class=\"o\">=<\/span> <span class=\"nx\">locales<\/span><span class=\"p\">[<\/span><span class=\"nx\">lang<\/span><span class=\"p\">]<\/span> <span class=\"o\">||<\/span> <span class=\"p\">{};<\/span>\n    <span class=\"k\">return<\/span> <span class=\"nf\">mergeLocale<\/span><span class=\"p\">({},<\/span> <span class=\"nx\">baseLocale<\/span><span class=\"p\">,<\/span> <span class=\"nx\">newLocale<\/span><span class=\"p\">);<\/span>\n  <span class=\"p\">}<\/span>\n\n  <span class=\"k\">return<\/span> <span class=\"nx\">baseLocale<\/span><span class=\"p\">;<\/span>\n<span class=\"p\">}<\/span>\n\n<span class=\"k\">export<\/span> <span class=\"k\">async<\/span> <span class=\"kd\">function<\/span> <span class=\"nf\">loadLocale<\/span><span class=\"p\">(<\/span><span class=\"nx\">source<\/span><span class=\"p\">,<\/span> <span class=\"nx\">language<\/span><span class=\"p\">)<\/span> <span class=\"p\">{<\/span>\n  <span class=\"k\">if <\/span><span class=\"p\">(<\/span><span class=\"nx\">source<\/span><span class=\"p\">.<\/span><span class=\"nf\">endsWith<\/span><span class=\"p\">(<\/span><span class=\"dl\">'<\/span><span class=\"s1\">.mdx<\/span><span class=\"dl\">'<\/span><span class=\"p\">))<\/span> <span class=\"p\">{<\/span>\n    <span class=\"kd\">const<\/span> <span class=\"nx\">globalFn<\/span> <span class=\"o\">=<\/span> <span class=\"nf\">resolve<\/span><span class=\"p\">(<\/span><span class=\"k\">import<\/span><span class=\"p\">.<\/span><span class=\"nx\">meta<\/span><span class=\"p\">.<\/span><span class=\"nx\">dirname<\/span><span class=\"p\">,<\/span> <span class=\"dl\">'<\/span><span class=\"s1\">..<\/span><span class=\"dl\">'<\/span><span class=\"p\">,<\/span> <span class=\"dl\">'<\/span><span class=\"s1\">global.yml<\/span><span class=\"dl\">'<\/span><span class=\"p\">);<\/span>\n    <span class=\"kd\">const<\/span> <span class=\"nx\">targetFn<\/span> <span class=\"o\">=<\/span> <span class=\"nx\">source<\/span><span class=\"p\">.<\/span><span class=\"nf\">replace<\/span><span class=\"p\">(<\/span><span class=\"dl\">'<\/span><span class=\"s1\">.mdx<\/span><span class=\"dl\">'<\/span><span class=\"p\">,<\/span> <span class=\"dl\">'<\/span><span class=\"s1\">.yml<\/span><span class=\"dl\">'<\/span><span class=\"p\">);<\/span>\n\n    <span class=\"kd\">const<\/span> <span class=\"nx\">globals<\/span> <span class=\"o\">=<\/span> <span class=\"k\">await<\/span> <span class=\"nf\">getLocalization<\/span><span class=\"p\">(<\/span><span class=\"nx\">globalFn<\/span><span class=\"p\">);<\/span>\n    <span class=\"kd\">const<\/span> <span class=\"nx\">locales<\/span> <span class=\"o\">=<\/span> <span class=\"k\">await<\/span> <span class=\"nf\">getLocalization<\/span><span class=\"p\">(<\/span><span class=\"nx\">targetFn<\/span><span class=\"p\">);<\/span>\n\n    <span class=\"k\">return<\/span> <span class=\"p\">{<\/span>\n      <span class=\"p\">...<\/span><span class=\"nf\">getLocale<\/span><span class=\"p\">(<\/span><span class=\"nx\">globals<\/span><span class=\"p\">,<\/span> <span class=\"nx\">language<\/span><span class=\"p\">),<\/span>\n      <span class=\"p\">...<\/span><span class=\"nf\">getLocale<\/span><span class=\"p\">(<\/span><span class=\"nx\">locales<\/span><span class=\"p\">,<\/span> <span class=\"nx\">language<\/span><span class=\"p\">),<\/span>\n      <span class=\"nx\">language<\/span><span class=\"p\">,<\/span>\n    <span class=\"p\">};<\/span>\n  <span class=\"p\">}<\/span>\n\n  <span class=\"k\">return<\/span> <span class=\"p\">{<\/span> <span class=\"nx\">language<\/span> <span class=\"p\">};<\/span>\n<span class=\"p\">}<\/span>\n<\/code><\/pre>\n<\/div>\n<p>\u062a\u0631\u062c\u0645\u0647 \u0647\u0627\u06cc \u0633\u0631\u0627\u0633\u0631\u06cc \u062f\u0631 \u067e\u0648\u0634\u0647 \u0628\u0627\u0644\u0627 \u0642\u0631\u0627\u0631 \u0645\u06cc \u06af\u06cc\u0631\u0646\u062f <code>pages<\/code>. \u0646\u0627\u0645 \u0641\u0627\u06cc\u0644 \u0627\u0633\u062a <em>global.yml<\/em>.<\/p>\n<p>\u0628\u0631\u0627\u06cc <em>global.yml<\/em> \u0645\u0627 \u0641\u0642\u0637 \u0628\u0631\u062e\u06cc \u0627\u0632 \u0627\u0635\u0637\u0644\u0627\u062d\u0627\u062a \u062a\u0631\u062c\u0645\u0647 \u0628\u0633\u06cc\u0627\u0631 \u0631\u0627\u06cc\u062c \u0631\u0627 \u0630\u062e\u06cc\u0631\u0647 \u06a9\u0631\u062f\u0647 \u0627\u06cc\u0645. \u06cc\u06a9 \u0645\u062b\u0627\u0644:\n<\/p>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight yaml\"><code><span class=\"na\">de<\/span><span class=\"pi\">:<\/span>\n  <span class=\"na\">germany<\/span><span class=\"pi\">:<\/span> <span class=\"s\">Deutschland<\/span>\n<span class=\"na\">en<\/span><span class=\"pi\">:<\/span>\n  <span class=\"na\">germany<\/span><span class=\"pi\">:<\/span> <span class=\"s\">Germany<\/span>\n<\/code><\/pre>\n<\/div>\n<p>\u0632\u0645\u0627\u0646\u06cc \u06a9\u0647 \u062a\u0631\u062c\u0645\u0647\u200c\u0647\u0627\u06cc \u062c\u062f\u06cc\u062f \u0645\u06cc\u200c\u0622\u06cc\u0646\u062f\u060c \u0641\u0642\u0637 \u0645\u06cc\u200c\u062a\u0648\u0627\u0646\u06cc\u062f \u06cc\u06a9 \u0641\u0627\u06cc\u0644 \u0631\u0627 \u062a\u063a\u06cc\u06cc\u0631 \u062f\u0647\u06cc\u062f (\u06cc\u0627 \u0641\u0642\u0637 \u062a\u063a\u06cc\u06cc\u0631 \u0633\u0627\u062e\u062a\u0627\u0631 \u062f\u0631 \u06cc\u06a9 \u0645\u06a9\u0627\u0646 \u0645\u0633\u062a\u0642\u0644 \u0627\u0632 \u062a\u063a\u06cc\u06cc\u0631\u0627\u062a \u0632\u0628\u0627\u0646) \u06a9\u0627\u0631 \u0628\u0632\u0631\u06af\u06cc \u0627\u0633\u062a. \u0628\u0631\u0627\u06cc \u0645\u0627 \u0627\u06cc\u0646 \u0628\u0633\u06cc\u0627\u0631 \u0645\u0647\u0645 \u0628\u0648\u062f \u0648 \u0633\u0627\u062e\u062a\u0627\u0631 \u062c\u062f\u06cc\u062f \u0646\u0634\u0627\u0646 \u062f\u0647\u0646\u062f\u0647 \u0622\u0646 \u0627\u0633\u062a.<\/p>\n<h2><span class=\"ez-toc-section\" id=\"%D9%86%D8%AA%DB%8C%D8%AC%D9%87_%DA%AF%DB%8C%D8%B1%DB%8C\"><\/span>\n<p>  \u0646\u062a\u06cc\u062c\u0647 \u06af\u06cc\u0631\u06cc<br \/>\n<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>\u0628\u0627 \u0631\u0648\u06cc\u06a9\u0631\u062f \u062c\u062f\u06cc\u062f\u060c \u0646\u0648\u0634\u062a\u0646 \u0635\u0641\u062d\u0627\u062a \u0628\u0633\u06cc\u0627\u0631 \u0622\u0633\u0627\u0646 \u062a\u0631 \u0627\u0632 \u0642\u0628\u0644 \u0627\u0633\u062a. \u0647\u0645\u0686\u0646\u06cc\u0646\u060c \u0627\u0632 \u0622\u0646\u062c\u0627\u06cc\u06cc \u06a9\u0647 \u0645\u0627 \u0627\u06a9\u0646\u0648\u0646 \u06cc\u06a9 \u0633\u06cc\u0633\u062a\u0645 \u062a\u0631\u062c\u0645\u0647 \u062b\u0627\u0628\u062a \u062f\u0627\u0631\u06cc\u0645\u060c \u0646\u06cc\u0627\u0632\u06cc \u0628\u0647 \u06a9\u067e\u06cc \u06a9\u0631\u062f\u0646 \u0635\u0641\u062d\u0627\u062a \u06cc\u0627 \u0627\u0631\u0627\u0626\u0647 \u0633\u06cc\u0633\u062a\u0645 \u067e\u06cc\u0686\u06cc\u062f\u0647 \u0628\u0631\u0627\u06cc \u0627\u062c\u0632\u0627\u06cc \u0645\u06cc\u0627\u0646\u06cc \u0646\u062f\u0627\u0631\u06cc\u0645. \u0647\u0645\u0647 \u0627\u06cc\u0646\u0647\u0627 \u0642\u0628\u0644\u0627\u064b \u062f\u0631 \u0632\u0645\u0627\u0646 \u06a9\u0627\u0645\u067e\u0627\u06cc\u0644 \u062f\u0631 \u0633\u0627\u062e\u062a\u0627\u0631 \u062f\u0627\u062f\u0647 \u0634\u062f\u0647 \u0627\u0646\u062c\u0627\u0645 \u0634\u062f\u0647 \u0627\u0633\u062a.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Summarize this content to 400 words in Persian Lang \u062f\u0631 \u0633\u0627\u0644\u200c\u0647\u0627\u06cc \u0627\u062e\u06cc\u0631 \u0646\u06cc\u0627\u0632 \u0628\u0647 \u0642\u0627\u0644\u0628\u06cc \u0622\u0633\u0627\u0646 \u0648 \u062f\u0631 \u0639\u06cc\u0646 \u062d\u0627\u0644 \u0627\u0646\u0639\u0637\u0627\u0641\u200c\u067e\u0630\u06cc\u0631 \u0628\u0631\u0627\u06cc \u0645\u062d\u062a\u0648\u0627\u06cc \u062b\u0627\u0628\u062a \u0633\u0627\u062f\u0647 \u0627\u0641\u0632\u0627\u06cc\u0634 \u06cc\u0627\u0641\u062a\u0647 \u0627\u0633\u062a. \u062f\u0631 \u0627\u0635\u0644\u060c HTML \u0628\u0631\u0627\u06cc \u0622\u0646 \u062f\u0631 \u0646\u0638\u0631 \u06af\u0631\u0641\u062a\u0647 \u0634\u062f\u0647 \u0628\u0648\u062f &#8211; \u0627\u0645\u0627 \u0628\u06cc\u0627\u06cc\u06cc\u062f \u0635\u0627\u062f\u0642 \u0628\u0627\u0634\u06cc\u0645: \u0646\u0647 \u0633\u0627\u062f\u0647 \u0627\u0633\u062a \u0648 \u0646\u0647 \u0627\u0646\u0639\u0637\u0627\u0641 \u067e\u0630\u06cc\u0631. \u067e\u06cc\u0634\u0646\u0647\u0627\u062f\u0647\u0627\u06cc \u062c\u0627\u06cc\u06af\u0632\u06cc\u0646 \u0632\u06cc\u0627\u062f\u06cc \u0648\u062c\u0648\u062f \u062f\u0627\u0631\u062f &hellip;<\/p>\n","protected":false},"author":2,"featured_media":75589,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"fifu_image_url":"","fifu_image_alt":"","footnotes":""},"categories":[339],"tags":[],"class_list":["post-75588","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-dev"],"_links":{"self":[{"href":"https:\/\/nabfollower.com\/blog\/wp-json\/wp\/v2\/posts\/75588","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/nabfollower.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/nabfollower.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/nabfollower.com\/blog\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/nabfollower.com\/blog\/wp-json\/wp\/v2\/comments?post=75588"}],"version-history":[{"count":0,"href":"https:\/\/nabfollower.com\/blog\/wp-json\/wp\/v2\/posts\/75588\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/nabfollower.com\/blog\/wp-json\/wp\/v2\/media\/75589"}],"wp:attachment":[{"href":"https:\/\/nabfollower.com\/blog\/wp-json\/wp\/v2\/media?parent=75588"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/nabfollower.com\/blog\/wp-json\/wp\/v2\/categories?post=75588"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/nabfollower.com\/blog\/wp-json\/wp\/v2\/tags?post=75588"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}