@jjlmoya/utils-textiles 1.14.0 → 1.16.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 (93) 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/tests/diacritics_density.test.ts +118 -0
  16. package/src/tests/inverted_punctuation.test.ts +84 -0
  17. package/src/tests/no_en_dash.test.ts +70 -0
  18. package/src/tests/script_density.test.ts +94 -0
  19. package/src/tool/burnTest/i18n/de.ts +3 -3
  20. package/src/tool/burnTest/i18n/fr.ts +3 -3
  21. package/src/tool/burnTest/i18n/pl.ts +3 -3
  22. package/src/tool/burnTest/i18n/ru.ts +6 -6
  23. package/src/tool/burnTest/i18n/zh.ts +3 -3
  24. package/src/tool/clothingSizeConverter/i18n/en.ts +1 -1
  25. package/src/tool/clothingSizeConverter/i18n/fr.ts +6 -6
  26. package/src/tool/clothingSizeConverter/i18n/pl.ts +1 -1
  27. package/src/tool/clothingSizeConverter/i18n/ru.ts +2 -2
  28. package/src/tool/clothingSizeConverter/i18n/zh.ts +1 -1
  29. package/src/tool/fabricProjectCalculator/component.astro +4 -5
  30. package/src/tool/fabricProjectCalculator/fabric-project-calculator.css +474 -502
  31. package/src/tool/fabricProjectCalculator/i18n/ru.ts +2 -2
  32. package/src/tool/fabricProjectCalculator/i18n/zh.ts +1 -1
  33. package/src/tool/fabricTruth/i18n/de.ts +1 -1
  34. package/src/tool/fabricTruth/i18n/en.ts +1 -1
  35. package/src/tool/fabricTruth/i18n/es.ts +1 -1
  36. package/src/tool/fabricTruth/i18n/fr.ts +13 -13
  37. package/src/tool/fabricTruth/i18n/id.ts +1 -1
  38. package/src/tool/fabricTruth/i18n/it.ts +1 -1
  39. package/src/tool/fabricTruth/i18n/ja.ts +1 -1
  40. package/src/tool/fabricTruth/i18n/ko.ts +1 -1
  41. package/src/tool/fabricTruth/i18n/nl.ts +1 -1
  42. package/src/tool/fabricTruth/i18n/pl.ts +1 -1
  43. package/src/tool/fabricTruth/i18n/pt.ts +1 -1
  44. package/src/tool/fabricTruth/i18n/ru.ts +11 -11
  45. package/src/tool/fabricTruth/i18n/sv.ts +1 -1
  46. package/src/tool/fabricTruth/i18n/tr.ts +1 -1
  47. package/src/tool/fabricTruth/i18n/zh.ts +9 -9
  48. package/src/tool/fiberPrep/fiber-preparation-natural-dyeing.css +130 -11
  49. package/src/tool/fiberPrep/i18n/fr.ts +4 -4
  50. package/src/tool/fiberPrep/i18n/ru.ts +3 -3
  51. package/src/tool/fiberPrep/i18n/zh.ts +2 -2
  52. package/src/tool/knittingGauge/i18n/ru.ts +6 -6
  53. package/src/tool/knittingGauge/i18n/zh.ts +1 -1
  54. package/src/tool/laundryGuide/i18n/de.ts +1 -1
  55. package/src/tool/laundryGuide/i18n/en.ts +1 -1
  56. package/src/tool/laundryGuide/i18n/es.ts +1 -1
  57. package/src/tool/laundryGuide/i18n/fr.ts +12 -12
  58. package/src/tool/laundryGuide/i18n/id.ts +1 -1
  59. package/src/tool/laundryGuide/i18n/it.ts +1 -1
  60. package/src/tool/laundryGuide/i18n/nl.ts +1 -1
  61. package/src/tool/laundryGuide/i18n/pl.ts +2 -2
  62. package/src/tool/laundryGuide/i18n/pt.ts +1 -1
  63. package/src/tool/laundryGuide/i18n/ru.ts +6 -6
  64. package/src/tool/laundryGuide/i18n/sv.ts +1 -1
  65. package/src/tool/laundryGuide/i18n/zh.ts +2 -2
  66. package/src/tool/needleConverter/i18n/fr.ts +5 -5
  67. package/src/tool/needleConverter/i18n/ru.ts +4 -4
  68. package/src/tool/sewingPatternScaler/i18n/fr.ts +2 -2
  69. package/src/tool/sewingPatternScaler/i18n/pl.ts +2 -2
  70. package/src/tool/sewingPatternScaler/i18n/ru.ts +7 -7
  71. package/src/tool/sewingPatternScaler/i18n/zh.ts +3 -3
  72. package/src/tool/shoeSizeConverter/i18n/fr.ts +1 -1
  73. package/src/tool/shoeSizeConverter/i18n/ru.ts +4 -4
  74. package/src/tool/shoeSizeConverter/i18n/zh.ts +3 -3
  75. package/src/tool/stainChemistry/bibliography.ts +2 -2
  76. package/src/tool/stainChemistry/i18n/de.ts +3 -3
  77. package/src/tool/stainChemistry/i18n/en.ts +3 -3
  78. package/src/tool/stainChemistry/i18n/es.ts +3 -3
  79. package/src/tool/stainChemistry/i18n/fr.ts +6 -6
  80. package/src/tool/stainChemistry/i18n/id.ts +3 -3
  81. package/src/tool/stainChemistry/i18n/it.ts +3 -3
  82. package/src/tool/stainChemistry/i18n/ja.ts +3 -3
  83. package/src/tool/stainChemistry/i18n/ko.ts +3 -3
  84. package/src/tool/stainChemistry/i18n/nl.ts +3 -3
  85. package/src/tool/stainChemistry/i18n/pl.ts +3 -3
  86. package/src/tool/stainChemistry/i18n/pt.ts +3 -3
  87. package/src/tool/stainChemistry/i18n/ru.ts +7 -7
  88. package/src/tool/stainChemistry/i18n/sv.ts +3 -3
  89. package/src/tool/stainChemistry/i18n/tr.ts +3 -3
  90. package/src/tool/stainChemistry/i18n/zh.ts +7 -7
  91. package/src/tool/yarnCalculator/i18n/fr.ts +4 -4
  92. package/src/tool/yarnCalculator/i18n/ru.ts +7 -7
  93. package/src/tool/yarnCalculator/i18n/zh.ts +5 -5
@@ -10,7 +10,7 @@ const description = 'Перевод размеров обуви между си
10
10
  const faqData = [
11
11
  {
12
12
  question: 'Как узнать свой размер обуви в США (US)?',
13
- answer: 'Для мужчин размер US обычно на одну единицу больше, чем размер UK. Для женщин шкала отличается. Самый точный способизмерить стопу в сантиметрах и использовать наш конвертер для получения точного номера US.',
13
+ answer: 'Для мужчин размер US обычно на одну единицу больше, чем размер UK. Для женщин шкала отличается. Самый точный способ - измерить стопу в сантиметрах и использовать наш конвертер для получения точного номера US.',
14
14
  },
15
15
  {
16
16
  question: 'В чем разница между британским (UK) и американским (US) размерами обуви?',
@@ -90,7 +90,7 @@ export const content: ToolLocaleContent<ShoeSizeConverterUI> = {
90
90
  },
91
91
  {
92
92
  type: 'paragraph',
93
- html: 'Покупка обуви в международных интернет-магазинах может стать логистической проблемой. <strong>Конвертер размеров обуви</strong>это незаменимый инструмент, позволяющий избежать ненужных возвратов и гарантировать успех каждой покупки на Amazon, AliExpress или в специализированном спортивном магазине.',
93
+ html: 'Покупка обуви в международных интернет-магазинах может стать логистической проблемой. <strong>Конвертер размеров обуви</strong> - это незаменимый инструмент, позволяющий избежать ненужных возвратов и гарантировать успех каждой покупки на Amazon, AliExpress или в специализированном спортивном магазине.',
94
94
  },
95
95
  {
96
96
  type: 'title',
@@ -99,12 +99,12 @@ export const content: ToolLocaleContent<ShoeSizeConverterUI> = {
99
99
  },
100
100
  {
101
101
  type: 'paragraph',
102
- html: 'В мире обуви нет единого стандарта. Исторически сложилось так, что каждый регион разработал свою систему, основанную на местных единицах измерения, таких как дюймы или «парижская точка».',
102
+ html: 'В мире обуви нет единого стандарта. Исторически сложилось так, что каждый регион разработал свою систему, основанную на местных единицах измерения, таких как дюймы или "парижская точка".',
103
103
  },
104
104
  {
105
105
  type: 'list',
106
106
  items: [
107
- '<span><strong>Размеры EU (Европа):</strong> основаны на «парижской точке», которая равна 2/3 сантиметра. Это наиболее распространенная система в России.</span>',
107
+ '<span><strong>Размеры EU (Европа):</strong> основаны на "парижской точке", которая равна 2/3 сантиметра. Это наиболее распространенная система в России.</span>',
108
108
  '<span><strong>Размеры US (США):</strong> используют дюймы с разной точкой отсчета для мужчин и женщин.</span>',
109
109
  '<span><strong>Размеры UK (Великобритания):</strong> также используют имперскую систему, но со шкалами на одну единицу меньше, чем в США.</span>',
110
110
  '<span><strong>Размер CM / Mondopoint:</strong> самый точный. Использует непосредственно длину стопы в сантиметрах.</span>',
@@ -99,12 +99,12 @@ export const content: ToolLocaleContent<ShoeSizeConverterUI> = {
99
99
  },
100
100
  {
101
101
  type: 'paragraph',
102
- html: '鞋类世界并没有统一。从历史上看,每个地区都根据当地的测量单位(如英寸或“巴黎点”)开发了自己的系统。',
102
+ html: '鞋类世界并没有统一。从历史上看,每个地区都根据当地的测量单位(如英寸或"巴黎点")开发了自己的系统。',
103
103
  },
104
104
  {
105
105
  type: 'list',
106
106
  items: [
107
- '<span><strong>欧码 EU (欧洲):</strong> 基于“巴黎点”,相当于 2/3 厘米。这是中国最常用的参考系统之一。</span>',
107
+ '<span><strong>欧码 EU (欧洲):</strong> 基于"巴黎点",相当于 2/3 厘米。这是中国最常用的参考系统之一。</span>',
108
108
  '<span><strong>美码 US (美国):</strong> 使用英寸,且男女鞋的起点不同。</span>',
109
109
  '<span><strong>英码 UK (英国):</strong> 同样采用英制系统,但刻度比美国低一个单位。</span>',
110
110
  '<span><strong>厘米 CM / Mondopoint:</strong> 最精确的。直接使用以厘米为单位的脚长。</span>',
@@ -131,7 +131,7 @@ export const content: ToolLocaleContent<ShoeSizeConverterUI> = {
131
131
  },
132
132
  {
133
133
  type: 'paragraph',
134
- html: '为什么 Nike 穿 42 码,而在 Adidas 却穿 41 1/3 码?品牌使用自己的“鞋楦”。有些运动品牌往往尺码偏小,这迫使人们不得不购买比平时大半号的鞋子。',
134
+ html: '为什么 Nike 穿 42 码,而在 Adidas 却穿 41 1/3 码?品牌使用自己的"鞋楦"。有些运动品牌往往尺码偏小,这迫使人们不得不购买比平时大半号的鞋子。',
135
135
  },
136
136
  ],
137
137
  ui: {
@@ -6,11 +6,11 @@ export const bibliography: BibliographyEntry[] = [
6
6
  url: 'https://www.aatcc.org',
7
7
  },
8
8
  {
9
- name: 'Kissa, E.Textile Auxiliaries',
9
+ name: 'Kissa, E. - Textile Auxiliaries',
10
10
  url: 'https://www.springer.com/gp/book/9783642057328',
11
11
  },
12
12
  {
13
- name: 'ISO 105Textiles: Tests for Colour Fastness',
13
+ name: 'ISO 105 - Textiles: Tests for Colour Fastness',
14
14
  url: 'https://www.iso.org/standard/72682.html',
15
15
  },
16
16
  ];
@@ -153,7 +153,7 @@ export const content: ToolLocaleContent<StainChemistryUI> = {
153
153
  id: 'wine',
154
154
  name: 'Rotwein / Obst',
155
155
  protocols: {
156
- natural: { agentId: 'percarbonate', temperature: '4060°C', method: 'Langes Einweichen' },
156
+ natural: { agentId: 'percarbonate', temperature: '40-60°C', method: 'Langes Einweichen' },
157
157
  synthetic: { agentId: 'percarbonate', temperature: '40°C', method: 'Direktes Auftragen als Paste' },
158
158
  delicate: {
159
159
  agentId: 'vinegar',
@@ -232,13 +232,13 @@ export const content: ToolLocaleContent<StainChemistryUI> = {
232
232
  },
233
233
  {
234
234
  type: 'card',
235
- title: '01 Kontrollierte Oxidation',
235
+ title: '01: Kontrollierte Oxidation',
236
236
  icon: 'mdi:atom',
237
237
  html: '<strong>Natriumpercarbonat</strong> setzt Aktivsauerstoff frei, der die Doppelbindungen der Chromophore (die Moleküle, die für die Farbe des Flecks verantwortlich sind) aufbricht, wodurch sie farblos und wasserlöslich werden. Es ist die effektivste Methode für organische Flecken.',
238
238
  },
239
239
  {
240
240
  type: 'card',
241
- title: '02 Lösung durch Lösungsmittel',
241
+ title: '02: Lösung durch Lösungsmittel',
242
242
  icon: 'mdi:flask-outline',
243
243
  html: 'Flecken wie Öl oder Tinte sind nicht wasserlöslich. Lösungsmittel wie <strong>Isopropylalkohol</strong> oder <strong>Aceton</strong> verringern die Oberflächenspannung und ziehen die unpolaren Moleküle des Flecks an, sodass sie auf ein Trägermedium übertragen werden können.',
244
244
  },
@@ -152,7 +152,7 @@ export const content: ToolLocaleContent<StainChemistryUI> = {
152
152
  id: 'wine',
153
153
  name: 'Red Wine / Fruit',
154
154
  protocols: {
155
- natural: { agentId: 'percarbonate', temperature: '4060°C', method: 'Extended soak' },
155
+ natural: { agentId: 'percarbonate', temperature: '40-60°C', method: 'Extended soak' },
156
156
  synthetic: { agentId: 'percarbonate', temperature: '40°C', method: 'Direct paste' },
157
157
  delicate: {
158
158
  agentId: 'vinegar',
@@ -235,13 +235,13 @@ export const content: ToolLocaleContent<StainChemistryUI> = {
235
235
  },
236
236
  {
237
237
  type: 'card',
238
- title: '01 Controlled Oxidation',
238
+ title: '01: Controlled Oxidation',
239
239
  icon: 'mdi:atom',
240
240
  html: '<strong>Sodium percarbonate</strong> releases active oxygen that breaks the double bonds of chromophores (the molecules responsible for the stain\'s color), rendering them colorless and water-soluble. It is the most effective method for organic stains.',
241
241
  },
242
242
  {
243
243
  type: 'card',
244
- title: '02 Solubilization by Solvents',
244
+ title: '02: Solubilization by Solvents',
245
245
  icon: 'mdi:flask-outline',
246
246
  html: 'Stains like oil or ink are not water-soluble. Solvents such as <strong>isopropyl alcohol</strong> or <strong>acetone</strong> reduce surface tension and attract the non-polar molecules of the stain, allowing them to be transferred to a support medium.',
247
247
  },
@@ -153,7 +153,7 @@ export const content: ToolLocaleContent<StainChemistryUI> = {
153
153
  id: 'wine',
154
154
  name: 'Vino Tinto / Fruta',
155
155
  protocols: {
156
- natural: { agentId: 'percarbonate', temperature: '4060°C', method: 'Remojo prolongado' },
156
+ natural: { agentId: 'percarbonate', temperature: '40-60°C', method: 'Remojo prolongado' },
157
157
  synthetic: { agentId: 'percarbonate', temperature: '40°C', method: 'Pasta directa' },
158
158
  delicate: {
159
159
  agentId: 'vinegar',
@@ -232,13 +232,13 @@ export const content: ToolLocaleContent<StainChemistryUI> = {
232
232
  },
233
233
  {
234
234
  type: 'card',
235
- title: '01 Oxidación Controlada',
235
+ title: '01: Oxidación Controlada',
236
236
  icon: 'mdi:atom',
237
237
  html: 'El <strong>percarbonato de sodio</strong> libera oxígeno activo que rompe las dobles ligaduras de los cromóforos (las moléculas responsables del color de la mancha), volviéndolas incoloras y solubles en agua. Es el método más eficaz para manchas orgánicas.',
238
238
  },
239
239
  {
240
240
  type: 'card',
241
- title: '02 Solubilización por Solventes',
241
+ title: '02: Solubilización por Solventes',
242
242
  icon: 'mdi:flask-outline',
243
243
  html: 'Manchas como el aceite o la tinta no son solubles en agua. Solventes como el <strong>alcohol isopropílico</strong> o la <strong>acetona</strong> reducen la tensión superficial y atraen las moléculas no polares de la mancha, permitiendo que se transfieran a un medio de soporte.',
244
244
  },
@@ -6,7 +6,7 @@ import type { StainChemistryUI } from '../ui';
6
6
  const slug = 'protocole-chimique-taches';
7
7
  const title = 'Protocole Chimique des Taches Textiles';
8
8
  const description =
9
- 'Protocoles scientifiques pour éliminer les taches selon le type de fibre et la nature chimique de la tache. Percarbonate, enzymes, solvants : la bonne méthode pour chaque cas.';
9
+ 'Protocoles scientifiques pour éliminer les taches selon le type de fibre et la nature chimique de la tache. Percarbonate, enzymes, solvants: la bonne méthode pour chaque cas.';
10
10
 
11
11
  const faqData = [
12
12
  {
@@ -157,7 +157,7 @@ export const content: ToolLocaleContent<StainChemistryUI> = {
157
157
  protocols: {
158
158
  natural: {
159
159
  agentId: 'percarbonate',
160
- temperature: '4060°C',
160
+ temperature: '40-60°C',
161
161
  method: 'Trempage prolongé',
162
162
  },
163
163
  synthetic: { agentId: 'percarbonate', temperature: '40°C', method: 'Pâte directe' },
@@ -242,19 +242,19 @@ export const content: ToolLocaleContent<StainChemistryUI> = {
242
242
  },
243
243
  {
244
244
  type: 'card',
245
- title: '01 Oxydation Contrôlée',
245
+ title: '01: Oxydation Contrôlée',
246
246
  icon: 'mdi:atom',
247
247
  html: 'Le <strong>percarbonate de sodium</strong> libère de l\'oxygène actif qui brise les doubles liaisons des chromophores (les molécules responsables de la couleur de la tache), les rendant incolores et solubles dans l\'eau. C\'est la méthode la plus efficace pour les taches organiques.',
248
248
  },
249
249
  {
250
250
  type: 'card',
251
- title: '02 Solubilisation par Solvants',
251
+ title: '02: Solubilisation par Solvants',
252
252
  icon: 'mdi:flask-outline',
253
253
  html: 'Les taches comme l\'huile ou l\'encre ne sont pas solubles dans l\'eau. Des solvants tels que l\'<strong>alcool isopropylique</strong> ou l\'<strong>acétone</strong> réduisent la tension de surface et attirent les molécules apolaires de la tache, leur permettant d\'être transférées sur un support.',
254
254
  },
255
255
  {
256
256
  type: 'title',
257
- text: 'La Souveraineté des Fibres : Pourquoi le Type de Fibre Compte',
257
+ text: 'La Souveraineté des Fibres: Pourquoi le Type de Fibre Compte',
258
258
  level: 2,
259
259
  },
260
260
  {
@@ -272,7 +272,7 @@ export const content: ToolLocaleContent<StainChemistryUI> = {
272
272
  },
273
273
  {
274
274
  type: 'tip',
275
- title: 'Protocole d\'Urgence : Vin Rouge',
275
+ title: 'Protocole d\'Urgence: Vin Rouge',
276
276
  html: '<strong>A. Absorption passive :</strong> Tamponner avec du papier absorbant, ne jamais frotter pour éviter l\'expansion mécanique.<br><strong>B. Neutralisation osmotique :</strong> Couvrir de sel fin pour attirer le liquide vers l\'extérieur du noyau de la fibre.<br><strong>C. Action chimique :</strong> Appliquer une pâte de percarbonate et d\'eau à 40°C si la fibre supporte la chaleur.',
277
277
  },
278
278
  {
@@ -153,7 +153,7 @@ export const content: ToolLocaleContent<StainChemistryUI> = {
153
153
  id: 'wine',
154
154
  name: 'Anggur Merah / Buah',
155
155
  protocols: {
156
- natural: { agentId: 'percarbonate', temperature: '4060°C', method: 'Perendaman lama' },
156
+ natural: { agentId: 'percarbonate', temperature: '40-60°C', method: 'Perendaman lama' },
157
157
  synthetic: { agentId: 'percarbonate', temperature: '40°C', method: 'Pasta langsung' },
158
158
  delicate: {
159
159
  agentId: 'vinegar',
@@ -232,13 +232,13 @@ export const content: ToolLocaleContent<StainChemistryUI> = {
232
232
  },
233
233
  {
234
234
  type: 'card',
235
- title: '01 Oksidasi Terkontrol',
235
+ title: '01: Oksidasi Terkontrol',
236
236
  icon: 'mdi:atom',
237
237
  html: '<strong>Natrium perkarbonat</strong> melepaskan oksigen aktif yang memecah ikatan rangkap kromofor (molekul yang bertanggung jawab atas warna noda), menjadikannya tidak berwarna dan larut dalam air. Ini adalah metode paling efektif untuk noda organik.',
238
238
  },
239
239
  {
240
240
  type: 'card',
241
- title: '02 Kelarutan oleh Pelarut',
241
+ title: '02: Kelarutan oleh Pelarut',
242
242
  icon: 'mdi:flask-outline',
243
243
  html: 'Noda seperti minyak atau tinta tidak larut dalam air. Pelarut seperti <strong>isopropil alkohol</strong> atau <strong>aseton</strong> mengurangi tegangan permukaan dan menarik molekul non-polar noda, memungkinkannya berpindah ke media pendukung.',
244
244
  },
@@ -153,7 +153,7 @@ export const content: ToolLocaleContent<StainChemistryUI> = {
153
153
  id: 'wine',
154
154
  name: 'Vino Rosso / Frutta',
155
155
  protocols: {
156
- natural: { agentId: 'percarbonate', temperature: '4060°C', method: 'Ammollo prolungato' },
156
+ natural: { agentId: 'percarbonate', temperature: '40-60°C', method: 'Ammollo prolungato' },
157
157
  synthetic: { agentId: 'percarbonate', temperature: '40°C', method: 'Pasta diretta' },
158
158
  delicate: {
159
159
  agentId: 'vinegar',
@@ -232,13 +232,13 @@ export const content: ToolLocaleContent<StainChemistryUI> = {
232
232
  },
233
233
  {
234
234
  type: 'card',
235
- title: '01 Ossidazione Controllata',
235
+ title: '01: Ossidazione Controllata',
236
236
  icon: 'mdi:atom',
237
237
  html: 'Il <strong>percarbonato di sodio</strong> rilascia ossigeno attivo che rompe i doppi legami dei cromofori (le molecole responsabili del colore della macchia), rendendoli incolori e solubili in acqua. È il metodo più efficace per le macchie organiche.',
238
238
  },
239
239
  {
240
240
  type: 'card',
241
- title: '02 Solubilizzazione tramite Solventi',
241
+ title: '02: Solubilizzazione tramite Solventi',
242
242
  icon: 'mdi:flask-outline',
243
243
  html: "Macchie come l'olio o l'inchiostro non sono solubili in acqua. Solventi come l'<strong>alcol isopropilico</strong> o l'<strong>acetone</strong> riducono la tensione superficiale e attirano le molecole non polari della macchia, permettendo loro di trasferirsi su un mezzo di supporto.",
244
244
  },
@@ -153,7 +153,7 @@ export const content: ToolLocaleContent<StainChemistryUI> = {
153
153
  id: 'wine',
154
154
  name: '赤ワイン / 果物',
155
155
  protocols: {
156
- natural: { agentId: 'percarbonate', temperature: '4060°C', method: '長時間のつけ置き' },
156
+ natural: { agentId: 'percarbonate', temperature: '40-60°C', method: '長時間のつけ置き' },
157
157
  synthetic: { agentId: 'percarbonate', temperature: '40°C', method: '直接ペーストを塗布' },
158
158
  delicate: {
159
159
  agentId: 'vinegar',
@@ -232,13 +232,13 @@ export const content: ToolLocaleContent<StainChemistryUI> = {
232
232
  },
233
233
  {
234
234
  type: 'card',
235
- title: '01 制御された酸化作用',
235
+ title: '01: 制御された酸化作用',
236
236
  icon: 'mdi:atom',
237
237
  html: '<strong>過炭酸ナトリウム</strong>は活性酸素を放出し、色素分子(シミの色の原因)の二重結合を切断することで、シミを無色化し水に溶けやすくします。有機系のシミに最も効果的な方法です。',
238
238
  },
239
239
  {
240
240
  type: 'card',
241
- title: '02 溶剤による溶解作用',
241
+ title: '02: 溶剤による溶解作用',
242
242
  icon: 'mdi:flask-outline',
243
243
  html: 'オイルやインクのようなシミは水に溶けません。<strong>イソプロピルアルコール</strong>や<strong>アセトン</strong>のような溶剤は、表面張力を下げてシミの非極性分子を引きつけ、支持媒体へと移動させることができます。',
244
244
  },
@@ -150,7 +150,7 @@ export const content: ToolLocaleContent<StainChemistryUI> = {
150
150
  id: 'wine',
151
151
  name: '레드 와인 / 과일',
152
152
  protocols: {
153
- natural: { agentId: 'percarbonate', temperature: '4060°C', method: '장시간 담그기' },
153
+ natural: { agentId: 'percarbonate', temperature: '40-60°C', method: '장시간 담그기' },
154
154
  synthetic: { agentId: 'percarbonate', temperature: '40°C', method: '페이스트 직접 도포' },
155
155
  delicate: {
156
156
  agentId: 'vinegar',
@@ -229,13 +229,13 @@ export const content: ToolLocaleContent<StainChemistryUI> = {
229
229
  },
230
230
  {
231
231
  type: 'card',
232
- title: '01 조절된 산화 작용',
232
+ title: '01: 조절된 산화 작용',
233
233
  icon: 'mdi:atom',
234
234
  html: '<strong>과탄산나트륨</strong>은 활성산소를 방출하여 색소 분자(얼룩의 색 원인)의 이중 결합을 끊어 얼룩을 무색화하고 물에 용해되기 쉬운 상태로 만듭니다. 유기물 얼룩에 가장 효과적인 방법입니다.',
235
235
  },
236
236
  {
237
237
  type: 'card',
238
- title: '02 용제에 의한 용해',
238
+ title: '02: 용제에 의한 용해',
239
239
  icon: 'mdi:flask-outline',
240
240
  html: '기름이나 잉크 같은 얼룩은 물에 녹지 않습니다. <strong>이소프로필 알코올</strong>이나 <strong>아세톤</strong> 같은 용제는 표면 장력을 낮추고 얼룩의 비극성 분자를 끌어당겨 천 등으로 옮겨갈 수 있게 합니다.',
241
241
  },
@@ -153,7 +153,7 @@ export const content: ToolLocaleContent<StainChemistryUI> = {
153
153
  id: 'wine',
154
154
  name: 'Rode Wijn / Fruit',
155
155
  protocols: {
156
- natural: { agentId: 'percarbonate', temperature: '4060°C', method: 'Langdurig weken' },
156
+ natural: { agentId: 'percarbonate', temperature: '40-60°C', method: 'Langdurig weken' },
157
157
  synthetic: { agentId: 'percarbonate', temperature: '40°C', method: 'Rechtstreekse pasta' },
158
158
  delicate: {
159
159
  agentId: 'vinegar',
@@ -232,13 +232,13 @@ export const content: ToolLocaleContent<StainChemistryUI> = {
232
232
  },
233
233
  {
234
234
  type: 'card',
235
- title: '01 Gecontroleerde Oxidatie',
235
+ title: '01: Gecontroleerde Oxidatie',
236
236
  icon: 'mdi:atom',
237
237
  html: '<strong>Natriumpercarbonaat</strong> geeft actieve zuurstof af die de dubbele bindingen van chromoforen (de moleculen die verantwoordelijk zijn voor de kleur van de vlek) breekt, waardoor ze kleurloos en in water oplosbaar worden. Het is de meest effectieve methode voor organische vlekken.',
238
238
  },
239
239
  {
240
240
  type: 'card',
241
- title: '02 Oplosbaar maken door Oplosmiddelen',
241
+ title: '02: Oplosbaar maken door Oplosmiddelen',
242
242
  icon: 'mdi:flask-outline',
243
243
  html: 'Vlekken zoals olie of inkt zijn niet oplosbaar in water. Oplosmiddelen zoals <strong>isopropylalcohol</strong> of <strong>aceton</strong> verlagen de oppervlaktespanning en trekken de niet-polaire moleculen van de vlek aan, waardoor ze kunnen worden overgedragen op een drager.',
244
244
  },
@@ -153,7 +153,7 @@ export const content: ToolLocaleContent<StainChemistryUI> = {
153
153
  id: 'wine',
154
154
  name: 'Czerwone Wino / Owoce',
155
155
  protocols: {
156
- natural: { agentId: 'percarbonate', temperature: '4060°C', method: 'Długotrwałe moczenie' },
156
+ natural: { agentId: 'percarbonate', temperature: '40-60°C', method: 'Długotrwałe moczenie' },
157
157
  synthetic: { agentId: 'percarbonate', temperature: '40°C', method: 'Bezpośrednia pasta' },
158
158
  delicate: {
159
159
  agentId: 'vinegar',
@@ -232,13 +232,13 @@ export const content: ToolLocaleContent<StainChemistryUI> = {
232
232
  },
233
233
  {
234
234
  type: 'card',
235
- title: '01 Kontrolowane Utlenianie',
235
+ title: '01: Kontrolowane Utlenianie',
236
236
  icon: 'mdi:atom',
237
237
  html: '<strong>Nadwęglan sodu</strong> uwalnia aktywny tlen, który rozrywa podwójne wiązania chromoforów (cząsteczek odpowiedzialnych za kolor plamy), czyniąc je bezbarwnymi i rozpuszczalnymi w wodzie. Jest to najskuteczniejsza metoda na plamy organiczne.',
238
238
  },
239
239
  {
240
240
  type: 'card',
241
- title: '02 Solubilizacja przez Rozpuszczalniki',
241
+ title: '02: Solubilizacja przez Rozpuszczalniki',
242
242
  icon: 'mdi:flask-outline',
243
243
  html: 'Plamy takie jak olej czy atrament nie rozpuszczają się w wodzie. Rozpuszczalniki, takie jak <strong>alkohol izopropylowy</strong> lub <strong>aceton</strong>, zmniejszają napięcie powierzchniowe i przyciągają niepolarne cząsteczki plamy, pozwalając im przenieść się na podłoże pomocnicze.',
244
244
  },
@@ -153,7 +153,7 @@ export const content: ToolLocaleContent<StainChemistryUI> = {
153
153
  id: 'wine',
154
154
  name: 'Vinho Tinto / Fruta',
155
155
  protocols: {
156
- natural: { agentId: 'percarbonate', temperature: '4060°C', method: 'Demolha prolongada' },
156
+ natural: { agentId: 'percarbonate', temperature: '40-60°C', method: 'Demolha prolongada' },
157
157
  synthetic: { agentId: 'percarbonate', temperature: '40°C', method: 'Pasta directa' },
158
158
  delicate: {
159
159
  agentId: 'vinegar',
@@ -232,13 +232,13 @@ export const content: ToolLocaleContent<StainChemistryUI> = {
232
232
  },
233
233
  {
234
234
  type: 'card',
235
- title: '01 Oxidação Controlada',
235
+ title: '01: Oxidação Controlada',
236
236
  icon: 'mdi:atom',
237
237
  html: 'O <strong>percarbonato de sódio</strong> liberta oxigénio activo que quebra as duplas ligações dos cromóforos (as moléculas responsáveis pela cor da mancha), tornando-as incolores e solúveis em água. É o método mais eficaz para manchas orgânicas.',
238
238
  },
239
239
  {
240
240
  type: 'card',
241
- title: '02 Solubilização por Solventes',
241
+ title: '02: Solubilização por Solventes',
242
242
  icon: 'mdi:flask-outline',
243
243
  html: 'Manchas como o óleo ou a tinta não são solúveis em água. Solventes como o <strong>álcool isopropílico</strong> ou a <strong>acetona</strong> reduzem a tensão superficial e atraem as moléculas não polares da mancha, permitindo que se transfiram para um meio de suporte.',
244
244
  },
@@ -153,7 +153,7 @@ export const content: ToolLocaleContent<StainChemistryUI> = {
153
153
  id: 'wine',
154
154
  name: 'Красное вино / Фрукты',
155
155
  protocols: {
156
- natural: { agentId: 'percarbonate', temperature: '4060°C', method: 'Длительное замачивание' },
156
+ natural: { agentId: 'percarbonate', temperature: '40-60°C', method: 'Длительное замачивание' },
157
157
  synthetic: { agentId: 'percarbonate', temperature: '40°C', method: 'Нанесение пасты' },
158
158
  delicate: {
159
159
  agentId: 'vinegar',
@@ -232,13 +232,13 @@ export const content: ToolLocaleContent<StainChemistryUI> = {
232
232
  },
233
233
  {
234
234
  type: 'card',
235
- title: '01 Контролируемое окисление',
235
+ title: '01: Контролируемое окисление',
236
236
  icon: 'mdi:atom',
237
237
  html: '<strong>Перкарбонат натрия</strong> выделяет активный кислород, который разрывает двойные связи хромофоров (молекул, отвечающих за цвет пятна), делая их бесцветными и водорастворимыми. Это самый эффективный метод для органических пятен.',
238
238
  },
239
239
  {
240
240
  type: 'card',
241
- title: '02 Растворение растворителями',
241
+ title: '02: Растворение растворителями',
242
242
  icon: 'mdi:flask-outline',
243
243
  html: 'Пятна от масла или чернил не растворяются в воде. Растворители, такие как <strong>изопропиловый спирт</strong> или <strong>ацетон</strong>, снижают поверхностное натяжение и притягивают неполярные молекулы пятна, позволяя им переноситься на подложку.',
244
244
  },
@@ -249,7 +249,7 @@ export const content: ToolLocaleContent<StainChemistryUI> = {
249
249
  },
250
250
  {
251
251
  type: 'paragraph',
252
- html: 'Не все волокна «едятся» одинаково. <strong>Шелк и шерсть</strong>это белки (фиброин и кератин). Если вы без контроля примените энзимное средство, предназначенное для «поедания белков» (пятна крови или яйца), моющее средство начнет разрушать само волокно, уничтожая блеск и структуру ткани.',
252
+ html: 'Не все волокна "едятся" одинаково. <strong>Шелк и шерсть</strong> - это белки (фиброин и кератин). Если вы без контроля примените энзимное средство, предназначенное для "поедания белков" (пятна крови или яйца), моющее средство начнет разрушать само волокно, уничтожая блеск и структуру ткани.',
253
253
  },
254
254
  {
255
255
  type: 'title',
@@ -258,7 +258,7 @@ export const content: ToolLocaleContent<StainChemistryUI> = {
258
258
  },
259
259
  {
260
260
  type: 'paragraph',
261
- html: 'Одна из самых распространенных ошибокиспользование горячей воды для «размягчения» пятна крови. Химически тепло вызывает <strong>коагуляцию белков</strong> пятна, навсегда закрепляя их в пористой структуре волокна. Белковые пятна всегда следует обрабатывать холодной водой.',
261
+ html: 'Одна из самых распространенных ошибок - использование горячей воды для "размягчения" пятна крови. Химически тепло вызывает <strong>коагуляцию белков</strong> пятна, навсегда закрепляя их в пористой структуре волокна. Белковые пятна всегда следует обрабатывать холодной водой.',
262
262
  },
263
263
  {
264
264
  type: 'tip',
@@ -272,11 +272,11 @@ export const content: ToolLocaleContent<StainChemistryUI> = {
272
272
  },
273
273
  {
274
274
  type: 'paragraph',
275
- html: '<strong>Ацетон</strong>исключительный растворитель для лаков для ногтей или клея, но он губителен для <strong>ацетата</strong>. Будучи волокнами, производными от целлюлозы, но химически обработанными, ацетон буквально растворяет ткань.',
275
+ html: '<strong>Ацетон</strong> - исключительный растворитель для лаков для ногтей или клея, но он губителен для <strong>ацетата</strong>. Будучи волокнами, производными от целлюлозы, но химически обработанными, ацетон буквально растворяет ткань.',
276
276
  },
277
277
  {
278
278
  type: 'paragraph',
279
- html: '<strong>Изопропиловый спирт</strong> более стабилен, но на окрашенной синтетике он может вымывать сам пигмент. Мы всегда рекомендуем проводить «тест на шве» на незаметном участке перед основной обработкой.',
279
+ html: '<strong>Изопропиловый спирт</strong> более стабилен, но на окрашенной синтетике он может вымывать сам пигмент. Мы всегда рекомендуем проводить "тест на шве" на незаметном участке перед основной обработкой.',
280
280
  },
281
281
  ],
282
282
  faq: faqData,
@@ -153,7 +153,7 @@ export const content: ToolLocaleContent<StainChemistryUI> = {
153
153
  id: 'wine',
154
154
  name: 'Rödvin / Frukt',
155
155
  protocols: {
156
- natural: { agentId: 'percarbonate', temperature: '4060°C', method: 'Långvarig blötläggning' },
156
+ natural: { agentId: 'percarbonate', temperature: '40-60°C', method: 'Långvarig blötläggning' },
157
157
  synthetic: { agentId: 'percarbonate', temperature: '40°C', method: 'Direkt pasta' },
158
158
  delicate: {
159
159
  agentId: 'vinegar',
@@ -232,13 +232,13 @@ export const content: ToolLocaleContent<StainChemistryUI> = {
232
232
  },
233
233
  {
234
234
  type: 'card',
235
- title: '01 Kontrollerad Oxidation',
235
+ title: '01: Kontrollerad Oxidation',
236
236
  icon: 'mdi:atom',
237
237
  html: '<strong>Natriumperkarbonat</strong> frisläpper aktivt syre som bryter dubbelbindningarna i kromoforena (molekylerna som ansvarar för fläckens färg), vilket gör dem färglösa och vattenlösliga. Det är den mest effektiva metoden för organiska fläckar.',
238
238
  },
239
239
  {
240
240
  type: 'card',
241
- title: '02 Solubilisering med Lösningsmedel',
241
+ title: '02: Solubilisering med Lösningsmedel',
242
242
  icon: 'mdi:flask-outline',
243
243
  html: 'Fläckar som olja eller bläck är inte vattenlösliga. Lösningsmedel som <strong>isopropylalkohol</strong> eller <strong>aceton</strong> minskar ytspänningen och attraherar fläckens opolära molekyler, vilket gör att de kan överföras till ett bärarmaterial.',
244
244
  },
@@ -153,7 +153,7 @@ export const content: ToolLocaleContent<StainChemistryUI> = {
153
153
  id: 'wine',
154
154
  name: 'Kırmızı Şarap / Meyve',
155
155
  protocols: {
156
- natural: { agentId: 'percarbonate', temperature: '4060°C', method: 'Uzun süreli bekletme' },
156
+ natural: { agentId: 'percarbonate', temperature: '40-60°C', method: 'Uzun süreli bekletme' },
157
157
  synthetic: { agentId: 'percarbonate', temperature: '40°C', method: 'Doğrudan macun' },
158
158
  delicate: {
159
159
  agentId: 'vinegar',
@@ -232,13 +232,13 @@ export const content: ToolLocaleContent<StainChemistryUI> = {
232
232
  },
233
233
  {
234
234
  type: 'card',
235
- title: '01 Kontrollü Oksidasyon',
235
+ title: '01: Kontrollü Oksidasyon',
236
236
  icon: 'mdi:atom',
237
237
  html: '<strong>Sodyum perkarbonat</strong>, kromoforların (lekenin renginden sorumlu moleküller) çift bağlarını kopararak onları renksiz ve suda çözünür hale getiren aktif oksijen salar. Organik lekeler için en etkili yöntemdir.',
238
238
  },
239
239
  {
240
240
  type: 'card',
241
- title: '02 Çözücülerle Çözünürlük',
241
+ title: '02: Çözücülerle Çözünürlük',
242
242
  icon: 'mdi:flask-outline',
243
243
  html: 'Yağ veya mürekkep gibi lekeler suda çözünmezler. <strong>İzopropil alkol</strong> veya <strong>aseton</strong> gibi çözücüler yüzey gerilimini azaltır ve lekenin polar olmayan moleküllerini çekerek bir destek ortamına aktarılmalarını sağlar.',
244
244
  },
@@ -44,7 +44,7 @@ const howToData = [
44
44
  },
45
45
  {
46
46
  name: '执行指定方案',
47
- text: '按照提供的溶剂类型、温度和方法说明进行操作。请特别留意“关键警示”部分。',
47
+ text: '按照提供的溶剂类型、温度和方法说明进行操作。请特别留意"关键警示"部分。',
48
48
  },
49
49
  ];
50
50
 
@@ -148,7 +148,7 @@ export const content: ToolLocaleContent<StainChemistryUI> = {
148
148
  id: 'wine',
149
149
  name: '红酒 / 水果',
150
150
  protocols: {
151
- natural: { agentId: 'percarbonate', temperature: '4060°C', method: '长时间浸泡' },
151
+ natural: { agentId: 'percarbonate', temperature: '40-60°C', method: '长时间浸泡' },
152
152
  synthetic: { agentId: 'percarbonate', temperature: '40°C', method: '直接涂抹糊状物' },
153
153
  delicate: {
154
154
  agentId: 'vinegar',
@@ -227,13 +227,13 @@ export const content: ToolLocaleContent<StainChemistryUI> = {
227
227
  },
228
228
  {
229
229
  type: 'card',
230
- title: '01 —— 受控氧化',
230
+ title: '01: 受控氧化',
231
231
  icon: 'mdi:atom',
232
232
  html: '<strong>过碳酸钠</strong>释放出的活性氧能断裂发色团(污渍颜色的来源分子)的双键,使其变得无色并可溶于水。这是处理有机污渍最有效的方法。',
233
233
  },
234
234
  {
235
235
  type: 'card',
236
- title: '02 —— 溶剂增溶',
236
+ title: '02: 溶剂增溶',
237
237
  icon: 'mdi:flask-outline',
238
238
  html: '油渍或墨水等污渍不溶于水。<strong>异丙基酒精</strong>或<strong>丙酮</strong>等溶剂能降低表面张力并吸引污渍中的非极性分子,使它们能够转移至承载媒介上。',
239
239
  },
@@ -244,7 +244,7 @@ export const content: ToolLocaleContent<StainChemistryUI> = {
244
244
  },
245
245
  {
246
246
  type: 'paragraph',
247
- html: '并非所有纤维都能经受同样的“侵蚀”。<strong>真丝和羊毛</strong>属于蛋白质(丝蛋白和角蛋白)。如果你盲目使用专为“吞噬蛋白质”(用于处理血渍或蛋渍)设计的酶促洗涤剂,它会开始降解纤维本身,从而破坏织物的光泽和结构。',
247
+ html: '并非所有纤维都能经受同样的"侵蚀"。<strong>真丝和羊毛</strong>属于蛋白质(丝蛋白和角蛋白)。如果你盲目使用专为"吞噬蛋白质"(用于处理血渍或蛋渍)设计的酶促洗涤剂,它会开始降解纤维本身,从而破坏织物的光泽和结构。',
248
248
  },
249
249
  {
250
250
  type: 'title',
@@ -253,7 +253,7 @@ export const content: ToolLocaleContent<StainChemistryUI> = {
253
253
  },
254
254
  {
255
255
  type: 'paragraph',
256
- html: '最常见的错误之一是使用热水来“软化”血渍。从化学角度看,热量会导致污渍中的<strong>蛋白质凝固</strong>,从而使其永久固定在纤维的多孔结构中。蛋白质类污渍必须始终使用冷水处理。',
256
+ html: '最常见的错误之一是使用热水来"软化"血渍。从化学角度看,热量会导致污渍中的<strong>蛋白质凝固</strong>,从而使其永久固定在纤维的多孔结构中。蛋白质类污渍必须始终使用冷水处理。',
257
257
  },
258
258
  {
259
259
  type: 'tip',
@@ -271,7 +271,7 @@ export const content: ToolLocaleContent<StainChemistryUI> = {
271
271
  },
272
272
  {
273
273
  type: 'paragraph',
274
- html: '<strong>异丙基酒精</strong>相对更稳定,但在染色的合成纤维上可能会带走色素本身。我们建议在正式处理前,始终先在“内锁边”等隐蔽区域进行测试。',
274
+ html: '<strong>异丙基酒精</strong>相对更稳定,但在染色的合成纤维上可能会带走色素本身。我们建议在正式处理前,始终先在"内锁边"等隐蔽区域进行测试。',
275
275
  },
276
276
  ],
277
277
  faq: faqData,
@@ -4,7 +4,7 @@ import { bibliography } from '../bibliography';
4
4
  import type { YarnCalculatorUI } from '../ui';
5
5
 
6
6
  const slug = 'calculateur-laine';
7
- const title = 'Calculateur de Laine : Combien de mètres et de pelotes ?';
7
+ const title = 'Calculateur de Laine: Combien de mètres et de pelotes ?';
8
8
  const description =
9
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
10
 
@@ -94,12 +94,12 @@ export const content: ToolLocaleContent<YarnCalculatorUI> = {
94
94
  seo: [
95
95
  {
96
96
  type: 'title',
97
- text: 'Guide de Consommation de Laine : Comment Calculer Mètres et Pelotes',
97
+ text: 'Guide de Consommation de Laine: Comment Calculer Mètres et Pelotes',
98
98
  level: 2,
99
99
  },
100
100
  {
101
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.',
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
103
  },
104
104
  {
105
105
  type: 'stats',
@@ -117,7 +117,7 @@ export const content: ToolLocaleContent<YarnCalculatorUI> = {
117
117
  },
118
118
  {
119
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.',
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
121
  },
122
122
  {
123
123
  type: 'paragraph',