@intlayer/docs 7.1.0-canary.2 → 7.1.1-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 (176) hide show
  1. package/blog/ar/internationalization_and_SEO.md +0 -4
  2. package/blog/ar/next-i18next_vs_next-intl_vs_intlayer.md +2 -2
  3. package/blog/de/internationalization_and_SEO.md +0 -2
  4. package/blog/en/internationalization_and_SEO.md +0 -2
  5. package/blog/en/next-i18next_vs_next-intl_vs_intlayer.md +2 -2
  6. package/blog/en-GB/internationalization_and_SEO.md +0 -2
  7. package/blog/es/internationalization_and_SEO.md +0 -4
  8. package/blog/fr/internationalization_and_SEO.md +0 -2
  9. package/blog/hi/internationalization_and_SEO.md +0 -2
  10. package/blog/id/next-i18next_vs_next-intl_vs_intlayer.md +2 -2
  11. package/blog/it/internationalization_and_SEO.md +0 -2
  12. package/blog/ja/internationalization_and_SEO.md +0 -2
  13. package/blog/ko/internationalization_and_SEO.md +0 -2
  14. package/blog/pl/next-i18next_vs_next-intl_vs_intlayer.md +2 -2
  15. package/blog/pt/internationalization_and_SEO.md +0 -4
  16. package/blog/ru/internationalization_and_SEO.md +0 -4
  17. package/blog/vi/next-i18next_vs_next-intl_vs_intlayer.md +2 -2
  18. package/blog/zh/internationalization_and_SEO.md +0 -4
  19. package/docs/ar/intlayer_with_nextjs_14.md +9 -9
  20. package/docs/ar/intlayer_with_nextjs_15.md +9 -8
  21. package/docs/ar/intlayer_with_nextjs_16.md +2 -56
  22. package/docs/ar/intlayer_with_nextjs_page_router.md +7 -10
  23. package/docs/ar/intlayer_with_react_router_v7.md +6 -6
  24. package/docs/ar/intlayer_with_tanstack.md +46 -31
  25. package/docs/ar/intlayer_with_vite+preact.md +7 -7
  26. package/docs/ar/intlayer_with_vite+react.md +7 -7
  27. package/docs/ar/intlayer_with_vite+vue.md +9 -9
  28. package/docs/de/intlayer_with_nextjs_14.md +9 -9
  29. package/docs/de/intlayer_with_nextjs_15.md +9 -8
  30. package/docs/de/intlayer_with_nextjs_page_router.md +7 -10
  31. package/docs/de/intlayer_with_react_router_v7.md +6 -6
  32. package/docs/de/intlayer_with_tanstack.md +46 -31
  33. package/docs/de/intlayer_with_vite+preact.md +7 -7
  34. package/docs/de/intlayer_with_vite+react.md +7 -7
  35. package/docs/de/intlayer_with_vite+vue.md +9 -9
  36. package/docs/en/interest_of_intlayer.md +1 -1
  37. package/docs/en/intlayer_with_nextjs_page_router.md +7 -10
  38. package/docs/en/intlayer_with_react_router_v7.md +6 -6
  39. package/docs/en/intlayer_with_tanstack.md +57 -33
  40. package/docs/en/intlayer_with_vite+preact.md +8 -8
  41. package/docs/en/intlayer_with_vite+react.md +8 -8
  42. package/docs/en/intlayer_with_vite+vue.md +8 -8
  43. package/docs/en/releases/v6.md +1 -1
  44. package/docs/en-GB/intlayer_with_nextjs_14.md +9 -9
  45. package/docs/en-GB/intlayer_with_nextjs_15.md +9 -8
  46. package/docs/en-GB/intlayer_with_nextjs_page_router.md +7 -10
  47. package/docs/en-GB/intlayer_with_react_router_v7.md +6 -6
  48. package/docs/en-GB/intlayer_with_tanstack.md +46 -31
  49. package/docs/en-GB/intlayer_with_vite+preact.md +7 -7
  50. package/docs/en-GB/intlayer_with_vite+react.md +7 -7
  51. package/docs/en-GB/intlayer_with_vite+vue.md +9 -9
  52. package/docs/es/intlayer_with_nextjs_14.md +9 -9
  53. package/docs/es/intlayer_with_nextjs_15.md +9 -8
  54. package/docs/es/intlayer_with_nextjs_page_router.md +7 -10
  55. package/docs/es/intlayer_with_react_router_v7.md +6 -6
  56. package/docs/es/intlayer_with_tanstack.md +15 -10
  57. package/docs/es/intlayer_with_vite+preact.md +7 -7
  58. package/docs/es/intlayer_with_vite+react.md +7 -7
  59. package/docs/es/intlayer_with_vite+vue.md +9 -9
  60. package/docs/fr/intlayer_with_nextjs_14.md +9 -9
  61. package/docs/fr/intlayer_with_nextjs_15.md +9 -8
  62. package/docs/fr/intlayer_with_nextjs_page_router.md +7 -10
  63. package/docs/fr/intlayer_with_react_router_v7.md +6 -6
  64. package/docs/fr/intlayer_with_tanstack.md +46 -31
  65. package/docs/fr/intlayer_with_vite+preact.md +7 -7
  66. package/docs/fr/intlayer_with_vite+react.md +7 -7
  67. package/docs/fr/intlayer_with_vite+vue.md +9 -9
  68. package/docs/hi/intlayer_with_nextjs_14.md +9 -9
  69. package/docs/hi/intlayer_with_nextjs_15.md +9 -8
  70. package/docs/hi/intlayer_with_nextjs_page_router.md +7 -10
  71. package/docs/hi/intlayer_with_react_router_v7.md +6 -6
  72. package/docs/hi/intlayer_with_tanstack.md +15 -10
  73. package/docs/hi/intlayer_with_vite+preact.md +7 -7
  74. package/docs/hi/intlayer_with_vite+react.md +7 -7
  75. package/docs/hi/intlayer_with_vite+vue.md +9 -9
  76. package/docs/id/interest_of_intlayer.md +1 -1
  77. package/docs/id/intlayer_with_nextjs_page_router.md +7 -10
  78. package/docs/id/intlayer_with_react_router_v7.md +6 -6
  79. package/docs/id/intlayer_with_tanstack.md +15 -10
  80. package/docs/id/intlayer_with_vite+preact.md +9 -9
  81. package/docs/id/intlayer_with_vite+react.md +8 -8
  82. package/docs/id/intlayer_with_vite+vue.md +8 -8
  83. package/docs/id/releases/v6.md +1 -1
  84. package/docs/it/intlayer_with_nextjs_14.md +9 -9
  85. package/docs/it/intlayer_with_nextjs_15.md +9 -8
  86. package/docs/it/intlayer_with_nextjs_page_router.md +7 -10
  87. package/docs/it/intlayer_with_react_router_v7.md +6 -6
  88. package/docs/it/intlayer_with_tanstack.md +46 -31
  89. package/docs/it/intlayer_with_vite+preact.md +7 -7
  90. package/docs/it/intlayer_with_vite+react.md +7 -7
  91. package/docs/it/intlayer_with_vite+vue.md +9 -9
  92. package/docs/ja/intlayer_with_nextjs_14.md +9 -9
  93. package/docs/ja/intlayer_with_nextjs_15.md +9 -8
  94. package/docs/ja/intlayer_with_nextjs_page_router.md +7 -10
  95. package/docs/ja/intlayer_with_react_router_v7.md +6 -6
  96. package/docs/ja/intlayer_with_tanstack.md +16 -10
  97. package/docs/ja/intlayer_with_vite+preact.md +7 -7
  98. package/docs/ja/intlayer_with_vite+react.md +7 -7
  99. package/docs/ja/intlayer_with_vite+vue.md +9 -9
  100. package/docs/ko/intlayer_with_nextjs_14.md +9 -9
  101. package/docs/ko/intlayer_with_nextjs_15.md +9 -8
  102. package/docs/ko/intlayer_with_nextjs_page_router.md +7 -10
  103. package/docs/ko/intlayer_with_react_router_v7.md +6 -6
  104. package/docs/ko/intlayer_with_tanstack.md +46 -31
  105. package/docs/ko/intlayer_with_vite+preact.md +7 -7
  106. package/docs/ko/intlayer_with_vite+react.md +7 -7
  107. package/docs/ko/intlayer_with_vite+vue.md +9 -9
  108. package/docs/pl/interest_of_intlayer.md +1 -1
  109. package/docs/pl/intlayer_with_nextjs_page_router.md +7 -10
  110. package/docs/pl/intlayer_with_react_router_v7.md +6 -6
  111. package/docs/pl/intlayer_with_tanstack.md +15 -10
  112. package/docs/pl/intlayer_with_vite+preact.md +10 -10
  113. package/docs/pl/intlayer_with_vite+react.md +8 -8
  114. package/docs/pl/intlayer_with_vite+vue.md +8 -8
  115. package/docs/pl/releases/v6.md +1 -1
  116. package/docs/pt/intlayer_with_nextjs_14.md +9 -9
  117. package/docs/pt/intlayer_with_nextjs_15.md +9 -8
  118. package/docs/pt/intlayer_with_nextjs_page_router.md +7 -10
  119. package/docs/pt/intlayer_with_react_router_v7.md +2 -2
  120. package/docs/pt/intlayer_with_tanstack.md +46 -31
  121. package/docs/pt/intlayer_with_vite+preact.md +7 -7
  122. package/docs/pt/intlayer_with_vite+react.md +7 -7
  123. package/docs/pt/intlayer_with_vite+vue.md +9 -9
  124. package/docs/ru/intlayer_with_nextjs_14.md +9 -9
  125. package/docs/ru/intlayer_with_nextjs_15.md +9 -8
  126. package/docs/ru/intlayer_with_nextjs_page_router.md +7 -10
  127. package/docs/ru/intlayer_with_react_router_v7.md +6 -6
  128. package/docs/ru/intlayer_with_tanstack.md +15 -10
  129. package/docs/ru/intlayer_with_vite+preact.md +7 -7
  130. package/docs/ru/intlayer_with_vite+react.md +7 -7
  131. package/docs/ru/intlayer_with_vite+vue.md +9 -9
  132. package/docs/tr/interest_of_intlayer.md +1 -1
  133. package/docs/tr/intlayer_with_nextjs_15.md +9 -8
  134. package/docs/tr/intlayer_with_nextjs_page_router.md +7 -10
  135. package/docs/tr/intlayer_with_react_router_v7.md +6 -6
  136. package/docs/tr/intlayer_with_tanstack.md +46 -31
  137. package/docs/tr/intlayer_with_vite+preact.md +8 -8
  138. package/docs/tr/intlayer_with_vite+react.md +8 -8
  139. package/docs/tr/intlayer_with_vite+vue.md +8 -8
  140. package/docs/vi/interest_of_intlayer.md +1 -1
  141. package/docs/vi/intlayer_with_nextjs_15.md +1 -0
  142. package/docs/vi/intlayer_with_nextjs_page_router.md +7 -10
  143. package/docs/vi/intlayer_with_react_router_v7.md +6 -6
  144. package/docs/vi/intlayer_with_tanstack.md +46 -31
  145. package/docs/vi/intlayer_with_vite+preact.md +9 -9
  146. package/docs/vi/intlayer_with_vite+react.md +8 -8
  147. package/docs/vi/intlayer_with_vite+vue.md +8 -8
  148. package/docs/vi/releases/v6.md +1 -1
  149. package/docs/zh/intlayer_with_nextjs_14.md +9 -9
  150. package/docs/zh/intlayer_with_nextjs_15.md +9 -8
  151. package/docs/zh/intlayer_with_nextjs_page_router.md +7 -10
  152. package/docs/zh/intlayer_with_react_router_v7.md +6 -6
  153. package/docs/zh/intlayer_with_tanstack.md +14 -8
  154. package/docs/zh/intlayer_with_vite+preact.md +7 -7
  155. package/docs/zh/intlayer_with_vite+react.md +7 -7
  156. package/docs/zh/intlayer_with_vite+vue.md +7 -7
  157. package/frequent_questions/ar/domain_routing.md +1 -1
  158. package/frequent_questions/de/domain_routing.md +1 -1
  159. package/frequent_questions/en/domain_routing.md +1 -1
  160. package/frequent_questions/en/package_version_error.md +29 -1
  161. package/frequent_questions/en-GB/domain_routing.md +1 -1
  162. package/frequent_questions/es/domain_routing.md +1 -1
  163. package/frequent_questions/fr/domain_routing.md +1 -1
  164. package/frequent_questions/hi/domain_routing.md +1 -1
  165. package/frequent_questions/id/domain_routing.md +1 -1
  166. package/frequent_questions/it/domain_routing.md +1 -1
  167. package/frequent_questions/it/package_version_error.md +4 -4
  168. package/frequent_questions/ja/domain_routing.md +1 -1
  169. package/frequent_questions/ko/domain_routing.md +1 -1
  170. package/frequent_questions/pl/domain_routing.md +1 -1
  171. package/frequent_questions/pt/domain_routing.md +1 -1
  172. package/frequent_questions/ru/domain_routing.md +1 -1
  173. package/frequent_questions/tr/domain_routing.md +1 -1
  174. package/frequent_questions/vi/domain_routing.md +1 -1
  175. package/frequent_questions/zh/domain_routing.md +1 -1
  176. package/package.json +7 -14
@@ -699,40 +699,40 @@ import LocaleSwitcher from "@components/LocaleSwitcher.vue";
699
699
  </template>
700
700
  ```
701
701
 
702
- Secara paralel, Anda juga dapat menggunakan `intlayerMiddleware` untuk menambahkan routing sisi server ke aplikasi Anda. Plugin ini secara otomatis akan mendeteksi locale saat ini berdasarkan URL dan mengatur cookie locale yang sesuai. Jika tidak ada locale yang ditentukan, plugin akan menentukan locale yang paling tepat berdasarkan preferensi bahasa browser pengguna. Jika tidak ada locale yang terdeteksi, maka akan mengarahkan ulang ke locale default.
702
+ Secara paralel, Anda juga dapat menggunakan `intlayerProxy` untuk menambahkan routing sisi server ke aplikasi Anda. Plugin ini secara otomatis akan mendeteksi locale saat ini berdasarkan URL dan mengatur cookie locale yang sesuai. Jika tidak ada locale yang ditentukan, plugin akan menentukan locale yang paling tepat berdasarkan preferensi bahasa browser pengguna. Jika tidak ada locale yang terdeteksi, maka akan mengarahkan ulang ke locale default.
703
703
 
704
- > Perlu dicatat bahwa untuk menggunakan `intlayerMiddleware` dalam produksi, Anda perlu memindahkan paket `vite-intlayer` dari `devDependencies` ke `dependencies`.
704
+ > Perlu dicatat bahwa untuk menggunakan `intlayerProxy` dalam produksi, Anda perlu memindahkan paket `vite-intlayer` dari `devDependencies` ke `dependencies`.
705
705
 
706
706
  ```typescript {3,7} fileName="vite.config.ts" codeFormat="typescript"
707
707
  import { defineConfig } from "vite";
708
708
  import vue from "@vitejs/plugin-vue";
709
- import { intlayer, intlayerMiddleware } from "vite-intlayer";
709
+ import { intlayer, intlayerProxy } from "vite-intlayer";
710
710
 
711
711
  // https://vitejs.dev/config/
712
712
  export default defineConfig({
713
- plugins: [vue(), intlayer(), intlayerMiddleware()],
713
+ plugins: [vue(), intlayer(), intlayerProxy()],
714
714
  });
715
715
  ```
716
716
 
717
717
  ```javascript {3,7} fileName="vite.config.mjs" codeFormat="esm"
718
718
  import { defineConfig } from "vite";
719
719
  import vue from "@vitejs/plugin-vue";
720
- import { intlayer, intlayerMiddleware } from "vite-intlayer";
720
+ import { intlayer, intlayerProxy } from "vite-intlayer";
721
721
 
722
722
  // https://vitejs.dev/config/
723
723
  export default defineConfig({
724
- plugins: [vue(), intlayer(), intlayerMiddleware()],
724
+ plugins: [vue(), intlayer(), intlayerProxy()],
725
725
  });
726
726
  ```
727
727
 
728
728
  ```javascript {3,7} fileName="vite.config.cjs" codeFormat="commonjs"
729
729
  const { defineConfig } = require("vite");
730
730
  const vue = require("@vitejs/plugin-vue");
731
- const { intlayer, intlayerMiddleware } = require("vite-intlayer");
731
+ const { intlayer, intlayerProxy } = require("vite-intlayer");
732
732
 
733
733
  // https://vitejs.dev/config/
734
734
  module.exports = defineConfig({
735
- plugins: [vue(), intlayer(), intlayerMiddleware()],
735
+ plugins: [vue(), intlayer(), intlayerProxy()],
736
736
  });
737
737
  ```
738
738
 
@@ -277,7 +277,7 @@ Untuk mengatasinya, kami menghapus perintah `intlayer watch`, dan menggunakan op
277
277
  - Gunakan opsi global baru `content.autoFill` untuk menghasilkan terjemahan yang hilang secara massal.
278
278
  - Gunakan `npx intlayer content test` untuk memeriksa PR terkait terjemahan yang hilang.
279
279
  - Untuk diagnostik yang lebih rinci, atur `log.mode = 'verbose'`.
280
- - Gunakan `intlayer` menggantikan `intlayerPlugin` dan `intlayerMiddleware` menggantikan `intlayerMiddlewarePlugin` dalam konfigurasi Vite Anda.
280
+ - Gunakan `intlayer` menggantikan `intlayerPlugin` dan `intlayerProxy` menggantikan `intlayerProxyPlugin` dalam konfigurasi Vite Anda.
281
281
 
282
282
  ---
283
283
 
@@ -925,8 +925,8 @@ import { type FC } from "react";
925
925
  import Link from "next/link";
926
926
 
927
927
  const LocaleSwitcher: FC = () => {
928
- const { locale, pathWithoutLocale, availableLocales } = useLocale();
929
- const { setLocaleCookie } = useLocaleCookie();
928
+ const { locale, pathWithoutLocale, availableLocales, setLocale } =
929
+ useLocale();
930
930
 
931
931
  return (
932
932
  <div>
@@ -938,7 +938,7 @@ const LocaleSwitcher: FC = () => {
938
938
  hrefLang={localeItem}
939
939
  key={localeItem}
940
940
  aria-current={locale === localeItem ? "page" : undefined}
941
- onClick={() => setLocaleCookie(localeItem)}
941
+ onClick={() => setLocale(localeItem)}
942
942
  >
943
943
  <span>
944
944
  {/* Lingua - es. FR */}
@@ -977,8 +977,8 @@ import { useLocale } from "next-intlayer";
977
977
  import Link from "next/link";
978
978
 
979
979
  const LocaleSwitcher = () => {
980
- const { locale, pathWithoutLocale, availableLocales } = useLocale();
981
- const { setLocaleCookie } = useLocaleCookie();
980
+ const { locale, pathWithoutLocale, availableLocales, setLocale } =
981
+ useLocale();
982
982
 
983
983
  return (
984
984
  <div>
@@ -990,7 +990,7 @@ const LocaleSwitcher = () => {
990
990
  hrefLang={localeItem}
991
991
  key={localeItem}
992
992
  aria-current={locale === localeItem ? "page" : undefined}
993
- onClick={() => setLocaleCookie(localeItem)}
993
+ onClick={() => setLocale(localeItem)}
994
994
  >
995
995
  <span>
996
996
  {/* Lingua - es. FR */}
@@ -1029,8 +1029,8 @@ const { useLocale } = require("next-intlayer");
1029
1029
  const Link = require("next/link");
1030
1030
 
1031
1031
  const LocaleSwitcher = () => {
1032
- const { locale, pathWithoutLocale, availableLocales } = useLocale();
1033
- const { setLocaleCookie } = useLocaleCookie();
1032
+ const { locale, pathWithoutLocale, availableLocales, setLocale } =
1033
+ useLocale();
1034
1034
 
1035
1035
  return (
1036
1036
  <div>
@@ -1042,7 +1042,7 @@ const LocaleSwitcher = () => {
1042
1042
  hrefLang={localeItem}
1043
1043
  key={localeItem}
1044
1044
  aria-current={locale === localeItem ? "page" : undefined}
1045
- onClick={() => setLocaleCookie(localeItem)}
1045
+ onClick={() => setLocale(localeItem)}
1046
1046
  >
1047
1047
  <span>
1048
1048
  {/* Lingua - es. FR */}
@@ -1175,8 +1175,8 @@ import { useLocale } from "next-intlayer";
1175
1175
  import Link from "next/link";
1176
1176
 
1177
1177
  export const LocaleSwitcher: FC = () => {
1178
- const { locale, pathWithoutLocale, availableLocales } = useLocale();
1179
- const { setLocaleCookie } = useLocaleCookie();
1178
+ const { locale, pathWithoutLocale, availableLocales, setLocale } =
1179
+ useLocale();
1180
1180
 
1181
1181
  return (
1182
1182
  <div>
@@ -1188,7 +1188,7 @@ export const LocaleSwitcher: FC = () => {
1188
1188
  hrefLang={localeItem}
1189
1189
  key={localeItem}
1190
1190
  aria-current={locale === localeItem ? "page" : undefined}
1191
- onClick={() => setLocaleCookie(localeItem)}
1191
+ onClick={() => setLocale(localeItem)}
1192
1192
  >
1193
1193
  <span>
1194
1194
  {/* Località - es. FR */}
@@ -1227,8 +1227,8 @@ import { useLocale } from "next-intlayer";
1227
1227
  import Link from "next/link";
1228
1228
 
1229
1229
  export const LocaleSwitcher = () => {
1230
- const { locale, pathWithoutLocale, availableLocales } = useLocale();
1231
- const { setLocaleCookie } = useLocaleCookie();
1230
+ const { locale, pathWithoutLocale, availableLocales, setLocale } =
1231
+ useLocale();
1232
1232
 
1233
1233
  return (
1234
1234
  <div>
@@ -1240,7 +1240,7 @@ export const LocaleSwitcher = () => {
1240
1240
  hrefLang={localeItem}
1241
1241
  key={localeItem}
1242
1242
  aria-current={locale === localeItem ? "page" : undefined}
1243
- onClick={() => setLocaleCookie(localeItem)}
1243
+ onClick={() => setLocale(localeItem)}
1244
1244
  >
1245
1245
  <span>
1246
1246
  {/* Località - es. FR */}
@@ -1279,7 +1279,8 @@ const { useLocale } = require("next-intlayer");
1279
1279
  const Link = require("next/link");
1280
1280
 
1281
1281
  export const LocaleSwitcher = () => {
1282
- const { locale, pathWithoutLocale, availableLocales } = useLocale();
1282
+ const { locale, pathWithoutLocale, availableLocales, setLocale } =
1283
+ useLocale();
1283
1284
 
1284
1285
  return (
1285
1286
  <div>
@@ -1291,7 +1292,7 @@ export const LocaleSwitcher = () => {
1291
1292
  hrefLang={localeItem}
1292
1293
  key={localeItem}
1293
1294
  aria-current={locale === localeItem ? "page" : undefined}
1294
- onClick={() => setLocaleCookie(localeItem)}
1295
+ onClick={() => setLocale(localeItem)}
1295
1296
  >
1296
1297
  <span>
1297
1298
  {/* Località - es. FR */}
@@ -151,7 +151,7 @@ export default withIntlayer(nextConfig);
151
151
  Configura il middleware per rilevare automaticamente e gestire la lingua preferita dall'utente:
152
152
 
153
153
  ```typescript fileName="src/middleware.ts" codeFormat="typescript"
154
- export { intlayerMiddleware as middleware } from "next-intlayer/middleware";
154
+ export { intlayerProxy as middleware } from "next-intlayer/middleware";
155
155
 
156
156
  export const config = {
157
157
  matcher:
@@ -160,7 +160,7 @@ export const config = {
160
160
  ```
161
161
 
162
162
  ```javascript fileName="src/middleware.mjs" codeFormat="esm"
163
- export { intlayerMiddleware as middleware } from "next-intlayer/middleware";
163
+ export { intlayerProxy as middleware } from "next-intlayer/middleware";
164
164
 
165
165
  export const config = {
166
166
  matcher:
@@ -169,14 +169,14 @@ export const config = {
169
169
  ```
170
170
 
171
171
  ```javascript fileName="src/middleware.cjs" codeFormat="commonjs"
172
- const { intlayerMiddleware } = require("next-intlayer/middleware");
172
+ const { intlayerProxy } = require("next-intlayer/middleware");
173
173
 
174
174
  const config = {
175
175
  matcher:
176
176
  "/((?!api|static|assets|robots|sitemap|sw|service-worker|manifest|.*\\..*|_next).*)",
177
177
  };
178
178
 
179
- module.exports = { middleware: intlayerMiddleware, config };
179
+ module.exports = { middleware: intlayerProxy, config };
180
180
  ```
181
181
 
182
182
  > Adatta il parametro `matcher` per corrispondere alle rotte della tua applicazione. Per maggiori dettagli, consulta la [documentazione di Next.js sulla configurazione del matcher](https://nextjs.org/docs/app/building-your-application/routing/middleware).
@@ -1097,7 +1097,6 @@ import Link from "next/link";
1097
1097
 
1098
1098
  const LocaleSwitcher: FC = () => {
1099
1099
  const { locale, pathWithoutLocale, availableLocales } = useLocalePageRouter();
1100
- const { setLocaleCookie } = useLocaleCookie();
1101
1100
 
1102
1101
  return (
1103
1102
  <div>
@@ -1109,7 +1108,7 @@ const LocaleSwitcher: FC = () => {
1109
1108
  hrefLang={localeItem}
1110
1109
  key={localeItem}
1111
1110
  aria-current={locale === localeItem ? "page" : undefined}
1112
- onClick={() => setLocaleCookie(localeItem)}
1111
+ onClick={() => setLocale(localeItem)}
1113
1112
  >
1114
1113
  <span>
1115
1114
  {/* Locale - es. FR */}
@@ -1147,7 +1146,6 @@ import Link from "next/link";
1147
1146
 
1148
1147
  const LocaleSwitcher = () => {
1149
1148
  const { locale, pathWithoutLocale, availableLocales } = useLocalePageRouter();
1150
- const { setLocaleCookie } = useLocaleCookie();
1151
1149
 
1152
1150
  return (
1153
1151
  <div>
@@ -1159,7 +1157,7 @@ const LocaleSwitcher = () => {
1159
1157
  hrefLang={localeItem}
1160
1158
  key={localeItem}
1161
1159
  aria-current={locale === localeItem ? "page" : undefined}
1162
- onClick={() => setLocaleCookie(localeItem)}
1160
+ onClick={() => setLocale(localeItem)}
1163
1161
  >
1164
1162
  <span>
1165
1163
  {/* Località - es. FR */}
@@ -1197,7 +1195,6 @@ const Link = require("next/link");
1197
1195
 
1198
1196
  const LocaleSwitcher = () => {
1199
1197
  const { locale, pathWithoutLocale, availableLocales } = useLocalePageRouter();
1200
- const { setLocaleCookie } = useLocaleCookie();
1201
1198
 
1202
1199
  return (
1203
1200
  <select>
@@ -1207,7 +1204,7 @@ const LocaleSwitcher = () => {
1207
1204
  href={getLocalizedUrl(pathWithoutLocale, localeItem)}
1208
1205
  hrefLang={localeItem}
1209
1206
  aria-current={locale === localeItem ? "page" : undefined}
1210
- onClick={() => setLocaleCookie(localeItem)}
1207
+ onClick={() => setLocale(localeItem)}
1211
1208
  >
1212
1209
  <span>
1213
1210
  {/* Località - es. FR */}
@@ -318,7 +318,7 @@ import {
318
318
  getLocalizedUrl,
319
319
  getPathWithoutLocale,
320
320
  } from "intlayer";
321
- import { setLocaleCookie, useIntlayer, useLocale } from "react-intlayer";
321
+ import { setLocaleInStorage, useIntlayer, useLocale } from "react-intlayer";
322
322
  import { Link, useLocation } from "react-router";
323
323
 
324
324
  export const LocaleSwitcher: FC = () => {
@@ -336,7 +336,7 @@ export const LocaleSwitcher: FC = () => {
336
336
  <Link
337
337
  aria-current={localeItem === locale ? "page" : undefined}
338
338
  aria-label={`${localeSwitcherLabel.value} ${getLocaleName(localeItem)}`}
339
- onClick={() => setLocaleCookie(localeItem)}
339
+ onClick={() => setLocale(localeItem)}
340
340
  to={getLocalizedUrl(pathWithoutLocale, localeItem)}
341
341
  >
342
342
  <span>
@@ -405,18 +405,18 @@ export default function RootLayout() {
405
405
 
406
406
  ### Passo 11: Aggiungere il middleware (Opzionale)
407
407
 
408
- Puoi anche utilizzare `intlayerMiddleware` per aggiungere il routing lato server alla tua applicazione. Questo plugin rileverà automaticamente la lingua corrente basandosi sull'URL e imposterà il cookie della lingua appropriata. Se non viene specificata alcuna lingua, il plugin determinerà la lingua più adatta in base alle preferenze linguistiche del browser dell'utente. Se non viene rilevata alcuna lingua, verrà effettuato un reindirizzamento alla lingua predefinita.
408
+ Puoi anche utilizzare `intlayerProxy` per aggiungere il routing lato server alla tua applicazione. Questo plugin rileverà automaticamente la lingua corrente basandosi sull'URL e imposterà il cookie della lingua appropriata. Se non viene specificata alcuna lingua, il plugin determinerà la lingua più adatta in base alle preferenze linguistiche del browser dell'utente. Se non viene rilevata alcuna lingua, verrà effettuato un reindirizzamento alla lingua predefinita.
409
409
 
410
- > Nota che per utilizzare `intlayerMiddleware` in produzione, è necessario spostare il pacchetto `vite-intlayer` da `devDependencies` a `dependencies`.
410
+ > Nota che per utilizzare `intlayerProxy` in produzione, è necessario spostare il pacchetto `vite-intlayer` da `devDependencies` a `dependencies`.
411
411
 
412
412
  ```typescript {3,7} fileName="vite.config.ts"
413
413
  import { defineConfig } from "vite";
414
414
  import react from "@vitejs/plugin-react-swc";
415
- import { intlayer, intlayerMiddleware } from "vite-intlayer";
415
+ import { intlayer, intlayerProxy } from "vite-intlayer";
416
416
 
417
417
  // https://vitejs.dev/config/
418
418
  export default defineConfig({
419
- plugins: [react(), intlayer(), intlayerMiddleware()],
419
+ plugins: [react(), intlayer(), intlayerProxy()],
420
420
  });
421
421
  ```
422
422
 
@@ -212,6 +212,7 @@ import type { FC } from "react";
212
212
 
213
213
  import { Link, type LinkComponentProps } from "@tanstack/react-router";
214
214
  import { useLocale } from "react-intlayer";
215
+ import { getPrefix } from "intlayer";
215
216
 
216
217
  export const LOCALE_ROUTE = "{-$locale}" as const;
217
218
 
@@ -241,12 +242,13 @@ type RemoveLocaleFromString<S extends string> = CollapseDoubleSlashes<
241
242
 
242
243
  export const LocalizedLink: FC<LocalizedLinkProps> = (props) => {
243
244
  const { locale } = useLocale();
245
+ const { localePrefix } = getPrefix(locale);
244
246
 
245
247
  return (
246
248
  <Link
247
249
  {...props}
248
250
  params={{
249
- locale,
251
+ locale: localePrefix,
250
252
  ...(typeof props?.params === "object" ? props?.params : {}),
251
253
  }}
252
254
  to={`/${LOCALE_ROUTE}${props.to}` as LinkComponentProps["to"]}
@@ -263,43 +265,52 @@ Questo componente ha due obiettivi:
263
265
  Successivamente possiamo creare un hook `useLocalizedNavigate` per la navigazione programmatica:
264
266
 
265
267
  ```tsx fileName="src/hooks/useLocalizedNavigate.tsx"
266
- import { useLocale } from "react-intlayer";
267
268
  import { useNavigate } from "@tanstack/react-router";
269
+ import { getPrefix } from "intlayer";
270
+ import { useLocale } from "react-intlayer";
268
271
  import { LOCALE_ROUTE } from "@/components/localized-link";
269
272
  import type { FileRouteTypes } from "@/routeTree.gen";
270
273
 
274
+ type StripLocalePrefix<T extends string> = T extends
275
+ | `/${typeof LOCALE_ROUTE}`
276
+ | `/${typeof LOCALE_ROUTE}/`
277
+ ? "/"
278
+ : T extends `/${typeof LOCALE_ROUTE}/${infer Rest}`
279
+ ? `/${Rest}`
280
+ : never;
281
+
282
+ type LocalizedTo = StripLocalePrefix<FileRouteTypes["to"]>;
283
+
284
+ type LocalizedNavigate = {
285
+ (to: LocalizedTo): ReturnType<ReturnType<typeof useNavigate>>;
286
+ (
287
+ opts: { to: LocalizedTo } & Record<string, unknown>
288
+ ): ReturnType<ReturnType<typeof useNavigate>>;
289
+ };
290
+
271
291
  export const useLocalizedNavigate = () => {
272
292
  const navigate = useNavigate();
273
293
 
274
294
  const { locale } = useLocale();
275
295
 
276
- type StripLocalePrefix<T extends string> = T extends
277
- | `/${typeof LOCALE_ROUTE}`
278
- | `/${typeof LOCALE_ROUTE}/`
279
- ? "/"
280
- : T extends `/${typeof LOCALE_ROUTE}/${infer Rest}`
281
- ? `/${Rest}`
282
- : never;
283
-
284
- type LocalizedTo = StripLocalePrefix<FileRouteTypes["to"]>;
285
-
286
- interface LocalizedNavigate {
287
- (to: LocalizedTo): ReturnType<typeof navigate>;
288
- (
289
- opts: { to: LocalizedTo } & Record<string, unknown>
290
- ): ReturnType<typeof navigate>;
291
- }
292
-
293
296
  const localizedNavigate: LocalizedNavigate = (args: any) => {
297
+ const { localePrefix } = getPrefix(locale);
298
+
294
299
  if (typeof args === "string") {
295
- return navigate({ to: `/${LOCALE_ROUTE}${args}`, params: { locale } });
300
+ return navigate({
301
+ to: `/${LOCALE_ROUTE}${args}`,
302
+ params: { locale: localePrefix },
303
+ });
296
304
  }
297
305
 
298
306
  const { to, ...rest } = args;
299
307
 
300
- const localedTo = `/${LOCALE_ROUTE}${to}` as any;
308
+ const localizedTo = `/${LOCALE_ROUTE}${to}` as any;
301
309
 
302
- return navigate({ to: localedTo, params: { locale, ...rest } as any });
310
+ return navigate({
311
+ to: localizedTo,
312
+ params: { locale: localePrefix, ...rest } as any,
313
+ });
303
314
  };
304
315
 
305
316
  return localizedNavigate;
@@ -373,8 +384,13 @@ Crea un componente per permettere agli utenti di cambiare lingua:
373
384
  import type { FC } from "react";
374
385
 
375
386
  import { useLocation } from "@tanstack/react-router";
376
- import { getHTMLTextDir, getLocaleName, getPathWithoutLocale } from "intlayer";
377
- import { setLocaleCookie, useIntlayer, useLocale } from "react-intlayer";
387
+ import {
388
+ getHTMLTextDir,
389
+ getLocaleName,
390
+ getPathWithoutLocale,
391
+ getPrefix,
392
+ } from "intlayer";
393
+ import { setLocaleInStorage, useIntlayer, useLocale } from "react-intlayer";
378
394
 
379
395
  import { LocalizedLink, To } from "./localized-link";
380
396
 
@@ -393,9 +409,8 @@ export const LocaleSwitcher: FC = () => {
393
409
  <LocalizedLink
394
410
  aria-current={localeEl === locale ? "page" : undefined}
395
411
  aria-label={`${localeSwitcherLabel.value} ${getLocaleName(localeEl)}`}
396
- onClick={() => setLocaleCookie(localeEl)}
397
- params={{ locale: localeEl }}
398
- to={pathWithoutLocale as To}
412
+ onClick={() => setLocaleInStorage(localeEl)}
413
+ params={{ locale: getPrefix(localeEl).localePrefix }}
399
414
  >
400
415
  <span>
401
416
  {/* Lingua - es. FR */}
@@ -473,15 +488,15 @@ function LayoutComponent() {
473
488
 
474
489
  ### Passo 11: Aggiungere middleware (Opzionale)
475
490
 
476
- Puoi anche utilizzare `intlayerMiddleware` per aggiungere il routing lato server alla tua applicazione. Questo plugin rileverà automaticamente la locale corrente basandosi sull'URL e imposterà il cookie della locale appropriata. Se non viene specificata alcuna locale, il plugin determinerà la locale più adatta in base alle preferenze linguistiche del browser dell'utente. Se non viene rilevata alcuna locale, verrà effettuato un reindirizzamento alla locale predefinita.
491
+ Puoi anche utilizzare `intlayerProxy` per aggiungere il routing lato server alla tua applicazione. Questo plugin rileverà automaticamente la locale corrente basandosi sull'URL e imposterà il cookie della locale appropriata. Se non viene specificata alcuna locale, il plugin determinerà la locale più adatta in base alle preferenze linguistiche del browser dell'utente. Se non viene rilevata alcuna locale, verrà effettuato un reindirizzamento alla locale predefinita.
477
492
 
478
- > Nota che per utilizzare `intlayerMiddleware` in produzione, è necessario spostare il pacchetto `vite-intlayer` da `devDependencies` a `dependencies`.
493
+ > Nota che per utilizzare `intlayerProxy` in produzione, è necessario spostare il pacchetto `vite-intlayer` da `devDependencies` a `dependencies`.
479
494
 
480
495
  ```typescript {3,7} fileName="vite.config.ts"
481
496
  import { reactRouter } from "@react-router/dev/vite";
482
497
  import tailwindcss from "@tailwindcss/vite";
483
498
  import { defineConfig } from "vite";
484
- import { intlayer, intlayerMiddleware } from "vite-intlayer";
499
+ import { intlayer, intlayerProxy } from "vite-intlayer";
485
500
  import tsconfigPaths from "vite-tsconfig-paths";
486
501
 
487
502
  export default defineConfig({
@@ -490,7 +505,7 @@ export default defineConfig({
490
505
  reactRouter(),
491
506
  tsconfigPaths(),
492
507
  intlayer(),
493
- intlayerMiddleware(),
508
+ intlayerProxy(),
494
509
  ],
495
510
  });
496
511
  ```
@@ -1063,38 +1063,38 @@ const App = () => (
1063
1063
  module.exports = App;
1064
1064
  ```
1065
1065
 
1066
- In parallelo, puoi anche utilizzare il `intlayerMiddleware` per aggiungere il routing lato server alla tua applicazione. Questo plugin rileverà automaticamente la locale corrente basandosi sull'URL e imposterà il cookie della locale appropriata. Se non viene specificata alcuna locale, il plugin determinerà la locale più adatta in base alle preferenze linguistiche del browser dell'utente. Se non viene rilevata alcuna locale, verrà effettuato un reindirizzamento alla locale predefinita.
1066
+ In parallelo, puoi anche utilizzare il `intlayerProxy` per aggiungere il routing lato server alla tua applicazione. Questo plugin rileverà automaticamente la locale corrente basandosi sull'URL e imposterà il cookie della locale appropriata. Se non viene specificata alcuna locale, il plugin determinerà la locale più adatta in base alle preferenze linguistiche del browser dell'utente. Se non viene rilevata alcuna locale, verrà effettuato un reindirizzamento alla locale predefinita.
1067
1067
 
1068
1068
  ```typescript {3,7} fileName="vite.config.ts" codeFormat="typescript"
1069
1069
  import { defineConfig } from "vite";
1070
1070
  import preact from "@preact/preset-vite";
1071
- import { intlayer, intlayerMiddleware } from "vite-intlayer";
1071
+ import { intlayer, intlayerProxy } from "vite-intlayer";
1072
1072
 
1073
1073
  // https://vitejs.dev/config/
1074
1074
  export default defineConfig({
1075
- plugins: [preact(), intlayer(), intlayerMiddleware()],
1075
+ plugins: [preact(), intlayer(), intlayerProxy()],
1076
1076
  });
1077
1077
  ```
1078
1078
 
1079
1079
  ```javascript {3,7} fileName="vite.config.mjs" codeFormat="esm"
1080
1080
  import { defineConfig } from "vite";
1081
1081
  import preact from "@preact/preset-vite";
1082
- import { intlayer, intlayerMiddleware } from "vite-intlayer";
1082
+ import { intlayer, intlayerProxy } from "vite-intlayer";
1083
1083
 
1084
1084
  // https://vitejs.dev/config/
1085
1085
  export default defineConfig({
1086
- plugins: [preact(), intlayer(), intlayerMiddleware()],
1086
+ plugins: [preact(), intlayer(), intlayerProxy()],
1087
1087
  });
1088
1088
  ```
1089
1089
 
1090
1090
  ```javascript {3,7} fileName="vite.config.cjs" codeFormat="commonjs"
1091
1091
  const { defineConfig } = require("vite");
1092
1092
  const preact = require("@preact/preset-vite");
1093
- const { intlayer, intlayerMiddleware } = require("vite-intlayer");
1093
+ const { intlayer, intlayerProxy } = require("vite-intlayer");
1094
1094
 
1095
1095
  // https://vitejs.dev/config/
1096
1096
  module.exports = defineConfig({
1097
- plugins: [preact(), intlayer(), intlayerMiddleware()],
1097
+ plugins: [preact(), intlayer(), intlayerProxy()],
1098
1098
  });
1099
1099
  ```
1100
1100
 
@@ -1017,38 +1017,38 @@ const App = () => (
1017
1017
  );
1018
1018
  ```
1019
1019
 
1020
- In parallelo, puoi anche utilizzare il `intlayerMiddleware` per aggiungere il routing lato server alla tua applicazione. Questo plugin rileverà automaticamente la locale corrente basandosi sull'URL e imposterà il cookie della locale appropriata. Se non viene specificata alcuna locale, il plugin determinerà la locale più adatta in base alle preferenze linguistiche del browser dell'utente. Se non viene rilevata alcuna locale, verrà effettuato un reindirizzamento alla locale predefinita.
1020
+ In parallelo, puoi anche utilizzare il `intlayerProxy` per aggiungere il routing lato server alla tua applicazione. Questo plugin rileverà automaticamente la locale corrente basandosi sull'URL e imposterà il cookie della locale appropriata. Se non viene specificata alcuna locale, il plugin determinerà la locale più adatta in base alle preferenze linguistiche del browser dell'utente. Se non viene rilevata alcuna locale, verrà effettuato un reindirizzamento alla locale predefinita.
1021
1021
 
1022
1022
  ```typescript {3,7} fileName="vite.config.ts" codeFormat="typescript"
1023
1023
  import { defineConfig } from "vite";
1024
1024
  import react from "@vitejs/plugin-react-swc";
1025
- import { intlayer, intlayerMiddleware } from "vite-intlayer";
1025
+ import { intlayer, intlayerProxy } from "vite-intlayer";
1026
1026
 
1027
1027
  // https://vitejs.dev/config/
1028
1028
  export default defineConfig({
1029
- plugins: [react(), intlayer(), intlayerMiddleware()],
1029
+ plugins: [react(), intlayer(), intlayerProxy()],
1030
1030
  });
1031
1031
  ```
1032
1032
 
1033
1033
  ```javascript {3,7} fileName="vite.config.mjs" codeFormat="esm"
1034
1034
  import { defineConfig } from "vite";
1035
1035
  import react from "@vitejs/plugin-react-swc";
1036
- import { intlayer, intlayerMiddleware } from "vite-intlayer";
1036
+ import { intlayer, intlayerProxy } from "vite-intlayer";
1037
1037
 
1038
1038
  // https://vitejs.dev/config/
1039
1039
  export default defineConfig({
1040
- plugins: [react(), intlayer(), intlayerMiddleware()],
1040
+ plugins: [react(), intlayer(), intlayerProxy()],
1041
1041
  });
1042
1042
  ```
1043
1043
 
1044
1044
  ```javascript {3,7} fileName="vite.config.cjs" codeFormat="commonjs"
1045
1045
  const { defineConfig } = require("vite");
1046
1046
  const react = require("@vitejs/plugin-react-swc");
1047
- const { intlayer, intlayerMiddleware } = require("vite-intlayer");
1047
+ const { intlayer, intlayerProxy } = require("vite-intlayer");
1048
1048
 
1049
1049
  // https://vitejs.dev/config/
1050
1050
  module.exports = defineConfig({
1051
- plugins: [react(), intlayer(), intlayerMiddleware()],
1051
+ plugins: [react(), intlayer(), intlayerProxy()],
1052
1052
  });
1053
1053
  ```
1054
1054
 
@@ -695,46 +695,46 @@ import LocaleSwitcher from "@components/LocaleSwitcher.vue";
695
695
  </template>
696
696
  ```
697
697
 
698
- Parallelamente, puoi anche utilizzare il `intlayerMiddleware` per aggiungere il routing lato server alla tua applicazione. Questo plugin rileverà automaticamente la locale corrente basandosi sull'URL e imposterà il cookie della locale appropriata. Se non viene specificata alcuna locale, il plugin determinerà la locale più adatta in base alle preferenze linguistiche del browser dell'utente. Se non viene rilevata alcuna locale, effettuerà un reindirizzamento alla locale predefinita.
698
+ Parallelamente, puoi anche utilizzare il `intlayerProxy` per aggiungere il routing lato server alla tua applicazione. Questo plugin rileverà automaticamente la locale corrente basandosi sull'URL e imposterà il cookie della locale appropriata. Se non viene specificata alcuna locale, il plugin determinerà la locale più adatta in base alle preferenze linguistiche del browser dell'utente. Se non viene rilevata alcuna locale, effettuerà un reindirizzamento alla locale predefinita.
699
699
 
700
700
  ```typescript {3,7} fileName="vite.config.ts" codeFormat="typescript"
701
701
  import { defineConfig } from "vite";
702
702
  import vue from "@vitejs/plugin-vue";
703
- import { intlayer, intlayerMiddleware } from "vite-intlayer";
703
+ import { intlayer, intlayerProxy } from "vite-intlayer";
704
704
 
705
705
  // https://vitejs.dev/config/
706
706
  export default defineConfig({
707
- plugins: [vue(), intlayer(), intlayerMiddleware()],
707
+ plugins: [vue(), intlayer(), intlayerProxy()],
708
708
  });
709
709
  ```
710
710
 
711
711
  ```javascript {3,7} fileName="vite.config.mjs" codeFormat="esm"
712
712
  import { defineConfig } from "vite";
713
713
  import vue from "@vitejs/plugin-vue";
714
- import { intlayer, intlayerMiddleware } from "vite-intlayer";
714
+ import { intlayer, intlayerProxy } from "vite-intlayer";
715
715
 
716
716
  // https://vitejs.dev/config/
717
717
  export default defineConfig({
718
- plugins: [vue(), intlayer(), intlayerMiddleware()],
718
+ plugins: [vue(), intlayer(), intlayerProxy()],
719
719
  });
720
720
  ```
721
721
 
722
722
  ```javascript {3,7} fileName="vite.config.cjs" codeFormat="commonjs"
723
723
  const { defineConfig } = require("vite");
724
724
  const vue = require("@vitejs/plugin-vue");
725
- const { intlayer, intlayerMiddleware } = require("vite-intlayer");
725
+ const { intlayer, intlayerProxy } = require("vite-intlayer");
726
726
 
727
727
  // https://vitejs.dev/config/
728
728
  module.exports = defineConfig({
729
- plugins: [vue(), intlayer(), intlayerMiddleware()],
729
+ plugins: [vue(), intlayer(), intlayerProxy()],
730
730
  });
731
731
  const { defineConfig } = require("vite");
732
732
  const vue = require("@vitejs/plugin-vue");
733
- const { intlayer, intlayerMiddleware } = require("vite-intlayer");
733
+ const { intlayer, intlayerProxy } = require("vite-intlayer");
734
734
 
735
735
  // https://vitejs.dev/config/
736
736
  module.exports = defineConfig({
737
- plugins: [vue(), intlayer(), intlayerMiddleware()],
737
+ plugins: [vue(), intlayer(), intlayerProxy()],
738
738
  });
739
739
  ```
740
740