@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
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
---
|
|
2
|
+
createdAt: 2025-12-18
|
|
3
|
+
updatedAt: 2025-11-06
|
|
4
|
+
title: L10n-платформенная альтернатива для Phrase
|
|
5
|
+
description: Найдите лучшую альтернативу платформе L10n для Phrase, соответствующую вашим требованиям
|
|
6
|
+
keywords:
|
|
7
|
+
- L10n
|
|
8
|
+
- TMS
|
|
9
|
+
- Phrase
|
|
10
|
+
slugs:
|
|
11
|
+
- blog
|
|
12
|
+
- l10n-platform-alternative
|
|
13
|
+
- phrase
|
|
14
|
+
history:
|
|
15
|
+
- version: 7.5.0
|
|
16
|
+
date: 2025-12-18
|
|
17
|
+
changes: Первоначальная версия
|
|
18
|
+
---
|
|
19
|
+
|
|
20
|
+
# Open-Source L10N-альтернатива Phrase (TMS)
|
|
21
|
+
|
|
22
|
+
## Содержание
|
|
23
|
+
|
|
24
|
+
<TOC/>
|
|
25
|
+
|
|
26
|
+
# Система управления переводами (Translation Management System)
|
|
27
|
+
|
|
28
|
+
Система управления переводами (TMS) — это программная платформа, предназначенная для автоматизации и упрощения процесса перевода и локализации (L10n). Традиционно TMS выступает в роли централизованного хаба, куда загружается, организуется и назначается контент для человеческих переводчиков. Она управляет рабочими процессами, хранит память переводов (чтобы избежать повторного перевода одной и той же фразы) и обрабатывает доставку переведённых файлов обратно разработчикам или менеджерам по контенту.
|
|
29
|
+
|
|
30
|
+
По сути, TMS исторически была мостом между техническим кодом (где хранятся строки) и человеческими лингвистами (которые понимают культурный контекст).
|
|
31
|
+
|
|
32
|
+
Translation Management System (TMS) — это программная платформа, предназначенная для автоматизации и упрощения процесса перевода и локализации (L10n). Традиционно TMS выступает в роли централизованного хаба, куда загружают, организуют и назначают контент живым переводчикам. Она управляет рабочими процессами, хранит translation memories (чтобы не переводить одно и то же предложение дважды) и обеспечивает доставку переведённых файлов обратно разработчикам или менеджерам контента.
|
|
33
|
+
|
|
34
|
+
По сути, TMS исторически являлась мостом между техническим кодом (где живут строки) и переводчиками‑лингвистами (которые понимают культуру).
|
|
35
|
+
|
|
36
|
+
# Phrase (ранее PhraseApp)
|
|
37
|
+
|
|
38
|
+
Phrase — это тяжеловес в области корпоративной локализации. Ранее известный как PhraseApp, он значительно вырос, особенно после слияния с Memsource. Он позиционируется как комплексное решение для локализации (Localization Suite), предназначенное для локализации программного обеспечения, предлагая надежные возможности API и широкую поддержку форматов.
|
|
39
|
+
|
|
40
|
+
Phrase создан для масштабирования. Это основной выбор для крупных предприятий, которым необходимо управлять сложными рабочими процессами, обширными базами памяти переводов и строгими процессами контроля качества в различных командах. Его сила заключается в способности справляться с «тяжёлыми» задачами локализации, предлагая универсальную экосистему как для строк в ПО, так и для перевода документов.
|
|
41
|
+
|
|
42
|
+
# Intlayer
|
|
43
|
+
|
|
44
|
+
Intlayer известен прежде всего как решение для i18n, но он также интегрирует headless CMS. В отличие от Phrase, которое функционирует как массивный внешний корпоративный пакет, Intlayer выступает как гибкий слой, интегрированный с кодом. Он контролирует весь стек — от слоя бандлинга до удалённой доставки контента — что обеспечивает более плавный и эффективный поток контента для современных веб‑приложений.
|
|
45
|
+
|
|
46
|
+
## Почему парадигмы изменились с появлением ИИ?
|
|
47
|
+
|
|
48
|
+
Phrase был создан для решения задач предыдущего десятилетия: управления огромными командами человеческих переводчиков и стандартизации рабочих процессов в разрозненных департаментах предприятия. Он превосходен в организации и контроле рабочих процессов.
|
|
49
|
+
|
|
50
|
+
Однако появление Large Language Models (LLMs) принципиально изменило парадигмы локализации. Проблема уже не в «как управлять 50 переводчиками?», а в «как эффективно валидировать контент, сгенерированный AI?»
|
|
51
|
+
|
|
52
|
+
Хотя Phrase интегрировал AI‑функции, они часто навешены поверх унаследованной архитектуры, рассчитанной на человеческие рабочие процессы и лицензирование по местам (seat‑based). В современной эпохе трение, связанное с «pushing to TMS» и «pulling from TMS», становится устаревшим. Разработчики ожидают, что контент будет таким же текучим, как и код.
|
|
53
|
+
|
|
54
|
+
Сегодня наиболее эффективный рабочий процесс — сначала переводить и позиционировать ваши страницы глобально с помощью AI. Затем, на втором этапе, привлекают человеческих копирайтеров для оптимизации конкретного высокопосещаемого контента с целью повышения конверсии, когда продукт уже начинает приносить доход.
|
|
55
|
+
|
|
56
|
+
## Почему Intlayer — хорошая альтернатива Phrase?
|
|
57
|
+
|
|
58
|
+
Intlayer — решение, рождённое в эпоху ИИ, разработанное специально для современной экосистемы JavaScript/TypeScript. Оно бросает вызов тяжеловесной enterprise-модели Phrase, предлагая гибкость и прозрачность.
|
|
59
|
+
|
|
60
|
+
1. **Прозрачность ценообразования:** Phrase известна своей корпоративной моделью ценообразования (Enterprise), которая может быть непрозрачной и дорогой для растущих компаний. Intlayer позволяет использовать собственные API-ключи (OpenAI, Anthropic и т. д.), обеспечивая оплату рыночных тарифов за интеллект, а не наценку на подписку платформы.
|
|
61
|
+
2. **Developer Experience (DX):** Phrase сильно полагается на CLI‑утилиты и API‑вызовы для синхронизации файлов. Intlayer интегрируется напрямую в bundler и runtime. Это означает, что ваши определения строго типизированы (TypeScript), и отсутствующие ключи обнаруживаются на этапе компиляции, а не в продакшене.
|
|
62
|
+
3. **Скорость вывода на рынок:** Intlayer устраняет «черный ящик» TMS. Вы не отправляете файлы куда‑то и не ждёте их возвращения. Переводы генерируются мгновенно с помощью AI в вашем CI‑пайплайне или в локальной среде, что сокращает цикл разработки.
|
|
63
|
+
|
|
64
|
+
# Сравнение бок о бок
|
|
65
|
+
|
|
66
|
+
| Особенность | Phrase (корпоративный TMS) | Intlayer (AI‑native) |
|
|
67
|
+
| :------------------------- | :--------------------------------------------------------------- | :------------------------------------------------------------------ |
|
|
68
|
+
| **Основная философия** | Корпоративное управление и рабочие процессы (Enterprise). | Управляет логикой контента и генерацией с помощью ИИ. |
|
|
69
|
+
| **Модель ценообразования** | Индивидуальная корпоративная модель / оплата за место (высокая). | Платите за собственный inference (используйте свой ключ — BYO Key). |
|
|
70
|
+
| **Интеграция** | Активное использование API и CLI. | Глубокая интеграция в код (декларативная). |
|
|
71
|
+
| **Обновления** | Требуется синхронизация / зависит от pipeline. | Мгновенная синхронизация с кодовой базой или живым приложением. |
|
|
72
|
+
| **Форматы файлов** | Очень широкий набор (Legacy и документы). | Современные веб-форматы (JSON, JS, TS). |
|
|
73
|
+
| **Тестирование** | QA-проверки / этапы LQA. | CI / CLI / A/B тестирование. |
|
|
74
|
+
| **Хостинг** | SaaS (строго Enterprise). | Open Source и возможность самостоятельного хостинга (Docker). |
|
|
75
|
+
|
|
76
|
+
Intlayer предлагает полное, «все-в-одном» решение для i18n, позволяющее глубоко интегрировать ваш контент. Удалённый контент может синхронизироваться напрямую с вашей кодовой базой или с работающим приложением. В сравнении, Phrase является мощной, но сложной внешней зависимостью, которая часто требует выделенных менеджеров по локализации для эффективной работы.
|
|
77
|
+
|
|
78
|
+
Кроме того, Intlayer можно использовать как Feature Flag или инструмент A/B‑тестирования, что даёт возможность динамически проверять разные вариации контента. Phrase нацелен на обеспечение лингвистической согласованности, тогда как Intlayer помогает оптимизировать конверсию и пользовательский опыт за счёт динамических данных.
|
|
79
|
+
|
|
80
|
+
Хотя Phrase незаменим для сложных корпоративных сценариев с множеством форматов (например, одновременный перевод PDF, субтитров и программного обеспечения), Intlayer является предпочтительным выбором для продуктовых команд, создающих веб‑приложения и стремящихся к полной собственности над продуктом, type safety и современному AI-driven workflow без корпоративной нагрузки (enterprise overhead).
|
|
81
|
+
|
|
82
|
+
Наконец, для тех, кто ставит приоритетом суверенитет данных и контроль, Intlayer — open-source и может быть self-hosted. Docker files доступны прямо в репозитории, что даёт вам полное владение инфраструктурой локализации — то, чего невозможно добиться в закрытой SaaS-экосистеме Phrase.
|
|
@@ -31,7 +31,7 @@ history:
|
|
|
31
31
|
|
|
32
32
|
# i18next JSON çevirilerinizi Intlayer kullanarak nasıl otomatikleştirirsiniz
|
|
33
33
|
|
|
34
|
-
<iframe title="i18next JSON çevirilerinizi Intlayer kullanarak nasıl otomatikleştirirsiniz" class="m-auto aspect-
|
|
34
|
+
<iframe title="i18next JSON çevirilerinizi Intlayer kullanarak nasıl otomatikleştirirsiniz" 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"/>
|
|
35
35
|
|
|
36
36
|
## Intlayer nedir?
|
|
37
37
|
|
|
@@ -27,7 +27,7 @@ history:
|
|
|
27
27
|
|
|
28
28
|
# next-i18next ve Intlayer ile Next.js Uluslararasılaştırması (i18n)
|
|
29
29
|
|
|
30
|
-
<iframe title="next-i18next JSON çevirilerinizi Intlayer kullanarak nasıl otomatikleştirirsiniz" class="m-auto aspect-
|
|
30
|
+
<iframe title="next-i18next JSON çevirilerinizi Intlayer kullanarak nasıl otomatikleştirirsiniz" 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"/>
|
|
31
31
|
|
|
32
32
|
## İçindekiler
|
|
33
33
|
|
|
@@ -26,7 +26,7 @@ history:
|
|
|
26
26
|
|
|
27
27
|
# Intlayer kullanarak next-intl JSON çevirilerinizi nasıl otomatikleştirirsiniz
|
|
28
28
|
|
|
29
|
-
<iframe title="Intlayer kullanarak next-intl JSON çevirilerinizi nasıl otomatikleştirirsiniz" class="m-auto aspect-
|
|
29
|
+
<iframe title="Intlayer kullanarak next-intl JSON çevirilerinizi nasıl otomatikleştirirsiniz" 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"/>
|
|
30
30
|
|
|
31
31
|
## Intlayer nedir?
|
|
32
32
|
|
|
@@ -29,7 +29,7 @@ history:
|
|
|
29
29
|
|
|
30
30
|
# Intlayer kullanarak react-i18next JSON çevirilerinizi nasıl otomatikleştirirsiniz
|
|
31
31
|
|
|
32
|
-
<iframe title="react-i18next JSON çevirilerinizi Intlayer kullanarak nasıl otomatikleştirirsiniz" class="m-auto aspect-
|
|
32
|
+
<iframe title="react-i18next JSON çevirilerinizi Intlayer kullanarak nasıl otomatikleştirirsiniz" 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"/>
|
|
33
33
|
|
|
34
34
|
## Intlayer nedir?
|
|
35
35
|
|
|
@@ -27,7 +27,7 @@ history:
|
|
|
27
27
|
|
|
28
28
|
# vue-i18n ve Intlayer ile Vue.js Uluslararasılaştırması (i18n)
|
|
29
29
|
|
|
30
|
-
<iframe title="vue-i18n JSON çevirilerinizi Intlayer kullanarak nasıl otomatikleştirirsiniz" class="m-auto aspect-
|
|
30
|
+
<iframe title="vue-i18n JSON çevirilerinizi Intlayer kullanarak nasıl otomatikleştirirsiniz" 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"/>
|
|
31
31
|
|
|
32
32
|
## İçindekiler
|
|
33
33
|
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
---
|
|
2
|
+
createdAt: 2025-12-18
|
|
3
|
+
updatedAt: 2025-11-06
|
|
4
|
+
title: Lokalise için L10n Platformu Alternatifi
|
|
5
|
+
description: Lokalise için ihtiyaçlarınıza en uygun L10n platform alternatifini bulun
|
|
6
|
+
keywords:
|
|
7
|
+
- L10n
|
|
8
|
+
- TMS
|
|
9
|
+
- Lokalise
|
|
10
|
+
slugs:
|
|
11
|
+
- blog
|
|
12
|
+
- l10n-platform-alternative
|
|
13
|
+
- lokalise
|
|
14
|
+
history:
|
|
15
|
+
- version: 7.5.0
|
|
16
|
+
date: 2025-12-18
|
|
17
|
+
changes: İlk sürüm
|
|
18
|
+
---
|
|
19
|
+
|
|
20
|
+
# Lokalise için Açık Kaynaklı bir L10N Alternatifi (TMS)
|
|
21
|
+
|
|
22
|
+
## İçindekiler
|
|
23
|
+
|
|
24
|
+
<TOC/>
|
|
25
|
+
|
|
26
|
+
# Çeviri Yönetim Sistemi
|
|
27
|
+
|
|
28
|
+
Çeviri Yönetim Sistemi (TMS), çeviri ve yerelleştirme (L10n) sürecini otomatikleştirmek ve kolaylaştırmak için tasarlanmış bir yazılım platformudur. Geleneksel olarak bir TMS, içeriklerin yüklendiği, düzenlendiği ve insan çevirmenlere atanabildiği merkezi bir merkez işlevi görür. İş akışlarını yönetir, çeviri belleklerini (aynı cümleyi tekrar çevirmemek için) saklar ve çevrilmiş dosyaların geliştiricilere veya içerik yöneticilerine teslim edilmesini sağlar.
|
|
29
|
+
|
|
30
|
+
Özünde, bir TMS tarihsel olarak teknik kod (string'lerin bulunduğu yer) ile kültürü anlayan insan dil uzmanları arasında bir köprü olmuştur.
|
|
31
|
+
|
|
32
|
+
# Lokalise
|
|
33
|
+
|
|
34
|
+
Lokalise modern TMS alanında önemli bir oyuncudur. 2017'de kurulan şirket, pazarı bozmak için geliştirici deneyimi (DX) ve tasarım entegrasyonuna yoğun şekilde odaklandı. Eski rakiplerinin aksine, Lokalise dosyaların gidip gelmesiyle ilgili sürtünmeyi azaltmak için şık bir UI, güçlü API'ler ve Figma ile GitHub gibi araçlarla entegrasyonları önceliklendirdi.
|
|
35
|
+
|
|
36
|
+
Başarısını "developer-friendly" bir TMS olmasına borçludur; string'lerin çıkarılmasını ve eklenmesini otomatikleştirerek mühendislik zamanını boşalttı. Manuel elektronik tablo e-postalarından kurtulmak isteyen hızlı hareket eden teknoloji ekipleri için _sürekli yerelleştirme_ sorununu etkili bir şekilde çözdü.
|
|
37
|
+
|
|
38
|
+
# Intlayer
|
|
39
|
+
|
|
40
|
+
Intlayer öncelikle bir i18n çözümü olarak bilinir, ancak aynı zamanda bir headless CMS ile entegre olur. String'leriniz için büyük ölçüde harici bir senkronizasyon aracı olarak hareket eden Lokalise'in aksine, Intlayer kodunuza daha yakın konumlanır. Tüm yığını — bundling layer'dan uzaktan içerik teslimine kadar — kontrol ederek daha pürüzsüz ve daha verimli bir içerik akışı sağlar.
|
|
41
|
+
|
|
42
|
+
## AI'den sonra paradigmalar neden değişti?
|
|
43
|
+
|
|
44
|
+
Lokalise, yerelleştirmenin "DevOps" tarafını — string'leri otomatik olarak taşımayı — mükemmelleştirdi. Ancak Büyük Dil Modelleri (LLM'lerin) gelişi yerelleştirmenin paradigmalarını kökten değiştirdi. Dar boğaz artık _taşımak_ değil; _üretmek_.
|
|
45
|
+
|
|
46
|
+
LLM'lerle çeviri maliyeti sert şekilde düştü ve hız katlanarak arttı. Yerelleştirme ekibinin rolü "çevirmenleri yönetmek"ten "bağlamı ve incelemeyi yönetmek"e doğru kayıyor.
|
|
47
|
+
|
|
48
|
+
Lokalise AI özellikleri eklemiş olsa da, temelde insan iş akışlarını yönetmek ve kullanıcı başına ya da anahtar sayısına göre ücretlendirmek için tasarlanmış bir platform olmaya devam ediyor. AI-first bir dünyada değer, sadece bir görevi bir insan ajansa ne kadar kolay atayabildiğinizde değil; AI modellerinizi bağlam farkındalığıyla içerik üretecek şekilde ne kadar iyi orkestre edebildiğinizde yatar.
|
|
49
|
+
|
|
50
|
+
Bugün en verimli iş akışı, sayfalarınızı öncelikle AI kullanarak çevirip küresel olarak konumlandırmaktır. Ardından, ikinci aşamada, ürün zaten gelir elde etmeye başladıktan sonra dönüşümü artırmak için belirli yüksek trafikli içerikleri insan metin yazarlarıyla optimize edersiniz.
|
|
51
|
+
|
|
52
|
+
## Intlayer, Lokalise için neden iyi bir alternatif?
|
|
53
|
+
|
|
54
|
+
Intlayer, AI çağında doğmuş bir çözümdür. Mimarisini ham çevirinin bir emtia olduğu, ancak _bağlam_'ın kral olduğu ilkesine göre oluşturuldu.
|
|
55
|
+
|
|
56
|
+
Lokalise sık sık keskin fiyatlandırma kademeleri nedeniyle eleştirilir; bir startup ölçeklendikçe bu maliyetler caydırıcı derecede pahalı hale gelebilir. Intlayer farklı bir yaklaşım benimser:
|
|
57
|
+
|
|
58
|
+
1. **Maliyet Verimliliği:** Büyümeyi cezalandıran "anahtar başına" veya "koltuk başına" fiyatlandırma modeline bağlı kalmazsınız. Intlayer ile kendi çıkarımınızı (BYO Key) ödersiniz; bu, maliyetlerinizin platformun marjlarıyla değil, gerçek kullanımınızla doğrudan ölçeklendiği anlamına gelir.
|
|
59
|
+
2. **İş Akışı Entegrasyonu:** Lokalise dosyaların senkronize edilmesini gerektirir (otomatik olsa bile); Intlayer ise bileşen dosyalarınızda (React, Next.js, vb.) doğrudan Declarative Content tanımına izin verir. Bu, bağlamı kullanıcı arayüzünün hemen yanına yerleştirir ve hataları azaltır.
|
|
60
|
+
3. **Görsel Yönetim:** Intlayer, çalışan uygulamanızla doğrudan etkileşime giren bir görsel düzenleyici sağlar; böylece düzenlemeler tam görsel bağlam içinde yapılır — bu, geleneksel TMS dosya listelerinde sıklıkla kopuktur.
|
|
61
|
+
|
|
62
|
+
# Yan Yana Karşılaştırma
|
|
63
|
+
|
|
64
|
+
| Özellik | Lokalise (Modern TMS) | Intlayer (AI-Native) |
|
|
65
|
+
| :----------------------- | :--------------------------------------------------- | :------------------------------------------------------- |
|
|
66
|
+
| **Temel Felsefe** | Otomasyon & Tasarım aşamasında L10n. | İçerik mantığını ve AI tabanlı üretimi yönetir. |
|
|
67
|
+
| **Fiyatlandırma Modeli** | Koltuk başı / MAU / Anahtar sayısı (Yüksek maliyet). | Kendi inference maliyetinizi ödeyin (BYO Key). |
|
|
68
|
+
| **Entegrasyon** | API tabanlı senkronizasyon / Figma eklentileri. | Derin kod entegrasyonu (Declarative). |
|
|
69
|
+
| **Güncellemeler** | Senkronizasyon gecikmeleri / PR oluşturma gerekli. | Kod tabanı veya canlı uygulama ile anlık senkronizasyon. |
|
|
70
|
+
| **Dosya Formatları** | Agnostik (Mobil, Web, Belgeler). | Modern Web (JSON, JS, TS). |
|
|
71
|
+
| **Test** | İnceleme iş akışı. | CI / CLI / A/B Testleri. |
|
|
72
|
+
| **Barındırma** | SaaS (Kapalı Kaynak). | Açık Kaynak & Self-Hostable (Docker). |
|
|
73
|
+
|
|
74
|
+
Intlayer, içeriğinizin derin entegrasyonuna olanak veren eksiksiz, hepsi bir arada bir i18n çözümü sunar. Uzaktaki içerikleriniz doğrudan kod tabanınızla veya canlı uygulamanızla senkronize edilebilir. Karşılaştırıldığında, Lokalise genellikle depo içeriğini güncellemek için Pull Request (PR) oluşturmaya dayanır; bu da "içerik durumu" ile "uygulama durumu" arasında bir ayrım oluşturur.
|
|
75
|
+
|
|
76
|
+
Ayrıca Intlayer, Feature Flag veya A/B testing aracı olarak kullanılabilir ve farklı içerik varyasyonlarını dinamik olarak test etmenizi sağlar. Lokalise kelimeleri doğru hale getirmeye odaklanırken, Intlayer dinamik veri sunumu yoluyla _kullanıcı deneyimi_ ni doğru hale getirmeye odaklanır.
|
|
77
|
+
|
|
78
|
+
Lokalise, mobil uygulamalar (iOS/Android) ve tasarım odaklı iş akışları için mükemmeldir. Ancak Next.js veya React gibi framework'leri kullanan modern web uygulamaları için Intlayer'ın `.js`, `.ts` ve JSON sözlüklerini yerel olarak işlemesi, içerik için tam TypeScript desteği ile üstün bir geliştirici deneyimi (DX) sunar — böylece eksik bir çeviri anahtarını bir daha asla yayınlamazsınız.
|
|
79
|
+
|
|
80
|
+
Son olarak, veri egemenliği ve kontrolünü önceliklendirenler için Intlayer açık kaynaklıdır ve kendi sunucunuzda barındırılabilir. Docker dosyaları depoda doğrudan mevcuttur; bu, yerelleştirme altyapınız üzerinde tam sahiplik sağlar ve Lokalise'in kapalı SaaS modeline keskin bir tezat oluşturur.
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
---
|
|
2
|
+
createdAt: 2025-12-18
|
|
3
|
+
updatedAt: 2025-11-06
|
|
4
|
+
title: L10n Platformu Alternatifi
|
|
5
|
+
description: İhtiyaçlarınız için en iyi L10n platformu alternatifini bulun
|
|
6
|
+
keywords:
|
|
7
|
+
- L10n
|
|
8
|
+
- TMS
|
|
9
|
+
- Crowdin
|
|
10
|
+
slugs:
|
|
11
|
+
- blog
|
|
12
|
+
- l10n-platform-alternative
|
|
13
|
+
- crowdin
|
|
14
|
+
history:
|
|
15
|
+
- version: 7.5.0
|
|
16
|
+
date: 2025-12-18
|
|
17
|
+
changes: İlk sürüm
|
|
18
|
+
---
|
|
19
|
+
|
|
20
|
+
# Crowdin (TMS) için Açık Kaynaklı Bir L10N Alternatifi
|
|
21
|
+
|
|
22
|
+
## İçindekiler
|
|
23
|
+
|
|
24
|
+
<TOC/>
|
|
25
|
+
|
|
26
|
+
# Çeviri Yönetim Sistemi
|
|
27
|
+
|
|
28
|
+
Çeviri Yönetim Sistemi (TMS), çeviri ve yerelleştirme (L10n) sürecini otomatikleştirmek ve kolaylaştırmak için tasarlanmış bir yazılım platformudur. Geleneksel olarak bir TMS, içeriğin yüklendiği, düzenlendiği ve insan çevirmenlere atandığı merkezi bir hub olarak hizmet verir. İş akışlarını yönetir, çeviri belleklerini saklar (aynı cümleyi tekrar çevirmemek için) ve çevrilmiş dosyaların geliştiricilere veya içerik yöneticilerine teslim edilmesini sağlar.
|
|
29
|
+
|
|
30
|
+
Özünde, TMS tarihsel olarak teknik kod (strings'in bulunduğu yer) ile kültürü anlayan insan çevirmenler arasında bir köprü olmuştur.
|
|
31
|
+
|
|
32
|
+
# Crowdin
|
|
33
|
+
|
|
34
|
+
Crowdin bu alanda deneyimli bir oyuncudur. 2009'da kurulan Crowdin, yerelleştirmenin en büyük zorluğunun bağlantı (connectivity) olduğu bir dönemde ortaya çıktı. Misyonu açıktı: metin yazarlarını, çevirmenleri ve proje sahiplerini birbirleriyle etkili bir şekilde ilişkilendirmek.
|
|
35
|
+
|
|
36
|
+
On yılı aşkın bir süredir Crowdin, yerelleştirme yönetiminde sektör standardı olmuştur. Ekiplerin `.po`, `.xml` veya `.yaml` dosyalarını yüklemelerine ve çevirmenlerin bunlar üzerinde bulut tabanlı bir arayüzde çalışmasına izin vererek parçalanma sorununu çözdü. Sağlam iş akışı otomasyonuna dayanan itibarıyla, şirketlerin bir dilden ona kadar ölçeklenmesini; elektronik tablolarla boğuşmadan mümkün kıldı.
|
|
37
|
+
|
|
38
|
+
# Intlayer
|
|
39
|
+
|
|
40
|
+
Intlayer öncelikle bir i18n çözümü olarak bilinir, ancak aynı zamanda bir CMS ile entegre olur. Mevcut i18n kurulumunuzun etrafında bir wrapper olarak görev yapmakla sınırlı olan Crowdin'in aksine, Intlayer tüm yığını kontrol eder — paketleme katmanından uzak içerik teslimine kadar — bu da daha pürüzsüz ve daha verimli bir içerik akışı sağlar.
|
|
41
|
+
|
|
42
|
+
## AI'dan beri paradigmalar neden değişti?
|
|
43
|
+
|
|
44
|
+
Crowdin insan odaklı iş akışını optimize ederken, Large Language Models (LLMs)'ın gelişi yerelleştirmenin paradigmalarını kökten değiştirdi. Metin yazarının rolü artık çeviriyi sıfırdan oluşturmak değil, AI tarafından üretilen içeriği gözden geçirmek.
|
|
45
|
+
|
|
46
|
+
Neden? Çünkü AI 1000 kat daha ucuz ve sonsuz derecede daha hızlıdır.
|
|
47
|
+
|
|
48
|
+
Ancak bir sınırlama var. Metin yazarlığı yalnızca çeviri yapmak değildir; mesajı farklı kültürlere ve bağlamlara uyarlamaktır. Büyükannenize bir iPhone'u, bir Çinli iş yöneticisine sattığımız şekilde satmıyoruz. Ton, deyim ve kültürel göstergeler farklı olmalıdır.
|
|
49
|
+
|
|
50
|
+
Günümüzde en verimli iş akışı, önce AI kullanarak sayfalarınızı küresel olarak çevirmek ve konumlandırmaktır. Ardından, ikinci aşamada, ürün zaten gelir elde etmeye başladıktan sonra dönüşümü artırmak için yüksek trafikli belirli içerikleri optimize etmek üzere insan metin yazarlarını kullanırsınız.
|
|
51
|
+
|
|
52
|
+
Her ne kadar Crowdin'in geliri — ağırlıklı olarak iyi kanıtlanmış legacy çözümleri tarafından yönlendirilen — iyi performans göstermeye devam etse de, geleneksel yerelleştirme sektörünün 5 ila 10 yıllık bir zaman diliminde ciddi şekilde etkileneceğine inanıyorum. Bir yönetim aracı için kelime başına veya kullanıcı başına ödeme modeli modası geçmiş hale geliyor.
|
|
53
|
+
|
|
54
|
+
## Neden Intlayer Crowdin'e iyi bir alternatif?
|
|
55
|
+
|
|
56
|
+
Intlayer, AI çağında doğmuş bir çözümdür. 2026'da ham çevirinin artık kendi başına içsel bir değeri olmadığı prensibiyle tasarlandı. Ham çeviri bir emtiadır.
|
|
57
|
+
|
|
58
|
+
Bu nedenle Intlayer kendisini sadece bir TMS olarak konumlandırmaz; aksine görsel bir editör ve uluslararasılaştırma mantığını derinlemesine entegre eden bir **Content Management** çözümü olarak konumlandırılır.
|
|
59
|
+
|
|
60
|
+
Intlayer ile çevirilerinizi inference maliyeti karşılığında üretirsiniz. Bir platformun fiyatlandırma modeline bağlı değilsiniz; sağlayıcıyı (OpenAI, Anthropic, Mistral, vb.) seçersiniz, modeli seçersiniz ve çeviriyi CI (Continuous Integration), CLI veya entegre CMS aracılığıyla doğrudan gerçekleştirirsiniz. Değer, çevirmenlere erişimden bağlam yönetimine kayar.
|
|
61
|
+
|
|
62
|
+
# Yan yana Karşılaştırma
|
|
63
|
+
|
|
64
|
+
| Özellik | Crowdin (Legacy TMS) | Intlayer (AI-Native) |
|
|
65
|
+
| :----------------------- | :------------------------------------------------------------------- | :----------------------------------------------------------------------------- |
|
|
66
|
+
| **Temel Felsefe** | İnsanları strings'e bağlar. | İçerik mantığını ve AI üretimini yönetir. |
|
|
67
|
+
| **Fiyatlandırma Modeli** | Kullanıcı başına / barındırılan katman. | Kendi inference maliyetinizi ödersiniz (Kendi Anahtarınızı Getirin - BYO Key). |
|
|
68
|
+
| **Entegrasyon** | Dosya tabanlı değişim (Yükle/İndir). | Derin kod entegrasyonu (Deklaratif). |
|
|
69
|
+
| **Güncellemeler** | Metni dağıtmak için genellikle CI/CD yeniden derlemeleri gerektirir. | Kod tabanı veya canlı uygulama ile anında senkronizasyon. |
|
|
70
|
+
| **Dosya Formatları** | Çeşitli (.po, .xml, .yaml, vb.). | Modern Web (JSON, JS, TS). |
|
|
71
|
+
| **Test** | Sınırlı. | CI / CLI. |
|
|
72
|
+
| **Barındırma** | SaaS (çoğunlukla). | Açık Kaynak ve kendinden barındırılabilir (Docker). |
|
|
73
|
+
|
|
74
|
+
Intlayer, içeriğinizle derin entegrasyon sağlayan eksiksiz, hepsi bir arada bir i18n çözümü sunar. Uzaktaki içerikleriniz doğrudan kod tabanınızla veya canlı uygulamanızla senkronize edilebilir. Karşılaştırma olarak, Crowdin genellikle içeriği güncellemek için CI/CD hattınızda uygulamanızın yeniden derlenmesini gerektirir; bu da çeviri ekibi ile dağıtım süreci arasında sürtüşme yaratır.
|
|
75
|
+
|
|
76
|
+
Ayrıca, Intlayer bir Feature Flag veya A/B testi aracı olarak kullanılabilir; farklı içerik varyasyonlarını dinamik olarak test etmenizi sağlar — bu, Crowdin gibi standart TMS araçlarının yerel olarak desteklemediği bir özelliktir.
|
|
77
|
+
|
|
78
|
+
Crowdin, `.po`, `.xml` ve `.yaml` gibi eski tipler de dahil olmak üzere çok çeşitli dosya formatlarını destekler; bu, yerleşik iş akışlarına veya daha eski sistemlere sahip projeler için faydalı olabilir. Buna karşılık Intlayer ağırlıklı olarak `.json`, `.js` ve `.ts` gibi modern web odaklı formatlarla çalışır. Bu, Intlayer'ın tüm eski dosya formatlarıyla uyumlu olmayabileceği anlamına gelir; bu, eski platformlardan geçiş yapan ekipler için dikkate alınması gereken bir husustur.
|
|
79
|
+
|
|
80
|
+
Son olarak, veri egemenliğini ve kontrolü önceliklendirenler için Intlayer açık kaynaklıdır ve kendi sunucunuzda barındırılabilir. Docker dosyaları depoda doğrudan mevcuttur; bu da yerelleştirme altyapınız üzerinde tam sahiplik sağlar.
|
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
---
|
|
2
|
+
createdAt: 2025-12-18
|
|
3
|
+
updatedAt: 2025-11-06
|
|
4
|
+
title: Phrase için L10n Platformu Alternatifi
|
|
5
|
+
description: İhtiyaçlarınız için Phrase'e en uygun L10n platform alternatifini bulun
|
|
6
|
+
keywords:
|
|
7
|
+
- L10n
|
|
8
|
+
- TMS
|
|
9
|
+
- Phrase
|
|
10
|
+
slugs:
|
|
11
|
+
- blog
|
|
12
|
+
- l10n-platform-alternative
|
|
13
|
+
- phrase
|
|
14
|
+
history:
|
|
15
|
+
- version: 7.5.0
|
|
16
|
+
date: 2025-12-18
|
|
17
|
+
changes: İlk sürüm
|
|
18
|
+
---
|
|
19
|
+
|
|
20
|
+
# Phrase için Açık Kaynaklı bir L10N Alternatifi (TMS)
|
|
21
|
+
|
|
22
|
+
## İçindekiler
|
|
23
|
+
|
|
24
|
+
<TOC/>
|
|
25
|
+
|
|
26
|
+
# Çeviri Yönetim Sistemi
|
|
27
|
+
|
|
28
|
+
Çeviri Yönetim Sistemi (TMS), çeviri ve lokalizasyon (L10n) sürecini otomatikleştirmek ve kolaylaştırmak için tasarlanmış bir yazılım platformudur. Geleneksel olarak, bir TMS içeriklerin yüklendiği, düzenlendiği ve insan çevirmenlere atandığı merkezi bir platform olarak hizmet verir. Çalışma akışlarını yönetir, çeviri hafızalarını depolar (aynı cümlenin tekrar çevrilmesini önlemek için) ve çevrilmiş dosyaların geliştiricilere veya içerik yöneticilerine geri teslim edilmesini sağlar.
|
|
29
|
+
|
|
30
|
+
Özünde, TMS tarihsel olarak teknik kod (string'lerin bulunduğu yer) ile kültürü anlayan insan dil uzmanları arasında bir köprü olmuştur.
|
|
31
|
+
|
|
32
|
+
Çeviri Yönetim Sistemi (TMS), çeviri ve yerelleştirme (L10n) süreçlerini otomatikleştirmek ve düzene sokmak için tasarlanmış bir yazılım platformudur. Geleneksel olarak bir TMS, içeriğin yüklendiği, düzenlendiği ve insan çevirmenlere atandığı merkezi bir merkez olarak hizmet eder. Çalışma akışlarını yönetir, çeviri belleklerini (aynı cümlenin iki kez çevrilmesini önlemek için) saklar ve çevrilmiş dosyaların geliştiricilere veya içerik yöneticilerine teslim edilmesini sağlar.
|
|
33
|
+
|
|
34
|
+
Özünde, bir TMS tarihsel olarak teknik kod (metinlerin bulunduğu yer) ile kültürü anlayan insan dil uzmanları arasında bir köprü olmuştur.
|
|
35
|
+
|
|
36
|
+
# Phrase (eski adıyla PhraseApp)
|
|
37
|
+
|
|
38
|
+
Phrase, kurumsal lokalizasyon alanında önemli bir oyuncudur. Eskiden PhraseApp olarak bilinen Phrase, özellikle Memsource ile birleşmesinin ardından önemli ölçüde büyümüştür. Kendini, güçlü API yetenekleri ve geniş format desteği sunan, yazılım lokalizasyonu için tasarlanmış kapsamlı bir Localization Suite olarak konumlandırır.
|
|
39
|
+
|
|
40
|
+
Phrase, ölçek için inşa edilmiştir. Çok sayıda farklı ekip arasında karmaşık iş akışlarını, geniş çeviri hafızalarını ve sıkı kalite güvence süreçlerini yönetmesi gereken büyük kuruluşların tercih ettiği çözümdür. Gücü, hem yazılım string'leri hem de belge çevirisi için hepsi bir arada bir ekosistem sunarak "heavy duty" lokalizasyon görevlerini yönetebilme yeteneğindedir.
|
|
41
|
+
|
|
42
|
+
# Intlayer
|
|
43
|
+
|
|
44
|
+
Intlayer esas olarak bir i18n çözümü olarak bilinse de aynı zamanda bir headless CMS ile entegre çalışır. Büyük, harici bir kurumsal paket olarak işlev gören Phrase'in aksine, Intlayer çevik ve koda entegre bir katman olarak hareket eder. Paketleme katmanından uzak içerik teslimine kadar tüm stack'i kontrol ederek modern web uygulamaları için daha akıcı ve verimli bir içerik akışı sağlar.
|
|
45
|
+
|
|
46
|
+
## AI'den beri paradigmalar neden değişti?
|
|
47
|
+
|
|
48
|
+
Phrase, önceki on yılın sorunlarını çözmek üzere tasarlandı: büyük insan çevirmen ekiplerini yönetmek ve parçalanmış kurumsal departmanlar arasında iş akışlarını standartlaştırmak. İş akışı yönetişiminde üstündür.
|
|
49
|
+
|
|
50
|
+
Ancak Büyük Dil Modelleri (LLM'ler) ortaya çıktığından beri lokalizasyon paradigmaları kökten değişti. Zorluk artık "50 çevirmeni nasıl yönetiriz?" değil; "Yapay zekâ tarafından üretilen içeriği nasıl verimli şekilde doğrularız?" oldu.
|
|
51
|
+
|
|
52
|
+
Phrase, AI özelliklerini entegre etmiş olsa da, bu özellikler genellikle insan merkezli iş akışları ve seat-based licensing için tasarlanmış miras bir mimarinin üzerine katmanlanmış durumda. Modern çağda "TMS'ye push etmek" ve "TMS'den pull etmek" gibi sürtüşmeler demode oluyor. Geliştiriciler içeriğin kod kadar akıcı olmasını bekliyor.
|
|
53
|
+
|
|
54
|
+
Günümüzde en verimli iş akışı, öncelikle AI kullanarak sayfalarınızı çevirip küresel olarak konumlandırmaktır. Ardından, ikinci aşamada, ürün gelir elde etmeye başladıktan sonra dönüşümü artırmak için belirli yüksek trafikli içerikleri insan copywriter'lar (metin yazarları) ile optimize edersiniz.
|
|
55
|
+
|
|
56
|
+
## Intlayer, Phrase'e neden iyi bir alternatif?
|
|
57
|
+
|
|
58
|
+
Intlayer, Yapay Zeka çağında doğmuş, özellikle modern JavaScript/TypeScript ekosistemi için tasarlanmış bir çözümdür. Ağır kurumsal Phrase modeline çeviklik ve şeffaflık ile meydan okur.
|
|
59
|
+
|
|
60
|
+
1. **Fiyat Şeffaflığı:** Phrase, Kurumsal fiyatlandırmasıyla tanınır; bu, büyüyen şirketler için şeffaf olmayabilir ve maliyetli olabilir. Intlayer, kendi API anahtarlarınızı (OpenAI, Anthropic, vb.) getirmenize izin verir; böylece platform aboneliği üzerinden alınan bir ek ücret yerine zekâ için piyasa fiyatlarını ödemenizi sağlar.
|
|
61
|
+
2. **Geliştirici Deneyimi (DX):** Phrase dosyaları senkronize etmek için büyük ölçüde CLI araçlarına ve API çağrılarına dayanır. Intlayer derleyiciye (bundler) ve çalışma zamanına doğrudan entegre olur. Bu, tanımlarınızın sıkı tipli (TypeScript) olduğu ve eksik anahtarların üretimde değil derleme zamanında yakalandığı anlamına gelir.
|
|
62
|
+
3. **Piyasaya Hız:** Intlayer TMS'nin "kara kutu"sunu ortadan kaldırır. Dosyaları gönderip geri gelmelerini beklemezsiniz. CI hattınızda veya yerel ortamınızda AI ile çevirileri anında üreterek geliştirme döngüsünü sıkı tutarsınız.
|
|
63
|
+
|
|
64
|
+
# Yan yana karşılaştırma
|
|
65
|
+
|
|
66
|
+
| Özellik | Phrase (Kurumsal TMS) | Intlayer (AI-Native) |
|
|
67
|
+
| :----------------------- | :------------------------------------------- | :----------------------------------------------------------------- |
|
|
68
|
+
| **Temel Felsefe** | Kurumsal Yönetişim & İş Akışı. | İçerik mantığını & AI üretimini yönetir. |
|
|
69
|
+
| **Fiyatlandırma Modeli** | Özel Kurumsal / Seat bazlı (Yüksek). | Kendi inference'ınız için ödeme (BYO Key). |
|
|
70
|
+
| **Entegrasyon** | Ağır API / CLI kullanımı. | Derin kod entegrasyonu (Deklaratif). |
|
|
71
|
+
| **Güncellemeler** | Senkronizasyon gerekli / Pipeline'a bağlı. | Kod tabanı veya canlı uygulama ile anında senkronizasyon. |
|
|
72
|
+
| **Dosya Formatları** | Son derece geniş (Legacy & Dökümanlar). | Modern Web (JSON, JS, TS). |
|
|
73
|
+
| **Testler** | QA Kontrolleri / LQA adımları. | CI / CLI / A/B Testleri. |
|
|
74
|
+
| **Hosting** | SaaS (Tamamen Kurumsal). | Açık Kaynak & Self-Host edilebilir (Docker). |
|
|
75
|
+
| **Core Philosophy** | Kurumsal Yönetişim ve İş Akışı. | İçerik mantığını ve AI üretimini yönetir. |
|
|
76
|
+
| **Pricing Model** | Özel Kurumsal / Kullanıcı Başına (Yüksek). | Kendi çıkarım maliyetinizi ödersiniz (Kendi Anahtarınızı Getirin). |
|
|
77
|
+
| **Integration** | Yoğun API / CLI kullanımı. | Derin kod entegrasyonu (Deklaratif). |
|
|
78
|
+
| **Updates** | Senkronizasyon gerekli / Pipeline'a bağımlı. | Kod tabanıyla veya canlı uygulamayla anlık senkronizasyon. |
|
|
79
|
+
| **File Formats** | Oldukça geniş (Eski Sistemler & Belgeler). | Modern Web (JSON, JS, TS). |
|
|
80
|
+
| **Testing** | QA Kontrolleri / LQA adımları. | CI / CLI / A/B Testleri. |
|
|
81
|
+
| **Hosting** | SaaS (Sadece Kurumsal). | Açık Kaynak & Kendi Sunucunuzda Barındırılabilir (Docker). |
|
|
82
|
+
|
|
83
|
+
Intlayer, içeriğinizle derin entegrasyona izin veren eksiksiz, hepsi bir arada bir i18n çözümü sunar. Uzaktaki içerikleriniz doğrudan codebase'inizle veya canlı uygulamanızla senkronize edilebilir. Karşılaştırıldığında, Phrase güçlü fakat karmaşık bir dış bağımlılıktır ve genellikle etkili çalışabilmesi için adanmış yerelleştirme yöneticileri gerektirir.
|
|
84
|
+
|
|
85
|
+
Ayrıca Intlayer, Feature Flag veya A/B testing aracı olarak kullanılabilir; böylece farklı içerik varyasyonlarını dinamik olarak test etmenizi sağlar. Phrase dilsel tutarlılığı sağlamaya yönelik tasarlanmıştır; oysa Intlayer dinamik veriler aracılığıyla dönüşüm ve kullanıcı deneyimini optimize etmenize yardımcı olur.
|
|
86
|
+
|
|
87
|
+
Phrase, PDF'leri, altyazıları ve yazılımları eşzamanlı olarak çevirmek gibi karmaşık, çok formatlı kurumsal ihtiyaçlar için tartışılmaz bir seçenek olsa da, web uygulamaları geliştiren ve tam sahiplik, type safety ve kurumsal gereksinimlerin getirdiği ek yük olmadan modern, AI destekli bir iş akışı isteyen ürün ekipleri için Intlayer daha üstün bir tercihtir.
|
|
88
|
+
|
|
89
|
+
Son olarak, veri egemenliğini ve kontrolü önceliklendirenler için Intlayer açık kaynaklıdır ve kendi sunucunuzda barındırılabilir. Docker dosyaları doğrudan depo içinde mevcuttur; bu, yerelleştirme altyapınızın tam sahipliğini sağlar — Phrase'in kapalı SaaS ekosistemiyle mümkün olmayan bir şeydir.
|
|
@@ -31,7 +31,7 @@ history:
|
|
|
31
31
|
|
|
32
32
|
# Cách tự động hóa bản dịch JSON i18next của bạn bằng Intlayer
|
|
33
33
|
|
|
34
|
-
<iframe title="Cách tự động hóa bản dịch JSON i18next của bạn bằng Intlayer" class="m-auto aspect-
|
|
34
|
+
<iframe title="Cách tự động hóa bản dịch JSON i18next của bạn bằng 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"/>
|
|
35
35
|
|
|
36
36
|
## Intlayer là gì?
|
|
37
37
|
|
|
@@ -27,7 +27,7 @@ history:
|
|
|
27
27
|
|
|
28
28
|
# Quốc tế hóa Next.js (i18n) với next-i18next và Intlayer
|
|
29
29
|
|
|
30
|
-
<iframe title="Cách tự động hóa bản dịch JSON next-i18next của bạn bằng Intlayer" class="m-auto aspect-
|
|
30
|
+
<iframe title="Cách tự động hóa bản dịch JSON next-i18next của bạn bằng 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"/>
|
|
31
31
|
|
|
32
32
|
## Mục lục
|
|
33
33
|
|
|
@@ -26,7 +26,7 @@ history:
|
|
|
26
26
|
|
|
27
27
|
# Cách tự động hóa bản dịch JSON next-intl của bạn bằng Intlayer
|
|
28
28
|
|
|
29
|
-
<iframe title="Cách tự động hóa bản dịch JSON next-intl của bạn bằng Intlayer" class="m-auto aspect-
|
|
29
|
+
<iframe title="Cách tự động hóa bản dịch JSON next-intl của bạn bằng 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"/>
|
|
30
30
|
|
|
31
31
|
## Intlayer là gì?
|
|
32
32
|
|
|
@@ -29,7 +29,7 @@ history:
|
|
|
29
29
|
|
|
30
30
|
# Cách tự động hóa bản dịch JSON react-i18next của bạn bằng Intlayer
|
|
31
31
|
|
|
32
|
-
<iframe title="Cách tự động hóa bản dịch JSON react-i18next của bạn bằng Intlayer" class="m-auto aspect-
|
|
32
|
+
<iframe title="Cách tự động hóa bản dịch JSON react-i18next của bạn bằng 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"/>
|
|
33
33
|
|
|
34
34
|
## Intlayer là gì?
|
|
35
35
|
|
|
@@ -27,7 +27,7 @@ history:
|
|
|
27
27
|
|
|
28
28
|
# Cách tự động hóa dịch JSON react-intl của bạn bằng Intlayer
|
|
29
29
|
|
|
30
|
-
<iframe title="Cách tự động hóa dịch JSON react-intl của bạn bằng Intlayer" class="m-auto aspect-
|
|
30
|
+
<iframe title="Cách tự động hóa dịch JSON react-intl của bạn bằng 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"/>
|
|
31
31
|
|
|
32
32
|
## Mục lục
|
|
33
33
|
|
|
@@ -27,7 +27,7 @@ history:
|
|
|
27
27
|
|
|
28
28
|
# Quốc tế hóa Vue.js (i18n) với vue-i18n và Intlayer
|
|
29
29
|
|
|
30
|
-
<iframe title="Cách tự động hóa bản dịch JSON vue-i18n của bạn bằng Intlayer" class="m-auto aspect-
|
|
30
|
+
<iframe title="Cách tự động hóa bản dịch JSON vue-i18n của bạn bằng 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"/>
|
|
31
31
|
|
|
32
32
|
## Mục lục
|
|
33
33
|
|
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
---
|
|
2
|
+
createdAt: 2025-12-18
|
|
3
|
+
updatedAt: 2025-11-06
|
|
4
|
+
title: Nền tảng L10n thay thế cho Lokalise
|
|
5
|
+
description: Tìm nền tảng L10n thay thế tốt nhất cho Lokalise phù hợp với nhu cầu của bạn
|
|
6
|
+
keywords:
|
|
7
|
+
- L10n
|
|
8
|
+
- TMS
|
|
9
|
+
- Lokalise
|
|
10
|
+
slugs:
|
|
11
|
+
- blog
|
|
12
|
+
- l10n-platform-alternative
|
|
13
|
+
- lokalise
|
|
14
|
+
history:
|
|
15
|
+
- version: 7.5.0
|
|
16
|
+
date: 2025-12-18
|
|
17
|
+
changes: Initial version
|
|
18
|
+
---
|
|
19
|
+
|
|
20
|
+
# Một lựa chọn mã nguồn mở L10N thay thế cho Lokalise (TMS)
|
|
21
|
+
|
|
22
|
+
## Mục lục
|
|
23
|
+
|
|
24
|
+
<TOC/>
|
|
25
|
+
|
|
26
|
+
# Hệ thống quản lý bản dịch
|
|
27
|
+
|
|
28
|
+
Một Translation Management System (TMS) là một nền tảng phần mềm được thiết kế để tự động hóa và tinh gọn quy trình dịch và bản địa hóa (L10n). Truyền thống, một TMS đóng vai trò như một trung tâm tập trung nơi nội dung được tải lên, sắp xếp và phân công cho các dịch giả con người. Nó quản lý các workflow, lưu trữ translation memories (để tránh phải dịch lại cùng một câu hai lần), và xử lý việc gửi các tệp đã dịch trở lại cho các nhà phát triển hoặc quản lý nội dung.
|
|
29
|
+
|
|
30
|
+
Về bản chất, TMS từ trước đến nay là cầu nối giữa mã kỹ thuật (nơi chứa các strings) và các chuyên gia ngôn ngữ con người (những người hiểu văn hóa).
|
|
31
|
+
|
|
32
|
+
# Lokalise
|
|
33
|
+
|
|
34
|
+
Lokalise là một nhân tố quan trọng trong bối cảnh TMS hiện đại. Thành lập vào năm 2017, công ty này xuất hiện để làm xáo trộn thị trường bằng cách tập trung mạnh mẽ vào trải nghiệm nhà phát triển (DX) và tích hợp thiết kế. Không giống các đối thủ cũ hơn, Lokalise ưu tiên một giao diện người dùng (UI) mượt mà, các API mạnh mẽ, và tích hợp với các công cụ như Figma và GitHub để giảm bớt ma sát khi di chuyển tệp qua lại.
|
|
35
|
+
|
|
36
|
+
Nó xây dựng thành công bằng cách là một TMS "thân thiện với nhà phát triển", tự động hóa việc trích xuất và chèn các strings để giải phóng thời gian cho kỹ sư. Nó đã giải quyết hiệu quả vấn đề _bản địa hóa liên tục_ cho các nhóm công nghệ phát triển nhanh muốn loại bỏ việc gửi email bảng tính thủ công.
|
|
37
|
+
|
|
38
|
+
# Intlayer
|
|
39
|
+
|
|
40
|
+
Intlayer được biết chủ yếu là một giải pháp i18n, nhưng nó cũng tích hợp một headless CMS. Không giống Lokalise, vốn hoạt động chủ yếu như một công cụ đồng bộ hóa bên ngoài cho các strings của bạn, Intlayer tồn tại gần hơn với mã nguồn của bạn. Nó kiểm soát toàn bộ stack — từ lớp bundling đến phân phối nội dung từ xa — dẫn đến một luồng nội dung mượt mà và hiệu quả hơn.
|
|
41
|
+
|
|
42
|
+
## Tại sao các paradigms đã thay đổi kể từ khi có AI?
|
|
43
|
+
|
|
44
|
+
Lokalise đã hoàn thiện khía cạnh "DevOps" của bản địa hóa — tự động di chuyển các strings. Tuy nhiên, sự xuất hiện của các Mô hình Ngôn ngữ Lớn (Large Language Models - LLMs) đã thay đổi căn bản các paradigms của bản địa hóa. Điểm nghẽn giờ đây không còn là _di chuyển_ các strings; mà là _tạo ra_ chúng.
|
|
45
|
+
|
|
46
|
+
Với các Mô hình Ngôn ngữ Lớn (LLMs), chi phí dịch thuật đã giảm mạnh, và tốc độ đã tăng lên một cách cấp số. Vai trò của đội ngũ bản địa hóa đang chuyển từ "quản lý dịch giả" sang "quản lý ngữ cảnh và rà soát."
|
|
47
|
+
|
|
48
|
+
Mặc dù Lokalise đã bổ sung các tính năng AI, về cơ bản nó vẫn là một nền tảng được thiết kế để quản lý quy trình làm việc của con người và tính phí theo số ghế (seat) hoặc số khóa (key). Trong một thế giới ưu tiên AI, giá trị nằm ở mức độ bạn có thể điều phối các mô hình AI để tạo ra nội dung nhận biết ngữ cảnh, chứ không chỉ ở việc bạn dễ dàng phân công tác vụ cho một agency con người như thế nào.
|
|
49
|
+
|
|
50
|
+
Ngày nay, quy trình hiệu quả nhất là dùng AI trước để dịch và định vị các trang của bạn trên toàn cầu. Sau đó, ở giai đoạn hai, bạn sử dụng copywriter con người để tối ưu hóa các nội dung có lưu lượng truy cập cao nhằm tăng chuyển đổi khi sản phẩm đã bắt đầu tạo doanh thu.
|
|
51
|
+
|
|
52
|
+
## Tại sao Intlayer là một lựa chọn thay thế tốt cho Lokalise?
|
|
53
|
+
|
|
54
|
+
Intlayer là một giải pháp sinh ra trong kỷ nguyên AI. Nó được kiến trúc theo nguyên tắc rằng bản dịch thô là một hàng hóa, nhưng _ngữ cảnh_ mới là vua.
|
|
55
|
+
|
|
56
|
+
Lokalise thường bị chỉ trích vì các bậc giá cao, có thể trở nên đắt đỏ đến mức không thể chấp nhận khi một startup mở rộng. Intlayer áp dụng một cách tiếp cận khác:
|
|
57
|
+
|
|
58
|
+
1. **Hiệu quả Chi phí:** Bạn không bị ràng buộc vào mô hình định giá "per key" hoặc "per seat" vốn phạt sự tăng trưởng. Với Intlayer, bạn trả cho việc suy luận của riêng bạn (BYO Key), nghĩa là chi phí của bạn tỉ lệ trực tiếp với mức sử dụng thực tế, chứ không phải biên lợi nhuận của nền tảng.
|
|
59
|
+
2. **Tích hợp luồng công việc:** Trong khi Lokalise yêu cầu đồng bộ file (ngay cả khi đã tự động), Intlayer cho phép định nghĩa Declarative Content trực tiếp trong các file component của bạn (React, Next.js, v.v.). Điều này giữ ngữ cảnh ngay sát giao diện người dùng, giảm lỗi.
|
|
60
|
+
3. **Quản lý trực quan:** Intlayer cung cấp một trình chỉnh sửa trực quan tương tác trực tiếp với ứng dụng đang chạy của bạn, đảm bảo các chỉnh sửa được thực hiện trong đầy đủ bối cảnh trực quan — điều thường bị tách rời trong danh sách file của TMS truyền thống.
|
|
61
|
+
|
|
62
|
+
# So sánh song song
|
|
63
|
+
|
|
64
|
+
| Feature | Lokalise (TMS hiện đại) | Intlayer (AI-Native) |
|
|
65
|
+
| :------------------- | :---------------------------------------- | :----------------------------------------------------------- |
|
|
66
|
+
| **Triết lý cốt lõi** | Tự động hóa & L10n ở giai đoạn thiết kế. | Quản lý logic nội dung & tạo nội dung bằng AI. |
|
|
67
|
+
| **Mô hình giá** | Theo seat / MAU / số key (Chi phí cao). | Trả cho inference của riêng bạn (BYO Key). |
|
|
68
|
+
| **Tích hợp** | Đồng bộ dựa trên API / plugin Figma. | Tích hợp sâu vào code (Declarative). |
|
|
69
|
+
| **Cập nhật** | Trì hoãn đồng bộ / cần tạo PR. | Đồng bộ tức thì với codebase hoặc ứng dụng đang chạy. |
|
|
70
|
+
| **Định dạng file** | Không ràng buộc (Mobile, Web, Documents). | Web hiện đại (JSON, JS, TS). |
|
|
71
|
+
| **Kiểm thử** | Quy trình rà soát. | CI / CLI / Kiểm thử A/B. |
|
|
72
|
+
| **Hosting** | SaaS (Mã nguồn đóng). | Mã nguồn mở & Có thể tự lưu trữ (Docker). |
|
|
73
|
+
| **Triết lý cốt lõi** | Tự động hóa & L10n ở giai đoạn thiết kế. | Quản lý logic nội dung & sinh tạo nội dung bằng AI. |
|
|
74
|
+
| **Mô hình giá** | Theo seat / MAU / số key (Chi phí cao). | Trả cho inference của riêng bạn (Tự cung cấp Key - BYO Key). |
|
|
75
|
+
| **Tích hợp** | Đồng bộ dựa trên API / plugin Figma. | Tích hợp sâu vào code (Declarative). |
|
|
76
|
+
| **Cập nhật** | Trì hoãn đồng bộ / yêu cầu tạo PR. | Đồng bộ tức thì với codebase hoặc ứng dụng đang chạy. |
|
|
77
|
+
| **Định dạng file** | Không phụ thuộc (Mobile, Web, Documents). | Web hiện đại (JSON, JS, TS). |
|
|
78
|
+
| **Kiểm thử** | Quy trình review. | CI / CLI / Kiểm thử A/B. |
|
|
79
|
+
| **Lưu trữ** | SaaS (Mã nguồn đóng). | Mã nguồn mở & Tự lưu trữ được (Docker). |
|
|
80
|
+
|
|
81
|
+
Intlayer cung cấp một giải pháp i18n đầy đủ, all-in-one cho phép tích hợp sâu nội dung của bạn. Nội dung từ xa của bạn có thể được đồng bộ trực tiếp với codebase hoặc với ứng dụng đang chạy của bạn. Ngược lại, Lokalise thường dựa vào việc tạo Pull Requests để cập nhật nội dung trong repo của bạn, điều này duy trì sự tách biệt giữa "content state" và "application state".
|
|
82
|
+
|
|
83
|
+
Hơn nữa, Intlayer có thể được sử dụng như một Feature Flag hoặc công cụ A/B testing, cho phép bạn thử nghiệm các biến thể nội dung khác nhau một cách động. Trong khi Lokalise tập trung vào việc đảm bảo từ ngữ chính xác, Intlayer tập trung vào việc tối ưu hóa _trải nghiệm người dùng_ thông qua việc phục vụ dữ liệu động.
|
|
84
|
+
|
|
85
|
+
Lokalise rất phù hợp cho các ứng dụng di động (iOS/Android) và các quy trình làm việc do thiết kế dẫn dắt. Tuy nhiên, đối với các ứng dụng web hiện đại sử dụng các framework như Next.js hoặc React, khả năng xử lý bản địa của Intlayer với các định dạng `.js`, `.ts` và các từ điển JSON mang lại trải nghiệm nhà phát triển (DX) vượt trội với hỗ trợ TypeScript đầy đủ cho nội dung — đảm bảo bạn sẽ không bao giờ phát hành thiếu khóa dịch nữa.
|
|
86
|
+
|
|
87
|
+
Cuối cùng, đối với những người ưu tiên chủ quyền dữ liệu và quyền kiểm soát, Intlayer là mã nguồn mở và có thể được tự lưu trữ. Các file Docker có sẵn trực tiếp trong repository, cho phép bạn sở hữu hoàn toàn cơ sở hạ tầng localization của mình — tương phản rõ rệt với mô hình SaaS đóng của Lokalise.
|