@jjlmoya/utils-textiles 1.20.0 → 1.22.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 (209) hide show
  1. package/package.json +1 -1
  2. package/src/category/i18n/de.ts +76 -76
  3. package/src/category/i18n/en.ts +76 -76
  4. package/src/category/i18n/es.ts +76 -76
  5. package/src/category/i18n/fr.ts +76 -76
  6. package/src/category/i18n/id.ts +76 -76
  7. package/src/category/i18n/it.ts +76 -76
  8. package/src/category/i18n/ja.ts +76 -76
  9. package/src/category/i18n/ko.ts +76 -76
  10. package/src/category/i18n/nl.ts +76 -76
  11. package/src/category/i18n/pl.ts +76 -76
  12. package/src/category/i18n/pt.ts +76 -76
  13. package/src/category/i18n/ru.ts +76 -76
  14. package/src/category/i18n/sv.ts +76 -76
  15. package/src/category/i18n/zh.ts +76 -76
  16. package/src/category/index.ts +2 -0
  17. package/src/category/seo.astro +1 -1
  18. package/src/components/PreviewNavSidebar.astro +1 -1
  19. package/src/components/PreviewToolbar.astro +1 -1
  20. package/src/data.ts +1 -1
  21. package/src/entries.ts +4 -1
  22. package/src/env.d.ts +1 -1
  23. package/src/index.ts +1 -1
  24. package/src/layouts/PreviewLayout.astro +113 -113
  25. package/src/pages/index.astro +1 -1
  26. package/src/tests/faq_count.test.ts +19 -19
  27. package/src/tests/i18n_coverage.test.ts +4 -2
  28. package/src/tests/locale_spelling.test.ts +44 -0
  29. package/src/tests/mocks/astro_mock.js +1 -1
  30. package/src/tests/no_en_dash.test.ts +70 -70
  31. package/src/tests/no_h1_in_components.test.ts +1 -1
  32. package/src/tests/seo_length.test.ts +22 -22
  33. package/src/tests/seo_translation_completeness.test.ts +69 -0
  34. package/src/tests/spanish_leakage.test.ts +175 -153
  35. package/src/tests/tool_validation.test.ts +17 -17
  36. package/src/tool/burnTest/i18n/es.ts +211 -211
  37. package/src/tool/burnTest/i18n/fr.ts +211 -211
  38. package/src/tool/burnTest/i18n/ja.ts +211 -211
  39. package/src/tool/burnTest/i18n/ko.ts +211 -211
  40. package/src/tool/burnTest/i18n/pl.ts +211 -211
  41. package/src/tool/burnTest/i18n/ru.ts +211 -211
  42. package/src/tool/burnTest/i18n/sv.ts +211 -211
  43. package/src/tool/burnTest/i18n/zh.ts +211 -211
  44. package/src/tool/burnTest/seo.astro +15 -15
  45. package/src/tool/clothingSizeConverter/i18n/de.ts +348 -348
  46. package/src/tool/clothingSizeConverter/i18n/en.ts +348 -348
  47. package/src/tool/clothingSizeConverter/i18n/fr.ts +348 -348
  48. package/src/tool/clothingSizeConverter/i18n/ja.ts +348 -348
  49. package/src/tool/clothingSizeConverter/i18n/ko.ts +348 -348
  50. package/src/tool/clothingSizeConverter/i18n/nl.ts +348 -348
  51. package/src/tool/clothingSizeConverter/i18n/pl.ts +348 -348
  52. package/src/tool/clothingSizeConverter/i18n/ru.ts +348 -348
  53. package/src/tool/clothingSizeConverter/i18n/sv.ts +348 -348
  54. package/src/tool/clothingSizeConverter/i18n/tr.ts +348 -348
  55. package/src/tool/clothingSizeConverter/i18n/zh.ts +348 -348
  56. package/src/tool/clothingSizeConverter/seo.astro +15 -15
  57. package/src/tool/embroideryStitchPricingEstimator/bibliography.astro +6 -0
  58. package/src/tool/embroideryStitchPricingEstimator/bibliography.ts +12 -0
  59. package/src/tool/embroideryStitchPricingEstimator/component.astro +111 -0
  60. package/src/tool/embroideryStitchPricingEstimator/controller.ts +111 -0
  61. package/src/tool/embroideryStitchPricingEstimator/dom-views.ts +94 -0
  62. package/src/tool/embroideryStitchPricingEstimator/embroidery-stitch-count-pricing-estimator.css +438 -0
  63. package/src/tool/embroideryStitchPricingEstimator/entry.ts +29 -0
  64. package/src/tool/embroideryStitchPricingEstimator/evaluator.ts +22 -0
  65. package/src/tool/embroideryStitchPricingEstimator/i18n/de.ts +38 -0
  66. package/src/tool/embroideryStitchPricingEstimator/i18n/en.ts +194 -0
  67. package/src/tool/embroideryStitchPricingEstimator/i18n/es.ts +38 -0
  68. package/src/tool/embroideryStitchPricingEstimator/i18n/fr.ts +38 -0
  69. package/src/tool/embroideryStitchPricingEstimator/i18n/id.ts +38 -0
  70. package/src/tool/embroideryStitchPricingEstimator/i18n/it.ts +38 -0
  71. package/src/tool/embroideryStitchPricingEstimator/i18n/ja.ts +38 -0
  72. package/src/tool/embroideryStitchPricingEstimator/i18n/ko.ts +38 -0
  73. package/src/tool/embroideryStitchPricingEstimator/i18n/nl.ts +38 -0
  74. package/src/tool/embroideryStitchPricingEstimator/i18n/pl.ts +38 -0
  75. package/src/tool/embroideryStitchPricingEstimator/i18n/pt.ts +38 -0
  76. package/src/tool/embroideryStitchPricingEstimator/i18n/ru.ts +38 -0
  77. package/src/tool/embroideryStitchPricingEstimator/i18n/sv.ts +38 -0
  78. package/src/tool/embroideryStitchPricingEstimator/i18n/tr.ts +38 -0
  79. package/src/tool/embroideryStitchPricingEstimator/i18n/zh.ts +38 -0
  80. package/src/tool/embroideryStitchPricingEstimator/index.ts +11 -0
  81. package/src/tool/embroideryStitchPricingEstimator/logic.test.ts +40 -0
  82. package/src/tool/embroideryStitchPricingEstimator/logic.ts +86 -0
  83. package/src/tool/embroideryStitchPricingEstimator/seo.astro +15 -0
  84. package/src/tool/embroideryStitchPricingEstimator/storage.ts +20 -0
  85. package/src/tool/embroideryStitchPricingEstimator/ui.ts +53 -0
  86. package/src/tool/fabricProjectCalculator/i18n/de.ts +236 -236
  87. package/src/tool/fabricProjectCalculator/i18n/ja.ts +236 -236
  88. package/src/tool/fabricProjectCalculator/i18n/ko.ts +236 -236
  89. package/src/tool/fabricProjectCalculator/i18n/nl.ts +236 -236
  90. package/src/tool/fabricProjectCalculator/i18n/pl.ts +236 -236
  91. package/src/tool/fabricProjectCalculator/i18n/ru.ts +236 -236
  92. package/src/tool/fabricProjectCalculator/i18n/sv.ts +236 -236
  93. package/src/tool/fabricProjectCalculator/i18n/tr.ts +236 -236
  94. package/src/tool/fabricProjectCalculator/i18n/zh.ts +236 -236
  95. package/src/tool/fabricProjectCalculator/seo.astro +15 -15
  96. package/src/tool/fabricTruth/i18n/de.ts +268 -268
  97. package/src/tool/fabricTruth/i18n/en.ts +268 -268
  98. package/src/tool/fabricTruth/i18n/es.ts +302 -302
  99. package/src/tool/fabricTruth/i18n/fr.ts +268 -268
  100. package/src/tool/fabricTruth/i18n/id.ts +268 -268
  101. package/src/tool/fabricTruth/i18n/it.ts +268 -268
  102. package/src/tool/fabricTruth/i18n/ja.ts +268 -268
  103. package/src/tool/fabricTruth/i18n/ko.ts +268 -268
  104. package/src/tool/fabricTruth/i18n/nl.ts +268 -268
  105. package/src/tool/fabricTruth/i18n/pl.ts +268 -268
  106. package/src/tool/fabricTruth/i18n/pt.ts +268 -268
  107. package/src/tool/fabricTruth/i18n/ru.ts +268 -268
  108. package/src/tool/fabricTruth/i18n/sv.ts +268 -268
  109. package/src/tool/fabricTruth/i18n/tr.ts +268 -268
  110. package/src/tool/fabricTruth/i18n/zh.ts +272 -272
  111. package/src/tool/fabricTruth/seo.astro +15 -15
  112. package/src/tool/fiberPrep/i18n/de.ts +215 -215
  113. package/src/tool/fiberPrep/i18n/fr.ts +215 -215
  114. package/src/tool/fiberPrep/i18n/ja.ts +215 -215
  115. package/src/tool/fiberPrep/i18n/ko.ts +215 -215
  116. package/src/tool/fiberPrep/i18n/nl.ts +215 -215
  117. package/src/tool/fiberPrep/i18n/pl.ts +215 -215
  118. package/src/tool/fiberPrep/i18n/ru.ts +215 -215
  119. package/src/tool/fiberPrep/i18n/sv.ts +215 -215
  120. package/src/tool/fiberPrep/i18n/tr.ts +215 -215
  121. package/src/tool/fiberPrep/i18n/zh.ts +215 -215
  122. package/src/tool/fiberPrep/seo.astro +15 -15
  123. package/src/tool/knittingGauge/i18n/de.ts +224 -224
  124. package/src/tool/knittingGauge/i18n/ja.ts +224 -224
  125. package/src/tool/knittingGauge/i18n/ko.ts +224 -224
  126. package/src/tool/knittingGauge/i18n/pl.ts +224 -224
  127. package/src/tool/knittingGauge/i18n/ru.ts +224 -224
  128. package/src/tool/knittingGauge/i18n/tr.ts +224 -224
  129. package/src/tool/knittingGauge/i18n/zh.ts +224 -224
  130. package/src/tool/knittingGauge/seo.astro +15 -15
  131. package/src/tool/laundryGuide/i18n/de.ts +271 -271
  132. package/src/tool/laundryGuide/i18n/en.ts +271 -271
  133. package/src/tool/laundryGuide/i18n/es.ts +271 -271
  134. package/src/tool/laundryGuide/i18n/fr.ts +255 -255
  135. package/src/tool/laundryGuide/i18n/id.ts +271 -271
  136. package/src/tool/laundryGuide/i18n/it.ts +271 -271
  137. package/src/tool/laundryGuide/i18n/ja.ts +271 -271
  138. package/src/tool/laundryGuide/i18n/ko.ts +271 -271
  139. package/src/tool/laundryGuide/i18n/nl.ts +271 -271
  140. package/src/tool/laundryGuide/i18n/pl.ts +271 -271
  141. package/src/tool/laundryGuide/i18n/pt.ts +271 -271
  142. package/src/tool/laundryGuide/i18n/ru.ts +271 -271
  143. package/src/tool/laundryGuide/i18n/sv.ts +271 -271
  144. package/src/tool/laundryGuide/i18n/tr.ts +271 -271
  145. package/src/tool/laundryGuide/i18n/zh.ts +271 -271
  146. package/src/tool/laundryGuide/seo.astro +15 -15
  147. package/src/tool/needleConverter/i18n/de.ts +202 -202
  148. package/src/tool/needleConverter/i18n/es.ts +207 -207
  149. package/src/tool/needleConverter/i18n/fr.ts +207 -207
  150. package/src/tool/needleConverter/i18n/ja.ts +202 -202
  151. package/src/tool/needleConverter/i18n/ko.ts +202 -202
  152. package/src/tool/needleConverter/i18n/nl.ts +202 -202
  153. package/src/tool/needleConverter/i18n/pl.ts +202 -202
  154. package/src/tool/needleConverter/i18n/ru.ts +202 -202
  155. package/src/tool/needleConverter/i18n/sv.ts +202 -202
  156. package/src/tool/needleConverter/i18n/tr.ts +202 -202
  157. package/src/tool/needleConverter/i18n/zh.ts +202 -202
  158. package/src/tool/needleConverter/seo.astro +15 -15
  159. package/src/tool/sewingPatternScaler/component.astro +236 -236
  160. package/src/tool/sewingPatternScaler/i18n/fr.ts +170 -170
  161. package/src/tool/sewingPatternScaler/i18n/ja.ts +114 -114
  162. package/src/tool/sewingPatternScaler/i18n/ko.ts +114 -114
  163. package/src/tool/sewingPatternScaler/i18n/nl.ts +114 -114
  164. package/src/tool/sewingPatternScaler/i18n/pl.ts +114 -114
  165. package/src/tool/sewingPatternScaler/i18n/ru.ts +114 -114
  166. package/src/tool/sewingPatternScaler/i18n/sv.ts +114 -114
  167. package/src/tool/sewingPatternScaler/i18n/tr.ts +114 -114
  168. package/src/tool/sewingPatternScaler/i18n/zh.ts +114 -114
  169. package/src/tool/sewingPatternScaler/seo.astro +15 -15
  170. package/src/tool/shoeSizeConverter/i18n/fr.ts +183 -183
  171. package/src/tool/shoeSizeConverter/i18n/ja.ts +179 -179
  172. package/src/tool/shoeSizeConverter/i18n/ko.ts +179 -179
  173. package/src/tool/shoeSizeConverter/i18n/nl.ts +179 -179
  174. package/src/tool/shoeSizeConverter/i18n/pl.ts +179 -179
  175. package/src/tool/shoeSizeConverter/i18n/ru.ts +179 -179
  176. package/src/tool/shoeSizeConverter/i18n/sv.ts +179 -179
  177. package/src/tool/shoeSizeConverter/i18n/tr.ts +179 -179
  178. package/src/tool/shoeSizeConverter/i18n/zh.ts +179 -179
  179. package/src/tool/shoeSizeConverter/seo.astro +15 -15
  180. package/src/tool/stainChemistry/bibliography.ts +16 -16
  181. package/src/tool/stainChemistry/i18n/de.ts +286 -286
  182. package/src/tool/stainChemistry/i18n/en.ts +289 -289
  183. package/src/tool/stainChemistry/i18n/es.ts +286 -286
  184. package/src/tool/stainChemistry/i18n/fr.ts +296 -296
  185. package/src/tool/stainChemistry/i18n/id.ts +286 -286
  186. package/src/tool/stainChemistry/i18n/it.ts +286 -286
  187. package/src/tool/stainChemistry/i18n/ja.ts +286 -286
  188. package/src/tool/stainChemistry/i18n/ko.ts +283 -283
  189. package/src/tool/stainChemistry/i18n/nl.ts +286 -286
  190. package/src/tool/stainChemistry/i18n/pl.ts +286 -286
  191. package/src/tool/stainChemistry/i18n/pt.ts +286 -286
  192. package/src/tool/stainChemistry/i18n/ru.ts +286 -286
  193. package/src/tool/stainChemistry/i18n/sv.ts +286 -286
  194. package/src/tool/stainChemistry/i18n/tr.ts +286 -286
  195. package/src/tool/stainChemistry/i18n/zh.ts +281 -281
  196. package/src/tool/stainChemistry/seo.astro +15 -15
  197. package/src/tool/yarnCalculator/i18n/de.ts +296 -296
  198. package/src/tool/yarnCalculator/i18n/es.ts +296 -296
  199. package/src/tool/yarnCalculator/i18n/fr.ts +296 -296
  200. package/src/tool/yarnCalculator/i18n/ja.ts +296 -296
  201. package/src/tool/yarnCalculator/i18n/ko.ts +296 -296
  202. package/src/tool/yarnCalculator/i18n/nl.ts +296 -296
  203. package/src/tool/yarnCalculator/i18n/pl.ts +296 -296
  204. package/src/tool/yarnCalculator/i18n/ru.ts +296 -296
  205. package/src/tool/yarnCalculator/i18n/sv.ts +296 -296
  206. package/src/tool/yarnCalculator/i18n/tr.ts +296 -296
  207. package/src/tool/yarnCalculator/i18n/zh.ts +295 -295
  208. package/src/tool/yarnCalculator/seo.astro +15 -15
  209. package/src/tools.ts +2 -2
@@ -1,296 +1,296 @@
1
- import type { WithContext, FAQPage, HowTo, SoftwareApplication } from 'schema-dts';
2
- import type { ToolLocaleContent } from '../../../types';
3
- import { bibliography } from '../bibliography';
4
- import type { YarnCalculatorUI } from '../ui';
5
-
6
- const slug = 'calculateur-laine';
7
- const title = 'Calculateur de Laine: Combien de mètres et de pelotes ?';
8
- const description =
9
- 'Calculez avec précision la quantité de laine nécessaire pour vos projets de tricot et crochet en fonction du patron et de la taille.';
10
-
11
- const faqData = [
12
- {
13
- question: 'Pourquoi le crochet utilise-t-il plus de laine que le tricot ?',
14
- answer:
15
- 'Le crochet crée des nœuds et des boucles superposés, ce qui produit un tissu plus dense et épais par centimètre carré. En moyenne, un projet au crochet consomme 25 à 35% de fil de plus que le même projet tricoté à plat.',
16
- },
17
- {
18
- question: 'Que se passe-t-il si j\'achète de la laine de différents lots de teinture ?',
19
- answer:
20
- 'Même si la couleur semble identique en magasin, les variations chimiques minimes lors de la teinture peuvent créer des "rayures" visibles dans le vêtement terminé. Il est fortement recommandé d\'acheter toute la laine en une fois en vérifiant que le code de lot est identique.',
21
- },
22
- {
23
- question: 'Comment la tension affecte-t-elle la consommation finale ?',
24
- answer:
25
- 'Si vous tricotez de façon lâche, chaque point utilise plus de mètres de fil. Si votre échantillon de tension est plus grand que ce qu\'indique le patron, votre consommation de laine augmentera considérablement. Il est essentiel de réaliser un échantillon de tension au préalable.',
26
- },
27
- {
28
- question: 'Comment calculer les mètres si je n\'ai que le poids de la pelote ?',
29
- answer:
30
- 'Sans la donnée de métrage, c\'est difficile. La plupart des pelotes indiquent les mètres sur leur étiquette. Si ce n\'est pas le cas, recherchez le nom de la laine dans des bases de données comme Ravelry pour trouver la longueur exacte par 50g ou 100g.',
31
- },
32
- ];
33
-
34
- const howToData = [
35
- {
36
- name: 'Sélectionnez le projet',
37
- text: 'Choisissez parmi un pull, une écharpe, un bonnet, des chaussettes ou une couverture pour charger les bases de consommation spécifiques.',
38
- },
39
- {
40
- name: 'Définissez la taille et l\'épaisseur',
41
- text: 'Indiquez les dimensions finales (S, M, L, XL) et l\'épaisseur du fil que vous utiliserez (Fingering, DK, Worsted, Bulky).',
42
- },
43
- {
44
- name: 'Activez les multiplicateurs',
45
- text: 'Si votre patron comporte des torsades ou des textures complexes, activez le commutateur de textures pour ajouter le supplément nécessaire.',
46
- },
47
- {
48
- name: 'Obtenez la liste d\'achats',
49
- text: 'Entrez les mètres par pelote de votre laine choisie pour voir exactement combien d\'unités vous devez acheter.',
50
- },
51
- ];
52
-
53
- const faqSchema: WithContext<FAQPage> = {
54
- '@context': 'https://schema.org',
55
- '@type': 'FAQPage',
56
- mainEntity: faqData.map((item) => ({
57
- '@type': 'Question',
58
- name: item.question,
59
- acceptedAnswer: { '@type': 'Answer', text: item.answer },
60
- })),
61
- };
62
-
63
- const howToSchema: WithContext<HowTo> = {
64
- '@context': 'https://schema.org',
65
- '@type': 'HowTo',
66
- name: title,
67
- description,
68
- step: howToData.map((step) => ({
69
- '@type': 'HowToStep',
70
- name: step.name,
71
- text: step.text,
72
- })),
73
- };
74
-
75
- const appSchema: WithContext<SoftwareApplication> = {
76
- '@context': 'https://schema.org',
77
- '@type': 'SoftwareApplication',
78
- name: title,
79
- description,
80
- applicationCategory: 'UtilityApplication',
81
- operatingSystem: 'All',
82
- offers: { '@type': 'Offer', price: '0', priceCurrency: 'EUR' },
83
- inLanguage: 'fr',
84
- };
85
-
86
- export const content: ToolLocaleContent<YarnCalculatorUI> = {
87
- slug,
88
- title,
89
- description,
90
- faq: faqData,
91
- bibliography: bibliography,
92
- howTo: howToData,
93
- schemas: [faqSchema, howToSchema, appSchema],
94
- seo: [
95
- {
96
- type: 'title',
97
- text: 'Guide de Consommation de Laine: Comment Calculer Mètres et Pelotes',
98
- level: 2,
99
- },
100
- {
101
- type: 'paragraph',
102
- html: 'Maîtrisez la logistique du tricot et évitez de manquer de fil grâce à notre calculateur technique de précision pour le tricot et le crochet. L\'une des plus grandes craintes des tricoteurs est le <strong>"Yarn Chicken"</strong>: ce moment critique en fin de projet où le fil semble vouloir se terminer avant de fermer les dernières mailles. Ce calculateur a été développé pour vous offrir des estimations basées sur les standards industriels de métrage et de grammage.',
103
- },
104
- {
105
- type: 'stats',
106
- items: [
107
- { value: '+10%', label: 'Marge de Sécurité', icon: 'mdi:security' },
108
- { value: 'Métrique', label: 'Calcul en Mètres', icon: 'mdi:ruler' },
109
- { value: 'Hors ligne', label: 'Base de Données Locale', icon: 'mdi:wifi-off' },
110
- ],
111
- columns: 3,
112
- },
113
- {
114
- type: 'title',
115
- text: 'Pourquoi le Poids des Pelotes est Trompeur',
116
- level: 3,
117
- },
118
- {
119
- type: 'paragraph',
120
- html: 'Beaucoup de débutants font l\'erreur d\'acheter de la laine en se basant exclusivement sur le poids (ex. "6 pelotes de 100g"). Cependant, le poids est une unité de masse, pas de longueur. Deux laines de 100g peuvent avoir des longueurs radicalement différentes: une laine <strong>Bulky</strong> peut n\'avoir que 80 mètres, tandis qu\'une <strong>Fingering / Lace</strong> peut dépasser 450 mètres pour le même poids.',
121
- },
122
- {
123
- type: 'paragraph',
124
- html: 'C\'est pourquoi notre calculateur priorise toujours les <strong>mètres totaux</strong>. Une fois que vous connaissez la longueur nécessaire pour votre taille et projet, divisez-la par le métrage indiqué sur l\'étiquette de votre pelote pour obtenir le nombre exact d\'unités à acheter.',
125
- },
126
- {
127
- type: 'title',
128
- text: 'Tableau de Métrages Standard par Épaisseur',
129
- level: 3,
130
- },
131
- {
132
- type: 'paragraph',
133
- html: 'Si vous n\'avez pas l\'étiquette sous la main, utilisez ces métrages de référence (pour 100g de fibre) pour vos estimations :',
134
- },
135
- {
136
- type: 'table',
137
- headers: ['Épaisseur (Weight)', 'Mètres approx. / 100g', 'Utilisation Recommandée', 'Aiguilles Suggérées'],
138
- rows: [
139
- ['<strong>Lace / 0</strong>', '600 - 900m', 'Châles dentelle, ajourés', '1.5 - 2.5mm'],
140
- ['<strong>Fingering / 1</strong>', '360 - 450m', 'Chaussettes, layette', '2.25 - 3.25mm'],
141
- ['<strong>Sport / 2</strong>', '270 - 320m', 'Vestes légères', '3.25 - 3.75mm'],
142
- ['<strong>DK / 3</strong>', '200 - 250m', 'Pulls, bonnets', '3.75 - 4.5mm'],
143
- ['<strong>Worsted / 4</strong>', '180 - 220m', 'Couvertures, manteaux', '4.5 - 5.5mm'],
144
- ['<strong>Bulky / 5</strong>', '100 - 140m', 'Écharpes XXL, couvertures', '6.0 - 8.0mm'],
145
- ],
146
- },
147
- {
148
- type: 'tip',
149
- title: 'Le Facteur Tension (Gauge)',
150
- html: '<p>Rappellez-vous que si vous tricotez très lâchement, vos mailles seront plus grandes et consommeront plus de fil. Notre calculateur applique une marge de sécurité, mais si vous savez que votre tension est extrêmement lâche, ajoutez 5-10% supplémentaires pour éviter les surprises.</p>',
151
- },
152
- {
153
- type: 'title',
154
- text: 'Variables qui Augmentent la Consommation de Fil',
155
- level: 3,
156
- },
157
- {
158
- type: 'paragraph',
159
- html: 'Tous les points ne consomment pas la même quantité de fibre. Lors du choix de votre design, tenez compte de ces facteurs multiplicateurs :',
160
- },
161
- {
162
- type: 'comparative',
163
- items: [
164
- {
165
- title: 'Jersey / Point Endroit',
166
- description: 'Représente la consommation de base et l\'efficacité maximale de fil pour tout vêtement.',
167
- icon: 'mdi:minus-circle-outline',
168
- points: ['Idéal pour les débutants', 'Tombé naturel du tissu'],
169
- },
170
- {
171
- title: 'Torsades / Câbles',
172
- description: 'Le croisement des fibres "raccourcit" la pièce, augmentant la consommation de 25%.',
173
- icon: 'mdi:texture-box',
174
- points: ['Nécessite plus de mètres', 'Tissu plus dense et lourd'],
175
- pointIcon: 'mdi:alert-circle-outline',
176
- },
177
- {
178
- title: 'Crochet',
179
- description: 'Les nœuds du crochet utilisent 30% de fil de plus que le tricot plat.',
180
- icon: 'mdi:hook',
181
- points: ['Consommation rapide des pelotes', 'Texture tridimensionnelle'],
182
- pointIcon: 'mdi:alert-circle-outline',
183
- },
184
- {
185
- title: 'Côtes',
186
- description: 'La structure endroit/envers accumule plus de laine par cm carré.',
187
- icon: 'mdi:unfold-more-horizontal',
188
- points: ['Consommation intermédiaire (+15%)', 'Haute récupération élastique'],
189
- },
190
- ],
191
- columns: 2,
192
- },
193
- {
194
- type: 'title',
195
- text: 'Glossaire du Tricoteur Prévoyant',
196
- level: 3,
197
- },
198
- {
199
- type: 'glossary',
200
- items: [
201
- {
202
- term: 'Dye Lot (Lot de teinture)',
203
- definition:
204
- 'Numéro identifiant la cuve de teinture dans laquelle la laine a été teinte. Différents lots peuvent présenter des variations de couleur imperceptibles dans la pelote mais très visibles dans le vêtement terminé.',
205
- },
206
- {
207
- term: 'Stash (Réserve)',
208
- definition:
209
- 'La collection personnelle de fils d\'un tricoteur. Identifier le poids des restes de fils sans étiquette est essentiel pour calculer les petits projets.',
210
- },
211
- {
212
- term: 'Put-up (Conditionnement)',
213
- definition:
214
- 'La forme sous laquelle le fil est présenté (écheveau, pelote ou cône), ce qui détermine s\'il doit être mis en pelote avant utilisation.',
215
- },
216
- {
217
- term: 'Yarn Chicken',
218
- definition:
219
- 'Le défi de tenter de terminer une section de tricot avec une quantité de fil apparemment insuffisante.',
220
- },
221
- ],
222
- },
223
- {
224
- type: 'title',
225
- text: 'Comment Utiliser les Résultats de ce Calculateur',
226
- level: 3,
227
- },
228
- {
229
- type: 'paragraph',
230
- html: 'Une fois que l\'outil vous donne le nombre de mètres et de pelotes, nous recommandons ces étapes de vérification manuelle :',
231
- },
232
- {
233
- type: 'list',
234
- items: [
235
- '<strong>Vérifiez le métrage réel de votre pelote :</strong> Toutes les pelotes de 100g n\'ont pas 200m. Vérifiez sur l\'étiquette pour ajuster le calcul final.',
236
- '<strong>Ajoutez le métrage des détails :</strong> Si vous ajoutez des franges à une écharpe ou des pompons à un bonnet, ajoutez 50-80 mètres supplémentaires au total.',
237
- '<strong>Échantillon de tension :</strong> Tricotez un carré de 10x10 cm. Pesez-le sur une balance de précision. S\'il pèse 20g et votre couverture fait 100x100cm (100 carrés), vous aurez besoin exactement de 2kg de laine.',
238
- '<strong>Achetez toujours du même lot :</strong> Si le calcul indique 7 pelotes, achetez-en 8 si elles sont de lots différents pour avoir une marge ou pour les pièces cachées comme les coutures.',
239
- ],
240
- },
241
- {
242
- type: 'summary',
243
- title: 'Conseils Stratégiques pour l\'Achat de Laine',
244
- items: [
245
- 'Priorisez les mètres sur les grammes pour assurer la longueur nécessaire.',
246
- 'Le crochet consomme beaucoup plus de laine que le tricot ; ajustez le sélecteur de type.',
247
- 'Les textures denses (torsades) nécessitent une augmentation de 25% du budget de fil.',
248
- 'Conservez toujours une étiquette de chaque lot au cas où vous auriez besoin de commander la même couleur.',
249
- 'Utilisez la marge de sécurité de 10% pour tricoter l\'échantillon de tension obligatoire.',
250
- ],
251
- },
252
- ],
253
- ui: {
254
- sectionProject: '1. TYPE DE PROJET',
255
- sectionSize: '2. DIMENSIONS / TAILLE',
256
- sectionWeight: '3. ÉPAISSEUR DU FIL',
257
- sectionPattern: '4. CARACTÉRISTIQUES DU PATRON',
258
- sectionBall: '5. DONNÉES DE LA PELOTE',
259
- labelCables: 'Torsades ou textures denses ?',
260
- labelGrams: 'GRAMMES / PELOTE',
261
- labelMeters: 'MÈTRES / PELOTE',
262
- weightFine: 'Fin',
263
- weightMedium: 'Moyen',
264
- weightThick: 'Épais',
265
- weightXXL: 'XXL',
266
- projectSweater: 'PULL',
267
- projectScarf: 'ÉCHARPE',
268
- projectHat: 'BONNET',
269
- projectSocks: 'CHAUSSETTES',
270
- projectBlanket: 'COUVERTURE',
271
- projectCardigan: 'GILET',
272
- statPrefix: 'CONSOMMATION TOTALE ESTIMÉE',
273
- statSuffix: 'M',
274
- statNote: 'Métrage final calculé avec une réserve de sécurité de 10%.',
275
- ballsFormatSingular: 'Achetez {n} pelote',
276
- ballsFormatPlural: 'Achetez {n} pelotes',
277
- ballsDetailFormat: 'Pelotes de {w}g / {m}m chacune.',
278
- alertTitle: 'Sécurité stratégique :',
279
- alertText:
280
- 'Ce calcul garantit déjà que vous ne manquerez pas de fil. N\'oubliez pas de vérifier le numéro de lot lors de l\'achat de vos pelotes pour éviter les sauts de couleur.',
281
- schemeSleeveLabel: 'Manches',
282
- schemeSleeveEach: 'ch.',
283
- schemeBodyLabel: 'Corps',
284
- schemeTotalHat: 'Total Bonnet',
285
- schemeTotalFlat: 'Total Pièce',
286
- schemeTotalSocks: 'Total Paire',
287
- sizeLabels: {
288
- sweater: ['S', 'M', 'L', 'XL'],
289
- cardigan: ['S', 'M', 'L', 'XL'],
290
- hat: ['Enfant', 'S', 'M', 'L'],
291
- scarf: ['Mini', 'M', 'Grand', 'Maxi'],
292
- socks: ['Enfant', 'Ad. S', 'Ad. M', 'Ad. L'],
293
- blanket: ['Bébé', 'Canapé', '1 pers.', '2 pers.'],
294
- },
295
- },
296
- };
1
+ import type { WithContext, FAQPage, HowTo, SoftwareApplication } from 'schema-dts';
2
+ import type { ToolLocaleContent } from '../../../types';
3
+ import { bibliography } from '../bibliography';
4
+ import type { YarnCalculatorUI } from '../ui';
5
+
6
+ const slug = 'calculateur-laine';
7
+ const title = 'Calculateur de Laine: Combien de mètres et de pelotes ?';
8
+ const description =
9
+ 'Calculez avec précision la quantité de laine nécessaire pour vos projets de tricot et crochet en fonction du patron et de la taille.';
10
+
11
+ const faqData = [
12
+ {
13
+ question: 'Pourquoi le crochet utilise-t-il plus de laine que le tricot ?',
14
+ answer:
15
+ 'Le crochet crée des nœuds et des boucles superposés, ce qui produit un tissu plus dense et épais par centimètre carré. En moyenne, un projet au crochet consomme 25 à 35% de fil de plus que le même projet tricoté à plat.',
16
+ },
17
+ {
18
+ question: 'Que se passe-t-il si j\'achète de la laine de différents lots de teinture ?',
19
+ answer:
20
+ 'Même si la couleur semble identique en magasin, les variations chimiques minimes lors de la teinture peuvent créer des "rayures" visibles dans le vêtement terminé. Il est fortement recommandé d\'acheter toute la laine en une fois en vérifiant que le code de lot est identique.',
21
+ },
22
+ {
23
+ question: 'Comment la tension affecte-t-elle la consommation finale ?',
24
+ answer:
25
+ 'Si vous tricotez de façon lâche, chaque point utilise plus de mètres de fil. Si votre échantillon de tension est plus grand que ce qu\'indique le patron, votre consommation de laine augmentera considérablement. Il est essentiel de réaliser un échantillon de tension au préalable.',
26
+ },
27
+ {
28
+ question: 'Comment calculer les mètres si je n\'ai que le poids de la pelote ?',
29
+ answer:
30
+ 'Sans la donnée de métrage, c\'est difficile. La plupart des pelotes indiquent les mètres sur leur étiquette. Si ce n\'est pas le cas, recherchez le nom de la laine dans des bases de données comme Ravelry pour trouver la longueur exacte par 50g ou 100g.',
31
+ },
32
+ ];
33
+
34
+ const howToData = [
35
+ {
36
+ name: 'Sélectionnez le projet',
37
+ text: 'Choisissez parmi un pull, une écharpe, un bonnet, des chaussettes ou une couverture pour charger les bases de consommation spécifiques.',
38
+ },
39
+ {
40
+ name: 'Définissez la taille et l\'épaisseur',
41
+ text: 'Indiquez les dimensions finales (S, M, L, XL) et l\'épaisseur du fil que vous utiliserez (Fingering, DK, Worsted, Bulky).',
42
+ },
43
+ {
44
+ name: 'Activez les multiplicateurs',
45
+ text: 'Si votre patron comporte des torsades ou des textures complexes, activez le commutateur de textures pour ajouter le supplément nécessaire.',
46
+ },
47
+ {
48
+ name: 'Obtenez la liste d\'achats',
49
+ text: 'Entrez les mètres par pelote de votre laine choisie pour voir exactement combien d\'unités vous devez acheter.',
50
+ },
51
+ ];
52
+
53
+ const faqSchema: WithContext<FAQPage> = {
54
+ '@context': 'https://schema.org',
55
+ '@type': 'FAQPage',
56
+ mainEntity: faqData.map((item) => ({
57
+ '@type': 'Question',
58
+ name: item.question,
59
+ acceptedAnswer: { '@type': 'Answer', text: item.answer },
60
+ })),
61
+ };
62
+
63
+ const howToSchema: WithContext<HowTo> = {
64
+ '@context': 'https://schema.org',
65
+ '@type': 'HowTo',
66
+ name: title,
67
+ description,
68
+ step: howToData.map((step) => ({
69
+ '@type': 'HowToStep',
70
+ name: step.name,
71
+ text: step.text,
72
+ })),
73
+ };
74
+
75
+ const appSchema: WithContext<SoftwareApplication> = {
76
+ '@context': 'https://schema.org',
77
+ '@type': 'SoftwareApplication',
78
+ name: title,
79
+ description,
80
+ applicationCategory: 'UtilityApplication',
81
+ operatingSystem: 'All',
82
+ offers: { '@type': 'Offer', price: '0', priceCurrency: 'EUR' },
83
+ inLanguage: 'fr',
84
+ };
85
+
86
+ export const content: ToolLocaleContent<YarnCalculatorUI> = {
87
+ slug,
88
+ title,
89
+ description,
90
+ faq: faqData,
91
+ bibliography: bibliography,
92
+ howTo: howToData,
93
+ schemas: [faqSchema, howToSchema, appSchema],
94
+ seo: [
95
+ {
96
+ type: 'title',
97
+ text: 'Guide de Consommation de Laine: Comment Calculer Mètres et Pelotes',
98
+ level: 2,
99
+ },
100
+ {
101
+ type: 'paragraph',
102
+ html: 'Maîtrisez la logistique du tricot et évitez de manquer de fil grâce à notre calculateur technique de précision pour le tricot et le crochet. L\'une des plus grandes craintes des tricoteurs est le <strong>"Yarn Chicken"</strong>: ce moment critique en fin de projet où le fil semble vouloir se terminer avant de fermer les dernières mailles. Ce calculateur a été développé pour vous offrir des estimations basées sur les standards industriels de métrage et de grammage.',
103
+ },
104
+ {
105
+ type: 'stats',
106
+ items: [
107
+ { value: '+10%', label: 'Marge de Sécurité', icon: 'mdi:security' },
108
+ { value: 'Métrique', label: 'Calcul en Mètres', icon: 'mdi:ruler' },
109
+ { value: 'Hors ligne', label: 'Base de Données Locale', icon: 'mdi:wifi-off' },
110
+ ],
111
+ columns: 3,
112
+ },
113
+ {
114
+ type: 'title',
115
+ text: 'Pourquoi le Poids des Pelotes est Trompeur',
116
+ level: 3,
117
+ },
118
+ {
119
+ type: 'paragraph',
120
+ html: 'Beaucoup de débutants font l\'erreur d\'acheter de la laine en se basant exclusivement sur le poids (ex. "6 pelotes de 100g"). Cependant, le poids est une unité de masse, pas de longueur. Deux laines de 100g peuvent avoir des longueurs radicalement différentes: une laine <strong>Bulky</strong> peut n\'avoir que 80 mètres, tandis qu\'une <strong>Fingering / Lace</strong> peut dépasser 450 mètres pour le même poids.',
121
+ },
122
+ {
123
+ type: 'paragraph',
124
+ html: 'C\'est pourquoi notre calculateur priorise toujours les <strong>mètres totaux</strong>. Une fois que vous connaissez la longueur nécessaire pour votre taille et projet, divisez-la par le métrage indiqué sur l\'étiquette de votre pelote pour obtenir le nombre exact d\'unités à acheter.',
125
+ },
126
+ {
127
+ type: 'title',
128
+ text: 'Tableau de Métrages Standard par Épaisseur',
129
+ level: 3,
130
+ },
131
+ {
132
+ type: 'paragraph',
133
+ html: 'Si vous n\'avez pas l\'étiquette sous la main, utilisez ces métrages de référence (pour 100g de fibre) pour vos estimations :',
134
+ },
135
+ {
136
+ type: 'table',
137
+ headers: ['Épaisseur (Weight)', 'Mètres approx. / 100g', 'Utilisation Recommandée', 'Aiguilles Suggérées'],
138
+ rows: [
139
+ ['<strong>Lace / 0</strong>', '600 - 900m', 'Châles dentelle, ajourés', '1.5 - 2.5mm'],
140
+ ['<strong>Fingering / 1</strong>', '360 - 450m', 'Chaussettes, layette', '2.25 - 3.25mm'],
141
+ ['<strong>Sport / 2</strong>', '270 - 320m', 'Vestes légères', '3.25 - 3.75mm'],
142
+ ['<strong>DK / 3</strong>', '200 - 250m', 'Pulls, bonnets', '3.75 - 4.5mm'],
143
+ ['<strong>Worsted / 4</strong>', '180 - 220m', 'Couvertures, manteaux', '4.5 - 5.5mm'],
144
+ ['<strong>Bulky / 5</strong>', '100 - 140m', 'Écharpes XXL, couvertures', '6.0 - 8.0mm'],
145
+ ],
146
+ },
147
+ {
148
+ type: 'tip',
149
+ title: 'Le Facteur Tension (Gauge)',
150
+ html: '<p>Rappellez-vous que si vous tricotez très lâchement, vos mailles seront plus grandes et consommeront plus de fil. Notre calculateur applique une marge de sécurité, mais si vous savez que votre tension est extrêmement lâche, ajoutez 5-10% supplémentaires pour éviter les surprises.</p>',
151
+ },
152
+ {
153
+ type: 'title',
154
+ text: 'Variables qui Augmentent la Consommation de Fil',
155
+ level: 3,
156
+ },
157
+ {
158
+ type: 'paragraph',
159
+ html: 'Tous les points ne consomment pas la même quantité de fibre. Lors du choix de votre design, tenez compte de ces facteurs multiplicateurs :',
160
+ },
161
+ {
162
+ type: 'comparative',
163
+ items: [
164
+ {
165
+ title: 'Jersey / Point Endroit',
166
+ description: 'Représente la consommation de base et l\'efficacité maximale de fil pour tout vêtement.',
167
+ icon: 'mdi:minus-circle-outline',
168
+ points: ['Idéal pour les débutants', 'Tombé naturel du tissu'],
169
+ },
170
+ {
171
+ title: 'Torsades / Câbles',
172
+ description: 'Le croisement des fibres "raccourcit" la pièce, augmentant la consommation de 25%.',
173
+ icon: 'mdi:texture-box',
174
+ points: ['Nécessite plus de mètres', 'Tissu plus dense et lourd'],
175
+ pointIcon: 'mdi:alert-circle-outline',
176
+ },
177
+ {
178
+ title: 'Crochet',
179
+ description: 'Les nœuds du crochet utilisent 30% de fil de plus que le tricot plat.',
180
+ icon: 'mdi:hook',
181
+ points: ['Consommation rapide des pelotes', 'Texture tridimensionnelle'],
182
+ pointIcon: 'mdi:alert-circle-outline',
183
+ },
184
+ {
185
+ title: 'Côtes',
186
+ description: 'La structure endroit/envers accumule plus de laine par cm carré.',
187
+ icon: 'mdi:unfold-more-horizontal',
188
+ points: ['Consommation intermédiaire (+15%)', 'Haute récupération élastique'],
189
+ },
190
+ ],
191
+ columns: 2,
192
+ },
193
+ {
194
+ type: 'title',
195
+ text: 'Glossaire du Tricoteur Prévoyant',
196
+ level: 3,
197
+ },
198
+ {
199
+ type: 'glossary',
200
+ items: [
201
+ {
202
+ term: 'Dye Lot (Lot de teinture)',
203
+ definition:
204
+ 'Numéro identifiant la cuve de teinture dans laquelle la laine a été teinte. Différents lots peuvent présenter des variations de couleur imperceptibles dans la pelote mais très visibles dans le vêtement terminé.',
205
+ },
206
+ {
207
+ term: 'Stash (Réserve)',
208
+ definition:
209
+ 'La collection personnelle de fils d\'un tricoteur. Identifier le poids des restes de fils sans étiquette est essentiel pour calculer les petits projets.',
210
+ },
211
+ {
212
+ term: 'Put-up (Conditionnement)',
213
+ definition:
214
+ 'La forme sous laquelle le fil est présenté (écheveau, pelote ou cône), ce qui détermine s\'il doit être mis en pelote avant utilisation.',
215
+ },
216
+ {
217
+ term: 'Yarn Chicken',
218
+ definition:
219
+ 'Le défi de tenter de terminer une section de tricot avec une quantité de fil apparemment insuffisante.',
220
+ },
221
+ ],
222
+ },
223
+ {
224
+ type: 'title',
225
+ text: 'Comment Utiliser les Résultats de ce Calculateur',
226
+ level: 3,
227
+ },
228
+ {
229
+ type: 'paragraph',
230
+ html: 'Une fois que l\'outil vous donne le nombre de mètres et de pelotes, nous recommandons ces étapes de vérification manuelle :',
231
+ },
232
+ {
233
+ type: 'list',
234
+ items: [
235
+ '<strong>Vérifiez le métrage réel de votre pelote :</strong> Toutes les pelotes de 100g n\'ont pas 200m. Vérifiez sur l\'étiquette pour ajuster le calcul final.',
236
+ '<strong>Ajoutez le métrage des détails :</strong> Si vous ajoutez des franges à une écharpe ou des pompons à un bonnet, ajoutez 50-80 mètres supplémentaires au total.',
237
+ '<strong>Échantillon de tension :</strong> Tricotez un carré de 10x10 cm. Pesez-le sur une balance de précision. S\'il pèse 20g et votre couverture fait 100x100cm (100 carrés), vous aurez besoin exactement de 2kg de laine.',
238
+ '<strong>Achetez toujours du même lot :</strong> Si le calcul indique 7 pelotes, achetez-en 8 si elles sont de lots différents pour avoir une marge ou pour les pièces cachées comme les coutures.',
239
+ ],
240
+ },
241
+ {
242
+ type: 'summary',
243
+ title: 'Conseils Stratégiques pour l\'Achat de Laine',
244
+ items: [
245
+ 'Priorisez les mètres sur les grammes pour assurer la longueur nécessaire.',
246
+ 'Le crochet consomme beaucoup plus de laine que le tricot ; ajustez le sélecteur de type.',
247
+ 'Les textures denses (torsades) nécessitent une augmentation de 25% du budget de fil.',
248
+ 'Conservez toujours une étiquette de chaque lot au cas où vous auriez besoin de commander la même couleur.',
249
+ 'Utilisez la marge de sécurité de 10% pour tricoter l\'échantillon de tension obligatoire.',
250
+ ],
251
+ },
252
+ ],
253
+ ui: {
254
+ sectionProject: '1. TYPE DE PROJET',
255
+ sectionSize: '2. DIMENSIONS / TAILLE',
256
+ sectionWeight: '3. ÉPAISSEUR DU FIL',
257
+ sectionPattern: '4. CARACTÉRISTIQUES DU PATRON',
258
+ sectionBall: '5. DONNÉES DE LA PELOTE',
259
+ labelCables: 'Torsades ou textures denses ?',
260
+ labelGrams: 'GRAMMES / PELOTE',
261
+ labelMeters: 'MÈTRES / PELOTE',
262
+ weightFine: 'Fin',
263
+ weightMedium: 'Moyen',
264
+ weightThick: 'Épais',
265
+ weightXXL: 'XXL',
266
+ projectSweater: 'PULL',
267
+ projectScarf: 'ÉCHARPE',
268
+ projectHat: 'BONNET',
269
+ projectSocks: 'CHAUSSETTES',
270
+ projectBlanket: 'COUVERTURE',
271
+ projectCardigan: 'GILET',
272
+ statPrefix: 'CONSOMMATION TOTALE ESTIMÉE',
273
+ statSuffix: 'M',
274
+ statNote: 'Métrage final calculé avec une réserve de sécurité de 10%.',
275
+ ballsFormatSingular: 'Achetez {n} pelote',
276
+ ballsFormatPlural: 'Achetez {n} pelotes',
277
+ ballsDetailFormat: 'Pelotes de {w}g / {m}m chacune.',
278
+ alertTitle: 'Sécurité stratégique :',
279
+ alertText:
280
+ 'Ce calcul garantit déjà que vous ne manquerez pas de fil. N\'oubliez pas de vérifier le numéro de lot lors de l\'achat de vos pelotes pour éviter les sauts de couleur.',
281
+ schemeSleeveLabel: 'Manches',
282
+ schemeSleeveEach: 'ch.',
283
+ schemeBodyLabel: 'Corps',
284
+ schemeTotalHat: 'Total Bonnet',
285
+ schemeTotalFlat: 'Total Pièce',
286
+ schemeTotalSocks: 'Total Paire',
287
+ sizeLabels: {
288
+ sweater: ['S', 'M', 'L', 'XL'],
289
+ cardigan: ['S', 'M', 'L', 'XL'],
290
+ hat: ['Enfant', 'S', 'M', 'L'],
291
+ scarf: ['Mini', 'M', 'Grand', 'Maxi'],
292
+ socks: ['Enfant', 'Ad. S', 'Ad. M', 'Ad. L'],
293
+ blanket: ['Bébé', 'Canapé', '1 pers.', '2 pers.'],
294
+ },
295
+ },
296
+ };