@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
@@ -99,7 +99,7 @@ export const content: ToolLocaleContent<FabricProjectCalculatorUI> = {
99
99
  },
100
100
  {
101
101
  type: 'paragraph',
102
- html: 'Один из самых частых вопросов в швейной мастерскойсколько ткани купить для конкретного проекта. Расход ткани радикально зависит от трех факторов: модели изделия, размера человека и, прежде всего, ширины отреза ткани (которая обычно варьируется от 90 см до 150 см). Этот технический калькулятор систематизирует расчет, чтобы вы не купили лишнего и вам не не хватило материала в середине раскроя.',
102
+ html: 'Один из самых частых вопросов в швейной мастерской - сколько ткани купить для конкретного проекта. Расход ткани радикально зависит от трех факторов: модели изделия, размера человека и, прежде всего, ширины отреза ткани (которая обычно варьируется от 90 см до 150 см). Этот технический калькулятор систематизирует расчет, чтобы вы не купили лишнего и вам не не хватило материала в середине раскроя.',
103
103
  },
104
104
  {
105
105
  type: 'title',
@@ -167,7 +167,7 @@ export const content: ToolLocaleContent<FabricProjectCalculatorUI> = {
167
167
  type: 'card',
168
168
  title: 'Припуск на шов',
169
169
  icon: 'mdi:tape-measure',
170
- html: 'Расстояние между краем выкройки и <strong>линией финального шва</strong>. Стандартное значение1,5 см для швов одежды.',
170
+ html: 'Расстояние между краем выкройки и <strong>линией финального шва</strong>. Стандартное значение - 1,5 см для швов одежды.',
171
171
  },
172
172
  {
173
173
  type: 'card',
@@ -99,7 +99,7 @@ export const content: ToolLocaleContent<FabricProjectCalculatorUI> = {
99
99
  },
100
100
  {
101
101
  type: 'paragraph',
102
- html: '在缝纫工作室中,最常见的疑问之一是确定为一个特定项目购买多少布料。布料消耗量主要取决于三个因素:服装模型、个人尺寸,以及最核心的——布料幅宽(通常在 90 厘米到 150 厘米之间)。这款技术计算器使计算系统化,让您既不会买得太多,也不会在裁剪到一半时发现面料不够。',
102
+ html: '在缝纫工作室中,最常见的疑问之一是确定为一个特定项目购买多少布料。布料消耗量主要取决于三个因素:服装模型、个人尺寸,以及最核心的 - - 布料幅宽(通常在 90 厘米到 150 厘米之间)。这款技术计算器使计算系统化,让您既不会买得太多,也不会在裁剪到一半时发现面料不够。',
103
103
  },
104
104
  {
105
105
  type: 'title',
@@ -259,7 +259,7 @@ export const content: ToolLocaleContent<FabricTruthUI> = {
259
259
  { type: 'tip', title: 'Weniger ist mehr (Waschmittel)', html: 'Zu viel Seife hinterlässt Rückstände, die Schmutz anziehen und die Kleidung steif machen.' },
260
260
  { type: 'tip', title: 'Trockner: Der subtile Feind', html: 'Die Flusen, die Sie im Trocknerfilter sehen, sind Teile Ihrer Kleidung, die sich durch Reibung und Hitze gelöst haben.' },
261
261
  { type: 'tip', title: 'Auf links waschen', html: 'Schützt Farben und Stickereien vor der Reibung mit der Trommel und anderen Kleidungsstücken.' },
262
- { type: 'paragraph', html: '"Weniger kaufen, besser wählen und langlebig machen."Dieser Analysator ist Ihr erster Schritt zu einem bewussten und hochwertigen Kleiderschrank.' },
262
+ { type: 'paragraph', html: '"Weniger kaufen, besser wählen und langlebig machen." - Dieser Analysator ist Ihr erster Schritt zu einem bewussten und hochwertigen Kleiderschrank.' },
263
263
  ],
264
264
  faq: faqData,
265
265
  bibliography: bibliography,
@@ -259,7 +259,7 @@ export const content: ToolLocaleContent<FabricTruthUI> = {
259
259
  { type: 'tip', title: 'Less is More (Detergent)', html: 'Excess soap leaves residue that attracts dirt and makes clothes feel stiff.' },
260
260
  { type: 'tip', title: 'Dryer: The Subtle Enemy', html: 'The lint you see in the dryer filter is pieces of your clothes that have come off due to friction and heat.' },
261
261
  { type: 'tip', title: 'Inside Out Washing', html: 'Protects color and embroidery from rubbing against the drum and other garments.' },
262
- { type: 'paragraph', html: '"Buy less, choose better, and make it last."This calculator is your first step towards a conscious and high-quality wardrobe.' },
262
+ { type: 'paragraph', html: '"Buy less, choose better, and make it last." - This calculator is your first step towards a conscious and high-quality wardrobe.' },
263
263
  ],
264
264
  faq: faqData,
265
265
  bibliography: bibliography,
@@ -259,7 +259,7 @@ export const content: ToolLocaleContent<FabricTruthUI> = {
259
259
  { type: 'tip', title: 'Menos es Más (Detergente)', html: 'El exceso de jabón deja residuos que atraen suciedad y hacen que la ropa se sienta rígida.' },
260
260
  { type: 'tip', title: 'Secadora: El Enemigo Sutil', html: 'La pelusa que ves en el filtro de la secadora son trozos de tu ropa que se han desprendido por la fricción y el calor.' },
261
261
  { type: 'tip', title: 'Lavado del Revés', html: 'Protege el color y los bordados del roce con el tambor y otras prendas.' },
262
- { type: 'paragraph', html: '"Comprar menos, elegir mejor y hacerlo durar."Esta calculadora es tu primer paso hacia un armario consciente y de alta calidad.' },
262
+ { type: 'paragraph', html: '"Comprar menos, elegir mejor y hacerlo durar." - Esta calculadora es tu primer paso hacia un armario consciente y de alta calidad.' },
263
263
  ],
264
264
  faq: [
265
265
  {
@@ -93,17 +93,17 @@ export const content: ToolLocaleContent<FabricTruthUI> = {
93
93
  durability: 'Durabilité',
94
94
  warmth: 'Chaleur',
95
95
  careWarning: 'Avertissement de Soins Spéciaux',
96
- specialCareWarning: 'LAVAGE STANDARD : Suivez toujours les instructions de l\'étiquette physique.',
96
+ specialCareWarning: 'LAVAGE STANDARD: Suivez toujours les instructions de l\'étiquette physique.',
97
97
  validationError: 'La composition doit totaliser exactement 100 % pour voir le verdict',
98
98
  actualTotal: 'Actuel',
99
99
  missingLabel: 'manquant',
100
100
  disclaimer: 'Les données de respirabilité, durabilité et chaleur sont des estimations basées sur les moyennes de l\'industrie pour chaque type de fibre.',
101
101
  careWarnings: {
102
- delicate: 'TRÈS DÉLICAT : Lavage à la main à froid. Ne pas utiliser de sèche-linge. Éviter d\'essorer.',
103
- wool: 'LAINE / POILS NOBLES : Laver à froid avec un programme spécial. Sécher à plat pour éviter les déformations. Ne pas utiliser de sèche-linge.',
104
- linen: 'LIN : A tendance à beaucoup se froisser. Repasser légèrement humide pour de meilleurs résultats.',
105
- semisynthetic: 'SEMI-SYNTHÉTIQUES : Se fragilise lorsqu\'il est mouillé. Manipuler avec soin et ne pas essorer fort.',
106
- standard: 'LAVAGE STANDARD : Suivez toujours les instructions de l\'étiquette physique.',
102
+ delicate: 'TRÈS DÉLICAT: Lavage à la main à froid. Ne pas utiliser de sèche-linge. Éviter d\'essorer.',
103
+ wool: 'LAINE / POILS NOBLES: Laver à froid avec un programme spécial. Sécher à plat pour éviter les déformations. Ne pas utiliser de sèche-linge.',
104
+ linen: 'LIN: A tendance à beaucoup se froisser. Repasser légèrement humide pour de meilleurs résultats.',
105
+ semisynthetic: 'SEMI-SYNTHÉTIQUES: Se fragilise lorsqu\'il est mouillé. Manipuler avec soin et ne pas essorer fort.',
106
+ standard: 'LAVAGE STANDARD: Suivez toujours les instructions de l\'étiquette physique.',
107
107
  },
108
108
  fiberData: {
109
109
  cotton: {
@@ -214,7 +214,7 @@ export const content: ToolLocaleContent<FabricTruthUI> = {
214
214
  },
215
215
  fragile: {
216
216
  label: 'Doux mais Fragile',
217
- description: 'Très agréable au toucher, mais attention au lavage : a tendance à se déformer et à rétrécir facilement.',
217
+ description: 'Très agréable au toucher, mais attention au lavage: a tendance à se déformer et à rétrécir facilement.',
218
218
  },
219
219
  natural: {
220
220
  label: 'Qualité Naturelle',
@@ -235,13 +235,13 @@ export const content: ToolLocaleContent<FabricTruthUI> = {
235
235
  },
236
236
  },
237
237
  seo: [
238
- { type: 'title', text: 'La Vérité Derrière l\'Étiquette : Guide Maître de la Composition Textile', level: 2 },
238
+ { type: 'title', text: 'La Vérité Derrière l\'Étiquette: Guide Maître de la Composition Textile', level: 2 },
239
239
  { type: 'paragraph', html: 'Vous êtes-vous déjà demandé pourquoi ce t-shirt de marque vous fait tant transpirer, ou pourquoi ce pull "en laine" gratte insupportablement ? La réponse n\'est pas dans le design, mais dans la chimie de ses fibres.' },
240
240
  { type: 'paragraph', html: 'Dans un monde dominé par la <strong>Fast Fashion</strong>, la qualité des tissus est passée au second plan derrière l\'esthétique éphémère. Cependant, comprendre la composition textile est le seul moyen de faire un achat intelligent, durable et respectueux de votre peau. Notre outil de <strong>Vérité Textile</strong> analyse les pourcentages officiels pour vous révéler si vous êtes face à un vêtement de qualité ou simplement à un bloc de plastique traité.' },
241
241
  { type: 'title', text: 'Notre Méthodologie', level: 2 },
242
242
  { type: 'paragraph', html: 'Nous utilisons un algorithme pondéré basé sur trois piliers fondamentaux tirés des normes industrielles européennes et nord-américaines :' },
243
243
  { type: 'list', items: ['<strong>Respirabilité :</strong> Capacité de la fibre à laisser passer la vapeur d\'eau et l\'air.', '<strong>Durabilité :</strong> Résistance à l\'abrasion, à la traction et à la formation de <strong>pilling</strong> (bouloches).', '<strong>Efficacité Thermique :</strong> Capacité de rétention de chaleur ou de fraîcheur mécanique.'] },
244
- { type: 'tip', title: 'Important', html: 'La loi exige que tous les vêtements vendus dans l\'UE et aux États-Unis listent leurs composants par ordre décroissant de pourcentage. Si un vêtement n\'a pas d\'étiquette ou si celle-ci est illisible, méfiez-vous : il ne répond probablement pas aux normes minimales de sécurité textile.' },
244
+ { type: 'tip', title: 'Important', html: 'La loi exige que tous les vêtements vendus dans l\'UE et aux États-Unis listent leurs composants par ordre décroissant de pourcentage. Si un vêtement n\'a pas d\'étiquette ou si celle-ci est illisible, méfiez-vous: il ne répond probablement pas aux normes minimales de sécurité textile.' },
245
245
  { type: 'title', text: 'Les "Tromperies" Communes dans le Commerce', level: 2 },
246
246
  { type: 'paragraph', html: 'Il existe des techniques de marketing sophistiquées conçues pour élever la valeur perçue d\'un vêtement médiocre. Voici comment les repérer :' },
247
247
  { type: 'card', title: 'L\'Accroche de la Fibre Noble', icon: 'mdi:alert', html: 'Vous verrez des étiquettes indiquant "AVEC CACHEMIRE" ou "AVEC SOIE" en grosses lettres. En regardant la composition, vous découvrez 3 % de soie et 97 % de polyester. Ces 3 % n\'apportent ni douceur, ni brillance, ni chaleur ; ils ne servent qu\'à permettre à la marque d\'augmenter le prix de 20 %.' },
@@ -250,16 +250,16 @@ export const content: ToolLocaleContent<FabricTruthUI> = {
250
250
  { type: 'title', text: '1. Fibres Naturelles (Fièrement Organiques)', level: 3 },
251
251
  { type: 'paragraph', html: 'Ce sont la référence absolue. Le coton à fibres longues (comme le Pima ou l\'Égyptien) offre une douceur éternelle. Le lin est scientifiquement la meilleure fibre pour la chaleur en raison de sa structure moléculaire qui repousse la chaleur et absorbe l\'humidité. La laine et le chanvre sont des antibactériens naturels ; ils n\'ont pas besoin de lavages fréquents car ils ne retiennent pas les odeurs.' },
252
252
  { type: 'title', text: '2. Fibres Semi-Synthétiques (L\'Hybride)', level: 3 },
253
- { type: 'paragraph', html: 'On trouve ici la viscose, la rayonne et le modal. Ils ressemblent à de la soie mais coûtent comme du coton. Ils sont excellents pour les vêtements avec beaucoup de drapé, mais ils sont "assoiffés" : ils absorbent beaucoup d\'eau et mettent longtemps à sécher, ce qui peut favoriser la moisissure s\'ils ne sont pas soignés. Le Lyocell (Tencel) est la version premium et durable de ce groupe, avec un cycle de production fermé et une plus grande résistance.' },
253
+ { type: 'paragraph', html: 'On trouve ici la viscose, la rayonne et le modal. Ils ressemblent à de la soie mais coûtent comme du coton. Ils sont excellents pour les vêtements avec beaucoup de drapé, mais ils sont "assoiffés": ils absorbent beaucoup d\'eau et mettent longtemps à sécher, ce qui peut favoriser la moisissure s\'ils ne sont pas soignés. Le Lyocell (Tencel) est la version premium et durable de ce groupe, avec un cycle de production fermé et une plus grande résistance.' },
254
254
  { type: 'title', text: '3. Fibres Synthétiques (Plastiques Filés)', level: 3 },
255
- { type: 'paragraph', html: 'Le polyester est le roi du marché. Il est bon marché, ne se froisse pas et est éternel (littéralement, il mettra 200 ans à se décomposer). Le problème est qu\'il ne respire pas. Il crée un microclimat humide entre le tissu et votre peau, le terrain fertile idéal pour les bactéries. L\'acrylique est l\'imitation bon marché de la laine : il réchauffe, mais génère beaucoup d\'électricité statique et se couvre de bouloches en deux lavages.' },
255
+ { type: 'paragraph', html: 'Le polyester est le roi du marché. Il est bon marché, ne se froisse pas et est éternel (littéralement, il mettra 200 ans à se décomposer). Le problème est qu\'il ne respire pas. Il crée un microclimat humide entre le tissu et votre peau, le terrain fertile idéal pour les bactéries. L\'acrylique est l\'imitation bon marché de la laine: il réchauffe, mais génère beaucoup d\'électricité statique et se couvre de bouloches en deux lavages.' },
256
256
  { type: 'title', text: 'Conseils de Survie Textile', level: 2 },
257
257
  { type: 'paragraph', html: 'Même le meilleur vêtement au monde peut être ruiné par un seul lavage inapproprié. Voici les règles d\'or universelles :' },
258
258
  { type: 'tip', title: 'L\'Eau Froide est Votre Amie', html: '90 % des vêtements n\'ont pas besoin de plus de 30°C. La chaleur dégrade les fibres élastiques et rétrécit les fibres naturelles.' },
259
259
  { type: 'tip', title: 'Moins, c\'est Mieux (Detergent)', html: 'L\'excès de savon laisse des résidus qui attirent la saleté et rendent les vêtements raides.' },
260
- { type: 'tip', title: 'Seche linge : LEnnemi Subtil', html: 'Les peluches que vous voyez dans le filtre du sèche-linge sont des morceaux de vos vêtements qui se sont détachés par friction et chaleur.' },
260
+ { type: 'tip', title: 'Seche linge: LEnnemi Subtil', html: 'Les peluches que vous voyez dans le filtre du sèche-linge sont des morceaux de vos vêtements qui se sont détachés par friction et chaleur.' },
261
261
  { type: 'tip', title: 'Lavage à l\'envers', html: 'Protège la couleur et les broderies du frottement avec le tambour et d\'autres vêtements.' },
262
- { type: 'paragraph', html: '"Acheter moins, choisir mieux et faire durer."Ce calculateur est votre première étape vers une garde-robe consciente et de haute qualité.' },
262
+ { type: 'paragraph', html: '"Acheter moins, choisir mieux et faire durer." - Ce calculateur est votre première étape vers une garde-robe consciente et de haute qualité.' },
263
263
  ],
264
264
  faq: faqData,
265
265
  bibliography: bibliography,
@@ -259,7 +259,7 @@ export const content: ToolLocaleContent<FabricTruthUI> = {
259
259
  { type: 'tip', title: 'Sedikit Lebih Baik (Deterjen)', html: 'Kelebihan sabun meninggalkan residu yang menarik kotoran dan membuat pakaian terasa kaku.' },
260
260
  { type: 'tip', title: 'Pengering Mesin: Musuh yang Halus', html: 'Serat halus yang Anda lihat di filter pengering adalah bagian dari pakaian Anda yang terlepas karena gesekan dan panas.' },
261
261
  { type: 'tip', title: 'Cuci dengan Posisi Terbalik', html: 'Melindungi warna dan sulaman dari gesekan dengan drum mesin cuci dan pakaian lainnya.' },
262
- { type: 'paragraph', html: '"Beli lebih sedikit, pilih lebih baik, dan buat bertahan lama."Alat analisis ini adalah langkah pertama Anda menuju lemari pakaian yang sadar dan berkualitas tinggi.' },
262
+ { type: 'paragraph', html: '"Beli lebih sedikit, pilih lebih baik, dan buat bertahan lama." - Alat analisis ini adalah langkah pertama Anda menuju lemari pakaian yang sadar dan berkualitas tinggi.' },
263
263
  ],
264
264
  faq: faqData,
265
265
  bibliography: bibliography,
@@ -259,7 +259,7 @@ export const content: ToolLocaleContent<FabricTruthUI> = {
259
259
  { type: 'tip', title: 'Meno è Meglio (Detersivo)', html: 'L\'eccesso di sapone lascia residui che attirano sporco e rendono i vestiti rigidi.' },
260
260
  { type: 'tip', title: 'Asciugatrice: Il Nemico Sottile', html: 'I pelucchi che vedi nel filtro dell\'asciugatrice sono pezzi dei tuoi vestiti che si sono staccati per la frizione e il calore.' },
261
261
  { type: 'tip', title: 'Lavaggio al Rovescio', html: 'Protegge il colore e i ricami dallo sfregamento con il cestello e altri capi.' },
262
- { type: 'paragraph', html: '"Comprare meno, scegliere meglio e farlo durare."Questo analizzatore è il tuo primo passo verso un armadio consapevole e di alta qualità.' },
262
+ { type: 'paragraph', html: '"Comprare meno, scegliere meglio e farlo durare." - Questo analizzatore è il tuo primo passo verso un armadio consapevole e di alta qualità.' },
263
263
  ],
264
264
  faq: faqData,
265
265
  bibliography: bibliography,
@@ -259,7 +259,7 @@ export const content: ToolLocaleContent<FabricTruthUI> = {
259
259
  { type: 'tip', title: '洗剤は少なめに', html: '洗剤の使いすぎは残留物を残し、汚れを引き寄せ、生地を硬くします。' },
260
260
  { type: 'tip', title: '乾燥機は「静かな敵」', html: '乾燥機のフィルターに溜まる糸くずは、摩擦と熱によって剥がれ落ちた、衣類そのものの一部です。' },
261
261
  { type: 'tip', title: '裏返して洗う', html: '色あせや刺繍を、洗濯槽や他の衣類との摩擦から守ります。' },
262
- { type: 'paragraph', html: '「少なく買い、より良く選び、長持ちさせる」 —— この分析ツールは、意識的で高品質なワードローブへの第一歩です。' },
262
+ { type: 'paragraph', html: '「少なく買い、より良く選び、長持ちさせる」 - - この分析ツールは、意識的で高品質なワードローブへの第一歩です。' },
263
263
  ],
264
264
  faq: faqData,
265
265
  bibliography: bibliography,
@@ -259,7 +259,7 @@ export const content: ToolLocaleContent<FabricTruthUI> = {
259
259
  { type: 'tip', title: '적당량의 세제 사용', html: '세제가 과하면 잔여물이 남아 오염을 유도하고 옷감을 뻣뻣하게 만듭니다.' },
260
260
  { type: 'tip', title: '건조기: 조용한 적', html: '건조기 필터에 쌓이는 먼지는 마찰과 열에 의해 옷에서 떨어져 나간 옷감의 일부입니다.' },
261
261
  { type: 'tip', title: '뒤집어서 세탁하기', html: '세탁조나 다른 옷과의 마찰로부터 색상과 자수를 보호합니다.' },
262
- { type: 'paragraph', html: '"적게 사고, 더 잘 고르고, 오래 입기." —— 이 분석 도구는 의식 있고 수준 높은 옷장을 향한 첫걸음입니다.' },
262
+ { type: 'paragraph', html: '"적게 사고, 더 잘 고르고, 오래 입기." - - 이 분석 도구는 의식 있고 수준 높은 옷장을 향한 첫걸음입니다.' },
263
263
  ],
264
264
  faq: faqData,
265
265
  bibliography: bibliography,
@@ -259,7 +259,7 @@ export const content: ToolLocaleContent<FabricTruthUI> = {
259
259
  { type: 'tip', title: 'Minder is Meer (Wasmiddel)', html: 'Een overdaad aan zeep laat resten achter die vuil aantrekken en kleding stijf maken.' },
260
260
  { type: 'tip', title: 'Droger: De Subtiele Vijand', html: 'De pluisjes die je in het filter van de droger ziet, zijn stukjes van je kleding die door wrijving en hitte zijn losgekomen.' },
261
261
  { type: 'tip', title: 'Binnenstebuiten Wassen', html: 'Beschermt kleur en borduursels tegen wrijving met de trommel och andere kledingstappen.' },
262
- { type: 'paragraph', html: '"Koop minder, kies beter en laat het lang meegaan."Deze analysator is je eerste stap naar een bewuste en hoogwaardige garderobe.' },
262
+ { type: 'paragraph', html: '"Koop minder, kies beter en laat het lang meegaan." - Deze analysator is je eerste stap naar een bewuste en hoogwaardige garderobe.' },
263
263
  ],
264
264
  faq: faqData,
265
265
  bibliography: bibliography,
@@ -259,7 +259,7 @@ export const content: ToolLocaleContent<FabricTruthUI> = {
259
259
  { type: 'tip', title: 'Mniej znaczy więcej (Detergent)', html: 'Nadmiar mydła pozostawia osady, które przyciągają brud i sprawiają, że ubrania stają się sztywne.' },
260
260
  { type: 'tip', title: 'Suszarka: Subtelny wróg', html: 'Kłaczki, które widzisz w filtrze suszarki, to kawałki Twoich ubrań, które oddzieliły się w wyniku tarcia i wysokiej temperatury.' },
261
261
  { type: 'tip', title: 'Pranie na lewej stronie', html: 'Chroni kolor i hafty przed ocieraniem o bęben i inne ubrania.' },
262
- { type: 'paragraph', html: '"Kupuj mniej, wybieraj lepiej i spraw, by służyło długo."Ten analizator to Twój pierwszy krok w stronę świadomej i wysokiej jakości garderoby.' },
262
+ { type: 'paragraph', html: '"Kupuj mniej, wybieraj lepiej i spraw, by służyło długo." - Ten analizator to Twój pierwszy krok w stronę świadomej i wysokiej jakości garderoby.' },
263
263
  ],
264
264
  faq: faqData,
265
265
  bibliography: bibliography,
@@ -259,7 +259,7 @@ export const content: ToolLocaleContent<FabricTruthUI> = {
259
259
  { type: 'tip', title: 'Menos é Mais (Detergente)', html: 'O excesso de sabão deixa resíduos que atraem sujidade e fazem com que a roupa se sinta rígida.' },
260
260
  { type: 'tip', title: 'Secadora: O Inimigo Subtil', html: 'O cotão que vê no filtro da secadora são pedaços da sua roupa que se desprenderam pela fricção e pelo calor.' },
261
261
  { type: 'tip', title: 'Lavagem do Avesso', html: 'Protege a cor e os bordados do roce com o tambor e outras peças.' },
262
- { type: 'paragraph', html: '"Comprar menos, escolher melhor e fazê-lo durar."Esta calculadora é o seu primeiro passo para um armário consciente e de alta qualidade.' },
262
+ { type: 'paragraph', html: '"Comprar menos, escolher melhor e fazê-lo durar." - Esta calculadora é o seu primeiro passo para um armário consciente e de alta qualidade.' },
263
263
  ],
264
264
  faq: faqData,
265
265
  bibliography: bibliography,
@@ -10,11 +10,11 @@ const description = 'Узнайте истинное качество вашей
10
10
  const faqData = [
11
11
  {
12
12
  question: 'Что такое "Гринвошинг" (Greenwashing) в моде?',
13
- answer: 'Это маркетинговая уловка, при которой бренды используют такие термины, как "экологичный" или "устойчивый", без реальных доказательств. Анализ фактического состава волоконединственный способ проверить, является ли вещь на самом деле натуральной или синтетической.',
13
+ answer: 'Это маркетинговая уловка, при которой бренды используют такие термины, как "экологичный" или "устойчивый", без реальных доказательств. Анализ фактического состава волокон - единственный способ проверить, является ли вещь на самом деле натуральной или синтетической.',
14
14
  },
15
15
  {
16
16
  question: 'Почему полиэстер часто считается менее качественным, чем хлопок?',
17
- answer: 'Полиэстерэто пластик (ПЭТ). Хотя он долговечен, он не дышит, способствует появлению неприятного запаха из-за бактерий и выделяет микропластик при каждой стирке. Натуральные волокна, такие как хлопок или лен, обеспечивают лучшую терморегуляцию.',
17
+ answer: 'Полиэстер - это пластик (ПЭТ). Хотя он долговечен, он не дышит, способствует появлению неприятного запаха из-за бактерий и выделяет микропластик при каждой стирке. Натуральные волокна, такие как хлопок или лен, обеспечивают лучшую терморегуляцию.',
18
18
  },
19
19
  {
20
20
  question: 'Плохо ли, если в моей одежде есть эластан?',
@@ -206,7 +206,7 @@ export const content: ToolLocaleContent<FabricTruthUI> = {
206
206
  verdicts: {
207
207
  plasticy: {
208
208
  label: 'Дорогой пластик',
209
- description: 'Большая часть этой вещинефть. Будьте готовы к тому, что она не будет дышать и быстро покроется катышками.',
209
+ description: 'Большая часть этой вещи - нефть. Будьте готовы к тому, что она не будет дышать и быстро покроется катышками.',
210
210
  },
211
211
  hook: {
212
212
  label: 'Маркетинговая ловушка',
@@ -237,7 +237,7 @@ export const content: ToolLocaleContent<FabricTruthUI> = {
237
237
  seo: [
238
238
  { type: 'title', text: 'Правда за этикеткой: Главное руководство по составу текстиля', level: 2 },
239
239
  { type: 'paragraph', html: 'Вы когда-нибудь задумывались, почему в этой брендовой футболке вы так сильно потеете или почему этот "шерстяной" свитер так невыносимо колется? Ответ кроется не в дизайне, а в химии его волокон.' },
240
- { type: 'paragraph', html: 'В мире, где доминирует <strong>быстрая мода</strong> (Fast Fashion), качество тканей отошло на второй план перед мимолетной эстетикой. Однако понимание текстильного составаединственный способ совершить умную, долговечную и безопасную для вашей кожи покупку. Наш инструмент <strong>Правда о ткани</strong> анализирует официальные проценты, чтобы показать вам, имеете ли вы дело с качественной вещью или просто с куском переработанного пластика.' },
240
+ { type: 'paragraph', html: 'В мире, где доминирует <strong>быстрая мода</strong> (Fast Fashion), качество тканей отошло на второй план перед мимолетной эстетикой. Однако понимание текстильного состава - единственный способ совершить умную, долговечную и безопасную для вашей кожи покупку. Наш инструмент <strong>Правда о ткани</strong> анализирует официальные проценты, чтобы показать вам, имеете ли вы дело с качественной вещью или просто с куском переработанного пластика.' },
241
241
  { type: 'title', text: 'Наша методология', level: 2 },
242
242
  { type: 'paragraph', html: 'Мы используем взвешенный алгоритм, основанный на трех фундаментальных принципах, извлеченных из европейских и североамериканских промышленных стандартов:' },
243
243
  { type: 'list', items: ['<strong>Воздухопроницаемость:</strong> Способность волокна пропускать водяной пар и воздух.', '<strong>Износостойкость:</strong> Сопротивление истиранию, растяжению и образованию <strong>пиллинга</strong> (катышков).', '<strong>Термическая эффективность:</strong> Способность удерживать тепло или обеспечивать механическую прохладу.'] },
@@ -245,21 +245,21 @@ export const content: ToolLocaleContent<FabricTruthUI> = {
245
245
  { type: 'title', text: 'Типичные "обманы" в ритейле', level: 2 },
246
246
  { type: 'paragraph', html: 'Существуют очень тонкие маркетинговые приемы, предназначенные для повышения воспринимаемой стоимости посредственной вещи. Здесь мы научим вас их обнаруживать:' },
247
247
  { type: 'card', title: 'Ловушка благородного волокна', icon: 'mdi:alert', html: 'Вы увидите этикетки с надписями "С КАШЕМИРОМ" или "С ШЕЛКОМ" крупными буквами. Посмотрев на состав, вы обнаруживаете 3% шелка и 97% полиэстера. Эти 3% не придают ни мягкости, ни блеска, ни тепла; они служат только для того, чтобы бренд мог поднять цену на 20%.' },
248
- { type: 'card', title: 'Миф об "экологичной вискозе"', icon: 'mdi:leaf', html: 'Хотя вискоза производится из целлюлозы (древесины), современный процесс ее производства часто является сильно загрязняющим, а конечный результатэто волокно, которое резко теряет прочность при намокании. Если это не <strong>Lyocell</strong> или <strong>Tencel</strong>, его долговечность ограничена.' },
248
+ { type: 'card', title: 'Миф об "экологичной вискозе"', icon: 'mdi:leaf', html: 'Хотя вискоза производится из целлюлозы (древесины), современный процесс ее производства часто является сильно загрязняющим, а конечный результат - это волокно, которое резко теряет прочность при намокании. Если это не <strong>Lyocell</strong> или <strong>Tencel</strong>, его долговечность ограничена.' },
249
249
  { type: 'title', text: 'Глубокий анализ по категориям', level: 2 },
250
250
  { type: 'title', text: '1. Натуральные волокна (Гордо органические)', level: 3 },
251
251
  { type: 'paragraph', html: 'Это золотой стандарт. <strong>Хлопок</strong> с длинным волокном (такой как Пима или египетский) обеспечивает вечную мягкость. <strong>Лен</strong> с научной точки зрения является лучшим волокном для жары благодаря своей молекулярной структуре, которая отталкивает тепло и впитывает влагу. <strong>Шерсть</strong> und <strong>Hemp</strong> (конопля) являются природными антибактериальными средствами; их не нужно стирать так часто, потому что они не удерживают запахи.' },
252
252
  { type: 'title', text: '2. Полусинтетические волокна (Гибрид)', level: 3 },
253
- { type: 'paragraph', html: 'Здесь мы находим <strong>вискозу</strong>, <strong>район</strong> и <strong>модал</strong>. Они ощущаются как шелк, но стоят как хлопок. Они отлично подходят для одежды с красивой драпировкой, но они "жаждущие": впитывают много воды и долго сохнут, что при неправильном уходе может способствовать появлению плесени. <strong>Lyocell (Tencel)</strong>это премиальная и устойчивая версия этой группы с замкнутым циклом производства и более высокой износостойкостью.' },
253
+ { type: 'paragraph', html: 'Здесь мы находим <strong>вискозу</strong>, <strong>район</strong> и <strong>модал</strong>. Они ощущаются как шелк, но стоят как хлопок. Они отлично подходят для одежды с красивой драпировкой, но они "жаждущие": впитывают много воды и долго сохнут, что при неправильном уходе может способствовать появлению плесени. <strong>Lyocell (Tencel)</strong> - это премиальная и устойчивая версия этой группы с замкнутым циклом производства и более высокой износостойкостью.' },
254
254
  { type: 'title', text: '3. Синтетические волокна (Пряденый пластик)', level: 3 },
255
- { type: 'paragraph', html: '<strong>Полиэстер</strong>король рынка. Он дешев, не мнется и вечен (буквально, для его разложения потребуется 200 лет). Проблема в том, что он не дышит. Он создает влажный микроклимат между тканью и кожейидеальную среду для бактерий. <strong>Акрил</strong>дешевая имитация шерсти: греет, но накапливает много статического электричества и покрывается катышками через две стирки.' },
255
+ { type: 'paragraph', html: '<strong>Полиэстер</strong> - король рынка. Он дешев, не мнется и вечен (буквально, для его разложения потребуется 200 лет). Проблема в том, что он не дышит. Он создает влажный микроклимат между тканью и кожей - идеальную среду для бактерий. <strong>Акрил</strong> - дешевая имитация шерсти: греет, но накапливает много статического электричества и покрывается катышками через две стирки.' },
256
256
  { type: 'title', text: 'Советы по выживанию текстиля', level: 2 },
257
257
  { type: 'paragraph', html: 'Даже самую лучшую вещь в мире можно испортить всего одной неправильной стиркой. Вот универсальные золотые правила:' },
258
- { type: 'tip', title: 'Холодная вода ваш друг', html: '90% одежды не требуется температура выше 30°C. Тепло разрушает эластичные волокна и дает усадку натуральным.' },
259
- { type: 'tip', title: 'Меньше значит лучше (моющее средство)', html: 'Избыток порошка оставляет налет, который притягивает грязь и делает одежду жесткой.' },
260
- { type: 'tip', title: 'Сушилка: коварный враг', html: 'Ворс, который вы видите в фильтре сушилки,это частички вашей одежды, оторвавшиеся из-за трения и жара.' },
258
+ { type: 'tip', title: 'Холодная вода: ваш друг', html: '90% одежды не требуется температура выше 30°C. Тепло разрушает эластичные волокна и дает усадку натуральным.' },
259
+ { type: 'tip', title: 'Меньше: значит лучше (моющее средство)', html: 'Избыток порошка оставляет налет, который притягивает грязь и делает одежду жесткой.' },
260
+ { type: 'tip', title: 'Сушилка: коварный враг', html: 'Ворс, который вы видите в фильтре сушилки, - это частички вашей одежды, оторвавшиеся из-за трения и жара.' },
261
261
  { type: 'tip', title: 'Стирка наизнанку', html: 'Защищает цвет и вышивку от трения о барабан и другие вещи.' },
262
- { type: 'paragraph', html: '"Покупать меньше, выбирать лучше и делать так, чтобы вещь служила долго".Этот анализаторваш первый шаг к осознанному и высококачественному гардеробу.' },
262
+ { type: 'paragraph', html: '"Покупать меньше, выбирать лучше и делать так, чтобы вещь служила долго". - Этот анализатор - ваш первый шаг к осознанному и высококачественному гардеробу.' },
263
263
  ],
264
264
  faq: faqData,
265
265
  bibliography: bibliography,
@@ -259,7 +259,7 @@ export const content: ToolLocaleContent<FabricTruthUI> = {
259
259
  { type: 'tip', title: 'Mindre är mer (Tvättmedel)', html: 'För mycket tvättmedel lämnar rester som drar till sig smuts och gör kläderna stela.' },
260
260
  { type: 'tip', title: 'Torktumlare: Den subtila fienden', html: 'Luddet du ser i torktumlarens filter är delar av dina kläder som lossnat på grund av friktion och värme.' },
261
261
  { type: 'tip', title: 'Tvätta ut och in', html: 'Skyddar färg och broderier från friktion mot trumman och andra plagg.' },
262
- { type: 'paragraph', html: '"Köp mindre, välj bättre och låt det hålla länge."Denna analysator är ditt första steg mot en medveten garderob av hög kvalitet.' },
262
+ { type: 'paragraph', html: '"Köp mindre, välj bättre och låt det hålla länge." - Denna analysator är ditt första steg mot en medveten garderob av hög kvalitet.' },
263
263
  ],
264
264
  faq: faqData,
265
265
  bibliography: bibliography,
@@ -259,7 +259,7 @@ export const content: ToolLocaleContent<FabricTruthUI> = {
259
259
  { type: 'tip', title: 'Az Çoktur (Deterjan)', html: 'Aşırı sabun, kirleri çeken ve kıyafetleri sertleştiren kalıntılar bırakır.' },
260
260
  { type: 'tip', title: 'Kurutma Makinesi: Sinsi Düşman', html: 'Kurutma filtresinde gördüğünüz havlar, sürtünme ve ısı nedeniyle giysilerinizden kopan parçalardır.' },
261
261
  { type: 'tip', title: 'Tersinden Yıkama', html: 'Rengi ve nakışları tamburla ve diğer giysilerle temastan korur.' },
262
- { type: 'paragraph', html: '"Az al, iyi seç ve uzun ömürlü kıl."Bu analizör, bilinçli ve yüksek kaliteli bir gardıroba giden ilk adımınızdır.' },
262
+ { type: 'paragraph', html: '"Az al, iyi seç ve uzun ömürlü kıl." - Bu analizör, bilinçli ve yüksek kaliteli bir gardıroba giden ilk adımınızdır.' },
263
263
  ],
264
264
  faq: faqData,
265
265
  bibliography: bibliography,
@@ -9,9 +9,9 @@ const description = '通过分析衣服的成分,探索其真实的品质。
9
9
 
10
10
  const faqData = [
11
11
  {
12
- question: '时尚界的“洗绿”(Greenwashing)是指什么?',
12
+ question: '时尚界的"洗绿"(Greenwashing)是指什么?',
13
13
  answer:
14
- '这是一种营销手法,品牌在没有真实证据的情况下使用“环保”或“可持续”等词汇。分析纤维的实际成分是验证一件衣服究竟是天然的还是合成的唯一方法。',
14
+ '这是一种营销手法,品牌在没有真实证据的情况下使用"环保"或"可持续"等词汇。分析纤维的实际成分是验证一件衣服究竟是天然的还是合成的唯一方法。',
15
15
  },
16
16
  {
17
17
  question: '为什么涤纶(聚酯纤维)的品质通常被认为低于棉?',
@@ -21,7 +21,7 @@ const faqData = [
21
21
  {
22
22
  question: '我的衣服里含有氨纶(弹性纤维)坏处大吗?',
23
23
  answer:
24
- '少量(1-5%)的氨纶(莱卡)可以提供舒适度和合身感。然而,它使衣物的回收变得极其困难,因为它将塑料与天然纤维混合在一起,这通常是“快时尚”产品的标志。',
24
+ '少量(1-5%)的氨纶(莱卡)可以提供舒适度和合身感。然而,它使衣物的回收变得极其困难,因为它将塑料与天然纤维混合在一起,这通常是"快时尚"产品的标志。',
25
25
  },
26
26
  {
27
27
  question: '如何通过标签识别高品质衣物?',
@@ -240,21 +240,21 @@ export const content: ToolLocaleContent<FabricTruthUI> = {
240
240
  },
241
241
  seo: [
242
242
  { type: 'title', text: '洗标背后的真相:面料成分大师指南', level: 2 },
243
- { type: 'paragraph', html: '您是否曾经纳闷,为什么那件名牌 T 恤会让您流这么多汗?或者为什么那件“羊毛”毛衣扎得让人无法忍受?答案不在于设计,而在于其纤维的化学成分。' },
243
+ { type: 'paragraph', html: '您是否曾经纳闷,为什么那件名牌 T 恤会让您流这么多汗?或者为什么那件"羊毛"毛衣扎得让人无法忍受?答案不在于设计,而在于其纤维的化学成分。' },
244
244
  { type: 'paragraph', html: '在<strong>快时尚</strong>(Fast Fashion)主导的世界里,面料的高品质往往在短暂的美学面前退居其次。然而,了解面料成分是进行智能、耐用且亲肤消费的唯一途径。我们的<strong>织物真相</strong>工具通过分析官方百分比,揭示您面对的是一件高品质衣物,还是一块经过加工的塑料。' },
245
245
  { type: 'title', text: '我们的分析方法', level: 2 },
246
246
  { type: 'paragraph', html: '我们采用基于欧洲和北美行业标准的加权算法,从三个核心维度进行评估:' },
247
247
  { type: 'list', items: ['<strong>透气性:</strong> 纤维允许水蒸气和空气通过的能力。', '<strong>耐用度:</strong> 抗磨损、抗拉伸以及抗<strong>起球</strong>(pilling)的能力。', '<strong>热效率:</strong> 保温或提供机械凉爽感的能力。'] },
248
248
  { type: 'tip', title: '重要提示', html: '法律要求在欧盟和美国销售的所有衣物必须按百分比由高到低列出其成分。如果一件衣服没有标签或标签模糊不清,请务必保持警惕:它很可能不符合最低的面料安全标准。' },
249
- { type: 'title', text: '零售业中的常见“套路”', level: 2 },
249
+ { type: 'title', text: '零售业中的常见"套路"', level: 2 },
250
250
  { type: 'paragraph', html: '为了提高平庸衣物的感知价值,存在着非常老练的营销技巧。在这里,我们教您如何识别它们:' },
251
- { type: 'card', title: '高级纤维诱饵', icon: 'mdi:alert', html: '您会看到大字写着“含羊绒”或“含真丝”的标签。查看成分表时,却发现含有 3% 的真丝和 97% 的聚酯纤维。这 3% 既不提供柔软度,也不提供光泽或保暖性;它唯一的用途就是让品牌能够提价 20%。' },
252
- { type: 'card', title: '“环保粘胶”的神话', icon: 'mdi:leaf', html: '尽管粘胶纤维来源于纤维素(木材),但其目前的制造过程通常具有高度污染性,最终产出的纤维在变湿后强度会剧烈下降。除非是 <strong>莱赛尔(Lyocell)</strong> 或 <strong>天丝(Tencel)</strong>,否则其耐用性非常有限。' },
251
+ { type: 'card', title: '高级纤维诱饵', icon: 'mdi:alert', html: '您会看到大字写着"含羊绒"或"含真丝"的标签。查看成分表时,却发现含有 3% 的真丝和 97% 的聚酯纤维。这 3% 既不提供柔软度,也不提供光泽或保暖性;它唯一的用途就是让品牌能够提价 20%。' },
252
+ { type: 'card', title: '"环保粘胶"的神话', icon: 'mdi:leaf', html: '尽管粘胶纤维来源于纤维素(木材),但其目前的制造过程通常具有高度污染性,最终产出的纤维在变湿后强度会剧烈下降。除非是 <strong>莱赛尔(Lyocell)</strong> 或 <strong>天丝(Tencel)</strong>,否则其耐用性非常有限。' },
253
253
  { type: 'title', text: '按分类深度分析', level: 2 },
254
254
  { type: 'title', text: '1. 天然纤维(引以为傲的有机物)', level: 3 },
255
255
  { type: 'paragraph', html: '这些是行业的金标准。长绒<strong>棉</strong>(如皮马棉或埃及棉)提供恒久的柔软。<strong>亚麻</strong>从科学角度而言是炎热天气的最佳选择,因为其分子结构可以排斥热量并吸收湿气。<strong>羊毛</strong>和<strong>工业大麻</strong>(Hemp)是天然抗菌剂,不容易保留异味,因此不需要频繁洗涤。' },
256
256
  { type: 'title', text: '2. 半合成纤维(混合体)', level: 3 },
257
- { type: 'paragraph', html: '这包括 <strong>粘胶纤维</strong>、<strong>人造丝</strong> 和 <strong>莫代尔</strong>。它们的手感像丝绸,但价格接近棉花。它们非常适合垂坠感强的衣物,但非常“吸水”:吸收大量水分且干燥缓慢,如果不注意护理,可能会滋生霉菌。<strong>莱赛尔(天丝)</strong> 是该组中的高端环保版本,具有闭环生产周期和更高的抗性。' },
257
+ { type: 'paragraph', html: '这包括 <strong>粘胶纤维</strong>、<strong>人造丝</strong> 和 <strong>莫代尔</strong>。它们的手感像丝绸,但价格接近棉花。它们非常适合垂坠感强的衣物,但非常"吸水":吸收大量水分且干燥缓慢,如果不注意护理,可能会滋生霉菌。<strong>莱赛尔(天丝)</strong> 是该组中的高端环保版本,具有闭环生产周期和更高的抗性。' },
258
258
  { type: 'title', text: '3. 合成纤维(纺制塑料)', level: 3 },
259
259
  { type: 'paragraph', html: '<strong>聚酯纤维</strong>(涤纶)是市场之王。它价格便宜,不皱,而且是永恒的(字面意思,需要 200 年才能分解)。问题在于它不透气。它在面料和您的皮肤之间创造了一个潮湿的微气候,是细菌繁殖的理想温床。<strong>腈纶</strong>是羊毛的廉价仿制品:虽然保暖,但会产生大量静电,且洗两次就会起满球。' },
260
260
  { type: 'title', text: '面料持久建议', level: 2 },
@@ -263,7 +263,7 @@ export const content: ToolLocaleContent<FabricTruthUI> = {
263
263
  { type: 'tip', title: '少即是多(洗涤剂)', html: '过多的洗涤剂会留下残留物,从而吸附污垢并使衣物变硬。' },
264
264
  { type: 'tip', title: '烘干机:微妙的敌人', html: '您在烘干机滤网中看到的毛絮,实际上是由于摩擦和热量从您衣服上脱落下来的纤维碎片。' },
265
265
  { type: 'tip', title: '反面洗涤', html: '保护颜色和绣花免受滚筒和其他衣物的磨擦。' },
266
- { type: 'paragraph', html: '“买得少一点,选得好一点,穿得久一点。” —— 这个分析工具是您迈向理性、高品质衣橱的第一步。' },
266
+ { type: 'paragraph', html: '"买得少一点,选得好一点,穿得久一点。" - - 这个分析工具是您迈向理性、高品质衣橱的第一步。' },
267
267
  ],
268
268
  faq: faqData,
269
269
  bibliography: bibliography,
@@ -1,15 +1,21 @@
1
1
  .fiber-prep {
2
2
  width: 100%;
3
- padding: 1rem;
3
+ padding: 2rem;
4
4
  display: flex;
5
5
  flex-direction: column;
6
- gap: 2rem;
6
+ gap: 0;
7
+ background: var(--bg-surface);
8
+ border: 1px solid var(--border-color);
9
+ border-radius: 1.5rem;
10
+ box-shadow: 0 24px 70px rgba(0, 0, 0, 0.14);
11
+ overflow: hidden;
7
12
  }
8
13
 
9
14
  .profile-section {
10
15
  display: flex;
11
16
  flex-direction: column;
12
17
  gap: 1.5rem;
18
+ padding-bottom: 2rem;
13
19
  }
14
20
 
15
21
  .profile-header {
@@ -42,9 +48,9 @@
42
48
  display: flex;
43
49
  flex-direction: column;
44
50
  padding: 2rem;
45
- border-radius: 2rem;
51
+ border-radius: 1rem;
46
52
  border: 2px solid var(--border-color);
47
- background: var(--bg-surface);
53
+ background: var(--bg-page);
48
54
  text-align: left;
49
55
  cursor: pointer;
50
56
  overflow: hidden;
@@ -173,20 +179,34 @@
173
179
  .tool-grid {
174
180
  display: grid;
175
181
  grid-template-columns: 1fr 1fr;
176
- gap: 2rem;
182
+ gap: 0;
183
+ border-top: 1px solid var(--border-color);
177
184
  }
178
185
 
179
186
  .calc-card {
180
- background: var(--bg-surface);
181
- border: 1px solid var(--border-color);
182
- border-radius: 1.5rem;
183
- padding: 1.5rem;
184
- box-shadow: 0 4px 16px rgba(0, 0, 0, 0.06);
187
+ background: transparent;
188
+ border: 0;
189
+ border-radius: 0;
190
+ padding: 2rem 0 0;
191
+ box-shadow: none;
185
192
  display: flex;
186
193
  flex-direction: column;
187
194
  gap: 1.5rem;
188
195
  }
189
196
 
197
+ .tool-grid .calc-card {
198
+ padding: 2rem 0;
199
+ }
200
+
201
+ .tool-grid .calc-card:first-child {
202
+ padding-right: 2rem;
203
+ }
204
+
205
+ .tool-grid .calc-card + .calc-card {
206
+ padding-left: 2rem;
207
+ border-left: 1px solid var(--border-color);
208
+ }
209
+
190
210
  .calc-header {
191
211
  display: flex;
192
212
  align-items: center;
@@ -537,6 +557,7 @@
537
557
 
538
558
  .ph-card {
539
559
  gap: 1.5rem;
560
+ border-top: 1px solid var(--border-color);
540
561
  }
541
562
 
542
563
  .ph-header-text {
@@ -636,15 +657,113 @@
636
657
  }
637
658
 
638
659
  @media (max-width: 768px) {
660
+ .fiber-prep {
661
+ padding: 1rem;
662
+ overflow: hidden;
663
+ border-radius: 1rem;
664
+ box-shadow: 0 16px 44px rgba(0, 0, 0, 0.12);
665
+ }
666
+
667
+ .profile-section {
668
+ gap: 1rem;
669
+ padding-bottom: 1rem;
670
+ }
671
+
639
672
  .profile-grid {
640
673
  grid-template-columns: 1fr;
674
+ gap: 1rem;
675
+ }
676
+
677
+ .fiber-card,
678
+ .calc-card {
679
+ border-radius: 1rem;
680
+ min-width: 0;
681
+ }
682
+
683
+ .fiber-card {
684
+ padding: 1.25rem;
641
685
  }
642
686
 
643
687
  .tool-grid {
644
688
  grid-template-columns: 1fr;
689
+ gap: 0;
690
+ }
691
+
692
+ .tool-grid .calc-card {
693
+ padding: 1rem 0;
694
+ }
695
+
696
+ .tool-grid .calc-card:first-child {
697
+ padding-right: 0;
698
+ }
699
+
700
+ .tool-grid .calc-card + .calc-card {
701
+ padding-left: 0;
702
+ border-left: 0;
703
+ border-top: 1px solid var(--border-color);
704
+ }
705
+
706
+ .ph-card {
707
+ padding-top: 1rem;
708
+ }
709
+
710
+ .calc-header {
711
+ align-items: flex-start;
712
+ }
713
+
714
+ .card-bg-icon {
715
+ padding: 1rem;
716
+ }
717
+
718
+ .card-bg-icon svg {
719
+ width: 6rem;
720
+ height: 6rem;
721
+ }
722
+
723
+ .field-input {
724
+ border-radius: 0.875rem;
725
+ font-size: 1.125rem;
726
+ min-height: 3rem;
727
+ }
728
+
729
+ .result-row {
730
+ align-items: flex-start;
731
+ gap: 0.75rem;
732
+ padding: 0.875rem;
733
+ }
734
+
735
+ .result-row-left {
736
+ min-width: 0;
737
+ }
738
+
739
+ .result-label {
740
+ line-height: 1.25;
741
+ }
742
+
743
+ .result-val {
744
+ flex-shrink: 0;
745
+ font-size: 1rem;
746
+ }
747
+
748
+ .ramp-body {
749
+ min-height: 170px;
750
+ }
751
+
752
+ .ramp-chart-wrap {
753
+ padding: 0.75rem;
645
754
  }
646
755
 
647
756
  .ph-grid {
648
757
  grid-template-columns: 1fr;
758
+ gap: 1rem;
759
+ }
760
+
761
+ .ph-range-labels {
762
+ gap: 0.5rem;
649
763
  }
650
- }
764
+
765
+ .ph-range-labels span {
766
+ min-width: 0;
767
+ overflow-wrap: anywhere;
768
+ }
769
+ }
@@ -114,19 +114,19 @@ export const content: ToolLocaleContent<FiberPrepUI> = {
114
114
  },
115
115
  {
116
116
  type: 'card',
117
- title: 'Fibres Protéiques : Laine et Soie',
117
+ title: 'Fibres Protéiques: Laine et Soie',
118
118
  icon: 'mdi:sheep',
119
119
  html: 'Ces fibres sont composées de chaînes d\'acides aminés avec une affinité naturelle élevée pour les métaux. La chaleur ouvre les écailles de la fibre permettant aux sels d\'alun de pénétrer profondément. La <strong>Crème de Tartre</strong> est vitale pour maintenir le pH acide qui préserve la douceur.',
120
120
  },
121
121
  {
122
122
  type: 'card',
123
- title: 'Fibres Cellulosiques : Coton et Lin',
123
+ title: 'Fibres Cellulosiques: Coton et Lin',
124
124
  icon: 'mdi:leaf',
125
- html: 'La cellulose n\'a pas de sites de liaison facilement disponibles. C\'est pourquoi nous utilisons le <strong>protocole en deux étapes</strong> : d\'abord des tanins qui se fixent à la cellulose, puis l\'alun se fixe à ces tanins. Sans ce pré-traitement, la couleur sera pâle et peu résistante au lavage.',
125
+ html: 'La cellulose n\'a pas de sites de liaison facilement disponibles. C\'est pourquoi nous utilisons le <strong>protocole en deux étapes</strong>: d\'abord des tanins qui se fixent à la cellulose, puis l\'alun se fixe à ces tanins. Sans ce pré-traitement, la couleur sera pâle et peu résistante au lavage.',
126
126
  },
127
127
  {
128
128
  type: 'title',
129
- text: 'Contrôle du Bain : WOF, Température et pH',
129
+ text: 'Contrôle du Bain: WOF, Température et pH',
130
130
  level: 2,
131
131
  },
132
132
  {