@intlayer/docs 7.0.7 → 7.0.8
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/blog/ar/i18n_using_next-i18next.md +1068 -0
- package/blog/ar/i18n_using_next-intl.md +768 -0
- package/blog/ar/intlayer_with_react-intl.md +0 -4
- package/blog/ar/next-i18next_vs_next-intl_vs_intlayer.md +5 -4
- package/blog/de/i18n_using_next-i18next.md +1107 -0
- package/blog/de/i18n_using_next-intl.md +760 -0
- package/blog/de/intlayer_with_react-intl.md +0 -4
- package/blog/de/next-i18next_vs_next-intl_vs_intlayer.md +2 -0
- package/blog/en/i18n_using_next-i18next.md +1073 -0
- package/blog/en/i18n_using_next-intl.md +757 -0
- package/blog/en/intlayer_with_i18next.md +71 -8
- package/blog/en/intlayer_with_next-i18next.md +71 -8
- package/blog/en/intlayer_with_next-intl.md +71 -8
- package/blog/en/intlayer_with_react-i18next.md +69 -8
- package/blog/en/intlayer_with_react-intl.md +68 -9
- package/blog/en/intlayer_with_vue-i18n.md +68 -7
- package/blog/en/react-i18next_vs_react-intl_vs_intlayer.md +2 -0
- package/blog/en/vue-i18n_vs_intlayer.md +2 -0
- package/blog/en-GB/i18n_using_next-i18next.md +1074 -0
- package/blog/en-GB/i18n_using_next-intl.md +757 -0
- package/blog/en-GB/intlayer_with_i18next.md +15 -6
- package/blog/en-GB/intlayer_with_next-i18next.md +16 -6
- package/blog/en-GB/intlayer_with_next-intl.md +16 -6
- package/blog/en-GB/intlayer_with_react-i18next.md +16 -7
- package/blog/en-GB/intlayer_with_react-intl.md +14 -9
- package/blog/en-GB/intlayer_with_vue-i18n.md +16 -7
- package/blog/en-GB/next-i18next_vs_next-intl_vs_intlayer.md +2 -0
- package/blog/en-GB/react-i18next_vs_react-intl_vs_intlayer.md +2 -0
- package/blog/en-GB/vue-i18n_vs_intlayer.md +2 -0
- package/blog/es/i18n_using_next-i18next.md +1066 -0
- package/blog/es/i18n_using_next-intl.md +757 -0
- package/blog/es/intlayer_with_react-intl.md +0 -4
- package/blog/es/next-i18next_vs_next-intl_vs_intlayer.md +2 -0
- package/blog/fr/i18n_using_next-i18next.md +1078 -0
- package/blog/fr/i18n_using_next-intl.md +759 -0
- package/blog/fr/intlayer_with_react-intl.md +0 -4
- package/blog/fr/next-i18next_vs_next-intl_vs_intlayer.md +2 -0
- package/blog/hi/i18n_using_next-i18next.md +1068 -0
- package/blog/hi/i18n_using_next-intl.md +758 -0
- package/blog/hi/intlayer_with_react-intl.md +0 -4
- package/blog/hi/next-i18next_vs_next-intl_vs_intlayer.md +2 -0
- package/blog/id/i18n_using_next-i18next.md +1078 -0
- package/blog/id/i18n_using_next-intl.md +757 -0
- package/blog/id/index.md +69 -0
- package/blog/id/internationalization_and_SEO.md +364 -0
- package/blog/id/intlayer_with_react-intl.md +0 -4
- package/blog/id/list_i18n_technologies/CMS/drupal.md +143 -0
- package/blog/id/list_i18n_technologies/CMS/wix.md +167 -0
- package/blog/id/list_i18n_technologies/CMS/wordpress.md +188 -0
- package/blog/id/list_i18n_technologies/frameworks/angular.md +125 -0
- package/blog/id/list_i18n_technologies/frameworks/flutter.md +150 -0
- package/blog/id/list_i18n_technologies/frameworks/react-native.md +217 -0
- package/blog/id/list_i18n_technologies/frameworks/react.md +155 -0
- package/blog/id/list_i18n_technologies/frameworks/svelte.md +131 -0
- package/blog/id/list_i18n_technologies/frameworks/vue.md +130 -0
- package/blog/id/next-i18next_vs_next-intl_vs_intlayer.md +1500 -0
- package/blog/id/nextjs-multilingual-seo-comparison.md +361 -0
- package/blog/id/rag_powered_documentation_assistant.md +288 -0
- package/blog/id/react-i18next_vs_react-intl_vs_intlayer.md +164 -0
- package/blog/id/vue-i18n_vs_intlayer.md +278 -0
- package/blog/id/what_is_internationalization.md +166 -0
- package/blog/it/i18n_using_next-i18next.md +1078 -0
- package/blog/it/i18n_using_next-intl.md +758 -0
- package/blog/it/intlayer_with_react-intl.md +0 -4
- package/blog/it/react-i18next_vs_react-intl_vs_intlayer.md +4 -0
- package/blog/it/vue-i18n_vs_intlayer.md +2 -0
- package/blog/ja/i18n_using_next-i18next.md +1078 -0
- package/blog/ja/i18n_using_next-intl.md +758 -0
- package/blog/ja/intlayer_with_react-intl.md +0 -4
- package/blog/ja/next-i18next_vs_next-intl_vs_intlayer.md +2 -0
- package/blog/ko/i18n_using_next-i18next.md +1075 -0
- package/blog/ko/i18n_using_next-intl.md +759 -0
- package/blog/ko/intlayer_with_react-intl.md +0 -4
- package/blog/ko/next-i18next_vs_next-intl_vs_intlayer.md +2 -0
- package/blog/pl/i18n_using_next-i18next.md +1078 -0
- package/blog/pl/i18n_using_next-intl.md +758 -0
- package/blog/pl/index.md +69 -0
- package/blog/pl/internationalization_and_SEO.md +363 -0
- package/blog/pl/intlayer_with_react-intl.md +0 -4
- package/blog/pl/list_i18n_technologies/CMS/drupal.md +143 -0
- package/blog/pl/list_i18n_technologies/CMS/wix.md +167 -0
- package/blog/pl/list_i18n_technologies/CMS/wordpress.md +196 -0
- package/blog/pl/list_i18n_technologies/frameworks/angular.md +125 -0
- package/blog/pl/list_i18n_technologies/frameworks/flutter.md +151 -0
- package/blog/pl/list_i18n_technologies/frameworks/react-native.md +217 -0
- package/blog/pl/list_i18n_technologies/frameworks/react.md +155 -0
- package/blog/pl/list_i18n_technologies/frameworks/svelte.md +131 -0
- package/blog/pl/list_i18n_technologies/frameworks/vue.md +130 -0
- package/blog/pl/next-i18next_vs_next-intl_vs_intlayer.md +1501 -0
- package/blog/pl/nextjs-multilingual-seo-comparison.md +362 -0
- package/blog/pl/rag_powered_documentation_assistant.md +288 -0
- package/blog/pl/react-i18next_vs_react-intl_vs_intlayer.md +164 -0
- package/blog/pl/vue-i18n_vs_intlayer.md +278 -0
- package/blog/pl/what_is_internationalization.md +167 -0
- package/blog/pt/i18n_using_next-i18next.md +1067 -0
- package/blog/pt/i18n_using_next-intl.md +760 -0
- package/blog/pt/next-i18next_vs_next-intl_vs_intlayer.md +2 -0
- package/blog/ru/i18n_using_next-i18next.md +1106 -0
- package/blog/ru/i18n_using_next-intl.md +759 -0
- package/blog/ru/intlayer_with_react-intl.md +0 -4
- package/blog/ru/next-i18next_vs_next-intl_vs_intlayer.md +2 -0
- package/blog/tr/i18n_using_next-i18next.md +1078 -0
- package/blog/tr/i18n_using_next-intl.md +760 -0
- package/blog/tr/intlayer_with_react-intl.md +0 -4
- package/blog/tr/next-i18next_vs_next-intl_vs_intlayer.md +2 -0
- package/blog/tr/react-i18next_vs_react-intl_vs_intlayer.md +2 -0
- package/blog/tr/vue-i18n_vs_intlayer.md +2 -0
- package/blog/vi/i18n_using_next-i18next.md +1080 -0
- package/blog/vi/i18n_using_next-intl.md +758 -0
- package/blog/vi/index.md +69 -0
- package/blog/vi/internationalization_and_SEO.md +363 -0
- package/blog/vi/intlayer_with_react-intl.md +0 -4
- package/blog/vi/list_i18n_technologies/CMS/drupal.md +143 -0
- package/blog/vi/list_i18n_technologies/CMS/wix.md +167 -0
- package/blog/vi/list_i18n_technologies/CMS/wordpress.md +188 -0
- package/blog/vi/list_i18n_technologies/frameworks/angular.md +125 -0
- package/blog/vi/list_i18n_technologies/frameworks/flutter.md +150 -0
- package/blog/vi/list_i18n_technologies/frameworks/react-native.md +217 -0
- package/blog/vi/list_i18n_technologies/frameworks/react.md +155 -0
- package/blog/vi/list_i18n_technologies/frameworks/svelte.md +131 -0
- package/blog/vi/list_i18n_technologies/frameworks/vue.md +130 -0
- package/blog/vi/next-i18next_vs_next-intl_vs_intlayer.md +1520 -0
- package/blog/vi/nextjs-multilingual-seo-comparison.md +362 -0
- package/blog/vi/rag_powered_documentation_assistant.md +288 -0
- package/blog/vi/react-i18next_vs_react-intl_vs_intlayer.md +164 -0
- package/blog/vi/vue-i18n_vs_intlayer.md +278 -0
- package/blog/vi/what_is_internationalization.md +168 -0
- package/blog/zh/i18n_using_next-i18next.md +1105 -0
- package/blog/zh/i18n_using_next-intl.md +758 -0
- package/blog/zh/intlayer_with_react-intl.md +0 -4
- package/blog/zh/next-i18next_vs_next-intl_vs_intlayer.md +2 -0
- package/blog/zh/react-i18next_vs_react-intl_vs_intlayer.md +2 -0
- package/dist/cjs/common.cjs +0 -4
- package/dist/cjs/common.cjs.map +1 -1
- package/dist/cjs/generated/blog.entry.cjs +38 -6
- package/dist/cjs/generated/blog.entry.cjs.map +1 -1
- package/dist/cjs/generated/docs.entry.cjs +0 -6
- package/dist/cjs/generated/docs.entry.cjs.map +1 -1
- package/dist/cjs/generated/frequentQuestions.entry.cjs +0 -6
- package/dist/cjs/generated/frequentQuestions.entry.cjs.map +1 -1
- package/dist/cjs/generated/legal.entry.cjs +0 -6
- package/dist/cjs/generated/legal.entry.cjs.map +1 -1
- package/dist/esm/generated/blog.entry.mjs +38 -0
- package/dist/esm/generated/blog.entry.mjs.map +1 -1
- package/dist/types/generated/blog.entry.d.ts +2 -0
- package/dist/types/generated/blog.entry.d.ts.map +1 -1
- package/docs/ar/component_i18n.md +1 -1
- package/docs/ar/configuration.md +6 -0
- package/docs/ar/intlayer_cli.md +8 -3
- package/docs/ar/intlayer_with_next-i18next.md +619 -0
- package/docs/ar/intlayer_with_next-intl.md +446 -0
- package/docs/ar/intlayer_with_nextjs_16.md +21 -0
- package/docs/ar/intlayer_with_tanstack.md +4 -0
- package/docs/ar/intlayer_with_vite+react.md +4 -0
- package/docs/de/component_i18n.md +1 -1
- package/docs/de/configuration.md +6 -0
- package/docs/de/intlayer_cli.md +8 -3
- package/docs/de/intlayer_with_next-i18next.md +627 -0
- package/docs/de/intlayer_with_next-intl.md +451 -0
- package/docs/de/intlayer_with_nextjs_16.md +21 -0
- package/docs/de/intlayer_with_tanstack.md +4 -0
- package/docs/de/intlayer_with_vite+react.md +4 -0
- package/docs/en/component_i18n.md +1 -1
- package/docs/en/intlayer_cli.md +8 -1
- package/docs/en/intlayer_with_astro.md +10 -2
- package/docs/en/intlayer_with_create_react_app.md +8 -0
- package/docs/en/intlayer_with_lynx+react.md +8 -0
- package/docs/en/intlayer_with_nestjs.md +10 -0
- package/docs/en/intlayer_with_nextjs_14.md +10 -2
- package/docs/en/intlayer_with_nextjs_15.md +21 -4
- package/docs/en/intlayer_with_nextjs_16.md +17 -0
- package/docs/en/intlayer_with_nuxt.md +8 -0
- package/docs/en/intlayer_with_react_native+expo.md +10 -2
- package/docs/en/intlayer_with_react_router_v7.md +8 -0
- package/docs/en/intlayer_with_tanstack.md +10 -0
- package/docs/en/intlayer_with_vite+preact.md +10 -2
- package/docs/en/intlayer_with_vite+react.md +21 -4
- package/docs/en/intlayer_with_vite+vue.md +10 -2
- package/docs/en-GB/component_i18n.md +1 -1
- package/docs/en-GB/configuration.md +6 -0
- package/docs/en-GB/intlayer_cli.md +8 -3
- package/docs/en-GB/intlayer_with_angular.md +4 -4
- package/docs/en-GB/intlayer_with_express.md +4 -4
- package/docs/en-GB/intlayer_with_lynx+react.md +12 -12
- package/{blog/en/_intlayer_with_next-i18next.md → docs/en-GB/intlayer_with_next-i18next.md} +241 -42
- package/{blog/en/_intlayer_with_next-intl.md → docs/en-GB/intlayer_with_next-intl.md} +144 -29
- package/docs/en-GB/intlayer_with_nextjs_16.md +21 -0
- package/docs/en-GB/intlayer_with_tanstack.md +5 -1
- package/docs/en-GB/intlayer_with_vite+react.md +4 -0
- package/docs/en-GB/packages/next-intlayer/t.md +2 -2
- package/docs/es/component_i18n.md +1 -1
- package/docs/es/configuration.md +6 -0
- package/docs/es/intlayer_cli.md +8 -3
- package/docs/es/intlayer_with_next-i18next.md +628 -0
- package/docs/es/intlayer_with_next-intl.md +446 -0
- package/docs/es/intlayer_with_nextjs_16.md +21 -0
- package/docs/es/intlayer_with_tanstack.md +4 -0
- package/docs/es/intlayer_with_vite+react.md +4 -0
- package/docs/fr/configuration.md +6 -0
- package/docs/fr/intlayer_cli.md +8 -3
- package/docs/fr/intlayer_with_next-i18next.md +628 -0
- package/docs/fr/intlayer_with_next-intl.md +446 -0
- package/docs/fr/intlayer_with_nextjs_16.md +23 -2
- package/docs/fr/intlayer_with_tanstack.md +4 -0
- package/docs/fr/intlayer_with_vite+react.md +4 -0
- package/docs/hi/component_i18n.md +1 -1
- package/docs/hi/configuration.md +6 -0
- package/docs/hi/intlayer_cli.md +8 -0
- package/docs/hi/intlayer_with_next-i18next.md +628 -0
- package/docs/hi/intlayer_with_next-intl.md +446 -0
- package/docs/hi/intlayer_with_nextjs_16.md +21 -0
- package/docs/hi/intlayer_with_tanstack.md +4 -0
- package/docs/hi/intlayer_with_vite+react.md +4 -0
- package/docs/id/CI_CD.md +198 -0
- package/docs/id/autoFill.md +284 -0
- package/docs/id/component_i18n.md +186 -0
- package/docs/id/configuration.md +710 -0
- package/docs/id/dictionary/condition.md +231 -0
- package/docs/id/dictionary/content_file.md +1092 -0
- package/docs/id/dictionary/enumeration.md +245 -0
- package/docs/id/dictionary/file.md +237 -0
- package/docs/id/dictionary/function_fetching.md +214 -0
- package/docs/id/dictionary/gender.md +273 -0
- package/docs/id/dictionary/insertion.md +192 -0
- package/docs/id/dictionary/markdown.md +381 -0
- package/docs/id/dictionary/nesting.md +273 -0
- package/docs/id/dictionary/translation.md +310 -0
- package/docs/id/formatters.md +596 -0
- package/docs/id/how_works_intlayer.md +256 -0
- package/docs/id/index.md +176 -0
- package/docs/id/interest_of_intlayer.md +293 -0
- package/docs/id/intlayer_CMS.md +549 -0
- package/docs/id/intlayer_cli.md +850 -0
- package/docs/id/intlayer_visual_editor.md +288 -0
- package/docs/id/intlayer_with_angular.md +694 -0
- package/docs/id/intlayer_with_astro.md +252 -0
- package/docs/id/intlayer_with_create_react_app.md +1233 -0
- package/docs/id/intlayer_with_express.md +411 -0
- package/docs/id/intlayer_with_lynx+react.md +518 -0
- package/docs/id/intlayer_with_nestjs.md +272 -0
- package/docs/id/intlayer_with_next-i18next.md +628 -0
- package/docs/id/intlayer_with_next-intl.md +446 -0
- package/docs/id/intlayer_with_nextjs_14.md +1617 -0
- package/docs/id/intlayer_with_nextjs_15.md +1698 -0
- package/docs/id/intlayer_with_nextjs_16.md +21 -0
- package/docs/id/intlayer_with_nextjs_page_router.md +1478 -0
- package/docs/id/intlayer_with_nuxt.md +808 -0
- package/docs/id/intlayer_with_react_native+expo.md +699 -0
- package/docs/id/intlayer_with_react_router_v7.md +496 -0
- package/docs/id/intlayer_with_tanstack.md +564 -0
- package/docs/id/intlayer_with_vite+preact.md +1737 -0
- package/docs/id/intlayer_with_vite+react.md +1413 -0
- package/docs/id/intlayer_with_vite+solid.md +289 -0
- package/docs/id/intlayer_with_vite+svelte.md +289 -0
- package/docs/id/intlayer_with_vite+vue.md +1088 -0
- package/docs/id/introduction.md +218 -0
- package/docs/id/locale_mapper.md +242 -0
- package/docs/id/mcp_server.md +211 -0
- package/docs/id/packages/express-intlayer/t.md +458 -0
- package/docs/id/packages/intlayer/getConfiguration.md +145 -0
- package/docs/id/packages/intlayer/getEnumeration.md +159 -0
- package/docs/id/packages/intlayer/getHTMLTextDir.md +122 -0
- package/docs/id/packages/intlayer/getLocaleLang.md +81 -0
- package/docs/id/packages/intlayer/getLocaleName.md +119 -0
- package/docs/id/packages/intlayer/getLocalizedUrl.md +309 -0
- package/docs/id/packages/intlayer/getMultilingualUrls.md +223 -0
- package/docs/id/packages/intlayer/getPathWithoutLocale.md +75 -0
- package/docs/id/packages/intlayer/getTranslation.md +190 -0
- package/docs/id/packages/intlayer/getTranslationContent.md +188 -0
- package/docs/id/packages/next-intlayer/t.md +352 -0
- package/docs/id/packages/next-intlayer/useDictionary.md +271 -0
- package/docs/id/packages/next-intlayer/useIntlayer.md +264 -0
- package/docs/id/packages/next-intlayer/useLocale.md +166 -0
- package/docs/id/packages/react-intlayer/t.md +303 -0
- package/docs/id/packages/react-intlayer/useDictionary.md +287 -0
- package/docs/id/packages/react-intlayer/useI18n.md +267 -0
- package/docs/id/packages/react-intlayer/useIntlayer.md +254 -0
- package/docs/id/packages/react-intlayer/useLocale.md +210 -0
- package/docs/id/per_locale_file.md +323 -0
- package/docs/id/readme.md +261 -0
- package/docs/id/releases/v6.md +305 -0
- package/docs/id/roadmap.md +362 -0
- package/docs/id/testing.md +202 -0
- package/docs/id/vs_code_extension.md +126 -0
- package/docs/it/component_i18n.md +1 -1
- package/docs/it/configuration.md +6 -0
- package/docs/it/intlayer_cli.md +8 -3
- package/docs/it/intlayer_with_next-i18next.md +628 -0
- package/docs/it/intlayer_with_next-intl.md +446 -0
- package/docs/it/intlayer_with_nextjs_16.md +21 -0
- package/docs/it/intlayer_with_tanstack.md +4 -0
- package/docs/it/intlayer_with_vite+react.md +4 -0
- package/docs/ja/component_i18n.md +1 -1
- package/docs/ja/configuration.md +6 -0
- package/docs/ja/intlayer_cli.md +8 -3
- package/docs/ja/intlayer_with_next-i18next.md +627 -0
- package/docs/ja/intlayer_with_next-intl.md +446 -0
- package/docs/ja/intlayer_with_nextjs_16.md +21 -0
- package/docs/ja/intlayer_with_tanstack.md +4 -0
- package/docs/ja/intlayer_with_vite+react.md +4 -0
- package/docs/ko/configuration.md +6 -0
- package/docs/ko/intlayer_cli.md +8 -3
- package/docs/ko/intlayer_with_next-i18next.md +627 -0
- package/docs/ko/intlayer_with_next-intl.md +446 -0
- package/docs/ko/intlayer_with_nextjs_16.md +21 -0
- package/docs/ko/intlayer_with_tanstack.md +4 -0
- package/docs/ko/intlayer_with_vite+react.md +4 -0
- package/docs/pl/CI_CD.md +198 -0
- package/docs/pl/autoFill.md +284 -0
- package/docs/pl/component_i18n.md +186 -0
- package/docs/pl/configuration.md +710 -0
- package/docs/pl/dictionary/condition.md +232 -0
- package/docs/pl/dictionary/content_file.md +1130 -0
- package/docs/pl/dictionary/enumeration.md +245 -0
- package/docs/pl/dictionary/file.md +234 -0
- package/docs/pl/dictionary/function_fetching.md +214 -0
- package/docs/pl/dictionary/gender.md +276 -0
- package/docs/pl/dictionary/insertion.md +188 -0
- package/docs/pl/dictionary/markdown.md +408 -0
- package/docs/pl/dictionary/nesting.md +273 -0
- package/docs/pl/dictionary/translation.md +310 -0
- package/docs/pl/formatters.md +596 -0
- package/docs/pl/how_works_intlayer.md +256 -0
- package/docs/pl/index.md +176 -0
- package/docs/pl/interest_of_intlayer.md +291 -0
- package/docs/pl/intlayer_CMS.md +549 -0
- package/docs/pl/intlayer_cli.md +857 -0
- package/docs/pl/intlayer_visual_editor.md +288 -0
- package/docs/pl/intlayer_with_angular.md +690 -0
- package/docs/pl/intlayer_with_astro.md +280 -0
- package/docs/pl/intlayer_with_create_react_app.md +1235 -0
- package/docs/pl/intlayer_with_express.md +411 -0
- package/docs/pl/intlayer_with_lynx+react.md +518 -0
- package/docs/pl/intlayer_with_nestjs.md +272 -0
- package/docs/pl/intlayer_with_next-i18next.md +628 -0
- package/docs/pl/intlayer_with_next-intl.md +446 -0
- package/docs/pl/intlayer_with_nextjs_14.md +1594 -0
- package/docs/pl/intlayer_with_nextjs_15.md +1701 -0
- package/docs/pl/intlayer_with_nextjs_16.md +21 -0
- package/docs/pl/intlayer_with_nextjs_page_router.md +1513 -0
- package/docs/pl/intlayer_with_nuxt.md +885 -0
- package/docs/pl/intlayer_with_react_native+expo.md +698 -0
- package/docs/pl/intlayer_with_react_router_v7.md +503 -0
- package/docs/pl/intlayer_with_tanstack.md +562 -0
- package/docs/pl/intlayer_with_vite+preact.md +1736 -0
- package/docs/pl/intlayer_with_vite+react.md +1438 -0
- package/docs/pl/intlayer_with_vite+solid.md +290 -0
- package/docs/pl/intlayer_with_vite+svelte.md +289 -0
- package/docs/pl/intlayer_with_vite+vue.md +1116 -0
- package/docs/pl/introduction.md +209 -0
- package/docs/pl/locale_mapper.md +242 -0
- package/docs/pl/mcp_server.md +211 -0
- package/docs/pl/packages/express-intlayer/t.md +458 -0
- package/docs/pl/packages/intlayer/getConfiguration.md +146 -0
- package/docs/pl/packages/intlayer/getEnumeration.md +160 -0
- package/docs/pl/packages/intlayer/getHTMLTextDir.md +121 -0
- package/docs/pl/packages/intlayer/getLocaleLang.md +81 -0
- package/docs/pl/packages/intlayer/getLocaleName.md +118 -0
- package/docs/pl/packages/intlayer/getLocalizedUrl.md +300 -0
- package/docs/pl/packages/intlayer/getMultilingualUrls.md +221 -0
- package/docs/pl/packages/intlayer/getPathWithoutLocale.md +75 -0
- package/docs/pl/packages/intlayer/getTranslation.md +190 -0
- package/docs/pl/packages/intlayer/getTranslationContent.md +189 -0
- package/docs/pl/packages/next-intlayer/t.md +353 -0
- package/docs/pl/packages/next-intlayer/useDictionary.md +270 -0
- package/docs/pl/packages/next-intlayer/useIntlayer.md +263 -0
- package/docs/pl/packages/next-intlayer/useLocale.md +166 -0
- package/docs/pl/packages/react-intlayer/t.md +303 -0
- package/docs/pl/packages/react-intlayer/useDictionary.md +289 -0
- package/docs/pl/packages/react-intlayer/useI18n.md +249 -0
- package/docs/pl/packages/react-intlayer/useIntlayer.md +256 -0
- package/docs/pl/packages/react-intlayer/useLocale.md +210 -0
- package/docs/pl/per_locale_file.md +321 -0
- package/docs/pl/readme.md +261 -0
- package/docs/pl/releases/v6.md +305 -0
- package/docs/pl/roadmap.md +362 -0
- package/docs/pl/testing.md +202 -0
- package/docs/pl/vs_code_extension.md +126 -0
- package/docs/pt/component_i18n.md +1 -1
- package/docs/pt/configuration.md +6 -0
- package/docs/pt/intlayer_cli.md +8 -3
- package/docs/pt/intlayer_with_next-i18next.md +627 -0
- package/docs/pt/intlayer_with_next-intl.md +446 -0
- package/docs/pt/intlayer_with_nextjs_16.md +21 -0
- package/docs/pt/intlayer_with_tanstack.md +4 -0
- package/docs/pt/intlayer_with_vite+react.md +4 -0
- package/docs/ru/component_i18n.md +1 -1
- package/docs/ru/configuration.md +6 -0
- package/docs/ru/intlayer_cli.md +301 -22
- package/docs/ru/intlayer_with_next-i18next.md +629 -0
- package/docs/ru/intlayer_with_next-intl.md +448 -0
- package/docs/ru/intlayer_with_nextjs_16.md +21 -0
- package/docs/ru/intlayer_with_tanstack.md +4 -0
- package/docs/ru/intlayer_with_vite+react.md +4 -0
- package/docs/tr/component_i18n.md +1 -1
- package/docs/tr/configuration.md +6 -0
- package/docs/tr/intlayer_cli.md +8 -0
- package/docs/tr/intlayer_with_next-i18next.md +627 -0
- package/docs/tr/intlayer_with_next-intl.md +446 -0
- package/docs/tr/intlayer_with_nextjs_16.md +21 -0
- package/docs/tr/intlayer_with_tanstack.md +4 -0
- package/docs/tr/intlayer_with_vite+react.md +4 -0
- package/docs/vi/CI_CD.md +198 -0
- package/docs/vi/autoFill.md +284 -0
- package/docs/vi/component_i18n.md +186 -0
- package/docs/vi/configuration.md +710 -0
- package/docs/vi/dictionary/condition.md +237 -0
- package/docs/vi/dictionary/content_file.md +1115 -0
- package/docs/vi/dictionary/enumeration.md +255 -0
- package/docs/vi/dictionary/file.md +234 -0
- package/docs/vi/dictionary/function_fetching.md +212 -0
- package/docs/vi/dictionary/gender.md +275 -0
- package/docs/vi/dictionary/insertion.md +191 -0
- package/docs/vi/dictionary/markdown.md +381 -0
- package/docs/vi/dictionary/nesting.md +273 -0
- package/docs/vi/dictionary/translation.md +309 -0
- package/docs/vi/formatters.md +595 -0
- package/docs/vi/how_works_intlayer.md +256 -0
- package/docs/vi/index.md +174 -0
- package/docs/vi/interest_of_intlayer.md +292 -0
- package/docs/vi/intlayer_CMS.md +549 -0
- package/docs/vi/intlayer_cli.md +850 -0
- package/docs/vi/intlayer_visual_editor.md +288 -0
- package/docs/vi/intlayer_with_angular.md +692 -0
- package/docs/vi/intlayer_with_astro.md +252 -0
- package/docs/vi/intlayer_with_create_react_app.md +1230 -0
- package/docs/vi/intlayer_with_express.md +409 -0
- package/docs/vi/intlayer_with_lynx+react.md +520 -0
- package/docs/vi/intlayer_with_nestjs.md +272 -0
- package/docs/vi/intlayer_with_next-i18next.md +628 -0
- package/docs/vi/intlayer_with_next-intl.md +446 -0
- package/docs/vi/intlayer_with_nextjs_14.md +1584 -0
- package/docs/vi/intlayer_with_nextjs_15.md +1738 -0
- package/docs/vi/intlayer_with_nextjs_16.md +21 -0
- package/docs/vi/intlayer_with_nextjs_page_router.md +1504 -0
- package/docs/vi/intlayer_with_nuxt.md +821 -0
- package/docs/vi/intlayer_with_react_native+expo.md +700 -0
- package/docs/vi/intlayer_with_react_router_v7.md +498 -0
- package/docs/vi/intlayer_with_tanstack.md +562 -0
- package/docs/vi/intlayer_with_vite+preact.md +1722 -0
- package/docs/vi/intlayer_with_vite+react.md +1407 -0
- package/docs/vi/intlayer_with_vite+solid.md +287 -0
- package/docs/vi/intlayer_with_vite+svelte.md +289 -0
- package/docs/vi/intlayer_with_vite+vue.md +1071 -0
- package/docs/vi/introduction.md +215 -0
- package/docs/vi/locale_mapper.md +242 -0
- package/docs/vi/mcp_server.md +211 -0
- package/docs/vi/packages/express-intlayer/t.md +457 -0
- package/docs/vi/packages/intlayer/getConfiguration.md +145 -0
- package/docs/vi/packages/intlayer/getEnumeration.md +162 -0
- package/docs/vi/packages/intlayer/getHTMLTextDir.md +121 -0
- package/docs/vi/packages/intlayer/getLocaleLang.md +81 -0
- package/docs/vi/packages/intlayer/getLocaleName.md +129 -0
- package/docs/vi/packages/intlayer/getLocalizedUrl.md +309 -0
- package/docs/vi/packages/intlayer/getMultilingualUrls.md +221 -0
- package/docs/vi/packages/intlayer/getPathWithoutLocale.md +75 -0
- package/docs/vi/packages/intlayer/getTranslation.md +201 -0
- package/docs/vi/packages/intlayer/getTranslationContent.md +188 -0
- package/docs/vi/packages/next-intlayer/t.md +352 -0
- package/docs/vi/packages/next-intlayer/useDictionary.md +273 -0
- package/docs/vi/packages/next-intlayer/useIntlayer.md +264 -0
- package/docs/vi/packages/next-intlayer/useLocale.md +166 -0
- package/docs/vi/packages/react-intlayer/t.md +304 -0
- package/docs/vi/packages/react-intlayer/useDictionary.md +288 -0
- package/docs/vi/packages/react-intlayer/useI18n.md +295 -0
- package/docs/vi/packages/react-intlayer/useIntlayer.md +256 -0
- package/docs/vi/packages/react-intlayer/useLocale.md +210 -0
- package/docs/vi/per_locale_file.md +326 -0
- package/docs/vi/readme.md +261 -0
- package/docs/vi/releases/v6.md +305 -0
- package/docs/vi/roadmap.md +346 -0
- package/docs/vi/testing.md +202 -0
- package/docs/vi/vs_code_extension.md +126 -0
- package/docs/zh/configuration.md +6 -0
- package/docs/zh/intlayer_cli.md +8 -3
- package/docs/zh/intlayer_with_next-i18next.md +628 -0
- package/docs/zh/intlayer_with_next-intl.md +448 -0
- package/docs/zh/intlayer_with_nextjs_16.md +21 -0
- package/docs/zh/intlayer_with_tanstack.md +4 -0
- package/docs/zh/intlayer_with_vite+react.md +4 -0
- package/frequent_questions/ar/SSR_Next_no_[locale].md +1 -2
- package/frequent_questions/ar/array_as_content_declaration.md +1 -2
- package/frequent_questions/ar/build_dictionaries.md +1 -2
- package/frequent_questions/ar/build_error_CI_CD.md +1 -2
- package/frequent_questions/ar/bun_set_up.md +1 -2
- package/frequent_questions/ar/customized_locale_list.md +1 -2
- package/frequent_questions/ar/domain_routing.md +1 -2
- package/frequent_questions/ar/esbuild_error.md +1 -2
- package/frequent_questions/ar/get_locale_cookie.md +1 -2
- package/frequent_questions/ar/intlayer_command_undefined.md +1 -2
- package/frequent_questions/ar/locale_incorect_in_url.md +1 -2
- package/frequent_questions/ar/static_rendering.md +1 -3
- package/frequent_questions/ar/translated_path_url.md +1 -2
- package/frequent_questions/ar/unknown_command.md +1 -2
- package/frequent_questions/de/SSR_Next_no_[locale].md +1 -2
- package/frequent_questions/de/array_as_content_declaration.md +1 -2
- package/frequent_questions/de/build_dictionaries.md +1 -2
- package/frequent_questions/de/build_error_CI_CD.md +1 -2
- package/frequent_questions/de/bun_set_up.md +1 -2
- package/frequent_questions/de/customized_locale_list.md +1 -2
- package/frequent_questions/de/domain_routing.md +1 -2
- package/frequent_questions/de/esbuild_error.md +1 -2
- package/frequent_questions/de/get_locale_cookie.md +1 -2
- package/frequent_questions/de/intlayer_command_undefined.md +1 -2
- package/frequent_questions/de/locale_incorect_in_url.md +1 -2
- package/frequent_questions/de/static_rendering.md +1 -3
- package/frequent_questions/de/translated_path_url.md +1 -2
- package/frequent_questions/de/unknown_command.md +1 -2
- package/frequent_questions/en/SSR_Next_no_[locale].md +1 -2
- package/frequent_questions/en/array_as_content_declaration.md +1 -2
- package/frequent_questions/en/build_dictionaries.md +1 -2
- package/frequent_questions/en/build_error_CI_CD.md +1 -2
- package/frequent_questions/en/bun_set_up.md +1 -2
- package/frequent_questions/en/customized_locale_list.md +1 -2
- package/frequent_questions/en/domain_routing.md +1 -2
- package/frequent_questions/en/esbuild_error.md +1 -2
- package/frequent_questions/en/get_locale_cookie.md +1 -2
- package/frequent_questions/en/intlayer_command_undefined.md +1 -2
- package/frequent_questions/en/locale_incorect_in_url.md +1 -2
- package/frequent_questions/en/static_rendering.md +1 -3
- package/frequent_questions/en/translated_path_url.md +1 -2
- package/frequent_questions/en/unknown_command.md +1 -2
- package/frequent_questions/en-GB/SSR_Next_no_[locale].md +1 -2
- package/frequent_questions/en-GB/array_as_content_declaration.md +1 -2
- package/frequent_questions/en-GB/build_dictionaries.md +1 -2
- package/frequent_questions/en-GB/build_error_CI_CD.md +1 -2
- package/frequent_questions/en-GB/bun_set_up.md +1 -2
- package/frequent_questions/en-GB/customized_locale_list.md +1 -2
- package/frequent_questions/en-GB/domain_routing.md +1 -2
- package/frequent_questions/en-GB/esbuild_error.md +1 -2
- package/frequent_questions/en-GB/get_locale_cookie.md +1 -2
- package/frequent_questions/en-GB/intlayer_command_undefined.md +1 -2
- package/frequent_questions/en-GB/locale_incorect_in_url.md +1 -2
- package/frequent_questions/en-GB/static_rendering.md +1 -3
- package/frequent_questions/en-GB/translated_path_url.md +1 -2
- package/frequent_questions/en-GB/unknown_command.md +1 -2
- package/frequent_questions/es/SSR_Next_no_[locale].md +1 -2
- package/frequent_questions/es/array_as_content_declaration.md +1 -2
- package/frequent_questions/es/build_dictionaries.md +1 -2
- package/frequent_questions/es/build_error_CI_CD.md +1 -2
- package/frequent_questions/es/bun_set_up.md +1 -2
- package/frequent_questions/es/customized_locale_list.md +1 -2
- package/frequent_questions/es/domain_routing.md +1 -2
- package/frequent_questions/es/esbuild_error.md +1 -2
- package/frequent_questions/es/get_locale_cookie.md +1 -2
- package/frequent_questions/es/intlayer_command_undefined.md +1 -2
- package/frequent_questions/es/locale_incorect_in_url.md +1 -2
- package/frequent_questions/es/static_rendering.md +1 -3
- package/frequent_questions/es/translated_path_url.md +1 -2
- package/frequent_questions/es/unknown_command.md +1 -2
- package/frequent_questions/fr/SSR_Next_no_[locale].md +1 -2
- package/frequent_questions/fr/array_as_content_declaration.md +1 -2
- package/frequent_questions/fr/build_dictionaries.md +1 -2
- package/frequent_questions/fr/build_error_CI_CD.md +1 -2
- package/frequent_questions/fr/bun_set_up.md +1 -2
- package/frequent_questions/fr/customized_locale_list.md +1 -2
- package/frequent_questions/fr/domain_routing.md +1 -2
- package/frequent_questions/fr/esbuild_error.md +1 -2
- package/frequent_questions/fr/get_locale_cookie.md +1 -2
- package/frequent_questions/fr/intlayer_command_undefined.md +1 -2
- package/frequent_questions/fr/locale_incorect_in_url.md +1 -2
- package/frequent_questions/fr/static_rendering.md +1 -3
- package/frequent_questions/fr/translated_path_url.md +1 -2
- package/frequent_questions/fr/unknown_command.md +1 -2
- package/frequent_questions/hi/SSR_Next_no_[locale].md +1 -2
- package/frequent_questions/hi/array_as_content_declaration.md +1 -2
- package/frequent_questions/hi/build_dictionaries.md +1 -2
- package/frequent_questions/hi/build_error_CI_CD.md +1 -2
- package/frequent_questions/hi/bun_set_up.md +1 -2
- package/frequent_questions/hi/customized_locale_list.md +1 -2
- package/frequent_questions/hi/domain_routing.md +1 -2
- package/frequent_questions/hi/esbuild_error.md +1 -2
- package/frequent_questions/hi/get_locale_cookie.md +1 -2
- package/frequent_questions/hi/intlayer_command_undefined.md +1 -2
- package/frequent_questions/hi/locale_incorect_in_url.md +1 -2
- package/frequent_questions/hi/static_rendering.md +1 -3
- package/frequent_questions/hi/translated_path_url.md +1 -2
- package/frequent_questions/hi/unknown_command.md +1 -2
- package/frequent_questions/id/SSR_Next_no_[locale].md +104 -0
- package/frequent_questions/id/array_as_content_declaration.md +71 -0
- package/frequent_questions/id/build_dictionaries.md +58 -0
- package/frequent_questions/id/build_error_CI_CD.md +74 -0
- package/frequent_questions/id/bun_set_up.md +53 -0
- package/frequent_questions/id/customized_locale_list.md +64 -0
- package/frequent_questions/id/domain_routing.md +113 -0
- package/frequent_questions/id/esbuild_error.md +29 -0
- package/frequent_questions/id/get_locale_cookie.md +142 -0
- package/frequent_questions/id/intlayer_command_undefined.md +155 -0
- package/frequent_questions/id/locale_incorect_in_url.md +73 -0
- package/frequent_questions/id/static_rendering.md +44 -0
- package/frequent_questions/id/translated_path_url.md +55 -0
- package/frequent_questions/id/unknown_command.md +97 -0
- package/frequent_questions/it/SSR_Next_no_[locale].md +1 -2
- package/frequent_questions/it/array_as_content_declaration.md +1 -2
- package/frequent_questions/it/build_dictionaries.md +1 -2
- package/frequent_questions/it/build_error_CI_CD.md +1 -2
- package/frequent_questions/it/bun_set_up.md +1 -2
- package/frequent_questions/it/customized_locale_list.md +1 -2
- package/frequent_questions/it/domain_routing.md +1 -2
- package/frequent_questions/it/esbuild_error.md +1 -2
- package/frequent_questions/it/get_locale_cookie.md +1 -2
- package/frequent_questions/it/intlayer_command_undefined.md +1 -2
- package/frequent_questions/it/locale_incorect_in_url.md +1 -2
- package/frequent_questions/it/static_rendering.md +1 -3
- package/frequent_questions/it/translated_path_url.md +1 -2
- package/frequent_questions/it/unknown_command.md +1 -2
- package/frequent_questions/ja/SSR_Next_no_[locale].md +1 -2
- package/frequent_questions/ja/array_as_content_declaration.md +1 -2
- package/frequent_questions/ja/build_dictionaries.md +1 -2
- package/frequent_questions/ja/build_error_CI_CD.md +1 -2
- package/frequent_questions/ja/bun_set_up.md +1 -2
- package/frequent_questions/ja/customized_locale_list.md +1 -2
- package/frequent_questions/ja/domain_routing.md +1 -2
- package/frequent_questions/ja/esbuild_error.md +1 -2
- package/frequent_questions/ja/get_locale_cookie.md +1 -2
- package/frequent_questions/ja/intlayer_command_undefined.md +1 -2
- package/frequent_questions/ja/locale_incorect_in_url.md +1 -2
- package/frequent_questions/ja/static_rendering.md +1 -3
- package/frequent_questions/ja/translated_path_url.md +1 -2
- package/frequent_questions/ja/unknown_command.md +1 -2
- package/frequent_questions/ko/SSR_Next_no_[locale].md +1 -2
- package/frequent_questions/ko/array_as_content_declaration.md +1 -2
- package/frequent_questions/ko/build_dictionaries.md +1 -2
- package/frequent_questions/ko/build_error_CI_CD.md +1 -2
- package/frequent_questions/ko/bun_set_up.md +1 -2
- package/frequent_questions/ko/customized_locale_list.md +1 -2
- package/frequent_questions/ko/domain_routing.md +1 -2
- package/frequent_questions/ko/esbuild_error.md +1 -2
- package/frequent_questions/ko/get_locale_cookie.md +1 -2
- package/frequent_questions/ko/intlayer_command_undefined.md +1 -2
- package/frequent_questions/ko/locale_incorect_in_url.md +1 -2
- package/frequent_questions/ko/static_rendering.md +1 -3
- package/frequent_questions/ko/translated_path_url.md +1 -2
- package/frequent_questions/ko/unknown_command.md +1 -2
- package/frequent_questions/pl/SSR_Next_no_[locale].md +104 -0
- package/frequent_questions/pl/array_as_content_declaration.md +71 -0
- package/frequent_questions/pl/build_dictionaries.md +58 -0
- package/frequent_questions/pl/build_error_CI_CD.md +74 -0
- package/frequent_questions/pl/bun_set_up.md +54 -0
- package/frequent_questions/pl/customized_locale_list.md +64 -0
- package/frequent_questions/pl/domain_routing.md +113 -0
- package/frequent_questions/pl/esbuild_error.md +29 -0
- package/frequent_questions/pl/get_locale_cookie.md +142 -0
- package/frequent_questions/pl/intlayer_command_undefined.md +155 -0
- package/frequent_questions/pl/locale_incorect_in_url.md +73 -0
- package/frequent_questions/pl/static_rendering.md +44 -0
- package/frequent_questions/pl/translated_path_url.md +55 -0
- package/frequent_questions/pl/unknown_command.md +97 -0
- package/frequent_questions/pt/SSR_Next_no_[locale].md +1 -2
- package/frequent_questions/pt/array_as_content_declaration.md +1 -2
- package/frequent_questions/pt/build_dictionaries.md +1 -2
- package/frequent_questions/pt/build_error_CI_CD.md +1 -2
- package/frequent_questions/pt/bun_set_up.md +1 -2
- package/frequent_questions/pt/customized_locale_list.md +1 -2
- package/frequent_questions/pt/domain_routing.md +1 -2
- package/frequent_questions/pt/esbuild_error.md +1 -2
- package/frequent_questions/pt/get_locale_cookie.md +1 -2
- package/frequent_questions/pt/intlayer_command_undefined.md +1 -2
- package/frequent_questions/pt/locale_incorect_in_url.md +1 -2
- package/frequent_questions/pt/static_rendering.md +1 -3
- package/frequent_questions/pt/translated_path_url.md +1 -2
- package/frequent_questions/pt/unknown_command.md +1 -2
- package/frequent_questions/ru/SSR_Next_no_[locale].md +1 -2
- package/frequent_questions/ru/array_as_content_declaration.md +1 -2
- package/frequent_questions/ru/build_dictionaries.md +1 -2
- package/frequent_questions/ru/build_error_CI_CD.md +1 -2
- package/frequent_questions/ru/bun_set_up.md +1 -2
- package/frequent_questions/ru/customized_locale_list.md +1 -2
- package/frequent_questions/ru/domain_routing.md +1 -2
- package/frequent_questions/ru/esbuild_error.md +1 -2
- package/frequent_questions/ru/get_locale_cookie.md +1 -2
- package/frequent_questions/ru/intlayer_command_undefined.md +1 -2
- package/frequent_questions/ru/locale_incorect_in_url.md +1 -2
- package/frequent_questions/ru/static_rendering.md +1 -2
- package/frequent_questions/ru/translated_path_url.md +1 -2
- package/frequent_questions/ru/unknown_command.md +1 -2
- package/frequent_questions/tr/SSR_Next_no_[locale].md +1 -2
- package/frequent_questions/tr/array_as_content_declaration.md +1 -2
- package/frequent_questions/tr/build_dictionaries.md +1 -2
- package/frequent_questions/tr/build_error_CI_CD.md +1 -2
- package/frequent_questions/tr/bun_set_up.md +1 -2
- package/frequent_questions/tr/customized_locale_list.md +1 -2
- package/frequent_questions/tr/domain_routing.md +1 -2
- package/frequent_questions/tr/esbuild_error.md +1 -2
- package/frequent_questions/tr/get_locale_cookie.md +1 -2
- package/frequent_questions/tr/intlayer_command_undefined.md +1 -2
- package/frequent_questions/tr/locale_incorect_in_url.md +1 -2
- package/frequent_questions/tr/static_rendering.md +1 -2
- package/frequent_questions/tr/translated_path_url.md +1 -2
- package/frequent_questions/tr/unknown_command.md +1 -2
- package/frequent_questions/vi/SSR_Next_no_[locale].md +106 -0
- package/frequent_questions/vi/array_as_content_declaration.md +71 -0
- package/frequent_questions/vi/build_dictionaries.md +58 -0
- package/frequent_questions/vi/build_error_CI_CD.md +74 -0
- package/frequent_questions/vi/bun_set_up.md +53 -0
- package/frequent_questions/vi/customized_locale_list.md +64 -0
- package/frequent_questions/vi/domain_routing.md +113 -0
- package/frequent_questions/vi/esbuild_error.md +29 -0
- package/frequent_questions/vi/get_locale_cookie.md +142 -0
- package/frequent_questions/vi/intlayer_command_undefined.md +155 -0
- package/frequent_questions/vi/locale_incorect_in_url.md +73 -0
- package/frequent_questions/vi/static_rendering.md +44 -0
- package/frequent_questions/vi/translated_path_url.md +55 -0
- package/frequent_questions/vi/unknown_command.md +97 -0
- package/frequent_questions/zh/SSR_Next_no_[locale].md +1 -2
- package/frequent_questions/zh/array_as_content_declaration.md +1 -2
- package/frequent_questions/zh/build_dictionaries.md +1 -2
- package/frequent_questions/zh/build_error_CI_CD.md +1 -2
- package/frequent_questions/zh/bun_set_up.md +1 -2
- package/frequent_questions/zh/customized_locale_list.md +1 -2
- package/frequent_questions/zh/domain_routing.md +1 -2
- package/frequent_questions/zh/esbuild_error.md +1 -2
- package/frequent_questions/zh/get_locale_cookie.md +1 -2
- package/frequent_questions/zh/intlayer_command_undefined.md +1 -2
- package/frequent_questions/zh/locale_incorect_in_url.md +1 -2
- package/frequent_questions/zh/static_rendering.md +1 -3
- package/frequent_questions/zh/translated_path_url.md +1 -2
- package/frequent_questions/zh/unknown_command.md +1 -2
- package/legal/id/privacy_notice.md +83 -0
- package/legal/id/terms_of_service.md +55 -0
- package/legal/pl/privacy_notice.md +83 -0
- package/legal/pl/terms_of_service.md +55 -0
- package/legal/vi/privacy_notice.md +83 -0
- package/legal/vi/terms_of_service.md +55 -0
- package/package.json +19 -18
- package/src/generated/blog.entry.ts +38 -0
|
@@ -0,0 +1,167 @@
|
|
|
1
|
+
---
|
|
2
|
+
createdAt: 2025-01-16
|
|
3
|
+
updatedAt: 2025-06-29
|
|
4
|
+
title: Alat Internasionalisasi (i18n) Terbaik untuk Wix
|
|
5
|
+
description: Temukan solusi i18n Wix terbaik untuk mengatasi tantangan terjemahan, meningkatkan SEO, dan memberikan pengalaman web global yang mulus.
|
|
6
|
+
keywords:
|
|
7
|
+
- Wix
|
|
8
|
+
- i18n
|
|
9
|
+
- multibahasa
|
|
10
|
+
- SEO
|
|
11
|
+
- Internasionalisasi
|
|
12
|
+
- Blog
|
|
13
|
+
- JavaScript
|
|
14
|
+
slugs:
|
|
15
|
+
- blog
|
|
16
|
+
- i18n-technologies
|
|
17
|
+
- CMS
|
|
18
|
+
- wix
|
|
19
|
+
---
|
|
20
|
+
|
|
21
|
+
# Menjelajahi Solusi i18n untuk Menerjemahkan Situs Wix Anda
|
|
22
|
+
|
|
23
|
+
Di pasar digital global saat ini, memastikan situs web Anda berbicara dalam bahasa audiens Anda adalah hal yang sangat penting. Bagi pemilik situs Wix, mengadopsi internasionalisasi (i18n) membuka peluang untuk melibatkan pengunjung yang beragam sekaligus melindungi struktur situs Anda, kekuatan SEO, dan pengalaman pengguna secara keseluruhan. Dalam artikel ini, kami mengeksplorasi berbagai pendekatan i18n mulai dari alat multibahasa bawaan Wix hingga aplikasi pihak ketiga dan solusi yang dikodekan khusus untuk membantu Anda memutuskan mana yang paling sesuai dengan kebutuhan proyek Anda.
|
|
24
|
+
|
|
25
|
+
---
|
|
26
|
+
|
|
27
|
+
## Apa itu Internasionalisasi (i18n)?
|
|
28
|
+
|
|
29
|
+
Internasionalisasi (i18n) mengacu pada proses merancang dan mempersiapkan situs web Anda agar dapat dengan mudah mendukung berbagai bahasa dan konteks budaya. Di Wix, ini berarti mengatur arsitektur situs web yang fleksibel di mana teks, gambar, menu, dan bahkan elemen interaktif dapat disesuaikan atau diterjemahkan untuk berbagai wilayah. Dengan merencanakan i18n sejak awal, Anda memastikan bahwa konten Anda dapat dilokalkan secara efisien, sehingga dapat diakses dan menarik bagi audiens global.
|
|
30
|
+
|
|
31
|
+
Untuk wawasan lebih lanjut tentang internasionalisasi dan pentingnya dalam desain web, lihat artikel dasar kami tentang [konsep internasionalisasi](#).
|
|
32
|
+
|
|
33
|
+
---
|
|
34
|
+
|
|
35
|
+
## Tantangan Terjemahan untuk Situs Wix
|
|
36
|
+
|
|
37
|
+
Menerjemahkan situs Wix Anda menghadirkan tantangan yang berbeda:
|
|
38
|
+
|
|
39
|
+
- **Keanekaragaman Konten:** Situs web Wix sering menampilkan campuran teks, gambar, video, dan elemen interaktif. Menerjemahkan setiap komponen secara konsisten sangat penting.
|
|
40
|
+
- **Pertimbangan SEO:** Terjemahan yang diimplementasikan dengan benar dapat meningkatkan peringkat pencarian Anda secara global dengan menggunakan URL khusus bahasa, meta tag, dan praktik terbaik SEO lainnya.
|
|
41
|
+
- **Pengalaman Pengguna:** Pengalih bahasa yang lancar dan halaman multibahasa yang dirancang secara konsisten secara signifikan meningkatkan keterlibatan pengunjung.
|
|
42
|
+
- **Pemeliharaan Berkelanjutan:** Seiring perkembangan situs Anda, menjaga terjemahan tetap terbaru di semua bahasa bisa menjadi kompleks.
|
|
43
|
+
|
|
44
|
+
---
|
|
45
|
+
|
|
46
|
+
## Solusi i18n Terdepan untuk Wix
|
|
47
|
+
|
|
48
|
+
Di bawah ini, kami menguraikan beberapa pendekatan populer untuk mengelola konten multibahasa di situs Wix Anda:
|
|
49
|
+
|
|
50
|
+
### 1. Wix Multilingual
|
|
51
|
+
|
|
52
|
+
**Gambaran Umum:**
|
|
53
|
+
Wix Multilingual adalah solusi bawaan platform yang memungkinkan Anda membuat situs multibahasa dengan mulus tanpa meninggalkan Wix Editor. Alat terintegrasi ini dirancang untuk menyederhanakan proses penerjemahan, sehingga dapat diakses bahkan oleh pengguna non-teknis.
|
|
54
|
+
|
|
55
|
+
**Fitur Utama:**
|
|
56
|
+
|
|
57
|
+
- **Manajemen Bahasa Bawaan:** Dengan mudah menambahkan beberapa bahasa dan mengelola terjemahan langsung dari Wix Editor.
|
|
58
|
+
- **Duplikasi Halaman Otomatis:** Membuat salinan halaman yang sudah ada untuk setiap bahasa, memastikan konsistensi desain.
|
|
59
|
+
- **Pengalih Bahasa yang Dapat Disesuaikan:** Memberikan pengunjung menu intuitif untuk memilih bahasa yang mereka inginkan.
|
|
60
|
+
- **SEO-Friendly:** Secara otomatis menyesuaikan meta tag, URL, dan elemen SEO lainnya berdasarkan bahasa yang dipilih.
|
|
61
|
+
|
|
62
|
+
**Keuntungan:**
|
|
63
|
+
|
|
64
|
+
- Terintegrasi sepenuhnya dengan ekosistem Wix.
|
|
65
|
+
- Ramah pengguna dan dirancang untuk non-developer.
|
|
66
|
+
- Secara rutin diperbarui untuk mendukung fitur dan fungsionalitas baru Wix.
|
|
67
|
+
|
|
68
|
+
**Pertimbangan:**
|
|
69
|
+
|
|
70
|
+
- Paling cocok untuk kebutuhan terjemahan yang sederhana.
|
|
71
|
+
- Mungkin memiliki keterbatasan saat menangani elemen yang sangat dinamis atau yang dikodekan khusus.
|
|
72
|
+
- Beberapa kustomisasi lanjutan mungkin memerlukan pekerjaan tambahan menggunakan Velo dari Wix.
|
|
73
|
+
|
|
74
|
+
---
|
|
75
|
+
|
|
76
|
+
### 2. Aplikasi Terjemahan Pihak Ketiga: Weglot
|
|
77
|
+
|
|
78
|
+
**Gambaran Umum:**
|
|
79
|
+
Weglot adalah solusi terjemahan pihak ketiga yang populer yang terintegrasi dengan Wix untuk menyediakan terjemahan otomatis dan manual. Ini dirancang untuk dengan cepat mengubah situs monolingual menjadi pengalaman multibahasa penuh.
|
|
80
|
+
|
|
81
|
+
**Fitur Utama:**
|
|
82
|
+
|
|
83
|
+
- **Terjemahan Otomatis:** Mulai proses dengan mesin terjemahan otomatis, lalu sesuaikan sesuai kebutuhan.
|
|
84
|
+
- **Integrasi Mulus:** Mudah menghubungkan dengan situs Wix Anda dan mengelola terjemahan melalui dashboard Weglot.
|
|
85
|
+
- **SEO-Optimized:** Menghasilkan URL khusus bahasa dan menangani tag hreflang untuk mempertahankan nilai SEO.
|
|
86
|
+
- **Ramah Pengguna:** Antarmuka intuitif untuk mengelola terjemahan di seluruh situs Anda.
|
|
87
|
+
|
|
88
|
+
**Keuntungan:**
|
|
89
|
+
|
|
90
|
+
- Cepat dan efektif, menjadikannya ideal untuk penerapan cepat.
|
|
91
|
+
- Mendukung berbagai bahasa.
|
|
92
|
+
- Mengurangi beban kerja terjemahan manual sambil memberikan ruang untuk suntingan khusus.
|
|
93
|
+
|
|
94
|
+
**Pertimbangan:**
|
|
95
|
+
|
|
96
|
+
- Harga berbasis langganan dapat memengaruhi anggaran yang lebih kecil.
|
|
97
|
+
- Seperti halnya dengan alat pihak ketiga lainnya, ketergantungan pada layanan eksternal mungkin melibatkan pertimbangan pemeliharaan tambahan.
|
|
98
|
+
|
|
99
|
+
---
|
|
100
|
+
|
|
101
|
+
### 3. Terjemahan Manual dengan Halaman Duplikat
|
|
102
|
+
|
|
103
|
+
**Ikhtisar:**
|
|
104
|
+
Bagi mereka yang menginginkan kontrol penuh atas terjemahan, membuat halaman duplikat secara manual dalam berbagai bahasa adalah opsi yang tersedia. Pendekatan ini melibatkan penyalinan konten situs Anda dan kemudian mengganti teks dengan versi terjemahan.
|
|
105
|
+
|
|
106
|
+
**Fitur Utama:**
|
|
107
|
+
|
|
108
|
+
- **Kontrol Penuh:** Sesuaikan setiap versi bahasa untuk memenuhi kebutuhan budaya atau regional tertentu.
|
|
109
|
+
- **Konsistensi Desain:** Gunakan editor drag-and-drop Wix untuk menjaga akurasi desain di berbagai bahasa.
|
|
110
|
+
- **Tanpa Ketergantungan pada Alat Eksternal:** Mengandalkan sepenuhnya fitur bawaan Wix tanpa plugin atau aplikasi tambahan.
|
|
111
|
+
|
|
112
|
+
**Keuntungan:**
|
|
113
|
+
|
|
114
|
+
- Pengawasan penuh terhadap setiap elemen yang diterjemahkan.
|
|
115
|
+
- Tidak ada biaya tambahan selain paket Wix Anda yang sudah ada.
|
|
116
|
+
- Ideal untuk situs dengan jumlah halaman terbatas atau kebutuhan terjemahan khusus.
|
|
117
|
+
|
|
118
|
+
**Pertimbangan:**
|
|
119
|
+
|
|
120
|
+
- Memakan waktu, terutama saat situs Anda berkembang.
|
|
121
|
+
- Memerlukan manajemen yang teliti untuk memastikan pembaruan direplikasi di semua versi bahasa.
|
|
122
|
+
- Tidak optimal untuk situs yang sangat besar atau sering diperbarui.
|
|
123
|
+
|
|
124
|
+
---
|
|
125
|
+
|
|
126
|
+
### 4. Solusi i18n Kustom Melalui Wix Velo
|
|
127
|
+
|
|
128
|
+
**Ikhtisar:**
|
|
129
|
+
Wix Velo (sebelumnya Corvid) adalah platform pengembangan yang kuat yang memungkinkan kustomisasi tingkat lanjut. Bagi pengembang dengan kebutuhan terjemahan unik atau alur kerja yang kompleks, memanfaatkan Velo untuk membangun solusi i18n kustom dapat memberikan fleksibilitas yang tak tertandingi.
|
|
130
|
+
|
|
131
|
+
**Teknik Utama:**
|
|
132
|
+
|
|
133
|
+
- **Alur Kerja Terjemahan Kustom:** Bangun sistem untuk mengambil, menyimpan, dan menampilkan terjemahan secara dinamis.
|
|
134
|
+
- **Terjemahan Berbasis Data:** Manfaatkan API eksternal atau basis data untuk mengelola konten multibahasa.
|
|
135
|
+
- **Kustomisasi SEO Lanjutan:** Sesuaikan struktur URL, meta tag, dan komponen SEO lainnya untuk setiap bahasa.
|
|
136
|
+
- **Pengalih Bahasa Interaktif:** Rancang elemen kustom yang terintegrasi mulus dengan fungsi situs Anda.
|
|
137
|
+
|
|
138
|
+
**Keuntungan:**
|
|
139
|
+
|
|
140
|
+
- Fleksibilitas penuh untuk menyesuaikan solusi sesuai kebutuhan Anda.
|
|
141
|
+
- Integrasi dengan layanan eksternal dan API dimungkinkan.
|
|
142
|
+
- Dapat menangani konten kompleks dan dinamis di berbagai halaman atau bagian.
|
|
143
|
+
|
|
144
|
+
**Pertimbangan:**
|
|
145
|
+
|
|
146
|
+
- Memerlukan latar belakang pengembangan yang kuat dan investasi waktu.
|
|
147
|
+
- Lebih banyak tanggung jawab pada pemeliharaan dan skalabilitas dibandingkan dengan solusi plug-and-play.
|
|
148
|
+
- Tidak disarankan untuk pengguna non-teknis yang menginginkan penerapan cepat.
|
|
149
|
+
|
|
150
|
+
---
|
|
151
|
+
|
|
152
|
+
## Memilih Solusi i18n yang Tepat untuk Situs Wix Anda
|
|
153
|
+
|
|
154
|
+
Saat memilih pendekatan internasionalisasi untuk situs Wix Anda, pertimbangkan faktor-faktor berikut:
|
|
155
|
+
|
|
156
|
+
- **Anggaran:** Wix Multilingual dan terjemahan manual adalah pilihan yang hemat biaya, sementara solusi pihak ketiga seperti Weglot mungkin memerlukan biaya berlangganan.
|
|
157
|
+
- **Keahlian Teknis:** Pengguna non-developer mungkin lebih menyukai kemudahan penggunaan di Wix Multilingual atau Weglot, sementara developer mungkin menghargai fleksibilitas yang ditawarkan oleh Wix Velo.
|
|
158
|
+
- **Kompleksitas dan Skala Situs:** Untuk situs dengan beberapa halaman atau konten yang sederhana, metode manual atau Wix Multilingual bekerja dengan baik. Untuk situs yang lebih kompleks atau kaya konten, aplikasi pihak ketiga atau solusi kustom mungkin diperlukan.
|
|
159
|
+
- **Pemeliharaan dan Pembaruan:** Pilih solusi yang sesuai dengan strategi manajemen konten jangka panjang Anda dan memastikan pembaruan yang konsisten di semua bahasa.
|
|
160
|
+
|
|
161
|
+
---
|
|
162
|
+
|
|
163
|
+
## Kesimpulan
|
|
164
|
+
|
|
165
|
+
Menerjemahkan situs Wix Anda lebih dari sekadar konversi bahasa; ini tentang menciptakan pengalaman yang sesuai secara budaya yang menghubungkan dengan audiens global. Apakah Anda memilih pendekatan yang sederhana dengan Wix Multilingual, kemampuan dinamis dari aplikasi pihak ketiga seperti Weglot, strategi manual yang langsung, atau solusi kustom melalui Wix Velo, tujuannya tetap sama: komunikasi yang efektif lintas batas.
|
|
166
|
+
|
|
167
|
+
Dengan mengevaluasi kebutuhan dan sumber daya Anda secara cermat, Anda dapat membangun kehadiran multibahasa yang kuat yang mendorong keterlibatan dan pertumbuhan internasional. Selamat menerjemahkan, dan semoga situs Wix Anda sukses di seluruh dunia!
|
|
@@ -0,0 +1,188 @@
|
|
|
1
|
+
---
|
|
2
|
+
createdAt: 2025-01-16
|
|
3
|
+
updatedAt: 2025-06-29
|
|
4
|
+
title: Alat Internasionalisasi (i18n) Terbaik untuk Wordpress
|
|
5
|
+
description: Temukan solusi i18n Wordpress terbaik untuk mengatasi tantangan terjemahan, meningkatkan SEO, dan memberikan pengalaman web global yang mulus.
|
|
6
|
+
keywords:
|
|
7
|
+
- Wordpress
|
|
8
|
+
- i18n
|
|
9
|
+
- multibahasa
|
|
10
|
+
- SEO
|
|
11
|
+
- Internasionalisasi
|
|
12
|
+
- Blog
|
|
13
|
+
- JavaScript
|
|
14
|
+
slugs:
|
|
15
|
+
- blog
|
|
16
|
+
- i18n-technologies
|
|
17
|
+
- CMS
|
|
18
|
+
- wordpress
|
|
19
|
+
---
|
|
20
|
+
|
|
21
|
+
# Menjelajahi Solusi i18n untuk Menerjemahkan Situs WordPress Anda
|
|
22
|
+
|
|
23
|
+
Di lanskap digital saat ini, memperluas jangkauan situs web Anda untuk melayani audiens global adalah hal yang penting. Bagi pemilik situs WordPress, menerapkan solusi internasionalisasi (i18n) adalah kunci untuk mengelola terjemahan secara efisien sambil mempertahankan struktur situs, nilai SEO, dan pengalaman pengguna. Dalam artikel ini, kami mengeksplorasi berbagai pendekatan i18n mulai dari plugin yang kuat hingga solusi yang dikodekan khusus untuk membantu Anda memutuskan mana yang paling sesuai dengan kebutuhan proyek Anda.
|
|
24
|
+
|
|
25
|
+
---
|
|
26
|
+
|
|
27
|
+

|
|
28
|
+
|
|
29
|
+
## Apa itu Internasionalisasi (i18n)?
|
|
30
|
+
|
|
31
|
+
Internasionalisasi, disingkat i18n, adalah proses merancang dan mempersiapkan situs web Anda untuk mendukung berbagai bahasa dan konteks budaya. Dalam dunia WordPress, ini berarti menciptakan fondasi yang fleksibel di mana konten (halaman, posting, menu, string tema) dapat dengan mudah diterjemahkan dan dilokalkan untuk audiens yang berbeda.
|
|
32
|
+
|
|
33
|
+
Pelajari lebih lanjut tentang i18n dengan membaca artikel kami: [Apa itu Internasionalisasi (i18n)? Definisi dan tantangan](https://github.com/aymericzip/intlayer/blob/main/docs/blog/id/what_is_internationalization.md).
|
|
34
|
+
|
|
35
|
+
---
|
|
36
|
+
|
|
37
|
+
## Tantangan Terjemahan untuk Situs WordPress
|
|
38
|
+
|
|
39
|
+
Menerjemahkan situs WordPress menghadirkan beberapa tantangan:
|
|
40
|
+
|
|
41
|
+
- **Kompleksitas Konten:** Situs WordPress sering kali mencakup berbagai jenis konten (halaman, posting, custom post types, dan string tema dinamis) yang memerlukan terjemahan yang konsisten.
|
|
42
|
+
- **Pertimbangan SEO:** Terjemahan yang diimplementasikan dengan benar membantu meningkatkan peringkat pencarian dengan memanfaatkan tag hreflang, URL yang dilokalkan, dan sitemap khusus bahasa.
|
|
43
|
+
- **Pengalaman Pengguna:** Menyediakan pengalih bahasa yang mulus dan memastikan desain yang konsisten di seluruh terjemahan meningkatkan keterlibatan pengunjung.
|
|
44
|
+
- **Pemeliharaan Seiring Waktu:** Saat situs Anda berkembang, tetap mengikuti pembaruan dan mengelola terjemahan baru bisa menjadi tantangan.
|
|
45
|
+
|
|
46
|
+
---
|
|
47
|
+
|
|
48
|
+
## Solusi i18n Terdepan untuk WordPress
|
|
49
|
+
|
|
50
|
+
Berikut beberapa pendekatan populer untuk mengelola konten multibahasa di WordPress:
|
|
51
|
+
|
|
52
|
+
### 1. WPML (WordPress Multilingual Plugin)
|
|
53
|
+
|
|
54
|
+
**Gambaran Umum:**
|
|
55
|
+
WPML adalah salah satu plugin WordPress yang paling banyak digunakan untuk membangun situs web multibahasa. Plugin ini mendukung lebih dari 40 bahasa dan memungkinkan Anda menambahkan varian bahasa, menjadikannya alat yang kuat untuk jangkauan global.
|
|
56
|
+
|
|
57
|
+
**Fitur Utama:**
|
|
58
|
+
|
|
59
|
+
- **Manajemen Terjemahan Komprehensif:** Memudahkan penerjemahan halaman, posting, tipe kustom, taksonomi, menu, dan string tema.
|
|
60
|
+
- **Editor Terjemahan Bawaan:** Mempercepat alur kerja dan terintegrasi dengan layanan terjemahan profesional.
|
|
61
|
+
- **SEO-Friendly:** Termasuk sitemap multibahasa, dukungan hreflang, dan mekanisme terjemahan URL.
|
|
62
|
+
|
|
63
|
+
**Keuntungan:**
|
|
64
|
+
|
|
65
|
+
- Set fitur yang luas yang disesuaikan untuk situs yang kompleks.
|
|
66
|
+
- Komunitas pengguna yang besar dan pembaruan yang konsisten.
|
|
67
|
+
- Kontrol yang terperinci atas terjemahan konten dan pengaturan SEO.
|
|
68
|
+
|
|
69
|
+
**Pertimbangan:**
|
|
70
|
+
|
|
71
|
+
- Harga premium mungkin menjadi penghalang untuk proyek dengan anggaran kecil.
|
|
72
|
+
- Pengaturan dan konfigurasi bisa rumit bagi pemula.
|
|
73
|
+
|
|
74
|
+
---
|
|
75
|
+
|
|
76
|
+
### 2. Polylang
|
|
77
|
+
|
|
78
|
+
**Ikhtisar:**
|
|
79
|
+
Polylang memungkinkan Anda membuat situs WordPress bilingual atau multibahasa dengan relatif mudah dan tanpa biaya premium yang terkait dengan beberapa plugin.
|
|
80
|
+
|
|
81
|
+
**Fitur Utama:**
|
|
82
|
+
|
|
83
|
+
- **Bahasa Tak Terbatas:** Tambahkan sebanyak mungkin bahasa yang dibutuhkan.
|
|
84
|
+
- **Antarmuka Ramah Pengguna:** Pengalih bahasa sederhana dan manajemen terjemahan yang intuitif.
|
|
85
|
+
- **Integrasi dengan Lingotek:** Integrasi opsional membantu memanfaatkan manajemen terjemahan profesional.
|
|
86
|
+
|
|
87
|
+
**Keuntungan:**
|
|
88
|
+
|
|
89
|
+
- Menawarkan versi gratis yang kuat dengan add-on premium opsional.
|
|
90
|
+
- Pengaturan yang mudah cocok untuk pengguna non-teknis.
|
|
91
|
+
- Bekerja dengan baik dengan sebagian besar tema dan plugin.
|
|
92
|
+
|
|
93
|
+
**Pertimbangan:**
|
|
94
|
+
|
|
95
|
+
- Fitur lanjutan memerlukan versi premium.
|
|
96
|
+
- Kadang-kadang terdapat tantangan kompatibilitas dengan tema atau plugin yang kurang populer.
|
|
97
|
+
|
|
98
|
+
---
|
|
99
|
+
|
|
100
|
+
### 3. TranslatePress
|
|
101
|
+
|
|
102
|
+
**Ikhtisar:**
|
|
103
|
+
TranslatePress menawarkan pendekatan unik dengan memungkinkan Anda menerjemahkan situs Anda langsung dari front-end menggunakan editor visual langsung. Desain ini memastikan bahwa terjemahan dibuat dalam konteks sebenarnya dari tata letak situs web Anda.
|
|
104
|
+
|
|
105
|
+
**Fitur Utama:**
|
|
106
|
+
|
|
107
|
+
- **Antarmuka Terjemahan Visual:** Edit terjemahan sambil melihat situs web secara langsung.
|
|
108
|
+
- **Opsi Otomatis & Manual:** Gunakan layanan seperti Google Translate atau DeepL untuk terjemahan otomatis, kemudian perbaiki secara manual.
|
|
109
|
+
- **SEO-Optimized:** Mendukung terjemahan slug URL dan implementasi tag hreflang yang benar.
|
|
110
|
+
|
|
111
|
+
**Keuntungan:**
|
|
112
|
+
|
|
113
|
+
- Mempermudah proses terjemahan bagi pemula.
|
|
114
|
+
- Konteks visual waktu nyata memastikan konsistensi desain.
|
|
115
|
+
- Fleksibel dan sederhana dengan fokus pada kemudahan penggunaan.
|
|
116
|
+
|
|
117
|
+
**Pertimbangan:**
|
|
118
|
+
|
|
119
|
+
- Mungkin kurang beberapa fitur lanjutan untuk situs yang sangat kompleks atau berskala besar.
|
|
120
|
+
- Fitur premium tersedia dalam versi berbayar.
|
|
121
|
+
|
|
122
|
+
---
|
|
123
|
+
|
|
124
|
+
### 4. qTranslate-X / qTranslate-XT
|
|
125
|
+
|
|
126
|
+
**Ikhtisar:**
|
|
127
|
+
qTranslate-X telah menjadi nama yang dikenal dalam komunitas WordPress multibahasa selama bertahun-tahun. Meskipun plugin asli tidak lagi dipelihara, fork seperti qTranslate-XT terus menyediakan fungsi serupa.
|
|
128
|
+
|
|
129
|
+
**Fitur Utama:**
|
|
130
|
+
|
|
131
|
+
- **Peralihan Bahasa Cepat:** Mudah beralih antar bahasa dengan antarmuka yang sederhana.
|
|
132
|
+
- **Pengeditan Terjemahan di Halaman:** Terjemahkan konten langsung di dalam layar pengeditan.
|
|
133
|
+
- **Solusi Ringan:** Desain minimalis tanpa banyak fitur tambahan, ideal untuk proyek kecil.
|
|
134
|
+
|
|
135
|
+
**Keunggulan:**
|
|
136
|
+
|
|
137
|
+
- Gratis dan efisien untuk kebutuhan terjemahan yang sederhana.
|
|
138
|
+
- Sederhana dan mudah diakses tanpa kurva pembelajaran yang curam.
|
|
139
|
+
- Pilihan yang baik untuk situs web yang tidak memerlukan manajemen terjemahan yang luas.
|
|
140
|
+
|
|
141
|
+
**Pertimbangan:**
|
|
142
|
+
|
|
143
|
+
- Kurang dukungan luas dan pembaruan rutin seperti solusi premium.
|
|
144
|
+
- Mungkin tidak cocok untuk alur kerja terjemahan yang lebih maju yang dibutuhkan oleh situs yang lebih besar.
|
|
145
|
+
|
|
146
|
+
---
|
|
147
|
+
|
|
148
|
+
### 5. Solusi i18n Kustom Melalui Kode
|
|
149
|
+
|
|
150
|
+
**Ikhtisar:**
|
|
151
|
+
Untuk pengembang yang menginginkan kontrol penuh atau memiliki kebutuhan unik, implementasi i18n kustom menggunakan kode bisa menjadi solusi yang sangat baik.
|
|
152
|
+
|
|
153
|
+
**Teknik Utama:**
|
|
154
|
+
|
|
155
|
+
- **Manfaatkan Fungsi WordPress:** Terapkan fungsi seperti `__()`, `_e()`, dan `gettext` untuk terjemahan string tema dan plugin.
|
|
156
|
+
- **Integrasi REST API:** Kelola terjemahan melalui endpoint kustom, menawarkan solusi yang disesuaikan untuk konten dinamis.
|
|
157
|
+
- **Alur Kerja Kustom:** Bangun sistem yang terintegrasi secara mulus dengan desain dan kebutuhan manajemen konten spesifik situs Anda.
|
|
158
|
+
|
|
159
|
+
**Keunggulan:**
|
|
160
|
+
|
|
161
|
+
- Fleksibilitas penuh untuk memenuhi tuntutan proyek yang unik.
|
|
162
|
+
- Menghindari ketergantungan pada plugin pihak ketiga, yang dapat meningkatkan performa.
|
|
163
|
+
- Potensi integrasi mendalam untuk sistem yang sangat terhubung.
|
|
164
|
+
|
|
165
|
+
**Pertimbangan:**
|
|
166
|
+
|
|
167
|
+
- Membutuhkan keahlian pengembangan dan waktu yang signifikan.
|
|
168
|
+
- Pemeliharaan berkelanjutan dan skalabilitas bisa lebih menantang dibandingkan solusi berbasis plugin.
|
|
169
|
+
- Tidak cocok untuk pengguna non-teknis atau skenario penyebaran cepat.
|
|
170
|
+
|
|
171
|
+
---
|
|
172
|
+
|
|
173
|
+
## Memilih Solusi i18n yang Tepat untuk Situs WordPress Anda
|
|
174
|
+
|
|
175
|
+
Saat menentukan pendekatan i18n yang akan diadopsi, pertimbangkan hal-hal berikut:
|
|
176
|
+
|
|
177
|
+
- **Anggaran:** Plugin gratis seperti Polylang atau qTranslate-XT cocok untuk anggaran yang lebih kecil, sementara WPML dan TranslatePress menawarkan fitur yang lebih komprehensif dengan harga premium.
|
|
178
|
+
- **Keahlian Teknis:** Pengguna non-developer mungkin lebih memilih kemudahan penggunaan yang ditawarkan oleh TranslatePress atau Polylang, sementara developer berpengalaman mungkin mendapatkan manfaat dari solusi yang dikodekan secara kustom.
|
|
179
|
+
- **Kompleksitas dan Skala Situs:** Untuk situs besar dengan kebutuhan terjemahan yang kompleks dan persyaratan SEO yang kuat, WPML atau TranslatePress mungkin ideal. Untuk proyek yang lebih sederhana, plugin yang mudah digunakan atau solusi kustom mungkin lebih efisien.
|
|
180
|
+
- **Pemeliharaan dan Pembaruan:** Pastikan solusi yang Anda pilih dapat mengakomodasi pertumbuhan di masa depan dan pembaruan konten tanpa beban berlebih atau masalah kompatibilitas yang signifikan.
|
|
181
|
+
|
|
182
|
+
---
|
|
183
|
+
|
|
184
|
+
## Kesimpulan
|
|
185
|
+
|
|
186
|
+
Menerjemahkan situs WordPress Anda lebih dari sekadar mengonversi teks; ini tentang merangkul audiens yang lebih luas, meningkatkan pengalaman pengguna, dan mengoptimalkan untuk mesin pencari internasional. Apakah Anda memilih solusi kaya fitur seperti WPML, opsi yang ramah pengguna seperti TranslatePress, opsi ekonomis seperti Polylang, atau pendekatan yang dikodekan khusus, kuncinya adalah memilih solusi i18n yang selaras dengan tujuan dan sumber daya proyek Anda.
|
|
187
|
+
|
|
188
|
+
Dengan mengevaluasi opsi Anda secara cermat dan mempertimbangkan pemeliharaan jangka panjang, Anda dapat membuat situs multibahasa yang kuat dan efektif berkomunikasi dengan audiens global. Selamat menerjemahkan, dan semoga sukses internasional untuk situs Anda!
|
|
@@ -0,0 +1,125 @@
|
|
|
1
|
+
---
|
|
2
|
+
createdAt: 2025-01-16
|
|
3
|
+
updatedAt: 2025-06-29
|
|
4
|
+
title: Alat Internasionalisasi (i18n) Terbaik untuk Angular
|
|
5
|
+
description: Temukan solusi i18n Angular teratas untuk mengatasi tantangan terjemahan, meningkatkan SEO, dan memberikan pengalaman web global yang mulus.
|
|
6
|
+
keywords:
|
|
7
|
+
- Angular
|
|
8
|
+
- i18n
|
|
9
|
+
- multibahasa
|
|
10
|
+
- SEO
|
|
11
|
+
- Internasionalisasi
|
|
12
|
+
- Blog
|
|
13
|
+
- JavaScript
|
|
14
|
+
slugs:
|
|
15
|
+
- blog
|
|
16
|
+
- i18n-technologies
|
|
17
|
+
- frameworks
|
|
18
|
+
- angular
|
|
19
|
+
---
|
|
20
|
+
|
|
21
|
+
# Menjelajahi Solusi i18n untuk Menerjemahkan Situs Web Angular Anda
|
|
22
|
+
|
|
23
|
+
Di dunia yang saling terhubung saat ini, menawarkan situs web Anda dalam berbagai bahasa dapat secara signifikan memperluas jangkauan dan meningkatkan pengalaman pengguna. Bagi pengembang yang bekerja dengan Angular, menerapkan internasionalisasi (i18n) sangat penting untuk mengelola terjemahan secara efisien sambil mempertahankan struktur aplikasi, SEO, dan kinerja. Dalam artikel ini, kami akan mengeksplorasi berbagai pendekatan i18n mulai dari solusi bawaan Angular hingga pustaka pihak ketiga yang populer untuk membantu Anda menentukan yang paling cocok untuk proyek Anda.
|
|
24
|
+
|
|
25
|
+
---
|
|
26
|
+
|
|
27
|
+

|
|
28
|
+
|
|
29
|
+
## Apa itu Internasionalisasi (i18n)?
|
|
30
|
+
|
|
31
|
+
Internasionalisasi, yang sering disebut sebagai i18n, adalah proses merancang dan mempersiapkan aplikasi Anda untuk mendukung berbagai bahasa dan konteks budaya. Dalam Angular, ini melibatkan konfigurasi aplikasi Anda sehingga teks, tanggal, angka, dan bahkan tata letak UI dapat beradaptasi dengan mulus ke berbagai lokal. Menyiapkan dasar ini dengan benar memastikan bahwa integrasi terjemahan di masa depan tetap terorganisir dan efisien.
|
|
32
|
+
|
|
33
|
+
Pelajari lebih lanjut tentang dasar-dasar i18n dengan membaca artikel kami: [Apa itu Internasionalisasi (i18n)? Definisi dan Tantangan](https://github.com/aymericzip/intlayer/blob/main/docs/blog/id/what_is_internationalization.md).
|
|
34
|
+
|
|
35
|
+
---
|
|
36
|
+
|
|
37
|
+
## Tantangan Terjemahan untuk Aplikasi Angular
|
|
38
|
+
|
|
39
|
+
Menerjemahkan aplikasi Angular menghadirkan beberapa tantangan:
|
|
40
|
+
|
|
41
|
+
- **Struktur Berbasis Komponen**: Pendekatan modular Angular (dengan komponen, modul, dan layanan) berarti string terjemahan dapat tersebar di seluruh basis kode Anda, sehingga sangat penting untuk memusatkan dan mengelolanya secara efektif.
|
|
42
|
+
- **Konten Dinamis**: Menangani konten waktu nyata (misalnya, data dari REST API, konten yang dibuat pengguna) memerlukan pertimbangan cermat untuk memastikan string baru juga diterjemahkan.
|
|
43
|
+
- **Pertimbangan SEO**: Jika Anda menggunakan Angular Universal untuk rendering sisi server, Anda perlu mengatur URL yang dilokalkan, meta tag, dan sitemap agar halaman multibahasa Anda ramah mesin pencari.
|
|
44
|
+
- **Routing dan Status**: Memastikan bahasa yang benar dipertahankan saat menavigasi antar rute melibatkan manajemen status dan mungkin penjaga rute khusus atau interceptor.
|
|
45
|
+
- **Skalabilitas & Pemeliharaan**: File terjemahan dapat berkembang dengan cepat, dan menjaga agar tetap terorganisir, memiliki versi, dan sinkron dengan evolusi aplikasi Anda bisa menjadi tugas yang berkelanjutan.
|
|
46
|
+
|
|
47
|
+
---
|
|
48
|
+
|
|
49
|
+
## Solusi i18n Terdepan untuk Angular
|
|
50
|
+
|
|
51
|
+
Angular menawarkan kerangka kerja i18n bawaan, dan ada beberapa pustaka pihak ketiga yang dirancang untuk menyederhanakan pengaturan multibahasa Anda. Berikut adalah beberapa solusi yang paling populer.
|
|
52
|
+
|
|
53
|
+
### 1. i18n Bawaan Angular
|
|
54
|
+
|
|
55
|
+
**Ikhtisar**
|
|
56
|
+
Angular dilengkapi dengan sistem **i18n bawaan** yang mencakup alat untuk mengekstrak string terjemahan, menangani pluralisasi dan interpolasi, serta mengintegrasikan terjemahan saat waktu kompilasi. Solusi resmi ini sangat kuat untuk proyek yang lebih kecil atau yang dapat selaras dengan struktur yang direkomendasikan Angular.
|
|
57
|
+
|
|
58
|
+
**Fitur Utama**
|
|
59
|
+
|
|
60
|
+
- **Integrasi Native**: Tidak memerlukan pustaka tambahan; bekerja langsung dengan proyek Angular.
|
|
61
|
+
- **Terjemahan Waktu Kompilasi**: Angular CLI mengekstrak teks untuk terjemahan, dan Anda membangun bundel terpisah untuk setiap bahasa. Pendekatan ini dapat menghasilkan performa runtime yang lebih cepat karena terjemahan sudah dikompilasi.
|
|
62
|
+
- **Penanganan Jamak & Gender yang Mudah**: Fitur bawaan untuk pluralisasi kompleks dan interpolasi pesan.
|
|
63
|
+
- **Build AOT & Produksi**: Sepenuhnya kompatibel dengan kompilasi Ahead-of-Time (AOT) Angular, memastikan bundel produksi yang dioptimalkan.
|
|
64
|
+
|
|
65
|
+
**Pertimbangan**
|
|
66
|
+
|
|
67
|
+
- **Build Ganda**: Setiap bahasa memerlukan build tersendiri, yang dapat menyebabkan skenario deployment yang lebih kompleks.
|
|
68
|
+
- **Konten Dinamis**: Menangani konten waktu nyata atau yang digerakkan oleh pengguna mungkin memerlukan logika khusus karena solusi bawaan Angular sangat fokus pada terjemahan waktu kompilasi.
|
|
69
|
+
- **Fleksibilitas Runtime Terbatas**: Mengganti bahasa secara langsung (tanpa memuat ulang aplikasi) bisa menjadi tantangan karena terjemahan sudah dimasukkan saat build.
|
|
70
|
+
|
|
71
|
+
---
|
|
72
|
+
|
|
73
|
+
### 2. ngx-translate
|
|
74
|
+
|
|
75
|
+
Situs Web: [https://github.com/ngx-translate/core](https://github.com/ngx-translate/core)
|
|
76
|
+
|
|
77
|
+
**Ikhtisar**
|
|
78
|
+
**ngx-translate** adalah salah satu pustaka i18n pihak ketiga yang paling mapan dalam ekosistem Angular. Ini memungkinkan terjemahan pada runtime, memungkinkan Anda memuat file bahasa sesuai permintaan dan mengganti lokal secara dinamis tanpa membangun ulang seluruh aplikasi Anda.
|
|
79
|
+
|
|
80
|
+
**Fitur Utama**
|
|
81
|
+
|
|
82
|
+
- **Terjemahan Runtime**: Ideal untuk pergantian bahasa dinamis dan skenario di mana Anda tidak menginginkan banyak build produksi.
|
|
83
|
+
- **File Terjemahan JSON**: Menyimpan terjemahan dalam file JSON sederhana, sehingga mudah untuk disusun dan dipelihara.
|
|
84
|
+
- **Pemanggilan Async**: Memuat terjemahan secara malas (lazy-load) untuk menjaga ukuran bundle awal tetap kecil.
|
|
85
|
+
- **Dukungan Multi Bahasa**: Beralih locale secara instan dan mendengarkan perubahan bahasa di seluruh komponen Anda.
|
|
86
|
+
|
|
87
|
+
**Pertimbangan**
|
|
88
|
+
|
|
89
|
+
- **Status & Kompleksitas**: Mengelola banyak file terjemahan dapat menjadi kompleks dalam aplikasi yang lebih besar.
|
|
90
|
+
- **SEO & SSR**: Jika Anda membutuhkan server-side rendering dengan Angular Universal, ngx-translate memerlukan pengaturan tambahan untuk memastikan terjemahan yang benar disajikan kepada crawler dan browser pada pemuatan pertama.
|
|
91
|
+
- **Performa**: Meskipun fleksibel saat runtime, menangani banyak terjemahan pada halaman besar dapat berdampak pada performa, sehingga strategi caching sangat disarankan.
|
|
92
|
+
|
|
93
|
+
---
|
|
94
|
+
|
|
95
|
+
### 3. Transloco
|
|
96
|
+
|
|
97
|
+
Website: [https://ngneat.github.io/transloco/](https://ngneat.github.io/transloco/)
|
|
98
|
+
|
|
99
|
+
**Ikhtisar**
|
|
100
|
+
**Transloco** adalah perpustakaan i18n Angular modern yang didorong oleh komunitas dan menekankan pada arsitektur yang dapat diskalakan serta pengalaman pengembang yang lancar. Ini menyediakan pendekatan berbasis plugin untuk integrasi yang mulus dengan setup Angular Anda yang sudah ada.
|
|
101
|
+
|
|
102
|
+
**Fitur Utama**
|
|
103
|
+
|
|
104
|
+
- **Integrasi Manajemen State**: Kompatibilitas langsung dengan perpustakaan manajemen state seperti NgRx dan Akita.
|
|
105
|
+
- **Lazy Loading**: Memecah terjemahan menjadi beberapa bagian dan memuatnya hanya saat diperlukan.
|
|
106
|
+
- **Ekosistem Plugin yang Kaya**: Menangani segala hal mulai dari integrasi SSR hingga ekstraksi pesan otomatis.
|
|
107
|
+
- **Runtime atau Build-Time**: Menawarkan fleksibilitas untuk berbagai alur kerja terjemahan, apakah Anda lebih suka switching saat runtime atau lokalisasi yang sudah dibangun sebelumnya.
|
|
108
|
+
|
|
109
|
+
**Pertimbangan**
|
|
110
|
+
|
|
111
|
+
- **Kurva Pembelajaran**: Meskipun terdokumentasi dengan baik, pendekatan berbasis plugin mungkin memerlukan langkah tambahan untuk kasus penggunaan lanjutan (misalnya, SSR, rute multi-bahasa).
|
|
112
|
+
- **Ukuran Komunitas**: Transloco memiliki komunitas yang aktif tetapi masih berkembang dibandingkan dengan solusi bawaan Angular atau ngx-translate.
|
|
113
|
+
- **Struktur Folder**: Menjaga terjemahan tetap terorganisir bisa menjadi tantangan untuk aplikasi yang sangat besar. Struktur folder yang baik dan konvensi penamaan sangat penting.
|
|
114
|
+
|
|
115
|
+
### Pemikiran Akhir
|
|
116
|
+
|
|
117
|
+
Saat memilih pendekatan i18n untuk aplikasi Angular Anda:
|
|
118
|
+
|
|
119
|
+
- **Menilai Kebutuhan Proyek**: Pertimbangkan faktor seperti pergantian bahasa dinamis, kecepatan pengembangan, dan kebutuhan integrasi pihak ketiga.
|
|
120
|
+
- **Periksa SSR & SEO**: Jika menggunakan Angular Universal untuk server-side rendering, pastikan solusi yang Anda pilih terintegrasi dengan mulus dengan metadata yang dilokalisasi dan penanganan rute.
|
|
121
|
+
- **Performa & Strategi Build**: Evaluasi apakah Anda memerlukan beberapa output build (per bahasa) atau lebih memilih satu bundel dengan terjemahan saat runtime.
|
|
122
|
+
- **Pemeliharaan & Skalabilitas**: Untuk aplikasi besar, pastikan pustaka Anda mendukung struktur file yang rapi, kunci bertipe (jika diinginkan), dan proses pembaruan yang sederhana.
|
|
123
|
+
- **Pengalaman Pengembang**: Autocomplete TypeScript, ekosistem plugin, dan tooling CLI dapat sangat mengurangi hambatan saat memperbarui atau menambahkan terjemahan baru.
|
|
124
|
+
|
|
125
|
+
Semua pustaka yang dibahas dapat mendukung aplikasi Angular multibahasa yang kuat, masing-masing dengan keunggulannya sendiri. Pilihan terbaik bergantung pada kebutuhan unik Anda untuk **kinerja**, **alur kerja**, **pengalaman pengembang**, dan **tujuan bisnis**.
|
|
@@ -0,0 +1,150 @@
|
|
|
1
|
+
---
|
|
2
|
+
createdAt: 2025-01-16
|
|
3
|
+
updatedAt: 2025-06-29
|
|
4
|
+
title: Alat Internasionalisasi (i18n) Terbaik untuk Flutter
|
|
5
|
+
description: Temukan solusi i18n Flutter terbaik untuk mengatasi tantangan terjemahan, meningkatkan SEO, dan memberikan pengalaman web global yang mulus.
|
|
6
|
+
keywords:
|
|
7
|
+
- Flutter
|
|
8
|
+
- i18n
|
|
9
|
+
- multibahasa
|
|
10
|
+
- SEO
|
|
11
|
+
- Internasionalisasi
|
|
12
|
+
- Blog
|
|
13
|
+
- JavaScript
|
|
14
|
+
- Flutter
|
|
15
|
+
slugs:
|
|
16
|
+
- blog
|
|
17
|
+
- i18n-technologies
|
|
18
|
+
- frameworks
|
|
19
|
+
- flutter
|
|
20
|
+
---
|
|
21
|
+
|
|
22
|
+
# Menjelajahi Solusi i18n untuk Menerjemahkan Aplikasi Flutter Anda
|
|
23
|
+
|
|
24
|
+
Di dunia yang semakin terhubung, menawarkan aplikasi Flutter Anda dalam berbagai bahasa dapat memperluas jangkauan dan meningkatkan kegunaan bagi pengguna yang bukan penutur bahasa Inggris. Menerapkan internasionalisasi (i18n) di Flutter memastikan teks, tanggal, dan informasi sensitif budaya lainnya dilokalkan dengan benar. Dalam artikel ini, kami akan mengeksplorasi berbagai pendekatan i18n di Flutter mulai dari framework resmi hingga pustaka yang dikembangkan komunitas sehingga Anda dapat memilih yang paling sesuai untuk proyek Anda.
|
|
25
|
+
|
|
26
|
+
---
|
|
27
|
+
|
|
28
|
+

|
|
29
|
+
|
|
30
|
+
## Apa itu Internasionalisasi (i18n)?
|
|
31
|
+
|
|
32
|
+
Internasionalisasi, yang biasa dikenal sebagai i18n, adalah proses merancang aplikasi agar dapat dengan mudah mendukung berbagai bahasa dan format budaya. Di Flutter, ini melibatkan pengaturan aplikasi Anda untuk mengelola string yang dilokalkan, format tanggal/waktu, dan format angka secara mulus. Dengan mempersiapkan aplikasi Flutter Anda untuk i18n, Anda membangun fondasi yang kuat untuk mengintegrasikan terjemahan dan menangani perbedaan regional dengan gesekan minimal.
|
|
33
|
+
|
|
34
|
+
Jika Anda baru dengan konsep ini, lihat artikel kami: [Apa itu Internasionalisasi (i18n)? Definisi dan Tantangan](https://github.com/aymericzip/intlayer/blob/main/docs/blog/id/what_is_internationalization.md).
|
|
35
|
+
|
|
36
|
+
---
|
|
37
|
+
|
|
38
|
+
## Tantangan Terjemahan untuk Aplikasi Flutter
|
|
39
|
+
|
|
40
|
+
Arsitektur Flutter yang reaktif dan berbasis widget menghadirkan beberapa tantangan i18n yang unik:
|
|
41
|
+
|
|
42
|
+
- **UI Berbasis Widget**: String teks dapat tersebar di berbagai widget, sehingga memerlukan cara sistematis untuk memusatkan terjemahan sambil menjaga UI tetap reaktif.
|
|
43
|
+
- **Konten Dinamis**: Terjemahan untuk data waktu nyata atau data yang diambil (misalnya, dari REST API atau Firebase) dapat mempersulit pengaturan Anda.
|
|
44
|
+
- **Manajemen Status**: Mempertahankan locale yang benar di seluruh navigasi aplikasi dan transisi status mungkin memerlukan solusi seperti `Provider`, `Riverpod`, atau `Bloc`.
|
|
45
|
+
- **Material vs. Cupertino**: Flutter menawarkan widget UI lintas platform untuk Android (Material) dan iOS (Cupertino), sehingga memastikan i18n yang konsisten di keduanya dapat menambah kompleksitas.
|
|
46
|
+
- **Deployment & Pembaruan**: Menangani banyak bahasa dapat berarti bundel aplikasi yang lebih besar atau pengunduhan aset bahasa sesuai permintaan, sehingga memerlukan strategi yang menyeimbangkan kinerja dan pengalaman pengguna.
|
|
47
|
+
|
|
48
|
+
---
|
|
49
|
+
|
|
50
|
+
## Solusi i18n Terdepan untuk Flutter
|
|
51
|
+
|
|
52
|
+
Flutter menyediakan dukungan lokalisasi resmi, dan komunitas telah mengembangkan perpustakaan tambahan yang mempermudah pengelolaan banyak locale. Berikut adalah beberapa pendekatan yang umum digunakan.
|
|
53
|
+
|
|
54
|
+
### 1. i18n Resmi Flutter (intl + Berkas ARB)
|
|
55
|
+
|
|
56
|
+
**Gambaran Umum**
|
|
57
|
+
Flutter hadir dengan dukungan resmi untuk lokalisasi melalui paket [`intl`](https://pub.dev/packages/intl) dan integrasi dengan perpustakaan `flutter_localizations`. Pendekatan ini biasanya menggunakan berkas **ARB (Application Resource Bundle)** untuk menyimpan dan mengelola terjemahan Anda.
|
|
58
|
+
|
|
59
|
+
**Fitur Utama**
|
|
60
|
+
|
|
61
|
+
- **Resmi & Terintegrasi**: Tidak perlu perpustakaan eksternal, `MaterialApp` dan `CupertinoApp` dapat langsung merujuk ke lokalisasi Anda.
|
|
62
|
+
- **Paket intl**: Menyediakan pemformatan tanggal/angka, plural, penanganan gender, dan fitur lain yang didukung ICU.
|
|
63
|
+
- **Pemeriksaan Waktu Kompilasi**: Menghasilkan kode dari berkas ARB membantu mendeteksi terjemahan yang hilang saat kompilasi.
|
|
64
|
+
- **Dukungan Komunitas yang Kuat**: Didukung oleh Google, dengan banyak dokumentasi dan contoh.
|
|
65
|
+
|
|
66
|
+
**Pertimbangan**
|
|
67
|
+
|
|
68
|
+
- **Pengaturan Manual**: Anda harus mengonfigurasi berkas ARB, mengatur `MaterialApp` atau `CupertinoApp` dengan `localizationsDelegates`, dan mengelola banyak berkas `.arb` untuk setiap bahasa.
|
|
69
|
+
- **Hot Reload/Restart**: Mengganti bahasa saat runtime biasanya memerlukan restart aplikasi penuh untuk menerapkan locale baru.
|
|
70
|
+
- **Skalabilitas**: Untuk aplikasi yang lebih besar, jumlah berkas ARB dapat bertambah, sehingga memerlukan struktur folder yang disiplin.
|
|
71
|
+
|
|
72
|
+
---
|
|
73
|
+
|
|
74
|
+
### 2. Easy Localization
|
|
75
|
+
|
|
76
|
+
Repository: [https://pub.dev/packages/easy_localization](https://pub.dev/packages/easy_localization)
|
|
77
|
+
|
|
78
|
+
**Ikhtisar**
|
|
79
|
+
**Easy Localization** adalah perpustakaan yang dikembangkan oleh komunitas yang dirancang untuk menyederhanakan tugas lokalisasi di Flutter. Ini berfokus pada pendekatan yang lebih dinamis untuk memuat dan mengganti bahasa, sering kali dengan boilerplate minimal.
|
|
80
|
+
|
|
81
|
+
**Fitur Utama**
|
|
82
|
+
|
|
83
|
+
- **Pengaturan yang Disederhanakan**: Anda dapat membungkus widget root Anda dengan `EasyLocalization` untuk mengelola locale dan terjemahan yang didukung dengan mudah.
|
|
84
|
+
- **Penggantian Bahasa Saat Runtime**: Ubah bahasa aplikasi secara langsung tanpa perlu restart manual, meningkatkan pengalaman pengguna.
|
|
85
|
+
- **JSON/YAML/CSV**: Menyimpan terjemahan dalam berbagai format berkas untuk fleksibilitas.
|
|
86
|
+
- **Pluralisasi & Konteks**: Fitur dasar untuk mengelola bentuk jamak dan terjemahan berbasis konteks.
|
|
87
|
+
|
|
88
|
+
**Pertimbangan**
|
|
89
|
+
|
|
90
|
+
- **Kontrol yang Kurang Rinci**: Meskipun lebih sederhana, Anda mungkin memiliki kontrol yang kurang halus atas optimasi saat build dibandingkan dengan pendekatan ARB resmi.
|
|
91
|
+
- **Performa**: Memuat beberapa berkas terjemahan besar saat runtime dapat mempengaruhi waktu startup untuk aplikasi yang lebih besar.
|
|
92
|
+
- **Komunitas & Pembaruan**: Sangat bergantung pada komunitas, yang bisa menjadi nilai tambah untuk dukungan tetapi juga rentan terhadap perubahan seiring waktu.
|
|
93
|
+
|
|
94
|
+
---
|
|
95
|
+
|
|
96
|
+
### 3. Flutter_i18n
|
|
97
|
+
|
|
98
|
+
Repository: [https://pub.dev/packages/flutter_i18n](https://pub.dev/packages/flutter_i18n)
|
|
99
|
+
|
|
100
|
+
**Ikhtisar**
|
|
101
|
+
**Flutter_i18n** menawarkan pendekatan yang mirip dengan Easy Localization, dengan fokus menjaga terjemahan dan logika di luar kode widget inti Anda. Ini mendukung pemuatan file lokal secara sinkron dan asinkron.
|
|
102
|
+
|
|
103
|
+
**Fitur Utama**
|
|
104
|
+
|
|
105
|
+
- **Berbagai Format Berkas**: Gunakan JSON atau YAML untuk menyimpan terjemahan.
|
|
106
|
+
- **Dukungan Hot Reload**: Anda dapat mengganti bahasa secara dinamis dan melihat perubahan secara langsung dalam mode pengembangan.
|
|
107
|
+
- **Widget & Hooks i18n**: Menyediakan widget khusus seperti `I18nText` untuk penggunaan yang lebih sederhana di UI, serta hooks untuk solusi berbasis state.
|
|
108
|
+
- **Lokalisasi Tingkat Rute**: Mengaitkan locale tertentu dengan rute atau modul tertentu, yang berguna untuk aplikasi besar.
|
|
109
|
+
|
|
110
|
+
**Pertimbangan**
|
|
111
|
+
|
|
112
|
+
- **Penanganan Bahasa Manual**: Anda perlu mengelola perubahan locale dengan hati-hati untuk menghindari kondisi balapan atau data yang usang.
|
|
113
|
+
- **Beban Integrasi**: Meskipun fleksibel, mengatur fitur lanjutan (seperti terjemahan bersarang atau locale fallback) mungkin memerlukan konfigurasi lebih.
|
|
114
|
+
- **Maturitas Komunitas**: Cukup matang dengan pembaruan yang stabil, tetapi kurang resmi dibandingkan solusi inti Flutter.
|
|
115
|
+
|
|
116
|
+
---
|
|
117
|
+
|
|
118
|
+
### 4. Intlayer
|
|
119
|
+
|
|
120
|
+
Situs Web: [https://intlayer.org/](https://intlayer.org/)
|
|
121
|
+
|
|
122
|
+
**Ikhtisar**
|
|
123
|
+
**Intlayer** adalah solusi i18n open-source yang bertujuan untuk menyederhanakan dukungan multibahasa di berbagai framework, termasuk **Flutter**. Solusi ini menekankan pendekatan deklaratif, pengetikan yang kuat, dan dukungan SSR di ekosistem lain meskipun SSR tidak umum di Flutter standar, Anda mungkin menemukan sinergi jika proyek Anda menggunakan Flutter web atau framework lanjutan.
|
|
124
|
+
|
|
125
|
+
**Fitur Utama**
|
|
126
|
+
|
|
127
|
+
- **Terjemahan Deklaratif**: Mendefinisikan kamus terjemahan baik di tingkat widget atau dalam file terpusat untuk arsitektur yang lebih bersih.
|
|
128
|
+
- **TypeScript & Autocompletion (Web)**: Meskipun fitur ini terutama menguntungkan framework web, pendekatan terjemahan yang bertipe tetap dapat membimbing kode terstruktur di Flutter.
|
|
129
|
+
- **Pemuatan Asinkron**: Memuat aset terjemahan secara dinamis, yang berpotensi mengurangi ukuran bundel awal untuk aplikasi multi-bahasa.
|
|
130
|
+
- **Integrasi dengan Flutter**: Integrasi dasar dapat diatur untuk memanfaatkan pendekatan Intlayer dalam terjemahan yang terstruktur.
|
|
131
|
+
|
|
132
|
+
**Pertimbangan**
|
|
133
|
+
|
|
134
|
+
- **Kematangan Spesifik Flutter**: Meskipun berkembang, komunitas Intlayer untuk Flutter lebih kecil, sehingga Anda mungkin menemukan lebih sedikit tutorial atau contoh kode dibandingkan dengan perpustakaan lain.
|
|
135
|
+
- **SSR**: Perpustakaan ini sangat mendukung SSR dalam konteks berbasis web, tetapi penggunaan SSR di Flutter lebih bersifat khusus (misalnya, Flutter web atau pendekatan server kustom).
|
|
136
|
+
- **Pengaturan Kustom**: Membutuhkan konfigurasi awal agar sesuai dengan alur `MaterialApp` atau `CupertinoApp` di Flutter.
|
|
137
|
+
|
|
138
|
+
---
|
|
139
|
+
|
|
140
|
+
### Pemikiran Akhir
|
|
141
|
+
|
|
142
|
+
Saat mengevaluasi pendekatan i18n untuk Flutter:
|
|
143
|
+
|
|
144
|
+
1. **Tentukan Alur Kerja Anda**: Putuskan apakah Anda lebih memilih **terjemahan waktu kompilasi** (melalui ARB + `intl`) untuk keamanan tipe dan performa yang lebih baik atau **terjemahan waktu jalan** (melalui Easy Localization, Flutter_i18n) untuk fleksibilitas lebih.
|
|
145
|
+
2. **Penggantian Bahasa**: Jika penggantian bahasa secara real-time tanpa perlu memulai ulang aplikasi sangat penting, pertimbangkan menggunakan pustaka berbasis runtime.
|
|
146
|
+
3. **Skalabilitas & Organisasi**: Saat aplikasi Flutter Anda berkembang, rencanakan bagaimana Anda akan mengorganisir, menamai, dan memberi versi pada file terjemahan Anda. Ini sangat relevan saat menangani banyak locale.
|
|
147
|
+
4. **Performa vs. Fleksibilitas**: Setiap pendekatan memiliki kompromi. Solusi yang sudah dikompilasi biasanya menawarkan beban runtime yang lebih kecil, sementara terjemahan secara langsung memberikan pengalaman pengguna yang lebih mulus.
|
|
148
|
+
5. **Komunitas & Ekosistem**: Solusi resmi seperti ARB + `intl` umumnya menyediakan stabilitas jangka panjang. Perpustakaan pihak ketiga menawarkan kemudahan tambahan dan fitur runtime tetapi mungkin memerlukan perhatian ekstra terkait pembaruan dan dukungan.
|
|
149
|
+
|
|
150
|
+
Semua solusi ini dapat membantu Anda membuat aplikasi Flutter multibahasa. Pilihan akhir tergantung pada **persyaratan kinerja** aplikasi Anda, **alur kerja pengembang**, **tujuan pengalaman pengguna**, dan **pemeliharaan jangka panjang**. Dengan memilih strategi yang sesuai dengan prioritas proyek Anda secara cermat, Anda akan memastikan aplikasi Flutter Anda dapat memuaskan pengguna di seluruh dunia.
|