@jjlmoya/utils-nature 1.2.0 → 1.4.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 +2 -1
- package/src/index.ts +4 -4
- package/src/tests/i18n_coverage.test.ts +36 -0
- package/src/tests/slug_uniqueness.test.ts +81 -0
- package/src/tests/tool_validation.test.ts +1 -2
- package/src/tool/cricketThermometer/i18n/de.ts +181 -0
- package/src/tool/cricketThermometer/i18n/id.ts +181 -0
- package/src/tool/cricketThermometer/i18n/it.ts +181 -0
- package/src/tool/cricketThermometer/i18n/ja.ts +181 -0
- package/src/tool/cricketThermometer/i18n/ko.ts +181 -0
- package/src/tool/cricketThermometer/i18n/nl.ts +181 -0
- package/src/tool/cricketThermometer/i18n/pl.ts +181 -0
- package/src/tool/cricketThermometer/i18n/pt.ts +181 -0
- package/src/tool/cricketThermometer/i18n/ru.ts +181 -0
- package/src/tool/cricketThermometer/i18n/sv.ts +181 -0
- package/src/tool/cricketThermometer/i18n/tr.ts +181 -0
- package/src/tool/cricketThermometer/i18n/zh.ts +181 -0
- package/src/tool/cricketThermometer/index.ts +15 -7
- package/src/tool/digitalCarbon/i18n/de.ts +235 -0
- package/src/tool/digitalCarbon/i18n/id.ts +235 -0
- package/src/tool/digitalCarbon/i18n/it.ts +235 -0
- package/src/tool/digitalCarbon/i18n/ja.ts +235 -0
- package/src/tool/digitalCarbon/i18n/ko.ts +235 -0
- package/src/tool/digitalCarbon/i18n/nl.ts +235 -0
- package/src/tool/digitalCarbon/i18n/pl.ts +235 -0
- package/src/tool/digitalCarbon/i18n/pt.ts +235 -0
- package/src/tool/digitalCarbon/i18n/ru.ts +235 -0
- package/src/tool/digitalCarbon/i18n/sv.ts +235 -0
- package/src/tool/digitalCarbon/i18n/tr.ts +235 -0
- package/src/tool/digitalCarbon/i18n/zh.ts +235 -0
- package/src/tool/digitalCarbon/index.ts +15 -7
- package/src/tool/digitalCarbon/seo.astro +4 -3
- package/src/tool/rainHarvester/i18n/de.ts +185 -0
- package/src/tool/rainHarvester/i18n/id.ts +185 -0
- package/src/tool/rainHarvester/i18n/it.ts +185 -0
- package/src/tool/rainHarvester/i18n/ja.ts +185 -0
- package/src/tool/rainHarvester/i18n/ko.ts +185 -0
- package/src/tool/rainHarvester/i18n/nl.ts +185 -0
- package/src/tool/rainHarvester/i18n/pl.ts +185 -0
- package/src/tool/rainHarvester/i18n/pt.ts +185 -0
- package/src/tool/rainHarvester/i18n/ru.ts +185 -0
- package/src/tool/rainHarvester/i18n/sv.ts +185 -0
- package/src/tool/rainHarvester/i18n/tr.ts +185 -0
- package/src/tool/rainHarvester/i18n/zh.ts +185 -0
- package/src/tool/rainHarvester/index.ts +15 -7
- package/src/tool/rainHarvester/seo.astro +4 -3
- package/src/tool/seedCalculator/i18n/de.ts +213 -0
- package/src/tool/seedCalculator/i18n/id.ts +213 -0
- package/src/tool/seedCalculator/i18n/it.ts +213 -0
- package/src/tool/seedCalculator/i18n/ja.ts +213 -0
- package/src/tool/seedCalculator/i18n/ko.ts +213 -0
- package/src/tool/seedCalculator/i18n/nl.ts +213 -0
- package/src/tool/seedCalculator/i18n/pl.ts +213 -0
- package/src/tool/seedCalculator/i18n/pt.ts +213 -0
- package/src/tool/seedCalculator/i18n/ru.ts +213 -0
- package/src/tool/seedCalculator/i18n/sv.ts +213 -0
- package/src/tool/seedCalculator/i18n/tr.ts +213 -0
- package/src/tool/seedCalculator/i18n/zh.ts +213 -0
- package/src/tool/seedCalculator/index.ts +15 -7
|
@@ -0,0 +1,213 @@
|
|
|
1
|
+
import type { WithContext, FAQPage, HowToThing, SoftwareApplication } from 'schema-dts';
|
|
2
|
+
import type { ToolLocaleContent } from '../../../types';
|
|
3
|
+
import type { SeedCalculatorUI } from '../ui';
|
|
4
|
+
|
|
5
|
+
const slug = 'seed-calculator';
|
|
6
|
+
const title = '株距与播种机标定计算器';
|
|
7
|
+
const description =
|
|
8
|
+
'农民精密工具。根据目标密度和行距计算理想的种间距,并分析不同作业速度下的播种机压力。';
|
|
9
|
+
|
|
10
|
+
const faqData = [
|
|
11
|
+
{
|
|
12
|
+
question: '株距是如何计算的?',
|
|
13
|
+
answer:
|
|
14
|
+
'将一公顷(10,000 平方米)除以行距,得到总播种线长度。然后将目标密度除以该长度,以确定每延米需要播撒多少种子。',
|
|
15
|
+
},
|
|
16
|
+
{
|
|
17
|
+
question: '每公顷的目标密度是多少?',
|
|
18
|
+
answer:
|
|
19
|
+
'即每万平方米的理想植株数量。它取决于作物品种、土壤肥力和水分供应。例如,灌溉玉米通常需要每公顷 85,000 到 95,000 粒种子。',
|
|
20
|
+
},
|
|
21
|
+
{
|
|
22
|
+
question: '发芽率如何影响计算?',
|
|
23
|
+
answer:
|
|
24
|
+
'并不是所有播下的种子都能长成植株。如果某批种子的发芽率为 95%,则必须将播种量增加 5%,才能达到预期的最终植株数量。',
|
|
25
|
+
},
|
|
26
|
+
{
|
|
27
|
+
question: '为什么播种机标定如此重要?',
|
|
28
|
+
answer:
|
|
29
|
+
'播种过密会导致植株竞争和籽粒变小;播种过稀则浪费空间和产量潜力。精准度是盈利率的关键。',
|
|
30
|
+
},
|
|
31
|
+
];
|
|
32
|
+
|
|
33
|
+
const howToData = [
|
|
34
|
+
{
|
|
35
|
+
name: '输入目标密度',
|
|
36
|
+
text: '根据品种技术建议,确定每公顷的目标种子数或植株数。',
|
|
37
|
+
},
|
|
38
|
+
{
|
|
39
|
+
name: '设置行距',
|
|
40
|
+
text: '测量播种机盘片或开沟器之间的距离(通常为 50, 70 或 75 厘米)。',
|
|
41
|
+
},
|
|
42
|
+
{
|
|
43
|
+
name: '调整发芽率',
|
|
44
|
+
text: '输入预期的出苗率,以补偿大田环境下的自然损耗。',
|
|
45
|
+
},
|
|
46
|
+
{
|
|
47
|
+
name: '获取机械参数',
|
|
48
|
+
text: '根据计算出的每米粒数或株距值,调整播种机的链轮或监控设备。',
|
|
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<HowToThing> = {
|
|
63
|
+
'@context': 'https://schema.org',
|
|
64
|
+
'@type': 'HowTo',
|
|
65
|
+
name: title,
|
|
66
|
+
description,
|
|
67
|
+
step: howToData.map((step, i) => ({
|
|
68
|
+
'@type': 'HowToStep',
|
|
69
|
+
position: i + 1,
|
|
70
|
+
name: step.name,
|
|
71
|
+
text: step.text,
|
|
72
|
+
})),
|
|
73
|
+
};
|
|
74
|
+
|
|
75
|
+
const appSchema: WithContext<SoftwareApplication> = {
|
|
76
|
+
'@context': 'https://schema.org',
|
|
77
|
+
'@type': 'SoftwareApplication',
|
|
78
|
+
name: title,
|
|
79
|
+
description,
|
|
80
|
+
applicationCategory: 'UtilityApplication',
|
|
81
|
+
operatingSystem: 'All',
|
|
82
|
+
offers: { '@type': 'Offer', price: '0', priceCurrency: 'EUR' },
|
|
83
|
+
inLanguage: 'zh',
|
|
84
|
+
};
|
|
85
|
+
|
|
86
|
+
export const content: ToolLocaleContent<SeedCalculatorUI> = {
|
|
87
|
+
slug,
|
|
88
|
+
title,
|
|
89
|
+
description,
|
|
90
|
+
faqTitle: '常见问题',
|
|
91
|
+
faq: faqData,
|
|
92
|
+
bibliographyTitle: '科学参考文献',
|
|
93
|
+
bibliography: [
|
|
94
|
+
{
|
|
95
|
+
name: 'KWS 西班牙',
|
|
96
|
+
url: 'https://www.kws.com/es/es/',
|
|
97
|
+
},
|
|
98
|
+
{
|
|
99
|
+
name: '西班牙农业部 (MAPA)',
|
|
100
|
+
url: 'https://www.mapa.gob.es/es/agricultura/temas/producciones-agricolas/cultivos-herbaceos/',
|
|
101
|
+
},
|
|
102
|
+
{
|
|
103
|
+
name: 'Yara 西班牙',
|
|
104
|
+
url: 'https://www.yara.es/nutricion-vegetal/maiz/',
|
|
105
|
+
},
|
|
106
|
+
],
|
|
107
|
+
howTo: howToData,
|
|
108
|
+
schemas: [faqSchema, howToSchema, appSchema],
|
|
109
|
+
seo: [
|
|
110
|
+
{
|
|
111
|
+
type: 'title',
|
|
112
|
+
text: '精密播种技术指南',
|
|
113
|
+
level: 2,
|
|
114
|
+
},
|
|
115
|
+
{
|
|
116
|
+
type: 'paragraph',
|
|
117
|
+
html: '调整播种机传动系统需要准确知道每延米种沟应落入多少种子。机器手册通常提供近似表,但<strong>驱动轮打滑</strong>或种子大小等因素可能会影响实际结果。此工具为您提供完美的理论值:<strong>目标种间距</strong>。',
|
|
118
|
+
},
|
|
119
|
+
{
|
|
120
|
+
type: 'tip',
|
|
121
|
+
title: '数学公式',
|
|
122
|
+
html: '<p>致农学家和感兴趣的读者,以下是计算基础:</p><pre>株距 (cm) = 10,000,000 / (密度 × 行距)</pre><ul><li><strong>10,000,000:</strong> 公顷到平方厘米的转换系数。</li><li><strong>密度:</strong> 每公顷种子数。</li><li><strong>行距:</strong> 行间距离(单位:厘米)。</li></ul>',
|
|
123
|
+
},
|
|
124
|
+
{
|
|
125
|
+
type: 'title',
|
|
126
|
+
text: '为什么要使用此计算器?',
|
|
127
|
+
level: 2,
|
|
128
|
+
},
|
|
129
|
+
{
|
|
130
|
+
type: 'paragraph',
|
|
131
|
+
html: '如果您在田间测量,发现种子间距比目标间距更近或更远,说明您的机器<strong>校准不当</strong>。此工具还会分析不同作业速度下排种盘的给料频率 (Hz),并就会导致漏播风险的速度发出警告。',
|
|
132
|
+
},
|
|
133
|
+
{
|
|
134
|
+
type: 'title',
|
|
135
|
+
text: '优质播种的关键',
|
|
136
|
+
level: 2,
|
|
137
|
+
},
|
|
138
|
+
{
|
|
139
|
+
type: 'list',
|
|
140
|
+
items: [
|
|
141
|
+
'<strong>单粒均匀度:</strong> 避免重播和漏播。99% 的均匀度能使植株间的竞争达到平衡。',
|
|
142
|
+
'<strong>株距整齐:</strong> 变异系数应小于 0.3。大于 5 厘米的偏差会降低产量潜力。',
|
|
143
|
+
'<strong>深度:</strong> 对出苗整齐至关重要。根据土壤水分调整压土轮压力。',
|
|
144
|
+
],
|
|
145
|
+
},
|
|
146
|
+
{
|
|
147
|
+
type: 'title',
|
|
148
|
+
text: '田间验证方法',
|
|
149
|
+
level: 2,
|
|
150
|
+
},
|
|
151
|
+
{
|
|
152
|
+
type: 'paragraph',
|
|
153
|
+
html: '<strong>千分之一公顷法:</strong> 测量种沟内代表千分之一公顷的特定距离。清点种子数并乘以 1,000。对于 70 厘米行距,距离为 14.28 米;对于 52.5 厘米行距,为 19.05 米。',
|
|
154
|
+
},
|
|
155
|
+
{
|
|
156
|
+
type: 'paragraph',
|
|
157
|
+
html: '<strong>驱动轮法:</strong> 提起机器,标记驱动轮并转动相当于百分之一公顷的圈数。用桶收集种子并称重或计数,以验证标定。',
|
|
158
|
+
},
|
|
159
|
+
{
|
|
160
|
+
type: 'title',
|
|
161
|
+
text: '作物参考表',
|
|
162
|
+
level: 2,
|
|
163
|
+
},
|
|
164
|
+
{
|
|
165
|
+
type: 'list',
|
|
166
|
+
items: [
|
|
167
|
+
'<strong>玉米:</strong> 每公顷 60,000 至 95,000 粒。现代杂交品种对密度反应显著。',
|
|
168
|
+
'<strong>大豆:</strong> 每公顷 250,000 至 450,000 粒。在低密度下具有很强的补偿能力。',
|
|
169
|
+
'<strong>向日葵:</strong> 每公顷 40,000 至 55,000 粒。对密度非常敏感,过密会减小花盘直径。',
|
|
170
|
+
'<strong>油菜:</strong> 每公顷 300,000 至 600,000 粒。种子极小,需要良好的种土接触。',
|
|
171
|
+
],
|
|
172
|
+
},
|
|
173
|
+
],
|
|
174
|
+
ui: {
|
|
175
|
+
headCrop: '选择您的作物',
|
|
176
|
+
headParams: '参数设置',
|
|
177
|
+
headAnalysis: '实时分析',
|
|
178
|
+
labelPopulation: '目标密度',
|
|
179
|
+
unitSeedsHa: '粒/公顷',
|
|
180
|
+
labelRowWidth: '行距',
|
|
181
|
+
unitCm: '厘米',
|
|
182
|
+
labelWorkSpeed: '作业速度',
|
|
183
|
+
unitKmh: 'km/h',
|
|
184
|
+
labelCalibration: '排种盘校准',
|
|
185
|
+
labelSpacingDesc: '种沟内各粒种子间的准确距离。',
|
|
186
|
+
labelMachineStress: '播种机压力',
|
|
187
|
+
labelSeedsM: '种子 / 米',
|
|
188
|
+
labelPlantsM2: '植株 / m²',
|
|
189
|
+
labelSpeedMs: '米 / 秒',
|
|
190
|
+
labelHaBag: '公顷 / 袋 (8万粒装)',
|
|
191
|
+
statusStandby: '待机中',
|
|
192
|
+
statusVolumetric: '体积流量模式',
|
|
193
|
+
statusOptimal: '最佳播种状态',
|
|
194
|
+
statusHighSpeed: '高速作业中',
|
|
195
|
+
statusPlateLimiter: '排种盘上限',
|
|
196
|
+
cropCorn: '籽粒玉米',
|
|
197
|
+
cropSilage: '青贮玉米',
|
|
198
|
+
cropSunflower: '向日葵',
|
|
199
|
+
cropSorghum: '高粱',
|
|
200
|
+
cropSoy: '大豆',
|
|
201
|
+
cropBeet: '甜菜',
|
|
202
|
+
cropRapeseed: '油菜',
|
|
203
|
+
noteCorn: '需要高精准度',
|
|
204
|
+
noteSilage: '中高密度作业',
|
|
205
|
+
noteSunflower: '对速度敏感',
|
|
206
|
+
noteSorghum: '连续流或转盘排种',
|
|
207
|
+
noteSoy: '高密度植株',
|
|
208
|
+
noteBeet: '关键浅播作业',
|
|
209
|
+
noteRapeseed: '种子极其细小',
|
|
210
|
+
faqTitle: '常见问题',
|
|
211
|
+
bibliographyTitle: '科学参考文献',
|
|
212
|
+
},
|
|
213
|
+
};
|
|
@@ -7,10 +7,6 @@ import type { SeedCalculatorUI } from './ui';
|
|
|
7
7
|
|
|
8
8
|
export type SeedCalculatorLocaleContent = ToolLocaleContent<SeedCalculatorUI>;
|
|
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 seedCalculator: NatureToolEntry<SeedCalculatorUI> = {
|
|
15
11
|
id: 'seed-calculator',
|
|
16
12
|
icons: {
|
|
@@ -18,9 +14,21 @@ export const seedCalculator: NatureToolEntry<SeedCalculatorUI> = {
|
|
|
18
14
|
fg: 'mdi:sprout',
|
|
19
15
|
},
|
|
20
16
|
i18n: {
|
|
21
|
-
|
|
22
|
-
en: async () => en,
|
|
23
|
-
|
|
17
|
+
de: async () => (await import('./i18n/de')).content,
|
|
18
|
+
en: async () => (await import('./i18n/en')).content,
|
|
19
|
+
es: async () => (await import('./i18n/es')).content,
|
|
20
|
+
fr: async () => (await import('./i18n/fr')).content,
|
|
21
|
+
id: async () => (await import('./i18n/id')).content,
|
|
22
|
+
it: async () => (await import('./i18n/it')).content,
|
|
23
|
+
ja: async () => (await import('./i18n/ja')).content,
|
|
24
|
+
ko: async () => (await import('./i18n/ko')).content,
|
|
25
|
+
nl: async () => (await import('./i18n/nl')).content,
|
|
26
|
+
pl: async () => (await import('./i18n/pl')).content,
|
|
27
|
+
pt: async () => (await import('./i18n/pt')).content,
|
|
28
|
+
ru: async () => (await import('./i18n/ru')).content,
|
|
29
|
+
sv: async () => (await import('./i18n/sv')).content,
|
|
30
|
+
tr: async () => (await import('./i18n/tr')).content,
|
|
31
|
+
zh: async () => (await import('./i18n/zh')).content,
|
|
24
32
|
},
|
|
25
33
|
};
|
|
26
34
|
|