@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
@@ -676,38 +676,38 @@ import LocaleSwitcher from "@components/LocaleSwitcher.vue";
676
676
  </template>
677
677
  ```
678
678
 
679
- In parallel, you can also use the `intlayerMiddleware` to add server-side routing to your application. This plugin will automatically detect the current locale based on the URL and set the appropriate locale cookie. If no locale is specified, the plugin will determine the most appropriate locale based on the user's browser language preferences. If no locale is detected, it will redirect to the default locale.
679
+ In parallel, you can also use the `intlayerProxy` to add server-side routing to your application. This plugin will automatically detect the current locale based on the URL and set the appropriate locale cookie. If no locale is specified, the plugin will determine the most appropriate locale based on the user's browser language preferences. If no locale is detected, it will redirect to the default locale.
680
680
 
681
681
  ```typescript {3,7} fileName="vite.config.ts" codeFormat="typescript"
682
682
  import { defineConfig } from "vite";
683
683
  import vue from "@vitejs/plugin-vue";
684
- import { intlayer, intlayerMiddleware } from "vite-intlayer";
684
+ import { intlayer, intlayerProxy } from "vite-intlayer";
685
685
 
686
686
  // https://vitejs.dev/config/
687
687
  export default defineConfig({
688
- plugins: [vue(), intlayer(), intlayerMiddleware()],
688
+ plugins: [vue(), intlayer(), intlayerProxy()],
689
689
  });
690
690
  ```
691
691
 
692
692
  ```javascript {3,7} fileName="vite.config.mjs" codeFormat="esm"
693
693
  import { defineConfig } from "vite";
694
694
  import vue from "@vitejs/plugin-vue";
695
- import { intlayer, intlayerMiddleware } from "vite-intlayer";
695
+ import { intlayer, intlayerProxy } from "vite-intlayer";
696
696
 
697
697
  // https://vitejs.dev/config/
698
698
  export default defineConfig({
699
- plugins: [vue(), intlayer(), intlayerMiddleware()],
699
+ plugins: [vue(), intlayer(), intlayerProxy()],
700
700
  });
701
701
  ```
702
702
 
703
703
  ```javascript {3,7} fileName="vite.config.cjs" codeFormat="commonjs"
704
704
  const { defineConfig } = require("vite");
705
705
  const vue = require("@vitejs/plugin-vue");
706
- const { intlayer, intlayerMiddleware } = require("vite-intlayer");
706
+ const { intlayer, intlayerProxy } = require("vite-intlayer");
707
707
 
708
708
  // https://vitejs.dev/config/
709
709
  module.exports = defineConfig({
710
- plugins: [vue(), intlayer(), intlayerMiddleware()],
710
+ plugins: [vue(), intlayer(), intlayerProxy()],
711
711
  });
712
712
  ```
713
713
 
@@ -725,9 +725,9 @@ To automatically update the URL when the user changes the language, you can modi
725
725
  </select>
726
726
  </div>
727
727
  const { defineConfig } = require("vite"); const vue =
728
- require("@vitejs/plugin-vue"); const { intlayer, intlayerMiddleware } =
728
+ require("@vitejs/plugin-vue"); const { intlayer, intlayerProxy } =
729
729
  require("vite-intlayer"); // https://vitejs.dev/config/ module.exports =
730
- defineConfig({ plugins: [vue(), intlayer(), intlayerMiddleware()], });
730
+ defineConfig({ plugins: [vue(), intlayer(), intlayerProxy()], });
731
731
  </template>
732
732
  ```
733
733
 
@@ -1113,8 +1113,8 @@ import { type FC } from "react";
1113
1113
  import Link from "next/link";
1114
1114
 
1115
1115
  const LocaleSwitcher: FC = () => {
1116
- const { locale, pathWithoutLocale, availableLocales } = useLocale();
1117
- const { setLocaleCookie } = useLocaleCookie();
1116
+ const { locale, pathWithoutLocale, availableLocales, setLocale } =
1117
+ useLocale();
1118
1118
 
1119
1119
  return (
1120
1120
  <div>
@@ -1126,7 +1126,7 @@ const LocaleSwitcher: FC = () => {
1126
1126
  hrefLang={localeItem}
1127
1127
  key={localeItem}
1128
1128
  aria-current={locale === localeItem ? "page" : undefined}
1129
- onClick={() => setLocaleCookie(localeItem)}
1129
+ onClick={() => setLocale(localeItem)}
1130
1130
  >
1131
1131
  <span>
1132
1132
  {/* Localización - p.ej. FR */}
@@ -1165,8 +1165,8 @@ import { useLocale } from "next-intlayer";
1165
1165
  import Link from "next/link";
1166
1166
 
1167
1167
  const LocaleSwitcher = () => {
1168
- const { locale, pathWithoutLocale, availableLocales } = useLocale();
1169
- const { setLocaleCookie } = useLocaleCookie();
1168
+ const { locale, pathWithoutLocale, availableLocales, setLocale } =
1169
+ useLocale();
1170
1170
 
1171
1171
  return (
1172
1172
  <div>
@@ -1178,7 +1178,7 @@ const LocaleSwitcher = () => {
1178
1178
  hrefLang={localeItem}
1179
1179
  key={localeItem}
1180
1180
  aria-current={locale === localeItem ? "page" : undefined}
1181
- onClick={() => setLocaleCookie(localeItem)}
1181
+ onClick={() => setLocale(localeItem)}
1182
1182
  >
1183
1183
  <span>
1184
1184
  {/* Localidad - por ejemplo FR */}
@@ -1217,8 +1217,8 @@ const { useLocale } = require("next-intlayer");
1217
1217
  const Link = require("next/link");
1218
1218
 
1219
1219
  const LocaleSwitcher = () => {
1220
- const { locale, pathWithoutLocale, availableLocales } = useLocale();
1221
- const { setLocaleCookie } = useLocaleCookie();
1220
+ const { locale, pathWithoutLocale, availableLocales, setLocale } =
1221
+ useLocale();
1222
1222
 
1223
1223
  return (
1224
1224
  <div>
@@ -1230,7 +1230,7 @@ const LocaleSwitcher = () => {
1230
1230
  hrefLang={localeItem}
1231
1231
  key={localeItem}
1232
1232
  aria-current={locale === localeItem ? "page" : undefined}
1233
- onClick={() => setLocaleCookie(localeItem)}
1233
+ onClick={() => setLocale(localeItem)}
1234
1234
  >
1235
1235
  <span>
1236
1236
  {/* Localidad - p. ej. FR */}
@@ -1151,8 +1151,8 @@ import { useLocale } from "next-intlayer";
1151
1151
  import Link from "next/link";
1152
1152
 
1153
1153
  export const LocaleSwitcher: FC = () => {
1154
- const { locale, pathWithoutLocale, availableLocales } = useLocale();
1155
- const { setLocaleCookie } = useLocaleCookie();
1154
+ const { locale, pathWithoutLocale, availableLocales, setLocale } =
1155
+ useLocale();
1156
1156
 
1157
1157
  return (
1158
1158
  <div>
@@ -1164,7 +1164,7 @@ export const LocaleSwitcher: FC = () => {
1164
1164
  hrefLang={localeItem}
1165
1165
  key={localeItem}
1166
1166
  aria-current={locale === localeItem ? "page" : undefined}
1167
- onClick={() => setLocaleCookie(localeItem)}
1167
+ onClick={() => setLocale(localeItem)}
1168
1168
  >
1169
1169
  <span>
1170
1170
  {/* Localización - por ejemplo FR */}
@@ -1203,8 +1203,8 @@ import { useLocale } from "next-intlayer";
1203
1203
  import Link from "next/link";
1204
1204
 
1205
1205
  export const LocaleSwitcher = () => {
1206
- const { locale, pathWithoutLocale, availableLocales } = useLocale();
1207
- const { setLocaleCookie } = useLocaleCookie();
1206
+ const { locale, pathWithoutLocale, availableLocales, setLocale } =
1207
+ useLocale();
1208
1208
 
1209
1209
  return (
1210
1210
  <div>
@@ -1216,7 +1216,7 @@ export const LocaleSwitcher = () => {
1216
1216
  hrefLang={localeItem}
1217
1217
  key={localeItem}
1218
1218
  aria-current={locale === localeItem ? "page" : undefined}
1219
- onClick={() => setLocaleCookie(localeItem)}
1219
+ onClick={() => setLocale(localeItem)}
1220
1220
  >
1221
1221
  <span>
1222
1222
  {/* Localización - por ejemplo FR */}
@@ -1255,7 +1255,8 @@ const { useLocale } = require("next-intlayer");
1255
1255
  const Link = require("next/link");
1256
1256
 
1257
1257
  export const LocaleSwitcher = () => {
1258
- const { locale, pathWithoutLocale, availableLocales } = useLocale();
1258
+ const { locale, pathWithoutLocale, availableLocales, setLocale } =
1259
+ useLocale();
1259
1260
 
1260
1261
  return (
1261
1262
  <div>
@@ -1267,7 +1268,7 @@ export const LocaleSwitcher = () => {
1267
1268
  hrefLang={localeItem}
1268
1269
  key={localeItem}
1269
1270
  aria-current={locale === localeItem ? "page" : undefined}
1270
- onClick={() => setLocaleCookie(localeItem)}
1271
+ onClick={() => setLocale(localeItem)}
1271
1272
  >
1272
1273
  <span>
1273
1274
  {/* Localización - por ejemplo, FR */}
@@ -151,7 +151,7 @@ export default withIntlayer(nextConfig);
151
151
  Configura el middleware para detectar y manejar automáticamente el idioma preferido del usuario:
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
  > Adapte el parámetro `matcher` para que coincida con las rutas de su aplicación. Para más detalles, consulte la [documentación de Next.js sobre cómo configurar el matcher](https://nextjs.org/docs/app/building-your-application/routing/middleware).
@@ -1091,7 +1091,6 @@ import Link from "next/link";
1091
1091
 
1092
1092
  const LocaleSwitcher: FC = () => {
1093
1093
  const { locale, pathWithoutLocale, availableLocales } = useLocalePageRouter();
1094
- const { setLocaleCookie } = useLocaleCookie();
1095
1094
 
1096
1095
  return (
1097
1096
  <div>
@@ -1103,7 +1102,7 @@ const LocaleSwitcher: FC = () => {
1103
1102
  hrefLang={localeItem}
1104
1103
  key={localeItem}
1105
1104
  aria-current={locale === localeItem ? "page" : undefined}
1106
- onClick={() => setLocaleCookie(localeItem)}
1105
+ onClick={() => setLocale(localeItem)}
1107
1106
  >
1108
1107
  <span>
1109
1108
  {/* Localización - por ejemplo FR */}
@@ -1141,7 +1140,6 @@ import Link from "next/link";
1141
1140
 
1142
1141
  const LocaleSwitcher = () => {
1143
1142
  const { locale, pathWithoutLocale, availableLocales } = useLocalePageRouter();
1144
- const { setLocaleCookie } = useLocaleCookie();
1145
1143
 
1146
1144
  return (
1147
1145
  <div>
@@ -1153,7 +1151,7 @@ const LocaleSwitcher = () => {
1153
1151
  hrefLang={localeItem}
1154
1152
  key={localeItem}
1155
1153
  aria-current={locale === localeItem ? "page" : undefined}
1156
- onClick={() => setLocaleCookie(localeItem)}
1154
+ onClick={() => setLocale(localeItem)}
1157
1155
  >
1158
1156
  <span>
1159
1157
  {/* Localización - por ejemplo FR */}
@@ -1191,7 +1189,6 @@ const Link = require("next/link");
1191
1189
 
1192
1190
  const LocaleSwitcher = () => {
1193
1191
  const { locale, pathWithoutLocale, availableLocales } = useLocalePageRouter();
1194
- const { setLocaleCookie } = useLocaleCookie();
1195
1192
 
1196
1193
  return (
1197
1194
  <select>
@@ -1201,7 +1198,7 @@ const LocaleSwitcher = () => {
1201
1198
  href={getLocalizedUrl(pathWithoutLocale, localeItem)}
1202
1199
  hrefLang={localeItem}
1203
1200
  aria-current={locale === localeItem ? "page" : undefined}
1204
- onClick={() => setLocaleCookie(localeItem)}
1201
+ onClick={() => setLocale(localeItem)}
1205
1202
  >
1206
1203
  <span>
1207
1204
  {/* Localidad - por ejemplo, FR */}
@@ -319,7 +319,7 @@ import {
319
319
  getLocalizedUrl,
320
320
  getPathWithoutLocale,
321
321
  } from "intlayer";
322
- import { setLocaleCookie, useIntlayer, useLocale } from "react-intlayer";
322
+ import { setLocaleInStorage, useIntlayer, useLocale } from "react-intlayer";
323
323
  import { Link, useLocation } from "react-router";
324
324
 
325
325
  export const LocaleSwitcher: FC = () => {
@@ -337,7 +337,7 @@ export const LocaleSwitcher: FC = () => {
337
337
  <Link
338
338
  aria-current={localeItem === locale ? "page" : undefined}
339
339
  aria-label={`${localeSwitcherLabel.value} ${getLocaleName(localeItem)}`}
340
- onClick={() => setLocaleCookie(localeItem)}
340
+ onClick={() => setLocale(localeItem)}
341
341
  to={getLocalizedUrl(pathWithoutLocale, localeItem)}
342
342
  >
343
343
  <span>
@@ -406,18 +406,18 @@ export default function RootLayout() {
406
406
 
407
407
  ### Paso 11: Añadir middleware (Opcional)
408
408
 
409
- También puedes usar el `intlayerMiddleware` para agregar enrutamiento del lado del servidor a tu aplicación. Este plugin detectará automáticamente la configuración regional actual basada en la URL y establecerá la cookie de configuración regional apropiada. Si no se especifica ninguna configuración regional, el plugin determinará la configuración regional más adecuada según las preferencias de idioma del navegador del usuario. Si no se detecta ninguna configuración regional, redirigirá a la configuración regional predeterminada.
409
+ También puedes usar el `intlayerProxy` para agregar enrutamiento del lado del servidor a tu aplicación. Este plugin detectará automáticamente la configuración regional actual basada en la URL y establecerá la cookie de configuración regional apropiada. Si no se especifica ninguna configuración regional, el plugin determinará la configuración regional más adecuada según las preferencias de idioma del navegador del usuario. Si no se detecta ninguna configuración regional, redirigirá a la configuración regional predeterminada.
410
410
 
411
- > Ten en cuenta que para usar el `intlayerMiddleware` en producción, necesitas cambiar el paquete `vite-intlayer` de `devDependencies` a `dependencies`.
411
+ > Ten en cuenta que para usar el `intlayerProxy` en producción, necesitas cambiar el paquete `vite-intlayer` de `devDependencies` a `dependencies`.
412
412
 
413
413
  ```typescript {3,7} fileName="vite.config.ts"
414
414
  import { defineConfig } from "vite";
415
415
  import react from "@vitejs/plugin-react-swc";
416
- import { intlayer, intlayerMiddleware } from "vite-intlayer";
416
+ import { intlayer, intlayerProxy } from "vite-intlayer";
417
417
 
418
418
  // https://vitejs.dev/config/
419
419
  export default defineConfig({
420
- plugins: [react(), intlayer(), intlayerMiddleware()],
420
+ plugins: [react(), intlayer(), intlayerProxy()],
421
421
  });
422
422
  ```
423
423
 
@@ -234,12 +234,13 @@ type RemoveLocaleFromString<S extends string> = CollapseDoubleSlashes<
234
234
 
235
235
  export const LocalizedLink: FC<LocalizedLinkProps> = (props) => {
236
236
  const { locale } = useLocale();
237
+ const { localePrefix } = getPrefix(locale);
237
238
 
238
239
  return (
239
240
  <Link
240
241
  {...props}
241
242
  params={{
242
- locale,
243
+ locale: localePrefix,
243
244
  ...(typeof props?.params === "object" ? props?.params : {}),
244
245
  }}
245
246
  to={`/${LOCALE_ROUTE}${props.to}` as LinkComponentProps["to"]}
@@ -366,8 +367,13 @@ Crea un componente para permitir a los usuarios cambiar de idioma:
366
367
  import type { FC } from "react";
367
368
 
368
369
  import { useLocation } from "@tanstack/react-router";
369
- import { getHTMLTextDir, getLocaleName, getPathWithoutLocale } from "intlayer";
370
- import { setLocaleCookie, useIntlayer, useLocale } from "react-intlayer";
370
+ import {
371
+ getHTMLTextDir,
372
+ getLocaleName,
373
+ getPathWithoutLocale,
374
+ getPrefix,
375
+ } from "intlayer";
376
+ import { setLocaleInStorage, useIntlayer, useLocale } from "react-intlayer";
371
377
 
372
378
  import { LocalizedLink, To } from "./localized-link";
373
379
 
@@ -386,9 +392,8 @@ export const LocaleSwitcher: FC = () => {
386
392
  <LocalizedLink
387
393
  aria-current={localeEl === locale ? "page" : undefined}
388
394
  aria-label={`${localeSwitcherLabel.value} ${getLocaleName(localeEl)}`}
389
- onClick={() => setLocaleCookie(localeEl)}
390
- params={{ locale: localeEl }}
391
- to={pathWithoutLocale as To}
395
+ onClick={() => setLocaleInStorage(localeEl)}
396
+ params={{ locale: getPrefix(localeEl).localePrefix }}
392
397
  >
393
398
  <span>
394
399
  {/* Localización - por ejemplo FR */}
@@ -466,15 +471,15 @@ function LayoutComponent() {
466
471
 
467
472
  ### Paso 11: Añadir middleware (Opcional)
468
473
 
469
- También puedes usar el `intlayerMiddleware` para agregar enrutamiento del lado del servidor a tu aplicación. Este plugin detectará automáticamente la configuración regional actual basada en la URL y establecerá la cookie de configuración regional apropiada. Si no se especifica ninguna configuración regional, el plugin determinará la configuración regional más adecuada según las preferencias de idioma del navegador del usuario. Si no se detecta ninguna configuración regional, redirigirá a la configuración regional predeterminada.
474
+ También puedes usar el `intlayerProxy` para agregar enrutamiento del lado del servidor a tu aplicación. Este plugin detectará automáticamente la configuración regional actual basada en la URL y establecerá la cookie de configuración regional apropiada. Si no se especifica ninguna configuración regional, el plugin determinará la configuración regional más adecuada según las preferencias de idioma del navegador del usuario. Si no se detecta ninguna configuración regional, redirigirá a la configuración regional predeterminada.
470
475
 
471
- > Ten en cuenta que para usar el `intlayerMiddleware` en producción, necesitas cambiar el paquete `vite-intlayer` de `devDependencies` a `dependencies`.
476
+ > Ten en cuenta que para usar el `intlayerProxy` en producción, necesitas cambiar el paquete `vite-intlayer` de `devDependencies` a `dependencies`.
472
477
 
473
478
  ```typescript {3,7} fileName="vite.config.ts"
474
479
  import { reactRouter } from "@react-router/dev/vite";
475
480
  import tailwindcss from "@tailwindcss/vite";
476
481
  import { defineConfig } from "vite";
477
- import { intlayer, intlayerMiddleware } from "vite-intlayer";
482
+ import { intlayer, intlayerProxy } from "vite-intlayer";
478
483
  import tsconfigPaths from "vite-tsconfig-paths";
479
484
 
480
485
  export default defineConfig({
@@ -483,7 +488,7 @@ export default defineConfig({
483
488
  reactRouter(),
484
489
  tsconfigPaths(),
485
490
  intlayer(),
486
- intlayerMiddleware(),
491
+ intlayerProxy(),
487
492
  ],
488
493
  });
489
494
  ```
@@ -1059,38 +1059,38 @@ const App = () => (
1059
1059
  module.exports = App;
1060
1060
  ```
1061
1061
 
1062
- En paralelo, también puedes usar el `intlayerMiddleware` para agregar enrutamiento del lado del servidor a tu aplicación. Este plugin detectará automáticamente la configuración regional actual basada en la URL y establecerá la cookie de configuración regional apropiada. Si no se especifica ninguna configuración regional, el plugin determinará la configuración regional más adecuada según las preferencias de idioma del navegador del usuario. Si no se detecta ninguna configuración regional, redirigirá a la configuración regional predeterminada.
1062
+ En paralelo, también puedes usar el `intlayerProxy` para agregar enrutamiento del lado del servidor a tu aplicación. Este plugin detectará automáticamente la configuración regional actual basada en la URL y establecerá la cookie de configuración regional apropiada. Si no se especifica ninguna configuración regional, el plugin determinará la configuración regional más adecuada según las preferencias de idioma del navegador del usuario. Si no se detecta ninguna configuración regional, redirigirá a la configuración regional predeterminada.
1063
1063
 
1064
1064
  ```typescript {3,7} fileName="vite.config.ts" codeFormat="typescript"
1065
1065
  import { defineConfig } from "vite";
1066
1066
  import preact from "@preact/preset-vite";
1067
- import { intlayer, intlayerMiddleware } from "vite-intlayer";
1067
+ import { intlayer, intlayerProxy } from "vite-intlayer";
1068
1068
 
1069
1069
  // https://vitejs.dev/config/
1070
1070
  export default defineConfig({
1071
- plugins: [preact(), intlayer(), intlayerMiddleware()],
1071
+ plugins: [preact(), intlayer(), intlayerProxy()],
1072
1072
  });
1073
1073
  ```
1074
1074
 
1075
1075
  ```javascript {3,7} fileName="vite.config.mjs" codeFormat="esm"
1076
1076
  import { defineConfig } from "vite";
1077
1077
  import preact from "@preact/preset-vite";
1078
- import { intlayer, intlayerMiddleware } from "vite-intlayer";
1078
+ import { intlayer, intlayerProxy } from "vite-intlayer";
1079
1079
 
1080
1080
  // https://vitejs.dev/config/
1081
1081
  export default defineConfig({
1082
- plugins: [preact(), intlayer(), intlayerMiddleware()],
1082
+ plugins: [preact(), intlayer(), intlayerProxy()],
1083
1083
  });
1084
1084
  ```
1085
1085
 
1086
1086
  ```javascript {3,7} fileName="vite.config.cjs" codeFormat="commonjs"
1087
1087
  const { defineConfig } = require("vite");
1088
1088
  const preact = require("@preact/preset-vite");
1089
- const { intlayer, intlayerMiddleware } = require("vite-intlayer");
1089
+ const { intlayer, intlayerProxy } = require("vite-intlayer");
1090
1090
 
1091
1091
  // https://vitejs.dev/config/
1092
1092
  module.exports = defineConfig({
1093
- plugins: [preact(), intlayer(), intlayerMiddleware()],
1093
+ plugins: [preact(), intlayer(), intlayerProxy()],
1094
1094
  });
1095
1095
  ```
1096
1096
 
@@ -1012,38 +1012,38 @@ const App = () => (
1012
1012
  );
1013
1013
  ```
1014
1014
 
1015
- Paralelamente, también puedes usar el `intlayerMiddleware` para agregar enrutamiento del lado del servidor a tu aplicación. Este plugin detectará automáticamente la configuración regional actual basada en la URL y establecerá la cookie de configuración regional correspondiente. Si no se especifica ninguna configuración regional, el plugin determinará la configuración regional más adecuada basándose en las preferencias de idioma del navegador del usuario. Si no se detecta ninguna configuración regional, redirigirá a la configuración regional predeterminada.
1015
+ Paralelamente, también puedes usar el `intlayerProxy` para agregar enrutamiento del lado del servidor a tu aplicación. Este plugin detectará automáticamente la configuración regional actual basada en la URL y establecerá la cookie de configuración regional correspondiente. Si no se especifica ninguna configuración regional, el plugin determinará la configuración regional más adecuada basándose en las preferencias de idioma del navegador del usuario. Si no se detecta ninguna configuración regional, redirigirá a la configuración regional predeterminada.
1016
1016
 
1017
1017
  ```typescript {3,7} fileName="vite.config.ts" codeFormat="typescript"
1018
1018
  import { defineConfig } from "vite";
1019
1019
  import react from "@vitejs/plugin-react-swc";
1020
- import { intlayer, intlayerMiddleware } from "vite-intlayer";
1020
+ import { intlayer, intlayerProxy } from "vite-intlayer";
1021
1021
 
1022
1022
  // https://vitejs.dev/config/
1023
1023
  export default defineConfig({
1024
- plugins: [react(), intlayer(), intlayerMiddleware()],
1024
+ plugins: [react(), intlayer(), intlayerProxy()],
1025
1025
  });
1026
1026
  ```
1027
1027
 
1028
1028
  ```javascript {3,7} fileName="vite.config.mjs" codeFormat="esm"
1029
1029
  import { defineConfig } from "vite";
1030
1030
  import react from "@vitejs/plugin-react-swc";
1031
- import { intlayer, intlayerMiddleware } from "vite-intlayer";
1031
+ import { intlayer, intlayerProxy } from "vite-intlayer";
1032
1032
 
1033
1033
  // https://vitejs.dev/config/
1034
1034
  export default defineConfig({
1035
- plugins: [react(), intlayer(), intlayerMiddleware()],
1035
+ plugins: [react(), intlayer(), intlayerProxy()],
1036
1036
  });
1037
1037
  ```
1038
1038
 
1039
1039
  ```javascript {3,7} fileName="vite.config.cjs" codeFormat="commonjs"
1040
1040
  const { defineConfig } = require("vite");
1041
1041
  const react = require("@vitejs/plugin-react-swc");
1042
- const { intlayer, intlayerMiddleware } = require("vite-intlayer");
1042
+ const { intlayer, intlayerProxy } = require("vite-intlayer");
1043
1043
 
1044
1044
  // https://vitejs.dev/config/
1045
1045
  module.exports = defineConfig({
1046
- plugins: [react(), intlayer(), intlayerMiddleware()],
1046
+ plugins: [react(), intlayer(), intlayerProxy()],
1047
1047
  });
1048
1048
  ```
1049
1049
 
@@ -701,46 +701,46 @@ import LocaleSwitcher from "@components/LocaleSwitcher.vue";
701
701
  </template>
702
702
  ```
703
703
 
704
- Paralelamente, también puede usar el `intlayerMiddleware` para agregar enrutamiento del lado del servidor a su aplicación. Este plugin detectará automáticamente la configuración regional actual basada en la URL y establecerá la cookie de configuración regional correspondiente. Si no se especifica ninguna configuración regional, el plugin determinará la configuración regional más adecuada según las preferencias de idioma del navegador del usuario. Si no se detecta ninguna configuración regional, redirigirá a la configuración regional predeterminada.
704
+ Paralelamente, también puede usar el `intlayerProxy` para agregar enrutamiento del lado del servidor a su aplicación. Este plugin detectará automáticamente la configuración regional actual basada en la URL y establecerá la cookie de configuración regional correspondiente. Si no se especifica ninguna configuración regional, el plugin determinará la configuración regional más adecuada según las preferencias de idioma del navegador del usuario. Si no se detecta ninguna configuración regional, redirigirá a la configuración regional predeterminada.
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
  const { defineConfig } = require("vite");
738
738
  const vue = require("@vitejs/plugin-vue");
739
- const { intlayer, intlayerMiddleware } = require("vite-intlayer");
739
+ const { intlayer, intlayerProxy } = require("vite-intlayer");
740
740
 
741
741
  // https://vitejs.dev/config/
742
742
  module.exports = defineConfig({
743
- plugins: [vue(), intlayer(), intlayerMiddleware()],
743
+ plugins: [vue(), intlayer(), intlayerProxy()],
744
744
  });
745
745
  ```
746
746
 
@@ -914,8 +914,8 @@ import { type FC } from "react";
914
914
  import Link from "next/link";
915
915
 
916
916
  const LocaleSwitcher: FC = () => {
917
- const { locale, pathWithoutLocale, availableLocales } = useLocale();
918
- const { setLocaleCookie } = useLocaleCookie();
917
+ const { locale, pathWithoutLocale, availableLocales, setLocale } =
918
+ useLocale();
919
919
 
920
920
  return (
921
921
  <div>
@@ -927,7 +927,7 @@ const LocaleSwitcher: FC = () => {
927
927
  hrefLang={localeItem}
928
928
  key={localeItem}
929
929
  aria-current={locale === localeItem ? "page" : undefined}
930
- onClick={() => setLocaleCookie(localeItem)}
930
+ onClick={() => setLocale(localeItem)}
931
931
  >
932
932
  <span>
933
933
  {/* Langue - ex. FR */}
@@ -966,8 +966,8 @@ import { useLocale } from "next-intlayer";
966
966
  import Link from "next/link";
967
967
 
968
968
  const LocaleSwitcher = () => {
969
- const { locale, pathWithoutLocale, availableLocales } = useLocale();
970
- const { setLocaleCookie } = useLocaleCookie();
969
+ const { locale, pathWithoutLocale, availableLocales, setLocale } =
970
+ useLocale();
971
971
 
972
972
  return (
973
973
  <div>
@@ -979,7 +979,7 @@ const LocaleSwitcher = () => {
979
979
  hrefLang={localeItem}
980
980
  key={localeItem}
981
981
  aria-current={locale === localeItem ? "page" : undefined}
982
- onClick={() => setLocaleCookie(localeItem)}
982
+ onClick={() => setLocale(localeItem)}
983
983
  >
984
984
  <span>
985
985
  {/* Langue - ex. FR */}
@@ -1018,8 +1018,8 @@ const { useLocale } = require("next-intlayer");
1018
1018
  const Link = require("next/link");
1019
1019
 
1020
1020
  const LocaleSwitcher = () => {
1021
- const { locale, pathWithoutLocale, availableLocales } = useLocale();
1022
- const { setLocaleCookie } = useLocaleCookie();
1021
+ const { locale, pathWithoutLocale, availableLocales, setLocale } =
1022
+ useLocale();
1023
1023
 
1024
1024
  return (
1025
1025
  <div>
@@ -1031,7 +1031,7 @@ const LocaleSwitcher = () => {
1031
1031
  hrefLang={localeItem}
1032
1032
  key={localeItem}
1033
1033
  aria-current={locale === localeItem ? "page" : undefined}
1034
- onClick={() => setLocaleCookie(localeItem)}
1034
+ onClick={() => setLocale(localeItem)}
1035
1035
  >
1036
1036
  <span>
1037
1037
  {/* Langue - ex. FR */}
@@ -1198,8 +1198,8 @@ import { useLocale } from "next-intlayer";
1198
1198
  import Link from "next/link";
1199
1199
 
1200
1200
  export const LocaleSwitcher: FC = () => {
1201
- const { locale, pathWithoutLocale, availableLocales } = useLocale();
1202
- const { setLocaleCookie } = useLocaleCookie();
1201
+ const { locale, pathWithoutLocale, availableLocales, setLocale } =
1202
+ useLocale();
1203
1203
 
1204
1204
  return (
1205
1205
  <div>
@@ -1211,7 +1211,7 @@ export const LocaleSwitcher: FC = () => {
1211
1211
  hrefLang={localeItem}
1212
1212
  key={localeItem}
1213
1213
  aria-current={locale === localeItem ? "page" : undefined}
1214
- onClick={() => setLocaleCookie(localeItem)}
1214
+ onClick={() => setLocale(localeItem)}
1215
1215
  >
1216
1216
  <span>
1217
1217
  {/* Locale - par ex. FR */}
@@ -1250,8 +1250,8 @@ import { useLocale } from "next-intlayer";
1250
1250
  import Link from "next/link";
1251
1251
 
1252
1252
  export const LocaleSwitcher = () => {
1253
- const { locale, pathWithoutLocale, availableLocales } = useLocale();
1254
- const { setLocaleCookie } = useLocaleCookie();
1253
+ const { locale, pathWithoutLocale, availableLocales, setLocale } =
1254
+ useLocale();
1255
1255
 
1256
1256
  return (
1257
1257
  <div>
@@ -1263,7 +1263,7 @@ export const LocaleSwitcher = () => {
1263
1263
  hrefLang={localeItem}
1264
1264
  key={localeItem}
1265
1265
  aria-current={locale === localeItem ? "page" : undefined}
1266
- onClick={() => setLocaleCookie(localeItem)}
1266
+ onClick={() => setLocale(localeItem)}
1267
1267
  >
1268
1268
  <span>
1269
1269
  {/* Locale - ex. FR */}
@@ -1302,7 +1302,8 @@ const { useLocale } = require("next-intlayer");
1302
1302
  const Link = require("next/link");
1303
1303
 
1304
1304
  export const LocaleSwitcher = () => {
1305
- const { locale, pathWithoutLocale, availableLocales } = useLocale();
1305
+ const { locale, pathWithoutLocale, availableLocales, setLocale } =
1306
+ useLocale();
1306
1307
 
1307
1308
  return (
1308
1309
  <div>
@@ -1314,7 +1315,7 @@ export const LocaleSwitcher = () => {
1314
1315
  hrefLang={localeItem}
1315
1316
  key={localeItem}
1316
1317
  aria-current={locale === localeItem ? "page" : undefined}
1317
- onClick={() => setLocaleCookie(localeItem)}
1318
+ onClick={() => setLocale(localeItem)}
1318
1319
  >
1319
1320
  <span>
1320
1321
  {/* Locale - ex. FR */}