@intlayer/docs 7.5.0-canary.1 → 7.5.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +19 -19
- package/blog/ar/intlayer_with_i18next.md +1 -1
- package/blog/ar/intlayer_with_next-i18next.md +1 -1
- package/blog/ar/intlayer_with_next-intl.md +1 -1
- package/blog/ar/intlayer_with_react-i18next.md +1 -1
- package/blog/ar/intlayer_with_react-intl.md +1 -1
- package/blog/ar/intlayer_with_vue-i18n.md +1 -1
- package/blog/ar/l10n_platform_alternative/Lokalise.md +80 -0
- package/blog/ar/l10n_platform_alternative/crowdin.md +86 -0
- package/blog/ar/l10n_platform_alternative/phrase.md +82 -0
- package/blog/de/intlayer_with_i18next.md +1 -1
- package/blog/de/intlayer_with_next-i18next.md +1 -1
- package/blog/de/intlayer_with_next-intl.md +1 -1
- package/blog/de/intlayer_with_react-i18next.md +1 -1
- package/blog/de/intlayer_with_react-intl.md +1 -1
- package/blog/de/intlayer_with_vue-i18n.md +1 -1
- package/blog/de/l10n_platform_alternative/Lokalise.md +84 -0
- package/blog/de/l10n_platform_alternative/crowdin.md +80 -0
- package/blog/de/l10n_platform_alternative/phrase.md +82 -0
- package/blog/en/intlayer_with_i18next.md +1 -1
- package/blog/en/intlayer_with_next-i18next.md +1 -1
- package/blog/en/intlayer_with_next-intl.md +1 -1
- package/blog/en/intlayer_with_react-i18next.md +1 -1
- package/blog/en/intlayer_with_react-intl.md +1 -1
- package/blog/en/intlayer_with_vue-i18n.md +1 -1
- package/blog/en/l10n_platform_alternative/Lokalise.md +80 -0
- package/blog/en/l10n_platform_alternative/crowdin.md +80 -0
- package/blog/en/l10n_platform_alternative/phrase.md +78 -0
- package/blog/en-GB/intlayer_with_i18next.md +1 -1
- package/blog/en-GB/intlayer_with_next-i18next.md +1 -1
- package/blog/en-GB/intlayer_with_next-intl.md +1 -1
- package/blog/en-GB/intlayer_with_react-i18next.md +1 -1
- package/blog/en-GB/intlayer_with_react-intl.md +1 -1
- package/blog/en-GB/intlayer_with_vue-i18n.md +1 -1
- package/blog/en-GB/l10n_platform_alternative/Lokalise.md +80 -0
- package/blog/en-GB/l10n_platform_alternative/crowdin.md +80 -0
- package/blog/en-GB/l10n_platform_alternative/phrase.md +78 -0
- package/blog/es/intlayer_with_i18next.md +1 -1
- package/blog/es/intlayer_with_next-i18next.md +1 -1
- package/blog/es/intlayer_with_next-intl.md +1 -1
- package/blog/es/intlayer_with_react-i18next.md +1 -1
- package/blog/es/intlayer_with_react-intl.md +1 -1
- package/blog/es/intlayer_with_vue-i18n.md +1 -1
- package/blog/es/l10n_platform_alternative/Lokalise.md +80 -0
- package/blog/es/l10n_platform_alternative/crowdin.md +86 -0
- package/blog/es/l10n_platform_alternative/phrase.md +84 -0
- package/blog/fr/intlayer_with_i18next.md +1 -1
- package/blog/fr/intlayer_with_next-i18next.md +1 -1
- package/blog/fr/intlayer_with_next-intl.md +1 -1
- package/blog/fr/intlayer_with_react-i18next.md +1 -1
- package/blog/fr/intlayer_with_react-intl.md +1 -1
- package/blog/fr/intlayer_with_vue-i18n.md +1 -1
- package/blog/fr/l10n_platform_alternative/Lokalise.md +84 -0
- package/blog/fr/l10n_platform_alternative/crowdin.md +86 -0
- package/blog/fr/l10n_platform_alternative/phrase.md +91 -0
- package/blog/hi/intlayer_with_i18next.md +1 -1
- package/blog/hi/intlayer_with_next-i18next.md +1 -1
- package/blog/hi/intlayer_with_next-intl.md +1 -1
- package/blog/hi/intlayer_with_react-i18next.md +1 -1
- package/blog/hi/intlayer_with_react-intl.md +1 -1
- package/blog/hi/intlayer_with_vue-i18n.md +1 -1
- package/blog/hi/l10n_platform_alternative/Lokalise.md +86 -0
- package/blog/hi/l10n_platform_alternative/crowdin.md +84 -0
- package/blog/hi/l10n_platform_alternative/phrase.md +78 -0
- package/blog/id/intlayer_with_i18next.md +1 -1
- package/blog/id/intlayer_with_next-i18next.md +1 -1
- package/blog/id/intlayer_with_next-intl.md +1 -1
- package/blog/id/intlayer_with_react-i18next.md +1 -1
- package/blog/id/intlayer_with_react-intl.md +1 -1
- package/blog/id/intlayer_with_vue-i18n.md +1 -1
- package/blog/id/l10n_platform_alternative/Lokalise.md +86 -0
- package/blog/id/l10n_platform_alternative/crowdin.md +84 -0
- package/blog/id/l10n_platform_alternative/phrase.md +89 -0
- package/blog/it/intlayer_with_i18next.md +1 -1
- package/blog/it/intlayer_with_next-i18next.md +1 -1
- package/blog/it/intlayer_with_next-intl.md +1 -1
- package/blog/it/intlayer_with_react-i18next.md +1 -1
- package/blog/it/intlayer_with_react-intl.md +1 -1
- package/blog/it/intlayer_with_vue-i18n.md +1 -1
- package/blog/it/l10n_platform_alternative/Lokalise.md +84 -0
- package/blog/it/l10n_platform_alternative/crowdin.md +86 -0
- package/blog/it/l10n_platform_alternative/phrase.md +82 -0
- package/blog/ja/intlayer_with_i18next.md +1 -1
- package/blog/ja/intlayer_with_next-i18next.md +1 -1
- package/blog/ja/intlayer_with_next-intl.md +1 -1
- package/blog/ja/intlayer_with_react-i18next.md +1 -1
- package/blog/ja/intlayer_with_react-intl.md +1 -1
- package/blog/ja/intlayer_with_vue-i18n.md +1 -1
- package/blog/ja/l10n_platform_alternative/Lokalise.md +80 -0
- package/blog/ja/l10n_platform_alternative/crowdin.md +80 -0
- package/blog/ja/l10n_platform_alternative/phrase.md +78 -0
- package/blog/ko/intlayer_with_i18next.md +1 -1
- package/blog/ko/intlayer_with_next-i18next.md +1 -1
- package/blog/ko/intlayer_with_next-intl.md +1 -1
- package/blog/ko/intlayer_with_react-i18next.md +1 -1
- package/blog/ko/intlayer_with_react-intl.md +1 -1
- package/blog/ko/intlayer_with_vue-i18n.md +1 -1
- package/blog/ko/l10n_platform_alternative/Lokalise.md +80 -0
- package/blog/ko/l10n_platform_alternative/crowdin.md +86 -0
- package/blog/ko/l10n_platform_alternative/phrase.md +78 -0
- package/blog/pl/intlayer_with_i18next.md +1 -1
- package/blog/pl/intlayer_with_next-i18next.md +1 -1
- package/blog/pl/intlayer_with_next-intl.md +1 -1
- package/blog/pl/intlayer_with_react-i18next.md +1 -1
- package/blog/pl/intlayer_with_react-intl.md +1 -1
- package/blog/pl/intlayer_with_vue-i18n.md +1 -1
- package/blog/pl/l10n_platform_alternative/Lokalise.md +84 -0
- package/blog/pl/l10n_platform_alternative/crowdin.md +80 -0
- package/blog/pl/l10n_platform_alternative/phrase.md +82 -0
- package/blog/pt/intlayer_with_i18next.md +1 -1
- package/blog/pt/intlayer_with_next-i18next.md +1 -1
- package/blog/pt/intlayer_with_next-intl.md +1 -1
- package/blog/pt/intlayer_with_react-i18next.md +1 -1
- package/blog/pt/intlayer_with_react-intl.md +1 -1
- package/blog/pt/intlayer_with_vue-i18n.md +1 -1
- package/blog/pt/l10n_platform_alternative/Lokalise.md +80 -0
- package/blog/pt/l10n_platform_alternative/crowdin.md +86 -0
- package/blog/pt/l10n_platform_alternative/phrase.md +78 -0
- package/blog/ru/intlayer_with_i18next.md +1 -1
- package/blog/ru/intlayer_with_next-i18next.md +1 -1
- package/blog/ru/intlayer_with_next-intl.md +1 -1
- package/blog/ru/intlayer_with_react-i18next.md +1 -1
- package/blog/ru/intlayer_with_react-intl.md +1 -1
- package/blog/ru/intlayer_with_vue-i18n.md +1 -1
- package/blog/ru/l10n_platform_alternative/Lokalise.md +80 -0
- package/blog/ru/l10n_platform_alternative/crowdin.md +86 -0
- package/blog/ru/l10n_platform_alternative/phrase.md +82 -0
- package/blog/tr/intlayer_with_i18next.md +1 -1
- package/blog/tr/intlayer_with_next-i18next.md +1 -1
- package/blog/tr/intlayer_with_next-intl.md +1 -1
- package/blog/tr/intlayer_with_react-i18next.md +1 -1
- package/blog/tr/intlayer_with_vue-i18n.md +1 -1
- package/blog/tr/l10n_platform_alternative/Lokalise.md +80 -0
- package/blog/tr/l10n_platform_alternative/crowdin.md +80 -0
- package/blog/tr/l10n_platform_alternative/phrase.md +89 -0
- package/blog/vi/intlayer_with_i18next.md +1 -1
- package/blog/vi/intlayer_with_next-i18next.md +1 -1
- package/blog/vi/intlayer_with_next-intl.md +1 -1
- package/blog/vi/intlayer_with_react-i18next.md +1 -1
- package/blog/vi/intlayer_with_react-intl.md +1 -1
- package/blog/vi/intlayer_with_vue-i18n.md +1 -1
- package/blog/vi/l10n_platform_alternative/Lokalise.md +87 -0
- package/blog/vi/l10n_platform_alternative/crowdin.md +80 -0
- package/blog/vi/l10n_platform_alternative/phrase.md +82 -0
- package/blog/zh/intlayer_with_i18next.md +1 -1
- package/blog/zh/intlayer_with_next-i18next.md +1 -1
- package/blog/zh/intlayer_with_next-intl.md +1 -1
- package/blog/zh/intlayer_with_react-i18next.md +1 -1
- package/blog/zh/intlayer_with_react-intl.md +1 -1
- package/blog/zh/intlayer_with_vue-i18n.md +1 -1
- package/blog/zh/l10n_platform_alternative/Lokalise.md +80 -0
- package/blog/zh/l10n_platform_alternative/crowdin.md +84 -0
- package/blog/zh/l10n_platform_alternative/phrase.md +84 -0
- package/dist/cjs/common.cjs +6 -6
- package/dist/cjs/common.cjs.map +1 -1
- package/dist/cjs/generated/blog.entry.cjs +61 -4
- package/dist/cjs/generated/blog.entry.cjs.map +1 -1
- package/dist/cjs/generated/docs.entry.cjs +4 -4
- package/dist/cjs/generated/docs.entry.cjs.map +1 -1
- package/dist/cjs/generated/frequentQuestions.entry.cjs +4 -4
- package/dist/cjs/generated/frequentQuestions.entry.cjs.map +1 -1
- package/dist/cjs/generated/legal.entry.cjs +4 -4
- package/dist/cjs/generated/legal.entry.cjs.map +1 -1
- package/dist/esm/generated/blog.entry.mjs +57 -0
- package/dist/esm/generated/blog.entry.mjs.map +1 -1
- package/dist/types/generated/blog.entry.d.ts +3 -0
- package/dist/types/generated/blog.entry.d.ts.map +1 -1
- package/docs/ar/dictionary/content_file.md +1 -1
- package/docs/ar/intlayer_CMS.md +1 -1
- package/docs/ar/intlayer_visual_editor.md +1 -1
- package/docs/ar/intlayer_with_nextjs_15.md +1 -1
- package/docs/ar/intlayer_with_nextjs_16.md +1 -1
- package/docs/ar/intlayer_with_nuxt.md +3 -3
- package/docs/ar/intlayer_with_react_router_v7.md +1 -1
- package/docs/ar/intlayer_with_react_router_v7_fs_routes.md +1 -1
- package/docs/ar/intlayer_with_tanstack.md +1 -1
- package/docs/ar/intlayer_with_vite+react.md +1 -1
- package/docs/ar/intlayer_with_vite+vue.md +1 -1
- package/docs/ar/packages/intlayer/getLocaleName.md +17 -1
- package/docs/ar/plugins/sync-json.md +1 -1
- package/docs/de/dictionary/content_file.md +1 -1
- package/docs/de/intlayer_CMS.md +1 -1
- package/docs/de/intlayer_visual_editor.md +1 -1
- package/docs/de/intlayer_with_nextjs_15.md +1 -1
- package/docs/de/intlayer_with_nextjs_16.md +1 -1
- package/docs/de/intlayer_with_nuxt.md +3 -3
- package/docs/de/intlayer_with_react_router_v7.md +1 -1
- package/docs/de/intlayer_with_react_router_v7_fs_routes.md +1 -1
- package/docs/de/intlayer_with_tanstack.md +1 -1
- package/docs/de/intlayer_with_vite+react.md +1 -1
- package/docs/de/intlayer_with_vite+vue.md +1 -1
- package/docs/de/packages/intlayer/getLocaleName.md +17 -1
- package/docs/de/plugins/sync-json.md +1 -1
- package/docs/en/dictionary/content_file.md +1 -1
- package/docs/en/intlayer_CMS.md +1 -1
- package/docs/en/intlayer_visual_editor.md +1 -1
- package/docs/en/intlayer_with_nextjs_15.md +1 -1
- package/docs/en/intlayer_with_nextjs_16.md +1 -1
- package/docs/en/intlayer_with_nuxt.md +3 -3
- package/docs/en/intlayer_with_react_router_v7.md +1 -1
- package/docs/en/intlayer_with_react_router_v7_fs_routes.md +1 -1
- package/docs/en/intlayer_with_tanstack.md +1 -1
- package/docs/en/intlayer_with_vite+preact.md +1 -2
- package/docs/en/intlayer_with_vite+react.md +1 -1
- package/docs/en/intlayer_with_vite+vue.md +1 -1
- package/docs/en/packages/intlayer/getLocaleName.md +17 -0
- package/docs/en/plugins/sync-json.md +1 -1
- package/docs/en-GB/dictionary/content_file.md +1 -1
- package/docs/en-GB/intlayer_CMS.md +1 -1
- package/docs/en-GB/intlayer_visual_editor.md +1 -1
- package/docs/en-GB/intlayer_with_nextjs_15.md +1 -1
- package/docs/en-GB/intlayer_with_nextjs_16.md +1 -1
- package/docs/en-GB/intlayer_with_nuxt.md +3 -3
- package/docs/en-GB/intlayer_with_react_router_v7.md +1 -1
- package/docs/en-GB/intlayer_with_react_router_v7_fs_routes.md +1 -1
- package/docs/en-GB/intlayer_with_tanstack.md +1 -1
- package/docs/en-GB/intlayer_with_vite+react.md +1 -1
- package/docs/en-GB/intlayer_with_vite+vue.md +1 -1
- package/docs/en-GB/packages/intlayer/getLocaleName.md +17 -1
- package/docs/en-GB/plugins/sync-json.md +1 -1
- package/docs/es/dictionary/content_file.md +1 -1
- package/docs/es/intlayer_CMS.md +1 -1
- package/docs/es/intlayer_visual_editor.md +1 -1
- package/docs/es/intlayer_with_nextjs_15.md +1 -1
- package/docs/es/intlayer_with_nextjs_16.md +1 -1
- package/docs/es/intlayer_with_nuxt.md +3 -3
- package/docs/es/intlayer_with_react_router_v7.md +1 -1
- package/docs/es/intlayer_with_react_router_v7_fs_routes.md +1 -1
- package/docs/es/intlayer_with_tanstack.md +1 -1
- package/docs/es/intlayer_with_vite+react.md +1 -1
- package/docs/es/intlayer_with_vite+vue.md +1 -1
- package/docs/es/packages/intlayer/getLocaleName.md +17 -1
- package/docs/es/plugins/sync-json.md +1 -1
- package/docs/fr/dictionary/content_file.md +1 -1
- package/docs/fr/intlayer_CMS.md +1 -1
- package/docs/fr/intlayer_visual_editor.md +1 -1
- package/docs/fr/intlayer_with_nextjs_15.md +1 -1
- package/docs/fr/intlayer_with_nextjs_16.md +1 -1
- package/docs/fr/intlayer_with_nuxt.md +3 -3
- package/docs/fr/intlayer_with_react_router_v7.md +1 -1
- package/docs/fr/intlayer_with_react_router_v7_fs_routes.md +1 -1
- package/docs/fr/intlayer_with_tanstack.md +1 -1
- package/docs/fr/intlayer_with_vite+react.md +1 -1
- package/docs/fr/intlayer_with_vite+vue.md +1 -1
- package/docs/fr/packages/intlayer/getLocaleName.md +17 -1
- package/docs/fr/plugins/sync-json.md +1 -1
- package/docs/hi/dictionary/content_file.md +1 -1
- package/docs/hi/intlayer_CMS.md +1 -1
- package/docs/hi/intlayer_visual_editor.md +1 -1
- package/docs/hi/intlayer_with_nextjs_15.md +1 -1
- package/docs/hi/intlayer_with_nextjs_16.md +1 -1
- package/docs/hi/intlayer_with_nuxt.md +3 -3
- package/docs/hi/intlayer_with_react_router_v7.md +1 -1
- package/docs/hi/intlayer_with_react_router_v7_fs_routes.md +1 -1
- package/docs/hi/intlayer_with_tanstack.md +1 -1
- package/docs/hi/intlayer_with_vite+react.md +1 -1
- package/docs/hi/intlayer_with_vite+vue.md +1 -1
- package/docs/hi/packages/intlayer/getLocaleName.md +17 -1
- package/docs/hi/plugins/sync-json.md +1 -1
- package/docs/id/dictionary/content_file.md +1 -1
- package/docs/id/intlayer_CMS.md +1 -1
- package/docs/id/intlayer_visual_editor.md +1 -1
- package/docs/id/intlayer_with_nextjs_15.md +1 -1
- package/docs/id/intlayer_with_nextjs_16.md +1 -1
- package/docs/id/intlayer_with_nuxt.md +3 -3
- package/docs/id/intlayer_with_react_router_v7.md +1 -1
- package/docs/id/intlayer_with_react_router_v7_fs_routes.md +1 -1
- package/docs/id/intlayer_with_tanstack.md +1 -1
- package/docs/id/intlayer_with_vite+preact.md +1 -2
- package/docs/id/intlayer_with_vite+react.md +1 -1
- package/docs/id/intlayer_with_vite+vue.md +1 -1
- package/docs/id/packages/intlayer/getLocaleName.md +17 -0
- package/docs/id/plugins/sync-json.md +1 -1
- package/docs/it/dictionary/content_file.md +1 -1
- package/docs/it/intlayer_CMS.md +1 -1
- package/docs/it/intlayer_visual_editor.md +1 -1
- package/docs/it/intlayer_with_nextjs_15.md +1 -1
- package/docs/it/intlayer_with_nextjs_16.md +1 -1
- package/docs/it/intlayer_with_nuxt.md +3 -3
- package/docs/it/intlayer_with_react_router_v7.md +1 -1
- package/docs/it/intlayer_with_react_router_v7_fs_routes.md +1 -1
- package/docs/it/intlayer_with_tanstack.md +1 -1
- package/docs/it/intlayer_with_vite+react.md +1 -1
- package/docs/it/intlayer_with_vite+vue.md +1 -1
- package/docs/it/packages/intlayer/getLocaleName.md +17 -1
- package/docs/it/plugins/sync-json.md +1 -1
- package/docs/ja/dictionary/content_file.md +1 -1
- package/docs/ja/intlayer_CMS.md +1 -1
- package/docs/ja/intlayer_visual_editor.md +1 -1
- package/docs/ja/intlayer_with_nextjs_15.md +1 -1
- package/docs/ja/intlayer_with_nextjs_16.md +1 -1
- package/docs/ja/intlayer_with_nuxt.md +3 -3
- package/docs/ja/intlayer_with_react_router_v7.md +1 -1
- package/docs/ja/intlayer_with_react_router_v7_fs_routes.md +1 -1
- package/docs/ja/intlayer_with_tanstack.md +1 -1
- package/docs/ja/intlayer_with_vite+react.md +1 -1
- package/docs/ja/intlayer_with_vite+vue.md +1 -1
- package/docs/ja/packages/intlayer/getLocaleName.md +17 -1
- package/docs/ja/plugins/sync-json.md +1 -1
- package/docs/ko/dictionary/content_file.md +1 -1
- package/docs/ko/intlayer_CMS.md +1 -1
- package/docs/ko/intlayer_visual_editor.md +1 -1
- package/docs/ko/intlayer_with_nextjs_15.md +1 -1
- package/docs/ko/intlayer_with_nextjs_16.md +1 -1
- package/docs/ko/intlayer_with_nuxt.md +3 -3
- package/docs/ko/intlayer_with_react_router_v7.md +1 -1
- package/docs/ko/intlayer_with_react_router_v7_fs_routes.md +1 -1
- package/docs/ko/intlayer_with_tanstack.md +1 -1
- package/docs/ko/intlayer_with_vite+react.md +1 -1
- package/docs/ko/intlayer_with_vite+vue.md +1 -1
- package/docs/ko/packages/intlayer/getLocaleName.md +17 -1
- package/docs/ko/plugins/sync-json.md +1 -1
- package/docs/pl/dictionary/content_file.md +1 -1
- package/docs/pl/intlayer_CMS.md +1 -1
- package/docs/pl/intlayer_visual_editor.md +1 -1
- package/docs/pl/intlayer_with_nextjs_15.md +1 -1
- package/docs/pl/intlayer_with_nextjs_16.md +1 -1
- package/docs/pl/intlayer_with_nuxt.md +3 -3
- package/docs/pl/intlayer_with_react_router_v7.md +1 -1
- package/docs/pl/intlayer_with_react_router_v7_fs_routes.md +2 -2
- package/docs/pl/intlayer_with_tanstack.md +1 -1
- package/docs/pl/intlayer_with_vite+preact.md +1 -2
- package/docs/pl/intlayer_with_vite+react.md +1 -1
- package/docs/pl/intlayer_with_vite+vue.md +1 -1
- package/docs/pl/packages/intlayer/getLocaleName.md +17 -0
- package/docs/pl/plugins/sync-json.md +1 -1
- package/docs/pt/dictionary/content_file.md +1 -1
- package/docs/pt/intlayer_CMS.md +1 -1
- package/docs/pt/intlayer_visual_editor.md +1 -1
- package/docs/pt/intlayer_with_nextjs_15.md +1 -1
- package/docs/pt/intlayer_with_nextjs_16.md +1 -1
- package/docs/pt/intlayer_with_nuxt.md +3 -3
- package/docs/pt/intlayer_with_react_router_v7.md +1 -1
- package/docs/pt/intlayer_with_react_router_v7_fs_routes.md +1 -1
- package/docs/pt/intlayer_with_tanstack.md +1 -1
- package/docs/pt/intlayer_with_vite+react.md +1 -1
- package/docs/pt/intlayer_with_vite+vue.md +1 -1
- package/docs/pt/packages/intlayer/getLocaleName.md +17 -1
- package/docs/pt/plugins/sync-json.md +1 -1
- package/docs/ru/dictionary/content_file.md +1 -1
- package/docs/ru/intlayer_CMS.md +1 -1
- package/docs/ru/intlayer_visual_editor.md +1 -1
- package/docs/ru/intlayer_with_nextjs_15.md +1 -1
- package/docs/ru/intlayer_with_nextjs_16.md +1 -1
- package/docs/ru/intlayer_with_nuxt.md +3 -3
- package/docs/ru/intlayer_with_react_router_v7.md +1 -1
- package/docs/ru/intlayer_with_react_router_v7_fs_routes.md +1 -1
- package/docs/ru/intlayer_with_tanstack.md +1 -1
- package/docs/ru/intlayer_with_vite+react.md +1 -1
- package/docs/ru/intlayer_with_vite+vue.md +1 -1
- package/docs/ru/packages/intlayer/getLocaleName.md +17 -1
- package/docs/ru/plugins/sync-json.md +1 -1
- package/docs/tr/dictionary/content_file.md +1 -1
- package/docs/tr/intlayer_CMS.md +1 -1
- package/docs/tr/intlayer_visual_editor.md +1 -1
- package/docs/tr/intlayer_with_nextjs_15.md +1 -1
- package/docs/tr/intlayer_with_nextjs_16.md +1 -1
- package/docs/tr/intlayer_with_nuxt.md +3 -3
- package/docs/tr/intlayer_with_react_router_v7.md +1 -1
- package/docs/tr/intlayer_with_react_router_v7_fs_routes.md +1 -1
- package/docs/tr/intlayer_with_tanstack.md +1 -1
- package/docs/tr/intlayer_with_vite+react.md +1 -1
- package/docs/tr/intlayer_with_vite+vue.md +1 -1
- package/docs/tr/packages/intlayer/getLocaleName.md +17 -0
- package/docs/tr/plugins/sync-json.md +1 -1
- package/docs/vi/dictionary/content_file.md +1 -1
- package/docs/vi/intlayer_CMS.md +1 -1
- package/docs/vi/intlayer_visual_editor.md +1 -1
- package/docs/vi/intlayer_with_nextjs_15.md +1 -1
- package/docs/vi/intlayer_with_nextjs_16.md +1 -1
- package/docs/vi/intlayer_with_nuxt.md +3 -3
- package/docs/vi/intlayer_with_react_router_v7.md +1 -1
- package/docs/vi/intlayer_with_react_router_v7_fs_routes.md +1 -1
- package/docs/vi/intlayer_with_tanstack.md +1 -1
- package/docs/vi/intlayer_with_vite+preact.md +1 -2
- package/docs/vi/intlayer_with_vite+react.md +1 -1
- package/docs/vi/intlayer_with_vite+vue.md +1 -1
- package/docs/vi/packages/intlayer/getLocaleName.md +17 -0
- package/docs/vi/plugins/sync-json.md +1 -1
- package/docs/zh/dictionary/content_file.md +1 -1
- package/docs/zh/intlayer_CMS.md +1 -1
- package/docs/zh/intlayer_visual_editor.md +1 -1
- package/docs/zh/intlayer_with_nextjs_15.md +1 -1
- package/docs/zh/intlayer_with_nextjs_16.md +1 -1
- package/docs/zh/intlayer_with_nuxt.md +3 -3
- package/docs/zh/intlayer_with_react_router_v7.md +1 -1
- package/docs/zh/intlayer_with_react_router_v7_fs_routes.md +1 -1
- package/docs/zh/intlayer_with_tanstack.md +1 -1
- package/docs/zh/intlayer_with_vite+react.md +1 -1
- package/docs/zh/intlayer_with_vite+vue.md +1 -1
- package/docs/zh/packages/intlayer/getLocaleName.md +17 -1
- package/docs/zh/plugins/sync-json.md +1 -1
- package/package.json +8 -8
- package/src/generated/blog.entry.ts +57 -0
|
@@ -42,7 +42,7 @@ Com o Intlayer, você pode:
|
|
|
42
42
|
<Tab defaultTab="video">
|
|
43
43
|
<TabItem label="Vídeo" value="video">
|
|
44
44
|
|
|
45
|
-
<iframe title="The best i18n solution for Vite and Vue? Discover Intlayer" class="m-auto aspect-
|
|
45
|
+
<iframe title="The best i18n solution for Vite and Vue? Discover Intlayer" class="m-auto aspect-16/9 w-full overflow-hidden rounded-lg border-0" allow="autoplay; gyroscope;" loading="lazy" width="1080" height="auto" src="https://www.youtube.com/embed/IE3XWkZ6a5U?autoplay=0&origin=http://intlayer.org&controls=0&rel=1"/>
|
|
46
46
|
|
|
47
47
|
</TabItem>
|
|
48
48
|
<TabItem label="Código" value="code">
|
|
@@ -19,6 +19,9 @@ slugs:
|
|
|
19
19
|
- intlayer
|
|
20
20
|
- getLocaleName
|
|
21
21
|
history:
|
|
22
|
+
- version: 7.5.0
|
|
23
|
+
date: 2025-12-18
|
|
24
|
+
changes: Adicionar polyfills para React Native e ambientes mais antigos
|
|
22
25
|
- version: 5.5.10
|
|
23
26
|
date: 2025-06-29
|
|
24
27
|
changes: Histórico inicial
|
|
@@ -33,7 +36,6 @@ A função `getLocaleName` retorna o nome localizado de um determinado locale (`
|
|
|
33
36
|
## Parâmetros
|
|
34
37
|
|
|
35
38
|
- `displayLocale: Locales`
|
|
36
|
-
|
|
37
39
|
- **Descrição**: O locale no qual o nome do locale alvo será exibido.
|
|
38
40
|
- **Tipo**: Enum ou string representando locales válidos.
|
|
39
41
|
|
|
@@ -117,3 +119,17 @@ getLocaleName("unknown-locale"); // Saída: "Unknown locale"
|
|
|
117
119
|
- A função retorna por padrão o próprio nome do `displayLocale`.
|
|
118
120
|
- **Traduções ausentes:**
|
|
119
121
|
- Se `localeNameTranslations` não contiver uma entrada para o `targetLocale` ou para o `displayLocale` específico, a função recorre ao `ownLocalesName` ou retorna `"Unknown locale"`.
|
|
122
|
+
|
|
123
|
+
## Polyfills para React Native e ambientes mais antigos
|
|
124
|
+
|
|
125
|
+
A função `getLocaleName` depende da API `Intl.DisplayNames`, que não está disponível no React Native ou em ambientes JavaScript mais antigos. Se você estiver usando `getLocaleName` nesses ambientes, precisa adicionar polyfills.
|
|
126
|
+
|
|
127
|
+
Importe os polyfills no início da sua aplicação, idealmente no seu arquivo de entrada (por exemplo, `index.js`, `App.tsx` ou `main.tsx`):
|
|
128
|
+
|
|
129
|
+
```typescript
|
|
130
|
+
import "intl";
|
|
131
|
+
import "@formatjs/intl-locale/polyfill";
|
|
132
|
+
import "@formatjs/intl-displaynames/polyfill";
|
|
133
|
+
```
|
|
134
|
+
|
|
135
|
+
Para mais detalhes, consulte a [documentação de polyfills do FormatJS](https://formatjs.io/docs/polyfills/intl-displaynames/).
|
|
@@ -34,7 +34,7 @@ history:
|
|
|
34
34
|
|
|
35
35
|
# Sync JSON (pontes i18n) - Sync JSON com suporte ICU / i18next
|
|
36
36
|
|
|
37
|
-
<iframe title="Como manter suas traduções JSON sincronizadas com Intlayer" class="m-auto aspect-
|
|
37
|
+
<iframe title="Como manter suas traduções JSON sincronizadas com Intlayer" class="m-auto aspect-16/9 w-full overflow-hidden rounded-lg border-0" allow="autoplay; gyroscope;" loading="lazy" width="1080" height="auto" src="https://www.youtube.com/embed/MpGMxniDHNg?autoplay=0&origin=http://intlayer.org&controls=0&rel=1"/>
|
|
38
38
|
|
|
39
39
|
Use o Intlayer como um complemento para sua pilha i18n existente. Este plugin mantém suas mensagens JSON sincronizadas com os dicionários Intlayer para que você possa:
|
|
40
40
|
|
|
@@ -25,7 +25,7 @@ history:
|
|
|
25
25
|
|
|
26
26
|
# Файл контента
|
|
27
27
|
|
|
28
|
-
<iframe title="i18n, Markdown, JSON… одно универсальное решение для управления всем этим | Intlayer" class="m-auto aspect-
|
|
28
|
+
<iframe title="i18n, Markdown, JSON… одно универсальное решение для управления всем этим | Intlayer" class="m-auto aspect-16/9 w-full overflow-hidden rounded-lg border-0" allow="autoplay; gyroscope;" loading="lazy" width="1080" height="auto" src="https://www.youtube.com/embed/1VHgSY_j9_I?autoplay=0&origin=http://intlayer.org&controls=0&rel=1"/>
|
|
29
29
|
|
|
30
30
|
## Что такое файл контента?
|
|
31
31
|
|
package/docs/ru/intlayer_CMS.md
CHANGED
|
@@ -31,7 +31,7 @@ history:
|
|
|
31
31
|
|
|
32
32
|
# Документация по системе управления контентом Intlayer (CMS)
|
|
33
33
|
|
|
34
|
-
<iframe title="Визуальный редактор + CMS для вашего веб-приложения: объяснение Intlayer" class="m-auto aspect-
|
|
34
|
+
<iframe title="Визуальный редактор + CMS для вашего веб-приложения: объяснение Intlayer" class="m-auto aspect-16/9 w-full overflow-hidden rounded-lg border-0" allow="autoplay; gyroscope;" loading="lazy" width="1080" height="auto" src="https://www.youtube.com/embed/UDDTnirwi_4?autoplay=0&origin=http://intlayer.org&controls=0&rel=1"/>
|
|
35
35
|
|
|
36
36
|
Intlayer CMS — это приложение, которое позволяет вам вынести контент проекта Intlayer во внешнее управление.
|
|
37
37
|
|
|
@@ -24,7 +24,7 @@ history:
|
|
|
24
24
|
|
|
25
25
|
# Документация по Intlayer Visual Editor
|
|
26
26
|
|
|
27
|
-
<iframe title="Visual Editor + CMS for Your Web App: Intlayer Explained" class="m-auto aspect-
|
|
27
|
+
<iframe title="Visual Editor + CMS for Your Web App: Intlayer Explained" class="m-auto aspect-16/9 w-full overflow-hidden rounded-lg border-0" allow="autoplay; gyroscope;" loading="lazy" width="1080" height="auto" src="https://www.youtube.com/embed/UDDTnirwi_4?autoplay=0&origin=http://intlayer.org&controls=0&rel=1"/>
|
|
28
28
|
|
|
29
29
|
Intlayer Visual Editor - это инструмент, который оборачивает ваш веб-сайт для взаимодействия с файлами декларации контента с использованием визуального редактора.
|
|
30
30
|
|
|
@@ -25,7 +25,7 @@ history:
|
|
|
25
25
|
|
|
26
26
|
# Переведите ваш Next.js 15 с Intlayer | Интернационализация (i18n)
|
|
27
27
|
|
|
28
|
-
<iframe title="Лучшее решение i18n для Next.js? Откройте для себя Intlayer" class="m-auto aspect-
|
|
28
|
+
<iframe title="Лучшее решение i18n для Next.js? Откройте для себя Intlayer" class="m-auto aspect-16/9 w-full overflow-hidden rounded-lg border-0" allow="autoplay; gyroscope;" loading="lazy" width="1080" height="auto" src="https://www.youtube.com/embed/e_PPG7PTqGU?autoplay=0&origin=http://intlayer.org&controls=0&rel=1"/>
|
|
29
29
|
|
|
30
30
|
Смотрите [Шаблон приложения](https://github.com/aymericzip/intlayer-next-15-template) на GitHub.
|
|
31
31
|
|
|
@@ -27,7 +27,7 @@ history:
|
|
|
27
27
|
<Tab defaultTab="video">
|
|
28
28
|
<TabItem label="Video" value="video">
|
|
29
29
|
|
|
30
|
-
<iframe title="Лучшее решение i18n для Next.js? Откройте для себя Intlayer" class="m-auto aspect-
|
|
30
|
+
<iframe title="Лучшее решение i18n для Next.js? Откройте для себя Intlayer" class="m-auto aspect-16/9 w-full overflow-hidden rounded-lg border-0" allow="autoplay; gyroscope;" loading="lazy" width="1080" height="auto" src="https://www.youtube.com/embed/e_PPG7PTqGU?autoplay=0&origin=http://intlayer.org&controls=0&rel=1"/>
|
|
31
31
|
|
|
32
32
|
</TabItem>
|
|
33
33
|
<TabItem label="Code" value="code">
|
|
@@ -49,7 +49,7 @@ history:
|
|
|
49
49
|
<Tab defaultTab="video">
|
|
50
50
|
<TabItem label="Видео" value="video">
|
|
51
51
|
|
|
52
|
-
<iframe title="Как перевести ваше приложение Nuxt и Vue с помощью Intlayer? Откройте для себя Intlayer" class="m-auto aspect-
|
|
52
|
+
<iframe title="Как перевести ваше приложение Nuxt и Vue с помощью Intlayer? Откройте для себя Intlayer" class="m-auto aspect-16/9 w-full overflow-hidden rounded-lg border-0" allow="autoplay; gyroscope;" loading="lazy" width="1080" height="auto" src="https://www.youtube.com/embed/nhUcUAVQ6eQ?autoplay=0&origin=http://intlayer.org&controls=0&rel=1"/>
|
|
53
53
|
|
|
54
54
|
</TabItem>
|
|
55
55
|
<TabItem label="Код" value="code">
|
|
@@ -373,11 +373,11 @@ import { useIntlayer } from "vue-intlayer";
|
|
|
373
373
|
const content = useIntlayer("home-page");
|
|
374
374
|
|
|
375
375
|
useHead({
|
|
376
|
-
title: content.metaTitle.
|
|
376
|
+
title: content.metaTitle.raw,
|
|
377
377
|
meta: [
|
|
378
378
|
{
|
|
379
379
|
name: "description",
|
|
380
|
-
content: content.metaDescription.
|
|
380
|
+
content: content.metaDescription.raw,
|
|
381
381
|
},
|
|
382
382
|
],
|
|
383
383
|
});
|
|
@@ -85,7 +85,7 @@ pnpm add vite-intlayer --save-dev
|
|
|
85
85
|
<Tab defaultTab="video">
|
|
86
86
|
<TabItem label="Video" value="video">
|
|
87
87
|
|
|
88
|
-
<iframe title="How to translate your React Router v7 app using Intlayer" class="m-auto aspect-
|
|
88
|
+
<iframe title="How to translate your React Router v7 app using Intlayer" class="m-auto aspect-16/9 w-full overflow-hidden rounded-lg border-0" allow="autoplay; gyroscope;" loading="lazy" width="1080" height="auto" src="https://www.youtube.com/embed/dS9L7uJeak4?autoplay=0&origin=http://intlayer.org&controls=0&rel=1"/>
|
|
89
89
|
|
|
90
90
|
</TabItem>
|
|
91
91
|
<TabItem label="Code" value="code">
|
|
@@ -54,7 +54,7 @@ history:
|
|
|
54
54
|
<Tab defaultTab="video">
|
|
55
55
|
<TabItem label="Video" value="video">
|
|
56
56
|
|
|
57
|
-
<iframe title="How to translate your React Router v7 (File-System Routes) app using Intlayer" class="m-auto aspect-
|
|
57
|
+
<iframe title="How to translate your React Router v7 (File-System Routes) app using Intlayer" class="m-auto aspect-16/9 w-full overflow-hidden rounded-lg border-0" allow="autoplay; gyroscope;" loading="lazy" width="1080" height="auto" src="https://www.youtube.com/embed/dS9L7uJeak4?autoplay=0&origin=http://intlayer.org&controls=0&rel=1"/>
|
|
58
58
|
|
|
59
59
|
</TabItem>
|
|
60
60
|
<TabItem label="Code" value="code">
|
|
@@ -57,7 +57,7 @@ history:
|
|
|
57
57
|
<Tab defaultTab="video">
|
|
58
58
|
<TabItem label="Video" value="video">
|
|
59
59
|
|
|
60
|
-
<iframe title="Лучшее решение i18n для Tanstack Start? Откройте для себя Intlayer" class="m-auto aspect-
|
|
60
|
+
<iframe title="Лучшее решение i18n для Tanstack Start? Откройте для себя Intlayer" class="m-auto aspect-16/9 w-full overflow-hidden rounded-lg border-0" allow="autoplay; gyroscope;" loading="lazy" width="1080" height="auto" src="https://www.youtube.com/embed/_XTdKVWaeqg?autoplay=0&origin=http://intlayer.org&controls=0&rel=1"/>
|
|
61
61
|
|
|
62
62
|
</TabItem>
|
|
63
63
|
<TabItem label="Code" value="code">
|
|
@@ -47,7 +47,7 @@ history:
|
|
|
47
47
|
<Tab defaultTab="video">
|
|
48
48
|
<TabItem label="Видео" value="video">
|
|
49
49
|
|
|
50
|
-
<iframe title="Лучшee решение для i18n в Vite и React? Откройте для себя Intlayer" class="m-auto aspect-
|
|
50
|
+
<iframe title="Лучшee решение для i18n в Vite и React? Откройте для себя Intlayer" class="m-auto aspect-16/9 w-full overflow-hidden rounded-lg border-0" allow="autoplay; gyroscope;" loading="lazy" width="1080" height="auto" src="https://www.youtube.com/embed/dS9L7uJeak4?si=VaKmrYMmXjo3xpk2"/>
|
|
51
51
|
|
|
52
52
|
</TabItem>
|
|
53
53
|
<TabItem label="Код" value="code">
|
|
@@ -44,7 +44,7 @@ history:
|
|
|
44
44
|
<Tab defaultTab="video">
|
|
45
45
|
<TabItem label="Видео" value="video">
|
|
46
46
|
|
|
47
|
-
<iframe title="The best i18n solution for Vite and Vue? Discover Intlayer" class="m-auto aspect-
|
|
47
|
+
<iframe title="The best i18n solution for Vite and Vue? Discover Intlayer" class="m-auto aspect-16/9 w-full overflow-hidden rounded-lg border-0" allow="autoplay; gyroscope;" loading="lazy" width="1080" height="auto" src="https://www.youtube.com/embed/IE3XWkZ6a5U?autoplay=0&origin=http://intlayer.org&controls=0&rel=1"/>
|
|
48
48
|
|
|
49
49
|
</TabItem>
|
|
50
50
|
<TabItem label="Код" value="code">
|
|
@@ -19,6 +19,9 @@ slugs:
|
|
|
19
19
|
- intlayer
|
|
20
20
|
- getLocaleName
|
|
21
21
|
history:
|
|
22
|
+
- version: 7.5.0
|
|
23
|
+
date: 2025-12-18
|
|
24
|
+
changes: Добавление polyfills для React Native и старых сред
|
|
22
25
|
- version: 5.5.10
|
|
23
26
|
date: 2025-06-29
|
|
24
27
|
changes: Инициализация истории
|
|
@@ -33,7 +36,6 @@ history:
|
|
|
33
36
|
## Параметры
|
|
34
37
|
|
|
35
38
|
- `displayLocale: Locales`
|
|
36
|
-
|
|
37
39
|
- **Описание**: Локаль, на языке которой будет отображаться название целевой локали.
|
|
38
40
|
- **Тип**: Enum или строка, представляющая допустимые локали.
|
|
39
41
|
|
|
@@ -117,3 +119,17 @@ getLocaleName("unknown-locale"); // Вывод: "Unknown locale"
|
|
|
117
119
|
- Функция по умолчанию возвращает собственное имя `displayLocale`.
|
|
118
120
|
- **Отсутствие переводов:**
|
|
119
121
|
- Если `localeNameTranslations` не содержит записи для `targetLocale` или конкретного `displayLocale`, функция возвращает `ownLocalesName` или `"Unknown locale"`.
|
|
122
|
+
|
|
123
|
+
## Polyfills для React Native и старых сред
|
|
124
|
+
|
|
125
|
+
Функция `getLocaleName` зависит от API `Intl.DisplayNames`, которая недоступна в React Native или старых средах JavaScript. Если вы используете `getLocaleName` в этих средах, вам нужно добавить polyfills.
|
|
126
|
+
|
|
127
|
+
Импортируйте polyfills в начале вашего приложения, желательно в файле точки входа (например, `index.js`, `App.tsx` или `main.tsx`):
|
|
128
|
+
|
|
129
|
+
```typescript
|
|
130
|
+
import "intl";
|
|
131
|
+
import "@formatjs/intl-locale/polyfill";
|
|
132
|
+
import "@formatjs/intl-displaynames/polyfill";
|
|
133
|
+
```
|
|
134
|
+
|
|
135
|
+
Для получения дополнительной информации см. [документацию по polyfills FormatJS](https://formatjs.io/docs/polyfills/intl-displaynames/).
|
|
@@ -34,7 +34,7 @@ history:
|
|
|
34
34
|
|
|
35
35
|
# Синхронизация JSON (мосты i18n) - Синхронизация JSON с поддержкой ICU / i18next
|
|
36
36
|
|
|
37
|
-
<iframe title="Как поддерживать синхронизацию ваших JSON-переводов с Intlayer" class="m-auto aspect-
|
|
37
|
+
<iframe title="Как поддерживать синхронизацию ваших JSON-переводов с Intlayer" class="m-auto aspect-16/9 w-full overflow-hidden rounded-lg border-0" allow="autoplay; gyroscope;" loading="lazy" width="1080" height="auto" src="https://www.youtube.com/embed/MpGMxniDHNg?autoplay=0&origin=http://intlayer.org&controls=0&rel=1"/>
|
|
38
38
|
|
|
39
39
|
Используйте Intlayer в качестве дополнения к вашему существующему стеку i18n. Этот плагин поддерживает синхронизацию ваших JSON-сообщений со словарями Intlayer, чтобы вы могли:
|
|
40
40
|
|
|
@@ -25,7 +25,7 @@ history:
|
|
|
25
25
|
|
|
26
26
|
# İçerik Dosyası
|
|
27
27
|
|
|
28
|
-
<iframe title="i18n, Markdown, JSON… hepsini yönetmek için tek bir çözüm | Intlayer" class="m-auto aspect-
|
|
28
|
+
<iframe title="i18n, Markdown, JSON… hepsini yönetmek için tek bir çözüm | Intlayer" class="m-auto aspect-16/9 w-full overflow-hidden rounded-lg border-0" allow="autoplay; gyroscope;" loading="lazy" width="1080" height="auto" src="https://www.youtube.com/embed/1VHgSY_j9_I?autoplay=0&origin=http://intlayer.org&controls=0&rel=1"/>
|
|
29
29
|
|
|
30
30
|
## İçerik Dosyası Nedir?
|
|
31
31
|
|
package/docs/tr/intlayer_CMS.md
CHANGED
|
@@ -31,7 +31,7 @@ history:
|
|
|
31
31
|
|
|
32
32
|
# Intlayer İçerik Yönetim Sistemi (CMS) Dokümantasyonu
|
|
33
33
|
|
|
34
|
-
<iframe title="Görsel Editör + Web Uygulamanız için CMS: Intlayer Açıklaması" class="m-auto aspect-
|
|
34
|
+
<iframe title="Görsel Editör + Web Uygulamanız için CMS: Intlayer Açıklaması" class="m-auto aspect-16/9 w-full overflow-hidden rounded-lg border-0" allow="autoplay; gyroscope;" loading="lazy" width="1080" height="auto" src="https://www.youtube.com/embed/UDDTnirwi_4?autoplay=0&origin=http://intlayer.org&controls=0&rel=1"/>
|
|
35
35
|
|
|
36
36
|
Intlayer CMS, bir Intlayer projesinin içeriğini dışa aktarmanıza olanak tanıyan bir uygulamadır.
|
|
37
37
|
|
|
@@ -24,7 +24,7 @@ history:
|
|
|
24
24
|
|
|
25
25
|
# Intlayer Görsel Düzenleyici Dokümantasyonu
|
|
26
26
|
|
|
27
|
-
<iframe title="Web Uygulamanız İçin Görsel Düzenleyici + CMS: Intlayer Açıklaması" class="m-auto aspect-
|
|
27
|
+
<iframe title="Web Uygulamanız İçin Görsel Düzenleyici + CMS: Intlayer Açıklaması" class="m-auto aspect-16/9 w-full overflow-hidden rounded-lg border-0" allow="autoplay; gyroscope;" loading="lazy" width="1080" height="auto" src="https://www.youtube.com/embed/UDDTnirwi_4?autoplay=0&origin=http://intlayer.org&controls=0&rel=1"/>
|
|
28
28
|
|
|
29
29
|
Intlayer Görsel Düzenleyici, web sitenizi bir iframe içine sararak içerik bildirim dosyalarınızla görsel düzenleyici kullanarak etkileşim kurmanıza olanak tanıyan bir araçtır.
|
|
30
30
|
|
|
@@ -28,7 +28,7 @@ history:
|
|
|
28
28
|
|
|
29
29
|
# Intlayer ile Next.js 15 çevirin | Uluslararasılaştırma (i18n)
|
|
30
30
|
|
|
31
|
-
<iframe title="Next.js için en iyi i18n çözümü mü? Intlayer'ı keşfedin" class="m-auto aspect-
|
|
31
|
+
<iframe title="Next.js için en iyi i18n çözümü mü? Intlayer'ı keşfedin" class="m-auto aspect-16/9 w-full overflow-hidden rounded-lg border-0" allow="autoplay; gyroscope;" loading="lazy" width="1080" height="auto" src="https://www.youtube.com/embed/e_PPG7PTqGU?autoplay=0&origin=http://intlayer.org&controls=0&rel=1"/>
|
|
32
32
|
|
|
33
33
|
GitHub'da [Uygulama Şablonu](https://github.com/aymericzip/intlayer-next-15-template)na bakın.
|
|
34
34
|
|
|
@@ -27,7 +27,7 @@ history:
|
|
|
27
27
|
<Tab defaultTab="video">
|
|
28
28
|
<TabItem label="Video" value="video">
|
|
29
29
|
|
|
30
|
-
<iframe title="Next.js için en iyi i18n çözümü mü? Intlayer'ı keşfedin" class="m-auto aspect-
|
|
30
|
+
<iframe title="Next.js için en iyi i18n çözümü mü? Intlayer'ı keşfedin" class="m-auto aspect-16/9 w-full overflow-hidden rounded-lg border-0" allow="autoplay; gyroscope;" loading="lazy" width="1080" height="auto" src="https://www.youtube.com/embed/e_PPG7PTqGU?autoplay=0&origin=http://intlayer.org&controls=0&rel=1"/>
|
|
31
31
|
|
|
32
32
|
</TabItem>
|
|
33
33
|
<TabItem label="Code" value="code">
|
|
@@ -49,7 +49,7 @@ Intlayer ile şunları yapabilirsiniz:
|
|
|
49
49
|
<Tab defaultTab="video">
|
|
50
50
|
<TabItem label="Video" value="video">
|
|
51
51
|
|
|
52
|
-
<iframe title="Nuxt ve Vue uygulamanızı Intlayer kullanarak nasıl çevirirsiniz? Intlayer'ı keşfedin" class="m-auto aspect-
|
|
52
|
+
<iframe title="Nuxt ve Vue uygulamanızı Intlayer kullanarak nasıl çevirirsiniz? Intlayer'ı keşfedin" class="m-auto aspect-16/9 w-full overflow-hidden rounded-lg border-0" allow="autoplay; gyroscope;" loading="lazy" width="1080" height="auto" src="https://www.youtube.com/embed/nhUcUAVQ6eQ?autoplay=0&origin=http://intlayer.org&controls=0&rel=1"/>
|
|
53
53
|
|
|
54
54
|
</TabItem>
|
|
55
55
|
<TabItem label="Kod" value="code">
|
|
@@ -373,11 +373,11 @@ import { useIntlayer } from "vue-intlayer";
|
|
|
373
373
|
const content = useIntlayer("home-page");
|
|
374
374
|
|
|
375
375
|
useHead({
|
|
376
|
-
title: content.metaTitle.
|
|
376
|
+
title: content.metaTitle.raw,
|
|
377
377
|
meta: [
|
|
378
378
|
{
|
|
379
379
|
name: "description",
|
|
380
|
-
content: content.metaDescription.
|
|
380
|
+
content: content.metaDescription.raw,
|
|
381
381
|
},
|
|
382
382
|
],
|
|
383
383
|
});
|
|
@@ -83,7 +83,7 @@ pnpm add vite-intlayer --save-dev
|
|
|
83
83
|
<Tab defaultTab="video">
|
|
84
84
|
<TabItem label="Video" value="video">
|
|
85
85
|
|
|
86
|
-
<iframe title="How to translate your React Router v7 app using Intlayer" class="m-auto aspect-
|
|
86
|
+
<iframe title="How to translate your React Router v7 app using Intlayer" class="m-auto aspect-16/9 w-full overflow-hidden rounded-lg border-0" allow="autoplay; gyroscope;" loading="lazy" width="1080" height="auto" src="https://www.youtube.com/embed/dS9L7uJeak4?autoplay=0&origin=http://intlayer.org&controls=0&rel=1"/>
|
|
87
87
|
|
|
88
88
|
</TabItem>
|
|
89
89
|
<TabItem label="Code" value="code">
|
|
@@ -54,7 +54,7 @@ Intlayer ile şunları yapabilirsiniz:
|
|
|
54
54
|
<Tab defaultTab="video">
|
|
55
55
|
<TabItem label="Video" value="video">
|
|
56
56
|
|
|
57
|
-
<iframe title="How to translate your React Router v7 (File-System Routes) app using Intlayer" class="m-auto aspect-
|
|
57
|
+
<iframe title="How to translate your React Router v7 (File-System Routes) app using Intlayer" class="m-auto aspect-16/9 w-full overflow-hidden rounded-lg border-0" allow="autoplay; gyroscope;" loading="lazy" width="1080" height="auto" src="https://www.youtube.com/embed/dS9L7uJeak4?autoplay=0&origin=http://intlayer.org&controls=0&rel=1"/>
|
|
58
58
|
|
|
59
59
|
</TabItem>
|
|
60
60
|
<TabItem label="Code" value="code">
|
|
@@ -60,7 +60,7 @@ Intlayer ile şunları yapabilirsiniz:
|
|
|
60
60
|
<Tab defaultTab="video">
|
|
61
61
|
<TabItem label="Video" value="video">
|
|
62
62
|
|
|
63
|
-
<iframe title="Tanstack Start için en iyi i18n çözümü mü? Intlayer'ı keşfedin" class="m-auto aspect-
|
|
63
|
+
<iframe title="Tanstack Start için en iyi i18n çözümü mü? Intlayer'ı keşfedin" class="m-auto aspect-16/9 w-full overflow-hidden rounded-lg border-0" allow="autoplay; gyroscope;" loading="lazy" width="1080" height="auto" src="https://www.youtube.com/embed/_XTdKVWaeqg?autoplay=0&origin=http://intlayer.org&controls=0&rel=1"/>
|
|
64
64
|
|
|
65
65
|
</TabItem>
|
|
66
66
|
<TabItem label="Code" value="code">
|
|
@@ -47,7 +47,7 @@ Intlayer ile şunları yapabilirsiniz:
|
|
|
47
47
|
<Tab defaultTab="video">
|
|
48
48
|
<TabItem label="Video" value="video">
|
|
49
49
|
|
|
50
|
-
<iframe title="Vite ve React için en iyi i18n çözümü? Intlayer'ı keşfedin" class="m-auto aspect-
|
|
50
|
+
<iframe title="Vite ve React için en iyi i18n çözümü? Intlayer'ı keşfedin" class="m-auto aspect-16/9 w-full overflow-hidden rounded-lg border-0" allow="autoplay; gyroscope;" loading="lazy" width="1080" height="auto" src="https://www.youtube.com/embed/dS9L7uJeak4?si=VaKmrYMmXjo3xpk2"/>
|
|
51
51
|
|
|
52
52
|
</TabItem>
|
|
53
53
|
<TabItem label="Code" value="code">
|
|
@@ -44,7 +44,7 @@ Intlayer ile şunları yapabilirsiniz:
|
|
|
44
44
|
<Tab defaultTab="video">
|
|
45
45
|
<TabItem label="Video" value="video">
|
|
46
46
|
|
|
47
|
-
<iframe title="The best i18n solution for Vite and Vue? Discover Intlayer" class="m-auto aspect-
|
|
47
|
+
<iframe title="The best i18n solution for Vite and Vue? Discover Intlayer" class="m-auto aspect-16/9 w-full overflow-hidden rounded-lg border-0" allow="autoplay; gyroscope;" loading="lazy" width="1080" height="auto" src="https://www.youtube.com/embed/IE3XWkZ6a5U?autoplay=0&origin=http://intlayer.org&controls=0&rel=1"/>
|
|
48
48
|
|
|
49
49
|
</TabItem>
|
|
50
50
|
<TabItem label="Kod" value="code">
|
|
@@ -19,6 +19,9 @@ slugs:
|
|
|
19
19
|
- intlayer
|
|
20
20
|
- getLocaleName
|
|
21
21
|
history:
|
|
22
|
+
- version: 7.5.0
|
|
23
|
+
date: 2025-12-18
|
|
24
|
+
changes: React Native ve eski ortamlar için polyfills ekle
|
|
22
25
|
- version: 5.5.10
|
|
23
26
|
date: 2025-06-29
|
|
24
27
|
changes: Geçmiş başlatıldı
|
|
@@ -116,3 +119,17 @@ getLocaleName("unknown-locale"); // Çıktı: "Unknown locale"
|
|
|
116
119
|
- Fonksiyon varsayılan olarak `displayLocale`'un kendi adını döndürür.
|
|
117
120
|
- **Eksik çeviriler:**
|
|
118
121
|
- `localeNameTranslations` `targetLocale` veya belirli `displayLocale` için bir giriş içermezse, fonksiyon `ownLocalesName`'e geri döner veya `"Unknown locale"` döndürür.
|
|
122
|
+
|
|
123
|
+
## React Native ve Eski Ortamlar için Polyfills
|
|
124
|
+
|
|
125
|
+
`getLocaleName` fonksiyonu `Intl.DisplayNames` API'sine bağımlıdır ve bu API React Native veya eski JavaScript ortamlarında mevcut değildir. Bu ortamlarda `getLocaleName` kullanıyorsanız, polyfills eklemeniz gerekir.
|
|
126
|
+
|
|
127
|
+
Polyfills'i uygulamanızın başında, tercihen giriş noktası dosyanızda (örneğin, `index.js`, `App.tsx` veya `main.tsx`) içe aktarın:
|
|
128
|
+
|
|
129
|
+
```typescript
|
|
130
|
+
import "intl";
|
|
131
|
+
import "@formatjs/intl-locale/polyfill";
|
|
132
|
+
import "@formatjs/intl-displaynames/polyfill";
|
|
133
|
+
```
|
|
134
|
+
|
|
135
|
+
Daha fazla ayrıntı için [FormatJS polyfills belgelerine](https://formatjs.io/docs/polyfills/intl-displaynames/) bakın.
|
|
@@ -34,7 +34,7 @@ history:
|
|
|
34
34
|
|
|
35
35
|
# JSON Senkronizasyonu (i18n köprüleri) - ICU / i18next desteği ile JSON Senkronizasyonu
|
|
36
36
|
|
|
37
|
-
<iframe title="JSON çevirilerinizi Intlayer ile nasıl senkronize tutarsınız" class="m-auto aspect-
|
|
37
|
+
<iframe title="JSON çevirilerinizi Intlayer ile nasıl senkronize tutarsınız" class="m-auto aspect-16/9 w-full overflow-hidden rounded-lg border-0" allow="autoplay; gyroscope;" loading="lazy" width="1080" height="auto" src="https://www.youtube.com/embed/MpGMxniDHNg?autoplay=0&origin=http://intlayer.org&controls=0&rel=1"/>
|
|
38
38
|
|
|
39
39
|
Intlayer'ı mevcut i18n yapınıza bir eklenti olarak kullanın. Bu eklenti, JSON mesajlarınızı Intlayer sözlükleriyle senkronize tutar, böylece:
|
|
40
40
|
|
|
@@ -28,7 +28,7 @@ history:
|
|
|
28
28
|
|
|
29
29
|
# Tệp Nội Dung
|
|
30
30
|
|
|
31
|
-
<iframe title="i18n, Markdown, JSON… một giải pháp duy nhất để quản lý tất cả | Intlayer" class="m-auto aspect-
|
|
31
|
+
<iframe title="i18n, Markdown, JSON… một giải pháp duy nhất để quản lý tất cả | Intlayer" class="m-auto aspect-16/9 w-full overflow-hidden rounded-lg border-0" allow="autoplay; gyroscope;" loading="lazy" width="1080" height="auto" src="https://www.youtube.com/embed/1VHgSY_j9_I?autoplay=0&origin=http://intlayer.org&controls=0&rel=1"/>
|
|
32
32
|
|
|
33
33
|
## Tệp Nội Dung là gì?
|
|
34
34
|
|
package/docs/vi/intlayer_CMS.md
CHANGED
|
@@ -31,7 +31,7 @@ history:
|
|
|
31
31
|
|
|
32
32
|
# Tài liệu Hệ thống Quản lý Nội dung (CMS) Intlayer
|
|
33
33
|
|
|
34
|
-
<iframe title="Trình chỉnh sửa trực quan + CMS cho Ứng dụng Web của bạn: Giải thích về Intlayer" class="m-auto aspect-
|
|
34
|
+
<iframe title="Trình chỉnh sửa trực quan + CMS cho Ứng dụng Web của bạn: Giải thích về Intlayer" class="m-auto aspect-16/9 w-full overflow-hidden rounded-lg border-0" allow="autoplay; gyroscope;" loading="lazy" width="1080" height="auto" src="https://www.youtube.com/embed/UDDTnirwi_4?autoplay=0&origin=http://intlayer.org&controls=0&rel=1"/>
|
|
35
35
|
|
|
36
36
|
Intlayer CMS là một ứng dụng cho phép bạn đưa nội dung của dự án Intlayer ra ngoài.
|
|
37
37
|
|
|
@@ -33,7 +33,7 @@ history:
|
|
|
33
33
|
|
|
34
34
|
# Tài liệu Trình chỉnh sửa trực quan Intlayer
|
|
35
35
|
|
|
36
|
-
<iframe title="Trình chỉnh sửa trực quan + CMS cho ứng dụng web của bạn: Giải thích Intlayer" class="m-auto aspect-
|
|
36
|
+
<iframe title="Trình chỉnh sửa trực quan + CMS cho ứng dụng web của bạn: Giải thích Intlayer" class="m-auto aspect-16/9 w-full overflow-hidden rounded-lg border-0" allow="autoplay; gyroscope;" loading="lazy" width="1080" height="auto" src="https://www.youtube.com/embed/UDDTnirwi_4?autoplay=0&origin=http://intlayer.org&controls=0&rel=1"/>
|
|
37
37
|
|
|
38
38
|
Trình chỉnh sửa trực quan Intlayer là một công cụ bao bọc trang web của bạn để tương tác với các tệp khai báo nội dung của bạn bằng cách sử dụng trình chỉnh sửa trực quan.
|
|
39
39
|
|
|
@@ -80,7 +80,7 @@ Với Intlayer, bạn có thể:
|
|
|
80
80
|
<Tab defaultTab="video">
|
|
81
81
|
<TabItem label="Video" value="video">
|
|
82
82
|
|
|
83
|
-
<iframe title="Giải pháp i18n tốt nhất cho Next.js? Khám phá Intlayer" class="m-auto aspect-
|
|
83
|
+
<iframe title="Giải pháp i18n tốt nhất cho Next.js? Khám phá Intlayer" class="m-auto aspect-16/9 w-full overflow-hidden rounded-lg border-0" allow="autoplay; gyroscope;" loading="lazy" width="1080" height="auto" src="https://www.youtube.com/embed/e_PPG7PTqGU?autoplay=0&origin=http://intlayer.org&controls=0&rel=1"/>
|
|
84
84
|
|
|
85
85
|
</TabItem>
|
|
86
86
|
<TabItem label="Code" value="code">
|
|
@@ -27,7 +27,7 @@ history:
|
|
|
27
27
|
<Tab defaultTab="video">
|
|
28
28
|
<TabItem label="Video" value="video">
|
|
29
29
|
|
|
30
|
-
<iframe title="Giải pháp i18n tốt nhất cho Next.js? Khám phá Intlayer" class="m-auto aspect-
|
|
30
|
+
<iframe title="Giải pháp i18n tốt nhất cho Next.js? Khám phá Intlayer" class="m-auto aspect-16/9 w-full overflow-hidden rounded-lg border-0" allow="autoplay; gyroscope;" loading="lazy" width="1080" height="auto" src="https://www.youtube.com/embed/e_PPG7PTqGU?autoplay=0&origin=http://intlayer.org&controls=0&rel=1"/>
|
|
31
31
|
|
|
32
32
|
</TabItem>
|
|
33
33
|
<TabItem label="Code" value="code">
|
|
@@ -49,7 +49,7 @@ Với Intlayer, bạn có thể:
|
|
|
49
49
|
<Tab defaultTab="video">
|
|
50
50
|
<TabItem label="Video" value="video">
|
|
51
51
|
|
|
52
|
-
<iframe title="Cách dịch ứng dụng Nuxt và Vue của bạn bằng Intlayer? Khám phá Intlayer" class="m-auto aspect-
|
|
52
|
+
<iframe title="Cách dịch ứng dụng Nuxt và Vue của bạn bằng Intlayer? Khám phá Intlayer" class="m-auto aspect-16/9 w-full overflow-hidden rounded-lg border-0" allow="autoplay; gyroscope;" loading="lazy" width="1080" height="auto" src="https://www.youtube.com/embed/nhUcUAVQ6eQ?autoplay=0&origin=http://intlayer.org&controls=0&rel=1"/>
|
|
53
53
|
|
|
54
54
|
</TabItem>
|
|
55
55
|
<TabItem label="Mã nguồn" value="code">
|
|
@@ -373,11 +373,11 @@ import { useIntlayer } from "vue-intlayer";
|
|
|
373
373
|
const content = useIntlayer("home-page");
|
|
374
374
|
|
|
375
375
|
useHead({
|
|
376
|
-
title: content.metaTitle.
|
|
376
|
+
title: content.metaTitle.raw,
|
|
377
377
|
meta: [
|
|
378
378
|
{
|
|
379
379
|
name: "description",
|
|
380
|
-
content: content.metaDescription.
|
|
380
|
+
content: content.metaDescription.raw,
|
|
381
381
|
},
|
|
382
382
|
],
|
|
383
383
|
});
|
|
@@ -91,7 +91,7 @@ pnpm add vite-intlayer --save-dev
|
|
|
91
91
|
<Tab defaultTab="video">
|
|
92
92
|
<TabItem label="Video" value="video">
|
|
93
93
|
|
|
94
|
-
<iframe title="How to translate your React Router v7 app using Intlayer" class="m-auto aspect-
|
|
94
|
+
<iframe title="How to translate your React Router v7 app using Intlayer" class="m-auto aspect-16/9 w-full overflow-hidden rounded-lg border-0" allow="autoplay; gyroscope;" loading="lazy" width="1080" height="auto" src="https://www.youtube.com/embed/dS9L7uJeak4?autoplay=0&origin=http://intlayer.org&controls=0&rel=1"/>
|
|
95
95
|
|
|
96
96
|
</TabItem>
|
|
97
97
|
<TabItem label="Code" value="code">
|
|
@@ -91,7 +91,7 @@ pnpm add vite-intlayer --save-dev
|
|
|
91
91
|
<Tab defaultTab="video">
|
|
92
92
|
<TabItem label="Video" value="video">
|
|
93
93
|
|
|
94
|
-
<iframe title="How to translate your React Router v7 (File-System Routes) app using Intlayer" class="m-auto aspect-
|
|
94
|
+
<iframe title="How to translate your React Router v7 (File-System Routes) app using Intlayer" class="m-auto aspect-16/9 w-full overflow-hidden rounded-lg border-0" allow="autoplay; gyroscope;" loading="lazy" width="1080" height="auto" src="https://www.youtube.com/embed/dS9L7uJeak4?autoplay=0&origin=http://intlayer.org&controls=0&rel=1"/>
|
|
95
95
|
|
|
96
96
|
</TabItem>
|
|
97
97
|
<TabItem label="Code" value="code">
|
|
@@ -60,7 +60,7 @@ Với Intlayer, bạn có thể:
|
|
|
60
60
|
<Tab defaultTab="video">
|
|
61
61
|
<TabItem label="Video" value="video">
|
|
62
62
|
|
|
63
|
-
<iframe title="Giải pháp i18n tốt nhất cho Tanstack Start? Khám phá Intlayer" class="m-auto aspect-
|
|
63
|
+
<iframe title="Giải pháp i18n tốt nhất cho Tanstack Start? Khám phá Intlayer" class="m-auto aspect-16/9 w-full overflow-hidden rounded-lg border-0" allow="autoplay; gyroscope;" loading="lazy" width="1080" height="auto" src="https://www.youtube.com/embed/_XTdKVWaeqg?autoplay=0&origin=http://intlayer.org&controls=0&rel=1"/>
|
|
64
64
|
|
|
65
65
|
</TabItem>
|
|
66
66
|
<TabItem label="Code" value="code">
|
|
@@ -1503,8 +1503,7 @@ import { forwardRef } from "preact/compat";
|
|
|
1503
1503
|
export const checkIsExternalLink = (href?: string) =>
|
|
1504
1504
|
/^https?:\/\//.test(href ?? "");
|
|
1505
1505
|
|
|
1506
|
-
export interface LocalizedLinkProps
|
|
1507
|
-
extends JSX.HTMLAttributes<HTMLAnchorElement> {
|
|
1506
|
+
export interface LocalizedLinkProps extends JSX.HTMLAttributes<HTMLAnchorElement> {
|
|
1508
1507
|
href: string;
|
|
1509
1508
|
replace?: boolean;
|
|
1510
1509
|
}
|
|
@@ -47,7 +47,7 @@ Với Intlayer, bạn có thể:
|
|
|
47
47
|
<Tab defaultTab="video">
|
|
48
48
|
<TabItem label="Video" value="video">
|
|
49
49
|
|
|
50
|
-
<iframe title="Giải pháp i18n tốt nhất cho Vite và React? Khám phá Intlayer" class="m-auto aspect-
|
|
50
|
+
<iframe title="Giải pháp i18n tốt nhất cho Vite và React? Khám phá Intlayer" class="m-auto aspect-16/9 w-full overflow-hidden rounded-lg border-0" allow="autoplay; gyroscope;" loading="lazy" width="1080" height="auto" src="https://www.youtube.com/embed/dS9L7uJeak4?si=VaKmrYMmXjo3xpk2"/>
|
|
51
51
|
|
|
52
52
|
</TabItem>
|
|
53
53
|
<TabItem label="Code" value="code">
|
|
@@ -46,7 +46,7 @@ Với Intlayer, bạn có thể:
|
|
|
46
46
|
<Tab defaultTab="video">
|
|
47
47
|
<TabItem label="Video" value="video">
|
|
48
48
|
|
|
49
|
-
<iframe title="The best i18n solution for Vite and Vue? Discover Intlayer" class="m-auto aspect-
|
|
49
|
+
<iframe title="The best i18n solution for Vite and Vue? Discover Intlayer" class="m-auto aspect-16/9 w-full overflow-hidden rounded-lg border-0" allow="autoplay; gyroscope;" loading="lazy" width="1080" height="auto" src="https://www.youtube.com/embed/IE3XWkZ6a5U?autoplay=0&origin=http://intlayer.org&controls=0&rel=1"/>
|
|
50
50
|
|
|
51
51
|
</TabItem>
|
|
52
52
|
<TabItem label="Mã" value="code">
|
|
@@ -19,6 +19,9 @@ slugs:
|
|
|
19
19
|
- intlayer
|
|
20
20
|
- getLocaleName
|
|
21
21
|
history:
|
|
22
|
+
- version: 7.5.0
|
|
23
|
+
date: 2025-12-18
|
|
24
|
+
changes: Thêm polyfills cho React Native và các môi trường cũ hơn
|
|
22
25
|
- version: 5.5.10
|
|
23
26
|
date: 2025-06-29
|
|
24
27
|
changes: Khởi tạo lịch sử
|
|
@@ -127,3 +130,17 @@ getLocaleName("unknown-locale"); // Kết quả: "Unknown locale"
|
|
|
127
130
|
- Hàm mặc định trả về tên của chính `displayLocale`.
|
|
128
131
|
- **Thiếu bản dịch:**
|
|
129
132
|
- Nếu `localeNameTranslations` không chứa mục cho `targetLocale` hoặc `displayLocale` cụ thể, hàm sẽ sử dụng lại `ownLocalesName` hoặc trả về `"Unknown locale"`.
|
|
133
|
+
|
|
134
|
+
## Polyfills cho React Native và các môi trường cũ hơn
|
|
135
|
+
|
|
136
|
+
Hàm `getLocaleName` phụ thuộc vào API `Intl.DisplayNames`, không có sẵn trong React Native hoặc các môi trường JavaScript cũ hơn. Nếu bạn đang sử dụng `getLocaleName` trong các môi trường này, bạn cần thêm polyfills.
|
|
137
|
+
|
|
138
|
+
Nhập polyfills sớm trong ứng dụng của bạn, lý tưởng là trong tệp điểm vào của bạn (ví dụ: `index.js`, `App.tsx` hoặc `main.tsx`):
|
|
139
|
+
|
|
140
|
+
```typescript
|
|
141
|
+
import "intl";
|
|
142
|
+
import "@formatjs/intl-locale/polyfill";
|
|
143
|
+
import "@formatjs/intl-displaynames/polyfill";
|
|
144
|
+
```
|
|
145
|
+
|
|
146
|
+
Để biết thêm chi tiết, xem [tài liệu polyfills FormatJS](https://formatjs.io/docs/polyfills/intl-displaynames/).
|