@jjlmoya/utils-textiles 1.13.0 → 1.15.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 (254) hide show
  1. package/package.json +1 -1
  2. package/src/category/i18n/de.ts +2 -2
  3. package/src/category/i18n/en.ts +2 -2
  4. package/src/category/i18n/es.ts +2 -2
  5. package/src/category/i18n/fr.ts +9 -9
  6. package/src/category/i18n/id.ts +2 -2
  7. package/src/category/i18n/it.ts +2 -2
  8. package/src/category/i18n/nl.ts +2 -2
  9. package/src/category/i18n/pl.ts +3 -3
  10. package/src/category/i18n/pt.ts +2 -2
  11. package/src/category/i18n/ru.ts +5 -5
  12. package/src/category/i18n/sv.ts +3 -3
  13. package/src/category/i18n/zh.ts +2 -2
  14. package/src/layouts/PreviewLayout.astro +1 -0
  15. package/src/pages/[locale]/[slug].astro +30 -14
  16. package/src/tests/diacritics_density.test.ts +118 -0
  17. package/src/tests/inverted_punctuation.test.ts +84 -0
  18. package/src/tests/locale_completeness.test.ts +0 -33
  19. package/src/tests/no_en_dash.test.ts +70 -0
  20. package/src/tests/script_density.test.ts +94 -0
  21. package/src/tests/shared-test-helpers.ts +56 -0
  22. package/src/tests/tool_exports.test.ts +34 -0
  23. package/src/tool/burnTest/bibliography.astro +2 -10
  24. package/src/tool/burnTest/bibliography.ts +16 -0
  25. package/src/tool/burnTest/i18n/de.ts +5 -19
  26. package/src/tool/burnTest/i18n/en.ts +2 -16
  27. package/src/tool/burnTest/i18n/es.ts +2 -16
  28. package/src/tool/burnTest/i18n/fr.ts +5 -19
  29. package/src/tool/burnTest/i18n/id.ts +2 -16
  30. package/src/tool/burnTest/i18n/it.ts +2 -16
  31. package/src/tool/burnTest/i18n/ja.ts +2 -16
  32. package/src/tool/burnTest/i18n/ko.ts +2 -16
  33. package/src/tool/burnTest/i18n/nl.ts +2 -16
  34. package/src/tool/burnTest/i18n/pl.ts +5 -19
  35. package/src/tool/burnTest/i18n/pt.ts +2 -16
  36. package/src/tool/burnTest/i18n/ru.ts +8 -22
  37. package/src/tool/burnTest/i18n/sv.ts +2 -16
  38. package/src/tool/burnTest/i18n/tr.ts +2 -16
  39. package/src/tool/burnTest/i18n/zh.ts +5 -19
  40. package/src/tool/burnTest/index.ts +1 -0
  41. package/src/tool/burnTest/seo.astro +2 -27
  42. package/src/tool/clothingSizeConverter/bibliography.astro +2 -10
  43. package/src/tool/clothingSizeConverter/bibliography.ts +10 -0
  44. package/src/tool/clothingSizeConverter/i18n/de.ts +2 -10
  45. package/src/tool/clothingSizeConverter/i18n/en.ts +3 -11
  46. package/src/tool/clothingSizeConverter/i18n/es.ts +2 -10
  47. package/src/tool/clothingSizeConverter/i18n/fr.ts +8 -16
  48. package/src/tool/clothingSizeConverter/i18n/id.ts +2 -10
  49. package/src/tool/clothingSizeConverter/i18n/it.ts +2 -10
  50. package/src/tool/clothingSizeConverter/i18n/ja.ts +2 -10
  51. package/src/tool/clothingSizeConverter/i18n/ko.ts +2 -10
  52. package/src/tool/clothingSizeConverter/i18n/nl.ts +2 -10
  53. package/src/tool/clothingSizeConverter/i18n/pl.ts +3 -11
  54. package/src/tool/clothingSizeConverter/i18n/pt.ts +2 -10
  55. package/src/tool/clothingSizeConverter/i18n/ru.ts +4 -12
  56. package/src/tool/clothingSizeConverter/i18n/sv.ts +2 -10
  57. package/src/tool/clothingSizeConverter/i18n/tr.ts +2 -10
  58. package/src/tool/clothingSizeConverter/i18n/zh.ts +3 -11
  59. package/src/tool/clothingSizeConverter/index.ts +1 -0
  60. package/src/tool/clothingSizeConverter/seo.astro +2 -27
  61. package/src/tool/fabricProjectCalculator/bibliography.astro +2 -10
  62. package/src/tool/fabricProjectCalculator/bibliography.ts +16 -0
  63. package/src/tool/fabricProjectCalculator/component.astro +2 -3
  64. package/src/tool/fabricProjectCalculator/fabric-project-calculator.css +63 -1
  65. package/src/tool/fabricProjectCalculator/i18n/de.ts +2 -16
  66. package/src/tool/fabricProjectCalculator/i18n/en.ts +2 -16
  67. package/src/tool/fabricProjectCalculator/i18n/es.ts +2 -16
  68. package/src/tool/fabricProjectCalculator/i18n/fr.ts +2 -16
  69. package/src/tool/fabricProjectCalculator/i18n/id.ts +2 -16
  70. package/src/tool/fabricProjectCalculator/i18n/it.ts +2 -16
  71. package/src/tool/fabricProjectCalculator/i18n/ja.ts +2 -16
  72. package/src/tool/fabricProjectCalculator/i18n/ko.ts +2 -16
  73. package/src/tool/fabricProjectCalculator/i18n/nl.ts +2 -16
  74. package/src/tool/fabricProjectCalculator/i18n/pl.ts +2 -16
  75. package/src/tool/fabricProjectCalculator/i18n/pt.ts +2 -16
  76. package/src/tool/fabricProjectCalculator/i18n/ru.ts +4 -18
  77. package/src/tool/fabricProjectCalculator/i18n/sv.ts +2 -16
  78. package/src/tool/fabricProjectCalculator/i18n/tr.ts +2 -16
  79. package/src/tool/fabricProjectCalculator/i18n/zh.ts +3 -17
  80. package/src/tool/fabricProjectCalculator/index.ts +1 -0
  81. package/src/tool/fabricProjectCalculator/seo.astro +2 -27
  82. package/src/tool/fabricTruth/bibliography.astro +2 -10
  83. package/src/tool/fabricTruth/bibliography.ts +16 -0
  84. package/src/tool/fabricTruth/i18n/de.ts +3 -17
  85. package/src/tool/fabricTruth/i18n/en.ts +3 -17
  86. package/src/tool/fabricTruth/i18n/es.ts +3 -17
  87. package/src/tool/fabricTruth/i18n/fr.ts +15 -29
  88. package/src/tool/fabricTruth/i18n/id.ts +3 -17
  89. package/src/tool/fabricTruth/i18n/it.ts +3 -17
  90. package/src/tool/fabricTruth/i18n/ja.ts +3 -17
  91. package/src/tool/fabricTruth/i18n/ko.ts +3 -17
  92. package/src/tool/fabricTruth/i18n/nl.ts +3 -17
  93. package/src/tool/fabricTruth/i18n/pl.ts +3 -17
  94. package/src/tool/fabricTruth/i18n/pt.ts +3 -17
  95. package/src/tool/fabricTruth/i18n/ru.ts +13 -27
  96. package/src/tool/fabricTruth/i18n/sv.ts +3 -17
  97. package/src/tool/fabricTruth/i18n/tr.ts +3 -17
  98. package/src/tool/fabricTruth/i18n/zh.ts +11 -25
  99. package/src/tool/fabricTruth/index.ts +1 -0
  100. package/src/tool/fabricTruth/seo.astro +2 -27
  101. package/src/tool/fiberPrep/bibliography.astro +2 -10
  102. package/src/tool/fiberPrep/bibliography.ts +12 -0
  103. package/src/tool/fiberPrep/fiber-preparation-natural-dyeing.css +130 -11
  104. package/src/tool/fiberPrep/i18n/de.ts +2 -12
  105. package/src/tool/fiberPrep/i18n/en.ts +2 -12
  106. package/src/tool/fiberPrep/i18n/es.ts +2 -12
  107. package/src/tool/fiberPrep/i18n/fr.ts +6 -16
  108. package/src/tool/fiberPrep/i18n/id.ts +2 -12
  109. package/src/tool/fiberPrep/i18n/it.ts +2 -12
  110. package/src/tool/fiberPrep/i18n/ja.ts +2 -12
  111. package/src/tool/fiberPrep/i18n/ko.ts +2 -12
  112. package/src/tool/fiberPrep/i18n/nl.ts +2 -12
  113. package/src/tool/fiberPrep/i18n/pl.ts +2 -12
  114. package/src/tool/fiberPrep/i18n/pt.ts +2 -12
  115. package/src/tool/fiberPrep/i18n/ru.ts +5 -15
  116. package/src/tool/fiberPrep/i18n/sv.ts +2 -12
  117. package/src/tool/fiberPrep/i18n/tr.ts +2 -12
  118. package/src/tool/fiberPrep/i18n/zh.ts +4 -14
  119. package/src/tool/fiberPrep/index.ts +1 -0
  120. package/src/tool/fiberPrep/seo.astro +2 -27
  121. package/src/tool/knittingGauge/bibliography.astro +2 -10
  122. package/src/tool/knittingGauge/bibliography.ts +12 -0
  123. package/src/tool/knittingGauge/i18n/de.ts +2 -12
  124. package/src/tool/knittingGauge/i18n/en.ts +2 -12
  125. package/src/tool/knittingGauge/i18n/es.ts +2 -12
  126. package/src/tool/knittingGauge/i18n/fr.ts +2 -12
  127. package/src/tool/knittingGauge/i18n/id.ts +2 -12
  128. package/src/tool/knittingGauge/i18n/it.ts +2 -12
  129. package/src/tool/knittingGauge/i18n/ja.ts +2 -12
  130. package/src/tool/knittingGauge/i18n/ko.ts +2 -12
  131. package/src/tool/knittingGauge/i18n/nl.ts +2 -12
  132. package/src/tool/knittingGauge/i18n/pl.ts +2 -12
  133. package/src/tool/knittingGauge/i18n/pt.ts +2 -12
  134. package/src/tool/knittingGauge/i18n/ru.ts +8 -18
  135. package/src/tool/knittingGauge/i18n/sv.ts +2 -12
  136. package/src/tool/knittingGauge/i18n/tr.ts +2 -12
  137. package/src/tool/knittingGauge/i18n/zh.ts +3 -13
  138. package/src/tool/knittingGauge/index.ts +1 -0
  139. package/src/tool/knittingGauge/seo.astro +2 -27
  140. package/src/tool/laundryGuide/bibliography.astro +2 -10
  141. package/src/tool/laundryGuide/bibliography.ts +6 -0
  142. package/src/tool/laundryGuide/i18n/de.ts +3 -7
  143. package/src/tool/laundryGuide/i18n/en.ts +3 -7
  144. package/src/tool/laundryGuide/i18n/es.ts +3 -7
  145. package/src/tool/laundryGuide/i18n/fr.ts +14 -18
  146. package/src/tool/laundryGuide/i18n/id.ts +3 -7
  147. package/src/tool/laundryGuide/i18n/it.ts +3 -7
  148. package/src/tool/laundryGuide/i18n/ja.ts +2 -6
  149. package/src/tool/laundryGuide/i18n/ko.ts +2 -6
  150. package/src/tool/laundryGuide/i18n/nl.ts +3 -7
  151. package/src/tool/laundryGuide/i18n/pl.ts +4 -8
  152. package/src/tool/laundryGuide/i18n/pt.ts +3 -7
  153. package/src/tool/laundryGuide/i18n/ru.ts +8 -12
  154. package/src/tool/laundryGuide/i18n/sv.ts +3 -7
  155. package/src/tool/laundryGuide/i18n/tr.ts +2 -6
  156. package/src/tool/laundryGuide/i18n/zh.ts +4 -8
  157. package/src/tool/laundryGuide/index.ts +1 -0
  158. package/src/tool/laundryGuide/seo.astro +2 -27
  159. package/src/tool/needleConverter/bibliography.astro +2 -10
  160. package/src/tool/needleConverter/bibliography.ts +12 -0
  161. package/src/tool/needleConverter/i18n/de.ts +2 -12
  162. package/src/tool/needleConverter/i18n/en.ts +2 -12
  163. package/src/tool/needleConverter/i18n/es.ts +2 -12
  164. package/src/tool/needleConverter/i18n/fr.ts +7 -17
  165. package/src/tool/needleConverter/i18n/id.ts +2 -12
  166. package/src/tool/needleConverter/i18n/it.ts +2 -12
  167. package/src/tool/needleConverter/i18n/ja.ts +2 -12
  168. package/src/tool/needleConverter/i18n/ko.ts +2 -12
  169. package/src/tool/needleConverter/i18n/nl.ts +2 -12
  170. package/src/tool/needleConverter/i18n/pl.ts +2 -12
  171. package/src/tool/needleConverter/i18n/pt.ts +2 -12
  172. package/src/tool/needleConverter/i18n/ru.ts +6 -16
  173. package/src/tool/needleConverter/i18n/sv.ts +2 -12
  174. package/src/tool/needleConverter/i18n/tr.ts +2 -12
  175. package/src/tool/needleConverter/i18n/zh.ts +2 -12
  176. package/src/tool/needleConverter/index.ts +1 -0
  177. package/src/tool/needleConverter/seo.astro +1 -1
  178. package/src/tool/sewingPatternScaler/bibliography.astro +2 -10
  179. package/src/tool/sewingPatternScaler/bibliography.ts +12 -0
  180. package/src/tool/sewingPatternScaler/i18n/de.ts +2 -12
  181. package/src/tool/sewingPatternScaler/i18n/en.ts +2 -12
  182. package/src/tool/sewingPatternScaler/i18n/es.ts +2 -12
  183. package/src/tool/sewingPatternScaler/i18n/fr.ts +4 -14
  184. package/src/tool/sewingPatternScaler/i18n/id.ts +2 -12
  185. package/src/tool/sewingPatternScaler/i18n/it.ts +2 -12
  186. package/src/tool/sewingPatternScaler/i18n/ja.ts +2 -12
  187. package/src/tool/sewingPatternScaler/i18n/ko.ts +2 -12
  188. package/src/tool/sewingPatternScaler/i18n/nl.ts +2 -12
  189. package/src/tool/sewingPatternScaler/i18n/pl.ts +4 -14
  190. package/src/tool/sewingPatternScaler/i18n/pt.ts +2 -12
  191. package/src/tool/sewingPatternScaler/i18n/ru.ts +9 -19
  192. package/src/tool/sewingPatternScaler/i18n/sv.ts +2 -12
  193. package/src/tool/sewingPatternScaler/i18n/tr.ts +2 -12
  194. package/src/tool/sewingPatternScaler/i18n/zh.ts +5 -15
  195. package/src/tool/sewingPatternScaler/index.ts +1 -0
  196. package/src/tool/sewingPatternScaler/seo.astro +2 -36
  197. package/src/tool/shoeSizeConverter/bibliography.astro +2 -10
  198. package/src/tool/shoeSizeConverter/bibliography.ts +7 -0
  199. package/src/tool/shoeSizeConverter/i18n/de.ts +2 -7
  200. package/src/tool/shoeSizeConverter/i18n/en.ts +2 -7
  201. package/src/tool/shoeSizeConverter/i18n/es.ts +2 -7
  202. package/src/tool/shoeSizeConverter/i18n/fr.ts +3 -8
  203. package/src/tool/shoeSizeConverter/i18n/id.ts +2 -7
  204. package/src/tool/shoeSizeConverter/i18n/it.ts +2 -7
  205. package/src/tool/shoeSizeConverter/i18n/ja.ts +2 -7
  206. package/src/tool/shoeSizeConverter/i18n/ko.ts +2 -7
  207. package/src/tool/shoeSizeConverter/i18n/nl.ts +2 -7
  208. package/src/tool/shoeSizeConverter/i18n/pl.ts +2 -7
  209. package/src/tool/shoeSizeConverter/i18n/pt.ts +2 -7
  210. package/src/tool/shoeSizeConverter/i18n/ru.ts +6 -11
  211. package/src/tool/shoeSizeConverter/i18n/sv.ts +2 -7
  212. package/src/tool/shoeSizeConverter/i18n/tr.ts +2 -7
  213. package/src/tool/shoeSizeConverter/i18n/zh.ts +5 -10
  214. package/src/tool/shoeSizeConverter/index.ts +1 -0
  215. package/src/tool/shoeSizeConverter/seo.astro +2 -27
  216. package/src/tool/stainChemistry/bibliography.astro +2 -10
  217. package/src/tool/stainChemistry/bibliography.ts +16 -0
  218. package/src/tool/stainChemistry/i18n/de.ts +5 -19
  219. package/src/tool/stainChemistry/i18n/en.ts +5 -19
  220. package/src/tool/stainChemistry/i18n/es.ts +5 -19
  221. package/src/tool/stainChemistry/i18n/fr.ts +8 -22
  222. package/src/tool/stainChemistry/i18n/id.ts +5 -19
  223. package/src/tool/stainChemistry/i18n/it.ts +5 -19
  224. package/src/tool/stainChemistry/i18n/ja.ts +5 -19
  225. package/src/tool/stainChemistry/i18n/ko.ts +5 -19
  226. package/src/tool/stainChemistry/i18n/nl.ts +5 -19
  227. package/src/tool/stainChemistry/i18n/pl.ts +5 -19
  228. package/src/tool/stainChemistry/i18n/pt.ts +5 -19
  229. package/src/tool/stainChemistry/i18n/ru.ts +9 -23
  230. package/src/tool/stainChemistry/i18n/sv.ts +5 -19
  231. package/src/tool/stainChemistry/i18n/tr.ts +5 -19
  232. package/src/tool/stainChemistry/i18n/zh.ts +9 -23
  233. package/src/tool/stainChemistry/index.ts +1 -0
  234. package/src/tool/stainChemistry/seo.astro +2 -27
  235. package/src/tool/yarnCalculator/bibliography.astro +2 -10
  236. package/src/tool/yarnCalculator/bibliography.ts +16 -0
  237. package/src/tool/yarnCalculator/i18n/de.ts +2 -16
  238. package/src/tool/yarnCalculator/i18n/en.ts +2 -16
  239. package/src/tool/yarnCalculator/i18n/es.ts +2 -16
  240. package/src/tool/yarnCalculator/i18n/fr.ts +6 -20
  241. package/src/tool/yarnCalculator/i18n/id.ts +2 -16
  242. package/src/tool/yarnCalculator/i18n/it.ts +2 -16
  243. package/src/tool/yarnCalculator/i18n/ja.ts +2 -16
  244. package/src/tool/yarnCalculator/i18n/ko.ts +2 -16
  245. package/src/tool/yarnCalculator/i18n/nl.ts +2 -16
  246. package/src/tool/yarnCalculator/i18n/pl.ts +2 -16
  247. package/src/tool/yarnCalculator/i18n/pt.ts +2 -16
  248. package/src/tool/yarnCalculator/i18n/ru.ts +9 -23
  249. package/src/tool/yarnCalculator/i18n/sv.ts +2 -16
  250. package/src/tool/yarnCalculator/i18n/tr.ts +2 -16
  251. package/src/tool/yarnCalculator/i18n/zh.ts +7 -21
  252. package/src/tool/yarnCalculator/index.ts +1 -0
  253. package/src/tool/yarnCalculator/seo.astro +2 -1
  254. package/src/types.ts +2 -4
@@ -1,5 +1,6 @@
1
1
  import type { WithContext, FAQPage, HowTo, SoftwareApplication } from 'schema-dts';
2
2
  import type { ToolLocaleContent } from '../../../types';
3
+ import { bibliography } from '../bibliography';
3
4
  import type { BurnTestUI } from '../ui';
4
5
 
5
6
  const slug = 'test-spalania-tekstyliow';
@@ -114,23 +115,8 @@ export const content: ToolLocaleContent<BurnTestUI> = {
114
115
  slug,
115
116
  title,
116
117
  description,
117
- faqTitle: 'Często Zadawane Pytania',
118
118
  faq: faqData,
119
- bibliographyTitle: 'Bibliografia',
120
- bibliography: [
121
- {
122
- name: 'AATCC TM20: Fiber Analysis - Qualitative',
123
- url: 'https://members.aatcc.org/store/tm20/485/',
124
- },
125
- {
126
- name: 'Textile Fibers: Identification and Testing - NIST',
127
- url: 'https://nvlpubs.nist.gov/nistpubs/Legacy/circ/nbscircular41e3.pdf',
128
- },
129
- {
130
- name: 'Burn Test Chart for Fiber Identification - Fabric Mart',
131
- url: 'https://fabricmartfabrics.com/pages/burn-test-chart',
132
- },
133
- ],
119
+ bibliography: bibliography,
134
120
  howTo: howToData,
135
121
  schemas: [faqSchema, howToSchema, appSchema],
136
122
  seo: [
@@ -168,7 +154,7 @@ export const content: ToolLocaleContent<BurnTestUI> = {
168
154
  },
169
155
  {
170
156
  type: 'paragraph',
171
- html: 'Precyzyjna analiza wymaga zestawienia co najmniej trzech dowodów. Zapach jest najbardziej wiarygodnym wskaźnikiem przy identyfikacji mieszanek: jeśli lniana tkanina wydziela lekki plastikowy aromat i pozostawia twarde resztki, oznacza to niezadeklarowaną domieszkę poliestru.',
157
+ html: 'Precyzyjna analiza wymaga zestawienia co najmniej trzech dowodów. Zapach jest najbardziej wiarygodnym wskaźnikiem przy identyfikacji mieszanek: jeśli "lniana" tkanina wydziela lekki plastikowy aromat i pozostawia twarde resztki, oznacza to niezadeklarowaną domieszkę poliestru.',
172
158
  },
173
159
  {
174
160
  type: 'tip',
@@ -201,8 +187,8 @@ export const content: ToolLocaleContent<BurnTestUI> = {
201
187
  wool: { name: 'Wełna / Merino', icon: 'mdi:sheep', color: '#FCD34D', description: 'Białkowe włókno zwierzęce, doskonały izolator termiczny i elastyczne.' },
202
188
  silk: { name: 'Jedwab', icon: 'mdi:ticket-percent', color: '#F472B6', description: 'Zwierzęce włókno ciągłe. Naturalny połysk i suchy chwyt.' },
203
189
  cashmere: { name: 'Kaszmir', icon: 'mdi:crown', color: '#F59E0B', description: 'Luksusowe włókno z kóz kaszmirskich. Ekstremalnie miękkie, lekkie i ciepłe.' },
204
- mohair: { name: 'Mohair', icon: 'mdi:shimmer', color: '#14B8A6', description: 'Diamentowe włókno z kóz angorskich. Naturalny połysk, bardzo wytrzymałe.' },
205
- angora: { name: 'Angora', icon: 'mdi:rabbit', color: '#F9FAFB', description: 'Sierść krolika angorskiego. Znana z puszystego efektu halo i ekstremalnej lekkości.' },
190
+ mohair: { name: 'Mohair', icon: 'mdi:shimmer', color: '#14B8A6', description: '"Diamentowe włókno" z kóz angorskich. Naturalny połysk, bardzo wytrzymałe.' },
191
+ angora: { name: 'Angora', icon: 'mdi:rabbit', color: '#F9FAFB', description: 'Sierść krolika angorskiego. Znana z puszystego efektu "halo" i ekstremalnej lekkości.' },
206
192
  alpaca: { name: 'Alpaka', icon: 'mdi:image-filter-hdr', color: '#9F7AEA', description: 'Skarb Andów. Włókno puste w środku, termiczne, hipoalergiczne i jedwabiste.' },
207
193
  polyester: { name: 'Poliester', icon: 'mdi:oil', color: '#94A3B8', description: 'Syntetyczne włókno na bazie ropy naftowej. Wytrzymałe, nie gniecie się, nie oddycha.' },
208
194
  nylon: { name: 'Nylon (Poliamid)', icon: 'mdi:parachute', color: '#2DD4BF', description: 'Bardzo wytrzymałe włókno syntetyczne na rozciąganie i ścieranie.' },
@@ -1,5 +1,6 @@
1
1
  import type { WithContext, FAQPage, HowTo, SoftwareApplication } from 'schema-dts';
2
2
  import type { ToolLocaleContent } from '../../../types';
3
+ import { bibliography } from '../bibliography';
3
4
  import type { BurnTestUI } from '../ui';
4
5
 
5
6
  const slug = 'teste-combustao-textil';
@@ -114,23 +115,8 @@ export const content: ToolLocaleContent<BurnTestUI> = {
114
115
  slug,
115
116
  title,
116
117
  description,
117
- faqTitle: 'Perguntas Frequentes',
118
118
  faq: faqData,
119
- bibliographyTitle: 'Bibliografia',
120
- bibliography: [
121
- {
122
- name: 'AATCC TM20: Fiber Analysis - Qualitative',
123
- url: 'https://members.aatcc.org/store/tm20/485/',
124
- },
125
- {
126
- name: 'Textile Fibers: Identification and Testing - NIST',
127
- url: 'https://nvlpubs.nist.gov/nistpubs/Legacy/circ/nbscircular41e3.pdf',
128
- },
129
- {
130
- name: 'Burn Test Chart for Fiber Identification - Fabric Mart',
131
- url: 'https://fabricmartfabrics.com/pages/burn-test-chart',
132
- },
133
- ],
119
+ bibliography: bibliography,
134
120
  howTo: howToData,
135
121
  schemas: [faqSchema, howToSchema, appSchema],
136
122
  seo: [
@@ -1,5 +1,6 @@
1
1
  import type { WithContext, FAQPage, HowTo, SoftwareApplication } from 'schema-dts';
2
2
  import type { ToolLocaleContent } from '../../../types';
3
+ import { bibliography } from '../bibliography';
3
4
  import type { BurnTestUI } from '../ui';
4
5
 
5
6
  const slug = 'test-na-gorenie-textilya';
@@ -16,7 +17,7 @@ const faqData = [
16
17
  {
17
18
  question: 'Как пахнет хлопок при горении?',
18
19
  answer:
19
- 'Хлопокэто чистая целлюлоза. При горении он пахнет точно так же, как жженая бумага или сухие листья. Образующаяся зола серая, очень мелкая и рассыпается при прикосновении.',
20
+ 'Хлопок - это чистая целлюлоза. При горении он пахнет точно так же, как жженая бумага или сухие листья. Образующаяся зола серая, очень мелкая и рассыпается при прикосновении.',
20
21
  },
21
22
  {
22
23
  question: 'Что означает твердый черный шарик на конце волокна?',
@@ -26,7 +27,7 @@ const faqData = [
26
27
  {
27
28
  question: 'Почему шерсть плохо пахнет при горении?',
28
29
  answer:
29
- 'Шерсть и шелкэто животные белки, содержащие серу. При контакте с огнем они издают резкий запах паленой шерсти или перьев. Это самый простой способ отличить их от растительных волокон.',
30
+ 'Шерсть и шелк - это животные белки, содержащие серу. При контакте с огнем они издают резкий запах паленой шерсти или перьев. Это самый простой способ отличить их от растительных волокон.',
30
31
  },
31
32
  ];
32
33
 
@@ -114,23 +115,8 @@ export const content: ToolLocaleContent<BurnTestUI> = {
114
115
  slug,
115
116
  title,
116
117
  description,
117
- faqTitle: 'Часто задаваемые вопросы',
118
118
  faq: faqData,
119
- bibliographyTitle: 'Библиография',
120
- bibliography: [
121
- {
122
- name: 'AATCC TM20: Fiber Analysis - Qualitative',
123
- url: 'https://members.aatcc.org/store/tm20/485/',
124
- },
125
- {
126
- name: 'Textile Fibers: Identification and Testing - NIST',
127
- url: 'https://nvlpubs.nist.gov/nistpubs/Legacy/circ/nbscircular41e3.pdf',
128
- },
129
- {
130
- name: 'Burn Test Chart for Fiber Identification - Fabric Mart',
131
- url: 'https://fabricmartfabrics.com/pages/burn-test-chart',
132
- },
133
- ],
119
+ bibliography: bibliography,
134
120
  howTo: howToData,
135
121
  schemas: [faqSchema, howToSchema, appSchema],
136
122
  seo: [
@@ -141,7 +127,7 @@ export const content: ToolLocaleContent<BurnTestUI> = {
141
127
  },
142
128
  {
143
129
  type: 'paragraph',
144
- html: 'Тест на горениеэто самый быстрый и точный аналитический метод дифференциации натуральных полимеров от синтетических без использования электронного микроскопа. При воздействии тепла на волокно его молекулярное поведение раскрывает его происхождение: от растительной целлюлозы до животных белков или производных нефти.',
130
+ html: 'Тест на горение - это самый быстрый и точный аналитический метод дифференциации натуральных полимеров от синтетических без использования электронного микроскопа. При воздействии тепла на волокно его молекулярное поведение раскрывает его происхождение: от растительной целлюлозы до животных белков или производных нефти.',
145
131
  },
146
132
  {
147
133
  type: 'card',
@@ -159,7 +145,7 @@ export const content: ToolLocaleContent<BurnTestUI> = {
159
145
  type: 'card',
160
146
  title: 'Синтетические волокна',
161
147
  icon: 'mdi:bottle-soda-classic',
162
- html: '<strong>Полиэстер</strong> и <strong>Нейлон</strong>это, по сути, пластик. Они плавятся, образуя горячую каплю, которая застывает в стеклянную бусину, которую невозможно сломать, с резким химическим запахом.',
148
+ html: '<strong>Полиэстер</strong> и <strong>Нейлон</strong> - это, по сути, пластик. Они плавятся, образуя горячую каплю, которая застывает в стеклянную бусину, которую невозможно сломать, с резким химическим запахом.',
163
149
  },
164
150
  {
165
151
  type: 'title',
@@ -168,7 +154,7 @@ export const content: ToolLocaleContent<BurnTestUI> = {
168
154
  },
169
155
  {
170
156
  type: 'paragraph',
171
- html: 'Точный анализ требует сопоставления как минимум трех улик. Запахсамый надежный индикатор для определения смешанных составов: если «льняная» ткань издает легкий пластиковый аромат и оставляет твердые остатки, это указывает на незаявленную примесь полиэстера.',
157
+ html: 'Точный анализ требует сопоставления как минимум трех улик. Запах - самый надежный индикатор для определения смешанных составов: если "льняная" ткань издает легкий пластиковый аромат и оставляет твердые остатки, это указывает на незаявленную примесь полиэстера.',
172
158
  },
173
159
  {
174
160
  type: 'tip',
@@ -201,7 +187,7 @@ export const content: ToolLocaleContent<BurnTestUI> = {
201
187
  wool: { name: 'Шерсть / Меринос', icon: 'mdi:sheep', color: '#FCD34D', description: 'Белковое животное волокно, отличный термоизолятор, эластичное.' },
202
188
  silk: { name: 'Шелк', icon: 'mdi:ticket-percent', color: '#F472B6', description: 'Животное волокно в виде непрерывной нити. Естественный блеск и приятная сухость.' },
203
189
  cashmere: { name: 'Кашемир', icon: 'mdi:crown', color: '#F59E0B', description: 'Роскошное волокно из подшерстка кашемировых коз. Невероятно мягкое, легкое и теплое.' },
204
- mohair: { name: 'Мохер', icon: 'mdi:shimmer', color: '#14B8A6', description: '«Алмазное волокно» из шерсти ангорской козы. Естественный блеск, очень прочное.' },
190
+ mohair: { name: 'Мохер', icon: 'mdi:shimmer', color: '#14B8A6', description: '"Алмазное волокно" из шерсти ангорской козы. Естественный блеск, очень прочное.' },
205
191
  angora: { name: 'Ангора', icon: 'mdi:rabbit', color: '#F9FAFB', description: 'Пух ангорского кролика. Известен своим пушистым эффектом и экстремальной легкостью.' },
206
192
  alpaca: { name: 'Альпака', icon: 'mdi:image-filter-hdr', color: '#9F7AEA', description: 'Сокровище Анд. Полое, теплое, гипоаллергенное и шелковистое волокно.' },
207
193
  polyester: { name: 'Полиэстер', icon: 'mdi:oil', color: '#94A3B8', description: 'Синтетическое волокно на основе нефти. Прочное, не мнется, не дышит.' },
@@ -1,5 +1,6 @@
1
1
  import type { WithContext, FAQPage, HowTo, SoftwareApplication } from 'schema-dts';
2
2
  import type { ToolLocaleContent } from '../../../types';
3
+ import { bibliography } from '../bibliography';
3
4
  import type { BurnTestUI } from '../ui';
4
5
 
5
6
  const slug = 'textil-branntest';
@@ -114,23 +115,8 @@ export const content: ToolLocaleContent<BurnTestUI> = {
114
115
  slug,
115
116
  title,
116
117
  description,
117
- faqTitle: 'Vanliga frågor',
118
118
  faq: faqData,
119
- bibliographyTitle: 'Bibliografi',
120
- bibliography: [
121
- {
122
- name: 'AATCC TM20: Fiber Analysis - Qualitative',
123
- url: 'https://members.aatcc.org/store/tm20/485/',
124
- },
125
- {
126
- name: 'Textile Fibers: Identification and Testing - NIST',
127
- url: 'https://nvlpubs.nist.gov/nistpubs/Legacy/circ/nbscircular41e3.pdf',
128
- },
129
- {
130
- name: 'Burn Test Chart for Fiber Identification - Fabric Mart',
131
- url: 'https://fabricmartfabrics.com/pages/burn-test-chart',
132
- },
133
- ],
119
+ bibliography: bibliography,
134
120
  howTo: howToData,
135
121
  schemas: [faqSchema, howToSchema, appSchema],
136
122
  seo: [
@@ -1,5 +1,6 @@
1
1
  import type { WithContext, FAQPage, HowTo, SoftwareApplication } from 'schema-dts';
2
2
  import type { ToolLocaleContent } from '../../../types';
3
+ import { bibliography } from '../bibliography';
3
4
  import type { BurnTestUI } from '../ui';
4
5
 
5
6
  const slug = 'tekstil-yakma-testi';
@@ -114,23 +115,8 @@ export const content: ToolLocaleContent<BurnTestUI> = {
114
115
  slug,
115
116
  title,
116
117
  description,
117
- faqTitle: 'Sıkça Sorulan Sorular',
118
118
  faq: faqData,
119
- bibliographyTitle: 'Kaynakça',
120
- bibliography: [
121
- {
122
- name: 'AATCC TM20: Fiber Analysis - Qualitative',
123
- url: 'https://members.aatcc.org/store/tm20/485/',
124
- },
125
- {
126
- name: 'Textile Fibers: Identification and Testing - NIST',
127
- url: 'https://nvlpubs.nist.gov/nistpubs/Legacy/circ/nbscircular41e3.pdf',
128
- },
129
- {
130
- name: 'Burn Test Chart for Fiber Identification - Fabric Mart',
131
- url: 'https://fabricmartfabrics.com/pages/burn-test-chart',
132
- },
133
- ],
119
+ bibliography: bibliography,
134
120
  howTo: howToData,
135
121
  schemas: [faqSchema, howToSchema, appSchema],
136
122
  seo: [
@@ -1,5 +1,6 @@
1
1
  import type { WithContext, FAQPage, HowTo, SoftwareApplication } from 'schema-dts';
2
2
  import type { ToolLocaleContent } from '../../../types';
3
+ import { bibliography } from '../bibliography';
3
4
  import type { BurnTestUI } from '../ui';
4
5
 
5
6
  const slug = 'textile-burn-test';
@@ -114,23 +115,8 @@ export const content: ToolLocaleContent<BurnTestUI> = {
114
115
  slug,
115
116
  title,
116
117
  description,
117
- faqTitle: '常见问题',
118
118
  faq: faqData,
119
- bibliographyTitle: '参考文献',
120
- bibliography: [
121
- {
122
- name: 'AATCC TM20: Fiber Analysis - Qualitative',
123
- url: 'https://members.aatcc.org/store/tm20/485/',
124
- },
125
- {
126
- name: 'Textile Fibers: Identification and Testing - NIST',
127
- url: 'https://nvlpubs.nist.gov/nistpubs/Legacy/circ/nbscircular41e3.pdf',
128
- },
129
- {
130
- name: 'Burn Test Chart for Fiber Identification - Fabric Mart',
131
- url: 'https://fabricmartfabrics.com/pages/burn-test-chart',
132
- },
133
- ],
119
+ bibliography: bibliography,
134
120
  howTo: howToData,
135
121
  schemas: [faqSchema, howToSchema, appSchema],
136
122
  seo: [
@@ -168,7 +154,7 @@ export const content: ToolLocaleContent<BurnTestUI> = {
168
154
  },
169
155
  {
170
156
  type: 'paragraph',
171
- html: '精确的分析需要交叉验证至少三个证据。气味是识别混纺最可靠的指标:如果一种“亚麻”织物散发出轻微的塑料香味并留下坚硬的残留物,这表明其含有未声明的聚酯成分。',
157
+ html: '精确的分析需要交叉验证至少三个证据。气味是识别混纺最可靠的指标:如果一种"亚麻"织物散发出轻微的塑料香味并留下坚硬的残留物,这表明其含有未声明的聚酯成分。',
172
158
  },
173
159
  {
174
160
  type: 'tip',
@@ -201,8 +187,8 @@ export const content: ToolLocaleContent<BurnTestUI> = {
201
187
  wool: { name: '羊毛 / 羊绒', icon: 'mdi:sheep', color: '#FCD34D', description: '动物蛋白质纤维,优异的绝热体,具有弹性。' },
202
188
  silk: { name: '丝绸 (真丝)', icon: 'mdi:ticket-percent', color: '#F472B6', description: '动物长丝纤维。天然光泽,手感干爽。' },
203
189
  cashmere: { name: '山羊绒', icon: 'mdi:crown', color: '#F59E0B', description: '昂贵的克什米尔山羊纤维。极其柔软、轻盈、保暖。' },
204
- mohair: { name: '马海毛', icon: 'mdi:shimmer', color: '#14B8A6', description: '安哥拉山羊的“钻石纤维”。天然光泽,非常耐磨。' },
205
- angora: { name: '安哥拉兔毛', icon: 'mdi:rabbit', color: '#F9FAFB', description: '安哥拉兔的毛。以其蓬松的“光环”效果和极致轻盈著称。' },
190
+ mohair: { name: '马海毛', icon: 'mdi:shimmer', color: '#14B8A6', description: '安哥拉山羊的"钻石纤维"。天然光泽,非常耐磨。' },
191
+ angora: { name: '安哥拉兔毛', icon: 'mdi:rabbit', color: '#F9FAFB', description: '安哥拉兔的毛。以其蓬松的"光环"效果和极致轻盈著称。' },
206
192
  alpaca: { name: '阿尔パカ (羊驼毛)', icon: 'mdi:image-filter-hdr', color: '#9F7AEA', description: '安第斯山的珍宝。中空纤维,保暖、防过敏、丝滑。' },
207
193
  polyester: { name: '聚酯纤维 (涤纶)', icon: 'mdi:oil', color: '#94A3B8', description: '石油基合成纤维。耐用、抗皱、不透气。' },
208
194
  nylon: { name: '尼龙 (锦纶)', icon: 'mdi:parachute', color: '#2DD4BF', description: '抗拉和耐磨性极强的合成纤维。' },
@@ -1,3 +1,4 @@
1
+ import type { ToolDefinition } from '../../types';
1
2
  import { burnTest } from './entry';
2
3
  export * from './entry';
3
4
  export const BURN_TEST_TOOL: ToolDefinition = {
@@ -1,11 +1,5 @@
1
1
  ---
2
- import {
3
- SEOTitle,
4
- SEOCard,
5
- SEOTip,
6
- SEOList,
7
- SEOArticle
8
- } from '@jjlmoya/utils-shared';
2
+ import { SEORenderer } from '@jjlmoya/utils-shared';
9
3
  import { burnTest } from './index';
10
4
  import type { KnownLocale } from '../../types';
11
5
 
@@ -16,25 +10,6 @@ interface Props {
16
10
  const { locale = 'es' } = Astro.props;
17
11
  const content = await burnTest.i18n[locale]?.();
18
12
  if (!content) return null;
19
-
20
- const { seo } = content;
21
13
  ---
22
14
 
23
- <SEOArticle>
24
- {seo.map((section: any) => {
25
- switch (section.type) {
26
- case 'title':
27
- return <SEOTitle title={section.text} level={section.level || 2} />;
28
- case 'paragraph':
29
- return <p set:html={section.html} />;
30
- case 'list':
31
- return <SEOList items={section.items} />;
32
- case 'card':
33
- return <SEOCard title={section.title} icon={section.icon}><Fragment set:html={section.html} /></SEOCard>;
34
- case 'tip':
35
- return <SEOTip title={section.title}><Fragment set:html={section.html} /></SEOTip>;
36
- default:
37
- return null;
38
- }
39
- })}
40
- </SEOArticle>
15
+ {content.seo?.length > 0 && <SEORenderer content={{ locale, sections: content.seo }} />}
@@ -1,14 +1,6 @@
1
1
  ---
2
2
  import { Bibliography as SharedBibliography } from '@jjlmoya/utils-shared';
3
- import { clothingSizeConverter } from './index';
4
- import type { KnownLocale } from '../../types';
5
-
6
- interface Props {
7
- locale?: KnownLocale;
8
- }
9
-
10
- const { locale = 'es' } = Astro.props;
11
- const content = await clothingSizeConverter.i18n[locale]?.();
3
+ import { bibliography } from './bibliography';
12
4
  ---
13
5
 
14
- {content && <SharedBibliography links={content.bibliography} />}
6
+ <SharedBibliography links={bibliography} />
@@ -0,0 +1,10 @@
1
+ import type { BibliographyEntry } from '../../types';
2
+
3
+ export const bibliography: BibliographyEntry[] = [
4
+ { name: 'ISO 3635: Clothing Sizes - Official Standard', url: 'https://www.iso.org/standard/68644.html' },
5
+ { name: 'Clothing Size Standards - Wikipedia', url: 'https://en.wikipedia.org/wiki/Clothing_size' },
6
+ {
7
+ name: 'International Clothing Size Conversion - Wikipedia',
8
+ url: 'https://en.wikipedia.org/wiki/Clothing_size#International_variations',
9
+ },
10
+ ];
@@ -1,5 +1,6 @@
1
1
  import type { WithContext, FAQPage, HowTo, SoftwareApplication } from 'schema-dts';
2
2
  import type { ToolLocaleContent } from '../../../types';
3
+ import { bibliography } from '../bibliography';
3
4
  import type { ClothingSizeConverterUI } from '../ui';
4
5
 
5
6
  const slug = 'internationaler-konverter-konfektionsgroessen';
@@ -206,17 +207,8 @@ export const content: ToolLocaleContent<ClothingSizeConverterUI> = {
206
207
  slug,
207
208
  title,
208
209
  description,
209
- faqTitle: 'Häufig gestellte Fragen',
210
210
  faq: faqData,
211
- bibliographyTitle: 'Bibliographie',
212
- bibliography: [
213
- { name: 'ISO 3635: Kleidergrößen - Offizieller Standard', url: 'https://www.iso.org/standard/68644.html' },
214
- { name: 'Kleidernormen - Wikipedia', url: 'https://de.wikipedia.org/wiki/Konfektionsgr%C3%B6%C3%9Fe' },
215
- {
216
- name: 'Internationale Größenumrechnung - Wikipedia',
217
- url: 'https://en.wikipedia.org/wiki/Clothing_size#International_variations',
218
- },
219
- ],
211
+ bibliography: bibliography,
220
212
  howTo: howToData,
221
213
  schemas: [faqSchema, howToSchema, appSchema],
222
214
  seo: [
@@ -1,5 +1,6 @@
1
1
  import type { WithContext, FAQPage, HowTo, SoftwareApplication } from 'schema-dts';
2
2
  import type { ToolLocaleContent } from '../../../types';
3
+ import { bibliography } from '../bibliography';
3
4
  import type { ClothingSizeConverterUI } from '../ui';
4
5
 
5
6
  const slug = 'clothing-size-converter';
@@ -31,7 +32,7 @@ const faqData = [
31
32
  {
32
33
  question: 'Do clothes shrink after washing?',
33
34
  answer:
34
- '100% cotton can shrink 510% if washed in hot water and tumble dried. Synthetic materials hold their shape better. Always check the care label instructions.',
35
+ '100% cotton can shrink 5-10% if washed in hot water and tumble dried. Synthetic materials hold their shape better. Always check the care label instructions.',
35
36
  },
36
37
  ];
37
38
 
@@ -206,17 +207,8 @@ export const content: ToolLocaleContent<ClothingSizeConverterUI> = {
206
207
  slug,
207
208
  title,
208
209
  description,
209
- faqTitle: 'Frequently Asked Questions',
210
210
  faq: faqData,
211
- bibliographyTitle: 'Bibliography',
212
- bibliography: [
213
- { name: 'ISO 3635: Clothing Sizes - Official Standard', url: 'https://www.iso.org/standard/68644.html' },
214
- { name: 'Clothing Size Standards - Wikipedia', url: 'https://en.wikipedia.org/wiki/Clothing_size' },
215
- {
216
- name: 'International Clothing Size Conversion - Wikipedia',
217
- url: 'https://en.wikipedia.org/wiki/Clothing_size#International_variations',
218
- },
219
- ],
211
+ bibliography: bibliography,
220
212
  howTo: howToData,
221
213
  schemas: [faqSchema, howToSchema, appSchema],
222
214
  seo: [
@@ -1,5 +1,6 @@
1
1
  import type { WithContext, FAQPage, HowTo, SoftwareApplication } from 'schema-dts';
2
2
  import type { ToolLocaleContent } from '../../../types';
3
+ import { bibliography } from '../bibliography';
3
4
  import type { ClothingSizeConverterUI } from '../ui';
4
5
 
5
6
  const slug = 'conversor-tallas-ropa';
@@ -206,17 +207,8 @@ export const content: ToolLocaleContent<ClothingSizeConverterUI> = {
206
207
  slug,
207
208
  title,
208
209
  description,
209
- faqTitle: 'Preguntas Frecuentes',
210
210
  faq: faqData,
211
- bibliographyTitle: 'Bibliografía',
212
- bibliography: [
213
- { name: 'ISO 3635: Clothing Sizes - Official Standard', url: 'https://www.iso.org/standard/68644.html' },
214
- { name: 'Clothing Size Standards - Wikipedia', url: 'https://en.wikipedia.org/wiki/Clothing_size' },
215
- {
216
- name: 'International Clothing Size Conversion - Wikipedia',
217
- url: 'https://en.wikipedia.org/wiki/Clothing_size#International_variations',
218
- },
219
- ],
211
+ bibliography: bibliography,
220
212
  howTo: howToData,
221
213
  schemas: [faqSchema, howToSchema, appSchema],
222
214
  seo: [
@@ -1,5 +1,6 @@
1
1
  import type { WithContext, FAQPage, HowTo, SoftwareApplication } from 'schema-dts';
2
2
  import type { ToolLocaleContent } from '../../../types';
3
+ import { bibliography } from '../bibliography';
3
4
  import type { ClothingSizeConverterUI } from '../ui';
4
5
 
5
6
  const slug = 'convertisseur-tailles-vetements';
@@ -21,7 +22,7 @@ const faqData = [
21
22
  {
22
23
  question: 'Comment savoir si je dois prendre une taille au-dessus ou en dessous ?',
23
24
  answer:
24
- 'Le meilleur moyen est de lire les avis d\'autres clients. Des expressions comme « taille petit » ou « taille grand » sont très utiles. Consultez aussi le guide des tailles spécifique de la marque.',
25
+ 'Le meilleur moyen est de lire les avis d\'autres clients. Des expressions comme " taille petit " ou " taille grand " sont très utiles. Consultez aussi le guide des tailles spécifique de la marque.',
25
26
  },
26
27
  {
27
28
  question: 'La table de conversion des tailles est-elle exacte ?',
@@ -42,7 +43,7 @@ const howToData = [
42
43
  },
43
44
  {
44
45
  name: 'Choisir votre Système de Taille',
45
- text: 'Sélectionnez le système que vous connaissez : EU, US, UK ou IT.',
46
+ text: 'Sélectionnez le système que vous connaissez: EU, US, UK ou IT.',
46
47
  },
47
48
  {
48
49
  name: 'Sélectionner votre Taille',
@@ -206,23 +207,14 @@ export const content: ToolLocaleContent<ClothingSizeConverterUI> = {
206
207
  slug,
207
208
  title,
208
209
  description,
209
- faqTitle: 'Questions Fréquentes',
210
210
  faq: faqData,
211
- bibliographyTitle: 'Bibliographie',
212
- bibliography: [
213
- { name: 'ISO 3635: Clothing Sizes - Official Standard', url: 'https://www.iso.org/standard/68644.html' },
214
- { name: 'Clothing Size Standards - Wikipedia', url: 'https://en.wikipedia.org/wiki/Clothing_size' },
215
- {
216
- name: 'International Clothing Size Conversion - Wikipedia',
217
- url: 'https://en.wikipedia.org/wiki/Clothing_size#International_variations',
218
- },
219
- ],
211
+ bibliography: bibliography,
220
212
  howTo: howToData,
221
213
  schemas: [faqSchema, howToSchema, appSchema],
222
214
  seo: [
223
215
  {
224
216
  type: 'title',
225
- text: 'Convertisseur de Tailles : Guide International Complet',
217
+ text: 'Convertisseur de Tailles: Guide International Complet',
226
218
  level: 2,
227
219
  },
228
220
  {
@@ -312,9 +304,9 @@ export const content: ToolLocaleContent<ClothingSizeConverterUI> = {
312
304
  chestLabel: 'Poitrine (cm)',
313
305
  waistLabel: 'Taille (cm)',
314
306
  hipLabel: 'Hanches (cm)',
315
- chestPlaceholder: 'Ex. : 95',
316
- waistPlaceholder: 'Ex. : 85',
317
- hipPlaceholder: 'Ex. : 95',
307
+ chestPlaceholder: 'Ex.: 95',
308
+ waistPlaceholder: 'Ex.: 85',
309
+ hipPlaceholder: 'Ex.: 95',
318
310
  recommendBtnLabel: 'Recommander une Taille',
319
311
  tipsTitle: 'Conseils de Mesure',
320
312
  tipOverClothes: 'Par-dessus les vêtements',
@@ -1,5 +1,6 @@
1
1
  import type { WithContext, FAQPage, HowTo, SoftwareApplication } from 'schema-dts';
2
2
  import type { ToolLocaleContent } from '../../../types';
3
+ import { bibliography } from '../bibliography';
3
4
  import type { ClothingSizeConverterUI } from '../ui';
4
5
 
5
6
  const slug = 'konverter-ukuran-pakaian-internasional';
@@ -206,17 +207,8 @@ export const content: ToolLocaleContent<ClothingSizeConverterUI> = {
206
207
  slug,
207
208
  title,
208
209
  description,
209
- faqTitle: 'Pertanyaan yang Sering Diajukan',
210
210
  faq: faqData,
211
- bibliographyTitle: 'Bibliografi',
212
- bibliography: [
213
- { name: 'ISO 3635: Ukuran Pakaian - Standar Resmi', url: 'https://www.iso.org/standard/68644.html' },
214
- { name: 'Standar Ukuran Pakaian - Wikipedia', url: 'https://en.wikipedia.org/wiki/Clothing_size' },
215
- {
216
- name: 'Konversi Ukuran Pakaian Internasional - Wikipedia',
217
- url: 'https://en.wikipedia.org/wiki/Clothing_size#International_variations',
218
- },
219
- ],
211
+ bibliography: bibliography,
220
212
  howTo: howToData,
221
213
  schemas: [faqSchema, howToSchema, appSchema],
222
214
  seo: [
@@ -1,5 +1,6 @@
1
1
  import type { WithContext, FAQPage, HowTo, SoftwareApplication } from 'schema-dts';
2
2
  import type { ToolLocaleContent } from '../../../types';
3
+ import { bibliography } from '../bibliography';
3
4
  import type { ClothingSizeConverterUI } from '../ui';
4
5
 
5
6
  const slug = 'convertitore-taglie-abbigliamento-internazionale';
@@ -206,17 +207,8 @@ export const content: ToolLocaleContent<ClothingSizeConverterUI> = {
206
207
  slug,
207
208
  title,
208
209
  description,
209
- faqTitle: 'Domande Frequenti',
210
210
  faq: faqData,
211
- bibliographyTitle: 'Bibliografia',
212
- bibliography: [
213
- { name: 'ISO 3635: Taglie di Abbigliamento - Standard Ufficiale', url: 'https://www.iso.org/standard/68644.html' },
214
- { name: 'Standard Taglie Abbigliamento - Wikipedia', url: 'https://it.wikipedia.org/wiki/Taglia_(abbigliamento)' },
215
- {
216
- name: 'Conversione Taglie Internazionali - Wikipedia',
217
- url: 'https://en.wikipedia.org/wiki/Clothing_size#International_variations',
218
- },
219
- ],
211
+ bibliography: bibliography,
220
212
  howTo: howToData,
221
213
  schemas: [faqSchema, howToSchema, appSchema],
222
214
  seo: [
@@ -1,5 +1,6 @@
1
1
  import type { WithContext, FAQPage, HowTo, SoftwareApplication } from 'schema-dts';
2
2
  import type { ToolLocaleContent } from '../../../types';
3
+ import { bibliography } from '../bibliography';
3
4
  import type { ClothingSizeConverterUI } from '../ui';
4
5
 
5
6
  const slug = 'clothing-size-converter';
@@ -206,17 +207,8 @@ export const content: ToolLocaleContent<ClothingSizeConverterUI> = {
206
207
  slug,
207
208
  title,
208
209
  description,
209
- faqTitle: 'よくある質問',
210
210
  faq: faqData,
211
- bibliographyTitle: '参考文献',
212
- bibliography: [
213
- { name: 'ISO 3635: 衣料品サイズ - 公式標準', url: 'https://www.iso.org/standard/68644.html' },
214
- { name: '衣料品サイズ基準 - Wikipedia', url: 'https://ja.wikipedia.org/wiki/%E8%A1%A3%E9%A1%9E%E3%81%AE%E3%82%B5%E3%82%A4%E3%82%BA' },
215
- {
216
- name: '国際的な服サイズ換算 - Wikipedia',
217
- url: 'https://en.wikipedia.org/wiki/Clothing_size#International_variations',
218
- },
219
- ],
211
+ bibliography: bibliography,
220
212
  howTo: howToData,
221
213
  schemas: [faqSchema, howToSchema, appSchema],
222
214
  seo: [
@@ -1,5 +1,6 @@
1
1
  import type { WithContext, FAQPage, HowTo, SoftwareApplication } from 'schema-dts';
2
2
  import type { ToolLocaleContent } from '../../../types';
3
+ import { bibliography } from '../bibliography';
3
4
  import type { ClothingSizeConverterUI } from '../ui';
4
5
 
5
6
  const slug = 'clothing-size-converter';
@@ -206,17 +207,8 @@ export const content: ToolLocaleContent<ClothingSizeConverterUI> = {
206
207
  slug,
207
208
  title,
208
209
  description,
209
- faqTitle: '자주 묻는 질문',
210
210
  faq: faqData,
211
- bibliographyTitle: '참고 문헌',
212
- bibliography: [
213
- { name: 'ISO 3635: 의류 사이즈 - 공식 표준', url: 'https://www.iso.org/standard/68644.html' },
214
- { name: '의류 사이즈 규격 - 위키백과', url: 'https://ko.wikipedia.org/wiki/%EC%9D%98%EB%A5%98_%EC%B9%98%EC%88%98' },
215
- {
216
- name: '국제 의류 사이즈 변환 - Wikipedia',
217
- url: 'https://en.wikipedia.org/wiki/Clothing_size#International_variations',
218
- },
219
- ],
211
+ bibliography: bibliography,
220
212
  howTo: howToData,
221
213
  schemas: [faqSchema, howToSchema, appSchema],
222
214
  seo: [