@intlayer/docs 5.8.1-canary.0 → 6.0.0-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 (378) hide show
  1. package/blog/ar/rag_powered_documentation_assistant.md +282 -0
  2. package/blog/de/rag_powered_documentation_assistant.md +282 -0
  3. package/blog/en/rag_powered_documentation_assistant.md +289 -0
  4. package/blog/en-GB/rag_powered_documentation_assistant.md +284 -0
  5. package/blog/es/rag_powered_documentation_assistant.md +308 -0
  6. package/blog/fr/rag_powered_documentation_assistant.md +308 -0
  7. package/blog/hi/rag_powered_documentation_assistant.md +284 -0
  8. package/blog/it/rag_powered_documentation_assistant.md +284 -0
  9. package/blog/ja/rag_powered_documentation_assistant.md +284 -0
  10. package/blog/ko/rag_powered_documentation_assistant.md +283 -0
  11. package/blog/pt/rag_powered_documentation_assistant.md +284 -0
  12. package/blog/ru/rag_powered_documentation_assistant.md +284 -0
  13. package/blog/tr/index.md +69 -0
  14. package/blog/tr/internationalization_and_SEO.md +273 -0
  15. package/blog/tr/intlayer_with_i18next.md +162 -0
  16. package/blog/tr/intlayer_with_next-i18next.md +367 -0
  17. package/blog/tr/intlayer_with_next-intl.md +392 -0
  18. package/blog/tr/intlayer_with_react-i18next.md +346 -0
  19. package/blog/tr/intlayer_with_react-intl.md +345 -0
  20. package/blog/tr/list_i18n_technologies/CMS/drupal.md +143 -0
  21. package/blog/tr/list_i18n_technologies/CMS/wix.md +167 -0
  22. package/blog/tr/list_i18n_technologies/CMS/wordpress.md +188 -0
  23. package/blog/tr/list_i18n_technologies/frameworks/angular.md +125 -0
  24. package/blog/tr/list_i18n_technologies/frameworks/flutter.md +150 -0
  25. package/blog/tr/list_i18n_technologies/frameworks/react-native.md +217 -0
  26. package/blog/tr/list_i18n_technologies/frameworks/react.md +155 -0
  27. package/blog/tr/list_i18n_technologies/frameworks/svelte.md +129 -0
  28. package/blog/tr/list_i18n_technologies/frameworks/vue.md +130 -0
  29. package/blog/tr/next-i18next_vs_next-intl_vs_intlayer.md +170 -0
  30. package/blog/tr/rag_powered_documentation_assistant.md +284 -0
  31. package/blog/tr/react-i18next_vs_react-intl_vs_intlayer.md +162 -0
  32. package/blog/tr/vue-i18n_vs_intlayer.md +276 -0
  33. package/blog/tr/what_is_internationalization.md +166 -0
  34. package/blog/zh/rag_powered_documentation_assistant.md +284 -0
  35. package/dist/cjs/generated/blog.entry.cjs +212 -0
  36. package/dist/cjs/generated/blog.entry.cjs.map +1 -1
  37. package/dist/cjs/generated/docs.entry.cjs +660 -132
  38. package/dist/cjs/generated/docs.entry.cjs.map +1 -1
  39. package/dist/cjs/generated/frequentQuestions.entry.cjs +84 -0
  40. package/dist/cjs/generated/frequentQuestions.entry.cjs.map +1 -1
  41. package/dist/cjs/generated/legal.entry.cjs +6 -0
  42. package/dist/cjs/generated/legal.entry.cjs.map +1 -1
  43. package/dist/esm/generated/blog.entry.mjs +212 -0
  44. package/dist/esm/generated/blog.entry.mjs.map +1 -1
  45. package/dist/esm/generated/docs.entry.mjs +660 -132
  46. package/dist/esm/generated/docs.entry.mjs.map +1 -1
  47. package/dist/esm/generated/frequentQuestions.entry.mjs +84 -0
  48. package/dist/esm/generated/frequentQuestions.entry.mjs.map +1 -1
  49. package/dist/esm/generated/legal.entry.mjs +6 -0
  50. package/dist/esm/generated/legal.entry.mjs.map +1 -1
  51. package/dist/types/generated/blog.entry.d.ts +1 -0
  52. package/dist/types/generated/blog.entry.d.ts.map +1 -1
  53. package/dist/types/generated/docs.entry.d.ts +5 -2
  54. package/dist/types/generated/docs.entry.d.ts.map +1 -1
  55. package/dist/types/generated/frequentQuestions.entry.d.ts.map +1 -1
  56. package/dist/types/generated/legal.entry.d.ts.map +1 -1
  57. package/docs/ar/autoFill.md +41 -40
  58. package/docs/ar/configuration.md +202 -199
  59. package/docs/ar/dictionary/content_file.md +1059 -0
  60. package/docs/ar/intlayer_CMS.md +4 -4
  61. package/docs/ar/intlayer_with_nestjs.md +271 -0
  62. package/docs/ar/intlayer_with_nextjs_page_router.md +1 -1
  63. package/docs/ar/intlayer_with_react_router_v7.md +533 -0
  64. package/docs/ar/intlayer_with_tanstack.md +465 -299
  65. package/docs/ar/intlayer_with_vite+preact.md +7 -7
  66. package/docs/ar/intlayer_with_vite+react.md +7 -7
  67. package/docs/ar/intlayer_with_vite+vue.md +9 -9
  68. package/docs/ar/packages/vite-intlayer/index.md +3 -3
  69. package/docs/ar/readme.md +261 -0
  70. package/docs/ar/testing.md +199 -0
  71. package/docs/de/autoFill.md +42 -19
  72. package/docs/de/configuration.md +155 -147
  73. package/docs/de/dictionary/content_file.md +1059 -0
  74. package/docs/de/intlayer_CMS.md +4 -5
  75. package/docs/de/intlayer_with_nestjs.md +270 -0
  76. package/docs/de/intlayer_with_nextjs_page_router.md +1 -1
  77. package/docs/de/intlayer_with_react_router_v7.md +537 -0
  78. package/docs/de/intlayer_with_tanstack.md +469 -302
  79. package/docs/de/intlayer_with_vite+preact.md +7 -7
  80. package/docs/de/intlayer_with_vite+react.md +7 -7
  81. package/docs/de/intlayer_with_vite+vue.md +9 -9
  82. package/docs/de/packages/vite-intlayer/index.md +3 -3
  83. package/docs/de/readme.md +261 -0
  84. package/docs/de/testing.md +200 -0
  85. package/docs/en/CI_CD.md +4 -6
  86. package/docs/en/autoFill.md +25 -5
  87. package/docs/en/configuration.md +45 -54
  88. package/docs/en/dictionary/content_file.md +1054 -0
  89. package/docs/en/intlayer_CMS.md +8 -7
  90. package/docs/en/intlayer_cli.md +112 -5
  91. package/docs/en/intlayer_with_nestjs.md +268 -0
  92. package/docs/en/intlayer_with_nextjs_page_router.md +1 -1
  93. package/docs/en/intlayer_with_react_router_v7.md +531 -0
  94. package/docs/en/intlayer_with_tanstack.md +463 -294
  95. package/docs/en/intlayer_with_vite+preact.md +8 -8
  96. package/docs/en/intlayer_with_vite+react.md +8 -8
  97. package/docs/en/intlayer_with_vite+vue.md +8 -8
  98. package/docs/en/packages/intlayer/getLocalizedUrl.md +102 -25
  99. package/docs/en/packages/vite-intlayer/index.md +3 -3
  100. package/docs/en/readme.md +261 -0
  101. package/docs/en/testing.md +200 -0
  102. package/docs/en-GB/autoFill.md +29 -6
  103. package/docs/en-GB/configuration.md +79 -71
  104. package/docs/en-GB/dictionary/content_file.md +1084 -0
  105. package/docs/en-GB/intlayer_CMS.md +4 -5
  106. package/docs/en-GB/intlayer_with_nestjs.md +268 -0
  107. package/docs/en-GB/intlayer_with_nextjs_page_router.md +1 -1
  108. package/docs/en-GB/intlayer_with_react_router_v7.md +533 -0
  109. package/docs/en-GB/intlayer_with_tanstack.md +466 -299
  110. package/docs/en-GB/intlayer_with_vite+preact.md +7 -7
  111. package/docs/en-GB/intlayer_with_vite+react.md +7 -7
  112. package/docs/en-GB/intlayer_with_vite+vue.md +9 -9
  113. package/docs/en-GB/packages/vite-intlayer/index.md +3 -3
  114. package/docs/en-GB/readme.md +261 -0
  115. package/docs/en-GB/testing.md +200 -0
  116. package/docs/es/autoFill.md +45 -23
  117. package/docs/es/configuration.md +171 -167
  118. package/docs/es/dictionary/content_file.md +1088 -0
  119. package/docs/es/intlayer_CMS.md +4 -5
  120. package/docs/es/intlayer_with_nestjs.md +268 -0
  121. package/docs/es/intlayer_with_nextjs_page_router.md +1 -1
  122. package/docs/es/intlayer_with_react_router_v7.md +533 -0
  123. package/docs/es/intlayer_with_tanstack.md +469 -280
  124. package/docs/es/intlayer_with_vite+preact.md +7 -7
  125. package/docs/es/intlayer_with_vite+react.md +7 -7
  126. package/docs/es/intlayer_with_vite+vue.md +9 -9
  127. package/docs/es/packages/vite-intlayer/index.md +3 -3
  128. package/docs/es/readme.md +261 -0
  129. package/docs/es/testing.md +200 -0
  130. package/docs/fr/autoFill.md +47 -24
  131. package/docs/fr/configuration.md +213 -198
  132. package/docs/fr/dictionary/content_file.md +1054 -0
  133. package/docs/fr/intlayer_CMS.md +4 -5
  134. package/docs/fr/intlayer_with_nestjs.md +268 -0
  135. package/docs/fr/intlayer_with_nextjs_page_router.md +1 -1
  136. package/docs/fr/intlayer_with_react_router_v7.md +549 -0
  137. package/docs/fr/intlayer_with_tanstack.md +465 -279
  138. package/docs/fr/intlayer_with_vite+preact.md +7 -7
  139. package/docs/fr/intlayer_with_vite+react.md +7 -7
  140. package/docs/fr/intlayer_with_vite+vue.md +9 -9
  141. package/docs/fr/packages/vite-intlayer/index.md +3 -3
  142. package/docs/fr/readme.md +261 -0
  143. package/docs/fr/testing.md +200 -0
  144. package/docs/hi/autoFill.md +47 -25
  145. package/docs/hi/configuration.md +194 -189
  146. package/docs/hi/dictionary/content_file.md +1056 -0
  147. package/docs/hi/intlayer_CMS.md +4 -5
  148. package/docs/hi/intlayer_with_nestjs.md +269 -0
  149. package/docs/hi/intlayer_with_nextjs_page_router.md +1 -1
  150. package/docs/hi/intlayer_with_react_router_v7.md +533 -0
  151. package/docs/hi/intlayer_with_tanstack.md +467 -282
  152. package/docs/hi/intlayer_with_vite+preact.md +7 -7
  153. package/docs/hi/intlayer_with_vite+react.md +7 -7
  154. package/docs/hi/intlayer_with_vite+vue.md +9 -9
  155. package/docs/hi/packages/vite-intlayer/index.md +3 -3
  156. package/docs/hi/readme.md +261 -0
  157. package/docs/hi/testing.md +200 -0
  158. package/docs/it/autoFill.md +46 -24
  159. package/docs/it/configuration.md +169 -161
  160. package/docs/it/dictionary/content_file.md +1061 -0
  161. package/docs/it/intlayer_CMS.md +4 -5
  162. package/docs/it/intlayer_with_nestjs.md +268 -0
  163. package/docs/it/intlayer_with_nextjs_page_router.md +1 -1
  164. package/docs/it/intlayer_with_react_router_v7.md +535 -0
  165. package/docs/it/intlayer_with_tanstack.md +467 -301
  166. package/docs/it/intlayer_with_vite+preact.md +7 -7
  167. package/docs/it/intlayer_with_vite+react.md +7 -7
  168. package/docs/it/intlayer_with_vite+vue.md +9 -9
  169. package/docs/it/packages/vite-intlayer/index.md +3 -3
  170. package/docs/it/readme.md +261 -0
  171. package/docs/it/testing.md +200 -0
  172. package/docs/ja/autoFill.md +45 -23
  173. package/docs/ja/configuration.md +243 -204
  174. package/docs/ja/dictionary/content_file.md +1064 -0
  175. package/docs/ja/intlayer_CMS.md +4 -5
  176. package/docs/ja/intlayer_with_nestjs.md +268 -0
  177. package/docs/ja/intlayer_with_nextjs_page_router.md +1 -1
  178. package/docs/ja/intlayer_with_react_router_v7.md +534 -0
  179. package/docs/ja/intlayer_with_tanstack.md +467 -303
  180. package/docs/ja/intlayer_with_vite+preact.md +7 -7
  181. package/docs/ja/intlayer_with_vite+react.md +7 -7
  182. package/docs/ja/intlayer_with_vite+vue.md +9 -9
  183. package/docs/ja/packages/vite-intlayer/index.md +3 -3
  184. package/docs/ja/readme.md +263 -0
  185. package/docs/ja/testing.md +200 -0
  186. package/docs/ko/autoFill.md +39 -16
  187. package/docs/ko/configuration.md +217 -197
  188. package/docs/ko/dictionary/content_file.md +1060 -0
  189. package/docs/ko/intlayer_CMS.md +4 -5
  190. package/docs/ko/intlayer_with_nestjs.md +268 -0
  191. package/docs/ko/intlayer_with_nextjs_page_router.md +1 -1
  192. package/docs/ko/intlayer_with_react_router_v7.md +540 -0
  193. package/docs/ko/intlayer_with_tanstack.md +466 -302
  194. package/docs/ko/intlayer_with_vite+preact.md +7 -7
  195. package/docs/ko/intlayer_with_vite+react.md +7 -7
  196. package/docs/ko/intlayer_with_vite+vue.md +9 -9
  197. package/docs/ko/packages/vite-intlayer/index.md +3 -3
  198. package/docs/ko/readme.md +261 -0
  199. package/docs/ko/testing.md +200 -0
  200. package/docs/pt/autoFill.md +39 -15
  201. package/docs/pt/configuration.md +165 -147
  202. package/docs/pt/dictionary/content_file.md +1062 -0
  203. package/docs/pt/intlayer_CMS.md +4 -5
  204. package/docs/pt/intlayer_with_nestjs.md +271 -0
  205. package/docs/pt/intlayer_with_nextjs_page_router.md +1 -1
  206. package/docs/pt/intlayer_with_react_router_v7.md +535 -0
  207. package/docs/pt/intlayer_with_tanstack.md +469 -300
  208. package/docs/pt/intlayer_with_vite+preact.md +7 -7
  209. package/docs/pt/intlayer_with_vite+react.md +7 -7
  210. package/docs/pt/intlayer_with_vite+vue.md +9 -9
  211. package/docs/pt/packages/vite-intlayer/index.md +3 -3
  212. package/docs/pt/readme.md +261 -0
  213. package/docs/pt/testing.md +200 -0
  214. package/docs/ru/autoFill.md +52 -30
  215. package/docs/ru/configuration.md +164 -117
  216. package/docs/ru/dictionary/content_file.md +1064 -0
  217. package/docs/ru/intlayer_CMS.md +4 -4
  218. package/docs/ru/intlayer_with_nestjs.md +270 -0
  219. package/docs/ru/intlayer_with_nextjs_page_router.md +1 -1
  220. package/docs/ru/intlayer_with_react_router_v7.md +534 -0
  221. package/docs/ru/intlayer_with_tanstack.md +470 -305
  222. package/docs/ru/intlayer_with_vite+preact.md +7 -7
  223. package/docs/ru/intlayer_with_vite+react.md +7 -7
  224. package/docs/ru/intlayer_with_vite+vue.md +9 -9
  225. package/docs/ru/packages/vite-intlayer/index.md +3 -3
  226. package/docs/ru/readme.md +261 -0
  227. package/docs/ru/testing.md +202 -0
  228. package/docs/tr/CI_CD.md +198 -0
  229. package/docs/tr/autoFill.md +201 -0
  230. package/docs/tr/configuration.md +585 -0
  231. package/docs/tr/dictionary/condition.md +243 -0
  232. package/docs/tr/dictionary/content_file.md +1055 -0
  233. package/docs/tr/dictionary/enumeration.md +251 -0
  234. package/docs/tr/dictionary/file.md +228 -0
  235. package/docs/tr/dictionary/function_fetching.md +218 -0
  236. package/docs/tr/dictionary/gender.md +279 -0
  237. package/docs/tr/dictionary/insertion.md +191 -0
  238. package/docs/tr/dictionary/markdown.md +385 -0
  239. package/docs/tr/dictionary/nesting.md +279 -0
  240. package/docs/tr/dictionary/translation.md +315 -0
  241. package/docs/tr/formatters.md +618 -0
  242. package/docs/tr/how_works_intlayer.md +254 -0
  243. package/docs/tr/index.md +168 -0
  244. package/docs/tr/interest_of_intlayer.md +288 -0
  245. package/docs/tr/intlayer_CMS.md +347 -0
  246. package/docs/tr/intlayer_cli.md +570 -0
  247. package/docs/tr/intlayer_visual_editor.md +269 -0
  248. package/docs/tr/intlayer_with_angular.md +694 -0
  249. package/docs/tr/intlayer_with_create_react_app.md +1218 -0
  250. package/docs/tr/intlayer_with_express.md +415 -0
  251. package/docs/tr/intlayer_with_lynx+react.md +511 -0
  252. package/docs/tr/intlayer_with_nestjs.md +268 -0
  253. package/docs/tr/intlayer_with_nextjs_14.md +1029 -0
  254. package/docs/tr/intlayer_with_nextjs_15.md +1506 -0
  255. package/docs/tr/intlayer_with_nextjs_page_router.md +1484 -0
  256. package/docs/tr/intlayer_with_nuxt.md +773 -0
  257. package/docs/tr/intlayer_with_react_native+expo.md +660 -0
  258. package/docs/tr/intlayer_with_react_router_v7.md +531 -0
  259. package/docs/tr/intlayer_with_tanstack.md +452 -0
  260. package/docs/tr/intlayer_with_vite+preact.md +1673 -0
  261. package/docs/tr/intlayer_with_vite+react.md +1632 -0
  262. package/docs/tr/intlayer_with_vite+solid.md +288 -0
  263. package/docs/tr/intlayer_with_vite+svelte.md +288 -0
  264. package/docs/tr/intlayer_with_vite+vue.md +1042 -0
  265. package/docs/tr/introduction.md +209 -0
  266. package/docs/tr/locale_mapper.md +244 -0
  267. package/docs/tr/mcp_server.md +207 -0
  268. package/docs/tr/packages/@intlayer/api/index.md +58 -0
  269. package/docs/tr/packages/@intlayer/chokidar/index.md +57 -0
  270. package/docs/tr/packages/@intlayer/cli/index.md +47 -0
  271. package/docs/tr/packages/@intlayer/config/index.md +142 -0
  272. package/docs/tr/packages/@intlayer/core/index.md +51 -0
  273. package/docs/tr/packages/@intlayer/design-system/index.md +47 -0
  274. package/docs/tr/packages/@intlayer/dictionary-entry/index.md +53 -0
  275. package/docs/tr/packages/@intlayer/editor/index.md +47 -0
  276. package/docs/tr/packages/@intlayer/editor-react/index.md +47 -0
  277. package/docs/tr/packages/@intlayer/webpack/index.md +61 -0
  278. package/docs/tr/packages/angular-intlayer/index.md +59 -0
  279. package/docs/tr/packages/express-intlayer/index.md +258 -0
  280. package/docs/tr/packages/express-intlayer/t.md +459 -0
  281. package/docs/tr/packages/intlayer/getConfiguration.md +151 -0
  282. package/docs/tr/packages/intlayer/getEnumeration.md +165 -0
  283. package/docs/tr/packages/intlayer/getHTMLTextDir.md +127 -0
  284. package/docs/tr/packages/intlayer/getLocaleLang.md +87 -0
  285. package/docs/tr/packages/intlayer/getLocaleName.md +124 -0
  286. package/docs/tr/packages/intlayer/getLocalizedUrl.md +324 -0
  287. package/docs/tr/packages/intlayer/getMultilingualUrls.md +225 -0
  288. package/docs/tr/packages/intlayer/getPathWithoutLocale.md +81 -0
  289. package/docs/tr/packages/intlayer/getTranslation.md +196 -0
  290. package/docs/tr/packages/intlayer/getTranslationContent.md +195 -0
  291. package/docs/tr/packages/intlayer/index.md +505 -0
  292. package/docs/tr/packages/intlayer-cli/index.md +71 -0
  293. package/docs/tr/packages/intlayer-editor/index.md +139 -0
  294. package/docs/tr/packages/lynx-intlayer/index.md +85 -0
  295. package/docs/tr/packages/next-intlayer/index.md +154 -0
  296. package/docs/tr/packages/next-intlayer/t.md +354 -0
  297. package/docs/tr/packages/next-intlayer/useDictionary.md +270 -0
  298. package/docs/tr/packages/next-intlayer/useIntlayer.md +265 -0
  299. package/docs/tr/packages/next-intlayer/useLocale.md +133 -0
  300. package/docs/tr/packages/nuxt-intlayer/index.md +59 -0
  301. package/docs/tr/packages/preact-intlayer/index.md +55 -0
  302. package/docs/tr/packages/react-intlayer/index.md +148 -0
  303. package/docs/tr/packages/react-intlayer/t.md +304 -0
  304. package/docs/tr/packages/react-intlayer/useDictionary.md +554 -0
  305. package/docs/tr/packages/react-intlayer/useI18n.md +478 -0
  306. package/docs/tr/packages/react-intlayer/useIntlayer.md +253 -0
  307. package/docs/tr/packages/react-intlayer/useLocale.md +212 -0
  308. package/docs/tr/packages/react-native-intlayer/index.md +85 -0
  309. package/docs/tr/packages/react-scripts-intlayer/index.md +82 -0
  310. package/docs/tr/packages/solid-intlayer/index.md +56 -0
  311. package/docs/tr/packages/svelte-intlayer/index.md +55 -0
  312. package/docs/tr/packages/vite-intlayer/index.md +82 -0
  313. package/docs/tr/packages/vue-intlayer/index.md +59 -0
  314. package/docs/tr/per_locale_file.md +321 -0
  315. package/docs/tr/readme.md +261 -0
  316. package/docs/tr/roadmap.md +338 -0
  317. package/docs/tr/testing.md +200 -0
  318. package/docs/tr/vs_code_extension.md +154 -0
  319. package/docs/zh/autoFill.md +40 -18
  320. package/docs/zh/configuration.md +245 -226
  321. package/docs/zh/dictionary/content_file.md +1064 -0
  322. package/docs/zh/intlayer_CMS.md +4 -5
  323. package/docs/zh/intlayer_with_nestjs.md +268 -0
  324. package/docs/zh/intlayer_with_nextjs_page_router.md +1 -1
  325. package/docs/zh/intlayer_with_react_router_v7.md +535 -0
  326. package/docs/zh/intlayer_with_tanstack.md +468 -278
  327. package/docs/zh/intlayer_with_vite+preact.md +7 -7
  328. package/docs/zh/intlayer_with_vite+react.md +7 -7
  329. package/docs/zh/intlayer_with_vite+vue.md +7 -7
  330. package/docs/zh/packages/vite-intlayer/index.md +3 -3
  331. package/docs/zh/readme.md +261 -0
  332. package/docs/zh/testing.md +198 -0
  333. package/frequent_questions/tr/SSR_Next_no_[locale].md +105 -0
  334. package/frequent_questions/tr/array_as_content_declaration.md +72 -0
  335. package/frequent_questions/tr/build_dictionaries.md +59 -0
  336. package/frequent_questions/tr/build_error_CI_CD.md +75 -0
  337. package/frequent_questions/tr/customized_locale_list.md +65 -0
  338. package/frequent_questions/tr/domain_routing.md +114 -0
  339. package/frequent_questions/tr/esbuild_error.md +30 -0
  340. package/frequent_questions/tr/get_locale_cookie.md +142 -0
  341. package/frequent_questions/tr/intlayer_command_undefined.md +156 -0
  342. package/frequent_questions/tr/locale_incorect_in_url.md +74 -0
  343. package/frequent_questions/tr/static_rendering.md +45 -0
  344. package/frequent_questions/tr/translated_path_url.md +56 -0
  345. package/frequent_questions/tr/unknown_command.md +98 -0
  346. package/legal/tr/privacy_notice.md +83 -0
  347. package/legal/tr/terms_of_service.md +55 -0
  348. package/package.json +13 -13
  349. package/src/generated/blog.entry.ts +212 -0
  350. package/src/generated/docs.entry.ts +663 -135
  351. package/src/generated/frequentQuestions.entry.ts +85 -1
  352. package/src/generated/legal.entry.ts +7 -1
  353. package/docs/ar/dictionary/content_extention_customization.md +0 -100
  354. package/docs/ar/dictionary/get_started.md +0 -527
  355. package/docs/de/dictionary/content_extention_customization.md +0 -100
  356. package/docs/de/dictionary/get_started.md +0 -531
  357. package/docs/en/dictionary/content_extention_customization.md +0 -102
  358. package/docs/en/dictionary/get_started.md +0 -529
  359. package/docs/en-GB/dictionary/content_extention_customization.md +0 -100
  360. package/docs/en-GB/dictionary/get_started.md +0 -591
  361. package/docs/es/dictionary/content_extention_customization.md +0 -100
  362. package/docs/es/dictionary/get_started.md +0 -527
  363. package/docs/fr/dictionary/content_extention_customization.md +0 -100
  364. package/docs/fr/dictionary/get_started.md +0 -527
  365. package/docs/hi/dictionary/content_extention_customization.md +0 -100
  366. package/docs/hi/dictionary/get_started.md +0 -527
  367. package/docs/it/dictionary/content_extention_customization.md +0 -113
  368. package/docs/it/dictionary/get_started.md +0 -573
  369. package/docs/ja/dictionary/content_extention_customization.md +0 -113
  370. package/docs/ja/dictionary/get_started.md +0 -576
  371. package/docs/ko/dictionary/content_extention_customization.md +0 -100
  372. package/docs/ko/dictionary/get_started.md +0 -530
  373. package/docs/pt/dictionary/content_extention_customization.md +0 -100
  374. package/docs/pt/dictionary/get_started.md +0 -532
  375. package/docs/ru/dictionary/content_extention_customization.md +0 -100
  376. package/docs/ru/dictionary/get_started.md +0 -575
  377. package/docs/zh/dictionary/content_extention_customization.md +0 -117
  378. package/docs/zh/dictionary/get_started.md +0 -533
@@ -0,0 +1,694 @@
1
+ ---
2
+ createdAt: 2025-09-07
3
+ updatedAt: 2025-09-07
4
+ title: Angular web sitenizi çevirin (i18n)
5
+ description: Angular web sitenizi çok dilli hale getirmeyi keşfedin. Dokümantasyonu takip ederek uluslararasılaştırma (i18n) yapın ve çevirin.
6
+ keywords:
7
+ - Uluslararasılaştırma
8
+ - Dokümantasyon
9
+ - Intlayer
10
+ - Angular
11
+ - JavaScript
12
+ slugs:
13
+ - doc
14
+ - environment
15
+ - angular
16
+ # applicationTemplate: https://github.com/aymericzip/intlayer-angular-template
17
+ ---
18
+
19
+ # Angular'da Uluslararasılaştırma (i18n) ile Başlarken - Intlayer Kullanarak
20
+
21
+ > Bu paket geliştirme aşamasındadır. Daha fazla bilgi için [soruna](https://github.com/aymericzip/intlayer/issues/116) bakın. Sorunu beğenerek Angular için Intlayer'a olan ilginizi gösterin
22
+
23
+ <!-- GitHub'da [Uygulama Şablonu](https://github.com/aymericzip/intlayer-angular-template)'na bakın. -->
24
+
25
+ ## Intlayer Nedir?
26
+
27
+ **Intlayer**, modern web uygulamalarında çok dilli desteği basitleştirmek için tasarlanmış yenilikçi, açık kaynaklı bir uluslararasılaştırma (i18n) kütüphanesidir.
28
+
29
+ Intlayer ile şunları yapabilirsiniz:
30
+
31
+ - **Bileşen düzeyinde bildirimsel sözlükler kullanarak çevirileri kolayca yönetin**.
32
+ - **Meta verileri, rotaları ve içeriği dinamik olarak yerelleştirin**.
33
+ - **Otomatik oluşturulan türlerle TypeScript desteği sağlayın**, otomatik tamamlama ve hata algılamayı iyileştirin.
34
+ - **Dinamik yerel algılama ve değiştirme gibi gelişmiş özelliklerden yararlanın**.
35
+
36
+ ---
37
+
38
+ ## Angular Uygulamasında Intlayer'ı Kurmak İçin Adım Adım Kılavuz
39
+
40
+ ### Adım 1: Bağımlılıkları Yükleyin
41
+
42
+ Gerekli paketleri npm kullanarak yükleyin:
43
+
44
+ ```bash packageManager="npm"
45
+ npm install intlayer angular-intlayer @intlayer/webpack
46
+ ```
47
+
48
+ ```bash packageManager="pnpm"
49
+ pnpm add intlayer angular-intlayer @intlayer/webpack
50
+ ```
51
+
52
+ ```bash packageManager="yarn"
53
+ yarn add intlayer angular-intlayer @intlayer/webpack
54
+ ```
55
+
56
+ - **intlayer**
57
+
58
+ Yapılandırma yönetimi, çeviri, [içerik bildirimi](https://github.com/aymericzip/intlayer/blob/main/docs/docs/en/dictionary/get_started.md), transpilasyon ve [CLI komutları](https://github.com/aymericzip/intlayer/blob/main/docs/docs/en/intlayer_cli.md) için uluslararasılaştırma araçları sağlayan temel paket.
59
+
60
+ - **angular-intlayer**
61
+ Intlayer'ı Angular uygulamasıyla entegre eden paket. Angular uluslararasılaştırması için bağlam sağlayıcıları ve hook'lar sağlar.
62
+
63
+ - **@intlayer/webpack**
64
+
65
+ Intlayer'ı Webpack ile entegre eden paket. Angular CLI tarafından içerik bildirim dosyalarını oluşturmak ve geliştirme modunda izlemek için kullanılır.
66
+
67
+ ### Adım 2: Projenizi Yapılandırın
68
+
69
+ Uygulamanızın dillerini yapılandırmak için bir yapılandırma dosyası oluşturun:
70
+
71
+ ```typescript fileName="intlayer.config.ts" codeFormat="typescript"
72
+ import { Locales, type IntlayerConfig } from "intlayer";
73
+
74
+ const config: IntlayerConfig = {
75
+ internationalization: {
76
+ locales: [
77
+ Locales.ENGLISH,
78
+ Locales.FRENCH,
79
+ Locales.SPANISH,
80
+ // Diğer yerel ayarlarınız
81
+ ],
82
+ defaultLocale: Locales.ENGLISH,
83
+ },
84
+ };
85
+
86
+ export default config;
87
+ ```
88
+
89
+ ```javascript fileName="intlayer.config.mjs" codeFormat="esm"
90
+ import { Locales } from "intlayer";
91
+
92
+ /** @type {import('intlayer').IntlayerConfig} */
93
+ const config = {
94
+ internationalization: {
95
+ locales: [
96
+ Locales.ENGLISH,
97
+ Locales.FRENCH,
98
+ Locales.SPANISH,
99
+ // Diğer yerel ayarlarınız
100
+ ],
101
+ defaultLocale: Locales.ENGLISH,
102
+ },
103
+ };
104
+
105
+ export default config;
106
+ ```
107
+
108
+ ```javascript fileName="intlayer.config.cjs" codeFormat="commonjs"
109
+ const { Locales } = require("intlayer");
110
+
111
+ /** @type {import('intlayer').IntlayerConfig} */
112
+ const config = {
113
+ internationalization: {
114
+ locales: [
115
+ Locales.ENGLISH,
116
+ Locales.FRENCH,
117
+ Locales.SPANISH,
118
+ // Diğer yerel ayarlarınız
119
+ ],
120
+ defaultLocale: Locales.ENGLISH,
121
+ },
122
+ };
123
+
124
+ module.exports = config;
125
+ ```
126
+
127
+ > Bu yapılandırma dosyası aracılığıyla, yerelleştirilmiş URL'ler, ara yazılım yönlendirmesi, çerez adları, içerik bildirimlerinizin konumu ve uzantısı ayarlayabilir, Intlayer günlüklerini konsolda devre dışı bırakabilir ve daha fazlasını yapabilirsiniz. Kullanılabilir parametrelerin tam listesi için [yapılandırma dokümantasyonuna](https://github.com/aymericzip/intlayer/blob/main/docs/docs/en/configuration.md) bakın.
128
+
129
+ ### Adım 3: Intlayer'ı Angular Yapılandırmanızda Entegre Edin
130
+
131
+ Angular CLI ile Intlayer'ı entegre etmek için oluşturucunuza bağlı olarak iki seçeneğiniz vardır: `esbuild` veya `webpack`.
132
+
133
+ #### Seçenek 1: esbuild Kullanarak (Önerilen)
134
+
135
+ Öncelikle, özel esbuild oluşturucusunu kullanmak için `angular.json`'unuzu değiştirin. `build` yapılandırmasını güncelleyin:
136
+
137
+ ```json fileName="angular.json"
138
+ {
139
+ "projects": {
140
+ "your-app-name": {
141
+ "architect": {
142
+ "build": {
143
+ "builder": "@angular-builders/custom-esbuild:application",
144
+ "options": {
145
+ "plugins": ["./esbuild/intlayer-plugin.ts"]
146
+ }
147
+ }
148
+ }
149
+ }
150
+ }
151
+ }
152
+ ```
153
+
154
+ > `angular.json`'da `your-app-name`'i projenizin gerçek adıyla değiştirdiğinizden emin olun.
155
+
156
+ Ardından, projenizin kökünde bir `esbuild/intlayer-plugin.ts` dosyası oluşturun:
157
+
158
+ ```typescript fileName="esbuild/intlayer-plugin.ts"
159
+ import { prepareIntlayer, watch } from "@intlayer/chokidar";
160
+ import { getConfiguration, logger } from "@intlayer/config";
161
+ import type { Plugin } from "esbuild";
162
+
163
+ const intlayerPlugin: Plugin = {
164
+ name: "intlayer-esbuild-plugin",
165
+ setup(build) {
166
+ const configuration = getConfiguration();
167
+ let isWatching = false;
168
+
169
+ build.onStart(async () => {
170
+ logger("Intlayer esbuild plugin started", {
171
+ level: "info",
172
+ });
173
+
174
+ if (build.initialOptions.watch && !isWatching) {
175
+ logger("Watch mode enabled. Starting watcher...", {
176
+ level: "info",
177
+ });
178
+ watch(configuration);
179
+ isWatching = true;
180
+ }
181
+
182
+ try {
183
+ await prepareIntlayer(configuration);
184
+ } catch (error) {
185
+ logger(`Error in Intlayer esbuild plugin: ${error}`, {
186
+ level: "error",
187
+ });
188
+ }
189
+ });
190
+ },
191
+ };
192
+
193
+ export default intlayerPlugin;
194
+ ```
195
+
196
+ > esbuild için `intlayerPlugin`, Intlayer'ın oluşturma başlamadan önce hazırlanmasını ve geliştirme modunda değişiklikleri izlemesini sağlar.
197
+
198
+ #### Seçenek 2: Webpack Kullanarak
199
+
200
+ Öncelikle, özel Webpack oluşturucusunu kullanmak için `angular.json`'unuzu değiştirin. `build` ve `serve` yapılandırmalarını güncelleyin:
201
+
202
+ ```json fileName="angular.json"
203
+ {
204
+ "projects": {
205
+ "your-app-name": {
206
+ "architect": {
207
+ "build": {
208
+ "builder": "@angular-builders/custom-webpack:browser",
209
+ "options": {
210
+ "customWebpackConfig": {
211
+ "path": "./webpack.config.js"
212
+ }
213
+ }
214
+ },
215
+ "serve": {
216
+ "builder": "@angular-builders/custom-webpack:dev-server"
217
+ }
218
+ }
219
+ }
220
+ }
221
+ }
222
+ ```
223
+
224
+ > `angular.json`'da `your-app-name`'i projenizin gerçek adıyla değiştirdiğinizden emin olun.
225
+
226
+ Ardından, projenizin kökünde bir `webpack.config.js` dosyası oluşturun:
227
+
228
+ ```javascript fileName="webpack.config.js"
229
+ const { IntlayerWebpackPlugin } = require("@intlayer/webpack");
230
+
231
+ module.exports = {
232
+ plugins: [new IntlayerWebpackPlugin()],
233
+ };
234
+ ```
235
+
236
+ > `IntlayerWebpackPlugin`, Intlayer'ı Webpack ile entegre etmek için kullanılır. İçerik bildirim dosyalarının oluşturulmasını ve geliştirme modunda izlenmesini sağlar. Uygulama içinde Intlayer ortam değişkenlerini tanımlar. Ek olarak, performansı optimize etmek için takma adlar sağlar.
237
+
238
+ ### Adım 4: İçeriğinizi Bildirin
239
+
240
+ Çevirileri depolamak için içerik bildirimlerinizi oluşturun ve yönetin:
241
+
242
+ ```tsx fileName="src/app/app.content.ts" contentDeclarationFormat="typescript"
243
+ import { t, type Dictionary } from "intlayer";
244
+
245
+ const appContent = {
246
+ key: "app",
247
+ content: {
248
+ title: t({
249
+ en: "Hello",
250
+ fr: "Bonjour",
251
+ es: "Hola",
252
+ }),
253
+ congratulations: t({
254
+ en: "Congratulations! Your app is running. 🎉",
255
+ fr: "Félicitations! Votre application est en cours d'exécution. 🎉",
256
+ es: "¡Felicidades! Tu aplicación está en ejecución. 🎉",
257
+ }),
258
+ exploreDocs: t({
259
+ en: "Explore the Docs",
260
+ fr: "Explorer les Docs",
261
+ es: "Explorar los Docs",
262
+ }),
263
+ learnWithTutorials: t({
264
+ en: "Learn with Tutorials",
265
+ fr: "Apprendre avec les Tutoriels",
266
+ es: "Aprender con los Tutorios",
267
+ }),
268
+ cliDocs: "CLI Docs",
269
+ angularLanguageService: t({
270
+ en: "Angular Language Service",
271
+ fr: "Service de Langage Angular",
272
+ es: "Servicio de Lenguaje Angular",
273
+ }),
274
+ angularDevTools: "Angular DevTools",
275
+ github: "Github",
276
+ twitter: "Twitter",
277
+ youtube: "Youtube",
278
+ },
279
+ } satisfies Dictionary;
280
+
281
+ export default appContent;
282
+ ```
283
+
284
+ > İçerik bildirimleriniz uygulamanızda herhangi bir yerde tanımlanabilir, yeter ki `contentDir` dizinine dahil edilsinler (varsayılan olarak `./src`). Ve içerik bildirim dosyası uzantısıyla eşleşsinler (varsayılan olarak `.content.{json,ts,tsx,js,jsx,mjs,mjx,cjs,cjx}`).
285
+
286
+ > Daha fazla detay için [içerik bildirimi dokümantasyonuna](https://github.com/aymericzip/intlayer/blob/main/docs/docs/en/dictionary/get_started.md) bakın.
287
+
288
+ ### Adım 5: Kodunuzda Intlayer'ı Kullanın
289
+
290
+ Angular uygulamanız genelinde Intlayer'ın uluslararasılaştırma özelliklerini kullanmak için, bir bileşen içinde `useIntlayer` fonksiyonunu kullanmanız gerekir. Bu fonksiyon, `angular-intlayer`'dan kullanılabilir ve çevirilerinize reaktif sinyaller olarak erişim sağlar.
291
+
292
+ `IntlayerProvider` uygulamanın kökünde kayıtlıdır, bu yüzden onu modülünüzün sağlayıcılarına eklemeniz gerekmez.
293
+
294
+ Bileşen sınıfınızda içerik sözlüklerinize erişin:
295
+
296
+ ```typescript fileName="src/app/hello-world.component.ts"
297
+ import { Component, signal } from "@angular/core";
298
+ import { useIntlayer } from "angular-intlayer";
299
+
300
+ @Component({
301
+ selector: "app-hello-world",
302
+ standalone: true,
303
+ template: `
304
+ <h1>{{ content().title }}</h1>
305
+
306
+ <div class="card">
307
+ <button type="button" (click)="increment()">
308
+ {{ content().count }} {{ count() }}
309
+ </button>
310
+ <p [innerHTML]="content().edit"></p>
311
+ </div>
312
+
313
+ <p class="read-the-docs">{{ content().readTheDocs }}</p>
314
+ `,
315
+ })
316
+ export class HelloWorldComponent {
317
+ content = useIntlayer("helloworld");
318
+ count = signal(0);
319
+
320
+ increment() {
321
+ this.count.update((value) => value + 1);
322
+ }
323
+ }
324
+ ```
325
+
326
+ Intlayer içeriği bir `Signal` olarak döndürülür, bu yüzden şablonunuzda değerlere sinyali çağırarak erişirsiniz: `content().title`.
327
+
328
+ ### (İsteğe Bağlı) Adım 6: İçeriğinizin Dilini Değiştirin
329
+
330
+ İçeriğinizin dilini değiştirmek için, `useLocale` fonksiyonu tarafından sağlanan `setLocale` fonksiyonunu kullanabilirsiniz. Bu, uygulamanın yerel ayarını ayarlamanıza ve içeriği buna göre güncellemenize izin verir.
331
+
332
+ Diller arasında geçiş yapmak için bir bileşen oluşturun:
333
+
334
+ ```typescript fileName="src/app/components/locale-switcher.component.ts"
335
+ import { Component } from "@angular/core";
336
+ import { CommonModule } from "@angular/common";
337
+ import { getLocaleName } from "intlayer";
338
+ import { useLocale } from "angular-intlayer";
339
+ import { FormsModule } from "@angular/forms";
340
+
341
+ @Component({
342
+ selector: "app-locale-switcher",
343
+ standalone: true,
344
+ imports: [CommonModule, FormsModule],
345
+ template: `
346
+ <div class="locale-switcher">
347
+ <select [ngModel]="locale()" (ngModelChange)="changeLocale($event)">
348
+ <option *ngFor="let loc of availableLocales" [value]="loc">
349
+ {{ getLocaleName(loc) }}
350
+ </option>
351
+ </select>
352
+ </div>
353
+ `,
354
+ })
355
+ export class LocaleSwitcherComponent {
356
+ localeInfo = useLocale();
357
+ locale = this.localeInfo.locale;
358
+ availableLocales = this.localeInfo.availableLocales;
359
+
360
+ // getLocaleName'i şablona göster
361
+ getLocaleName = getLocaleName;
362
+
363
+ changeLocale(newLocale: string) {
364
+ this.localeInfo.setLocale(newLocale);
365
+ }
366
+ }
367
+ ```
368
+
369
+ Ardından, bu bileşeni `app.component.ts`'nizde kullanın:
370
+
371
+ ```typescript fileName="src/app/app.component.ts"
372
+ import { Component } from "@angular/core";
373
+ import { HelloWorldComponent } from "./hello-world.component";
374
+ import { LocaleSwitcherComponent } from "./components/locale-switcher.component";
375
+
376
+ @Component({
377
+ selector: "app-root",
378
+ standalone: true,
379
+ imports: [HelloWorldComponent, LocaleSwitcherComponent],
380
+ template: `
381
+ <div>
382
+ <app-locale-switcher />
383
+ <a href="https://vite.dev" target="_blank">
384
+ <img src="/vite.svg" class="logo" alt="Vite logo" />
385
+ </a>
386
+ <a href="https://angular.dev/" target="_blank">
387
+ <img
388
+ src="/assets/angular.svg"
389
+ class="logo angular"
390
+ alt="Angular logo"
391
+ />
392
+ </a>
393
+ </div>
394
+ <app-hello-world />
395
+ `,
396
+ })
397
+ export class AppComponent {}
398
+ ```
399
+
400
+ ### (İsteğe Bağlı) Adım 7: Uygulamanıza Yerelleştirilmiş Yönlendirme Ekleyin
401
+
402
+ Angular uygulamasında yerelleştirilmiş yönlendirme eklemek, yerel öneklerle Angular Router kullanmayı içerir. Bu, SEO için yararlı olan her dil için benzersiz rotalar oluşturur.
403
+
404
+ Örnek:
405
+
406
+ ```plaintext
407
+ - https://example.com/about
408
+ - https://example.com/es/about
409
+ - https://example.com/fr/about
410
+ ```
411
+
412
+ Öncelikle `@angular/router`'ın yüklü olduğundan emin olun.
413
+
414
+ Ardından, `app.routes.ts`'de yerel tabanlı yönlendirmeyi işleyen bir yönlendirici yapılandırması oluşturun.
415
+
416
+ ```typescript fileName="src/app/app.routes.ts"
417
+ import { Routes } from "@angular/router";
418
+ import { configuration, localeFlatMap } from "intlayer";
419
+ import { HomeComponent } from "./home/home.component";
420
+ import { RootComponent } from "./root/root.component";
421
+
422
+ const { defaultLocale } = configuration.internationalization;
423
+
424
+ export const routes: Routes = [
425
+ localeFlatMap((localizedData) => [
426
+ {
427
+ path: `${localizedData.urlPrefix}`,
428
+ component: RootComponent,
429
+ data: { locale: localizedData.locale },
430
+ },
431
+ {
432
+ path: `${localizedData.urlPrefix}/home`,
433
+ component: HomeComponent,
434
+ data: { locale: localizedData.locale },
435
+ },
436
+ ]),
437
+ { path: "**", redirectTo: `/${defaultLocale}/home` },
438
+ ];
439
+ ```
440
+
441
+ Ardından, yönlendiriciyi `app.config.ts`'nizde sağlayın.
442
+
443
+ ```typescript fileName="src/app/app.config.ts"
444
+ import { ApplicationConfig } from "@angular/core";
445
+ import { provideRouter } from "@angular/router";
446
+ import { routes } from "./app.routes";
447
+
448
+ export const appConfig: ApplicationConfig = {
449
+ providers: [provideRouter(routes)],
450
+ };
451
+ ```
452
+
453
+ ### (İsteğe Bağlı) Adım 8: Yerel Ayar Değiştiğinde URL'yi Değiştirin
454
+
455
+ Kullanıcı dili değiştirdiğinde URL'yi otomatik olarak güncellemek için, Angular'ın Router'ını kullanacak şekilde `LocaleSwitcher` bileşenini değiştirebilirsiniz:
456
+
457
+ ```typescript fileName="src/app/components/locale-switcher.component.ts"
458
+ import { Component, inject } from "@angular/core";
459
+ import { CommonModule } from "@angular/common";
460
+ import { Router } from "@angular/router";
461
+ import { getLocaleName, getLocalizedUrl } from "intlayer";
462
+ import { useLocale } from "angular-intlayer";
463
+ import { FormsModule } from "@angular/forms";
464
+
465
+ @Component({
466
+ selector: "app-locale-switcher",
467
+ standalone: true,
468
+ imports: [CommonModule, FormsModule],
469
+ template: `
470
+ <div class="locale-switcher">
471
+ <select [ngModel]="locale()" (ngModelChange)="changeLocale($event)">
472
+ <option *ngFor="let loc of availableLocales" [value]="loc">
473
+ {{ getLocaleName(loc) }}
474
+ </option>
475
+ </select>
476
+ </div>
477
+ `,
478
+ })
479
+ export class LocaleSwitcherComponent {
480
+ private router = inject(Router);
481
+
482
+ localeInfo = useLocale({
483
+ onLocaleChange: (newLocale) => {
484
+ const currentPath = this.router.url;
485
+ const localizedPath = getLocalizedUrl(currentPath, newLocale);
486
+ this.router.navigateByUrl(localizedPath);
487
+ },
488
+ });
489
+
490
+ locale = this.localeInfo.locale;
491
+ availableLocales = this.localeInfo.availableLocales;
492
+
493
+ getLocaleName = getLocaleName;
494
+
495
+ changeLocale(newLocale: string) {
496
+ this.localeInfo.setLocale(newLocale);
497
+ }
498
+ }
499
+ ```
500
+
501
+ ### (İsteğe Bağlı) Adım 9: HTML Dil ve Yön Özniteliklerini Değiştirin
502
+
503
+ Uygulamanız birden fazla dili desteklediğinde, `<html>` etiketinin `lang` ve `dir` özniteliklerini geçerli yerel ayarla eşleşecek şekilde güncellemek çok önemlidir.
504
+
505
+ Bunu otomatik olarak işlemek için bir servis oluşturabilirsiniz.
506
+
507
+ ```typescript fileName="src/app/services/i18n-html-attributes.service.ts"
508
+ import { Injectable, effect } from "@angular/core";
509
+ import { useLocale } from "angular-intlayer";
510
+ import { getHTMLTextDir } from "intlayer";
511
+
512
+ @Injectable({
513
+ providedIn: "root",
514
+ })
515
+ export class I18nHtmlAttributesService {
516
+ private localeInfo = useLocale();
517
+
518
+ constructor() {
519
+ effect(() => {
520
+ const newLocale = this.localeInfo.locale();
521
+ if (newLocale) {
522
+ document.documentElement.lang = newLocale;
523
+ document.documentElement.dir = getHTMLTextDir(newLocale);
524
+ }
525
+ });
526
+ }
527
+
528
+ // Bu yöntem, uygulamanın kök bileşeninde çağrılarak servisin başlatılmasını sağlayabilir.
529
+ init() {}
530
+ }
531
+ ```
532
+
533
+ Ardından, bu servisi ana `AppComponent`'ınızda enjekte edin ve başlatın:
534
+
535
+ ```typescript fileName="src/app/app.component.ts"
536
+ import { Component, inject } from "@angular/core";
537
+ // ... diğer içe aktarmalar
538
+ import { I18nHtmlAttributesService } from "./services/i18n-html-attributes.service";
539
+
540
+ @Component({
541
+ // ...
542
+ })
543
+ export class AppComponent {
544
+ constructor() {
545
+ inject(I18nHtmlAttributesService).init();
546
+ }
547
+ }
548
+ ```
549
+
550
+ ### (İsteğe Bağlı) Adım 10: Yerelleştirilmiş Bağlantı Yönergesi Oluşturun
551
+
552
+ Uygulamanızın gezinmesinin geçerli yerel ayarı saygı göstermesini sağlamak için özel bir yönerge oluşturabilirsiniz. Bu yönerge dahili URL'leri otomatik olarak geçerli dille önekler.
553
+
554
+ ```typescript fileName="src/app/directives/localized-link.directive.ts"
555
+ import { Directive, Input, HostBinding, inject } from "@angular/core";
556
+ import { getLocalizedUrl } from "intlayer";
557
+ import { useLocale } from "angular-intlayer";
558
+
559
+ @Directive({
560
+ selector: "a[appLocalizedLink]",
561
+ standalone: true,
562
+ })
563
+ export class LocalizedLinkDirective {
564
+ @Input("href") originalHref: string = "";
565
+
566
+ private localeInfo = useLocale();
567
+
568
+ @HostBinding("href")
569
+ get localizedHref(): string {
570
+ const locale = this.localeInfo.locale();
571
+ const isExternalLink = /^https?:\/\//.test(this.originalHref);
572
+
573
+ if (isExternalLink || !this.originalHref) {
574
+ return this.originalHref;
575
+ }
576
+
577
+ return getLocalizedUrl(this.originalHref, locale);
578
+ }
579
+ }
580
+ ```
581
+
582
+ Kullanmak için, bağlantı etiketlerinize `appLocalizedLink` yönergesini ekleyin ve bileşeninizde içe aktardığınızdan emin olun.
583
+
584
+ ```typescript fileName="src/app/app.component.ts"
585
+ // ...
586
+ import { LocalizedLinkDirective } from "./directives/localized-link.directive";
587
+
588
+ @Component({
589
+ selector: "app-root",
590
+ standalone: true,
591
+ imports: [/*...,*/ LocalizedLinkDirective],
592
+ template: ` <a href="/home" appLocalizedLink>Home</a> `,
593
+ })
594
+ export class AppComponent {}
595
+ ```
596
+
597
+ ### (İsteğe Bağlı) Adım 11: Markdown Oluşturun
598
+
599
+ Intlayer Markdown içeriği oluşturmayı destekler. Markdown'ı zengin HTML'ye dönüştürmek için [markdown-it](https://github.com/markdown-it/markdown-it)'i entegre edebilirsiniz.
600
+
601
+ Öncelikle `markdown-it`'i yükleyin:
602
+
603
+ ```bash
604
+ npm install markdown-it
605
+ # ve türlerini
606
+ npm install -D @types/markdown-it
607
+ ```
608
+
609
+ Ardından, `app.config.ts`'nizde `INTLAYER_MARKDOWN_TOKEN`'u yapılandırın.
610
+
611
+ ```typescript fileName="src/app/app.config.ts"
612
+ import { ApplicationConfig } from "@angular/core";
613
+ import { provideRouter } from "@angular/router";
614
+ import { routes } from "./app.routes";
615
+ import { createIntlayerMarkdownProvider } from "angular-intlayer/markdown";
616
+ import MarkdownIt from "markdown-it";
617
+
618
+ const md = new MarkdownIt({
619
+ html: true,
620
+ linkify: true,
621
+ typographer: true,
622
+ });
623
+
624
+ export const appConfig: ApplicationConfig = {
625
+ providers: [
626
+ provideRouter(routes),
627
+ createIntlayerMarkdownProvider((markdown) => md.render(markdown)),
628
+ ],
629
+ };
630
+ ```
631
+
632
+ Varsayılan olarak, Intlayer işlenmiş HTML'yi bir dize olarak döndürür. `[innerHTML]` kullanarak bağlarsanız, güvenlik etkilerinden (XSS) haberdar olun. Her zaman içeriğinizin güvenilir bir kaynaktan olduğundan emin olun.
633
+
634
+ Daha karmaşık senaryolar için, HTML'yi güvenli bir şekilde oluşturmak üzere bir boru oluşturabilirsiniz.
635
+
636
+ ### TypeScript'i Yapılandırın
637
+
638
+ Intlayer, kod tabanınızı daha güçlü hale getirmek için modül genişletmesi kullanır ve TypeScript avantajlarından yararlanır.
639
+
640
+ ![alt text](https://github.com/aymericzip/intlayer/blob/main/docs/assets/autocompletion.png)
641
+
642
+ ![alt text](https://github.com/aymericzip/intlayer/blob/main/docs/assets/translation_error.png)
643
+
644
+ TypeScript yapılandırmanızın otomatik oluşturulan türleri içerdiğinden emin olun.
645
+
646
+ ```json5 fileName="tsconfig.json"
647
+ {
648
+ // ... Mevcut TypeScript yapılandırmalarınız
649
+ "include": [
650
+ // ... Mevcut TypeScript yapılandırmalarınız
651
+ ".intlayer/**/*.ts", // Otomatik oluşturulan türleri dahil edin
652
+ ],
653
+ }
654
+ ```
655
+
656
+ ### Git Yapılandırması
657
+
658
+ Intlayer tarafından oluşturulan dosyaları yok saymanız önerilir. Bu, onları Git deponuza commit etmenizi önler.
659
+
660
+ Bunu yapmak için `.gitignore` dosyanıza aşağıdaki talimatları ekleyebilirsiniz:
661
+
662
+ ```plaintext
663
+ # Intlayer tarafından oluşturulan dosyaları yok say
664
+ .intlayer
665
+ ```
666
+
667
+ ### VS Code Uzantısı
668
+
669
+ Intlayer ile geliştirme deneyiminizi iyileştirmek için resmi **Intlayer VS Code Uzantısı**'nı yükleyebilirsiniz.
670
+
671
+ [VS Code Marketplace'ten Yükleyin](https://marketplace.visualstudio.com/items?itemName=intlayer.intlayer-vs-code-extension)
672
+
673
+ Bu uzantı şunları sağlar:
674
+
675
+ - **Çeviri anahtarları için otomatik tamamlama**.
676
+ - **Eksik çeviriler için gerçek zamanlı hata algılama**.
677
+ - **Çevrilmiş içeriğin satır içi önizlemeleri**.
678
+ - **Çevirileri kolayca oluşturmak ve güncellemek için hızlı eylemler**.
679
+
680
+ Uzantının nasıl kullanılacağı hakkında daha fazla detay için [Intlayer VS Code Uzantısı dokümantasyonuna](https://intlayer.org/doc/vs-code-extension) bakın.
681
+
682
+ ---
683
+
684
+ ### Daha Fazla Gidin
685
+
686
+ Daha fazla gitmek için [görsel düzenleyiciyi](https://github.com/aymericzip/intlayer/blob/main/docs/docs/en/intlayer_visual_editor.md) uygulayabilir veya içeriğinizi [CMS](https://github.com/aymericzip/intlayer/blob/main/docs/docs/en/intlayer_CMS.md) kullanarak harici hale getirebilirsiniz.
687
+
688
+ ---
689
+
690
+ ## Doküman Geçmişi
691
+
692
+ | Sürüm | Tarih | Değişiklikler |
693
+ | ------ | ---------- | ----------------- |
694
+ | 5.5.10 | 2025-06-29 | Geçmiş başlatıldı |