@jjlmoya/utils-textiles 1.3.0 → 1.5.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package.json +59 -58
- package/src/category/i18n/de.ts +76 -0
- package/src/category/i18n/fr.ts +33 -30
- package/src/category/i18n/id.ts +76 -0
- package/src/category/i18n/it.ts +76 -0
- package/src/category/i18n/ja.ts +76 -0
- package/src/category/i18n/ko.ts +76 -0
- package/src/category/i18n/nl.ts +76 -0
- package/src/category/i18n/pl.ts +76 -0
- package/src/category/i18n/pt.ts +76 -0
- package/src/category/i18n/ru.ts +76 -0
- package/src/category/i18n/sv.ts +76 -0
- package/src/category/i18n/tr.ts +76 -0
- package/src/category/i18n/zh.ts +76 -0
- package/src/category/index.ts +39 -7
- package/src/index.ts +12 -12
- package/src/tests/i18n_coverage.test.ts +36 -0
- package/src/tests/schemas_fulfillment.test.ts +23 -0
- package/src/tests/slug_uniqueness.test.ts +81 -0
- package/src/tests/title_quality.test.ts +55 -0
- package/src/tool/burnTest/i18n/de.ts +225 -0
- package/src/tool/burnTest/i18n/id.ts +225 -0
- package/src/tool/burnTest/i18n/it.ts +225 -0
- package/src/tool/burnTest/i18n/ja.ts +225 -0
- package/src/tool/burnTest/i18n/ko.ts +225 -0
- package/src/tool/burnTest/i18n/nl.ts +225 -0
- package/src/tool/burnTest/i18n/pl.ts +225 -0
- package/src/tool/burnTest/i18n/pt.ts +225 -0
- package/src/tool/burnTest/i18n/ru.ts +225 -0
- package/src/tool/burnTest/i18n/sv.ts +225 -0
- package/src/tool/burnTest/i18n/tr.ts +225 -0
- package/src/tool/burnTest/i18n/zh.ts +225 -0
- package/src/tool/burnTest/index.ts +15 -7
- package/src/tool/clothingSizeConverter/i18n/de.ts +356 -0
- package/src/tool/clothingSizeConverter/i18n/id.ts +356 -0
- package/src/tool/clothingSizeConverter/i18n/it.ts +356 -0
- package/src/tool/clothingSizeConverter/i18n/ja.ts +356 -0
- package/src/tool/clothingSizeConverter/i18n/ko.ts +356 -0
- package/src/tool/clothingSizeConverter/i18n/nl.ts +356 -0
- package/src/tool/clothingSizeConverter/i18n/pl.ts +356 -0
- package/src/tool/clothingSizeConverter/i18n/pt.ts +356 -0
- package/src/tool/clothingSizeConverter/i18n/ru.ts +356 -0
- package/src/tool/clothingSizeConverter/i18n/sv.ts +356 -0
- package/src/tool/clothingSizeConverter/i18n/tr.ts +356 -0
- package/src/tool/clothingSizeConverter/i18n/zh.ts +356 -0
- package/src/tool/clothingSizeConverter/index.ts +15 -7
- package/src/tool/fabricProjectCalculator/i18n/de.ts +250 -0
- package/src/tool/fabricProjectCalculator/i18n/id.ts +250 -0
- package/src/tool/fabricProjectCalculator/i18n/it.ts +250 -0
- package/src/tool/fabricProjectCalculator/i18n/ja.ts +250 -0
- package/src/tool/fabricProjectCalculator/i18n/ko.ts +250 -0
- package/src/tool/fabricProjectCalculator/i18n/nl.ts +250 -0
- package/src/tool/fabricProjectCalculator/i18n/pl.ts +250 -0
- package/src/tool/fabricProjectCalculator/i18n/pt.ts +250 -0
- package/src/tool/fabricProjectCalculator/i18n/ru.ts +250 -0
- package/src/tool/fabricProjectCalculator/i18n/sv.ts +250 -0
- package/src/tool/fabricProjectCalculator/i18n/tr.ts +250 -0
- package/src/tool/fabricProjectCalculator/i18n/zh.ts +250 -0
- package/src/tool/fabricProjectCalculator/index.ts +15 -7
- package/src/tool/fabricTruth/i18n/de.ts +282 -0
- package/src/tool/fabricTruth/i18n/en.ts +1 -1
- package/src/tool/fabricTruth/i18n/fr.ts +1 -1
- package/src/tool/fabricTruth/i18n/id.ts +282 -0
- package/src/tool/fabricTruth/i18n/it.ts +282 -0
- package/src/tool/fabricTruth/i18n/ja.ts +282 -0
- package/src/tool/fabricTruth/i18n/ko.ts +282 -0
- package/src/tool/fabricTruth/i18n/nl.ts +282 -0
- package/src/tool/fabricTruth/i18n/pl.ts +282 -0
- package/src/tool/fabricTruth/i18n/pt.ts +282 -0
- package/src/tool/fabricTruth/i18n/ru.ts +282 -0
- package/src/tool/fabricTruth/i18n/sv.ts +282 -0
- package/src/tool/fabricTruth/i18n/tr.ts +282 -0
- package/src/tool/fabricTruth/i18n/zh.ts +286 -0
- package/src/tool/fabricTruth/index.ts +15 -7
- package/src/tool/fiberPrep/i18n/de.ts +225 -0
- package/src/tool/fiberPrep/i18n/id.ts +225 -0
- package/src/tool/fiberPrep/i18n/it.ts +225 -0
- package/src/tool/fiberPrep/i18n/ja.ts +225 -0
- package/src/tool/fiberPrep/i18n/ko.ts +225 -0
- package/src/tool/fiberPrep/i18n/nl.ts +225 -0
- package/src/tool/fiberPrep/i18n/pl.ts +225 -0
- package/src/tool/fiberPrep/i18n/pt.ts +225 -0
- package/src/tool/fiberPrep/i18n/ru.ts +225 -0
- package/src/tool/fiberPrep/i18n/sv.ts +225 -0
- package/src/tool/fiberPrep/i18n/tr.ts +225 -0
- package/src/tool/fiberPrep/i18n/zh.ts +225 -0
- package/src/tool/fiberPrep/index.ts +15 -7
- package/src/tool/knittingGauge/i18n/de.ts +234 -0
- package/src/tool/knittingGauge/i18n/id.ts +234 -0
- package/src/tool/knittingGauge/i18n/it.ts +234 -0
- package/src/tool/knittingGauge/i18n/ja.ts +234 -0
- package/src/tool/knittingGauge/i18n/ko.ts +234 -0
- package/src/tool/knittingGauge/i18n/nl.ts +234 -0
- package/src/tool/knittingGauge/i18n/pl.ts +234 -0
- package/src/tool/knittingGauge/i18n/pt.ts +234 -0
- package/src/tool/knittingGauge/i18n/ru.ts +234 -0
- package/src/tool/knittingGauge/i18n/sv.ts +234 -0
- package/src/tool/knittingGauge/i18n/tr.ts +234 -0
- package/src/tool/knittingGauge/i18n/zh.ts +234 -0
- package/src/tool/knittingGauge/index.ts +15 -7
- package/src/tool/laundryGuide/i18n/de.ts +275 -0
- package/src/tool/laundryGuide/i18n/id.ts +275 -0
- package/src/tool/laundryGuide/i18n/it.ts +275 -0
- package/src/tool/laundryGuide/i18n/ja.ts +275 -0
- package/src/tool/laundryGuide/i18n/ko.ts +275 -0
- package/src/tool/laundryGuide/i18n/nl.ts +275 -0
- package/src/tool/laundryGuide/i18n/pl.ts +275 -0
- package/src/tool/laundryGuide/i18n/pt.ts +275 -0
- package/src/tool/laundryGuide/i18n/ru.ts +275 -0
- package/src/tool/laundryGuide/i18n/sv.ts +275 -0
- package/src/tool/laundryGuide/i18n/tr.ts +275 -0
- package/src/tool/laundryGuide/i18n/zh.ts +275 -0
- package/src/tool/laundryGuide/index.ts +15 -7
- package/src/tool/needleConverter/i18n/de.ts +212 -0
- package/src/tool/needleConverter/i18n/id.ts +212 -0
- package/src/tool/needleConverter/i18n/it.ts +212 -0
- package/src/tool/needleConverter/i18n/ja.ts +212 -0
- package/src/tool/needleConverter/i18n/ko.ts +212 -0
- package/src/tool/needleConverter/i18n/nl.ts +212 -0
- package/src/tool/needleConverter/i18n/pl.ts +212 -0
- package/src/tool/needleConverter/i18n/pt.ts +212 -0
- package/src/tool/needleConverter/i18n/ru.ts +212 -0
- package/src/tool/needleConverter/i18n/sv.ts +212 -0
- package/src/tool/needleConverter/i18n/tr.ts +212 -0
- package/src/tool/needleConverter/i18n/zh.ts +212 -0
- package/src/tool/needleConverter/index.ts +15 -7
- package/src/tool/sewingPatternScaler/i18n/de.ts +227 -0
- package/src/tool/sewingPatternScaler/i18n/id.ts +227 -0
- package/src/tool/sewingPatternScaler/i18n/it.ts +227 -0
- package/src/tool/sewingPatternScaler/i18n/ja.ts +227 -0
- package/src/tool/sewingPatternScaler/i18n/ko.ts +227 -0
- package/src/tool/sewingPatternScaler/i18n/nl.ts +227 -0
- package/src/tool/sewingPatternScaler/i18n/pl.ts +227 -0
- package/src/tool/sewingPatternScaler/i18n/pt.ts +227 -0
- package/src/tool/sewingPatternScaler/i18n/ru.ts +227 -0
- package/src/tool/sewingPatternScaler/i18n/sv.ts +227 -0
- package/src/tool/sewingPatternScaler/i18n/tr.ts +227 -0
- package/src/tool/sewingPatternScaler/i18n/zh.ts +227 -0
- package/src/tool/sewingPatternScaler/index.ts +15 -7
- package/src/tool/shoeSizeConverter/i18n/de.ts +184 -0
- package/src/tool/shoeSizeConverter/i18n/id.ts +184 -0
- package/src/tool/shoeSizeConverter/i18n/it.ts +184 -0
- package/src/tool/shoeSizeConverter/i18n/ja.ts +184 -0
- package/src/tool/shoeSizeConverter/i18n/ko.ts +184 -0
- package/src/tool/shoeSizeConverter/i18n/nl.ts +184 -0
- package/src/tool/shoeSizeConverter/i18n/pl.ts +184 -0
- package/src/tool/shoeSizeConverter/i18n/pt.ts +184 -0
- package/src/tool/shoeSizeConverter/i18n/ru.ts +184 -0
- package/src/tool/shoeSizeConverter/i18n/sv.ts +184 -0
- package/src/tool/shoeSizeConverter/i18n/tr.ts +184 -0
- package/src/tool/shoeSizeConverter/i18n/zh.ts +184 -0
- package/src/tool/shoeSizeConverter/index.ts +15 -7
- package/src/tool/stainChemistry/i18n/de.ts +300 -0
- package/src/tool/stainChemistry/i18n/id.ts +300 -0
- package/src/tool/stainChemistry/i18n/it.ts +300 -0
- package/src/tool/stainChemistry/i18n/ja.ts +300 -0
- package/src/tool/stainChemistry/i18n/ko.ts +297 -0
- package/src/tool/stainChemistry/i18n/nl.ts +300 -0
- package/src/tool/stainChemistry/i18n/pl.ts +300 -0
- package/src/tool/stainChemistry/i18n/pt.ts +300 -0
- package/src/tool/stainChemistry/i18n/ru.ts +300 -0
- package/src/tool/stainChemistry/i18n/sv.ts +300 -0
- package/src/tool/stainChemistry/i18n/tr.ts +300 -0
- package/src/tool/stainChemistry/i18n/zh.ts +295 -0
- package/src/tool/stainChemistry/index.ts +15 -7
- package/src/tool/yarnCalculator/i18n/de.ts +310 -0
- package/src/tool/yarnCalculator/i18n/id.ts +310 -0
- package/src/tool/yarnCalculator/i18n/it.ts +310 -0
- package/src/tool/yarnCalculator/i18n/ja.ts +310 -0
- package/src/tool/yarnCalculator/i18n/ko.ts +310 -0
- package/src/tool/yarnCalculator/i18n/nl.ts +310 -0
- package/src/tool/yarnCalculator/i18n/pl.ts +310 -0
- package/src/tool/yarnCalculator/i18n/pt.ts +310 -0
- package/src/tool/yarnCalculator/i18n/ru.ts +310 -0
- package/src/tool/yarnCalculator/i18n/sv.ts +310 -0
- package/src/tool/yarnCalculator/i18n/tr.ts +310 -0
- package/src/tool/yarnCalculator/i18n/zh.ts +309 -0
- package/src/tool/yarnCalculator/index.ts +15 -7
- package/src/types.ts +1 -1
|
@@ -0,0 +1,310 @@
|
|
|
1
|
+
import type { WithContext, FAQPage, HowTo, SoftwareApplication } from 'schema-dts';
|
|
2
|
+
import type { ToolLocaleContent } from '../../../types';
|
|
3
|
+
import type { YarnCalculatorUI } from '../ui';
|
|
4
|
+
|
|
5
|
+
const slug = 'yun-hesaplama-orgu-metik';
|
|
6
|
+
const title = 'Yün Hesaplayıcı: Kaç metre ve çile ipe ihtiyacım var?';
|
|
7
|
+
const description =
|
|
8
|
+
'Örgü ve tığ işi projeleriniz için gereken yün veya ip miktarını desen ve bedene göre metrik hassasiyetle hesaplayın.';
|
|
9
|
+
|
|
10
|
+
const faqData = [
|
|
11
|
+
{
|
|
12
|
+
question: 'Neden tığ işi (crochet), şiş örgüsünden daha fazla yün harcar?',
|
|
13
|
+
answer:
|
|
14
|
+
'Tığ işi, üst üste binen düğümler ve halkalar oluşturmaya dayanır, bu da santimetrekare başına daha yoğun ve kalın bir doku oluşturur. Ortalama olarak, bir tığ işi projesi, aynı projenin iki şişle (düz örgü) örülmesine kıyasla %25 ile %35 arasında daha fazla ip tüketir.',
|
|
15
|
+
},
|
|
16
|
+
{
|
|
17
|
+
question: 'Farklı boya lotlarından (Dye Lot) yün alırsam ne olur?',
|
|
18
|
+
answer:
|
|
19
|
+
'Renk mağazada özdeş görünse bile, boyama sırasındaki minimum kimyasal varyasyonlar, birlikte örüldüğünde bitmiş giyside görünür "çizgiler" oluşturabilir. Lot kodunun aynı olduğunu doğrulayarak tüm yünü bir kerede almanız şiddetle tavsiye edilir.',
|
|
20
|
+
},
|
|
21
|
+
{
|
|
22
|
+
question: 'Gerginlik (gauge) nihai tüketimi nasıl etkiler?',
|
|
23
|
+
answer:
|
|
24
|
+
'Gevşek örerseniz, her ilmek daha fazla metre ip tüketir. Eğer gerginlik örneğiniz desende belirtilenden daha büyükse (örneğin 15 ilmek yerine 13 ilmek), yün tüketiminiz önemli ölçüde artacaktır. Önceden bir gerginlik örneği hazırlamak hayati önem taşır.',
|
|
25
|
+
},
|
|
26
|
+
{
|
|
27
|
+
question: 'Sadece çilenin ağırlığına sahipsem metre miktarını nasıl hesaplarım?',
|
|
28
|
+
answer:
|
|
29
|
+
'Metraj bilgisi olmadan bunu belirlemek zordur. Çoğu ipin etiketinde metre bilgisi bulunur. Eğer yoksa, 50g veya 100g başına tam uzunluğu bulmak için Ravelry gibi veritabanlarında ipin adıyla arama yapın.',
|
|
30
|
+
},
|
|
31
|
+
];
|
|
32
|
+
|
|
33
|
+
const howToData = [
|
|
34
|
+
{
|
|
35
|
+
name: 'Projeyi seçin',
|
|
36
|
+
text: 'Özel tüketim temellerini yüklemek için kazağı, atkıyı, bereyi, çorabı veya battaniyeyi seçin.',
|
|
37
|
+
},
|
|
38
|
+
{
|
|
39
|
+
name: 'Beden ve kalınlığı tanımlayın',
|
|
40
|
+
text: 'Nihai boyutları (S, M, L, XL) ve kullanacağınız ipin kalınlığını (Fingering, DK, Worsted, Bulky) belirtin.',
|
|
41
|
+
},
|
|
42
|
+
{
|
|
43
|
+
name: 'Çarpanları etkinleştirin',
|
|
44
|
+
text: 'Eğer deseninizde saç örgüsü veya karmaşık dokular varsa, gerekli eklemeyi yapmak için doku anahtarını etkinleştirin.',
|
|
45
|
+
},
|
|
46
|
+
{
|
|
47
|
+
name: 'Alışveriş listesini alın',
|
|
48
|
+
text: 'Sepete tam olarak kaç adet eklemeniz gerektiğini görmek için seçtiğiniz ipin çile başına metresini yazın.',
|
|
49
|
+
},
|
|
50
|
+
];
|
|
51
|
+
|
|
52
|
+
const faqSchema: WithContext<FAQPage> = {
|
|
53
|
+
'@context': 'https://schema.org',
|
|
54
|
+
'@type': 'FAQPage',
|
|
55
|
+
mainEntity: faqData.map((item) => ({
|
|
56
|
+
'@type': 'Question',
|
|
57
|
+
name: item.question,
|
|
58
|
+
acceptedAnswer: { '@type': 'Answer', text: item.answer },
|
|
59
|
+
})),
|
|
60
|
+
};
|
|
61
|
+
|
|
62
|
+
const howToSchema: WithContext<HowTo> = {
|
|
63
|
+
'@context': 'https://schema.org',
|
|
64
|
+
'@type': 'HowTo',
|
|
65
|
+
name: title,
|
|
66
|
+
description,
|
|
67
|
+
step: howToData.map((step) => ({
|
|
68
|
+
'@type': 'HowToStep',
|
|
69
|
+
name: step.name,
|
|
70
|
+
text: step.text,
|
|
71
|
+
})),
|
|
72
|
+
};
|
|
73
|
+
|
|
74
|
+
const appSchema: WithContext<SoftwareApplication> = {
|
|
75
|
+
'@context': 'https://schema.org',
|
|
76
|
+
'@type': 'SoftwareApplication',
|
|
77
|
+
name: title,
|
|
78
|
+
description,
|
|
79
|
+
applicationCategory: 'UtilityApplication',
|
|
80
|
+
operatingSystem: 'All',
|
|
81
|
+
offers: { '@type': 'Offer', price: '0', priceCurrency: 'EUR' },
|
|
82
|
+
inLanguage: 'tr',
|
|
83
|
+
};
|
|
84
|
+
|
|
85
|
+
export const content: ToolLocaleContent<YarnCalculatorUI> = {
|
|
86
|
+
slug,
|
|
87
|
+
title,
|
|
88
|
+
description,
|
|
89
|
+
faqTitle: 'Sıkça Sorulan Sorular',
|
|
90
|
+
faq: faqData,
|
|
91
|
+
bibliographyTitle: 'Kaynakça',
|
|
92
|
+
bibliography: [
|
|
93
|
+
{
|
|
94
|
+
name: 'Craft Yarn Council: Standard Yarn Weights & Yardages',
|
|
95
|
+
url: 'https://www.craftyarncouncil.com/standards/yarn-weight-system',
|
|
96
|
+
},
|
|
97
|
+
{
|
|
98
|
+
name: 'Interweave Essentials: Yarn Substitution and Estimation',
|
|
99
|
+
url: 'https://www.interweave.com/article/knitting/yarn-substitution-angelina-take-two/',
|
|
100
|
+
},
|
|
101
|
+
{
|
|
102
|
+
name: 'The Woolery: Fibers and Calculation of Yarn Usage',
|
|
103
|
+
url: 'https://woolery.com/blogs/the-woolery-blog/yarn-weight-charts-helpful-guide/',
|
|
104
|
+
},
|
|
105
|
+
],
|
|
106
|
+
howTo: howToData,
|
|
107
|
+
schemas: [faqSchema, howToSchema, appSchema],
|
|
108
|
+
seo: [
|
|
109
|
+
{
|
|
110
|
+
type: 'title',
|
|
111
|
+
text: 'Yün Tüketim Rehberi: Projeleriniz için metre ve çile hesabı nasıl yapılır?',
|
|
112
|
+
level: 2,
|
|
113
|
+
},
|
|
114
|
+
{
|
|
115
|
+
type: 'paragraph',
|
|
116
|
+
html: 'Örgü planlamasında ustalaşın ve şiş ile tığ işi projeleriniz için hazırladığımız hassas teknik hesaplayıcımızla ipinizin bitmesini önleyin. Örgü ören herkesin en büyük korkularından biri <strong>"Yarn Chicken"</strong>dır: Projenin sonunda, son ilmekleri kapatmadan hemen önce ipin bitecekmiş gibi göründüğü o kritik an. Bu hesaplayıcı, endüstriyel metraj ve gramaj standartlarına dayalı tahminler sunmak için geliştirilmiştir.',
|
|
117
|
+
},
|
|
118
|
+
{
|
|
119
|
+
type: 'stats',
|
|
120
|
+
items: [
|
|
121
|
+
{ value: '+10%', label: 'Güvenlik Marjı', icon: 'mdi:security' },
|
|
122
|
+
{ value: 'Metrik', label: 'Metre ile Hesaplama', icon: 'mdi:ruler' },
|
|
123
|
+
{ value: 'Çevrimdışı', label: 'Yerel Veritabanı', icon: 'mdi:wifi-off' },
|
|
124
|
+
],
|
|
125
|
+
columns: 3,
|
|
126
|
+
},
|
|
127
|
+
{
|
|
128
|
+
type: 'title',
|
|
129
|
+
text: 'İp çilelerinin gramajı neden yanıltıcıdır?',
|
|
130
|
+
level: 3,
|
|
131
|
+
},
|
|
132
|
+
{
|
|
133
|
+
type: 'paragraph',
|
|
134
|
+
html: 'Pek çok yeni başlayan, yünü sadece ağırlığına göre (örneğin "100g\'lık 6 çile") alma hatasına düşer. Ancak ağırlık bir kütle birimidir, uzunluk değil. Her ikisi de 100g olan iki ipin uzunlukları radikal bir şekilde farklı olabilir: <strong>Bulky</strong> tipi bir ip sadece 80 metre olabilirken, <strong>Fingering / Lace</strong> tipi bir ip aynı ağırlıkta 450 metreyi aşabilir.',
|
|
135
|
+
},
|
|
136
|
+
{
|
|
137
|
+
type: 'paragraph',
|
|
138
|
+
html: 'Bu nedenle hesaplayıcımız her zaman <strong>toplam metreyi</strong> önceliklendirir. Bedeniniz ve projeniz için gereken uzunluğu bildiğinizde, satın almanız gereken kesin birim sayısını elde etmek için bunu seçtiğiniz ipin etiketinde belirtilen metraja bölebilirsiniz.',
|
|
139
|
+
},
|
|
140
|
+
{
|
|
141
|
+
type: 'title',
|
|
142
|
+
text: 'Kalınlığa Göre Standart Metraj Tablosu',
|
|
143
|
+
level: 3,
|
|
144
|
+
},
|
|
145
|
+
{
|
|
146
|
+
type: 'paragraph',
|
|
147
|
+
html: 'Elinde orijinal etiket yoksa, tahminlerin için bu referans metrajları (her 100g elyaf için) kullanabilirsin:',
|
|
148
|
+
},
|
|
149
|
+
{
|
|
150
|
+
type: 'table',
|
|
151
|
+
headers: ['Kalınlık (Weight)', 'Yaklaşık Metre / 100g', 'Önerilen Kullanım', 'Önerilen Şişler'],
|
|
152
|
+
rows: [
|
|
153
|
+
['<strong>Lace / 0</strong>', '600 - 900m', 'Dantel şallar, ajurlu örgüler', '1.5 - 2.5mm'],
|
|
154
|
+
['<strong>Fingering / 1</strong>', '360 - 450m', 'Çoraplar, bebek kıyafetleri', '2.25 - 3.25mm'],
|
|
155
|
+
['<strong>Sport / 2</strong>', '270 - 320m', 'Hafif ceketler', '3.25 - 3.75mm'],
|
|
156
|
+
['<strong>DK / 3</strong>', '200 - 250m', 'Kazaklar, bereler', '3.75 - 4.5mm'],
|
|
157
|
+
['<strong>Worsted / 4</strong>', '180 - 220m', 'Battaniyeler, paltolar', '4.5 - 5.5mm'],
|
|
158
|
+
['<strong>Bulky / 5</strong>', '100 - 140m', 'XXL atkılar, battaniyeler', '6.0 - 8.0mm'],
|
|
159
|
+
],
|
|
160
|
+
},
|
|
161
|
+
{
|
|
162
|
+
type: 'tip',
|
|
163
|
+
title: 'Gerginlik Faktörü (Gauge)',
|
|
164
|
+
html: '<p>Unutmayın, çok gevşek örerseniz ilmekleriniz daha büyük olacak ve sıkı örmeye göre daha fazla ip tüketecektir. Hesaplayıcımız bir güvenlik marjı uygular; ancak gerginliğinizin aşırı gevşek olduğunu biliyorsanız, sürprizleri önlemek için sonuçlara %5-10 eklemeyi düşünün.</p>',
|
|
165
|
+
},
|
|
166
|
+
{
|
|
167
|
+
type: 'title',
|
|
168
|
+
text: 'İp tüketimini artıran değişkenler',
|
|
169
|
+
level: 3,
|
|
170
|
+
},
|
|
171
|
+
{
|
|
172
|
+
type: 'paragraph',
|
|
173
|
+
html: 'Tüm örgüler aynı miktarda elyaf tüketmez. Tasarımınızı seçerken bu çarpan faktörlerini göz önünde bulundurun:',
|
|
174
|
+
},
|
|
175
|
+
{
|
|
176
|
+
type: 'comparative',
|
|
177
|
+
items: [
|
|
178
|
+
{
|
|
179
|
+
title: 'Düz Örgü / Jarse',
|
|
180
|
+
description: 'Herhangi bir giysi için temel tüketimi ve maksimum ip verimliliğini temsil eder.',
|
|
181
|
+
icon: 'mdi:minus-circle-outline',
|
|
182
|
+
points: ['Yeni başlayanlar için ideal', 'Kumaşın doğal dökümü'],
|
|
183
|
+
},
|
|
184
|
+
{
|
|
185
|
+
title: 'Saç Örgüsü / Doku',
|
|
186
|
+
description: 'Liflerin çaprazlanması parçayı "kısaltır", tüketimi yaklaşık %25 oranında artırır.',
|
|
187
|
+
icon: 'mdi:texture-box',
|
|
188
|
+
points: ['Daha fazla metre gerektirir', 'Daha yoğun ve ağır doku'],
|
|
189
|
+
pointIcon: 'mdi:alert-circle-outline',
|
|
190
|
+
},
|
|
191
|
+
{
|
|
192
|
+
title: 'Tığ İşi (Crochet)',
|
|
193
|
+
description: 'Tığ düğümleri, şiş örgüsüne göre %30 daha fazla ip kullanır.',
|
|
194
|
+
icon: 'mdi:hook',
|
|
195
|
+
points: ['Hızlı ip tüketimi', 'Üç boyutlu doku'],
|
|
196
|
+
pointIcon: 'mdi:alert-circle-outline',
|
|
197
|
+
},
|
|
198
|
+
{
|
|
199
|
+
title: 'Lastik Örgü (Ribbing)',
|
|
200
|
+
description: 'Düz/ters yapısı santimetrekare başına daha fazla yün biriktirir.',
|
|
201
|
+
icon: 'mdi:unfold-more-horizontal',
|
|
202
|
+
points: ['Orta düzey tüketim (+%15)', 'Yüksek esneklik dönüşü'],
|
|
203
|
+
},
|
|
204
|
+
],
|
|
205
|
+
columns: 2,
|
|
206
|
+
},
|
|
207
|
+
{
|
|
208
|
+
type: 'title',
|
|
209
|
+
text: 'Tedbirli Örgücü Sözlüğü',
|
|
210
|
+
level: 3,
|
|
211
|
+
},
|
|
212
|
+
{
|
|
213
|
+
type: 'glossary',
|
|
214
|
+
items: [
|
|
215
|
+
{
|
|
216
|
+
term: 'Dye Lot (Boya Lotu)',
|
|
217
|
+
definition:
|
|
218
|
+
'Yünün boyandığı kazanı tanımlayan numara. Farklı lotlar çilede fark edilmeyen ancak bitmiş üründe çok belirgin renk değişimlerine sahip olabilir.',
|
|
219
|
+
},
|
|
220
|
+
{
|
|
221
|
+
term: 'Stash (Zula)',
|
|
222
|
+
definition:
|
|
223
|
+
'Bir örgücünün kişisel ip koleksiyonu. Etiketsiz kalan iplerin ağırlığını belirlemek küçük projeleri hesaplamak için hayati önem taşır.',
|
|
224
|
+
},
|
|
225
|
+
{
|
|
226
|
+
term: 'Put-up',
|
|
227
|
+
definition:
|
|
228
|
+
'İpin sunulma şekli (çile, yumak veya koni), bu da kullanmadan önce sarılması gerekip gerekmediğini etkiler.',
|
|
229
|
+
},
|
|
230
|
+
{
|
|
231
|
+
term: 'Yarn Chicken',
|
|
232
|
+
definition:
|
|
233
|
+
'Yetersiz görünen bir miktar iple örgünün bir bölümünü bitirmeye çalışma mücadelesi.',
|
|
234
|
+
},
|
|
235
|
+
],
|
|
236
|
+
},
|
|
237
|
+
{
|
|
238
|
+
type: 'title',
|
|
239
|
+
text: 'Bu hesaplayıcının sonuçları nasıl kullanılır?',
|
|
240
|
+
level: 3,
|
|
241
|
+
},
|
|
242
|
+
{
|
|
243
|
+
type: 'paragraph',
|
|
244
|
+
html: 'Araç size metre ve çile sayısını verdiğinde, aşağıdaki manuel doğrulama adımlarını yapmanızı öneririz:',
|
|
245
|
+
},
|
|
246
|
+
{
|
|
247
|
+
type: 'list',
|
|
248
|
+
items: [
|
|
249
|
+
'<strong>Gerçek ipinizin metrajını kontrol edin:</strong> Her 100g\'lık çile 200m olmayabilir. Nihai hesabı ayarlamak için bu veriyi etikette doğrulayın.',
|
|
250
|
+
'<strong>Detaylar için metraj ekleyin:</strong> Eğer bir atkıya püskül veya bereye ponpon ekleyecekseniz, toplama 50-80 metre ekstra ekleyin.',
|
|
251
|
+
'<strong>Gerginlik örneği:</strong> 10x10 cm\'lik bir kare örün. Hassas bir terazide tartın. Eğer 20g geliyorsa ve battaniyeniz 100x100 (100 kare) ise, tam olarak 2kg yüne ihtiyacınız olacaktır.',
|
|
252
|
+
'<strong>Her zaman aynı lottan satın alın:</strong> Eğer hesaplama 7 çile diyorsa, farklı lot olma ihtimaline karşı dikişler için pay olması amacıyla 8 çile alın.',
|
|
253
|
+
],
|
|
254
|
+
},
|
|
255
|
+
{
|
|
256
|
+
type: 'summary',
|
|
257
|
+
title: 'Yün Alımı İçin Stratejik Tavsiyeler',
|
|
258
|
+
items: [
|
|
259
|
+
'Gereken uzunluğu garantilemek için gramdan ziyade metreye öncelik verin.',
|
|
260
|
+
'Tığ işi, şiş örgüsüne göre önemli ölçüde daha fazla yün tüketir; tür seçicini ayarlayın.',
|
|
261
|
+
'Yoğun dokular (saç örgüleri) ip bütçesinde %25 artış gerektirir.',
|
|
262
|
+
'Renk yedeği istemeniz gerekebileceği için her lottan bir etiketi mutlaka saklayın.',
|
|
263
|
+
'Zorunlu gerginlik örneğini örmek için %10\'luk güvenlik marjını kullanın.',
|
|
264
|
+
],
|
|
265
|
+
},
|
|
266
|
+
],
|
|
267
|
+
ui: {
|
|
268
|
+
sectionProject: '1. PROJE TÜRÜ',
|
|
269
|
+
sectionSize: '2. BOYUTLAR / BEDEN',
|
|
270
|
+
sectionWeight: '3. İP KALINLIĞI',
|
|
271
|
+
sectionPattern: '4. DESEN ÖZELLİKLERİ',
|
|
272
|
+
sectionBall: '5. ÇİLE VERİLERİ',
|
|
273
|
+
labelCables: 'Saç örgüsü veya yoğun dokular var mı?',
|
|
274
|
+
labelGrams: 'GRAM / ÇİLE',
|
|
275
|
+
labelMeters: 'METRE / ÇİLE',
|
|
276
|
+
weightFine: 'İnce',
|
|
277
|
+
weightMedium: 'Orta',
|
|
278
|
+
weightThick: 'Kalın',
|
|
279
|
+
weightXXL: 'XXL',
|
|
280
|
+
projectSweater: 'KAZAK',
|
|
281
|
+
projectScarf: 'ATKI',
|
|
282
|
+
projectHat: 'BERE',
|
|
283
|
+
projectSocks: 'ÇORAP',
|
|
284
|
+
projectBlanket: 'BATTANİYE',
|
|
285
|
+
projectCardigan: 'HIRKA',
|
|
286
|
+
statPrefix: 'TAHMİNİ TOPLAM TÜKETİM',
|
|
287
|
+
statSuffix: 'M',
|
|
288
|
+
statNote: '%10 yedek stok ile hesaplanmış nihai metraj.',
|
|
289
|
+
ballsFormatSingular: '{n} çile satın alın',
|
|
290
|
+
ballsFormatPlural: '{n} çile satın alın',
|
|
291
|
+
ballsDetailFormat: 'Her biri {w}g / {m}m olan çileler.',
|
|
292
|
+
alertTitle: 'Stratejik güvenlik:',
|
|
293
|
+
alertText:
|
|
294
|
+
'Bu hesaplama ipinizin bitmeyeceğini zaten garanti eder. Renk sıçramalarını önlemek için çilelerinizi alırken lot numarasını (dye lot) doğrulamayı unutmayın.',
|
|
295
|
+
schemeSleeveLabel: 'Kollar',
|
|
296
|
+
schemeSleeveEach: 'her biri',
|
|
297
|
+
schemeBodyLabel: 'Gövde',
|
|
298
|
+
schemeTotalHat: 'Toplam Bere',
|
|
299
|
+
schemeTotalFlat: 'Toplam Parça',
|
|
300
|
+
schemeTotalSocks: 'Toplam Çift',
|
|
301
|
+
sizeLabels: {
|
|
302
|
+
sweater: ['S', 'M', 'L', 'XL'],
|
|
303
|
+
cardigan: ['S', 'M', 'L', 'XL'],
|
|
304
|
+
hat: ['Çocuk', 'S', 'M', 'L'],
|
|
305
|
+
scarf: ['Mini', 'M', 'Büyük', 'Maksi'],
|
|
306
|
+
socks: ['Çocuk', 'Yet. S', 'Yet. M', 'Yet. L'],
|
|
307
|
+
blanket: ['Bebek', 'Koltuk', 'Yatak 90', 'Yatak 150'],
|
|
308
|
+
},
|
|
309
|
+
},
|
|
310
|
+
};
|
|
@@ -0,0 +1,309 @@
|
|
|
1
|
+
import type { WithContext, FAQPage, HowTo, SoftwareApplication } from 'schema-dts';
|
|
2
|
+
import type { ToolLocaleContent } from '../../../types';
|
|
3
|
+
import type { YarnCalculatorUI } from '../ui';
|
|
4
|
+
|
|
5
|
+
const slug = 'yarn-calculator';
|
|
6
|
+
const title = '毛线计算器:我需要准备多少米、多少团线?';
|
|
7
|
+
const description = '根据织物图解和尺寸,精确计算编织(棒针或钩针)项目所需的羊毛或毛线总量(米/团)。';
|
|
8
|
+
|
|
9
|
+
const faqData = [
|
|
10
|
+
{
|
|
11
|
+
question: '为什么钩针(crochet)比棒针(knit)更费线?',
|
|
12
|
+
answer:
|
|
13
|
+
'钩针编织依靠创建层叠的结和环,这使得每平方厘米的织物更加紧密且厚实。平均而言,钩针项目比使用双针(平针织法)编织的相同项目多消耗 25% 到 35% 的毛线。',
|
|
14
|
+
},
|
|
15
|
+
{
|
|
16
|
+
question: '如果我购买不同缸号(Dye Lot)的线会怎样?',
|
|
17
|
+
answer:
|
|
18
|
+
'即使在商店里看起来颜色完全一致,染色过程中极细微的化学差异也可能导致成品编织在一起时出现可见的“色差带”。强烈建议务必一次性买齐所需毛线,并确保批次代码(缸号)完全相同。',
|
|
19
|
+
},
|
|
20
|
+
{
|
|
21
|
+
question: '织片密度(gauge)如何影响最终耗线量?',
|
|
22
|
+
answer:
|
|
23
|
+
'如果织得较松,每一针消耗的线长度(米)就会增加。如果你的试样密度比图解要求的大(例如标准是 15 针,你由于织得松变成了 13 针),你的毛线消耗量将大幅增加。提前编织密度试样至关重要。',
|
|
24
|
+
},
|
|
25
|
+
{
|
|
26
|
+
question: '如果我只有毛线团重量,该如何计算米数?',
|
|
27
|
+
answer:
|
|
28
|
+
'缺少长度数据很难准确计算。大多数线团都会在标签上标注长度。如果没有标注,可以在 Ravelry 等数据库中根据线材名称搜索,查找每 50 克或 100 克的准确长度。',
|
|
29
|
+
},
|
|
30
|
+
];
|
|
31
|
+
|
|
32
|
+
const howToData = [
|
|
33
|
+
{
|
|
34
|
+
name: '选择项目类型',
|
|
35
|
+
text: '从毛衣、围巾、帽子、袜子或毯子中选择,以加载特定的耗线基础数据。',
|
|
36
|
+
},
|
|
37
|
+
{
|
|
38
|
+
name: '定义尺寸与粗细',
|
|
39
|
+
text: '指明成品尺寸(S, M, L, XL)以及你要使用的毛线粗细(蕾丝线、中细线、合股线、粗线等)。',
|
|
40
|
+
},
|
|
41
|
+
{
|
|
42
|
+
name: '启用修正系数',
|
|
43
|
+
text: '如果你的图解中有麻花、辫子或复杂的纹理,请开启纹理开关以增加必要的预留量。',
|
|
44
|
+
},
|
|
45
|
+
{
|
|
46
|
+
name: '获取购买清单',
|
|
47
|
+
text: '输入你所选毛线每团的米数,即可看到确切需要放入购物车的数量。',
|
|
48
|
+
},
|
|
49
|
+
];
|
|
50
|
+
|
|
51
|
+
const faqSchema: WithContext<FAQPage> = {
|
|
52
|
+
'@context': 'https://schema.org',
|
|
53
|
+
'@type': 'FAQPage',
|
|
54
|
+
mainEntity: faqData.map((item) => ({
|
|
55
|
+
'@type': 'Question',
|
|
56
|
+
name: item.question,
|
|
57
|
+
acceptedAnswer: { '@type': 'Answer', text: item.answer },
|
|
58
|
+
})),
|
|
59
|
+
};
|
|
60
|
+
|
|
61
|
+
const howToSchema: WithContext<HowTo> = {
|
|
62
|
+
'@context': 'https://schema.org',
|
|
63
|
+
'@type': 'HowTo',
|
|
64
|
+
name: title,
|
|
65
|
+
description,
|
|
66
|
+
step: howToData.map((step) => ({
|
|
67
|
+
'@type': 'HowToStep',
|
|
68
|
+
name: step.name,
|
|
69
|
+
text: step.text,
|
|
70
|
+
})),
|
|
71
|
+
};
|
|
72
|
+
|
|
73
|
+
const appSchema: WithContext<SoftwareApplication> = {
|
|
74
|
+
'@context': 'https://schema.org',
|
|
75
|
+
'@type': 'SoftwareApplication',
|
|
76
|
+
name: title,
|
|
77
|
+
description,
|
|
78
|
+
applicationCategory: 'UtilityApplication',
|
|
79
|
+
operatingSystem: 'All',
|
|
80
|
+
offers: { '@type': 'Offer', price: '0', priceCurrency: 'EUR' },
|
|
81
|
+
inLanguage: 'zh',
|
|
82
|
+
};
|
|
83
|
+
|
|
84
|
+
export const content: ToolLocaleContent<YarnCalculatorUI> = {
|
|
85
|
+
slug,
|
|
86
|
+
title,
|
|
87
|
+
description,
|
|
88
|
+
faqTitle: '常见问题',
|
|
89
|
+
faq: faqData,
|
|
90
|
+
bibliographyTitle: '参考文献',
|
|
91
|
+
bibliography: [
|
|
92
|
+
{
|
|
93
|
+
name: 'Craft Yarn Council: Standard Yarn Weights & Yardages',
|
|
94
|
+
url: 'https://www.craftyarncouncil.com/standards/yarn-weight-system',
|
|
95
|
+
},
|
|
96
|
+
{
|
|
97
|
+
name: 'Interweave Essentials: Yarn Substitution and Estimation',
|
|
98
|
+
url: 'https://www.interweave.com/article/knitting/yarn-substitution-angelina-take-two/',
|
|
99
|
+
},
|
|
100
|
+
{
|
|
101
|
+
name: 'The Woolery: Fibers and Calculation of Yarn Usage',
|
|
102
|
+
url: 'https://woolery.com/blogs/the-woolery-blog/yarn-weight-charts-helpful-guide/',
|
|
103
|
+
},
|
|
104
|
+
],
|
|
105
|
+
howTo: howToData,
|
|
106
|
+
schemas: [faqSchema, howToSchema, appSchema],
|
|
107
|
+
seo: [
|
|
108
|
+
{
|
|
109
|
+
type: 'title',
|
|
110
|
+
text: '毛线耗量指南:如何为你的项目计算米数和线团数',
|
|
111
|
+
level: 2,
|
|
112
|
+
},
|
|
113
|
+
{
|
|
114
|
+
type: 'paragraph',
|
|
115
|
+
html: '掌握编织物流管理,使用我们的棒针与钩针高精度技术计算器,避免“断线”尴尬。每一位编织者最大的恐惧莫过于 <strong>“绝望的最后几米(Yarn Chicken)”</strong>:在项目的末尾,似乎线就要在收掉最后几针前用完了。本计算器旨在基于工业标准的长度和克重数据为你提供准确的预估。',
|
|
116
|
+
},
|
|
117
|
+
{
|
|
118
|
+
type: 'stats',
|
|
119
|
+
items: [
|
|
120
|
+
{ value: '+10%', label: '备用系数', icon: 'mdi:security' },
|
|
121
|
+
{ value: '公制', label: '计算单位(米)', icon: 'mdi:ruler' },
|
|
122
|
+
{ value: '离线', label: '本地数据库', icon: 'mdi:wifi-off' },
|
|
123
|
+
],
|
|
124
|
+
columns: 3,
|
|
125
|
+
},
|
|
126
|
+
{
|
|
127
|
+
type: 'title',
|
|
128
|
+
text: '为什么线团的“重量”具有欺骗性?',
|
|
129
|
+
level: 3,
|
|
130
|
+
},
|
|
131
|
+
{
|
|
132
|
+
type: 'paragraph',
|
|
133
|
+
html: '许多初学者在购买毛线时会犯专注于重量(例如“买 6 团 100 克的线”)的错误。然而,重量是质量单位,而非长度单位。两款同样重 100 克的线,其长度可能截然不同:一款 <strong>Bulky(粗线)</strong> 类型可能只有 80 米,而同样重量的一款 <strong>Fingering / Lace(蕾丝线)</strong> 长度可能超过 450 米。',
|
|
134
|
+
},
|
|
135
|
+
{
|
|
136
|
+
type: 'paragraph',
|
|
137
|
+
html: '因此,我们的计算器始终优先考虑 <strong>总米数</strong>。一旦你知道了自己的尺寸和项目所需的总长度,只需将其除以特定线团标签上标注的长度,即可得到应购买的确切团数。',
|
|
138
|
+
},
|
|
139
|
+
{
|
|
140
|
+
type: 'title',
|
|
141
|
+
text: '按粗细分类的标准米数参考表',
|
|
142
|
+
level: 3,
|
|
143
|
+
},
|
|
144
|
+
{
|
|
145
|
+
type: 'paragraph',
|
|
146
|
+
html: '如果你手边没有线材标签,可以参考以下数值(按每 100 克纤维计)进行估算:',
|
|
147
|
+
},
|
|
148
|
+
{
|
|
149
|
+
type: 'table',
|
|
150
|
+
headers: ['粗细 (Weight)', '约计米数 / 100g', '推荐用途', '推荐针号'],
|
|
151
|
+
rows: [
|
|
152
|
+
['<strong>Lace / 0 (蕾丝)</strong>', '600 - 900m', '蕾丝披肩,镂空花样', '1.5 - 2.5mm'],
|
|
153
|
+
['<strong>Fingering / 1 (超细)</strong>', '360 - 450m', '袜子,婴儿服饰', '2.25 - 3.25mm'],
|
|
154
|
+
['<strong>Sport / 2 (细)</strong>', '270 - 320m', '轻便外套', '3.25 - 3.75mm'],
|
|
155
|
+
['<strong>DK / 3 (中细)</strong>', '200 - 250m', '毛衣,帽子', '3.75 - 4.5mm'],
|
|
156
|
+
['<strong>Worsted / 4 (中粗)</strong>', '180 - 220m', '毯子,大衣', '4.5 - 5.5mm'],
|
|
157
|
+
['<strong>Bulky / 5 (粗)</strong>', '100 - 140m', 'XXL 围巾,厚毯子', '6.0 - 8.0mm'],
|
|
158
|
+
],
|
|
159
|
+
},
|
|
160
|
+
{
|
|
161
|
+
type: 'tip',
|
|
162
|
+
title: '密度系数(Gauge)',
|
|
163
|
+
html: '<p>请记住,如果你织得非常松,你的针脚会更大,消耗的线量会比织得紧时更多。我们的计算器应用了一个安全裕度,但如果你知道自己的织法极其松散,请考虑在结果的基础上额外增加 5-10% 的线量以防万一。</p>',
|
|
164
|
+
},
|
|
165
|
+
{
|
|
166
|
+
type: 'title',
|
|
167
|
+
text: '增加耗线量的变量',
|
|
168
|
+
level: 3,
|
|
169
|
+
},
|
|
170
|
+
{
|
|
171
|
+
type: 'paragraph',
|
|
172
|
+
html: '并非所有针法消耗的纤维量都相同。在选择设计时,请考虑以下倍数因素:',
|
|
173
|
+
},
|
|
174
|
+
{
|
|
175
|
+
type: 'comparative',
|
|
176
|
+
items: [
|
|
177
|
+
{
|
|
178
|
+
title: '下针 / 平针',
|
|
179
|
+
description: '代表任何服装的基础消耗量和最大用线效率。',
|
|
180
|
+
icon: 'mdi:minus-circle-outline',
|
|
181
|
+
points: ['初学者的理想选择', '织物自然垂坠'],
|
|
182
|
+
},
|
|
183
|
+
{
|
|
184
|
+
title: '麻花 / 纹理',
|
|
185
|
+
description: '纤维的交叉会使织片“缩短”,使消耗量增加约 25%。',
|
|
186
|
+
icon: 'mdi:texture-box',
|
|
187
|
+
points: ['需要更多米数', '织物更紧密、更沉重'],
|
|
188
|
+
pointIcon: 'mdi:alert-circle-outline',
|
|
189
|
+
},
|
|
190
|
+
{
|
|
191
|
+
title: '钩针 (Crochet)',
|
|
192
|
+
description: '钩针编织的结节比棒针编织多消耗约 30% 的线量。',
|
|
193
|
+
icon: 'mdi:hook',
|
|
194
|
+
points: ['线团消耗极快', '三维立体质感'],
|
|
195
|
+
pointIcon: 'mdi:alert-circle-outline',
|
|
196
|
+
},
|
|
197
|
+
{
|
|
198
|
+
title: '罗纹针',
|
|
199
|
+
description: '正反针的结构使每平方厘米积聚了更多羊毛。',
|
|
200
|
+
icon: 'mdi:unfold-more-horizontal',
|
|
201
|
+
points: ['中等消耗 (+15%)', '高弹性恢复能力'],
|
|
202
|
+
},
|
|
203
|
+
],
|
|
204
|
+
columns: 2,
|
|
205
|
+
},
|
|
206
|
+
{
|
|
207
|
+
type: 'title',
|
|
208
|
+
text: '精明编织者名词解释',
|
|
209
|
+
level: 3,
|
|
210
|
+
},
|
|
211
|
+
{
|
|
212
|
+
type: 'glossary',
|
|
213
|
+
items: [
|
|
214
|
+
{
|
|
215
|
+
term: 'Dye Lot (缸号)',
|
|
216
|
+
definition:
|
|
217
|
+
'标识染色锅次的编号。不同缸号的线在团装状态下可能看不出差别,但在成品中色差会非常明显。',
|
|
218
|
+
},
|
|
219
|
+
{
|
|
220
|
+
term: 'Stash (囤线)',
|
|
221
|
+
definition:
|
|
222
|
+
'编织者个人的线材收藏。了解没有标签的余线克重对于计算小型项目至关重要。',
|
|
223
|
+
},
|
|
224
|
+
{
|
|
225
|
+
term: 'Put-up',
|
|
226
|
+
definition:
|
|
227
|
+
'线材的呈现形式(绞、团或锥),这决定了使用前是否需要重新绕团。',
|
|
228
|
+
},
|
|
229
|
+
{
|
|
230
|
+
term: 'Yarn Chicken (最后几米挑战)',
|
|
231
|
+
definition:
|
|
232
|
+
'挑战在似乎不足的线量下完成一段工艺。',
|
|
233
|
+
},
|
|
234
|
+
],
|
|
235
|
+
},
|
|
236
|
+
{
|
|
237
|
+
type: 'title',
|
|
238
|
+
text: '如何使用此计算器的结果',
|
|
239
|
+
level: 3,
|
|
240
|
+
},
|
|
241
|
+
{
|
|
242
|
+
type: 'paragraph',
|
|
243
|
+
html: '一旦工具返回了所需的米数和团数,我们建议执行以下手动核对步骤:',
|
|
244
|
+
},
|
|
245
|
+
{
|
|
246
|
+
type: 'list',
|
|
247
|
+
items: [
|
|
248
|
+
'<strong>核对实际线团长度:</strong> 并非所有 100 克的线团都是 200 米。请根据包装标签上的实际数据调整最终计算。',
|
|
249
|
+
'<strong>累加细节用线量:</strong> 如果你要为围巾添加流苏或为帽子添加绒球,请在总量上额外增加 50-80 米。',
|
|
250
|
+
'<strong>密度试样:</strong> 编织一个 10x10 厘米的正方形。使用精密电子秤称重。如果重 20 克,你的毯子是 100x100(即 100 个正方形),那么你一共需要 2 公斤线。',
|
|
251
|
+
'<strong>务必购买同批次缸号:</strong> 如果计算结果是 7 团,如果批次不同,请购买 8 团以留出余地或用于接缝等隐蔽部位。',
|
|
252
|
+
],
|
|
253
|
+
},
|
|
254
|
+
{
|
|
255
|
+
type: 'summary',
|
|
256
|
+
title: '购线策略建议',
|
|
257
|
+
items: [
|
|
258
|
+
'优先考虑米数而非克重,以确保长度充足。',
|
|
259
|
+
'钩针消耗的线量远高于棒针;请准确调整类型选择。',
|
|
260
|
+
'紧密纹理(麻花等)需要在线材预算上增加 25%。',
|
|
261
|
+
'务必保留每缸毛线的一张标签,以备需要补色或查号时使用。',
|
|
262
|
+
'预留 10% 的安全边际用于编织强制要求的密度试样。',
|
|
263
|
+
],
|
|
264
|
+
},
|
|
265
|
+
],
|
|
266
|
+
ui: {
|
|
267
|
+
sectionProject: '1. 项目类型',
|
|
268
|
+
sectionSize: '2. 尺寸 / 尺码',
|
|
269
|
+
sectionWeight: '3. 线材粗细',
|
|
270
|
+
sectionPattern: '4. 图解特征',
|
|
271
|
+
sectionBall: '5. 线团数据',
|
|
272
|
+
labelCables: '是否有麻花或紧密纹理?',
|
|
273
|
+
labelGrams: '克 / 团',
|
|
274
|
+
labelMeters: '米 / 团',
|
|
275
|
+
weightFine: '细线',
|
|
276
|
+
weightMedium: '中量',
|
|
277
|
+
weightThick: '粗线',
|
|
278
|
+
weightXXL: '超粗',
|
|
279
|
+
projectSweater: '毛衣',
|
|
280
|
+
projectScarf: '围巾',
|
|
281
|
+
projectHat: '帽子',
|
|
282
|
+
projectSocks: '袜子',
|
|
283
|
+
projectBlanket: '毯子',
|
|
284
|
+
projectCardigan: '开衫',
|
|
285
|
+
statPrefix: '预计总耗线量',
|
|
286
|
+
statSuffix: 'M',
|
|
287
|
+
statNote: '包含 10% 保守预留量的最终计算长度。',
|
|
288
|
+
ballsFormatSingular: '购买 {n} 团',
|
|
289
|
+
ballsFormatPlural: '购买 {n} 团',
|
|
290
|
+
ballsDetailFormat: '每团 {w}g / {m}m',
|
|
291
|
+
alertTitle: '战略安全提示:',
|
|
292
|
+
alertText:
|
|
293
|
+
'此计算已确保你不会断线。购买线团时,请务必核对缸号(dye lot)是否一致,以避免织物出现色偏。',
|
|
294
|
+
schemeSleeveLabel: '袖子',
|
|
295
|
+
schemeSleeveEach: '每只',
|
|
296
|
+
schemeBodyLabel: '正身',
|
|
297
|
+
schemeTotalHat: '帽子合计',
|
|
298
|
+
schemeTotalFlat: '部位合计',
|
|
299
|
+
schemeTotalSocks: '每双合计',
|
|
300
|
+
sizeLabels: {
|
|
301
|
+
sweater: ['S', 'M', 'L', 'XL'],
|
|
302
|
+
cardigan: ['S', 'M', 'L', 'XL'],
|
|
303
|
+
hat: ['童款', 'S', 'M', 'L'],
|
|
304
|
+
scarf: ['迷你', '中等', '大款', '加大'],
|
|
305
|
+
socks: ['童款', '成人 S', '成人 M', '成人 L'],
|
|
306
|
+
blanket: ['婴儿', '沙发', '单人床', '双人床'],
|
|
307
|
+
},
|
|
308
|
+
},
|
|
309
|
+
};
|
|
@@ -7,10 +7,6 @@ import type { YarnCalculatorUI } from './ui';
|
|
|
7
7
|
|
|
8
8
|
export type YarnCalculatorLocaleContent = ToolLocaleContent<YarnCalculatorUI>;
|
|
9
9
|
|
|
10
|
-
import { content as es } from './i18n/es';
|
|
11
|
-
import { content as en } from './i18n/en';
|
|
12
|
-
import { content as fr } from './i18n/fr';
|
|
13
|
-
|
|
14
10
|
export const yarnCalculator: TextilesToolEntry<YarnCalculatorUI> = {
|
|
15
11
|
id: 'yarn-calculator',
|
|
16
12
|
icons: {
|
|
@@ -18,9 +14,21 @@ export const yarnCalculator: TextilesToolEntry<YarnCalculatorUI> = {
|
|
|
18
14
|
fg: 'mdi:counter',
|
|
19
15
|
},
|
|
20
16
|
i18n: {
|
|
21
|
-
es:
|
|
22
|
-
en:
|
|
23
|
-
fr:
|
|
17
|
+
es: () => import('./i18n/es').then((m) => m.content),
|
|
18
|
+
en: () => import('./i18n/en').then((m) => m.content),
|
|
19
|
+
fr: () => import('./i18n/fr').then((m) => m.content),
|
|
20
|
+
de: () => import('./i18n/de').then((m) => m.content),
|
|
21
|
+
id: () => import('./i18n/id').then((m) => m.content),
|
|
22
|
+
it: () => import('./i18n/it').then((m) => m.content),
|
|
23
|
+
ja: () => import('./i18n/ja').then((m) => m.content),
|
|
24
|
+
ko: () => import('./i18n/ko').then((m) => m.content),
|
|
25
|
+
nl: () => import('./i18n/nl').then((m) => m.content),
|
|
26
|
+
pl: () => import('./i18n/pl').then((m) => m.content),
|
|
27
|
+
pt: () => import('./i18n/pt').then((m) => m.content),
|
|
28
|
+
ru: () => import('./i18n/ru').then((m) => m.content),
|
|
29
|
+
sv: () => import('./i18n/sv').then((m) => m.content),
|
|
30
|
+
tr: () => import('./i18n/tr').then((m) => m.content),
|
|
31
|
+
zh: () => import('./i18n/zh').then((m) => m.content),
|
|
24
32
|
},
|
|
25
33
|
};
|
|
26
34
|
|
package/src/types.ts
CHANGED
|
@@ -5,7 +5,7 @@ export type { SEOSection };
|
|
|
5
5
|
|
|
6
6
|
export type KnownLocale =
|
|
7
7
|
| 'ar' | 'da' | 'de' | 'en' | 'es' | 'fi'
|
|
8
|
-
| 'fr' | 'it' | 'ja' | 'ko' | 'nb' | 'nl'
|
|
8
|
+
| 'fr' | 'id' | 'it' | 'ja' | 'ko' | 'nb' | 'nl'
|
|
9
9
|
| 'pl' | 'pt' | 'ru' | 'sv' | 'tr' | 'zh';
|
|
10
10
|
|
|
11
11
|
export interface FAQItem {
|