@intlayer/docs 7.5.0-canary.1 → 7.5.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (394) hide show
  1. package/README.md +19 -19
  2. package/blog/ar/intlayer_with_i18next.md +1 -1
  3. package/blog/ar/intlayer_with_next-i18next.md +1 -1
  4. package/blog/ar/intlayer_with_next-intl.md +1 -1
  5. package/blog/ar/intlayer_with_react-i18next.md +1 -1
  6. package/blog/ar/intlayer_with_react-intl.md +1 -1
  7. package/blog/ar/intlayer_with_vue-i18n.md +1 -1
  8. package/blog/ar/l10n_platform_alternative/Lokalise.md +80 -0
  9. package/blog/ar/l10n_platform_alternative/crowdin.md +86 -0
  10. package/blog/ar/l10n_platform_alternative/phrase.md +82 -0
  11. package/blog/de/intlayer_with_i18next.md +1 -1
  12. package/blog/de/intlayer_with_next-i18next.md +1 -1
  13. package/blog/de/intlayer_with_next-intl.md +1 -1
  14. package/blog/de/intlayer_with_react-i18next.md +1 -1
  15. package/blog/de/intlayer_with_react-intl.md +1 -1
  16. package/blog/de/intlayer_with_vue-i18n.md +1 -1
  17. package/blog/de/l10n_platform_alternative/Lokalise.md +84 -0
  18. package/blog/de/l10n_platform_alternative/crowdin.md +80 -0
  19. package/blog/de/l10n_platform_alternative/phrase.md +82 -0
  20. package/blog/en/intlayer_with_i18next.md +1 -1
  21. package/blog/en/intlayer_with_next-i18next.md +1 -1
  22. package/blog/en/intlayer_with_next-intl.md +1 -1
  23. package/blog/en/intlayer_with_react-i18next.md +1 -1
  24. package/blog/en/intlayer_with_react-intl.md +1 -1
  25. package/blog/en/intlayer_with_vue-i18n.md +1 -1
  26. package/blog/en/l10n_platform_alternative/Lokalise.md +80 -0
  27. package/blog/en/l10n_platform_alternative/crowdin.md +80 -0
  28. package/blog/en/l10n_platform_alternative/phrase.md +78 -0
  29. package/blog/en-GB/intlayer_with_i18next.md +1 -1
  30. package/blog/en-GB/intlayer_with_next-i18next.md +1 -1
  31. package/blog/en-GB/intlayer_with_next-intl.md +1 -1
  32. package/blog/en-GB/intlayer_with_react-i18next.md +1 -1
  33. package/blog/en-GB/intlayer_with_react-intl.md +1 -1
  34. package/blog/en-GB/intlayer_with_vue-i18n.md +1 -1
  35. package/blog/en-GB/l10n_platform_alternative/Lokalise.md +80 -0
  36. package/blog/en-GB/l10n_platform_alternative/crowdin.md +80 -0
  37. package/blog/en-GB/l10n_platform_alternative/phrase.md +78 -0
  38. package/blog/es/intlayer_with_i18next.md +1 -1
  39. package/blog/es/intlayer_with_next-i18next.md +1 -1
  40. package/blog/es/intlayer_with_next-intl.md +1 -1
  41. package/blog/es/intlayer_with_react-i18next.md +1 -1
  42. package/blog/es/intlayer_with_react-intl.md +1 -1
  43. package/blog/es/intlayer_with_vue-i18n.md +1 -1
  44. package/blog/es/l10n_platform_alternative/Lokalise.md +80 -0
  45. package/blog/es/l10n_platform_alternative/crowdin.md +86 -0
  46. package/blog/es/l10n_platform_alternative/phrase.md +84 -0
  47. package/blog/fr/intlayer_with_i18next.md +1 -1
  48. package/blog/fr/intlayer_with_next-i18next.md +1 -1
  49. package/blog/fr/intlayer_with_next-intl.md +1 -1
  50. package/blog/fr/intlayer_with_react-i18next.md +1 -1
  51. package/blog/fr/intlayer_with_react-intl.md +1 -1
  52. package/blog/fr/intlayer_with_vue-i18n.md +1 -1
  53. package/blog/fr/l10n_platform_alternative/Lokalise.md +84 -0
  54. package/blog/fr/l10n_platform_alternative/crowdin.md +86 -0
  55. package/blog/fr/l10n_platform_alternative/phrase.md +91 -0
  56. package/blog/hi/intlayer_with_i18next.md +1 -1
  57. package/blog/hi/intlayer_with_next-i18next.md +1 -1
  58. package/blog/hi/intlayer_with_next-intl.md +1 -1
  59. package/blog/hi/intlayer_with_react-i18next.md +1 -1
  60. package/blog/hi/intlayer_with_react-intl.md +1 -1
  61. package/blog/hi/intlayer_with_vue-i18n.md +1 -1
  62. package/blog/hi/l10n_platform_alternative/Lokalise.md +86 -0
  63. package/blog/hi/l10n_platform_alternative/crowdin.md +84 -0
  64. package/blog/hi/l10n_platform_alternative/phrase.md +78 -0
  65. package/blog/id/intlayer_with_i18next.md +1 -1
  66. package/blog/id/intlayer_with_next-i18next.md +1 -1
  67. package/blog/id/intlayer_with_next-intl.md +1 -1
  68. package/blog/id/intlayer_with_react-i18next.md +1 -1
  69. package/blog/id/intlayer_with_react-intl.md +1 -1
  70. package/blog/id/intlayer_with_vue-i18n.md +1 -1
  71. package/blog/id/l10n_platform_alternative/Lokalise.md +86 -0
  72. package/blog/id/l10n_platform_alternative/crowdin.md +84 -0
  73. package/blog/id/l10n_platform_alternative/phrase.md +89 -0
  74. package/blog/it/intlayer_with_i18next.md +1 -1
  75. package/blog/it/intlayer_with_next-i18next.md +1 -1
  76. package/blog/it/intlayer_with_next-intl.md +1 -1
  77. package/blog/it/intlayer_with_react-i18next.md +1 -1
  78. package/blog/it/intlayer_with_react-intl.md +1 -1
  79. package/blog/it/intlayer_with_vue-i18n.md +1 -1
  80. package/blog/it/l10n_platform_alternative/Lokalise.md +84 -0
  81. package/blog/it/l10n_platform_alternative/crowdin.md +86 -0
  82. package/blog/it/l10n_platform_alternative/phrase.md +82 -0
  83. package/blog/ja/intlayer_with_i18next.md +1 -1
  84. package/blog/ja/intlayer_with_next-i18next.md +1 -1
  85. package/blog/ja/intlayer_with_next-intl.md +1 -1
  86. package/blog/ja/intlayer_with_react-i18next.md +1 -1
  87. package/blog/ja/intlayer_with_react-intl.md +1 -1
  88. package/blog/ja/intlayer_with_vue-i18n.md +1 -1
  89. package/blog/ja/l10n_platform_alternative/Lokalise.md +80 -0
  90. package/blog/ja/l10n_platform_alternative/crowdin.md +80 -0
  91. package/blog/ja/l10n_platform_alternative/phrase.md +78 -0
  92. package/blog/ko/intlayer_with_i18next.md +1 -1
  93. package/blog/ko/intlayer_with_next-i18next.md +1 -1
  94. package/blog/ko/intlayer_with_next-intl.md +1 -1
  95. package/blog/ko/intlayer_with_react-i18next.md +1 -1
  96. package/blog/ko/intlayer_with_react-intl.md +1 -1
  97. package/blog/ko/intlayer_with_vue-i18n.md +1 -1
  98. package/blog/ko/l10n_platform_alternative/Lokalise.md +80 -0
  99. package/blog/ko/l10n_platform_alternative/crowdin.md +86 -0
  100. package/blog/ko/l10n_platform_alternative/phrase.md +78 -0
  101. package/blog/pl/intlayer_with_i18next.md +1 -1
  102. package/blog/pl/intlayer_with_next-i18next.md +1 -1
  103. package/blog/pl/intlayer_with_next-intl.md +1 -1
  104. package/blog/pl/intlayer_with_react-i18next.md +1 -1
  105. package/blog/pl/intlayer_with_react-intl.md +1 -1
  106. package/blog/pl/intlayer_with_vue-i18n.md +1 -1
  107. package/blog/pl/l10n_platform_alternative/Lokalise.md +84 -0
  108. package/blog/pl/l10n_platform_alternative/crowdin.md +80 -0
  109. package/blog/pl/l10n_platform_alternative/phrase.md +82 -0
  110. package/blog/pt/intlayer_with_i18next.md +1 -1
  111. package/blog/pt/intlayer_with_next-i18next.md +1 -1
  112. package/blog/pt/intlayer_with_next-intl.md +1 -1
  113. package/blog/pt/intlayer_with_react-i18next.md +1 -1
  114. package/blog/pt/intlayer_with_react-intl.md +1 -1
  115. package/blog/pt/intlayer_with_vue-i18n.md +1 -1
  116. package/blog/pt/l10n_platform_alternative/Lokalise.md +80 -0
  117. package/blog/pt/l10n_platform_alternative/crowdin.md +86 -0
  118. package/blog/pt/l10n_platform_alternative/phrase.md +78 -0
  119. package/blog/ru/intlayer_with_i18next.md +1 -1
  120. package/blog/ru/intlayer_with_next-i18next.md +1 -1
  121. package/blog/ru/intlayer_with_next-intl.md +1 -1
  122. package/blog/ru/intlayer_with_react-i18next.md +1 -1
  123. package/blog/ru/intlayer_with_react-intl.md +1 -1
  124. package/blog/ru/intlayer_with_vue-i18n.md +1 -1
  125. package/blog/ru/l10n_platform_alternative/Lokalise.md +80 -0
  126. package/blog/ru/l10n_platform_alternative/crowdin.md +86 -0
  127. package/blog/ru/l10n_platform_alternative/phrase.md +82 -0
  128. package/blog/tr/intlayer_with_i18next.md +1 -1
  129. package/blog/tr/intlayer_with_next-i18next.md +1 -1
  130. package/blog/tr/intlayer_with_next-intl.md +1 -1
  131. package/blog/tr/intlayer_with_react-i18next.md +1 -1
  132. package/blog/tr/intlayer_with_vue-i18n.md +1 -1
  133. package/blog/tr/l10n_platform_alternative/Lokalise.md +80 -0
  134. package/blog/tr/l10n_platform_alternative/crowdin.md +80 -0
  135. package/blog/tr/l10n_platform_alternative/phrase.md +89 -0
  136. package/blog/vi/intlayer_with_i18next.md +1 -1
  137. package/blog/vi/intlayer_with_next-i18next.md +1 -1
  138. package/blog/vi/intlayer_with_next-intl.md +1 -1
  139. package/blog/vi/intlayer_with_react-i18next.md +1 -1
  140. package/blog/vi/intlayer_with_react-intl.md +1 -1
  141. package/blog/vi/intlayer_with_vue-i18n.md +1 -1
  142. package/blog/vi/l10n_platform_alternative/Lokalise.md +87 -0
  143. package/blog/vi/l10n_platform_alternative/crowdin.md +80 -0
  144. package/blog/vi/l10n_platform_alternative/phrase.md +82 -0
  145. package/blog/zh/intlayer_with_i18next.md +1 -1
  146. package/blog/zh/intlayer_with_next-i18next.md +1 -1
  147. package/blog/zh/intlayer_with_next-intl.md +1 -1
  148. package/blog/zh/intlayer_with_react-i18next.md +1 -1
  149. package/blog/zh/intlayer_with_react-intl.md +1 -1
  150. package/blog/zh/intlayer_with_vue-i18n.md +1 -1
  151. package/blog/zh/l10n_platform_alternative/Lokalise.md +80 -0
  152. package/blog/zh/l10n_platform_alternative/crowdin.md +84 -0
  153. package/blog/zh/l10n_platform_alternative/phrase.md +84 -0
  154. package/dist/cjs/common.cjs +6 -6
  155. package/dist/cjs/common.cjs.map +1 -1
  156. package/dist/cjs/generated/blog.entry.cjs +61 -4
  157. package/dist/cjs/generated/blog.entry.cjs.map +1 -1
  158. package/dist/cjs/generated/docs.entry.cjs +4 -4
  159. package/dist/cjs/generated/docs.entry.cjs.map +1 -1
  160. package/dist/cjs/generated/frequentQuestions.entry.cjs +4 -4
  161. package/dist/cjs/generated/frequentQuestions.entry.cjs.map +1 -1
  162. package/dist/cjs/generated/legal.entry.cjs +4 -4
  163. package/dist/cjs/generated/legal.entry.cjs.map +1 -1
  164. package/dist/esm/generated/blog.entry.mjs +57 -0
  165. package/dist/esm/generated/blog.entry.mjs.map +1 -1
  166. package/dist/types/generated/blog.entry.d.ts +3 -0
  167. package/dist/types/generated/blog.entry.d.ts.map +1 -1
  168. package/docs/ar/dictionary/content_file.md +1 -1
  169. package/docs/ar/intlayer_CMS.md +1 -1
  170. package/docs/ar/intlayer_visual_editor.md +1 -1
  171. package/docs/ar/intlayer_with_nextjs_15.md +1 -1
  172. package/docs/ar/intlayer_with_nextjs_16.md +1 -1
  173. package/docs/ar/intlayer_with_nuxt.md +3 -3
  174. package/docs/ar/intlayer_with_react_router_v7.md +1 -1
  175. package/docs/ar/intlayer_with_react_router_v7_fs_routes.md +1 -1
  176. package/docs/ar/intlayer_with_tanstack.md +1 -1
  177. package/docs/ar/intlayer_with_vite+react.md +1 -1
  178. package/docs/ar/intlayer_with_vite+vue.md +1 -1
  179. package/docs/ar/packages/intlayer/getLocaleName.md +17 -1
  180. package/docs/ar/plugins/sync-json.md +1 -1
  181. package/docs/de/dictionary/content_file.md +1 -1
  182. package/docs/de/intlayer_CMS.md +1 -1
  183. package/docs/de/intlayer_visual_editor.md +1 -1
  184. package/docs/de/intlayer_with_nextjs_15.md +1 -1
  185. package/docs/de/intlayer_with_nextjs_16.md +1 -1
  186. package/docs/de/intlayer_with_nuxt.md +3 -3
  187. package/docs/de/intlayer_with_react_router_v7.md +1 -1
  188. package/docs/de/intlayer_with_react_router_v7_fs_routes.md +1 -1
  189. package/docs/de/intlayer_with_tanstack.md +1 -1
  190. package/docs/de/intlayer_with_vite+react.md +1 -1
  191. package/docs/de/intlayer_with_vite+vue.md +1 -1
  192. package/docs/de/packages/intlayer/getLocaleName.md +17 -1
  193. package/docs/de/plugins/sync-json.md +1 -1
  194. package/docs/en/dictionary/content_file.md +1 -1
  195. package/docs/en/intlayer_CMS.md +1 -1
  196. package/docs/en/intlayer_visual_editor.md +1 -1
  197. package/docs/en/intlayer_with_nextjs_15.md +1 -1
  198. package/docs/en/intlayer_with_nextjs_16.md +1 -1
  199. package/docs/en/intlayer_with_nuxt.md +3 -3
  200. package/docs/en/intlayer_with_react_router_v7.md +1 -1
  201. package/docs/en/intlayer_with_react_router_v7_fs_routes.md +1 -1
  202. package/docs/en/intlayer_with_tanstack.md +1 -1
  203. package/docs/en/intlayer_with_vite+preact.md +1 -2
  204. package/docs/en/intlayer_with_vite+react.md +1 -1
  205. package/docs/en/intlayer_with_vite+vue.md +1 -1
  206. package/docs/en/packages/intlayer/getLocaleName.md +17 -0
  207. package/docs/en/plugins/sync-json.md +1 -1
  208. package/docs/en-GB/dictionary/content_file.md +1 -1
  209. package/docs/en-GB/intlayer_CMS.md +1 -1
  210. package/docs/en-GB/intlayer_visual_editor.md +1 -1
  211. package/docs/en-GB/intlayer_with_nextjs_15.md +1 -1
  212. package/docs/en-GB/intlayer_with_nextjs_16.md +1 -1
  213. package/docs/en-GB/intlayer_with_nuxt.md +3 -3
  214. package/docs/en-GB/intlayer_with_react_router_v7.md +1 -1
  215. package/docs/en-GB/intlayer_with_react_router_v7_fs_routes.md +1 -1
  216. package/docs/en-GB/intlayer_with_tanstack.md +1 -1
  217. package/docs/en-GB/intlayer_with_vite+react.md +1 -1
  218. package/docs/en-GB/intlayer_with_vite+vue.md +1 -1
  219. package/docs/en-GB/packages/intlayer/getLocaleName.md +17 -1
  220. package/docs/en-GB/plugins/sync-json.md +1 -1
  221. package/docs/es/dictionary/content_file.md +1 -1
  222. package/docs/es/intlayer_CMS.md +1 -1
  223. package/docs/es/intlayer_visual_editor.md +1 -1
  224. package/docs/es/intlayer_with_nextjs_15.md +1 -1
  225. package/docs/es/intlayer_with_nextjs_16.md +1 -1
  226. package/docs/es/intlayer_with_nuxt.md +3 -3
  227. package/docs/es/intlayer_with_react_router_v7.md +1 -1
  228. package/docs/es/intlayer_with_react_router_v7_fs_routes.md +1 -1
  229. package/docs/es/intlayer_with_tanstack.md +1 -1
  230. package/docs/es/intlayer_with_vite+react.md +1 -1
  231. package/docs/es/intlayer_with_vite+vue.md +1 -1
  232. package/docs/es/packages/intlayer/getLocaleName.md +17 -1
  233. package/docs/es/plugins/sync-json.md +1 -1
  234. package/docs/fr/dictionary/content_file.md +1 -1
  235. package/docs/fr/intlayer_CMS.md +1 -1
  236. package/docs/fr/intlayer_visual_editor.md +1 -1
  237. package/docs/fr/intlayer_with_nextjs_15.md +1 -1
  238. package/docs/fr/intlayer_with_nextjs_16.md +1 -1
  239. package/docs/fr/intlayer_with_nuxt.md +3 -3
  240. package/docs/fr/intlayer_with_react_router_v7.md +1 -1
  241. package/docs/fr/intlayer_with_react_router_v7_fs_routes.md +1 -1
  242. package/docs/fr/intlayer_with_tanstack.md +1 -1
  243. package/docs/fr/intlayer_with_vite+react.md +1 -1
  244. package/docs/fr/intlayer_with_vite+vue.md +1 -1
  245. package/docs/fr/packages/intlayer/getLocaleName.md +17 -1
  246. package/docs/fr/plugins/sync-json.md +1 -1
  247. package/docs/hi/dictionary/content_file.md +1 -1
  248. package/docs/hi/intlayer_CMS.md +1 -1
  249. package/docs/hi/intlayer_visual_editor.md +1 -1
  250. package/docs/hi/intlayer_with_nextjs_15.md +1 -1
  251. package/docs/hi/intlayer_with_nextjs_16.md +1 -1
  252. package/docs/hi/intlayer_with_nuxt.md +3 -3
  253. package/docs/hi/intlayer_with_react_router_v7.md +1 -1
  254. package/docs/hi/intlayer_with_react_router_v7_fs_routes.md +1 -1
  255. package/docs/hi/intlayer_with_tanstack.md +1 -1
  256. package/docs/hi/intlayer_with_vite+react.md +1 -1
  257. package/docs/hi/intlayer_with_vite+vue.md +1 -1
  258. package/docs/hi/packages/intlayer/getLocaleName.md +17 -1
  259. package/docs/hi/plugins/sync-json.md +1 -1
  260. package/docs/id/dictionary/content_file.md +1 -1
  261. package/docs/id/intlayer_CMS.md +1 -1
  262. package/docs/id/intlayer_visual_editor.md +1 -1
  263. package/docs/id/intlayer_with_nextjs_15.md +1 -1
  264. package/docs/id/intlayer_with_nextjs_16.md +1 -1
  265. package/docs/id/intlayer_with_nuxt.md +3 -3
  266. package/docs/id/intlayer_with_react_router_v7.md +1 -1
  267. package/docs/id/intlayer_with_react_router_v7_fs_routes.md +1 -1
  268. package/docs/id/intlayer_with_tanstack.md +1 -1
  269. package/docs/id/intlayer_with_vite+preact.md +1 -2
  270. package/docs/id/intlayer_with_vite+react.md +1 -1
  271. package/docs/id/intlayer_with_vite+vue.md +1 -1
  272. package/docs/id/packages/intlayer/getLocaleName.md +17 -0
  273. package/docs/id/plugins/sync-json.md +1 -1
  274. package/docs/it/dictionary/content_file.md +1 -1
  275. package/docs/it/intlayer_CMS.md +1 -1
  276. package/docs/it/intlayer_visual_editor.md +1 -1
  277. package/docs/it/intlayer_with_nextjs_15.md +1 -1
  278. package/docs/it/intlayer_with_nextjs_16.md +1 -1
  279. package/docs/it/intlayer_with_nuxt.md +3 -3
  280. package/docs/it/intlayer_with_react_router_v7.md +1 -1
  281. package/docs/it/intlayer_with_react_router_v7_fs_routes.md +1 -1
  282. package/docs/it/intlayer_with_tanstack.md +1 -1
  283. package/docs/it/intlayer_with_vite+react.md +1 -1
  284. package/docs/it/intlayer_with_vite+vue.md +1 -1
  285. package/docs/it/packages/intlayer/getLocaleName.md +17 -1
  286. package/docs/it/plugins/sync-json.md +1 -1
  287. package/docs/ja/dictionary/content_file.md +1 -1
  288. package/docs/ja/intlayer_CMS.md +1 -1
  289. package/docs/ja/intlayer_visual_editor.md +1 -1
  290. package/docs/ja/intlayer_with_nextjs_15.md +1 -1
  291. package/docs/ja/intlayer_with_nextjs_16.md +1 -1
  292. package/docs/ja/intlayer_with_nuxt.md +3 -3
  293. package/docs/ja/intlayer_with_react_router_v7.md +1 -1
  294. package/docs/ja/intlayer_with_react_router_v7_fs_routes.md +1 -1
  295. package/docs/ja/intlayer_with_tanstack.md +1 -1
  296. package/docs/ja/intlayer_with_vite+react.md +1 -1
  297. package/docs/ja/intlayer_with_vite+vue.md +1 -1
  298. package/docs/ja/packages/intlayer/getLocaleName.md +17 -1
  299. package/docs/ja/plugins/sync-json.md +1 -1
  300. package/docs/ko/dictionary/content_file.md +1 -1
  301. package/docs/ko/intlayer_CMS.md +1 -1
  302. package/docs/ko/intlayer_visual_editor.md +1 -1
  303. package/docs/ko/intlayer_with_nextjs_15.md +1 -1
  304. package/docs/ko/intlayer_with_nextjs_16.md +1 -1
  305. package/docs/ko/intlayer_with_nuxt.md +3 -3
  306. package/docs/ko/intlayer_with_react_router_v7.md +1 -1
  307. package/docs/ko/intlayer_with_react_router_v7_fs_routes.md +1 -1
  308. package/docs/ko/intlayer_with_tanstack.md +1 -1
  309. package/docs/ko/intlayer_with_vite+react.md +1 -1
  310. package/docs/ko/intlayer_with_vite+vue.md +1 -1
  311. package/docs/ko/packages/intlayer/getLocaleName.md +17 -1
  312. package/docs/ko/plugins/sync-json.md +1 -1
  313. package/docs/pl/dictionary/content_file.md +1 -1
  314. package/docs/pl/intlayer_CMS.md +1 -1
  315. package/docs/pl/intlayer_visual_editor.md +1 -1
  316. package/docs/pl/intlayer_with_nextjs_15.md +1 -1
  317. package/docs/pl/intlayer_with_nextjs_16.md +1 -1
  318. package/docs/pl/intlayer_with_nuxt.md +3 -3
  319. package/docs/pl/intlayer_with_react_router_v7.md +1 -1
  320. package/docs/pl/intlayer_with_react_router_v7_fs_routes.md +2 -2
  321. package/docs/pl/intlayer_with_tanstack.md +1 -1
  322. package/docs/pl/intlayer_with_vite+preact.md +1 -2
  323. package/docs/pl/intlayer_with_vite+react.md +1 -1
  324. package/docs/pl/intlayer_with_vite+vue.md +1 -1
  325. package/docs/pl/packages/intlayer/getLocaleName.md +17 -0
  326. package/docs/pl/plugins/sync-json.md +1 -1
  327. package/docs/pt/dictionary/content_file.md +1 -1
  328. package/docs/pt/intlayer_CMS.md +1 -1
  329. package/docs/pt/intlayer_visual_editor.md +1 -1
  330. package/docs/pt/intlayer_with_nextjs_15.md +1 -1
  331. package/docs/pt/intlayer_with_nextjs_16.md +1 -1
  332. package/docs/pt/intlayer_with_nuxt.md +3 -3
  333. package/docs/pt/intlayer_with_react_router_v7.md +1 -1
  334. package/docs/pt/intlayer_with_react_router_v7_fs_routes.md +1 -1
  335. package/docs/pt/intlayer_with_tanstack.md +1 -1
  336. package/docs/pt/intlayer_with_vite+react.md +1 -1
  337. package/docs/pt/intlayer_with_vite+vue.md +1 -1
  338. package/docs/pt/packages/intlayer/getLocaleName.md +17 -1
  339. package/docs/pt/plugins/sync-json.md +1 -1
  340. package/docs/ru/dictionary/content_file.md +1 -1
  341. package/docs/ru/intlayer_CMS.md +1 -1
  342. package/docs/ru/intlayer_visual_editor.md +1 -1
  343. package/docs/ru/intlayer_with_nextjs_15.md +1 -1
  344. package/docs/ru/intlayer_with_nextjs_16.md +1 -1
  345. package/docs/ru/intlayer_with_nuxt.md +3 -3
  346. package/docs/ru/intlayer_with_react_router_v7.md +1 -1
  347. package/docs/ru/intlayer_with_react_router_v7_fs_routes.md +1 -1
  348. package/docs/ru/intlayer_with_tanstack.md +1 -1
  349. package/docs/ru/intlayer_with_vite+react.md +1 -1
  350. package/docs/ru/intlayer_with_vite+vue.md +1 -1
  351. package/docs/ru/packages/intlayer/getLocaleName.md +17 -1
  352. package/docs/ru/plugins/sync-json.md +1 -1
  353. package/docs/tr/dictionary/content_file.md +1 -1
  354. package/docs/tr/intlayer_CMS.md +1 -1
  355. package/docs/tr/intlayer_visual_editor.md +1 -1
  356. package/docs/tr/intlayer_with_nextjs_15.md +1 -1
  357. package/docs/tr/intlayer_with_nextjs_16.md +1 -1
  358. package/docs/tr/intlayer_with_nuxt.md +3 -3
  359. package/docs/tr/intlayer_with_react_router_v7.md +1 -1
  360. package/docs/tr/intlayer_with_react_router_v7_fs_routes.md +1 -1
  361. package/docs/tr/intlayer_with_tanstack.md +1 -1
  362. package/docs/tr/intlayer_with_vite+react.md +1 -1
  363. package/docs/tr/intlayer_with_vite+vue.md +1 -1
  364. package/docs/tr/packages/intlayer/getLocaleName.md +17 -0
  365. package/docs/tr/plugins/sync-json.md +1 -1
  366. package/docs/vi/dictionary/content_file.md +1 -1
  367. package/docs/vi/intlayer_CMS.md +1 -1
  368. package/docs/vi/intlayer_visual_editor.md +1 -1
  369. package/docs/vi/intlayer_with_nextjs_15.md +1 -1
  370. package/docs/vi/intlayer_with_nextjs_16.md +1 -1
  371. package/docs/vi/intlayer_with_nuxt.md +3 -3
  372. package/docs/vi/intlayer_with_react_router_v7.md +1 -1
  373. package/docs/vi/intlayer_with_react_router_v7_fs_routes.md +1 -1
  374. package/docs/vi/intlayer_with_tanstack.md +1 -1
  375. package/docs/vi/intlayer_with_vite+preact.md +1 -2
  376. package/docs/vi/intlayer_with_vite+react.md +1 -1
  377. package/docs/vi/intlayer_with_vite+vue.md +1 -1
  378. package/docs/vi/packages/intlayer/getLocaleName.md +17 -0
  379. package/docs/vi/plugins/sync-json.md +1 -1
  380. package/docs/zh/dictionary/content_file.md +1 -1
  381. package/docs/zh/intlayer_CMS.md +1 -1
  382. package/docs/zh/intlayer_visual_editor.md +1 -1
  383. package/docs/zh/intlayer_with_nextjs_15.md +1 -1
  384. package/docs/zh/intlayer_with_nextjs_16.md +1 -1
  385. package/docs/zh/intlayer_with_nuxt.md +3 -3
  386. package/docs/zh/intlayer_with_react_router_v7.md +1 -1
  387. package/docs/zh/intlayer_with_react_router_v7_fs_routes.md +1 -1
  388. package/docs/zh/intlayer_with_tanstack.md +1 -1
  389. package/docs/zh/intlayer_with_vite+react.md +1 -1
  390. package/docs/zh/intlayer_with_vite+vue.md +1 -1
  391. package/docs/zh/packages/intlayer/getLocaleName.md +17 -1
  392. package/docs/zh/plugins/sync-json.md +1 -1
  393. package/package.json +8 -8
  394. package/src/generated/blog.entry.ts +57 -0
@@ -42,7 +42,7 @@ Com o Intlayer, você pode:
42
42
  <Tab defaultTab="video">
43
43
  <TabItem label="Vídeo" value="video">
44
44
 
45
- <iframe title="The best i18n solution for Vite and Vue? Discover Intlayer" class="m-auto aspect-[16/9] w-full overflow-hidden rounded-lg border-0" allow="autoplay; gyroscope;" loading="lazy" width="1080" height="auto" src="https://www.youtube.com/embed/IE3XWkZ6a5U?autoplay=0&amp;origin=http://intlayer.org&amp;controls=0&amp;rel=1"/>
45
+ <iframe title="The best i18n solution for Vite and Vue? Discover Intlayer" class="m-auto aspect-16/9 w-full overflow-hidden rounded-lg border-0" allow="autoplay; gyroscope;" loading="lazy" width="1080" height="auto" src="https://www.youtube.com/embed/IE3XWkZ6a5U?autoplay=0&amp;origin=http://intlayer.org&amp;controls=0&amp;rel=1"/>
46
46
 
47
47
  </TabItem>
48
48
  <TabItem label="Código" value="code">
@@ -19,6 +19,9 @@ slugs:
19
19
  - intlayer
20
20
  - getLocaleName
21
21
  history:
22
+ - version: 7.5.0
23
+ date: 2025-12-18
24
+ changes: Adicionar polyfills para React Native e ambientes mais antigos
22
25
  - version: 5.5.10
23
26
  date: 2025-06-29
24
27
  changes: Histórico inicial
@@ -33,7 +36,6 @@ A função `getLocaleName` retorna o nome localizado de um determinado locale (`
33
36
  ## Parâmetros
34
37
 
35
38
  - `displayLocale: Locales`
36
-
37
39
  - **Descrição**: O locale no qual o nome do locale alvo será exibido.
38
40
  - **Tipo**: Enum ou string representando locales válidos.
39
41
 
@@ -117,3 +119,17 @@ getLocaleName("unknown-locale"); // Saída: "Unknown locale"
117
119
  - A função retorna por padrão o próprio nome do `displayLocale`.
118
120
  - **Traduções ausentes:**
119
121
  - Se `localeNameTranslations` não contiver uma entrada para o `targetLocale` ou para o `displayLocale` específico, a função recorre ao `ownLocalesName` ou retorna `"Unknown locale"`.
122
+
123
+ ## Polyfills para React Native e ambientes mais antigos
124
+
125
+ A função `getLocaleName` depende da API `Intl.DisplayNames`, que não está disponível no React Native ou em ambientes JavaScript mais antigos. Se você estiver usando `getLocaleName` nesses ambientes, precisa adicionar polyfills.
126
+
127
+ Importe os polyfills no início da sua aplicação, idealmente no seu arquivo de entrada (por exemplo, `index.js`, `App.tsx` ou `main.tsx`):
128
+
129
+ ```typescript
130
+ import "intl";
131
+ import "@formatjs/intl-locale/polyfill";
132
+ import "@formatjs/intl-displaynames/polyfill";
133
+ ```
134
+
135
+ Para mais detalhes, consulte a [documentação de polyfills do FormatJS](https://formatjs.io/docs/polyfills/intl-displaynames/).
@@ -34,7 +34,7 @@ history:
34
34
 
35
35
  # Sync JSON (pontes i18n) - Sync JSON com suporte ICU / i18next
36
36
 
37
- <iframe title="Como manter suas traduções JSON sincronizadas com Intlayer" class="m-auto aspect-[16/9] w-full overflow-hidden rounded-lg border-0" allow="autoplay; gyroscope;" loading="lazy" width="1080" height="auto" src="https://www.youtube.com/embed/MpGMxniDHNg?autoplay=0&amp;origin=http://intlayer.org&amp;controls=0&amp;rel=1"/>
37
+ <iframe title="Como manter suas traduções JSON sincronizadas com Intlayer" class="m-auto aspect-16/9 w-full overflow-hidden rounded-lg border-0" allow="autoplay; gyroscope;" loading="lazy" width="1080" height="auto" src="https://www.youtube.com/embed/MpGMxniDHNg?autoplay=0&amp;origin=http://intlayer.org&amp;controls=0&amp;rel=1"/>
38
38
 
39
39
  Use o Intlayer como um complemento para sua pilha i18n existente. Este plugin mantém suas mensagens JSON sincronizadas com os dicionários Intlayer para que você possa:
40
40
 
@@ -25,7 +25,7 @@ history:
25
25
 
26
26
  # Файл контента
27
27
 
28
- <iframe title="i18n, Markdown, JSON… одно универсальное решение для управления всем этим | Intlayer" class="m-auto aspect-[16/9] w-full overflow-hidden rounded-lg border-0" allow="autoplay; gyroscope;" loading="lazy" width="1080" height="auto" src="https://www.youtube.com/embed/1VHgSY_j9_I?autoplay=0&amp;origin=http://intlayer.org&amp;controls=0&amp;rel=1"/>
28
+ <iframe title="i18n, Markdown, JSON… одно универсальное решение для управления всем этим | Intlayer" class="m-auto aspect-16/9 w-full overflow-hidden rounded-lg border-0" allow="autoplay; gyroscope;" loading="lazy" width="1080" height="auto" src="https://www.youtube.com/embed/1VHgSY_j9_I?autoplay=0&amp;origin=http://intlayer.org&amp;controls=0&amp;rel=1"/>
29
29
 
30
30
  ## Что такое файл контента?
31
31
 
@@ -31,7 +31,7 @@ history:
31
31
 
32
32
  # Документация по системе управления контентом Intlayer (CMS)
33
33
 
34
- <iframe title="Визуальный редактор + CMS для вашего веб-приложения: объяснение Intlayer" class="m-auto aspect-[16/9] w-full overflow-hidden rounded-lg border-0" allow="autoplay; gyroscope;" loading="lazy" width="1080" height="auto" src="https://www.youtube.com/embed/UDDTnirwi_4?autoplay=0&amp;origin=http://intlayer.org&amp;controls=0&amp;rel=1"/>
34
+ <iframe title="Визуальный редактор + CMS для вашего веб-приложения: объяснение Intlayer" class="m-auto aspect-16/9 w-full overflow-hidden rounded-lg border-0" allow="autoplay; gyroscope;" loading="lazy" width="1080" height="auto" src="https://www.youtube.com/embed/UDDTnirwi_4?autoplay=0&amp;origin=http://intlayer.org&amp;controls=0&amp;rel=1"/>
35
35
 
36
36
  Intlayer CMS — это приложение, которое позволяет вам вынести контент проекта Intlayer во внешнее управление.
37
37
 
@@ -24,7 +24,7 @@ history:
24
24
 
25
25
  # Документация по Intlayer Visual Editor
26
26
 
27
- <iframe title="Visual Editor + CMS for Your Web App: Intlayer Explained" class="m-auto aspect-[16/9] w-full overflow-hidden rounded-lg border-0" allow="autoplay; gyroscope;" loading="lazy" width="1080" height="auto" src="https://www.youtube.com/embed/UDDTnirwi_4?autoplay=0&amp;origin=http://intlayer.org&amp;controls=0&amp;rel=1"/>
27
+ <iframe title="Visual Editor + CMS for Your Web App: Intlayer Explained" class="m-auto aspect-16/9 w-full overflow-hidden rounded-lg border-0" allow="autoplay; gyroscope;" loading="lazy" width="1080" height="auto" src="https://www.youtube.com/embed/UDDTnirwi_4?autoplay=0&amp;origin=http://intlayer.org&amp;controls=0&amp;rel=1"/>
28
28
 
29
29
  Intlayer Visual Editor - это инструмент, который оборачивает ваш веб-сайт для взаимодействия с файлами декларации контента с использованием визуального редактора.
30
30
 
@@ -25,7 +25,7 @@ history:
25
25
 
26
26
  # Переведите ваш Next.js 15 с Intlayer | Интернационализация (i18n)
27
27
 
28
- <iframe title="Лучшее решение i18n для Next.js? Откройте для себя Intlayer" class="m-auto aspect-[16/9] w-full overflow-hidden rounded-lg border-0" allow="autoplay; gyroscope;" loading="lazy" width="1080" height="auto" src="https://www.youtube.com/embed/e_PPG7PTqGU?autoplay=0&amp;origin=http://intlayer.org&amp;controls=0&amp;rel=1"/>
28
+ <iframe title="Лучшее решение i18n для Next.js? Откройте для себя Intlayer" class="m-auto aspect-16/9 w-full overflow-hidden rounded-lg border-0" allow="autoplay; gyroscope;" loading="lazy" width="1080" height="auto" src="https://www.youtube.com/embed/e_PPG7PTqGU?autoplay=0&amp;origin=http://intlayer.org&amp;controls=0&amp;rel=1"/>
29
29
 
30
30
  Смотрите [Шаблон приложения](https://github.com/aymericzip/intlayer-next-15-template) на GitHub.
31
31
 
@@ -27,7 +27,7 @@ history:
27
27
  <Tab defaultTab="video">
28
28
  <TabItem label="Video" value="video">
29
29
 
30
- <iframe title="Лучшее решение i18n для Next.js? Откройте для себя Intlayer" class="m-auto aspect-[16/9] w-full overflow-hidden rounded-lg border-0" allow="autoplay; gyroscope;" loading="lazy" width="1080" height="auto" src="https://www.youtube.com/embed/e_PPG7PTqGU?autoplay=0&amp;origin=http://intlayer.org&amp;controls=0&amp;rel=1"/>
30
+ <iframe title="Лучшее решение i18n для Next.js? Откройте для себя Intlayer" class="m-auto aspect-16/9 w-full overflow-hidden rounded-lg border-0" allow="autoplay; gyroscope;" loading="lazy" width="1080" height="auto" src="https://www.youtube.com/embed/e_PPG7PTqGU?autoplay=0&amp;origin=http://intlayer.org&amp;controls=0&amp;rel=1"/>
31
31
 
32
32
  </TabItem>
33
33
  <TabItem label="Code" value="code">
@@ -49,7 +49,7 @@ history:
49
49
  <Tab defaultTab="video">
50
50
  <TabItem label="Видео" value="video">
51
51
 
52
- <iframe title="Как перевести ваше приложение Nuxt и Vue с помощью Intlayer? Откройте для себя Intlayer" class="m-auto aspect-[16/9] w-full overflow-hidden rounded-lg border-0" allow="autoplay; gyroscope;" loading="lazy" width="1080" height="auto" src="https://www.youtube.com/embed/nhUcUAVQ6eQ?autoplay=0&amp;origin=http://intlayer.org&amp;controls=0&amp;rel=1"/>
52
+ <iframe title="Как перевести ваше приложение Nuxt и Vue с помощью Intlayer? Откройте для себя Intlayer" class="m-auto aspect-16/9 w-full overflow-hidden rounded-lg border-0" allow="autoplay; gyroscope;" loading="lazy" width="1080" height="auto" src="https://www.youtube.com/embed/nhUcUAVQ6eQ?autoplay=0&amp;origin=http://intlayer.org&amp;controls=0&amp;rel=1"/>
53
53
 
54
54
  </TabItem>
55
55
  <TabItem label="Код" value="code">
@@ -373,11 +373,11 @@ import { useIntlayer } from "vue-intlayer";
373
373
  const content = useIntlayer("home-page");
374
374
 
375
375
  useHead({
376
- title: content.metaTitle.value,
376
+ title: content.metaTitle.raw,
377
377
  meta: [
378
378
  {
379
379
  name: "description",
380
- content: content.metaDescription.value,
380
+ content: content.metaDescription.raw,
381
381
  },
382
382
  ],
383
383
  });
@@ -85,7 +85,7 @@ pnpm add vite-intlayer --save-dev
85
85
  <Tab defaultTab="video">
86
86
  <TabItem label="Video" value="video">
87
87
 
88
- <iframe title="How to translate your React Router v7 app using Intlayer" class="m-auto aspect-[16/9] w-full overflow-hidden rounded-lg border-0" allow="autoplay; gyroscope;" loading="lazy" width="1080" height="auto" src="https://www.youtube.com/embed/dS9L7uJeak4?autoplay=0&amp;origin=http://intlayer.org&amp;controls=0&amp;rel=1"/>
88
+ <iframe title="How to translate your React Router v7 app using Intlayer" class="m-auto aspect-16/9 w-full overflow-hidden rounded-lg border-0" allow="autoplay; gyroscope;" loading="lazy" width="1080" height="auto" src="https://www.youtube.com/embed/dS9L7uJeak4?autoplay=0&amp;origin=http://intlayer.org&amp;controls=0&amp;rel=1"/>
89
89
 
90
90
  </TabItem>
91
91
  <TabItem label="Code" value="code">
@@ -54,7 +54,7 @@ history:
54
54
  <Tab defaultTab="video">
55
55
  <TabItem label="Video" value="video">
56
56
 
57
- <iframe title="How to translate your React Router v7 (File-System Routes) app using Intlayer" class="m-auto aspect-[16/9] w-full overflow-hidden rounded-lg border-0" allow="autoplay; gyroscope;" loading="lazy" width="1080" height="auto" src="https://www.youtube.com/embed/dS9L7uJeak4?autoplay=0&amp;origin=http://intlayer.org&amp;controls=0&amp;rel=1"/>
57
+ <iframe title="How to translate your React Router v7 (File-System Routes) app using Intlayer" class="m-auto aspect-16/9 w-full overflow-hidden rounded-lg border-0" allow="autoplay; gyroscope;" loading="lazy" width="1080" height="auto" src="https://www.youtube.com/embed/dS9L7uJeak4?autoplay=0&amp;origin=http://intlayer.org&amp;controls=0&amp;rel=1"/>
58
58
 
59
59
  </TabItem>
60
60
  <TabItem label="Code" value="code">
@@ -57,7 +57,7 @@ history:
57
57
  <Tab defaultTab="video">
58
58
  <TabItem label="Video" value="video">
59
59
 
60
- <iframe title="Лучшее решение i18n для Tanstack Start? Откройте для себя Intlayer" class="m-auto aspect-[16/9] w-full overflow-hidden rounded-lg border-0" allow="autoplay; gyroscope;" loading="lazy" width="1080" height="auto" src="https://www.youtube.com/embed/_XTdKVWaeqg?autoplay=0&amp;origin=http://intlayer.org&amp;controls=0&amp;rel=1"/>
60
+ <iframe title="Лучшее решение i18n для Tanstack Start? Откройте для себя Intlayer" class="m-auto aspect-16/9 w-full overflow-hidden rounded-lg border-0" allow="autoplay; gyroscope;" loading="lazy" width="1080" height="auto" src="https://www.youtube.com/embed/_XTdKVWaeqg?autoplay=0&amp;origin=http://intlayer.org&amp;controls=0&amp;rel=1"/>
61
61
 
62
62
  </TabItem>
63
63
  <TabItem label="Code" value="code">
@@ -47,7 +47,7 @@ history:
47
47
  <Tab defaultTab="video">
48
48
  <TabItem label="Видео" value="video">
49
49
 
50
- <iframe title="Лучшee решение для i18n в Vite и React? Откройте для себя Intlayer" class="m-auto aspect-[16/9] w-full overflow-hidden rounded-lg border-0" allow="autoplay; gyroscope;" loading="lazy" width="1080" height="auto" src="https://www.youtube.com/embed/dS9L7uJeak4?si=VaKmrYMmXjo3xpk2"/>
50
+ <iframe title="Лучшee решение для i18n в Vite и React? Откройте для себя Intlayer" class="m-auto aspect-16/9 w-full overflow-hidden rounded-lg border-0" allow="autoplay; gyroscope;" loading="lazy" width="1080" height="auto" src="https://www.youtube.com/embed/dS9L7uJeak4?si=VaKmrYMmXjo3xpk2"/>
51
51
 
52
52
  </TabItem>
53
53
  <TabItem label="Код" value="code">
@@ -44,7 +44,7 @@ history:
44
44
  <Tab defaultTab="video">
45
45
  <TabItem label="Видео" value="video">
46
46
 
47
- <iframe title="The best i18n solution for Vite and Vue? Discover Intlayer" class="m-auto aspect-[16/9] w-full overflow-hidden rounded-lg border-0" allow="autoplay; gyroscope;" loading="lazy" width="1080" height="auto" src="https://www.youtube.com/embed/IE3XWkZ6a5U?autoplay=0&amp;origin=http://intlayer.org&amp;controls=0&amp;rel=1"/>
47
+ <iframe title="The best i18n solution for Vite and Vue? Discover Intlayer" class="m-auto aspect-16/9 w-full overflow-hidden rounded-lg border-0" allow="autoplay; gyroscope;" loading="lazy" width="1080" height="auto" src="https://www.youtube.com/embed/IE3XWkZ6a5U?autoplay=0&amp;origin=http://intlayer.org&amp;controls=0&amp;rel=1"/>
48
48
 
49
49
  </TabItem>
50
50
  <TabItem label="Код" value="code">
@@ -19,6 +19,9 @@ slugs:
19
19
  - intlayer
20
20
  - getLocaleName
21
21
  history:
22
+ - version: 7.5.0
23
+ date: 2025-12-18
24
+ changes: Добавление polyfills для React Native и старых сред
22
25
  - version: 5.5.10
23
26
  date: 2025-06-29
24
27
  changes: Инициализация истории
@@ -33,7 +36,6 @@ history:
33
36
  ## Параметры
34
37
 
35
38
  - `displayLocale: Locales`
36
-
37
39
  - **Описание**: Локаль, на языке которой будет отображаться название целевой локали.
38
40
  - **Тип**: Enum или строка, представляющая допустимые локали.
39
41
 
@@ -117,3 +119,17 @@ getLocaleName("unknown-locale"); // Вывод: "Unknown locale"
117
119
  - Функция по умолчанию возвращает собственное имя `displayLocale`.
118
120
  - **Отсутствие переводов:**
119
121
  - Если `localeNameTranslations` не содержит записи для `targetLocale` или конкретного `displayLocale`, функция возвращает `ownLocalesName` или `"Unknown locale"`.
122
+
123
+ ## Polyfills для React Native и старых сред
124
+
125
+ Функция `getLocaleName` зависит от API `Intl.DisplayNames`, которая недоступна в React Native или старых средах JavaScript. Если вы используете `getLocaleName` в этих средах, вам нужно добавить polyfills.
126
+
127
+ Импортируйте polyfills в начале вашего приложения, желательно в файле точки входа (например, `index.js`, `App.tsx` или `main.tsx`):
128
+
129
+ ```typescript
130
+ import "intl";
131
+ import "@formatjs/intl-locale/polyfill";
132
+ import "@formatjs/intl-displaynames/polyfill";
133
+ ```
134
+
135
+ Для получения дополнительной информации см. [документацию по polyfills FormatJS](https://formatjs.io/docs/polyfills/intl-displaynames/).
@@ -34,7 +34,7 @@ history:
34
34
 
35
35
  # Синхронизация JSON (мосты i18n) - Синхронизация JSON с поддержкой ICU / i18next
36
36
 
37
- <iframe title="Как поддерживать синхронизацию ваших JSON-переводов с Intlayer" class="m-auto aspect-[16/9] w-full overflow-hidden rounded-lg border-0" allow="autoplay; gyroscope;" loading="lazy" width="1080" height="auto" src="https://www.youtube.com/embed/MpGMxniDHNg?autoplay=0&amp;origin=http://intlayer.org&amp;controls=0&amp;rel=1"/>
37
+ <iframe title="Как поддерживать синхронизацию ваших JSON-переводов с Intlayer" class="m-auto aspect-16/9 w-full overflow-hidden rounded-lg border-0" allow="autoplay; gyroscope;" loading="lazy" width="1080" height="auto" src="https://www.youtube.com/embed/MpGMxniDHNg?autoplay=0&amp;origin=http://intlayer.org&amp;controls=0&amp;rel=1"/>
38
38
 
39
39
  Используйте Intlayer в качестве дополнения к вашему существующему стеку i18n. Этот плагин поддерживает синхронизацию ваших JSON-сообщений со словарями Intlayer, чтобы вы могли:
40
40
 
@@ -25,7 +25,7 @@ history:
25
25
 
26
26
  # İçerik Dosyası
27
27
 
28
- <iframe title="i18n, Markdown, JSON… hepsini yönetmek için tek bir çözüm | Intlayer" class="m-auto aspect-[16/9] w-full overflow-hidden rounded-lg border-0" allow="autoplay; gyroscope;" loading="lazy" width="1080" height="auto" src="https://www.youtube.com/embed/1VHgSY_j9_I?autoplay=0&amp;origin=http://intlayer.org&amp;controls=0&amp;rel=1"/>
28
+ <iframe title="i18n, Markdown, JSON… hepsini yönetmek için tek bir çözüm | Intlayer" class="m-auto aspect-16/9 w-full overflow-hidden rounded-lg border-0" allow="autoplay; gyroscope;" loading="lazy" width="1080" height="auto" src="https://www.youtube.com/embed/1VHgSY_j9_I?autoplay=0&amp;origin=http://intlayer.org&amp;controls=0&amp;rel=1"/>
29
29
 
30
30
  ## İçerik Dosyası Nedir?
31
31
 
@@ -31,7 +31,7 @@ history:
31
31
 
32
32
  # Intlayer İçerik Yönetim Sistemi (CMS) Dokümantasyonu
33
33
 
34
- <iframe title="Görsel Editör + Web Uygulamanız için CMS: Intlayer Açıklaması" class="m-auto aspect-[16/9] w-full overflow-hidden rounded-lg border-0" allow="autoplay; gyroscope;" loading="lazy" width="1080" height="auto" src="https://www.youtube.com/embed/UDDTnirwi_4?autoplay=0&amp;origin=http://intlayer.org&amp;controls=0&amp;rel=1"/>
34
+ <iframe title="Görsel Editör + Web Uygulamanız için CMS: Intlayer Açıklaması" class="m-auto aspect-16/9 w-full overflow-hidden rounded-lg border-0" allow="autoplay; gyroscope;" loading="lazy" width="1080" height="auto" src="https://www.youtube.com/embed/UDDTnirwi_4?autoplay=0&amp;origin=http://intlayer.org&amp;controls=0&amp;rel=1"/>
35
35
 
36
36
  Intlayer CMS, bir Intlayer projesinin içeriğini dışa aktarmanıza olanak tanıyan bir uygulamadır.
37
37
 
@@ -24,7 +24,7 @@ history:
24
24
 
25
25
  # Intlayer Görsel Düzenleyici Dokümantasyonu
26
26
 
27
- <iframe title="Web Uygulamanız İçin Görsel Düzenleyici + CMS: Intlayer Açıklaması" class="m-auto aspect-[16/9] w-full overflow-hidden rounded-lg border-0" allow="autoplay; gyroscope;" loading="lazy" width="1080" height="auto" src="https://www.youtube.com/embed/UDDTnirwi_4?autoplay=0&amp;origin=http://intlayer.org&amp;controls=0&amp;rel=1"/>
27
+ <iframe title="Web Uygulamanız İçin Görsel Düzenleyici + CMS: Intlayer Açıklaması" class="m-auto aspect-16/9 w-full overflow-hidden rounded-lg border-0" allow="autoplay; gyroscope;" loading="lazy" width="1080" height="auto" src="https://www.youtube.com/embed/UDDTnirwi_4?autoplay=0&amp;origin=http://intlayer.org&amp;controls=0&amp;rel=1"/>
28
28
 
29
29
  Intlayer Görsel Düzenleyici, web sitenizi bir iframe içine sararak içerik bildirim dosyalarınızla görsel düzenleyici kullanarak etkileşim kurmanıza olanak tanıyan bir araçtır.
30
30
 
@@ -28,7 +28,7 @@ history:
28
28
 
29
29
  # Intlayer ile Next.js 15 çevirin | Uluslararasılaştırma (i18n)
30
30
 
31
- <iframe title="Next.js için en iyi i18n çözümü mü? Intlayer'ı keşfedin" class="m-auto aspect-[16/9] w-full overflow-hidden rounded-lg border-0" allow="autoplay; gyroscope;" loading="lazy" width="1080" height="auto" src="https://www.youtube.com/embed/e_PPG7PTqGU?autoplay=0&amp;origin=http://intlayer.org&amp;controls=0&amp;rel=1"/>
31
+ <iframe title="Next.js için en iyi i18n çözümü mü? Intlayer'ı keşfedin" class="m-auto aspect-16/9 w-full overflow-hidden rounded-lg border-0" allow="autoplay; gyroscope;" loading="lazy" width="1080" height="auto" src="https://www.youtube.com/embed/e_PPG7PTqGU?autoplay=0&amp;origin=http://intlayer.org&amp;controls=0&amp;rel=1"/>
32
32
 
33
33
  GitHub'da [Uygulama Şablonu](https://github.com/aymericzip/intlayer-next-15-template)na bakın.
34
34
 
@@ -27,7 +27,7 @@ history:
27
27
  <Tab defaultTab="video">
28
28
  <TabItem label="Video" value="video">
29
29
 
30
- <iframe title="Next.js için en iyi i18n çözümü mü? Intlayer'ı keşfedin" class="m-auto aspect-[16/9] w-full overflow-hidden rounded-lg border-0" allow="autoplay; gyroscope;" loading="lazy" width="1080" height="auto" src="https://www.youtube.com/embed/e_PPG7PTqGU?autoplay=0&amp;origin=http://intlayer.org&amp;controls=0&amp;rel=1"/>
30
+ <iframe title="Next.js için en iyi i18n çözümü mü? Intlayer'ı keşfedin" class="m-auto aspect-16/9 w-full overflow-hidden rounded-lg border-0" allow="autoplay; gyroscope;" loading="lazy" width="1080" height="auto" src="https://www.youtube.com/embed/e_PPG7PTqGU?autoplay=0&amp;origin=http://intlayer.org&amp;controls=0&amp;rel=1"/>
31
31
 
32
32
  </TabItem>
33
33
  <TabItem label="Code" value="code">
@@ -49,7 +49,7 @@ Intlayer ile şunları yapabilirsiniz:
49
49
  <Tab defaultTab="video">
50
50
  <TabItem label="Video" value="video">
51
51
 
52
- <iframe title="Nuxt ve Vue uygulamanızı Intlayer kullanarak nasıl çevirirsiniz? Intlayer'ı keşfedin" class="m-auto aspect-[16/9] w-full overflow-hidden rounded-lg border-0" allow="autoplay; gyroscope;" loading="lazy" width="1080" height="auto" src="https://www.youtube.com/embed/nhUcUAVQ6eQ?autoplay=0&amp;origin=http://intlayer.org&amp;controls=0&amp;rel=1"/>
52
+ <iframe title="Nuxt ve Vue uygulamanızı Intlayer kullanarak nasıl çevirirsiniz? Intlayer'ı keşfedin" class="m-auto aspect-16/9 w-full overflow-hidden rounded-lg border-0" allow="autoplay; gyroscope;" loading="lazy" width="1080" height="auto" src="https://www.youtube.com/embed/nhUcUAVQ6eQ?autoplay=0&amp;origin=http://intlayer.org&amp;controls=0&amp;rel=1"/>
53
53
 
54
54
  </TabItem>
55
55
  <TabItem label="Kod" value="code">
@@ -373,11 +373,11 @@ import { useIntlayer } from "vue-intlayer";
373
373
  const content = useIntlayer("home-page");
374
374
 
375
375
  useHead({
376
- title: content.metaTitle.value,
376
+ title: content.metaTitle.raw,
377
377
  meta: [
378
378
  {
379
379
  name: "description",
380
- content: content.metaDescription.value,
380
+ content: content.metaDescription.raw,
381
381
  },
382
382
  ],
383
383
  });
@@ -83,7 +83,7 @@ pnpm add vite-intlayer --save-dev
83
83
  <Tab defaultTab="video">
84
84
  <TabItem label="Video" value="video">
85
85
 
86
- <iframe title="How to translate your React Router v7 app using Intlayer" class="m-auto aspect-[16/9] w-full overflow-hidden rounded-lg border-0" allow="autoplay; gyroscope;" loading="lazy" width="1080" height="auto" src="https://www.youtube.com/embed/dS9L7uJeak4?autoplay=0&amp;origin=http://intlayer.org&amp;controls=0&amp;rel=1"/>
86
+ <iframe title="How to translate your React Router v7 app using Intlayer" class="m-auto aspect-16/9 w-full overflow-hidden rounded-lg border-0" allow="autoplay; gyroscope;" loading="lazy" width="1080" height="auto" src="https://www.youtube.com/embed/dS9L7uJeak4?autoplay=0&amp;origin=http://intlayer.org&amp;controls=0&amp;rel=1"/>
87
87
 
88
88
  </TabItem>
89
89
  <TabItem label="Code" value="code">
@@ -54,7 +54,7 @@ Intlayer ile şunları yapabilirsiniz:
54
54
  <Tab defaultTab="video">
55
55
  <TabItem label="Video" value="video">
56
56
 
57
- <iframe title="How to translate your React Router v7 (File-System Routes) app using Intlayer" class="m-auto aspect-[16/9] w-full overflow-hidden rounded-lg border-0" allow="autoplay; gyroscope;" loading="lazy" width="1080" height="auto" src="https://www.youtube.com/embed/dS9L7uJeak4?autoplay=0&amp;origin=http://intlayer.org&amp;controls=0&amp;rel=1"/>
57
+ <iframe title="How to translate your React Router v7 (File-System Routes) app using Intlayer" class="m-auto aspect-16/9 w-full overflow-hidden rounded-lg border-0" allow="autoplay; gyroscope;" loading="lazy" width="1080" height="auto" src="https://www.youtube.com/embed/dS9L7uJeak4?autoplay=0&amp;origin=http://intlayer.org&amp;controls=0&amp;rel=1"/>
58
58
 
59
59
  </TabItem>
60
60
  <TabItem label="Code" value="code">
@@ -60,7 +60,7 @@ Intlayer ile şunları yapabilirsiniz:
60
60
  <Tab defaultTab="video">
61
61
  <TabItem label="Video" value="video">
62
62
 
63
- <iframe title="Tanstack Start için en iyi i18n çözümü mü? Intlayer'ı keşfedin" class="m-auto aspect-[16/9] w-full overflow-hidden rounded-lg border-0" allow="autoplay; gyroscope;" loading="lazy" width="1080" height="auto" src="https://www.youtube.com/embed/_XTdKVWaeqg?autoplay=0&amp;origin=http://intlayer.org&amp;controls=0&amp;rel=1"/>
63
+ <iframe title="Tanstack Start için en iyi i18n çözümü mü? Intlayer'ı keşfedin" class="m-auto aspect-16/9 w-full overflow-hidden rounded-lg border-0" allow="autoplay; gyroscope;" loading="lazy" width="1080" height="auto" src="https://www.youtube.com/embed/_XTdKVWaeqg?autoplay=0&amp;origin=http://intlayer.org&amp;controls=0&amp;rel=1"/>
64
64
 
65
65
  </TabItem>
66
66
  <TabItem label="Code" value="code">
@@ -47,7 +47,7 @@ Intlayer ile şunları yapabilirsiniz:
47
47
  <Tab defaultTab="video">
48
48
  <TabItem label="Video" value="video">
49
49
 
50
- <iframe title="Vite ve React için en iyi i18n çözümü? Intlayer'ı keşfedin" class="m-auto aspect-[16/9] w-full overflow-hidden rounded-lg border-0" allow="autoplay; gyroscope;" loading="lazy" width="1080" height="auto" src="https://www.youtube.com/embed/dS9L7uJeak4?si=VaKmrYMmXjo3xpk2"/>
50
+ <iframe title="Vite ve React için en iyi i18n çözümü? Intlayer'ı keşfedin" class="m-auto aspect-16/9 w-full overflow-hidden rounded-lg border-0" allow="autoplay; gyroscope;" loading="lazy" width="1080" height="auto" src="https://www.youtube.com/embed/dS9L7uJeak4?si=VaKmrYMmXjo3xpk2"/>
51
51
 
52
52
  </TabItem>
53
53
  <TabItem label="Code" value="code">
@@ -44,7 +44,7 @@ Intlayer ile şunları yapabilirsiniz:
44
44
  <Tab defaultTab="video">
45
45
  <TabItem label="Video" value="video">
46
46
 
47
- <iframe title="The best i18n solution for Vite and Vue? Discover Intlayer" class="m-auto aspect-[16/9] w-full overflow-hidden rounded-lg border-0" allow="autoplay; gyroscope;" loading="lazy" width="1080" height="auto" src="https://www.youtube.com/embed/IE3XWkZ6a5U?autoplay=0&amp;origin=http://intlayer.org&amp;controls=0&amp;rel=1"/>
47
+ <iframe title="The best i18n solution for Vite and Vue? Discover Intlayer" class="m-auto aspect-16/9 w-full overflow-hidden rounded-lg border-0" allow="autoplay; gyroscope;" loading="lazy" width="1080" height="auto" src="https://www.youtube.com/embed/IE3XWkZ6a5U?autoplay=0&amp;origin=http://intlayer.org&amp;controls=0&amp;rel=1"/>
48
48
 
49
49
  </TabItem>
50
50
  <TabItem label="Kod" value="code">
@@ -19,6 +19,9 @@ slugs:
19
19
  - intlayer
20
20
  - getLocaleName
21
21
  history:
22
+ - version: 7.5.0
23
+ date: 2025-12-18
24
+ changes: React Native ve eski ortamlar için polyfills ekle
22
25
  - version: 5.5.10
23
26
  date: 2025-06-29
24
27
  changes: Geçmiş başlatıldı
@@ -116,3 +119,17 @@ getLocaleName("unknown-locale"); // Çıktı: "Unknown locale"
116
119
  - Fonksiyon varsayılan olarak `displayLocale`'un kendi adını döndürür.
117
120
  - **Eksik çeviriler:**
118
121
  - `localeNameTranslations` `targetLocale` veya belirli `displayLocale` için bir giriş içermezse, fonksiyon `ownLocalesName`'e geri döner veya `"Unknown locale"` döndürür.
122
+
123
+ ## React Native ve Eski Ortamlar için Polyfills
124
+
125
+ `getLocaleName` fonksiyonu `Intl.DisplayNames` API'sine bağımlıdır ve bu API React Native veya eski JavaScript ortamlarında mevcut değildir. Bu ortamlarda `getLocaleName` kullanıyorsanız, polyfills eklemeniz gerekir.
126
+
127
+ Polyfills'i uygulamanızın başında, tercihen giriş noktası dosyanızda (örneğin, `index.js`, `App.tsx` veya `main.tsx`) içe aktarın:
128
+
129
+ ```typescript
130
+ import "intl";
131
+ import "@formatjs/intl-locale/polyfill";
132
+ import "@formatjs/intl-displaynames/polyfill";
133
+ ```
134
+
135
+ Daha fazla ayrıntı için [FormatJS polyfills belgelerine](https://formatjs.io/docs/polyfills/intl-displaynames/) bakın.
@@ -34,7 +34,7 @@ history:
34
34
 
35
35
  # JSON Senkronizasyonu (i18n köprüleri) - ICU / i18next desteği ile JSON Senkronizasyonu
36
36
 
37
- <iframe title="JSON çevirilerinizi Intlayer ile nasıl senkronize tutarsınız" class="m-auto aspect-[16/9] w-full overflow-hidden rounded-lg border-0" allow="autoplay; gyroscope;" loading="lazy" width="1080" height="auto" src="https://www.youtube.com/embed/MpGMxniDHNg?autoplay=0&amp;origin=http://intlayer.org&amp;controls=0&amp;rel=1"/>
37
+ <iframe title="JSON çevirilerinizi Intlayer ile nasıl senkronize tutarsınız" class="m-auto aspect-16/9 w-full overflow-hidden rounded-lg border-0" allow="autoplay; gyroscope;" loading="lazy" width="1080" height="auto" src="https://www.youtube.com/embed/MpGMxniDHNg?autoplay=0&amp;origin=http://intlayer.org&amp;controls=0&amp;rel=1"/>
38
38
 
39
39
  Intlayer'ı mevcut i18n yapınıza bir eklenti olarak kullanın. Bu eklenti, JSON mesajlarınızı Intlayer sözlükleriyle senkronize tutar, böylece:
40
40
 
@@ -28,7 +28,7 @@ history:
28
28
 
29
29
  # Tệp Nội Dung
30
30
 
31
- <iframe title="i18n, Markdown, JSON… một giải pháp duy nhất để quản lý tất cả | Intlayer" class="m-auto aspect-[16/9] w-full overflow-hidden rounded-lg border-0" allow="autoplay; gyroscope;" loading="lazy" width="1080" height="auto" src="https://www.youtube.com/embed/1VHgSY_j9_I?autoplay=0&amp;origin=http://intlayer.org&amp;controls=0&amp;rel=1"/>
31
+ <iframe title="i18n, Markdown, JSON… một giải pháp duy nhất để quản lý tất cả | Intlayer" class="m-auto aspect-16/9 w-full overflow-hidden rounded-lg border-0" allow="autoplay; gyroscope;" loading="lazy" width="1080" height="auto" src="https://www.youtube.com/embed/1VHgSY_j9_I?autoplay=0&amp;origin=http://intlayer.org&amp;controls=0&amp;rel=1"/>
32
32
 
33
33
  ## Tệp Nội Dung là gì?
34
34
 
@@ -31,7 +31,7 @@ history:
31
31
 
32
32
  # Tài liệu Hệ thống Quản lý Nội dung (CMS) Intlayer
33
33
 
34
- <iframe title="Trình chỉnh sửa trực quan + CMS cho Ứng dụng Web của bạn: Giải thích về Intlayer" class="m-auto aspect-[16/9] w-full overflow-hidden rounded-lg border-0" allow="autoplay; gyroscope;" loading="lazy" width="1080" height="auto" src="https://www.youtube.com/embed/UDDTnirwi_4?autoplay=0&amp;origin=http://intlayer.org&amp;controls=0&amp;rel=1"/>
34
+ <iframe title="Trình chỉnh sửa trực quan + CMS cho Ứng dụng Web của bạn: Giải thích về Intlayer" class="m-auto aspect-16/9 w-full overflow-hidden rounded-lg border-0" allow="autoplay; gyroscope;" loading="lazy" width="1080" height="auto" src="https://www.youtube.com/embed/UDDTnirwi_4?autoplay=0&amp;origin=http://intlayer.org&amp;controls=0&amp;rel=1"/>
35
35
 
36
36
  Intlayer CMS là một ứng dụng cho phép bạn đưa nội dung của dự án Intlayer ra ngoài.
37
37
 
@@ -33,7 +33,7 @@ history:
33
33
 
34
34
  # Tài liệu Trình chỉnh sửa trực quan Intlayer
35
35
 
36
- <iframe title="Trình chỉnh sửa trực quan + CMS cho ứng dụng web của bạn: Giải thích Intlayer" class="m-auto aspect-[16/9] w-full overflow-hidden rounded-lg border-0" allow="autoplay; gyroscope;" loading="lazy" width="1080" height="auto" src="https://www.youtube.com/embed/UDDTnirwi_4?autoplay=0&amp;origin=http://intlayer.org&amp;controls=0&amp;rel=1"/>
36
+ <iframe title="Trình chỉnh sửa trực quan + CMS cho ứng dụng web của bạn: Giải thích Intlayer" class="m-auto aspect-16/9 w-full overflow-hidden rounded-lg border-0" allow="autoplay; gyroscope;" loading="lazy" width="1080" height="auto" src="https://www.youtube.com/embed/UDDTnirwi_4?autoplay=0&amp;origin=http://intlayer.org&amp;controls=0&amp;rel=1"/>
37
37
 
38
38
  Trình chỉnh sửa trực quan Intlayer là một công cụ bao bọc trang web của bạn để tương tác với các tệp khai báo nội dung của bạn bằng cách sử dụng trình chỉnh sửa trực quan.
39
39
 
@@ -80,7 +80,7 @@ Với Intlayer, bạn có thể:
80
80
  <Tab defaultTab="video">
81
81
  <TabItem label="Video" value="video">
82
82
 
83
- <iframe title="Giải pháp i18n tốt nhất cho Next.js? Khám phá Intlayer" class="m-auto aspect-[16/9] w-full overflow-hidden rounded-lg border-0" allow="autoplay; gyroscope;" loading="lazy" width="1080" height="auto" src="https://www.youtube.com/embed/e_PPG7PTqGU?autoplay=0&amp;origin=http://intlayer.org&amp;controls=0&amp;rel=1"/>
83
+ <iframe title="Giải pháp i18n tốt nhất cho Next.js? Khám phá Intlayer" class="m-auto aspect-16/9 w-full overflow-hidden rounded-lg border-0" allow="autoplay; gyroscope;" loading="lazy" width="1080" height="auto" src="https://www.youtube.com/embed/e_PPG7PTqGU?autoplay=0&amp;origin=http://intlayer.org&amp;controls=0&amp;rel=1"/>
84
84
 
85
85
  </TabItem>
86
86
  <TabItem label="Code" value="code">
@@ -27,7 +27,7 @@ history:
27
27
  <Tab defaultTab="video">
28
28
  <TabItem label="Video" value="video">
29
29
 
30
- <iframe title="Giải pháp i18n tốt nhất cho Next.js? Khám phá Intlayer" class="m-auto aspect-[16/9] w-full overflow-hidden rounded-lg border-0" allow="autoplay; gyroscope;" loading="lazy" width="1080" height="auto" src="https://www.youtube.com/embed/e_PPG7PTqGU?autoplay=0&amp;origin=http://intlayer.org&amp;controls=0&amp;rel=1"/>
30
+ <iframe title="Giải pháp i18n tốt nhất cho Next.js? Khám phá Intlayer" class="m-auto aspect-16/9 w-full overflow-hidden rounded-lg border-0" allow="autoplay; gyroscope;" loading="lazy" width="1080" height="auto" src="https://www.youtube.com/embed/e_PPG7PTqGU?autoplay=0&amp;origin=http://intlayer.org&amp;controls=0&amp;rel=1"/>
31
31
 
32
32
  </TabItem>
33
33
  <TabItem label="Code" value="code">
@@ -49,7 +49,7 @@ Với Intlayer, bạn có thể:
49
49
  <Tab defaultTab="video">
50
50
  <TabItem label="Video" value="video">
51
51
 
52
- <iframe title="Cách dịch ứng dụng Nuxt và Vue của bạn bằng Intlayer? Khám phá Intlayer" class="m-auto aspect-[16/9] w-full overflow-hidden rounded-lg border-0" allow="autoplay; gyroscope;" loading="lazy" width="1080" height="auto" src="https://www.youtube.com/embed/nhUcUAVQ6eQ?autoplay=0&amp;origin=http://intlayer.org&amp;controls=0&amp;rel=1"/>
52
+ <iframe title="Cách dịch ứng dụng Nuxt và Vue của bạn bằng Intlayer? Khám phá Intlayer" class="m-auto aspect-16/9 w-full overflow-hidden rounded-lg border-0" allow="autoplay; gyroscope;" loading="lazy" width="1080" height="auto" src="https://www.youtube.com/embed/nhUcUAVQ6eQ?autoplay=0&amp;origin=http://intlayer.org&amp;controls=0&amp;rel=1"/>
53
53
 
54
54
  </TabItem>
55
55
  <TabItem label="Mã nguồn" value="code">
@@ -373,11 +373,11 @@ import { useIntlayer } from "vue-intlayer";
373
373
  const content = useIntlayer("home-page");
374
374
 
375
375
  useHead({
376
- title: content.metaTitle.value,
376
+ title: content.metaTitle.raw,
377
377
  meta: [
378
378
  {
379
379
  name: "description",
380
- content: content.metaDescription.value,
380
+ content: content.metaDescription.raw,
381
381
  },
382
382
  ],
383
383
  });
@@ -91,7 +91,7 @@ pnpm add vite-intlayer --save-dev
91
91
  <Tab defaultTab="video">
92
92
  <TabItem label="Video" value="video">
93
93
 
94
- <iframe title="How to translate your React Router v7 app using Intlayer" class="m-auto aspect-[16/9] w-full overflow-hidden rounded-lg border-0" allow="autoplay; gyroscope;" loading="lazy" width="1080" height="auto" src="https://www.youtube.com/embed/dS9L7uJeak4?autoplay=0&amp;origin=http://intlayer.org&amp;controls=0&amp;rel=1"/>
94
+ <iframe title="How to translate your React Router v7 app using Intlayer" class="m-auto aspect-16/9 w-full overflow-hidden rounded-lg border-0" allow="autoplay; gyroscope;" loading="lazy" width="1080" height="auto" src="https://www.youtube.com/embed/dS9L7uJeak4?autoplay=0&amp;origin=http://intlayer.org&amp;controls=0&amp;rel=1"/>
95
95
 
96
96
  </TabItem>
97
97
  <TabItem label="Code" value="code">
@@ -91,7 +91,7 @@ pnpm add vite-intlayer --save-dev
91
91
  <Tab defaultTab="video">
92
92
  <TabItem label="Video" value="video">
93
93
 
94
- <iframe title="How to translate your React Router v7 (File-System Routes) app using Intlayer" class="m-auto aspect-[16/9] w-full overflow-hidden rounded-lg border-0" allow="autoplay; gyroscope;" loading="lazy" width="1080" height="auto" src="https://www.youtube.com/embed/dS9L7uJeak4?autoplay=0&amp;origin=http://intlayer.org&amp;controls=0&amp;rel=1"/>
94
+ <iframe title="How to translate your React Router v7 (File-System Routes) app using Intlayer" class="m-auto aspect-16/9 w-full overflow-hidden rounded-lg border-0" allow="autoplay; gyroscope;" loading="lazy" width="1080" height="auto" src="https://www.youtube.com/embed/dS9L7uJeak4?autoplay=0&amp;origin=http://intlayer.org&amp;controls=0&amp;rel=1"/>
95
95
 
96
96
  </TabItem>
97
97
  <TabItem label="Code" value="code">
@@ -60,7 +60,7 @@ Với Intlayer, bạn có thể:
60
60
  <Tab defaultTab="video">
61
61
  <TabItem label="Video" value="video">
62
62
 
63
- <iframe title="Giải pháp i18n tốt nhất cho Tanstack Start? Khám phá Intlayer" class="m-auto aspect-[16/9] w-full overflow-hidden rounded-lg border-0" allow="autoplay; gyroscope;" loading="lazy" width="1080" height="auto" src="https://www.youtube.com/embed/_XTdKVWaeqg?autoplay=0&amp;origin=http://intlayer.org&amp;controls=0&amp;rel=1"/>
63
+ <iframe title="Giải pháp i18n tốt nhất cho Tanstack Start? Khám phá Intlayer" class="m-auto aspect-16/9 w-full overflow-hidden rounded-lg border-0" allow="autoplay; gyroscope;" loading="lazy" width="1080" height="auto" src="https://www.youtube.com/embed/_XTdKVWaeqg?autoplay=0&amp;origin=http://intlayer.org&amp;controls=0&amp;rel=1"/>
64
64
 
65
65
  </TabItem>
66
66
  <TabItem label="Code" value="code">
@@ -1503,8 +1503,7 @@ import { forwardRef } from "preact/compat";
1503
1503
  export const checkIsExternalLink = (href?: string) =>
1504
1504
  /^https?:\/\//.test(href ?? "");
1505
1505
 
1506
- export interface LocalizedLinkProps
1507
- extends JSX.HTMLAttributes<HTMLAnchorElement> {
1506
+ export interface LocalizedLinkProps extends JSX.HTMLAttributes<HTMLAnchorElement> {
1508
1507
  href: string;
1509
1508
  replace?: boolean;
1510
1509
  }
@@ -47,7 +47,7 @@ Với Intlayer, bạn có thể:
47
47
  <Tab defaultTab="video">
48
48
  <TabItem label="Video" value="video">
49
49
 
50
- <iframe title="Giải pháp i18n tốt nhất cho Vite và React? Khám phá Intlayer" class="m-auto aspect-[16/9] w-full overflow-hidden rounded-lg border-0" allow="autoplay; gyroscope;" loading="lazy" width="1080" height="auto" src="https://www.youtube.com/embed/dS9L7uJeak4?si=VaKmrYMmXjo3xpk2"/>
50
+ <iframe title="Giải pháp i18n tốt nhất cho Vite và React? Khám phá Intlayer" class="m-auto aspect-16/9 w-full overflow-hidden rounded-lg border-0" allow="autoplay; gyroscope;" loading="lazy" width="1080" height="auto" src="https://www.youtube.com/embed/dS9L7uJeak4?si=VaKmrYMmXjo3xpk2"/>
51
51
 
52
52
  </TabItem>
53
53
  <TabItem label="Code" value="code">
@@ -46,7 +46,7 @@ Với Intlayer, bạn có thể:
46
46
  <Tab defaultTab="video">
47
47
  <TabItem label="Video" value="video">
48
48
 
49
- <iframe title="The best i18n solution for Vite and Vue? Discover Intlayer" class="m-auto aspect-[16/9] w-full overflow-hidden rounded-lg border-0" allow="autoplay; gyroscope;" loading="lazy" width="1080" height="auto" src="https://www.youtube.com/embed/IE3XWkZ6a5U?autoplay=0&amp;origin=http://intlayer.org&amp;controls=0&amp;rel=1"/>
49
+ <iframe title="The best i18n solution for Vite and Vue? Discover Intlayer" class="m-auto aspect-16/9 w-full overflow-hidden rounded-lg border-0" allow="autoplay; gyroscope;" loading="lazy" width="1080" height="auto" src="https://www.youtube.com/embed/IE3XWkZ6a5U?autoplay=0&amp;origin=http://intlayer.org&amp;controls=0&amp;rel=1"/>
50
50
 
51
51
  </TabItem>
52
52
  <TabItem label="Mã" value="code">
@@ -19,6 +19,9 @@ slugs:
19
19
  - intlayer
20
20
  - getLocaleName
21
21
  history:
22
+ - version: 7.5.0
23
+ date: 2025-12-18
24
+ changes: Thêm polyfills cho React Native và các môi trường cũ hơn
22
25
  - version: 5.5.10
23
26
  date: 2025-06-29
24
27
  changes: Khởi tạo lịch sử
@@ -127,3 +130,17 @@ getLocaleName("unknown-locale"); // Kết quả: "Unknown locale"
127
130
  - Hàm mặc định trả về tên của chính `displayLocale`.
128
131
  - **Thiếu bản dịch:**
129
132
  - Nếu `localeNameTranslations` không chứa mục cho `targetLocale` hoặc `displayLocale` cụ thể, hàm sẽ sử dụng lại `ownLocalesName` hoặc trả về `"Unknown locale"`.
133
+
134
+ ## Polyfills cho React Native và các môi trường cũ hơn
135
+
136
+ Hàm `getLocaleName` phụ thuộc vào API `Intl.DisplayNames`, không có sẵn trong React Native hoặc các môi trường JavaScript cũ hơn. Nếu bạn đang sử dụng `getLocaleName` trong các môi trường này, bạn cần thêm polyfills.
137
+
138
+ Nhập polyfills sớm trong ứng dụng của bạn, lý tưởng là trong tệp điểm vào của bạn (ví dụ: `index.js`, `App.tsx` hoặc `main.tsx`):
139
+
140
+ ```typescript
141
+ import "intl";
142
+ import "@formatjs/intl-locale/polyfill";
143
+ import "@formatjs/intl-displaynames/polyfill";
144
+ ```
145
+
146
+ Để biết thêm chi tiết, xem [tài liệu polyfills FormatJS](https://formatjs.io/docs/polyfills/intl-displaynames/).