@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,80 @@
|
|
|
1
|
+
---
|
|
2
|
+
createdAt: 2025-12-18
|
|
3
|
+
updatedAt: 2025-11-06
|
|
4
|
+
title: L10n platform alternative to Lokalise
|
|
5
|
+
description: Find the best L10n platform alternative to Lokalise for your needs
|
|
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
|
+
# An open-source L10n alternative to Lokalise (TMS)
|
|
21
|
+
|
|
22
|
+
## Table of contents
|
|
23
|
+
|
|
24
|
+
<TOC/>
|
|
25
|
+
|
|
26
|
+
# Translation Management System
|
|
27
|
+
|
|
28
|
+
A Translation Management System (TMS) is a software platform designed to automate and streamline the translation and localisation (L10n) process. Traditionally, a TMS serves as a centralised hub where content is uploaded, organised, and assigned to human translators. It manages workflows, stores translation memories (to avoid re-translating the same sentence twice), and handles the delivery of translated files back to the developers or content managers.
|
|
29
|
+
|
|
30
|
+
In essence, a TMS has historically been the bridge between the technical code (where strings live) and the human linguists (who understand the culture).
|
|
31
|
+
|
|
32
|
+
# Lokalise
|
|
33
|
+
|
|
34
|
+
Lokalise is a major player in the modern TMS landscape. Founded in 2017, it set out to disrupt the market by focusing heavily on developer experience (DX) and design integration. Unlike older competitors, Lokalise prioritised a slick UI, powerful APIs, and integrations with tools like Figma and GitHub to reduce the friction of moving files back and forth.
|
|
35
|
+
|
|
36
|
+
It built its success on being the 'developer-friendly' TMS, automating the extraction and insertion of strings to free up engineering time. It effectively solved the problem of _continuous localisation_ for fast-moving tech teams who wanted to get rid of manual spreadsheet emails.
|
|
37
|
+
|
|
38
|
+
# Intlayer
|
|
39
|
+
|
|
40
|
+
Intlayer is known primarily as an i18n solution, but it also integrates a headless CMS. Unlike Lokalise, which acts largely as an external synchronisation tool for your strings, Intlayer lives closer to your code. It controls the entire stack—from the bundling layer to remote content delivery—resulting in a smoother and more efficient content flow.
|
|
41
|
+
|
|
42
|
+
## Why have the paradigms changed since AI?
|
|
43
|
+
|
|
44
|
+
Lokalise perfected the "DevOps" side of localisation—moving strings automatically. However, the arrival of Large Language Models (LLMs) has fundamentally shifted the paradigms of localisation. The bottleneck is no longer _moving_ the strings; it is _generating_ them.
|
|
45
|
+
|
|
46
|
+
With LLMs, the cost of translation has plummeted, and the speed has increased exponentially. The role of the localisation team is shifting from "managing translators" to "managing context and review."
|
|
47
|
+
|
|
48
|
+
While Lokalise has added AI features, it remains fundamentally a platform designed to manage human workflows and charge by the seat or key count. In an AI-first world, the value lies in how well you can orchestrate your AI models to generate context-aware content, not just in how easily you can assign a task to a human agency.
|
|
49
|
+
|
|
50
|
+
Today, the most efficient workflow is to translate and position your pages globally using AI first. Then, in a second phase, you use human copywriters to optimise specific high-traffic content to boost conversion once the product is already generating revenue.
|
|
51
|
+
|
|
52
|
+
## Why is Intlayer a good alternative to Lokalise?
|
|
53
|
+
|
|
54
|
+
Intlayer is a solution born in the AI era. It was architected with the principle that raw translation is a commodity, but _context_ is king.
|
|
55
|
+
|
|
56
|
+
Lokalise is often criticised for its steep pricing tiers, which can become prohibitively expensive as a startup scales. Intlayer adopts a different approach:
|
|
57
|
+
|
|
58
|
+
1. **Cost Efficiency:** You are not locked into a "per key" or "per seat" pricing model that penalises growth. With Intlayer, you pay for your own inference (BYO Key), meaning your costs scale directly with your actual usage, not the platform's margins.
|
|
59
|
+
2. **Workflow Integration:** While Lokalise requires synchronising files (even if automated), Intlayer allows for Declarative Content definition directly in your component files (React, Next.js, etc.). This keeps the context right next to the UI, reducing errors.
|
|
60
|
+
3. **Visual Management:** Intlayer provides a visual editor that interacts directly with your running application, ensuring that edits are made in full visual context—something often disconnected from traditional TMS file lists.
|
|
61
|
+
|
|
62
|
+
# Comparison side by side
|
|
63
|
+
|
|
64
|
+
| Feature | Lokalise (Modern TMS) | Intlayer (AI-Native) |
|
|
65
|
+
| :------------------ | :--------------------------------------------- | :----------------------------------------------------- |
|
|
66
|
+
| **Core Philosophy** | Automation & design-stage L10n. | Manages content logic & AI generation. |
|
|
67
|
+
| **Pricing Model** | Per seat / MAU / key count (high cost). | Pay for your own inference (BYO Key). |
|
|
68
|
+
| **Integration** | API-based synchronisation / Figma plugins. | Deep code integration (declarative). |
|
|
69
|
+
| **Updates** | Synchronisation delays / PR creation required. | Instant synchronisation with the codebase or live app. |
|
|
70
|
+
| **File Formats** | Platform-agnostic (mobile, web, documents). | Modern web (JSON, JS, TS). |
|
|
71
|
+
| **Testing** | Review workflow. | CI / CLI / A/B testing. |
|
|
72
|
+
| **Hosting** | SaaS (closed source). | Open source & self-hostable (Docker). |
|
|
73
|
+
|
|
74
|
+
Intlayer offers a complete, all-in-one i18n solution that enables deep integration of your content. Your remote content can be synchronised directly with your codebase or your live application. By contrast, Lokalise generally relies on creating Pull Requests to update content in your repo, which preserves a separation between "content state" and "application state."
|
|
75
|
+
|
|
76
|
+
Furthermore, Intlayer can be utilised as a feature flag or A/B testing tool, enabling you to test different content variations dynamically. While Lokalise focuses on getting the words right, Intlayer focuses on getting the _user experience_ right through dynamic data serving.
|
|
77
|
+
|
|
78
|
+
Lokalise is excellent for mobile apps (iOS/Android) and design-led workflows. However, for modern web applications using frameworks such as Next.js or React, Intlayer's native handling of `.js`, `.ts`, and JSON dictionaries offers a superior developer experience (DX) with full TypeScript support for content—ensuring you never ship a missing translation key again.
|
|
79
|
+
|
|
80
|
+
Finally, for those prioritising data sovereignty and control, Intlayer is open-source and can be self-hosted. Docker files are available directly in the repository, giving you full ownership of your localisation infrastructure—a stark contrast to Lokalise's closed SaaS model.
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
---
|
|
2
|
+
createdAt: 2025-12-18
|
|
3
|
+
updatedAt: 2025-11-06
|
|
4
|
+
title: L10n Platform Alternative
|
|
5
|
+
description: Find the best L10n platform alternative for your needs
|
|
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: Initial version
|
|
18
|
+
---
|
|
19
|
+
|
|
20
|
+
# An open-source L10n alternative to Crowdin (TMS)
|
|
21
|
+
|
|
22
|
+
## Table of contents
|
|
23
|
+
|
|
24
|
+
<TOC/>
|
|
25
|
+
|
|
26
|
+
# Translation Management System
|
|
27
|
+
|
|
28
|
+
A Translation Management System (TMS) is a software platform designed to automate and streamline the translation and localisation (L10n) process. Traditionally, a TMS serves as a centralised hub where content is uploaded, organised, and assigned to human translators. It manages workflows, stores translation memories (to avoid re-translating the same sentence twice), and handles the delivery of translated files back to the developers or content managers.
|
|
29
|
+
|
|
30
|
+
In essence, a TMS has long served as the bridge between the technical code (where strings reside) and the human linguists (who understand the culture).
|
|
31
|
+
|
|
32
|
+
# Crowdin
|
|
33
|
+
|
|
34
|
+
Crowdin is a veteran in this space. Founded in 2009, it emerged during a time when the primary challenge of localisation was connectivity. Its mission was clear: to place copywriters, translators, and project owners in relation to one another effectively.
|
|
35
|
+
|
|
36
|
+
For over a decade, Crowdin has been the industry standard for managing localisation. It solved the fragmentation problem by allowing teams to upload `.po`, `.xml`, or `.yaml` files and having translators work on them via a cloud interface. It built its reputation on solid workflow automation, allowing companies to scale from one language to ten without drowning in spreadsheets.
|
|
37
|
+
|
|
38
|
+
# Intlayer
|
|
39
|
+
|
|
40
|
+
Intlayer is known primarily as an i18n solution, but it also integrates a CMS. Unlike Crowdin, which is limited to acting as a wrapper around your existing i18n setup, Intlayer controls the entire stack—from the bundling layer to remote content delivery—resulting in a smoother and more efficient content flow.
|
|
41
|
+
|
|
42
|
+
## Why have the paradigms changed since AI?
|
|
43
|
+
|
|
44
|
+
While Crowdin optimised the human workflow, the arrival of Large Language Models (LLMs) has fundamentally shifted the paradigms of localisation. The role of the copywriter is no longer to create translations from scratch, but to review AI-generated content.
|
|
45
|
+
|
|
46
|
+
Why? Because AI is 1,000x cheaper and infinitely faster.
|
|
47
|
+
|
|
48
|
+
However, there is a limitation. Copywriting is not just about translation; it is about adapting the message to different cultures and contexts. We do not sell an iPhone to your grandmother in the same way we sell one to a Chinese business executive. The tone, the idiom, and the cultural markers must differ.
|
|
49
|
+
|
|
50
|
+
Today, the most efficient workflow is to translate and position your pages globally using AI first. Then, in a second phase, you use human copywriters to optimise specific high-traffic content to boost conversion once the product is already generating revenue.
|
|
51
|
+
|
|
52
|
+
Although Crowdin's revenue—driven mainly by its well‑proven legacy solutions—continues to perform well, I believe the traditional localisation sector will be severely impacted within a 5‑ to 10‑year horizon. The model of paying per word or per seat for a management tool is becoming obsolete.
|
|
53
|
+
|
|
54
|
+
## Why is Intlayer a good alternative to Crowdin?
|
|
55
|
+
|
|
56
|
+
Intlayer is a solution born in the AI era. It was architected with the principle that in 2026, raw translation no longer holds intrinsic value. It is a commodity.
|
|
57
|
+
|
|
58
|
+
Therefore, Intlayer does not position itself merely as a TMS, but as a **Content Management** solution that deeply integrates a visual editor and internationalisation logic.
|
|
59
|
+
|
|
60
|
+
With Intlayer, you generate your translations at the cost of your inferences. You are not locked into a platform's pricing model; you choose the provider (OpenAI, Anthropic, Mistral, etc.), you choose the model, and you translate via CI (Continuous Integration), CLI, or directly via the integrated CMS. It shifts the value from access to translators towards management of context.
|
|
61
|
+
|
|
62
|
+
# Comparison side-by-side
|
|
63
|
+
|
|
64
|
+
| Feature | Crowdin (Legacy TMS) | Intlayer (AI-Native) |
|
|
65
|
+
| :------------------ | :-------------------------------------------- | :----------------------------------------------- |
|
|
66
|
+
| **Core Philosophy** | Connects humans to strings. | Manages content logic & AI generation. |
|
|
67
|
+
| **Pricing Model** | Per-seat / hosted tier. | Pay for your own inference (bring your own key). |
|
|
68
|
+
| **Integration** | File-based exchange (upload/download). | Deep code integration (declarative). |
|
|
69
|
+
| **Updates** | Often requires CI/CD rebuilds to deploy text. | Instant sync with the codebase or the live app. |
|
|
70
|
+
| **File Formats** | Various (.po, .xml, .yaml, etc.). | Modern web (JSON, JS, TS). |
|
|
71
|
+
| **Testing** | Limited. | CI / CLI. |
|
|
72
|
+
| **Hosting** | SaaS (mostly). | Open-source & self-hostable (Docker). |
|
|
73
|
+
|
|
74
|
+
Intlayer offers a complete, all-in-one i18n solution that allows for a deep integration of your content. Your remote content can be synchronised directly with your codebase or your live application. By contrast, Crowdin often necessitates a rebuild of your application in your CI/CD pipeline to update content, creating friction between the translation team and the deployment process.
|
|
75
|
+
|
|
76
|
+
Furthermore, Intlayer can be utilised as a Feature Flag or A/B testing tool, enabling you to test different content variations dynamically — something standard TMS tools like Crowdin do not natively support.
|
|
77
|
+
|
|
78
|
+
Crowdin supports a wide range of file formats—including legacy types like `.po`, `.xml`, and `.yaml`, which can be beneficial for projects with established workflows or older systems. Intlayer, by contrast, works primarily with modern web-oriented formats such as `.json`, `.js`, and `.ts`. This means Intlayer may not be compatible with all legacy file formats, which is a consideration for teams migrating from older platforms.
|
|
79
|
+
|
|
80
|
+
Finally, for those prioritising data sovereignty and control, Intlayer is open-source and can be self-hosted. Docker files are available directly in the repository, giving you full ownership of your localisation infrastructure.
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
---
|
|
2
|
+
createdAt: 2025-12-18
|
|
3
|
+
updatedAt: 2025-11-06
|
|
4
|
+
title: L10n platform alternative to Phrase
|
|
5
|
+
description: Find the best L10n platform alternative to Phrase to suit your needs
|
|
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: Initial version
|
|
18
|
+
---
|
|
19
|
+
|
|
20
|
+
# An L10n open-source alternative to Phrase (TMS)
|
|
21
|
+
|
|
22
|
+
## Table of contents
|
|
23
|
+
|
|
24
|
+
<TOC/>
|
|
25
|
+
|
|
26
|
+
# Translation Management System
|
|
27
|
+
|
|
28
|
+
A Translation Management System (TMS) is a software platform designed to automate and streamline the translation and localisation (L10n) process. Traditionally, a TMS serves as a centralised hub where content is uploaded, organised, and assigned to human translators. It manages workflows, stores translation memories (to avoid translating the same sentence twice), and handles the delivery of translated files back to the developers or content managers.
|
|
29
|
+
|
|
30
|
+
In essence, a TMS has traditionally been the bridge between the technical code (where strings live) and the human linguists (who understand the culture).
|
|
31
|
+
|
|
32
|
+
# Phrase (formerly PhraseApp)
|
|
33
|
+
|
|
34
|
+
Phrase is a heavyweight in the enterprise localisation space. Originally known as PhraseApp, it has grown significantly, especially following its merger with Memsource. It positions itself as a comprehensive Localisation Suite designed for software localisation, offering robust API capabilities and extensive format support.
|
|
35
|
+
|
|
36
|
+
Phrase is built for scale. It is the go-to choice for large enterprises that need to manage complex workflows, vast translation memories, and strict quality assurance processes across many different teams. Its strength lies in its ability to handle 'heavy-duty' localisation tasks, offering an all-in-one ecosystem for both software strings and document translation.
|
|
37
|
+
|
|
38
|
+
# Intlayer
|
|
39
|
+
|
|
40
|
+
Intlayer is known primarily as an i18n solution, but it also integrates a headless CMS. Unlike Phrase, which functions as a massive, external enterprise suite, Intlayer acts as a nimble, code-integrated layer. It controls the entire stack—from the bundling layer to remote content delivery—resulting in a smoother and more efficient content flow for modern web applications.
|
|
41
|
+
|
|
42
|
+
## Why have the paradigms changed since AI?
|
|
43
|
+
|
|
44
|
+
Phrase was built to solve the problems of the previous decade: managing massive teams of human translators and standardising workflows across fragmented enterprise departments. It excels at workflow governance.
|
|
45
|
+
|
|
46
|
+
However, the arrival of Large Language Models (LLMs) has fundamentally shifted the paradigms of localisation. The challenge is no longer "how do we manage 50 translators?" but "how do we validate AI-generated content efficiently?"
|
|
47
|
+
|
|
48
|
+
While Phrase has integrated AI features, they are often layered on top of a legacy architecture designed for human-centric workflows and seat-based licensing. In the modern era, the friction of "pushing to TMS" and "pulling from TMS" is becoming obsolete. Developers expect content to be as fluid as code.
|
|
49
|
+
|
|
50
|
+
Today, the most efficient workflow is to translate and position your pages globally using AI first. Then, in a second phase, you use human copywriters to optimise specific high-traffic content to boost conversion once the product is already generating revenue.
|
|
51
|
+
|
|
52
|
+
## Why is Intlayer a good alternative to Phrase?
|
|
53
|
+
|
|
54
|
+
Intlayer is a solution born in the AI era, designed specifically for the modern JavaScript/TypeScript ecosystem. It challenges the heavy enterprise model of Phrase with agility and transparency.
|
|
55
|
+
|
|
56
|
+
1. **Pricing Transparency:** Phrase is known for its Enterprise pricing, which can be opaque and costly for growing companies. Intlayer lets you bring your own API keys (OpenAI, Anthropic, etc.), ensuring you pay market rates for intelligence rather than a markup on a platform subscription.
|
|
57
|
+
2. **Developer Experience (DX):** Phrase relies heavily on CLI tools and API calls to sync files. Intlayer integrates directly into the bundler and runtime. This means your definitions are strictly typed (TypeScript), and missing keys are caught at compile-time rather than in production.
|
|
58
|
+
3. **Speed to market:** Intlayer removes the "black box" of the TMS. You don't send files away and wait for them to come back. You generate translations instantly via AI in your CI pipeline or local environment, keeping the development loop tight.
|
|
59
|
+
|
|
60
|
+
# Side-by-side comparison
|
|
61
|
+
|
|
62
|
+
| Feature | Phrase (Enterprise TMS) | Intlayer (AI-Native) |
|
|
63
|
+
| :------------------ | :------------------------------------- | :-------------------------------------- |
|
|
64
|
+
| **Core Philosophy** | Enterprise governance & workflow. | Manages content logic & AI generation. |
|
|
65
|
+
| **Pricing Model** | Custom enterprise / seat-based (high). | Pay for your own inference (BYO key). |
|
|
66
|
+
| **Integration** | Heavy API / CLI usage. | Deep code integration (declarative). |
|
|
67
|
+
| **Updates** | Sync required / pipeline dependent. | Instant sync with codebase or live app. |
|
|
68
|
+
| **File Formats** | Extremely broad (legacy & documents). | Modern web (JSON, JS, TS). |
|
|
69
|
+
| **Testing** | QA checks / LQA steps. | CI / CLI / A/B testing. |
|
|
70
|
+
| **Hosting** | SaaS (strictly enterprise). | Open-source & self-hostable (Docker). |
|
|
71
|
+
|
|
72
|
+
Intlayer offers a complete, all-in-one i18n solution that allows for a deep integration of your content. Your remote content can be synchronised directly with your codebase or your live application. In comparison, Phrase is a powerful but complex external dependency that often requires dedicated localisation managers to operate effectively.
|
|
73
|
+
|
|
74
|
+
Furthermore, Intlayer can be utilised as a feature flag or A/B testing tool, enabling you to test different content variations dynamically. Phrase is designed to ensure linguistic consistency, whereas Intlayer helps you optimise for conversion and user experience through dynamic data.
|
|
75
|
+
|
|
76
|
+
While Phrase is indispensable for complex, multi-format enterprise requirements (e.g., translating PDFs, subtitles, and software simultaneously), Intlayer is the superior choice for product teams building web applications who want full ownership, type safety, and a modern, AI-driven workflow without the enterprise overhead.
|
|
77
|
+
|
|
78
|
+
Finally, for those prioritising data sovereignty and control, Intlayer is open-source and can be self-hosted. Docker files are available directly in the repository, giving you full ownership of your localisation infrastructure—something impossible with Phrase's closed SaaS ecosystem.
|
|
@@ -31,7 +31,7 @@ history:
|
|
|
31
31
|
|
|
32
32
|
# Cómo automatizar tus traducciones JSON de i18next usando Intlayer
|
|
33
33
|
|
|
34
|
-
<iframe title="Cómo automatizar tus traducciones JSON de i18next usando Intlayer" class="m-auto aspect-
|
|
34
|
+
<iframe title="Cómo automatizar tus traducciones JSON de i18next usando 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
|
## ¿Qué es Intlayer?
|
|
37
37
|
|
|
@@ -27,7 +27,7 @@ history:
|
|
|
27
27
|
|
|
28
28
|
# Internacionalización (i18n) en Next.js con next-i18next e Intlayer
|
|
29
29
|
|
|
30
|
-
<iframe title="Cómo automatizar tus traducciones JSON de next-i18next usando Intlayer" class="m-auto aspect-
|
|
30
|
+
<iframe title="Cómo automatizar tus traducciones JSON de next-i18next usando 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
|
## Tabla de Contenidos
|
|
33
33
|
|
|
@@ -26,7 +26,7 @@ history:
|
|
|
26
26
|
|
|
27
27
|
# Cómo automatizar tus traducciones JSON de next-intl usando Intlayer
|
|
28
28
|
|
|
29
|
-
<iframe title="Cómo automatizar tus traducciones JSON de next-intl usando Intlayer" class="m-auto aspect-
|
|
29
|
+
<iframe title="Cómo automatizar tus traducciones JSON de next-intl usando 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
|
## ¿Qué es Intlayer?
|
|
32
32
|
|
|
@@ -29,7 +29,7 @@ history:
|
|
|
29
29
|
|
|
30
30
|
# Cómo automatizar tus traducciones JSON de react-i18next usando Intlayer
|
|
31
31
|
|
|
32
|
-
<iframe title="Cómo automatizar tus traducciones JSON de react-i18next usando Intlayer" class="m-auto aspect-
|
|
32
|
+
<iframe title="Cómo automatizar tus traducciones JSON de react-i18next usando 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
|
## ¿Qué es Intlayer?
|
|
35
35
|
|
|
@@ -27,7 +27,7 @@ history:
|
|
|
27
27
|
|
|
28
28
|
# Cómo automatizar tus traducciones JSON de react-intl usando Intlayer
|
|
29
29
|
|
|
30
|
-
<iframe title="Cómo automatizar tus traducciones JSON de react-intl usando Intlayer" class="m-auto aspect-
|
|
30
|
+
<iframe title="Cómo automatizar tus traducciones JSON de react-intl usando 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
|
## Tabla de Contenidos
|
|
33
33
|
|
|
@@ -27,7 +27,7 @@ history:
|
|
|
27
27
|
|
|
28
28
|
# Internacionalización (i18n) en Vue.js con vue-i18n e Intlayer
|
|
29
29
|
|
|
30
|
-
<iframe title="Cómo automatizar tus traducciones JSON de vue-i18n usando Intlayer" class="m-auto aspect-
|
|
30
|
+
<iframe title="Cómo automatizar tus traducciones JSON de vue-i18n usando 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
|
## Tabla de Contenidos
|
|
33
33
|
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
---
|
|
2
|
+
createdAt: 2025-12-18
|
|
3
|
+
updatedAt: 2025-11-06
|
|
4
|
+
title: Plataforma L10n alternativa a Lokalise
|
|
5
|
+
description: Encuentra la mejor plataforma L10n alternativa a Lokalise para tus necesidades
|
|
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: Versión inicial
|
|
18
|
+
---
|
|
19
|
+
|
|
20
|
+
# Una alternativa de L10n de código abierto a Lokalise (TMS)
|
|
21
|
+
|
|
22
|
+
## Tabla de contenidos
|
|
23
|
+
|
|
24
|
+
<TOC/>
|
|
25
|
+
|
|
26
|
+
# Sistema de gestión de traducciones
|
|
27
|
+
|
|
28
|
+
Un Sistema de Gestión de Traducciones (TMS) es una plataforma de software diseñada para automatizar y agilizar el proceso de traducción y localización (L10n). Tradicionalmente, un TMS funciona como un hub centralizado donde se sube, organiza y se asigna contenido a traductores humanos. Gestiona flujos de trabajo, almacena memorias de traducción (para evitar volver a traducir la misma frase dos veces) y se encarga de la entrega de los archivos traducidos de vuelta a los desarrolladores o gestores de contenido.
|
|
29
|
+
|
|
30
|
+
En esencia, un TMS ha sido históricamente el puente entre el código técnico (donde viven las cadenas) y los lingüistas humanos (que entienden la cultura).
|
|
31
|
+
|
|
32
|
+
# Lokalise
|
|
33
|
+
|
|
34
|
+
Lokalise es un actor importante en el panorama moderno de los TMS. Fundada en 2017, llegó para revolucionar el mercado al centrarse fuertemente en la experiencia del desarrollador (DX) y la integración de diseño. A diferencia de competidores más antiguos, Lokalise priorizó una interfaz de usuario elegante, APIs potentes e integraciones con herramientas como Figma y GitHub para reducir la fricción de mover archivos de un lado a otro.
|
|
35
|
+
|
|
36
|
+
Construyó su éxito en ser el TMS "developer-friendly", automatizando la extracción e inserción de strings para liberar tiempo de ingeniería. Efectivamente resolvió el problema de la _localización continua_ para equipos tecnológicos de ritmo rápido que querían deshacerse de los correos con hojas de cálculo manuales.
|
|
37
|
+
|
|
38
|
+
# Intlayer
|
|
39
|
+
|
|
40
|
+
Intlayer es conocido principalmente como una solución de i18n, pero también integra un headless CMS. A diferencia de Lokalise, que actúa en gran medida como una herramienta externa de sincronización para tus strings, Intlayer vive más cerca de tu código. Controla toda la pila—from la capa de bundling hasta la entrega remota de contenido—resultando en un flujo de contenido más fluido y eficiente.
|
|
41
|
+
|
|
42
|
+
## ¿Por qué han cambiado los paradigmas desde la IA?
|
|
43
|
+
|
|
44
|
+
Lokalise perfeccionó el lado "DevOps" de la localización—mover strings automáticamente. Sin embargo, la llegada de los Modelos de Lenguaje a Gran Escala (LLMs) ha cambiado fundamentalmente los paradigmas de la localización. El cuello de botella ya no es _mover_ los strings; es _generarlos_.
|
|
45
|
+
|
|
46
|
+
Con los LLMs, el coste de la traducción se ha desplomado y la velocidad ha aumentado exponencialmente. El papel del equipo de localización está cambiando de "gestionar traductores" a "gestionar contexto y revisión".
|
|
47
|
+
|
|
48
|
+
Aunque Lokalise ha añadido funciones de IA, sigue siendo fundamentalmente una plataforma diseñada para gestionar flujos de trabajo humanos y cobrar por asiento o por número de claves. En un mundo centrado en la IA, el valor reside en lo bien que puedas orquestar tus modelos de IA para generar contenido contextualizado, no solo en lo fácil que sea asignar una tarea a una agencia humana.
|
|
49
|
+
|
|
50
|
+
Hoy en día, el flujo de trabajo más eficiente es traducir y posicionar tus páginas globalmente usando IA primero. Luego, en una segunda fase, utilizas redactores humanos para optimizar contenido específico de alto tráfico y aumentar la conversión una vez que el producto ya está generando ingresos.
|
|
51
|
+
|
|
52
|
+
## ¿Por qué Intlayer es una buena alternativa a Lokalise?
|
|
53
|
+
|
|
54
|
+
Intlayer es una solución nacida en la era de la IA. Fue concebida con el principio de que la traducción en bruto es una commodity, pero el _contexto_ es el rey.
|
|
55
|
+
|
|
56
|
+
Lokalise suele ser criticada por sus niveles de precios elevados, que pueden volverse prohibitivos a medida que una startup escala. Intlayer adopta un enfoque diferente:
|
|
57
|
+
|
|
58
|
+
1. **Eficiencia de costes:** No estás atado a un modelo de precios "por clave" o "por asiento" que penaliza el crecimiento. Con Intlayer, pagas por tu propia inferencia (BYO Key), lo que significa que tus costes escalan directamente con tu uso real, y no con los márgenes de la plataforma.
|
|
59
|
+
2. **Integración en el flujo de trabajo:** Mientras Lokalise requiere sincronizar archivos (incluso si es automático), Intlayer permite la definición de Contenido Declarativo directamente en tus archivos de componentes (React, Next.js, etc.). Esto mantiene el contexto justo al lado de la UI, reduciendo errores.
|
|
60
|
+
3. **Gestión visual:** Intlayer proporciona un editor visual que interactúa directamente con tu aplicación en ejecución, garantizando que las ediciones se realicen en un contexto visual completo; algo que a menudo está desconectado en las listas de archivos de los TMS tradicionales.
|
|
61
|
+
|
|
62
|
+
# Comparación lado a lado
|
|
63
|
+
|
|
64
|
+
| Funcionalidad | Lokalise (Modern TMS) | Intlayer (AI-Native) |
|
|
65
|
+
| :---------------------- | :------------------------------------------------------- | :----------------------------------------------------------- |
|
|
66
|
+
| **Filosofía central** | Automatización y L10n en etapa de diseño. | Gestiona la lógica de contenido y la generación por IA. |
|
|
67
|
+
| **Modelo de precios** | Por asiento / MAU / conteo de claves (alto costo). | Paga por tu propia inferencia (BYO Key). |
|
|
68
|
+
| **Integración** | Sincronización vía API / plugins de Figma. | Integración profunda con el código (declarativa). |
|
|
69
|
+
| **Actualizaciones** | Retrasos en la sincronización / requiere creación de PR. | Sincronización instantánea con la codebase o la app en vivo. |
|
|
70
|
+
| **Formatos de archivo** | Agnóstico (Móvil, Web, Documentos). | Web moderna (JSON, JS, TS). |
|
|
71
|
+
| **Pruebas** | Flujo de revisión. | CI / CLI / pruebas A/B. |
|
|
72
|
+
| **Hosting** | SaaS (código cerrado). | Open Source y autoalojable (Docker). |
|
|
73
|
+
|
|
74
|
+
Intlayer ofrece una solución i18n completa y todo-en-uno que permite una integración profunda de tu contenido. Tu contenido remoto puede sincronizarse directamente con tu codebase o con tu aplicación en vivo. En comparación, Lokalise normalmente se basa en crear Pull Requests para actualizar el contenido en tu repo, lo que mantiene una separación entre el "content state" y el "application state".
|
|
75
|
+
|
|
76
|
+
Además, Intlayer puede utilizarse como Feature Flag o herramienta de A/B testing, lo que te permite probar dinámicamente distintas variaciones de contenido. Mientras Lokalise se centra en acertar con las palabras, Intlayer se centra en acertar con la _experiencia de usuario_ mediante la entrega dinámica de datos.
|
|
77
|
+
|
|
78
|
+
Lokalise es excelente para aplicaciones móviles (iOS/Android) y flujos de trabajo centrados en el diseño. Sin embargo, para aplicaciones web modernas que usan frameworks como Next.js o React, el manejo nativo de `.js`, `.ts` y diccionarios JSON de Intlayer ofrece una experiencia de desarrollador (DX) superior con soporte completo de TypeScript para contenido—garantizando que nunca publiques una clave de traducción faltante de nuevo.
|
|
79
|
+
|
|
80
|
+
Finalmente, para quienes priorizan la soberanía y el control de los datos, Intlayer es open-source y puede ser self-hosted. Los archivos Docker están disponibles directamente en el repositorio, dándote la propiedad total de tu infraestructura de localización—un marcado contraste con el modelo SaaS cerrado de Lokalise.
|
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
---
|
|
2
|
+
createdAt: 2025-12-18
|
|
3
|
+
updatedAt: 2025-11-06
|
|
4
|
+
title: Alternativa de plataforma L10n
|
|
5
|
+
description: Encuentra la mejor alternativa de plataforma L10n para tus necesidades
|
|
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: Versión inicial
|
|
18
|
+
---
|
|
19
|
+
|
|
20
|
+
# Una alternativa Open-Source de L10N a Crowdin (TMS)
|
|
21
|
+
|
|
22
|
+
## Tabla de contenidos
|
|
23
|
+
|
|
24
|
+
<TOC/>
|
|
25
|
+
|
|
26
|
+
# Sistema de gestión de traducciones
|
|
27
|
+
|
|
28
|
+
Un Sistema de Gestión de Traducción (TMS) es una plataforma de software diseñada para automatizar y optimizar el proceso de traducción y localización (L10n). Tradicionalmente, un TMS funciona como un hub centralizado donde se sube, organiza y asigna el contenido a traductores humanos. Gestiona flujos de trabajo, almacena memorias de traducción (para evitar traducir dos veces la misma frase) y se encarga de la entrega de los archivos traducidos de vuelta a los desarrolladores o gestores de contenido.
|
|
29
|
+
|
|
30
|
+
En esencia, un TMS ha sido históricamente el puente entre el código técnico (donde residen las strings) y los lingüistas humanos (que entienden la cultura).
|
|
31
|
+
|
|
32
|
+
# Crowdin
|
|
33
|
+
|
|
34
|
+
Crowdin es un veterano en este ámbito. Fundado en 2009, surgió en una época en la que el principal reto de la localización era la conectividad. Su misión era clara: poner en relación a copywriters, traductores y propietarios de proyectos de manera eficaz.
|
|
35
|
+
|
|
36
|
+
Durante más de una década, Crowdin ha sido el estándar de la industria para gestionar la localización. Resolvió el problema de la fragmentación permitiendo a los equipos subir archivos `.po`, `.xml` o `.yaml` y que los traductores trabajaran en ellos mediante una interfaz en la nube. Construyó su reputación en una sólida automatización de flujos de trabajo, permitiendo a las empresas escalar de un idioma a diez sin ahogarse en hojas de cálculo.
|
|
37
|
+
|
|
38
|
+
# Intlayer
|
|
39
|
+
|
|
40
|
+
Intlayer es conocido principalmente como una solución de i18n, pero también integra un CMS. A diferencia de Crowdin, que está limitado a actuar como un envoltorio alrededor de tu configuración de i18n existente, Intlayer controla toda la pila —desde la capa de bundling hasta la entrega remota de contenido—, lo que resulta en un flujo de contenido más suave y eficiente.
|
|
41
|
+
|
|
42
|
+
## ¿Por qué han cambiado los paradigmas desde la llegada de la IA?
|
|
43
|
+
|
|
44
|
+
Si bien Crowdin optimizó el flujo de trabajo humano, la llegada de los Modelos de Lenguaje a Gran Escala (LLMs) ha cambiado fundamentalmente los paradigmas de la localización. El rol del copywriter ya no es crear la traducción desde cero, sino revisar el contenido generado por IA.
|
|
45
|
+
|
|
46
|
+
¿Por qué? Porque la IA es 1,000x más barata e infinitamente más rápida.
|
|
47
|
+
|
|
48
|
+
Sin embargo, hay una limitación. El copywriting no consiste solo en traducción; consiste en adaptar el mensaje a distintas culturas y contextos. No vendemos un iPhone a tu abuela de la misma manera que se lo vendemos a un ejecutivo empresarial chino. El tono, el lenguaje y los marcadores culturales deben ser diferentes.
|
|
49
|
+
|
|
50
|
+
Hoy en día, el flujo de trabajo más eficiente es traducir y posicionar tus páginas globalmente usando IA primero. Luego, en una segunda fase, utilizas copywriters humanos para optimizar contenidos concretos de alto tráfico y aumentar la conversión una vez que el producto ya esté generando ingresos.
|
|
51
|
+
|
|
52
|
+
Aunque los ingresos de Crowdin —impulsados principalmente por sus soluciones heredadas bien probadas— siguen siendo sólidos, creo que el sector tradicional de la localización se verá gravemente afectado en un horizonte de 5 a 10 años. El modelo de pago por palabra o por asiento para una herramienta de gestión se está volviendo obsoleto.
|
|
53
|
+
|
|
54
|
+
## ¿Por qué Intlayer es una buena alternativa a Crowdin?
|
|
55
|
+
|
|
56
|
+
Intlayer es una solución nacida en la era de la IA. Fue arquitectada con el principio de que en 2026 la traducción cruda ya no posee un valor intrínseco. Es una commodity.
|
|
57
|
+
|
|
58
|
+
Por lo tanto, Intlayer no se posiciona meramente como un TMS, sino como una solución de **Content Management** que integra de forma profunda un editor visual y lógica de internacionalización.
|
|
59
|
+
|
|
60
|
+
Con Intlayer, generas tus traducciones al costo de tus inferencias. No estás atado al modelo de precios de una plataforma; eliges el proveedor (OpenAI, Anthropic, Mistral, etc.), eliges el modelo y traduces vía CI (Integración Continua), CLI o directamente a través del CMS integrado. Desplaza el valor del acceso a traductores hacia la gestión del contexto.
|
|
61
|
+
|
|
62
|
+
# Comparación lado a lado
|
|
63
|
+
|
|
64
|
+
| Característica | Crowdin (TMS heredado) | Intlayer (nativo en IA) |
|
|
65
|
+
| :---------------------- | :---------------------------------------------------------------- | :------------------------------------------------------------------ |
|
|
66
|
+
| **Filosofía principal** | Conecta humanos con strings. | Gestiona la lógica de contenido y la generación por IA. |
|
|
67
|
+
| **Modelo de precios** | Por asiento / nivel alojado. | Paga por tus propias inferencias (BYO Key). |
|
|
68
|
+
| **Integración** | Intercambio basado en archivos (Subir/Descargar). | Integración profunda con el código (Declarativa). |
|
|
69
|
+
| **Actualizaciones** | A menudo requiere reconstrucciones CI/CD para desplegar texto. | Sincronización instantánea con la codebase o la app en vivo. |
|
|
70
|
+
| **Formatos de archivo** | Diversos (.po, .xml, .yaml, etc.). | Web moderna (JSON, JS, TS). |
|
|
71
|
+
| **Pruebas** | Limitadas. | CI / CLI. |
|
|
72
|
+
| **Alojamiento** | SaaS (principalmente). | Open Source y autoalojable (Docker). |
|
|
73
|
+
| **Modelo de precios** | Por asiento / nivel alojado. | Paga por tus propias inferencias (BYO Key). |
|
|
74
|
+
| **Integración** | Intercambio basado en archivos (Subir/Descargar). | Integración profunda con el código (Declarativa). |
|
|
75
|
+
| **Actualizaciones** | A menudo requiere reconstrucciones en CI/CD para desplegar texto. | Sincronización instantánea con la codebase o la aplicación en vivo. |
|
|
76
|
+
| **Formatos de archivo** | Diversos (.po, .xml, .yaml, etc.). | Web moderna (JSON, JS, TS). |
|
|
77
|
+
| **Pruebas** | Limitadas. | CI / CLI. |
|
|
78
|
+
| **Alojamiento** | SaaS (mayoritariamente). | Open Source y autoalojable (Docker). |
|
|
79
|
+
|
|
80
|
+
Intlayer ofrece una solución i18n integral y todo en uno que permite una integración profunda de tu contenido. Tu contenido remoto puede sincronizarse directamente con tu codebase o con tu aplicación en vivo. En comparación, Crowdin a menudo exige reconstruir la aplicación en la canalización de CI/CD para actualizar el contenido, lo que genera fricción entre el equipo de traducción y el proceso de despliegue.
|
|
81
|
+
|
|
82
|
+
Además, Intlayer puede utilizarse como Feature Flag o como herramienta de A/B testing, permitiéndote probar distintas variaciones de contenido de forma dinámica —algo que las herramientas TMS estándar como Crowdin no soportan de forma nativa.
|
|
83
|
+
|
|
84
|
+
Crowdin admite una amplia gama de formatos de archivo —incluidos tipos legacy como `.po`, `.xml` y `.yaml`—, lo que puede ser beneficioso para proyectos con flujos de trabajo establecidos o sistemas más antiguos. Intlayer, por el contrario, trabaja principalmente con formatos modernos orientados a la web, como `.json`, `.js` y `.ts`. Esto significa que Intlayer puede no ser compatible con todos los formatos legacy, lo cual es una consideración para los equipos que migran desde plataformas antiguas.
|
|
85
|
+
|
|
86
|
+
Finalmente, para quienes priorizan la soberanía y el control de los datos, Intlayer es open-source y puede ser autoalojado. Los archivos Docker están disponibles directamente en el repositorio, proporcionándole la propiedad total de su infraestructura de localización.
|
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
---
|
|
2
|
+
createdAt: 2025-12-18
|
|
3
|
+
updatedAt: 2025-11-06
|
|
4
|
+
title: Plataforma L10n alternativa a Phrase
|
|
5
|
+
description: Encuentra la mejor plataforma L10n alternativa a Phrase para tus necesidades
|
|
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: Versión inicial
|
|
18
|
+
---
|
|
19
|
+
|
|
20
|
+
# Una alternativa de L10n de código abierto a Phrase (TMS)
|
|
21
|
+
|
|
22
|
+
## Tabla de contenidos
|
|
23
|
+
|
|
24
|
+
<TOC/>
|
|
25
|
+
|
|
26
|
+
# Sistema de Gestión de Traducciones
|
|
27
|
+
|
|
28
|
+
Un Sistema de Gestión de Traducciones (TMS) es una plataforma de software diseñada para automatizar y agilizar el proceso de traducción y localización (L10n). Tradicionalmente, un TMS funciona como un hub centralizado donde se sube, organiza y asigna contenido a traductores humanos. Gestiona los flujos de trabajo, almacena memorias de traducción (para evitar volver a traducir la misma frase dos veces) y se encarga de la entrega de los archivos traducidos a los desarrolladores o gestores de contenido.
|
|
29
|
+
|
|
30
|
+
En esencia, un TMS ha sido históricamente el puente entre el código técnico (donde viven las cadenas) y los lingüistas humanos (que entienden la cultura).
|
|
31
|
+
|
|
32
|
+
# Phrase (anteriormente PhraseApp)
|
|
33
|
+
|
|
34
|
+
Un Sistema de Gestión de Traducciones (TMS) es una plataforma de software diseñada para automatizar y optimizar el proceso de traducción y localización (L10n). Tradicionalmente, un TMS funciona como un centro centralizado donde se sube, organiza y asigna el contenido a traductores humanos. Gestiona flujos de trabajo, almacena memorias de traducción (para evitar volver a traducir la misma frase dos veces) y maneja la entrega de los archivos traducidos de vuelta a los desarrolladores o gestores de contenido.
|
|
35
|
+
|
|
36
|
+
En esencia, un TMS ha sido históricamente el puente entre el código técnico (donde viven las cadenas) y los lingüistas humanos (que entienden la cultura).
|
|
37
|
+
|
|
38
|
+
# Phrase (anteriormente PhraseApp)
|
|
39
|
+
|
|
40
|
+
Phrase es un actor de peso en el espacio de localización empresarial. Originalmente conocido como PhraseApp, ha crecido significativamente, especialmente tras su fusión con Memsource. Se presenta como una Localization Suite integral diseñada para la localización de software, ofreciendo capacidades de API robustas y un amplio soporte de formatos.
|
|
41
|
+
|
|
42
|
+
Phrase está diseñado para escalar. Es la opción preferida para grandes empresas que necesitan gestionar flujos de trabajo complejos, vastas memorias de traducción y estrictos procesos de aseguramiento de la calidad a lo largo de muchos equipos distintos. Su fortaleza radica en su capacidad para manejar tareas de localización "heavy duty", ofreciendo un ecosistema todo-en-uno tanto para cadenas de software como para la traducción de documentos.
|
|
43
|
+
|
|
44
|
+
# Intlayer
|
|
45
|
+
|
|
46
|
+
Intlayer es conocido principalmente como una solución de i18n, pero también integra un headless CMS. A diferencia de Phrase, que funciona como una suite empresarial masiva y externa, Intlayer actúa como una capa ágil integrada al código. Controla toda la pila —desde la capa de bundling hasta la entrega remota de contenido—, lo que resulta en un flujo de contenido más fluido y eficiente para aplicaciones web modernas.
|
|
47
|
+
|
|
48
|
+
## ¿Por qué han cambiado los paradigmas con la llegada de la IA?
|
|
49
|
+
|
|
50
|
+
Phrase fue creado para resolver los problemas de la década anterior: gestionar equipos masivos de traductores humanos y estandarizar flujos de trabajo a través de departamentos empresariales fragmentados. Sobresale en la gobernanza de flujos de trabajo.
|
|
51
|
+
|
|
52
|
+
Sin embargo, la llegada de los Large Language Models (LLMs) ha cambiado fundamentalmente los paradigmas de la localización. El reto ya no es "¿cómo gestionamos a 50 traductores?" sino "¿cómo validamos de forma eficiente el contenido generado por AI?"
|
|
53
|
+
|
|
54
|
+
Aunque Phrase ha integrado funciones de AI, a menudo están superpuestas sobre una arquitectura legacy diseñada para flujos de trabajo centrados en humanos y licencias por asiento. En la era moderna, la fricción de "pushing to TMS" y "pulling from TMS" está quedando obsoleta. Los desarrolladores esperan que el contenido sea tan fluido como el código.
|
|
55
|
+
|
|
56
|
+
Hoy en día, el flujo de trabajo más eficiente es traducir y posicionar tus páginas globalmente usando AI primero. Después, en una segunda fase, utilizas copywriters para optimizar el contenido específico de alto tráfico y aumentar la conversión una vez que el producto ya esté generando ingresos.
|
|
57
|
+
|
|
58
|
+
## ¿Por qué Intlayer es una buena alternativa a Phrase?
|
|
59
|
+
|
|
60
|
+
Intlayer es una solución nacida en la era de la IA, diseñada específicamente para el ecosistema moderno de JavaScript/TypeScript. Desafía el pesado modelo empresarial de Phrase con agilidad y transparencia.
|
|
61
|
+
|
|
62
|
+
1. **Transparencia de precios:** Phrase es conocido por sus precios Enterprise, que pueden ser opacos y costosos para empresas en crecimiento. Intlayer te permite usar tus propias API keys (OpenAI, Anthropic, etc.), asegurando que pagues las tarifas del mercado por la inteligencia en lugar de un recargo en la suscripción de la plataforma.
|
|
63
|
+
2. **Experiencia de desarrollador (DX):** Phrase depende en gran medida de herramientas CLI y llamadas a la API para sincronizar archivos. Intlayer se integra directamente en el bundler y el runtime. Esto significa que tus definiciones están fuertemente tipadas (TypeScript), y las claves faltantes se detectan en tiempo de compilación, no en producción.
|
|
64
|
+
3. **Velocidad de lanzamiento al mercado:** Intlayer elimina la "caja negra" del TMS. No envías archivos y esperas a que regresen. Generas traducciones al instante mediante AI en tu pipeline de CI o en tu entorno local, manteniendo el ciclo de desarrollo ajustado.
|
|
65
|
+
|
|
66
|
+
# Comparación lado a lado
|
|
67
|
+
|
|
68
|
+
| Característica | Phrase (TMS empresarial) | Intlayer (AI nativo) |
|
|
69
|
+
| :---------------------- | :----------------------------------------------------- | :----------------------------------------------------------- |
|
|
70
|
+
| **Filosofía principal** | Gobernanza empresarial y flujo de trabajo. | Gestiona la lógica de contenido y la generación por IA. |
|
|
71
|
+
| **Modelo de precios** | Empresa personalizada / por asiento (Alto). | Paga por tu propia inferencia (BYO Key). |
|
|
72
|
+
| **Integración** | Uso intensivo de API / CLI. | Integración profunda en el código (Declarativa). |
|
|
73
|
+
| **Actualizaciones** | Sincronización requerida / Dependiente de la pipeline. | Sincronización instantánea con la codebase o la app en vivo. |
|
|
74
|
+
| **Formatos de archivo** | Extremadamente amplio (Legado y documentos). | Web moderna (JSON, JS, TS). |
|
|
75
|
+
| **Pruebas** | Controles de QA / pasos de LQA. | CI / CLI / pruebas A/B. |
|
|
76
|
+
| **Alojamiento** | SaaS (Exclusivamente Enterprise). | Open Source y auto-hospedable (Docker). |
|
|
77
|
+
|
|
78
|
+
Intlayer ofrece una solución i18n completa e integral que permite una integración profunda de tu contenido. Tu contenido remoto puede sincronizarse directamente con tu codebase o con tu aplicación en vivo. En comparación, Phrase es una dependencia externa potente pero compleja que a menudo requiere gestores de localización dedicados para funcionar de forma eficaz.
|
|
79
|
+
|
|
80
|
+
Además, Intlayer puede utilizarse como una herramienta de Feature Flag o de pruebas A/B, permitiéndote testear diferentes variaciones de contenido de forma dinámica. Phrase está diseñado para garantizar la consistencia lingüística, mientras que Intlayer te ayuda a optimizar la conversión y la experiencia de usuario mediante datos dinámicos.
|
|
81
|
+
|
|
82
|
+
Aunque Phrase es indiscutible para necesidades empresariales complejas y multi-formato (por ejemplo, traducir PDFs, subtítulos y software simultáneamente), Intlayer es la opción superior para equipos de producto que construyen aplicaciones web y desean propiedad total, type safety y un flujo de trabajo moderno, AI-driven, sin la sobrecarga propia de las soluciones empresariales.
|
|
83
|
+
|
|
84
|
+
Finalmente, para quienes priorizan la soberanía y el control de los datos, Intlayer es open-source y puede ser self-hosted. Los archivos Docker están disponibles directamente en el repositorio, dándote la propiedad completa de tu infraestructura de localización—algo imposible con el ecosistema SaaS cerrado de Phrase.
|
|
@@ -31,7 +31,7 @@ history:
|
|
|
31
31
|
|
|
32
32
|
# Comment automatiser vos traductions JSON i18next avec Intlayer
|
|
33
33
|
|
|
34
|
-
<iframe title="Comment automatiser vos traductions JSON i18next avec Intlayer" class="m-auto aspect-
|
|
34
|
+
<iframe title="Comment automatiser vos traductions JSON i18next avec 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
|
## Qu'est-ce que Intlayer ?
|
|
37
37
|
|
|
@@ -27,7 +27,7 @@ history:
|
|
|
27
27
|
|
|
28
28
|
# Internationalisation Next.js (i18n) avec next-i18next et Intlayer
|
|
29
29
|
|
|
30
|
-
<iframe title="Comment automatiser vos traductions JSON next-i18next avec Intlayer" class="m-auto aspect-
|
|
30
|
+
<iframe title="Comment automatiser vos traductions JSON next-i18next avec 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
|
## Table des matières
|
|
33
33
|
|
|
@@ -26,7 +26,7 @@ history:
|
|
|
26
26
|
|
|
27
27
|
# Comment automatiser vos traductions JSON next-intl avec Intlayer
|
|
28
28
|
|
|
29
|
-
<iframe title="Comment automatiser vos traductions JSON next-intl avec Intlayer" class="m-auto aspect-
|
|
29
|
+
<iframe title="Comment automatiser vos traductions JSON next-intl avec 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
|
## Qu'est-ce qu'Intlayer ?
|
|
32
32
|
|
|
@@ -29,7 +29,7 @@ history:
|
|
|
29
29
|
|
|
30
30
|
# Comment automatiser vos traductions JSON react-i18next avec Intlayer
|
|
31
31
|
|
|
32
|
-
<iframe title="Comment automatiser vos traductions JSON react-i18next avec Intlayer" class="m-auto aspect-
|
|
32
|
+
<iframe title="Comment automatiser vos traductions JSON react-i18next avec 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
|
## Qu'est-ce que Intlayer ?
|
|
35
35
|
|