@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
@@ -746,15 +746,17 @@ export const generateMetadata = ({
746
746
  * ```
747
747
  */
748
748
  const multilingualUrls = getMultilingualUrls("/");
749
+ const localizedUrl =
750
+ multilingualUrls[locale as keyof typeof multilingualUrls];
749
751
 
750
752
  return {
751
753
  ...metadata,
752
754
  alternates: {
753
- canonical: multilingualUrls[locale as keyof typeof multilingualUrls],
755
+ canonical: localizedUrl,
754
756
  languages: { ...multilingualUrls, "x-default": "/" },
755
757
  },
756
758
  openGraph: {
757
- url: multilingualUrls[locale],
759
+ url: localizedUrl,
758
760
  },
759
761
  };
760
762
  };
@@ -781,15 +783,17 @@ export const generateMetadata = ({ params: { locale } }) => {
781
783
  * ```
782
784
  */
783
785
  const multilingualUrls = getMultilingualUrls("/");
786
+ const localizedUrl =
787
+ multilingualUrls[locale];
784
788
 
785
789
  return {
786
790
  ...metadata,
787
791
  alternates: {
788
- canonical: multilingualUrls[locale],
792
+ canonical: localizedUrl,
789
793
  languages: { ...multilingualUrls, "x-default": "/" },
790
794
  },
791
795
  openGraph: {
792
- url: multilingualUrls[locale],
796
+ url: localizedUrl,
793
797
  },
794
798
  };
795
799
  };
@@ -819,15 +823,16 @@ const generateMetadata = ({ params: { locale } }) => {
819
823
  * ```
820
824
  */
821
825
  const multilingualUrls = getMultilingualUrls("/");
826
+ const localizedUrl = multilingualUrls[locale];
822
827
 
823
828
  return {
824
829
  ...metadata,
825
830
  alternates: {
826
- canonical: multilingualUrls[locale],
831
+ canonical: localizedUrl,
827
832
  languages: { ...multilingualUrls, "x-default": "/" },
828
833
  },
829
834
  openGraph: {
830
- url: multilingualUrls[locale],
835
+ url: localizedUrl,
831
836
  },
832
837
  };
833
838
  };
@@ -813,15 +813,17 @@ export const generateMetadata = async ({
813
813
  * ```
814
814
  */
815
815
  const multilingualUrls = getMultilingualUrls("/");
816
+ const localizedUrl =
817
+ multilingualUrls[locale as keyof typeof multilingualUrls];
816
818
 
817
819
  return {
818
820
  ...metadata,
819
821
  alternates: {
820
- canonical: multilingualUrls[locale as keyof typeof multilingualUrls],
822
+ canonical: localizedUrl,
821
823
  languages: { ...multilingualUrls, "x-default": "/" },
822
824
  },
823
825
  openGraph: {
824
- url: multilingualUrls[locale],
826
+ url: localizedUrl,
825
827
  },
826
828
  };
827
829
  };
@@ -853,15 +855,16 @@ export const generateMetadata = async ({ params }) => {
853
855
  * ```
854
856
  */
855
857
  const multilingualUrls = getMultilingualUrls("/");
858
+ const localizedUrl = multilingualUrls[locale];
856
859
 
857
860
  return {
858
861
  ...metadata,
859
862
  alternates: {
860
- canonical: multilingualUrls[locale],
863
+ canonical: localizedUrl,
861
864
  languages: { ...multilingualUrls, "x-default": "/" },
862
865
  },
863
866
  openGraph: {
864
- url: multilingualUrls[locale],
867
+ url: localizedUrl,
865
868
  },
866
869
  };
867
870
  };
@@ -893,15 +896,16 @@ const generateMetadata = async ({ params }) => {
893
896
  * ```
894
897
  */
895
898
  const multilingualUrls = getMultilingualUrls("/");
899
+ const localizedUrl = multilingualUrls[locale];
896
900
 
897
901
  return {
898
902
  ...metadata,
899
903
  alternates: {
900
- canonical: multilingualUrls[locale],
904
+ canonical: localizedUrl,
901
905
  languages: { ...multilingualUrls, "x-default": "/" },
902
906
  },
903
907
  openGraph: {
904
- url: multilingualUrls[locale],
908
+ url: localizedUrl,
905
909
  },
906
910
  };
907
911
  };
@@ -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:
@@ -858,15 +858,17 @@ export const generateMetadata = async ({
858
858
  * ```
859
859
  */
860
860
  const multilingualUrls = getMultilingualUrls("/");
861
+ const localizedUrl =
862
+ multilingualUrls[locale as keyof typeof multilingualUrls];
861
863
 
862
864
  return {
863
865
  ...metadata,
864
866
  alternates: {
865
- canonical: multilingualUrls[locale as keyof typeof multilingualUrls],
867
+ canonical: localizedUrl,
866
868
  languages: { ...multilingualUrls, "x-default": "/" },
867
869
  },
868
870
  openGraph: {
869
- url: multilingualUrls[locale],
871
+ url: localizedUrl,
870
872
  },
871
873
  };
872
874
  };
@@ -898,15 +900,16 @@ export const generateMetadata = async ({ params }) => {
898
900
  * ```
899
901
  */
900
902
  const multilingualUrls = getMultilingualUrls("/");
903
+ const localizedUrl = multilingualUrls[locale];
901
904
 
902
905
  return {
903
906
  ...metadata,
904
907
  alternates: {
905
- canonical: multilingualUrls[locale],
908
+ canonical: localizedUrl,
906
909
  languages: { ...multilingualUrls, "x-default": "/" },
907
910
  },
908
911
  openGraph: {
909
- url: multilingualUrls[locale],
912
+ url: localizedUrl,
910
913
  },
911
914
  };
912
915
  };
@@ -938,15 +941,16 @@ const generateMetadata = async ({ params }) => {
938
941
  * ```
939
942
  */
940
943
  const multilingualUrls = getMultilingualUrls("/");
944
+ const localizedUrl = multilingualUrls[locale];
941
945
 
942
946
  return {
943
947
  ...metadata,
944
948
  alternates: {
945
- canonical: multilingualUrls[locale],
949
+ canonical: localizedUrl,
946
950
  languages: { ...multilingualUrls, "x-default": "/" },
947
951
  },
948
952
  openGraph: {
949
- url: multilingualUrls[locale],
953
+ url: localizedUrl,
950
954
  },
951
955
  };
952
956
  };
@@ -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: Jak przetłumaczyć swoją aplikację Next.js 16 – przewodnik i18n 2025
5
5
  description: Odkryj, jak uczynić swoją stronę Next.js 16 wielojęzyczną. Postępuj zgodnie z dokumentacją, aby zinternacjonalizować (i18n) i przetłumaczyć ją.
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
  };
@@ -634,6 +634,8 @@ export const generateMetadata = ({
634
634
  * ```
635
635
  */
636
636
  const multilingualUrls = getMultilingualUrls("/");
637
+ const localizedUrl =
638
+ multilingualUrls[locale as keyof typeof multilingualUrls];
637
639
 
638
640
  return {
639
641
  title: t<string>({
@@ -649,11 +651,11 @@ export const generateMetadata = ({
649
651
  pt: "Minha descrição",
650
652
  }),
651
653
  alternates: {
652
- canonical: multilingualUrls[locale as keyof typeof multilingualUrls],
654
+ canonical: localizedUrl,
653
655
  languages: { ...multilingualUrls, "x-default": "/" },
654
656
  },
655
657
  openGraph: {
656
- url: multilingualUrls[locale],
658
+ url: localizedUrl,
657
659
  },
658
660
  };
659
661
  };
@@ -683,7 +685,7 @@ export const generateMetadata = ({ params: { locale } }) => {
683
685
  * ```
684
686
  */
685
687
  const multilingualUrls = getMultilingualUrls("/");
686
-
688
+ const localizedUrl = multilingualUrls[locale];
687
689
  return {
688
690
  title: t({
689
691
  en: "My title",
@@ -698,11 +700,11 @@ export const generateMetadata = ({ params: { locale } }) => {
698
700
  pt: "Minha descrição",
699
701
  }),
700
702
  alternates: {
701
- canonical: multilingualUrls[locale],
703
+ canonical: localizedUrl,
702
704
  languages: { ...multilingualUrls, "x-default": "/" },
703
705
  },
704
706
  openGraph: {
705
- url: multilingualUrls[locale],
707
+ url: localizedUrl,
706
708
  },
707
709
  };
708
710
  };
@@ -732,6 +734,7 @@ module.exports.generateMetadata = ({ params: { locale } }) => {
732
734
  * ```
733
735
  */
734
736
  const multilingualUrls = getMultilingualUrls("/");
737
+ const localizedUrl = multilingualUrls[locale];
735
738
 
736
739
  return {
737
740
  title: t({
@@ -747,11 +750,11 @@ module.exports.generateMetadata = ({ params: { locale } }) => {
747
750
  pt: "Minha descrição",
748
751
  }),
749
752
  alternates: {
750
- canonical: multilingualUrls[locale],
753
+ canonical: localizedUrl,
751
754
  languages: { ...multilingualUrls, "x-default": "/" },
752
755
  },
753
756
  openGraph: {
754
- url: multilingualUrls[locale],
757
+ url: localizedUrl,
755
758
  },
756
759
  };
757
760
  };
@@ -773,15 +773,17 @@ export const generateMetadata = async ({
773
773
  * ```
774
774
  */
775
775
  const multilingualUrls = getMultilingualUrls("/");
776
+ const localizedUrl =
777
+ multilingualUrls[locale as keyof typeof multilingualUrls];
776
778
 
777
779
  return {
778
780
  ...metadata,
779
781
  alternates: {
780
- canonical: multilingualUrls[locale as keyof typeof multilingualUrls],
782
+ canonical: localizedUrl,
781
783
  languages: { ...multilingualUrls, "x-default": "/" },
782
784
  },
783
785
  openGraph: {
784
- url: multilingualUrls[locale],
786
+ url: localizedUrl,
785
787
  },
786
788
  };
787
789
  };
@@ -813,15 +815,16 @@ export const generateMetadata = async ({ params }) => {
813
815
  * ```
814
816
  */
815
817
  const multilingualUrls = getMultilingualUrls("/");
818
+ const localizedUrl = multilingualUrls[locale];
816
819
 
817
820
  return {
818
821
  ...metadata,
819
822
  alternates: {
820
- canonical: multilingualUrls[locale],
823
+ canonical: localizedUrl,
821
824
  languages: { ...multilingualUrls, "x-default": "/" },
822
825
  },
823
826
  openGraph: {
824
- url: multilingualUrls[locale],
827
+ url: localizedUrl,
825
828
  },
826
829
  };
827
830
  };
@@ -853,15 +856,16 @@ const generateMetadata = async ({ params }) => {
853
856
  * ```
854
857
  */
855
858
  const multilingualUrls = getMultilingualUrls("/");
859
+ const localizedUrl = multilingualUrls[locale];
856
860
 
857
861
  return {
858
862
  ...metadata,
859
863
  alternates: {
860
- canonical: multilingualUrls[locale],
864
+ canonical: localizedUrl,
861
865
  languages: { ...multilingualUrls, "x-default": "/" },
862
866
  },
863
867
  openGraph: {
864
- url: multilingualUrls[locale],
868
+ url: localizedUrl,
865
869
  },
866
870
  };
867
871
  };
@@ -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: Como traduzir sua aplicação Next.js 16 – guia i18n 2025
5
5
  description: Descubra como tornar seu site Next.js 16 multilíngue. Siga a documentação para internacionalizar (i18n) e traduzir.
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
  };
@@ -805,15 +805,17 @@ export const generateMetadata = async ({
805
805
  * ```
806
806
  */
807
807
  const multilingualUrls = getMultilingualUrls("/");
808
+ const localizedUrl =
809
+ multilingualUrls[locale as keyof typeof multilingualUrls];
808
810
 
809
811
  return {
810
812
  ...metadata,
811
813
  alternates: {
812
- canonical: multilingualUrls[locale as keyof typeof multilingualUrls],
814
+ canonical: localizedUrl,
813
815
  languages: { ...multilingualUrls, "x-default": "/" },
814
816
  },
815
817
  openGraph: {
816
- url: multilingualUrls[locale],
818
+ url: localizedUrl,
817
819
  },
818
820
  };
819
821
  };
@@ -884,15 +886,16 @@ const generateMetadata = async ({ params }) => {
884
886
  * ```
885
887
  */
886
888
  const multilingualUrls = getMultilingualUrls("/");
889
+ const localizedUrl = multilingualUrls[locale];
887
890
 
888
891
  return {
889
892
  ...metadata,
890
893
  alternates: {
891
- canonical: multilingualUrls[locale],
894
+ canonical: localizedUrl,
892
895
  languages: { ...multilingualUrls, "x-default": "/" },
893
896
  },
894
897
  openGraph: {
895
- url: multilingualUrls[locale],
898
+ url: localizedUrl,
896
899
  },
897
900
  };
898
901
  };
@@ -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 – руководство по i18n 2025
5
5
  description: Узнайте, как сделать ваш сайт на Next.js 16 многоязычным. Следуйте документации для интернационализации (i18n) и перевода.
6
6
  keywords:
@@ -823,15 +823,17 @@ export const generateMetadata = async ({
823
823
  * ```
824
824
  */
825
825
  const multilingualUrls = getMultilingualUrls("/");
826
+ const localizedUrl =
827
+ multilingualUrls[locale as keyof typeof multilingualUrls];
826
828
 
827
829
  return {
828
830
  ...metadata,
829
831
  alternates: {
830
- canonical: multilingualUrls[locale as keyof typeof multilingualUrls],
832
+ canonical: localizedUrl,
831
833
  languages: { ...multilingualUrls, "x-default": "/" },
832
834
  },
833
835
  openGraph: {
834
- url: multilingualUrls[locale],
836
+ url: localizedUrl,
835
837
  },
836
838
  };
837
839
  };
@@ -863,15 +865,16 @@ export const generateMetadata = async ({ params }) => {
863
865
  * ```
864
866
  */
865
867
  const multilingualUrls = getMultilingualUrls("/");
868
+ const localizedUrl = multilingualUrls[locale];
866
869
 
867
870
  return {
868
871
  ...metadata,
869
872
  alternates: {
870
- canonical: multilingualUrls[locale],
873
+ canonical: localizedUrl,
871
874
  languages: { ...multilingualUrls, "x-default": "/" },
872
875
  },
873
876
  openGraph: {
874
- url: multilingualUrls[locale],
877
+ url: localizedUrl,
875
878
  },
876
879
  };
877
880
  };
@@ -903,15 +906,16 @@ const generateMetadata = async ({ params }) => {
903
906
  * ```
904
907
  */
905
908
  const multilingualUrls = getMultilingualUrls("/");
909
+ const localizedUrl = multilingualUrls[locale];
906
910
 
907
911
  return {
908
912
  ...metadata,
909
913
  alternates: {
910
- canonical: multilingualUrls[locale],
914
+ canonical: localizedUrl,
911
915
  languages: { ...multilingualUrls, "x-default": "/" },
912
916
  },
913
917
  openGraph: {
914
- url: multilingualUrls[locale],
918
+ url: localizedUrl,
915
919
  },
916
920
  };
917
921
  };
@@ -769,15 +769,17 @@ export const generateMetadata = async ({
769
769
  * ```
770
770
  */
771
771
  const multilingualUrls = getMultilingualUrls("/");
772
+ const localizedUrl =
773
+ multilingualUrls[locale as keyof typeof multilingualUrls];
772
774
 
773
775
  return {
774
776
  ...metadata,
775
777
  alternates: {
776
- canonical: multilingualUrls[locale as keyof typeof multilingualUrls],
778
+ canonical: localizedUrl,
777
779
  languages: { ...multilingualUrls, "x-default": "/" },
778
780
  },
779
781
  openGraph: {
780
- url: multilingualUrls[locale],
782
+ url: localizedUrl,
781
783
  },
782
784
  };
783
785
  };
@@ -809,15 +811,16 @@ export const generateMetadata = async ({ params }) => {
809
811
  * ```
810
812
  */
811
813
  const multilingualUrls = getMultilingualUrls("/");
814
+ const localizedUrl = multilingualUrls[locale];
812
815
 
813
816
  return {
814
817
  ...metadata,
815
818
  alternates: {
816
- canonical: multilingualUrls[locale],
819
+ canonical: localizedUrl,
817
820
  languages: { ...multilingualUrls, "x-default": "/" },
818
821
  },
819
822
  openGraph: {
820
- url: multilingualUrls[locale],
823
+ url: localizedUrl,
821
824
  },
822
825
  };
823
826
  };
@@ -849,15 +852,16 @@ const generateMetadata = async ({ params }) => {
849
852
  * ```
850
853
  */
851
854
  const multilingualUrls = getMultilingualUrls("/");
855
+ const localizedUrl = multilingualUrls[locale];
852
856
 
853
857
  return {
854
858
  ...metadata,
855
859
  alternates: {
856
- canonical: multilingualUrls[locale],
860
+ canonical: localizedUrl,
857
861
  languages: { ...multilingualUrls, "x-default": "/" },
858
862
  },
859
863
  openGraph: {
860
- url: multilingualUrls[locale],
864
+ url: localizedUrl,
861
865
  },
862
866
  };
863
867
  };
@@ -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: Next.js 16 uygulamanızı nasıl çevirirsiniz – i18n rehberi 2025
5
5
  description: Next.js 16 web sitenizi çok dilli hale nasıl getireceğinizi keşfedin. Uluslararasılaştırma (i18n) ve çeviri için dokümantasyonu takip edin.
6
6
  keywords:
@@ -814,15 +814,17 @@ export const generateMetadata = async ({
814
814
  * ```
815
815
  */
816
816
  const multilingualUrls = getMultilingualUrls("/");
817
+ const localizedUrl =
818
+ multilingualUrls[locale as keyof typeof multilingualUrls];
817
819
 
818
820
  return {
819
821
  ...metadata,
820
822
  alternates: {
821
- canonical: multilingualUrls[locale as keyof typeof multilingualUrls],
823
+ canonical: localizedUrl,
822
824
  languages: { ...multilingualUrls, "x-default": "/" },
823
825
  },
824
826
  openGraph: {
825
- url: multilingualUrls[locale],
827
+ url: localizedUrl,
826
828
  },
827
829
  };
828
830
  };
@@ -854,15 +856,16 @@ export const generateMetadata = async ({ params }) => {
854
856
  * ```
855
857
  */
856
858
  const multilingualUrls = getMultilingualUrls("/");
859
+ const localizedUrl = multilingualUrls[locale];
857
860
 
858
861
  return {
859
862
  ...metadata,
860
863
  alternates: {
861
- canonical: multilingualUrls[locale],
864
+ canonical: localizedUrl,
862
865
  languages: { ...multilingualUrls, "x-default": "/" },
863
866
  },
864
867
  openGraph: {
865
- url: multilingualUrls[locale],
868
+ url: localizedUrl,
866
869
  },
867
870
  };
868
871
  };
@@ -894,15 +897,16 @@ const generateMetadata = async ({ params }) => {
894
897
  * ```
895
898
  */
896
899
  const multilingualUrls = getMultilingualUrls("/");
900
+ const localizedUrl = multilingualUrls[locale];
897
901
 
898
902
  return {
899
903
  ...metadata,
900
904
  alternates: {
901
- canonical: multilingualUrls[locale],
905
+ canonical: localizedUrl,
902
906
  languages: { ...multilingualUrls, "x-default": "/" },
903
907
  },
904
908
  openGraph: {
905
- url: multilingualUrls[locale],
909
+ url: localizedUrl,
906
910
  },
907
911
  };
908
912
  };