@intlayer/docs 7.0.1 → 7.0.2-canary.0

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.
Files changed (65) hide show
  1. package/blog/en/next-i18next_vs_next-intl_vs_intlayer.md +4 -11
  2. package/dist/cjs/common.cjs +5 -1
  3. package/dist/cjs/common.cjs.map +1 -1
  4. package/dist/esm/common.mjs +5 -1
  5. package/dist/esm/common.mjs.map +1 -1
  6. package/dist/types/common.d.ts.map +1 -1
  7. package/docs/ar/intlayer_with_nextjs_15.md +10 -6
  8. package/docs/ar/intlayer_with_nextjs_16.md +11 -7
  9. package/docs/de/intlayer_with_nextjs_15.md +10 -6
  10. package/docs/de/intlayer_with_nextjs_16.md +11 -7
  11. package/docs/en/CI_CD.md +4 -0
  12. package/docs/en/configuration.md +29 -42
  13. package/docs/en/formatters.md +4 -0
  14. package/docs/en/how_works_intlayer.md +4 -0
  15. package/docs/en/index.md +1 -0
  16. package/docs/en/intlayer_CMS.md +6 -0
  17. package/docs/en/intlayer_cli.md +8 -0
  18. package/docs/en/intlayer_with_nextjs_14.md +14 -6
  19. package/docs/en/intlayer_with_nextjs_15.md +14 -6
  20. package/docs/en/intlayer_with_nextjs_16.md +15 -7
  21. package/docs/en/intlayer_with_nextjs_page_router.md +4 -0
  22. package/docs/en/intlayer_with_nuxt.md +4 -0
  23. package/docs/en/intlayer_with_react_native+expo.md +7 -0
  24. package/docs/en/intlayer_with_react_router_v7.md +4 -0
  25. package/docs/en/intlayer_with_tanstack.md +4 -0
  26. package/docs/en/intlayer_with_vite+preact.md +4 -0
  27. package/docs/en/intlayer_with_vite+react.md +4 -0
  28. package/docs/en/intlayer_with_vite+solid.md +4 -0
  29. package/docs/en/intlayer_with_vite+svelte.md +4 -0
  30. package/docs/en/intlayer_with_vite+vue.md +4 -0
  31. package/docs/en/introduction.md +1 -0
  32. package/docs/en/roadmap.md +6 -0
  33. package/docs/en-GB/intlayer_with_nextjs_14.md +10 -6
  34. package/docs/en-GB/intlayer_with_nextjs_15.md +10 -6
  35. package/docs/en-GB/intlayer_with_nextjs_16.md +11 -7
  36. package/docs/es/intlayer_with_nextjs_14.md +11 -6
  37. package/docs/es/intlayer_with_nextjs_15.md +7 -4
  38. package/docs/es/intlayer_with_nextjs_16.md +11 -7
  39. package/docs/fr/intlayer_with_nextjs_15.md +10 -6
  40. package/docs/fr/intlayer_with_nextjs_16.md +12 -25
  41. package/docs/hi/intlayer_with_nextjs_15.md +10 -6
  42. package/docs/hi/intlayer_with_nextjs_16.md +11 -7
  43. package/docs/id/intlayer_with_nextjs_16.md +11 -7
  44. package/docs/it/intlayer_with_nextjs_15.md +10 -6
  45. package/docs/it/intlayer_with_nextjs_16.md +11 -7
  46. package/docs/ja/intlayer_with_nextjs_14.md +11 -6
  47. package/docs/ja/intlayer_with_nextjs_15.md +10 -6
  48. package/docs/ja/intlayer_with_nextjs_16.md +11 -7
  49. package/docs/ko/intlayer_with_nextjs_14.md +11 -6
  50. package/docs/ko/intlayer_with_nextjs_15.md +10 -6
  51. package/docs/ko/intlayer_with_nextjs_16.md +11 -7
  52. package/docs/pl/intlayer_with_nextjs_16.md +11 -7
  53. package/docs/pt/intlayer_with_nextjs_14.md +10 -7
  54. package/docs/pt/intlayer_with_nextjs_15.md +10 -6
  55. package/docs/pt/intlayer_with_nextjs_16.md +11 -7
  56. package/docs/ru/intlayer_with_nextjs_15.md +7 -4
  57. package/docs/ru/intlayer_with_nextjs_16.md +11 -7
  58. package/docs/tr/intlayer_with_nextjs_15.md +10 -6
  59. package/docs/tr/intlayer_with_nextjs_16.md +11 -7
  60. package/docs/vi/intlayer_with_nextjs_16.md +11 -7
  61. package/docs/zh/intlayer_with_nextjs_14.md +11 -6
  62. package/docs/zh/intlayer_with_nextjs_15.md +7 -4
  63. package/docs/zh/intlayer_with_nextjs_16.md +11 -7
  64. package/package.json +14 -14
  65. package/src/common.ts +7 -1
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  createdAt: 2024-12-06
3
- updatedAt: 2025-10-09
3
+ updatedAt: 2025-10-26
4
4
  title: Cách dịch ứng dụng Next.js 16 của bạn – Hướng dẫn i18n 2025
5
5
  description: Khám phá cách làm cho trang web Next.js 16 của bạn đa ngôn ngữ. Theo dõi tài liệu để quốc tế hóa (i18n) và dịch nó.
6
6
  keywords:
@@ -810,15 +810,17 @@ export const generateMetadata = async ({
810
810
  * ```
811
811
  */
812
812
  const multilingualUrls = getMultilingualUrls("/");
813
+ const localizedUrl =
814
+ multilingualUrls[locale as keyof typeof multilingualUrls];
813
815
 
814
816
  return {
815
817
  ...metadata,
816
818
  alternates: {
817
- canonical: multilingualUrls[locale as keyof typeof multilingualUrls],
819
+ canonical: localizedUrl,
818
820
  languages: { ...multilingualUrls, "x-default": "/" },
819
821
  },
820
822
  openGraph: {
821
- url: multilingualUrls[locale],
823
+ url: localizedUrl,
822
824
  },
823
825
  };
824
826
  };
@@ -850,15 +852,16 @@ export const generateMetadata = async ({ params }) => {
850
852
  * ```
851
853
  */
852
854
  const multilingualUrls = getMultilingualUrls("/");
855
+ const localizedUrl = multilingualUrls[locale];
853
856
 
854
857
  return {
855
858
  ...metadata,
856
859
  alternates: {
857
- canonical: multilingualUrls[locale],
860
+ canonical: localizedUrl,
858
861
  languages: { ...multilingualUrls, "x-default": "/" },
859
862
  },
860
863
  openGraph: {
861
- url: multilingualUrls[locale],
864
+ url: localizedUrl,
862
865
  },
863
866
  };
864
867
  };
@@ -890,15 +893,16 @@ const generateMetadata = async ({ params }) => {
890
893
  * ```
891
894
  */
892
895
  const multilingualUrls = getMultilingualUrls("/");
896
+ const localizedUrl = multilingualUrls[locale];
893
897
 
894
898
  return {
895
899
  ...metadata,
896
900
  alternates: {
897
- canonical: multilingualUrls[locale],
901
+ canonical: localizedUrl,
898
902
  languages: { ...multilingualUrls, "x-default": "/" },
899
903
  },
900
904
  openGraph: {
901
- url: multilingualUrls[locale],
905
+ url: localizedUrl,
902
906
  },
903
907
  };
904
908
  };
@@ -743,15 +743,17 @@ export const generateMetadata = ({
743
743
  * ```
744
744
  */
745
745
  const multilingualUrls = getMultilingualUrls("/");
746
+ const localizedUrl =
747
+ multilingualUrls[locale as keyof typeof multilingualUrls];
746
748
 
747
749
  return {
748
750
  ...metadata,
749
751
  alternates: {
750
- canonical: multilingualUrls[locale as keyof typeof multilingualUrls],
752
+ canonical: localizedUrl,
751
753
  languages: { ...multilingualUrls, "x-default": "/" },
752
754
  },
753
755
  openGraph: {
754
- url: multilingualUrls[locale],
756
+ url: localizedUrl,
755
757
  },
756
758
  };
757
759
  };
@@ -778,15 +780,17 @@ export const generateMetadata = ({ params: { locale } }) => {
778
780
  * ```
779
781
  */
780
782
  const multilingualUrls = getMultilingualUrls("/");
783
+ const localizedUrl =
784
+ multilingualUrls[locale];
781
785
 
782
786
  return {
783
787
  ...metadata,
784
788
  alternates: {
785
- canonical: multilingualUrls[locale],
789
+ canonical: localizedUrl,
786
790
  languages: { ...multilingualUrls, "x-default": "/" },
787
791
  },
788
792
  openGraph: {
789
- url: multilingualUrls[locale],
793
+ url: localizedUrl,
790
794
  },
791
795
  };
792
796
  };
@@ -816,15 +820,16 @@ const generateMetadata = ({ params: { locale } }) => {
816
820
  * ```
817
821
  */
818
822
  const multilingualUrls = getMultilingualUrls("/");
823
+ const localizedUrl = multilingualUrls[locale];
819
824
 
820
825
  return {
821
826
  ...metadata,
822
827
  alternates: {
823
- canonical: multilingualUrls[locale],
828
+ canonical: localizedUrl,
824
829
  languages: { ...multilingualUrls, "x-default": "/" },
825
830
  },
826
831
  openGraph: {
827
- url: multilingualUrls[locale],
832
+ url: localizedUrl,
828
833
  },
829
834
  };
830
835
  };
@@ -797,15 +797,17 @@ export const generateMetadata = async ({
797
797
  * ```
798
798
  */
799
799
  const multilingualUrls = getMultilingualUrls("/");
800
+ const localizedUrl =
801
+ multilingualUrls[locale as keyof typeof multilingualUrls];
800
802
 
801
803
  return {
802
804
  ...metadata,
803
805
  alternates: {
804
- canonical: multilingualUrls[locale as keyof typeof multilingualUrls],
806
+ canonical: localizedUrl,
805
807
  languages: { ...multilingualUrls, "x-default": "/" },
806
808
  },
807
809
  openGraph: {
808
- url: multilingualUrls[locale],
810
+ url: localizedUrl,
809
811
  },
810
812
  };
811
813
  };
@@ -876,15 +878,16 @@ const generateMetadata = async ({ params }) => {
876
878
  * ```
877
879
  */
878
880
  const multilingualUrls = getMultilingualUrls("/");
881
+ const localizedUrl = multilingualUrls[locale];
879
882
 
880
883
  return {
881
884
  ...metadata,
882
885
  alternates: {
883
- canonical: multilingualUrls[locale],
886
+ canonical: localizedUrl,
884
887
  languages: { ...multilingualUrls, "x-default": "/" },
885
888
  },
886
889
  openGraph: {
887
- url: multilingualUrls[locale],
890
+ url: localizedUrl,
888
891
  },
889
892
  };
890
893
  };
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  createdAt: 2025-10-25
3
- updatedAt: 2025-10-25
3
+ updatedAt: 2025-10-26
4
4
  title: 如何翻译您的 Next.js 16 应用 – 2025 年国际化 (i18n) 指南
5
5
  description: 了解如何让您的 Next.js 16 网站支持多语言。按照文档进行国际化 (i18n) 和翻译。
6
6
  keywords:
@@ -842,15 +842,17 @@ export const generateMetadata = async ({
842
842
  * ```
843
843
  */
844
844
  const multilingualUrls = getMultilingualUrls("/");
845
+ const localizedUrl =
846
+ multilingualUrls[locale as keyof typeof multilingualUrls];
845
847
 
846
848
  return {
847
849
  ...metadata,
848
850
  alternates: {
849
- canonical: multilingualUrls[locale as keyof typeof multilingualUrls],
851
+ canonical: localizedUrl,
850
852
  languages: { ...multilingualUrls, "x-default": "/" },
851
853
  },
852
854
  openGraph: {
853
- url: multilingualUrls[locale],
855
+ url: localizedUrl,
854
856
  },
855
857
  };
856
858
  };
@@ -882,15 +884,16 @@ export const generateMetadata = async ({ params }) => {
882
884
  * ```
883
885
  */
884
886
  const multilingualUrls = getMultilingualUrls("/");
887
+ const localizedUrl = multilingualUrls[locale];
885
888
 
886
889
  return {
887
890
  ...metadata,
888
891
  alternates: {
889
- canonical: multilingualUrls[locale],
892
+ canonical: localizedUrl,
890
893
  languages: { ...multilingualUrls, "x-default": "/" },
891
894
  },
892
895
  openGraph: {
893
- url: multilingualUrls[locale],
896
+ url: localizedUrl,
894
897
  },
895
898
  };
896
899
  };
@@ -922,15 +925,16 @@ const generateMetadata = async ({ params }) => {
922
925
  * ```
923
926
  */
924
927
  const multilingualUrls = getMultilingualUrls("/");
928
+ const localizedUrl = multilingualUrls[locale];
925
929
 
926
930
  return {
927
931
  ...metadata,
928
932
  alternates: {
929
- canonical: multilingualUrls[locale],
933
+ canonical: localizedUrl,
930
934
  languages: { ...multilingualUrls, "x-default": "/" },
931
935
  },
932
936
  openGraph: {
933
- url: multilingualUrls[locale],
937
+ url: localizedUrl,
934
938
  },
935
939
  };
936
940
  };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@intlayer/docs",
3
- "version": "7.0.1",
3
+ "version": "7.0.2-canary.0",
4
4
  "private": false,
5
5
  "description": "Intlayer documentation",
6
6
  "keywords": [
@@ -69,17 +69,17 @@
69
69
  "watch": "webpack --config ./webpack.config.ts --watch"
70
70
  },
71
71
  "dependencies": {
72
- "@intlayer/config": "7.0.1",
73
- "@intlayer/core": "7.0.1",
74
- "@intlayer/types": "7.0.1"
72
+ "@intlayer/config": "7.0.2-canary.0",
73
+ "@intlayer/core": "7.0.2-canary.0",
74
+ "@intlayer/types": "7.0.2-canary.0"
75
75
  },
76
76
  "devDependencies": {
77
- "@intlayer/api": "7.0.1",
78
- "@intlayer/cli": "7.0.1",
77
+ "@intlayer/api": "7.0.2-canary.0",
78
+ "@intlayer/cli": "7.0.2-canary.0",
79
79
  "@types/node": "24.9.1",
80
- "@utils/ts-config": "7.0.1",
81
- "@utils/ts-config-types": "7.0.1",
82
- "@utils/tsdown-config": "7.0.1",
80
+ "@utils/ts-config": "7.0.2-canary.0",
81
+ "@utils/ts-config-types": "7.0.2-canary.0",
82
+ "@utils/tsdown-config": "7.0.2-canary.0",
83
83
  "fast-glob": "3.3.3",
84
84
  "rimraf": "6.0.1",
85
85
  "tsdown": "0.15.9",
@@ -87,11 +87,11 @@
87
87
  "vitest": "4.0.3"
88
88
  },
89
89
  "peerDependencies": {
90
- "@intlayer/api": "7.0.1",
91
- "@intlayer/cli": "7.0.1",
92
- "@intlayer/config": "7.0.1",
93
- "@intlayer/core": "7.0.1",
94
- "@intlayer/types": "7.0.1"
90
+ "@intlayer/api": "7.0.2-canary.0",
91
+ "@intlayer/cli": "7.0.2-canary.0",
92
+ "@intlayer/config": "7.0.2-canary.0",
93
+ "@intlayer/core": "7.0.2-canary.0",
94
+ "@intlayer/types": "7.0.2-canary.0"
95
95
  },
96
96
  "engines": {
97
97
  "node": ">=14.18"
package/src/common.ts CHANGED
@@ -81,13 +81,19 @@ export const formatMetadata = (
81
81
  locale: LocalesValues = defaultLocale as LocalesValues
82
82
  ): FileMetadata => {
83
83
  const metadata = getMarkdownMetadata(file);
84
- const relativeUrl = join('/', ...(metadata.slugs ?? []));
84
+
85
+ const slugs = (metadata.slugs ?? []).map(String);
86
+ const keywords = (metadata.keywords ?? []).map(String);
87
+
88
+ const relativeUrl = join('/', ...slugs);
85
89
 
86
90
  const slicedDocKey = docKey.slice(1);
87
91
 
88
92
  return {
89
93
  ...metadata,
90
94
  docKey,
95
+ slugs,
96
+ keywords,
91
97
  githubUrl: `${GITHUB_URL_PREFIX}${slicedDocKey}`.replace(
92
98
  '/en/',
93
99
  `/${locale}/`