@jjlmoya/utils-developer 1.3.0 → 1.5.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 (339) hide show
  1. package/package.json +2 -1
  2. package/src/category/i18n/de.ts +34 -0
  3. package/src/category/i18n/id.ts +34 -0
  4. package/src/category/i18n/it.ts +34 -0
  5. package/src/category/i18n/ja.ts +34 -0
  6. package/src/category/i18n/ko.ts +34 -0
  7. package/src/category/i18n/nl.ts +34 -0
  8. package/src/category/i18n/pl.ts +34 -0
  9. package/src/category/i18n/pt.ts +34 -0
  10. package/src/category/i18n/ru.ts +34 -0
  11. package/src/category/i18n/sv.ts +34 -0
  12. package/src/category/i18n/tr.ts +34 -0
  13. package/src/category/i18n/zh.ts +34 -0
  14. package/src/category/index.ts +13 -1
  15. package/src/index.ts +12 -0
  16. package/src/tests/faq_count.test.ts +1 -1
  17. package/src/tests/i18n_coverage.test.ts +36 -0
  18. package/src/tests/locale_completeness.test.ts +2 -2
  19. package/src/tests/slug_uniqueness.test.ts +81 -0
  20. package/src/tool/aspectRatio/i18n/de.ts +177 -0
  21. package/src/tool/aspectRatio/i18n/id.ts +177 -0
  22. package/src/tool/aspectRatio/i18n/it.ts +177 -0
  23. package/src/tool/aspectRatio/i18n/ja.ts +178 -0
  24. package/src/tool/aspectRatio/i18n/ko.ts +178 -0
  25. package/src/tool/aspectRatio/i18n/nl.ts +178 -0
  26. package/src/tool/aspectRatio/i18n/pl.ts +177 -0
  27. package/src/tool/aspectRatio/i18n/pt.ts +177 -0
  28. package/src/tool/aspectRatio/i18n/ru.ts +177 -0
  29. package/src/tool/aspectRatio/i18n/sv.ts +177 -0
  30. package/src/tool/aspectRatio/i18n/tr.ts +177 -0
  31. package/src/tool/aspectRatio/i18n/zh.ts +178 -0
  32. package/src/tool/aspectRatio/index.ts +15 -7
  33. package/src/tool/calculadoraTiempoDatos/i18n/de.ts +150 -0
  34. package/src/tool/calculadoraTiempoDatos/i18n/id.ts +150 -0
  35. package/src/tool/calculadoraTiempoDatos/i18n/it.ts +150 -0
  36. package/src/tool/calculadoraTiempoDatos/i18n/ja.ts +151 -0
  37. package/src/tool/calculadoraTiempoDatos/i18n/ko.ts +151 -0
  38. package/src/tool/calculadoraTiempoDatos/i18n/nl.ts +150 -0
  39. package/src/tool/calculadoraTiempoDatos/i18n/pl.ts +150 -0
  40. package/src/tool/calculadoraTiempoDatos/i18n/pt.ts +150 -0
  41. package/src/tool/calculadoraTiempoDatos/i18n/ru.ts +151 -0
  42. package/src/tool/calculadoraTiempoDatos/i18n/sv.ts +150 -0
  43. package/src/tool/calculadoraTiempoDatos/i18n/tr.ts +150 -0
  44. package/src/tool/calculadoraTiempoDatos/i18n/zh.ts +151 -0
  45. package/src/tool/calculadoraTiempoDatos/index.ts +15 -7
  46. package/src/tool/colorConverter/i18n/de.ts +126 -0
  47. package/src/tool/colorConverter/i18n/id.ts +126 -0
  48. package/src/tool/colorConverter/i18n/it.ts +126 -0
  49. package/src/tool/colorConverter/i18n/ja.ts +127 -0
  50. package/src/tool/colorConverter/i18n/ko.ts +127 -0
  51. package/src/tool/colorConverter/i18n/nl.ts +126 -0
  52. package/src/tool/colorConverter/i18n/pl.ts +126 -0
  53. package/src/tool/colorConverter/i18n/pt.ts +126 -0
  54. package/src/tool/colorConverter/i18n/ru.ts +126 -0
  55. package/src/tool/colorConverter/i18n/sv.ts +126 -0
  56. package/src/tool/colorConverter/i18n/tr.ts +126 -0
  57. package/src/tool/colorConverter/i18n/zh.ts +127 -0
  58. package/src/tool/colorConverter/index.ts +15 -7
  59. package/src/tool/conversorExcelCsvHtml/i18n/de.ts +129 -0
  60. package/src/tool/conversorExcelCsvHtml/i18n/id.ts +129 -0
  61. package/src/tool/conversorExcelCsvHtml/i18n/it.ts +129 -0
  62. package/src/tool/conversorExcelCsvHtml/i18n/ja.ts +130 -0
  63. package/src/tool/conversorExcelCsvHtml/i18n/ko.ts +130 -0
  64. package/src/tool/conversorExcelCsvHtml/i18n/nl.ts +129 -0
  65. package/src/tool/conversorExcelCsvHtml/i18n/pl.ts +129 -0
  66. package/src/tool/conversorExcelCsvHtml/i18n/pt.ts +129 -0
  67. package/src/tool/conversorExcelCsvHtml/i18n/ru.ts +129 -0
  68. package/src/tool/conversorExcelCsvHtml/i18n/sv.ts +129 -0
  69. package/src/tool/conversorExcelCsvHtml/i18n/tr.ts +129 -0
  70. package/src/tool/conversorExcelCsvHtml/i18n/zh.ts +130 -0
  71. package/src/tool/conversorExcelCsvHtml/index.ts +15 -7
  72. package/src/tool/cronGenerator/i18n/de.ts +192 -0
  73. package/src/tool/cronGenerator/i18n/es.ts +2 -1
  74. package/src/tool/cronGenerator/i18n/fr.ts +2 -1
  75. package/src/tool/cronGenerator/i18n/id.ts +192 -0
  76. package/src/tool/cronGenerator/i18n/it.ts +192 -0
  77. package/src/tool/cronGenerator/i18n/ja.ts +192 -0
  78. package/src/tool/cronGenerator/i18n/ko.ts +192 -0
  79. package/src/tool/cronGenerator/i18n/nl.ts +192 -0
  80. package/src/tool/cronGenerator/i18n/pl.ts +192 -0
  81. package/src/tool/cronGenerator/i18n/pt.ts +192 -0
  82. package/src/tool/cronGenerator/i18n/ru.ts +192 -0
  83. package/src/tool/cronGenerator/i18n/sv.ts +192 -0
  84. package/src/tool/cronGenerator/i18n/tr.ts +192 -0
  85. package/src/tool/cronGenerator/i18n/zh.ts +192 -0
  86. package/src/tool/cronGenerator/index.ts +15 -7
  87. package/src/tool/cssSpecificityCalculator/i18n/de.ts +168 -0
  88. package/src/tool/cssSpecificityCalculator/i18n/id.ts +168 -0
  89. package/src/tool/cssSpecificityCalculator/i18n/it.ts +168 -0
  90. package/src/tool/cssSpecificityCalculator/i18n/ja.ts +169 -0
  91. package/src/tool/cssSpecificityCalculator/i18n/ko.ts +169 -0
  92. package/src/tool/cssSpecificityCalculator/i18n/nl.ts +168 -0
  93. package/src/tool/cssSpecificityCalculator/i18n/pl.ts +168 -0
  94. package/src/tool/cssSpecificityCalculator/i18n/pt.ts +168 -0
  95. package/src/tool/cssSpecificityCalculator/i18n/ru.ts +168 -0
  96. package/src/tool/cssSpecificityCalculator/i18n/sv.ts +168 -0
  97. package/src/tool/cssSpecificityCalculator/i18n/tr.ts +168 -0
  98. package/src/tool/cssSpecificityCalculator/i18n/zh.ts +169 -0
  99. package/src/tool/cssSpecificityCalculator/index.ts +15 -7
  100. package/src/tool/cssToInlineConverter/i18n/de.ts +160 -0
  101. package/src/tool/cssToInlineConverter/i18n/id.ts +160 -0
  102. package/src/tool/cssToInlineConverter/i18n/it.ts +160 -0
  103. package/src/tool/cssToInlineConverter/i18n/ja.ts +161 -0
  104. package/src/tool/cssToInlineConverter/i18n/ko.ts +161 -0
  105. package/src/tool/cssToInlineConverter/i18n/nl.ts +160 -0
  106. package/src/tool/cssToInlineConverter/i18n/pl.ts +160 -0
  107. package/src/tool/cssToInlineConverter/i18n/pt.ts +160 -0
  108. package/src/tool/cssToInlineConverter/i18n/ru.ts +160 -0
  109. package/src/tool/cssToInlineConverter/i18n/sv.ts +160 -0
  110. package/src/tool/cssToInlineConverter/i18n/tr.ts +160 -0
  111. package/src/tool/cssToInlineConverter/i18n/zh.ts +161 -0
  112. package/src/tool/cssToInlineConverter/index.ts +15 -7
  113. package/src/tool/duplicateCssRemover/i18n/de.ts +167 -0
  114. package/src/tool/duplicateCssRemover/i18n/id.ts +167 -0
  115. package/src/tool/duplicateCssRemover/i18n/it.ts +167 -0
  116. package/src/tool/duplicateCssRemover/i18n/ja.ts +168 -0
  117. package/src/tool/duplicateCssRemover/i18n/ko.ts +168 -0
  118. package/src/tool/duplicateCssRemover/i18n/nl.ts +167 -0
  119. package/src/tool/duplicateCssRemover/i18n/pl.ts +167 -0
  120. package/src/tool/duplicateCssRemover/i18n/pt.ts +167 -0
  121. package/src/tool/duplicateCssRemover/i18n/ru.ts +167 -0
  122. package/src/tool/duplicateCssRemover/i18n/sv.ts +167 -0
  123. package/src/tool/duplicateCssRemover/i18n/tr.ts +167 -0
  124. package/src/tool/duplicateCssRemover/i18n/zh.ts +168 -0
  125. package/src/tool/duplicateCssRemover/index.ts +15 -7
  126. package/src/tool/generadorSecurityTxt/i18n/de.ts +174 -0
  127. package/src/tool/generadorSecurityTxt/i18n/id.ts +174 -0
  128. package/src/tool/generadorSecurityTxt/i18n/it.ts +174 -0
  129. package/src/tool/generadorSecurityTxt/i18n/ja.ts +174 -0
  130. package/src/tool/generadorSecurityTxt/i18n/ko.ts +174 -0
  131. package/src/tool/generadorSecurityTxt/i18n/nl.ts +174 -0
  132. package/src/tool/generadorSecurityTxt/i18n/pl.ts +174 -0
  133. package/src/tool/generadorSecurityTxt/i18n/pt.ts +174 -0
  134. package/src/tool/generadorSecurityTxt/i18n/ru.ts +174 -0
  135. package/src/tool/generadorSecurityTxt/i18n/sv.ts +174 -0
  136. package/src/tool/generadorSecurityTxt/i18n/tr.ts +174 -0
  137. package/src/tool/generadorSecurityTxt/i18n/zh.ts +174 -0
  138. package/src/tool/generadorSecurityTxt/index.ts +15 -7
  139. package/src/tool/hashGenerator/i18n/de.ts +119 -0
  140. package/src/tool/hashGenerator/i18n/id.ts +119 -0
  141. package/src/tool/hashGenerator/i18n/it.ts +118 -0
  142. package/src/tool/hashGenerator/i18n/ja.ts +119 -0
  143. package/src/tool/hashGenerator/i18n/ko.ts +119 -0
  144. package/src/tool/hashGenerator/i18n/nl.ts +119 -0
  145. package/src/tool/hashGenerator/i18n/pl.ts +118 -0
  146. package/src/tool/hashGenerator/i18n/pt.ts +118 -0
  147. package/src/tool/hashGenerator/i18n/ru.ts +119 -0
  148. package/src/tool/hashGenerator/i18n/sv.ts +119 -0
  149. package/src/tool/hashGenerator/i18n/tr.ts +118 -0
  150. package/src/tool/hashGenerator/i18n/zh.ts +119 -0
  151. package/src/tool/hashGenerator/index.ts +15 -7
  152. package/src/tool/inspectorCertificadosSsl/i18n/de.ts +214 -0
  153. package/src/tool/inspectorCertificadosSsl/i18n/id.ts +215 -0
  154. package/src/tool/inspectorCertificadosSsl/i18n/it.ts +214 -0
  155. package/src/tool/inspectorCertificadosSsl/i18n/ja.ts +215 -0
  156. package/src/tool/inspectorCertificadosSsl/i18n/ko.ts +215 -0
  157. package/src/tool/inspectorCertificadosSsl/i18n/nl.ts +215 -0
  158. package/src/tool/inspectorCertificadosSsl/i18n/pl.ts +215 -0
  159. package/src/tool/inspectorCertificadosSsl/i18n/pt.ts +214 -0
  160. package/src/tool/inspectorCertificadosSsl/i18n/ru.ts +215 -0
  161. package/src/tool/inspectorCertificadosSsl/i18n/sv.ts +215 -0
  162. package/src/tool/inspectorCertificadosSsl/i18n/tr.ts +215 -0
  163. package/src/tool/inspectorCertificadosSsl/i18n/zh.ts +215 -0
  164. package/src/tool/inspectorCertificadosSsl/index.ts +24 -0
  165. package/src/tool/jsonFormatter/i18n/de.ts +157 -0
  166. package/src/tool/jsonFormatter/i18n/es.ts +2 -1
  167. package/src/tool/jsonFormatter/i18n/fr.ts +2 -1
  168. package/src/tool/jsonFormatter/i18n/id.ts +157 -0
  169. package/src/tool/jsonFormatter/i18n/it.ts +156 -0
  170. package/src/tool/jsonFormatter/i18n/ja.ts +157 -0
  171. package/src/tool/jsonFormatter/i18n/ko.ts +157 -0
  172. package/src/tool/jsonFormatter/i18n/nl.ts +157 -0
  173. package/src/tool/jsonFormatter/i18n/pl.ts +156 -0
  174. package/src/tool/jsonFormatter/i18n/pt.ts +156 -0
  175. package/src/tool/jsonFormatter/i18n/ru.ts +157 -0
  176. package/src/tool/jsonFormatter/i18n/sv.ts +157 -0
  177. package/src/tool/jsonFormatter/i18n/tr.ts +157 -0
  178. package/src/tool/jsonFormatter/i18n/zh.ts +157 -0
  179. package/src/tool/jsonFormatter/index.ts +15 -7
  180. package/src/tool/keycode/i18n/de.ts +161 -0
  181. package/src/tool/keycode/i18n/es.ts +2 -1
  182. package/src/tool/keycode/i18n/fr.ts +2 -1
  183. package/src/tool/keycode/i18n/id.ts +161 -0
  184. package/src/tool/keycode/i18n/it.ts +161 -0
  185. package/src/tool/keycode/i18n/ja.ts +161 -0
  186. package/src/tool/keycode/i18n/ko.ts +161 -0
  187. package/src/tool/keycode/i18n/nl.ts +161 -0
  188. package/src/tool/keycode/i18n/pl.ts +161 -0
  189. package/src/tool/keycode/i18n/pt.ts +160 -0
  190. package/src/tool/keycode/i18n/ru.ts +160 -0
  191. package/src/tool/keycode/i18n/sv.ts +160 -0
  192. package/src/tool/keycode/i18n/tr.ts +160 -0
  193. package/src/tool/keycode/i18n/zh.ts +161 -0
  194. package/src/tool/keycode/index.ts +15 -7
  195. package/src/tool/llmCostCalculator/i18n/de.ts +166 -0
  196. package/src/tool/llmCostCalculator/i18n/fr.ts +2 -1
  197. package/src/tool/llmCostCalculator/i18n/id.ts +166 -0
  198. package/src/tool/llmCostCalculator/i18n/it.ts +166 -0
  199. package/src/tool/llmCostCalculator/i18n/ja.ts +166 -0
  200. package/src/tool/llmCostCalculator/i18n/ko.ts +166 -0
  201. package/src/tool/llmCostCalculator/i18n/nl.ts +166 -0
  202. package/src/tool/llmCostCalculator/i18n/pl.ts +165 -0
  203. package/src/tool/llmCostCalculator/i18n/pt.ts +165 -0
  204. package/src/tool/llmCostCalculator/i18n/ru.ts +165 -0
  205. package/src/tool/llmCostCalculator/i18n/sv.ts +165 -0
  206. package/src/tool/llmCostCalculator/i18n/tr.ts +165 -0
  207. package/src/tool/llmCostCalculator/i18n/zh.ts +166 -0
  208. package/src/tool/llmCostCalculator/index.ts +24 -0
  209. package/src/tool/mobileMockupGenerator/i18n/de.ts +121 -0
  210. package/src/tool/mobileMockupGenerator/i18n/id.ts +121 -0
  211. package/src/tool/mobileMockupGenerator/i18n/it.ts +121 -0
  212. package/src/tool/mobileMockupGenerator/i18n/ja.ts +122 -0
  213. package/src/tool/mobileMockupGenerator/i18n/ko.ts +122 -0
  214. package/src/tool/mobileMockupGenerator/i18n/nl.ts +121 -0
  215. package/src/tool/mobileMockupGenerator/i18n/pl.ts +31 -0
  216. package/src/tool/mobileMockupGenerator/i18n/pt.ts +121 -0
  217. package/src/tool/mobileMockupGenerator/i18n/ru.ts +121 -0
  218. package/src/tool/mobileMockupGenerator/i18n/sv.ts +121 -0
  219. package/src/tool/mobileMockupGenerator/i18n/tr.ts +121 -0
  220. package/src/tool/mobileMockupGenerator/i18n/zh.ts +122 -0
  221. package/src/tool/mobileMockupGenerator/index.ts +24 -0
  222. package/src/tool/musicalTypography/i18n/de.ts +179 -0
  223. package/src/tool/musicalTypography/i18n/id.ts +179 -0
  224. package/src/tool/musicalTypography/i18n/it.ts +179 -0
  225. package/src/tool/musicalTypography/i18n/ja.ts +180 -0
  226. package/src/tool/musicalTypography/i18n/ko.ts +180 -0
  227. package/src/tool/musicalTypography/i18n/nl.ts +179 -0
  228. package/src/tool/musicalTypography/i18n/pl.ts +179 -0
  229. package/src/tool/musicalTypography/i18n/pt.ts +101 -0
  230. package/src/tool/musicalTypography/i18n/ru.ts +47 -0
  231. package/src/tool/musicalTypography/i18n/sv.ts +29 -0
  232. package/src/tool/musicalTypography/i18n/tr.ts +29 -0
  233. package/src/tool/musicalTypography/i18n/zh.ts +30 -0
  234. package/src/tool/musicalTypography/index.ts +15 -7
  235. package/src/tool/placeholderGenerator/i18n/de.ts +176 -0
  236. package/src/tool/placeholderGenerator/i18n/id.ts +176 -0
  237. package/src/tool/placeholderGenerator/i18n/it.ts +176 -0
  238. package/src/tool/placeholderGenerator/i18n/ja.ts +177 -0
  239. package/src/tool/placeholderGenerator/i18n/ko.ts +177 -0
  240. package/src/tool/placeholderGenerator/i18n/nl.ts +176 -0
  241. package/src/tool/placeholderGenerator/i18n/pl.ts +176 -0
  242. package/src/tool/placeholderGenerator/i18n/pt.ts +176 -0
  243. package/src/tool/placeholderGenerator/i18n/ru.ts +176 -0
  244. package/src/tool/placeholderGenerator/i18n/sv.ts +176 -0
  245. package/src/tool/placeholderGenerator/i18n/tr.ts +176 -0
  246. package/src/tool/placeholderGenerator/i18n/zh.ts +177 -0
  247. package/src/tool/placeholderGenerator/index.ts +24 -0
  248. package/src/tool/promptLibrary/i18n/de.ts +131 -0
  249. package/src/tool/promptLibrary/i18n/id.ts +131 -0
  250. package/src/tool/promptLibrary/i18n/it.ts +131 -0
  251. package/src/tool/promptLibrary/i18n/ja.ts +132 -0
  252. package/src/tool/promptLibrary/i18n/ko.ts +132 -0
  253. package/src/tool/promptLibrary/i18n/nl.ts +131 -0
  254. package/src/tool/promptLibrary/i18n/pl.ts +28 -0
  255. package/src/tool/promptLibrary/i18n/pt.ts +101 -0
  256. package/src/tool/promptLibrary/i18n/ru.ts +101 -0
  257. package/src/tool/promptLibrary/i18n/sv.ts +93 -0
  258. package/src/tool/promptLibrary/i18n/tr.ts +93 -0
  259. package/src/tool/promptLibrary/i18n/zh.ts +94 -0
  260. package/src/tool/promptLibrary/index.ts +24 -0
  261. package/src/tool/readabilityCalculator/i18n/de.ts +133 -0
  262. package/src/tool/readabilityCalculator/i18n/id.ts +133 -0
  263. package/src/tool/readabilityCalculator/i18n/it.ts +133 -0
  264. package/src/tool/readabilityCalculator/i18n/ja.ts +134 -0
  265. package/src/tool/readabilityCalculator/i18n/ko.ts +134 -0
  266. package/src/tool/readabilityCalculator/i18n/nl.ts +133 -0
  267. package/src/tool/readabilityCalculator/i18n/pl.ts +29 -0
  268. package/src/tool/readabilityCalculator/i18n/pt.ts +91 -0
  269. package/src/tool/readabilityCalculator/i18n/ru.ts +91 -0
  270. package/src/tool/readabilityCalculator/i18n/sv.ts +43 -0
  271. package/src/tool/readabilityCalculator/i18n/tr.ts +43 -0
  272. package/src/tool/readabilityCalculator/i18n/zh.ts +44 -0
  273. package/src/tool/readabilityCalculator/index.ts +24 -0
  274. package/src/tool/svgSanitizer/i18n/de.ts +125 -0
  275. package/src/tool/svgSanitizer/i18n/id.ts +125 -0
  276. package/src/tool/svgSanitizer/i18n/it.ts +125 -0
  277. package/src/tool/svgSanitizer/i18n/ja.ts +126 -0
  278. package/src/tool/svgSanitizer/i18n/ko.ts +126 -0
  279. package/src/tool/svgSanitizer/i18n/nl.ts +125 -0
  280. package/src/tool/svgSanitizer/i18n/pl.ts +125 -0
  281. package/src/tool/svgSanitizer/i18n/pt.ts +30 -0
  282. package/src/tool/svgSanitizer/i18n/ru.ts +126 -0
  283. package/src/tool/svgSanitizer/i18n/sv.ts +126 -0
  284. package/src/tool/svgSanitizer/i18n/tr.ts +126 -0
  285. package/src/tool/svgSanitizer/i18n/zh.ts +126 -0
  286. package/src/tool/svgSanitizer/index.ts +24 -0
  287. package/src/tool/svgToCss/i18n/de.ts +174 -0
  288. package/src/tool/svgToCss/i18n/id.ts +174 -0
  289. package/src/tool/svgToCss/i18n/it.ts +174 -0
  290. package/src/tool/svgToCss/i18n/ja.ts +175 -0
  291. package/src/tool/svgToCss/i18n/ko.ts +175 -0
  292. package/src/tool/svgToCss/i18n/nl.ts +174 -0
  293. package/src/tool/svgToCss/i18n/pl.ts +174 -0
  294. package/src/tool/svgToCss/i18n/pt.ts +174 -0
  295. package/src/tool/svgToCss/i18n/ru.ts +174 -0
  296. package/src/tool/svgToCss/i18n/sv.ts +174 -0
  297. package/src/tool/svgToCss/i18n/tr.ts +174 -0
  298. package/src/tool/svgToCss/i18n/zh.ts +175 -0
  299. package/src/tool/svgToCss/index.ts +15 -7
  300. package/src/tool/urlCleaner/i18n/de.ts +116 -0
  301. package/src/tool/urlCleaner/i18n/id.ts +116 -0
  302. package/src/tool/urlCleaner/i18n/it.ts +116 -0
  303. package/src/tool/urlCleaner/i18n/ja.ts +117 -0
  304. package/src/tool/urlCleaner/i18n/ko.ts +117 -0
  305. package/src/tool/urlCleaner/i18n/nl.ts +116 -0
  306. package/src/tool/urlCleaner/i18n/pl.ts +29 -0
  307. package/src/tool/urlCleaner/i18n/pt.ts +43 -0
  308. package/src/tool/urlCleaner/i18n/ru.ts +43 -0
  309. package/src/tool/urlCleaner/i18n/sv.ts +43 -0
  310. package/src/tool/urlCleaner/i18n/tr.ts +43 -0
  311. package/src/tool/urlCleaner/i18n/zh.ts +44 -0
  312. package/src/tool/urlCleaner/index.ts +24 -0
  313. package/src/tool/urlEncoderDecoder/i18n/de.ts +163 -0
  314. package/src/tool/urlEncoderDecoder/i18n/id.ts +163 -0
  315. package/src/tool/urlEncoderDecoder/i18n/it.ts +163 -0
  316. package/src/tool/urlEncoderDecoder/i18n/ja.ts +163 -0
  317. package/src/tool/urlEncoderDecoder/i18n/ko.ts +163 -0
  318. package/src/tool/urlEncoderDecoder/i18n/nl.ts +163 -0
  319. package/src/tool/urlEncoderDecoder/i18n/pl.ts +162 -0
  320. package/src/tool/urlEncoderDecoder/i18n/pt.ts +162 -0
  321. package/src/tool/urlEncoderDecoder/i18n/ru.ts +163 -0
  322. package/src/tool/urlEncoderDecoder/i18n/sv.ts +163 -0
  323. package/src/tool/urlEncoderDecoder/i18n/tr.ts +162 -0
  324. package/src/tool/urlEncoderDecoder/i18n/zh.ts +163 -0
  325. package/src/tool/urlEncoderDecoder/index.ts +15 -7
  326. package/src/tool/utmGenerator/i18n/de.ts +118 -0
  327. package/src/tool/utmGenerator/i18n/id.ts +118 -0
  328. package/src/tool/utmGenerator/i18n/it.ts +118 -0
  329. package/src/tool/utmGenerator/i18n/ja.ts +118 -0
  330. package/src/tool/utmGenerator/i18n/ko.ts +118 -0
  331. package/src/tool/utmGenerator/i18n/nl.ts +118 -0
  332. package/src/tool/utmGenerator/i18n/pl.ts +117 -0
  333. package/src/tool/utmGenerator/i18n/pt.ts +118 -0
  334. package/src/tool/utmGenerator/i18n/ru.ts +118 -0
  335. package/src/tool/utmGenerator/i18n/sv.ts +118 -0
  336. package/src/tool/utmGenerator/i18n/tr.ts +117 -0
  337. package/src/tool/utmGenerator/i18n/zh.ts +118 -0
  338. package/src/tool/utmGenerator/index.ts +15 -7
  339. package/src/types.ts +1 -2
@@ -0,0 +1,131 @@
1
+ import type { WithContext, FAQPage, HowToThing, SoftwareApplication } from 'schema-dts';
2
+ import type { ToolLocaleContent } from '../../../types';
3
+ import type { PromptLibraryUI } from '../ui';
4
+
5
+ const slug = 'ai-prompt-bibliotheek';
6
+ const title = 'Privé AI Prompt Bibliotheek';
7
+ const description = 'Organiseer, label en sla je ChatGPT-, Midjourney- en Claude-prompts privé op. Je eigen promptbank in localStorage.';
8
+
9
+ const faqData = [
10
+ {
11
+ question: 'Waar worden mijn prompts opgeslagen?',
12
+ answer: 'Je prompts worden uitsluitend opgeslagen in de lokale opslag (localStorage) van je browser. We gebruiken geen externe servers, wat betekent dat je gegevens 100% privé zijn.',
13
+ },
14
+ {
15
+ question: 'Wat gebeurt er als ik browsercookies of de geschiedenis wis?',
16
+ answer: 'Als je de sitegegevens of lokale opslag van je browser wist, verlies je je opgeslagen prompts. We raden aan om back-ups te maken als je je browser regelmatig schoonmaakt.',
17
+ },
18
+ {
19
+ question: 'Kan ik dit hulpmiddel gebruiken voor Midjourney, ChatGPT of DALL-E?',
20
+ answer: 'Ja, het is compatibel met alle soorten AI-instructies. Je kunt specifieke tags aanmaken om je opdrachten te organiseren en ze eenvoudig naar je favoriete AI-tool kopiëren.',
21
+ },
22
+ ];
23
+
24
+ const howToData = [
25
+ { name: 'Maak een prompt aan', text: 'Klik op de knop Nieuwe Prompt en voer de titel en instructie in.' },
26
+ { name: 'Tags toevoegen', text: 'Typ tags gescheiden door spatie of komma om je prompts te classificeren.' },
27
+ { name: 'Variabelen gebruiken', text: 'Gebruik vierkante haken [ZO ALS DEZE] in de tekst om invulbare velden op de kaart te maken.' },
28
+ { name: 'Kopiëren en delen', text: 'Kopieer naar klembord met één klik of deel een directe link via de deelknop.' },
29
+ ];
30
+
31
+ const faqSchema: WithContext<FAQPage> = {
32
+ '@context': 'https://schema.org',
33
+ '@type': 'FAQPage',
34
+ mainEntity: faqData.map((item) => ({
35
+ '@type': 'Question',
36
+ name: item.question,
37
+ acceptedAnswer: { '@type': 'Answer', text: item.answer },
38
+ })),
39
+ };
40
+
41
+ const howToSchema: WithContext<HowToThing> = {
42
+ '@context': 'https://schema.org',
43
+ '@type': 'HowTo',
44
+ name: title,
45
+ description,
46
+ step: howToData.map((s, i) => ({ '@type': 'HowToStep', position: i + 1, name: s.name, text: s.text })),
47
+ };
48
+
49
+ const appSchema: WithContext<SoftwareApplication> = {
50
+ '@context': 'https://schema.org',
51
+ '@type': 'SoftwareApplication',
52
+ name: title,
53
+ description,
54
+ applicationCategory: 'UtilityApplication',
55
+ operatingSystem: 'All',
56
+ offers: { '@type': 'Offer', price: '0', priceCurrency: 'EUR' },
57
+ inLanguage: 'nl',
58
+ };
59
+
60
+ const ui: PromptLibraryUI = {
61
+ placeholderSearch: 'Zoek op trefwoord of tag...',
62
+ btnNew: 'Nieuwe Prompt',
63
+ emptyTitle: 'Je bibliotheek is leeg',
64
+ emptyDesc: 'Maak je eerste prompt aan en begin met het opbouwen van je privé AI-archief.',
65
+ btnAddFirst: 'Eerste toevoegen',
66
+ modalTitleCreate: 'Nieuwe Prompt Aanmaken',
67
+ modalTitleEdit: 'Prompt Bewerken',
68
+ labelTitle: 'Herkenbare titel',
69
+ placeholderTitle: 'Bijv.: SEO Marketing Expert',
70
+ labelContent: 'Instructie (Prompt)',
71
+ placeholderContent: 'Schrijf hier de gedetailleerde instructies voor de AI...',
72
+ hintContent: 'Tip: gebruik vierkante haken [ZO ALS DEZE] om later variabelen in te vullen.',
73
+ labelTags: 'Tags',
74
+ placeholderTags: 'Bijv.: marketing, seo (spatie of komma om toe te voegen)',
75
+ btnCancel: 'Annuleren',
76
+ btnSave: 'Lokaal Opslaan',
77
+ ariaLabelStar: 'Prompt markeren als favoriet',
78
+ ariaLabelEdit: 'Prompt bewerken',
79
+ ariaLabelShare: 'Prompt delen',
80
+ ariaLabelCopy: 'Prompt kopiëren',
81
+ ariaLabelDelete: 'Prompt verwijderen',
82
+ varsTitle: 'Vereiste variabelen',
83
+ noResults: 'Geen prompts gevonden voor deze zoekopdracht.',
84
+ confirmTitle: 'Prompt verwijderen?',
85
+ confirmDesc: 'Deze actie kan niet ongedaan worden gemaakt.',
86
+ btnCancelDelete: 'Annuleren',
87
+ btnConfirmDelete: 'Definitief verwijderen',
88
+ };
89
+
90
+ export const content: ToolLocaleContent<PromptLibraryUI> = {
91
+ slug,
92
+ title,
93
+ description,
94
+ ui,
95
+ faqTitle: 'Veelgestelde Vragen',
96
+ faq: faqData,
97
+ bibliographyTitle: 'Referenties over Prompt Engineering',
98
+ bibliography: [
99
+ { name: 'Prompt Engineering Guide (DAIR.AI)', url: 'https://www.promptingguide.ai/' },
100
+ { name: 'Wat is prompt engineering (Google Cloud)', url: 'https://cloud.google.com/discover/what-is-prompt-engineering' },
101
+ ],
102
+ howTo: howToData,
103
+ schemas: [faqSchema, howToSchema, appSchema],
104
+ seo: [
105
+ { type: 'title', text: 'Waarom heb je een Prompt Bibliotheek nodig?', level: 2 },
106
+ {
107
+ type: 'paragraph',
108
+ html: 'Als je regelmatig werkt met AI-tools zoals ChatGPT, Claude of Midjourney, heb je waarschijnlijk al eens dezelfde instructies opnieuw moeten typen. Een <strong>promptbibliotheek</strong> is de definitieve oplossing om te stoppen met het steeds opnieuw schrijven van je favoriete opdrachten.',
109
+ },
110
+ { type: 'title', text: 'Voordelen van het organiseren van je prompts', level: 3 },
111
+ {
112
+ type: 'list',
113
+ items: [
114
+ '<strong>Directe zoekfunctie:</strong> Vind die specifieke instructie die je maanden geleden gebruikte met een eenvoudige tekstzoekopdracht.',
115
+ '<strong>Tagclassificatie:</strong> Label je prompts als "marketing", "programmeren" of "copywriting" om snel te filteren.',
116
+ '<strong>Kopiëren met één klik:</strong> Kopieer de volledige tekst naar het klembord met slechts één klik.',
117
+ '<strong>Volledige privacy:</strong> Al je gegevens worden lokaal opgeslagen in je browser via localStorage.',
118
+ ],
119
+ },
120
+ { type: 'title', text: 'Variabelen in je prompts', level: 3 },
121
+ {
122
+ type: 'paragraph',
123
+ html: 'Gebruik de notatie <strong>[VARIABELE]</strong> in je prompts om dynamisch invulbare velden te maken. Wanneer je een kaart opent, verschijnen er invoervelden voor elke gedefinieerde variabele. De prompt wordt gekopieerd met de ingevulde waarden, klaar om in je AI te plakken.',
124
+ },
125
+ { type: 'title', text: 'Prompts delen', level: 3 },
126
+ {
127
+ type: 'paragraph',
128
+ html: 'Elke prompt kan worden gedeeld via een URL. De deelknop genereert een link die, wanneer geopend, het aanmaaklomulier toont dat al is ingevuld met de promptinhoud.',
129
+ },
130
+ ],
131
+ };
@@ -0,0 +1,28 @@
1
+ import type { WithContext, FAQPage, HowToThing, SoftwareApplication } from 'schema-dts';
2
+ import type { ToolLocaleContent } from '../../../types';
3
+ import type { PromptLibraryUI } from '../ui';
4
+
5
+ const slug = 'prywatna-biblioteka-sztucznej-inteligencji-prompt';
6
+ const title = 'Prywatna Biblioteka Promptów AI';
7
+ const description = 'Organizuj, taguj i zapisuj swoje prompty ChatGPT, Midjourney i Claude prywatnie. Twój własny bank promptów w localStorage.';
8
+
9
+ const faqData = [
10
+ { question: 'Gdzie są zapisane moje prompty?', answer: 'Twoje prompty są zapisane wyłącznie w lokalnym przechowywaniu Twojej przeglądarki (localStorage). Nie używamy serwerów zewnętrznych, co oznacza, że Twoje dane są 100% prywatne.' },
11
+ { question: 'Co się stanie, jeśli wyczyścę ciasteczka przeglądarki lub historię?', answer: 'Jeśli wyczyścisz dane witryny lub przechowywanie lokalne, utracisz zapisane prompty. Rekomendujemy tworzenie kopii zapasowych, jeśli regularnie czyścisz przeglądarkę.' },
12
+ { question: 'Czy mogę używać tego narzędzia do Midjourney, ChatGPT lub DALL-E?', answer: 'Tak, jest kompatybilne z dowolnym typem instrukcji AI. Możesz tworzyć określone tagi do organizowania swoich poleceń i łatwo je kopiować do preferowanego narzędzia AI.' },
13
+ ];
14
+
15
+ const howToData = [
16
+ { name: 'Utwórz prompt', text: 'Kliknij przycisk Nowy Prompt i wpisz tytuł i instrukcję.' },
17
+ { name: 'Dodaj tagi', text: 'Wpisz tagi oddzielone spacją lub przecinkiem, aby sklasyfikować swoje prompty.' },
18
+ { name: 'Użyj zmiennych', text: 'Użyj nawiasów [TAKIE TO] w tekście, aby utworzyć pola do wypełnienia na karcie.' },
19
+ { name: 'Kopiuj i udostępniaj', text: 'Skopiuj do schowka jednym kliknięciem lub udostępniaj bezpośredni link przyciskiem udostępniania.' },
20
+ ];
21
+
22
+ const faqSchema: WithContext<FAQPage> = { '@context': 'https://schema.org', '@type': 'FAQPage', mainEntity: faqData.map((item) => ({ '@type': 'Question', name: item.question, acceptedAnswer: { '@type': 'Answer', text: item.answer } })) };
23
+ const howToSchema: WithContext<HowToThing> = { '@context': 'https://schema.org', '@type': 'HowTo', name: title, description, step: howToData.map((s, i) => ({ '@type': 'HowToStep', position: i + 1, name: s.name, text: s.text })) };
24
+ const appSchema: WithContext<SoftwareApplication> = { '@context': 'https://schema.org', '@type': 'SoftwareApplication', name: title, description, applicationCategory: 'UtilityApplication', operatingSystem: 'All', offers: { '@type': 'Offer', price: '0', priceCurrency: 'EUR' }, inLanguage: 'pl' };
25
+
26
+ const ui: PromptLibraryUI = { placeholderSearch: 'Wyszukiwanie po słowie kluczowym lub tagu...', btnNew: 'Nowy Prompt', emptyTitle: 'Twoja biblioteka jest pusta', emptyDesc: 'Utwórz swój pierwszy prompt i zacznij budować prywatne repozytorium AI.', btnAddFirst: 'Dodaj pierwszy', modalTitleCreate: 'Utwórz Nowy Prompt', modalTitleEdit: 'Edytuj Prompt', labelTitle: 'Tytuł identyfikujący', placeholderTitle: 'Np.: Ekspert Marketingu SEO', labelContent: 'Instrukcja (Prompt)', placeholderContent: 'Wpisz tutaj szczegółowe instrukcje dla AI...', hintContent: 'Wskazówka: używaj nawiasów [TAKIE TO] do zmiennych, które wypełnisz później.', labelTags: 'Tagi', placeholderTags: 'Np.: marketing, seo (spacja lub przecinek do dodawania)', btnCancel: 'Anuluj', btnSave: 'Zapisz Lokalnie', ariaLabelStar: 'Oznacz prompt gwiazdką', ariaLabelEdit: 'Edytuj prompt', ariaLabelShare: 'Udostępniaj prompt', ariaLabelCopy: 'Kopiuj prompt', ariaLabelDelete: 'Usuń prompt', varsTitle: 'Wymagane zmienne', noResults: 'Nie znaleziono promptów dla tego wyszukiwania.', confirmTitle: 'Usunąć prompt?', confirmDesc: 'Tej akcji nie można cofnąć.', btnCancelDelete: 'Anuluj', btnConfirmDelete: 'Usuń permanentnie', };
27
+
28
+ export const content: ToolLocaleContent<PromptLibraryUI> = { slug, title, description, ui, faqTitle: 'Często Zadawane Pytania', faq: faqData, bibliographyTitle: 'Referencje Inżynierii Promptów', bibliography: [{ name: 'Prompt Engineering Guide (DAIR.AI)', url: 'https://www.promptingguide.ai/' }, { name: 'What is prompt engineering (Google Cloud)', url: 'https://cloud.google.com/discover/what-is-prompt-engineering' }], howTo: howToData, schemas: [faqSchema, howToSchema, appSchema], seo: [{ type: 'title', text: 'Dlaczego potrzebujesz biblioteki promptów?', level: 2 }, { type: 'paragraph', html: 'Jeśli regularnie pracujesz z narzędziami AI, takimi jak ChatGPT, Claude czy Midjourney, pewnie zauważyłeś, że powtarzasz te same instrukcje. <strong>Biblioteka promptów</strong> to ostateczne rozwiązanie, aby przestać zmarnować czas na przepisywanie ulubionych poleceń.' }, { type: 'title', text: 'Korzyści z organizowania promptów', level: 3 }, { type: 'list', items: ['<strong>Błyskawiczne wyszukiwanie:</strong> Znajdź tę konkretną instrukcję, którą używałeś miesiące temu, za pomocą prostego wyszukiwania tekstowego.', '<strong>Klasyfikacja tagami:</strong> Taguj prompty jako "marketing", "programowanie" czy "copywriting", aby szybko filtrować.', '<strong>Kopiowanie jednym kliknięciem:</strong> Skopiuj pełny tekst do schowka jednym kliknięciem.', '<strong>Całkowita prywatność:</strong> Wszystkie Twoje dane są przechowywane lokalnie w przeglądarce poprzez localStorage.'] }, { type: 'title', text: 'Zmienne w Twoich promptach', level: 3 }, { type: 'paragraph', html: 'Użyj notacji <strong>[ZMIENNA]</strong> w swoich promptach, aby tworzyć dynamicznie wypełnialne pola. Gdy otworzysz kartę, pojawią się pola wejściowe dla każdej zdefiniowanej zmiennej. Prompt jest kopiowany ze wypełnionymi wartościami, gotowy do wklejenia do swojego AI.' }, { type: 'title', text: 'Udostępnianie promptów', level: 3 }, { type: 'paragraph', html: 'Każdy prompt można udostępnić poprzez URL. Przycisk udostępniania generuje link, który po otwarciu pokazuje formularz tworzenia wstępnie wypełniony zawartością promptu.' }] };
@@ -0,0 +1,101 @@
1
+ import type { WithContext, FAQPage, HowToThing, SoftwareApplication } from 'schema-dts';
2
+ import type { ToolLocaleContent } from '../../../types';
3
+ import type { PromptLibraryUI } from '../ui';
4
+
5
+ const slug = 'biblioteca-prompts-privada';
6
+ const title = 'Biblioteca Privada de Prompts IA';
7
+ const description = 'Organize, rotule e salve seus prompts do ChatGPT, Midjourney e Claude de forma privada. Seu próprio banco de prompts no localStorage.';
8
+
9
+ const faqData = [
10
+ { question: 'Onde meus prompts são salvos?', answer: 'Seus prompts são salvos exclusivamente no localStorage do seu navegador. Não usamos servidores externos, então seus dados são 100% privados.' },
11
+ { question: 'O que acontece se eu limpar cookies ou histórico do navegador?', answer: 'Se você limpar dados do site ou localStorage, perderá seus prompts salvos. Recomendamos fazer backups se você frequentemente limpa seu navegador.' },
12
+ { question: 'Posso usar isso para Midjourney, ChatGPT ou DALL-E?', answer: 'Sim, é compatível com qualquer tipo de instrução de IA. Você pode criar tags específicas para organizar seus comandos e copiá-los para sua ferramenta IA preferida facilmente.' },
13
+ ];
14
+
15
+ const howToData = [
16
+ { name: 'Crie um prompt', text: 'Clique no botão Novo Prompt e insira o título e instrução.' },
17
+ { name: 'Adicione tags', text: 'Digite tags separadas por espaço ou vírgula para classificar seus prompts.' },
18
+ { name: 'Use variáveis', text: 'Use colchetes [ASSIM] no texto para criar campos preenchíveis no cartão.' },
19
+ { name: 'Copie e compartilhe', text: 'Copie para área de transferência com um clique ou compartilhe um link direto com o botão de compartilhamento.' },
20
+ ];
21
+
22
+ const faqSchema: WithContext<FAQPage> = {
23
+ '@context': 'https://schema.org',
24
+ '@type': 'FAQPage',
25
+ mainEntity: faqData.map((item) => ({ '@type': 'Question', name: item.question, acceptedAnswer: { '@type': 'Answer', text: item.answer } })),
26
+ };
27
+
28
+ const howToSchema: WithContext<HowToThing> = {
29
+ '@context': 'https://schema.org',
30
+ '@type': 'HowTo',
31
+ name: title,
32
+ description,
33
+ step: howToData.map((s, i) => ({ '@type': 'HowToStep', position: i + 1, name: s.name, text: s.text })),
34
+ };
35
+
36
+ const appSchema: WithContext<SoftwareApplication> = {
37
+ '@context': 'https://schema.org',
38
+ '@type': 'SoftwareApplication',
39
+ name: title,
40
+ description,
41
+ applicationCategory: 'UtilityApplication',
42
+ operatingSystem: 'All',
43
+ offers: { '@type': 'Offer', price: '0', priceCurrency: 'EUR' },
44
+ inLanguage: 'pt',
45
+ };
46
+
47
+ const ui: PromptLibraryUI = {
48
+ placeholderSearch: 'Procure por palavra-chave ou tag...',
49
+ btnNew: 'Novo Prompt',
50
+ emptyTitle: 'Sua biblioteca está vazia',
51
+ emptyDesc: 'Crie seu primeiro prompt e comece a construir seu repositório privado de IA.',
52
+ btnAddFirst: 'Adicione o primeiro',
53
+ modalTitleCreate: 'Criar Novo Prompt',
54
+ modalTitleEdit: 'Editar Prompt',
55
+ labelTitle: 'Título de identificação',
56
+ placeholderTitle: 'Ex.: Especialista em Marketing SEO',
57
+ labelContent: 'Instrução (Prompt)',
58
+ placeholderContent: 'Escreva instruções detalhadas para a IA aqui...',
59
+ hintContent: 'Dica: use colchetes [ASSIM] para preencher variáveis depois.',
60
+ labelTags: 'Tags',
61
+ placeholderTags: 'Ex.: marketing, seo (espaço ou vírgula para adicionar)',
62
+ btnCancel: 'Cancelar',
63
+ btnSave: 'Salvar Localmente',
64
+ ariaLabelStar: 'Marcar prompt',
65
+ ariaLabelEdit: 'Editar prompt',
66
+ ariaLabelShare: 'Compartilhar prompt',
67
+ ariaLabelCopy: 'Copiar prompt',
68
+ ariaLabelDelete: 'Deletar prompt',
69
+ varsTitle: 'Variáveis requeridas',
70
+ noResults: 'Nenhum prompt encontrado para esta busca.',
71
+ confirmTitle: 'Deletar prompt?',
72
+ confirmDesc: 'Esta ação não pode ser desfeita.',
73
+ btnCancelDelete: 'Cancelar',
74
+ btnConfirmDelete: 'Deletar permanentemente',
75
+ };
76
+
77
+ export const content: ToolLocaleContent<PromptLibraryUI> = {
78
+ slug,
79
+ title,
80
+ description,
81
+ ui,
82
+ faqTitle: 'Perguntas Frequentes',
83
+ faq: faqData,
84
+ bibliographyTitle: 'Referências de Engenharia de Prompts',
85
+ bibliography: [
86
+ { name: 'Guia de Engenharia de Prompts (DAIR.AI)', url: 'https://www.promptingguide.ai/' },
87
+ { name: 'O que é engenharia de prompts (Google Cloud)', url: 'https://cloud.google.com/discover/what-is-prompt-engineering' },
88
+ ],
89
+ howTo: howToData,
90
+ schemas: [faqSchema, howToSchema, appSchema],
91
+ seo: [
92
+ { type: 'title', text: 'Por que você precisa de uma Biblioteca de Prompts?', level: 2 },
93
+ { type: 'paragraph', html: 'Se você trabalha regularmente com ferramentas de IA como ChatGPT, Claude ou Midjourney, provavelmente se encontrou repetindo as mesmas instruções. Uma <strong>biblioteca de prompts</strong> é a solução definitiva para parar de perder tempo reescrevendo seus comandos favoritos.' },
94
+ { type: 'title', text: 'Benefícios de organizar seus prompts', level: 3 },
95
+ { type: 'list', items: [ '<strong>Busca instantânea:</strong> Encontre essa instrução específica que usou meses atrás com uma busca de texto simples.', '<strong>Classificação por tag:</strong> Rotule seus prompts como "marketing", "programação" ou "copywriting" para filtrar rapidamente.', '<strong>Cópia com um clique:</strong> Copie o texto completo para área de transferência com um único clique.', '<strong>Privacidade total:</strong> Todos os seus dados são armazenados localmente em seu navegador via localStorage.' ] },
96
+ { type: 'title', text: 'Variáveis em seus prompts', level: 3 },
97
+ { type: 'paragraph', html: 'Use a notação <strong>[VARIABLE]</strong> em seus prompts para criar campos dinamicamente preenchíveis. Quando você abre um cartão, as entradas aparecem para cada variável definida. O prompt é copiado com os valores preenchidos, pronto para colar em sua IA.' },
98
+ { type: 'title', text: 'Compartilhando prompts', level: 3 },
99
+ { type: 'paragraph', html: 'Cada prompt pode ser compartilhado via URL. O botão de compartilhamento gera um link que, quando aberto, mostra o formulário de criação pré-preenchido com o conteúdo do prompt.' },
100
+ ],
101
+ };
@@ -0,0 +1,101 @@
1
+ import type { WithContext, FAQPage, HowToThing, SoftwareApplication } from 'schema-dts';
2
+ import type { ToolLocaleContent } from '../../../types';
3
+ import type { PromptLibraryUI } from '../ui';
4
+
5
+ const slug = 'chastnaya-biblioteka-promptov';
6
+ const title = 'Частная Библиотека AI Промптов';
7
+ const description = 'Организуйте, пометьте и сохраняйте свои промпты ChatGPT, Midjourney и Claude в частном порядке. Ваш собственный банк промптов в localStorage.';
8
+
9
+ const faqData = [
10
+ { question: 'Где сохраняются мои промпты?', answer: 'Ваши промпты сохраняются исключительно в localStorage вашего браузера. Мы не используем внешние серверы, поэтому ваши данные 100% приватны.' },
11
+ { question: 'Что произойдет, если я очищу куки или историю браузера?', answer: 'Если вы очистите данные сайта или localStorage, вы потеряете сохраненные промпты. Мы рекомендуем делать резервные копии, если вы часто очищаете свой браузер.' },
12
+ { question: 'Могу ли я использовать это для Midjourney, ChatGPT или DALL-E?', answer: 'Да, он совместим с любым типом инструкции ИИ. Вы можете создать специфические теги для организации команд и легко копировать их в свой предпочитаемый инструмент ИИ.' },
13
+ ];
14
+
15
+ const howToData = [
16
+ { name: 'Создайте промпт', text: 'Нажмите кнопку "Новый промпт" и введите заголовок и инструкцию.' },
17
+ { name: 'Добавьте теги', text: 'Введите теги, разделенные пробелом или запятой, для классификации ваших промптов.' },
18
+ { name: 'Используйте переменные', text: 'Используйте скобки [ВОТ ТАК] в тексте для создания заполняемых полей на карточке.' },
19
+ { name: 'Копируйте и делитесь', text: 'Скопируйте в буфер обмена одним щелчком или поделитесь прямой ссылкой с помощью кнопки поделиться.' },
20
+ ];
21
+
22
+ const faqSchema: WithContext<FAQPage> = {
23
+ '@context': 'https://schema.org',
24
+ '@type': 'FAQPage',
25
+ mainEntity: faqData.map((item) => ({ '@type': 'Question', name: item.question, acceptedAnswer: { '@type': 'Answer', text: item.answer } })),
26
+ };
27
+
28
+ const howToSchema: WithContext<HowToThing> = {
29
+ '@context': 'https://schema.org',
30
+ '@type': 'HowTo',
31
+ name: title,
32
+ description,
33
+ step: howToData.map((s, i) => ({ '@type': 'HowToStep', position: i + 1, name: s.name, text: s.text })),
34
+ };
35
+
36
+ const appSchema: WithContext<SoftwareApplication> = {
37
+ '@context': 'https://schema.org',
38
+ '@type': 'SoftwareApplication',
39
+ name: title,
40
+ description,
41
+ applicationCategory: 'UtilityApplication',
42
+ operatingSystem: 'All',
43
+ offers: { '@type': 'Offer', price: '0', priceCurrency: 'EUR' },
44
+ inLanguage: 'ru',
45
+ };
46
+
47
+ const ui: PromptLibraryUI = {
48
+ placeholderSearch: 'Поиск по ключевому слову или тегу...',
49
+ btnNew: 'Новый Промпт',
50
+ emptyTitle: 'Ваша библиотека пуста',
51
+ emptyDesc: 'Создайте свой первый промпт и начните строить свой приватный репозиторий ИИ.',
52
+ btnAddFirst: 'Добавьте первый',
53
+ modalTitleCreate: 'Создать Новый Промпт',
54
+ modalTitleEdit: 'Редактировать Промпт',
55
+ labelTitle: 'Идентификационный заголовок',
56
+ placeholderTitle: 'Напр.: Эксперт по маркетингу SEO',
57
+ labelContent: 'Инструкция (Промпт)',
58
+ placeholderContent: 'Напишите подробные инструкции для ИИ здесь...',
59
+ hintContent: 'Совет: используйте скобки [ВОТ ТАКИЕ] для заполнения переменных позже.',
60
+ labelTags: 'Теги',
61
+ placeholderTags: 'Напр.: маркетинг, seo (пробел или запятая для добавления)',
62
+ btnCancel: 'Отменить',
63
+ btnSave: 'Сохранить Локально',
64
+ ariaLabelStar: 'Отметить промпт',
65
+ ariaLabelEdit: 'Редактировать промпт',
66
+ ariaLabelShare: 'Поделиться промптом',
67
+ ariaLabelCopy: 'Копировать промпт',
68
+ ariaLabelDelete: 'Удалить промпт',
69
+ varsTitle: 'Требуемые переменные',
70
+ noResults: 'Промпты не найдены для этого поиска.',
71
+ confirmTitle: 'Удалить промпт?',
72
+ confirmDesc: 'Это действие не может быть отменено.',
73
+ btnCancelDelete: 'Отменить',
74
+ btnConfirmDelete: 'Удалить окончательно',
75
+ };
76
+
77
+ export const content: ToolLocaleContent<PromptLibraryUI> = {
78
+ slug,
79
+ title,
80
+ description,
81
+ ui,
82
+ faqTitle: 'Часто Задаваемые Вопросы',
83
+ faq: faqData,
84
+ bibliographyTitle: 'Справки по Инженерии Промптов',
85
+ bibliography: [
86
+ { name: 'Путеводитель по Инженерии Промптов (DAIR.AI)', url: 'https://www.promptingguide.ai/' },
87
+ { name: 'Что такое инженерия промптов (Google Cloud)', url: 'https://cloud.google.com/discover/what-is-prompt-engineering' },
88
+ ],
89
+ howTo: howToData,
90
+ schemas: [faqSchema, howToSchema, appSchema],
91
+ seo: [
92
+ { type: 'title', text: 'Почему вам нужна Библиотека Промптов?', level: 2 },
93
+ { type: 'paragraph', html: 'Если вы регулярно работаете с инструментами ИИ, такими как ChatGPT, Claude или Midjourney, вы, вероятно, обнаружили, что повторяете одни и те же инструкции. <strong>Библиотека промптов</strong> - это окончательное решение, чтобы перестать терять время на переписывание своих любимых команд.' },
94
+ { type: 'title', text: 'Преимущества организации ваших промптов', level: 3 },
95
+ { type: 'list', items: [ '<strong>Мгновенный поиск:</strong> Найдите эту конкретную инструкцию, которую вы использовали месяцы назад, с помощью простого поиска по тексту.', '<strong>Классификация по тегам:</strong> Помечайте свои промпты как "маркетинг", "программирование" или "копирайтинг" для быстрой фильтрации.', '<strong>Копирование одним щелчком:</strong> Скопируйте весь текст в буфер обмена одним щелчком.', '<strong>Полная приватность:</strong> Все ваши данные хранятся локально в вашем браузере через localStorage.' ] },
96
+ { type: 'title', text: 'Переменные в ваших промптах', level: 3 },
97
+ { type: 'paragraph', html: 'Используйте обозначение <strong>[ПЕРЕМЕННАЯ]</strong> в ваших промптах для создания динамически заполняемых полей. Когда вы открываете карточку, появляются входы для каждой определенной переменной. Промпт копируется с заполненными значениями, готовый вставить в вашу ИИ.' },
98
+ { type: 'title', text: 'Обмен промптами', level: 3 },
99
+ { type: 'paragraph', html: 'Каждый промпт можно поделить через URL. Кнопка поделиться генерирует ссылку, которая при открытии показывает форму создания, предварительно заполненную содержимым промпта.' },
100
+ ],
101
+ };
@@ -0,0 +1,93 @@
1
+ import type { WithContext, FAQPage, HowToThing, SoftwareApplication } from 'schema-dts';
2
+ import type { ToolLocaleContent } from '../../../types';
3
+ import type { PromptLibraryUI } from '../ui';
4
+ const slug = 'privat-prompt-bibliotek';
5
+ const title = 'Privat AI Prompt Bibliotek';
6
+ const description = 'Organisera, tagga och spara dina ChatGPT, Midjourney och Claude-promptar privat. Din egen promptbank i localStorage.';
7
+ const faqData = [
8
+ { question: 'Var sparas mina prompter?', answer: 'Dina prompter sparas uteslutande i din webbläsares lokala lagring. Vi använder inte externa servrar, så dina data är 100% privata.' },
9
+ { question: 'Vad händer om jag rensar webbläsarcookies eller historik?', answer: 'Om du rensar webbplatsdata eller lokala lagringsdata förlorar du dina sparade prompter. Vi rekommenderar att du gör säkerhetskopior om du ofta rensar din webbläsare.' },
10
+ { question: 'Kan jag använda detta för Midjourney, ChatGPT eller DALL-E?', answer: 'Ja, det är kompatibelt med alla typer av AI-instruktioner. Du kan skapa specifika taggar för att organisera dina kommandon och kopiera dem till ditt föredragna AI-verktyg enkelt.' },
11
+ ];
12
+ const howToData = [
13
+ { name: 'Skapa en prompt', text: 'Klicka på knappen Ny prompt och ange titel och instruktion.' },
14
+ { name: 'Lägg till taggar', text: 'Skriv taggar åtskilda av mellanslag eller kommatecken för att klassificera dina prompter.' },
15
+ { name: 'Använd variabler', text: 'Använd hakparenteser [SÅ HÄR] i texten för att skapa ifyllbara fält på kortet.' },
16
+ { name: 'Kopiera och dela', text: 'Kopiera till urklipp med ett klick eller dela en direkt länk med delningsknappen.' },
17
+ ];
18
+ const faqSchema: WithContext<FAQPage> = {
19
+ '@context': 'https://schema.org',
20
+ '@type': 'FAQPage',
21
+ mainEntity: faqData.map((item) => ({ '@type': 'Question', name: item.question, acceptedAnswer: { '@type': 'Answer', text: item.answer } })),
22
+ };
23
+ const howToSchema: WithContext<HowToThing> = {
24
+ '@context': 'https://schema.org',
25
+ '@type': 'HowTo',
26
+ name: title,
27
+ description,
28
+ step: howToData.map((s, i) => ({ '@type': 'HowToStep', position: i + 1, name: s.name, text: s.text })),
29
+ };
30
+ const appSchema: WithContext<SoftwareApplication> = {
31
+ '@context': 'https://schema.org',
32
+ '@type': 'SoftwareApplication',
33
+ name: title,
34
+ description,
35
+ applicationCategory: 'UtilityApplication',
36
+ operatingSystem: 'All',
37
+ offers: { '@type': 'Offer', price: '0', priceCurrency: 'EUR' },
38
+ inLanguage: 'sv',
39
+ };
40
+ const ui: PromptLibraryUI = {
41
+ placeholderSearch: 'Sök efter nyckelord eller tagg...',
42
+ btnNew: 'Ny Prompt',
43
+ emptyTitle: 'Ditt bibliotek är tomt',
44
+ emptyDesc: 'Skapa din första prompt och börja bygga ditt privata AI-arkiv.',
45
+ btnAddFirst: 'Lägg till den första',
46
+ modalTitleCreate: 'Skapa Ny Prompt',
47
+ modalTitleEdit: 'Redigera Prompt',
48
+ labelTitle: 'Identifierande titel',
49
+ placeholderTitle: 'Ex.: SEO Marketing Expert',
50
+ labelContent: 'Instruktion (Prompt)',
51
+ placeholderContent: 'Skriv detaljerade instruktioner för AI här...',
52
+ hintContent: 'Tips: använd hakparenteser [SÅHÄR] för att fylla i variabler senare.',
53
+ labelTags: 'Taggar',
54
+ placeholderTags: 'Ex.: marketing, seo (mellanslag eller kommatecken för att lägga till)',
55
+ btnCancel: 'Avbryt',
56
+ btnSave: 'Spara Lokalt',
57
+ ariaLabelStar: 'Stjärnmärk prompt',
58
+ ariaLabelEdit: 'Redigera prompt',
59
+ ariaLabelShare: 'Dela prompt',
60
+ ariaLabelCopy: 'Kopiera prompt',
61
+ ariaLabelDelete: 'Ta bort prompt',
62
+ varsTitle: 'Obligatoriska variabler',
63
+ noResults: 'Inga prompter hittades för denna sökning.',
64
+ confirmTitle: 'Ta bort prompt?',
65
+ confirmDesc: 'Denna åtgärd kan inte ångras.',
66
+ btnCancelDelete: 'Avbryt',
67
+ btnConfirmDelete: 'Ta bort permanent',
68
+ };
69
+ export const content: ToolLocaleContent<PromptLibraryUI> = {
70
+ slug,
71
+ title,
72
+ description,
73
+ ui,
74
+ faqTitle: 'Vanliga Frågor',
75
+ faq: faqData,
76
+ bibliographyTitle: 'Prompt Engineering Referenser',
77
+ bibliography: [
78
+ { name: 'Prompt Engineering Guide (DAIR.AI)', url: 'https://www.promptingguide.ai/' },
79
+ { name: 'Vad är prompt engineering (Google Cloud)', url: 'https://cloud.google.com/discover/what-is-prompt-engineering' },
80
+ ],
81
+ howTo: howToData,
82
+ schemas: [faqSchema, howToSchema, appSchema],
83
+ seo: [
84
+ { type: 'title', text: 'Varför behöver du ett Prompt Bibliotek?', level: 2 },
85
+ { type: 'paragraph', html: 'Om du regelbundet arbetar med AI-verktyg som ChatGPT, Claude eller Midjourney, har du förmodligen hittat dig själv upprepa samma instruktioner. Ett <strong>prompt-bibliotek</strong> är den definitiva lösningen för att sluta slösa tid på att skriva om dina favoritkommandon.' },
86
+ { type: 'title', text: 'Fördelar med att organisera dina prompter', level: 3 },
87
+ { type: 'list', items: [ '<strong>Omedelbar sökning:</strong> Hitta den specifika instruktionen du använde för månader sedan med en enkel textsökning.', '<strong>Taggklassificering:</strong> Tagga dina prompter som "marketing", "programmering" eller "copywriting" för snabb filtrering.', '<strong>Enklick-kopiering:</strong> Kopiera hela texten till urklipp med ett enda klick.', '<strong>Fullständig integritet:</strong> All din data lagras lokalt i din webbläsare via localStorage.' ] },
88
+ { type: 'title', text: 'Variabler i dina prompter', level: 3 },
89
+ { type: 'paragraph', html: 'Använd <strong>[VARIABLE]</strong> notationen i dina prompter för att skapa dynamiskt ifyllbara fält. När du öppnar ett kort visas inmatningar för varje definierad variabel. Prompten kopieras med de ifyllda värdena, redo att klistra in i din AI.' },
90
+ { type: 'title', text: 'Delning av prompter', level: 3 },
91
+ { type: 'paragraph', html: 'Varje prompt kan delas via en URL. Delningsknappen genererar en länk som, när den öppnas, visar skapningsformuläret förifyllt med promptinnehållet.' },
92
+ ],
93
+ };
@@ -0,0 +1,93 @@
1
+ import type { WithContext, FAQPage, HowToThing, SoftwareApplication } from 'schema-dts';
2
+ import type { ToolLocaleContent } from '../../../types';
3
+ import type { PromptLibraryUI } from '../ui';
4
+ const slug = 'ozel-prompt-kutuphane';
5
+ const title = 'Özel AI Prompt Kütüphanesi';
6
+ const description = 'ChatGPT, Midjourney ve Claude promptlarınızı özel olarak düzenleyin, etiketleyin ve kaydedin. Kendi prompt bankanız localStorage\'da.';
7
+ const faqData = [
8
+ { question: 'Promptlarım nerede kaydediliyor?', answer: 'Promptlarınız yalnızca tarayıcınızın yerel depolamasında kaydedilir. Harici sunucular kullanmıyoruz, bu nedenle verileriniz %100 özeldir.' },
9
+ { question: 'Tarayıcı çerezlerini veya geçmişimi temizlersem ne olur?', answer: 'Site verilerini veya yerel depolamayı temizlerseniz, kaydedilen promptlarınızı kaybedeceğiniz. Tarayıcınızı sık temizlerseniz yedekleme yapmanızı öneririz.' },
10
+ { question: 'Bunu Midjourney, ChatGPT veya DALL-E için kullanabilir miyim?', answer: 'Evet, her türlü AI talimatıyla uyumludur. Komutlarınızı organize etmek ve tercih ettiğiniz AI aracına kolayca kopyalamak için belirli etiketler oluşturabilirsiniz.' },
11
+ ];
12
+ const howToData = [
13
+ { name: 'Prompt oluşturun', text: 'Yeni Prompt düğmesine tıklayın ve başlığı ile talimatı girin.' },
14
+ { name: 'Etiketler ekleyin', text: 'Promptlarınızı sınıflandırmak için boşluk veya virgülle ayrılmış etiketler yazın.' },
15
+ { name: 'Değişkenleri kullanın', text: 'Kartında doldurulabilir alanlar oluşturmak için metinde [BÖY ŞEKİLDE] parantezleri kullanın.' },
16
+ { name: 'Kopyala ve paylaş', text: 'Bir tıkla panoya kopyala veya paylaş düğmesiyle doğrudan bağlantı paylaş.' },
17
+ ];
18
+ const faqSchema: WithContext<FAQPage> = {
19
+ '@context': 'https://schema.org',
20
+ '@type': 'FAQPage',
21
+ mainEntity: faqData.map((item) => ({ '@type': 'Question', name: item.question, acceptedAnswer: { '@type': 'Answer', text: item.answer } })),
22
+ };
23
+ const howToSchema: WithContext<HowToThing> = {
24
+ '@context': 'https://schema.org',
25
+ '@type': 'HowTo',
26
+ name: title,
27
+ description,
28
+ step: howToData.map((s, i) => ({ '@type': 'HowToStep', position: i + 1, name: s.name, text: s.text })),
29
+ };
30
+ const appSchema: WithContext<SoftwareApplication> = {
31
+ '@context': 'https://schema.org',
32
+ '@type': 'SoftwareApplication',
33
+ name: title,
34
+ description,
35
+ applicationCategory: 'UtilityApplication',
36
+ operatingSystem: 'All',
37
+ offers: { '@type': 'Offer', price: '0', priceCurrency: 'EUR' },
38
+ inLanguage: 'tr',
39
+ };
40
+ const ui: PromptLibraryUI = {
41
+ placeholderSearch: 'Anahtar kelime veya etiket ara...',
42
+ btnNew: 'Yeni Prompt',
43
+ emptyTitle: 'Kütüphaneniz boş',
44
+ emptyDesc: 'İlk promptunuzu oluşturun ve özel AI deponuzu oluşturmaya başlayın.',
45
+ btnAddFirst: 'İlkini Ekle',
46
+ modalTitleCreate: 'Yeni Prompt Oluştur',
47
+ modalTitleEdit: 'Promptu Düzenle',
48
+ labelTitle: 'Tanımlama başlığı',
49
+ placeholderTitle: 'Örn.: SEO Pazarlama Uzmanı',
50
+ labelContent: 'Talimat (Prompt)',
51
+ placeholderContent: 'AI için ayrıntılı talimatlar yazın...',
52
+ hintContent: 'İpucu: değişkenleri daha sonra doldurmak için [BÖY ŞEKİLDE] parantezleri kullanın.',
53
+ labelTags: 'Etiketler',
54
+ placeholderTags: 'Örn.: pazarlama, seo (eklemek için boşluk veya virgül)',
55
+ btnCancel: 'İptal',
56
+ btnSave: 'Yerel Kaydet',
57
+ ariaLabelStar: 'Promptu yıldızla',
58
+ ariaLabelEdit: 'Promptu düzenle',
59
+ ariaLabelShare: 'Promptu paylaş',
60
+ ariaLabelCopy: 'Promptu kopyala',
61
+ ariaLabelDelete: 'Promptu sil',
62
+ varsTitle: 'Gerekli değişkenler',
63
+ noResults: 'Bu arama için prompt bulunamadı.',
64
+ confirmTitle: 'Prompt silinsin mi?',
65
+ confirmDesc: 'Bu eylem geri alınamaz.',
66
+ btnCancelDelete: 'İptal',
67
+ btnConfirmDelete: 'Kalıcı olarak sil',
68
+ };
69
+ export const content: ToolLocaleContent<PromptLibraryUI> = {
70
+ slug,
71
+ title,
72
+ description,
73
+ ui,
74
+ faqTitle: 'Sık Sorulan Sorular',
75
+ faq: faqData,
76
+ bibliographyTitle: 'Prompt Mühendisliği Referansları',
77
+ bibliography: [
78
+ { name: 'Prompt Mühendisliği Kılavuzu (DAIR.AI)', url: 'https://www.promptingguide.ai/' },
79
+ { name: 'Prompt Mühendisliği Nedir (Google Cloud)', url: 'https://cloud.google.com/discover/what-is-prompt-engineering' },
80
+ ],
81
+ howTo: howToData,
82
+ schemas: [faqSchema, howToSchema, appSchema],
83
+ seo: [
84
+ { type: 'title', text: 'Neden Bir Prompt Kütüphanesine İhtiyacınız Var?', level: 2 },
85
+ { type: 'paragraph', html: 'ChatGPT, Claude veya Midjourney gibi AI araçlarıyla düzenli olarak çalışıyorsanız, muhtemelen kendinizi aynı talimatları tekrarlarken bulmuşsunuzdur. Bir <strong>prompt kütüphanesi</strong>, favori komutlarınızı yeniden yazmada zaman kaybetmeyi durdurmak için son çözümdür.' },
86
+ { type: 'title', text: 'Promptlarınızı Organize Etmenin Yararları', level: 3 },
87
+ { type: 'list', items: [ '<strong>Anında arama:</strong> Aylar önce kullandığınız o spesifik talimatı basit bir metin aramasıyla bulun.', '<strong>Etiket sınıflandırması:</strong> Hızlı filtreleme için promptlarınızı "pazarlama", "programlama" veya "copywriting" olarak etiketleyin.', '<strong>Tek tıkla kopyalama:</strong> Tüm metni tek bir tıkla panoya kopyalayın.', '<strong>Tam gizlilik:</strong> Tüm verileriniz localStorage aracılığıyla tarayıcınızda yerel olarak depolanır.' ] },
88
+ { type: 'title', text: 'Promptlarınızdaki Değişkenler', level: 3 },
89
+ { type: 'paragraph', html: 'Dinamik olarak doldurulabilir alanlar oluşturmak için promptlarınızda <strong>[DEĞİŞKEN]</strong> gösterimini kullanın. Bir kartı açtığınızda, her tanımlanan değişken için giriş görünür. Prompt doldurulmuş değerlerle kopyalanır, AI\'nize yapıştırmaya hazırdır.' },
90
+ { type: 'title', text: 'Promptları Paylaş', level: 3 },
91
+ { type: 'paragraph', html: 'Her prompt bir URL aracılığıyla paylaşılabilir. Paylaş düğmesi, açıldığında oluşturma formunu prompt içeriğiyle önceden doldurulmuş olarak gösteren bir bağlantı oluşturur.' },
92
+ ],
93
+ };