@jjlmoya/utils-nature 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.
- package/package.json +4 -2
- package/src/category/i18n/fr.ts +6 -6
- package/src/category/i18n/ru.ts +5 -5
- package/src/layouts/PreviewLayout.astro +1 -1
- package/src/tests/diacritics_density.test.ts +118 -0
- package/src/tests/inverted_punctuation.test.ts +84 -0
- package/src/tests/no_en_dash.test.ts +71 -0
- package/src/tests/pagespeed_best_practices.test.ts +198 -0
- package/src/tests/script_density.test.ts +94 -0
- package/src/tool/cricketThermometer/i18n/de.ts +4 -4
- package/src/tool/cricketThermometer/i18n/en.ts +1 -1
- package/src/tool/cricketThermometer/i18n/es.ts +1 -1
- package/src/tool/cricketThermometer/i18n/fr.ts +7 -7
- package/src/tool/cricketThermometer/i18n/id.ts +1 -1
- package/src/tool/cricketThermometer/i18n/it.ts +1 -1
- package/src/tool/cricketThermometer/i18n/ja.ts +1 -1
- package/src/tool/cricketThermometer/i18n/ko.ts +1 -1
- package/src/tool/cricketThermometer/i18n/nl.ts +1 -1
- package/src/tool/cricketThermometer/i18n/pl.ts +4 -4
- package/src/tool/cricketThermometer/i18n/pt.ts +1 -1
- package/src/tool/cricketThermometer/i18n/ru.ts +6 -6
- package/src/tool/cricketThermometer/i18n/sv.ts +1 -1
- package/src/tool/cricketThermometer/i18n/tr.ts +1 -1
- package/src/tool/cricketThermometer/i18n/zh.ts +6 -6
- package/src/tool/digitalCarbon/digital-carbon-footprint-calculator.css +57 -1
- package/src/tool/digitalCarbon/i18n/de.ts +2 -2
- package/src/tool/digitalCarbon/i18n/fr.ts +4 -4
- package/src/tool/digitalCarbon/i18n/ru.ts +1 -1
- package/src/tool/rainHarvester/i18n/de.ts +4 -4
- package/src/tool/rainHarvester/i18n/en.ts +1 -1
- package/src/tool/rainHarvester/i18n/es.ts +1 -1
- package/src/tool/rainHarvester/i18n/fr.ts +2 -2
- package/src/tool/rainHarvester/i18n/id.ts +1 -1
- package/src/tool/rainHarvester/i18n/it.ts +1 -1
- package/src/tool/rainHarvester/i18n/ja.ts +1 -1
- package/src/tool/rainHarvester/i18n/ko.ts +1 -1
- package/src/tool/rainHarvester/i18n/nl.ts +1 -1
- package/src/tool/rainHarvester/i18n/pl.ts +4 -4
- package/src/tool/rainHarvester/i18n/pt.ts +1 -1
- package/src/tool/rainHarvester/i18n/ru.ts +7 -7
- package/src/tool/rainHarvester/i18n/sv.ts +1 -1
- package/src/tool/rainHarvester/i18n/tr.ts +1 -1
- package/src/tool/rainHarvester/i18n/zh.ts +4 -4
- package/src/tool/seedCalculator/component.astro +2 -2
- package/src/tool/seedCalculator/i18n/fr.ts +1 -1
- package/src/tool/seedCalculator/i18n/pl.ts +1 -1
- package/src/tool/seedCalculator/i18n/ru.ts +4 -4
|
@@ -126,7 +126,7 @@ export const content: RainHarvesterLocaleContent = {
|
|
|
126
126
|
},
|
|
127
127
|
{
|
|
128
128
|
type: 'paragraph',
|
|
129
|
-
html: '<code style="display:block;padding:1rem;background:var(
|
|
129
|
+
html: '<code style="display:block;padding:1rem;background:var(-bg-alt);border-radius:0.5rem;margin:1rem 0;font-family:monospace;">容量 = 面積 × 降水量 × 流出係数 × フィルター効率</code>',
|
|
130
130
|
},
|
|
131
131
|
{
|
|
132
132
|
type: 'list',
|
|
@@ -126,7 +126,7 @@ export const content: RainHarvesterLocaleContent = {
|
|
|
126
126
|
},
|
|
127
127
|
{
|
|
128
128
|
type: 'paragraph',
|
|
129
|
-
html: '<code style="display:block;padding:1rem;background:var(
|
|
129
|
+
html: '<code style="display:block;padding:1rem;background:var(-bg-alt);border-radius:0.5rem;margin:1rem 0;font-family:monospace;">용량 = 면적 × 강수량 × 유출 계수 × 필터 효율</code>',
|
|
130
130
|
},
|
|
131
131
|
{
|
|
132
132
|
type: 'list',
|
|
@@ -126,7 +126,7 @@ export const content: RainHarvesterLocaleContent = {
|
|
|
126
126
|
},
|
|
127
127
|
{
|
|
128
128
|
type: 'paragraph',
|
|
129
|
-
html: '<code style="display:block;padding:1rem;background:var(
|
|
129
|
+
html: '<code style="display:block;padding:1rem;background:var(-bg-alt);border-radius:0.5rem;margin:1rem 0;font-family:monospace;">Volume = Oppervlak × Neerslag × Afvloeiingscoëfficiënt × Filterefficiëntie</code>',
|
|
130
130
|
},
|
|
131
131
|
{
|
|
132
132
|
type: 'list',
|
|
@@ -9,7 +9,7 @@ const description = 'Oblicz, ile wody deszczowej możesz zebrać ze swojego dach
|
|
|
9
9
|
const faqData = [
|
|
10
10
|
{
|
|
11
11
|
question: 'Ile wody mogę faktycznie zebrać ze swojego dachu?',
|
|
12
|
-
answer: 'Ogólna zasada mówi, że z każdego metra kwadratowego dachu i na każdy milimetr deszczu można zebrać około 1 litra wody. Istnieją jednak straty wynikające z parowania i filtracji, korygowane przez
|
|
12
|
+
answer: 'Ogólna zasada mówi, że z każdego metra kwadratowego dachu i na każdy milimetr deszczu można zebrać około 1 litra wody. Istnieją jednak straty wynikające z parowania i filtracji, korygowane przez "współczynnik spływu".',
|
|
13
13
|
},
|
|
14
14
|
{
|
|
15
15
|
question: 'Co to jest współczynnik spływu?',
|
|
@@ -91,7 +91,7 @@ export const content: RainHarvesterLocaleContent = {
|
|
|
91
91
|
unitM2: 'm²',
|
|
92
92
|
unitMm: 'mm',
|
|
93
93
|
unitLiters: 'Litry',
|
|
94
|
-
helpRainfall: 'Nie wiesz? Wyszukaj w Google
|
|
94
|
+
helpRainfall: 'Nie wiesz? Wyszukaj w Google "średnie roczne opady [Twoje miasto]".',
|
|
95
95
|
efficiencyTitle: 'Współczynnik Wydajności',
|
|
96
96
|
efficiencyNote: 'Uwzględniono 10% strat na filtry i parowanie.',
|
|
97
97
|
resultTitle: 'Roczny Potencjał Uzysku',
|
|
@@ -113,7 +113,7 @@ export const content: RainHarvesterLocaleContent = {
|
|
|
113
113
|
},
|
|
114
114
|
{
|
|
115
115
|
type: 'paragraph',
|
|
116
|
-
html: 'Większość właścicieli domów nie zdaje sobie sprawy z potencjału własnego dachu. Standardowy dach może zebrać tysiące litrów darmowej wody każdego roku. To narzędzie pozwala oszacować ten potencjał, obliczyć dokładnie, ile wody możesz
|
|
116
|
+
html: 'Większość właścicieli domów nie zdaje sobie sprawy z potencjału własnego dachu. Standardowy dach może zebrać tysiące litrów darmowej wody każdego roku. To narzędzie pozwala oszacować ten potencjał, obliczyć dokładnie, ile wody możesz "zebrać" i dobrać idealny zbiornik do jej przechowywania.',
|
|
117
117
|
},
|
|
118
118
|
{
|
|
119
119
|
type: 'title',
|
|
@@ -126,7 +126,7 @@ export const content: RainHarvesterLocaleContent = {
|
|
|
126
126
|
},
|
|
127
127
|
{
|
|
128
128
|
type: 'paragraph',
|
|
129
|
-
html: '<code style="display:block;padding:1rem;background:var(
|
|
129
|
+
html: '<code style="display:block;padding:1rem;background:var(-bg-alt);border-radius:0.5rem;margin:1rem 0;font-family:monospace;">Objętość = Powierzchnia × Opady × Współczynnik Spływu × Wydajność Filtrów</code>',
|
|
130
130
|
},
|
|
131
131
|
{
|
|
132
132
|
type: 'list',
|
|
@@ -126,7 +126,7 @@ export const content: RainHarvesterLocaleContent = {
|
|
|
126
126
|
},
|
|
127
127
|
{
|
|
128
128
|
type: 'paragraph',
|
|
129
|
-
html: '<code style="display:block;padding:1rem;background:var(
|
|
129
|
+
html: '<code style="display:block;padding:1rem;background:var(-bg-alt);border-radius:0.5rem;margin:1rem 0;font-family:monospace;">Volume = Área × Pluviosidade × Coeficiente de Escoamento × Eficiência do Filtro</code>',
|
|
130
130
|
},
|
|
131
131
|
{
|
|
132
132
|
type: 'list',
|
|
@@ -9,11 +9,11 @@ const description = 'Рассчитайте, сколько дождевой в
|
|
|
9
9
|
const faqData = [
|
|
10
10
|
{
|
|
11
11
|
question: 'Сколько воды я на самом деле могу собрать со своей крыши?',
|
|
12
|
-
answer: 'Общее правило гласит, что на каждый квадратный метр крыши и каждый миллиметр дождя можно собрать примерно 1 литр воды. Однако существуют потери на испарение и фильтрацию, корректируемые
|
|
12
|
+
answer: 'Общее правило гласит, что на каждый квадратный метр крыши и каждый миллиметр дождя можно собрать примерно 1 литр воды. Однако существуют потери на испарение и фильтрацию, корректируемые "коэффициентом стока".',
|
|
13
13
|
},
|
|
14
14
|
{
|
|
15
15
|
question: 'Что такое коэффициент стока?',
|
|
16
|
-
answer: 'Это процент, указывающий, сколько воды теряется в зависимости от материала крыши. Металлическая или черепичная крыша очень эффективна (0,85
|
|
16
|
+
answer: 'Это процент, указывающий, сколько воды теряется в зависимости от материала крыши. Металлическая или черепичная крыша очень эффективна (0,85-0,95), в то время как гравийная или земляная крыша гораздо менее эффективна (0,1-0,3).',
|
|
17
17
|
},
|
|
18
18
|
{
|
|
19
19
|
question: 'Как подобрать размер накопительного бака?',
|
|
@@ -40,7 +40,7 @@ const howToData = [
|
|
|
40
40
|
},
|
|
41
41
|
{
|
|
42
42
|
name: 'Рассчитайте необходимый объем',
|
|
43
|
-
text: 'Используйте результат годового сбора в литрах, чтобы выбрать бак, который может хранить не менее 20
|
|
43
|
+
text: 'Используйте результат годового сбора в литрах, чтобы выбрать бак, который может хранить не менее 20-30% от общего урожая для засушливых периодов.',
|
|
44
44
|
},
|
|
45
45
|
];
|
|
46
46
|
|
|
@@ -91,7 +91,7 @@ export const content: RainHarvesterLocaleContent = {
|
|
|
91
91
|
unitM2: 'м²',
|
|
92
92
|
unitMm: 'мм',
|
|
93
93
|
unitLiters: 'Литры',
|
|
94
|
-
helpRainfall: 'Не знаете? Поищите в Google
|
|
94
|
+
helpRainfall: 'Не знаете? Поищите в Google "среднегодовое количество осадков в [вашем городе]".',
|
|
95
95
|
efficiencyTitle: 'Коэффициент эффективности',
|
|
96
96
|
efficiencyNote: 'Применяется потеря 10% на фильтры и испарение.',
|
|
97
97
|
resultTitle: 'Годовой потенциал сбора',
|
|
@@ -113,7 +113,7 @@ export const content: RainHarvesterLocaleContent = {
|
|
|
113
113
|
},
|
|
114
114
|
{
|
|
115
115
|
type: 'paragraph',
|
|
116
|
-
html: 'Большинство домовладельцев не подозревают о потенциале собственных крыш. Стандартная крыша может собирать тысячи литров бесплатной воды каждый год. Этот инструмент количественно определяет этот потенциал, позволяя вам точно рассчитать, сколько воды вы можете
|
|
116
|
+
html: 'Большинство домовладельцев не подозревают о потенциале собственных крыш. Стандартная крыша может собирать тысячи литров бесплатной воды каждый год. Этот инструмент количественно определяет этот потенциал, позволяя вам точно рассчитать, сколько воды вы можете "собрать", и определить идеальный размер бака для хранения.',
|
|
117
117
|
},
|
|
118
118
|
{
|
|
119
119
|
type: 'title',
|
|
@@ -126,7 +126,7 @@ export const content: RainHarvesterLocaleContent = {
|
|
|
126
126
|
},
|
|
127
127
|
{
|
|
128
128
|
type: 'paragraph',
|
|
129
|
-
html: '<code style="display:block;padding:1rem;background:var(
|
|
129
|
+
html: '<code style="display:block;padding:1rem;background:var(-bg-alt);border-radius:0.5rem;margin:1rem 0;font-family:monospace;">Объем = Площадь × Осадки × Коэффициент стока × Эффективность фильтра</code>',
|
|
130
130
|
},
|
|
131
131
|
{
|
|
132
132
|
type: 'list',
|
|
@@ -157,7 +157,7 @@ export const content: RainHarvesterLocaleContent = {
|
|
|
157
157
|
},
|
|
158
158
|
{
|
|
159
159
|
type: 'paragraph',
|
|
160
|
-
html: 'Самая распространенная ошибка
|
|
160
|
+
html: 'Самая распространенная ошибка - покупка бака, исходя только из бюджета. Если он слишком мал, вы будете терять тысячи литров из-за перелива. Если он слишком велик, вы потратите деньги зря. Общее правило - иметь емкость для хранения среднего количества осадков за <strong>3 месяца</strong> в вашем районе, что позволит вам пережить засушливые сезоны.',
|
|
161
161
|
},
|
|
162
162
|
],
|
|
163
163
|
faq: faqData,
|
|
@@ -126,7 +126,7 @@ export const content: RainHarvesterLocaleContent = {
|
|
|
126
126
|
},
|
|
127
127
|
{
|
|
128
128
|
type: 'paragraph',
|
|
129
|
-
html: '<code style="display:block;padding:1rem;background:var(
|
|
129
|
+
html: '<code style="display:block;padding:1rem;background:var(-bg-alt);border-radius:0.5rem;margin:1rem 0;font-family:monospace;">Volym = Area × Nederbörd × Avrinningskoefficient × Filtereffektivitet</code>',
|
|
130
130
|
},
|
|
131
131
|
{
|
|
132
132
|
type: 'list',
|
|
@@ -126,7 +126,7 @@ export const content: RainHarvesterLocaleContent = {
|
|
|
126
126
|
},
|
|
127
127
|
{
|
|
128
128
|
type: 'paragraph',
|
|
129
|
-
html: '<code style="display:block;padding:1rem;background:var(
|
|
129
|
+
html: '<code style="display:block;padding:1rem;background:var(-bg-alt);border-radius:0.5rem;margin:1rem 0;font-family:monospace;">Hacim = Alan × Yağış × Akış Katsayısı × Filtre Verimliliği</code>',
|
|
130
130
|
},
|
|
131
131
|
{
|
|
132
132
|
type: 'list',
|
|
@@ -9,7 +9,7 @@ const description = '计算您可以从屋顶收集多少雨水,并确定储
|
|
|
9
9
|
const faqData = [
|
|
10
10
|
{
|
|
11
11
|
question: '我实际上能从屋顶收集多少水?',
|
|
12
|
-
answer: '一般规则是,屋顶每平方米面积在每毫米降雨下大约可以收集 1
|
|
12
|
+
answer: '一般规则是,屋顶每平方米面积在每毫米降雨下大约可以收集 1 升水。但由于蒸发和过滤的影响,需要通过"径流系数"进行调整。',
|
|
13
13
|
},
|
|
14
14
|
{
|
|
15
15
|
question: '什么是径流系数?',
|
|
@@ -91,7 +91,7 @@ export const content: RainHarvesterLocaleContent = {
|
|
|
91
91
|
unitM2: 'm²',
|
|
92
92
|
unitMm: 'mm',
|
|
93
93
|
unitLiters: '升',
|
|
94
|
-
helpRainfall: '不知道?在 Google
|
|
94
|
+
helpRainfall: '不知道?在 Google 上搜索"(您所在的城市)年平均降水量"。',
|
|
95
95
|
efficiencyTitle: '效率系数',
|
|
96
96
|
efficiencyNote: '考虑到过滤器和蒸发,已应用 10% 的损失率。',
|
|
97
97
|
resultTitle: '年收集潜力',
|
|
@@ -113,7 +113,7 @@ export const content: RainHarvesterLocaleContent = {
|
|
|
113
113
|
},
|
|
114
114
|
{
|
|
115
115
|
type: 'paragraph',
|
|
116
|
-
html: '
|
|
116
|
+
html: '大多数房主并未意识到自家屋顶的潜力。一个标准屋顶每年可以捕获数千升免费水。此工具将这种潜力具象化,让您能够精确计算可以"收获"多少水,并确定最理想的储水箱尺寸。',
|
|
117
117
|
},
|
|
118
118
|
{
|
|
119
119
|
type: 'title',
|
|
@@ -126,7 +126,7 @@ export const content: RainHarvesterLocaleContent = {
|
|
|
126
126
|
},
|
|
127
127
|
{
|
|
128
128
|
type: 'paragraph',
|
|
129
|
-
html: '<code style="display:block;padding:1rem;background:var(
|
|
129
|
+
html: '<code style="display:block;padding:1rem;background:var(-bg-alt);border-radius:0.5rem;margin:1rem 0;font-family:monospace;">容量 = 面积 × 降雨量 × 径流系数 × 过滤效率</code>',
|
|
130
130
|
},
|
|
131
131
|
{
|
|
132
132
|
type: 'list',
|
|
@@ -103,7 +103,7 @@ const cropNote: Record<string, string> = {
|
|
|
103
103
|
|
|
104
104
|
<div class="sc-params-card">
|
|
105
105
|
<div class="sc-slider-group">
|
|
106
|
-
<label class="sc-slider-label">
|
|
106
|
+
<label class="sc-slider-label" for="inPop">
|
|
107
107
|
{ui.labelPopulation}
|
|
108
108
|
<span class="sc-label-unit">{ui.unitSeedsHa}</span>
|
|
109
109
|
</label>
|
|
@@ -121,7 +121,7 @@ const cropNote: Record<string, string> = {
|
|
|
121
121
|
</div>
|
|
122
122
|
|
|
123
123
|
<div class="sc-slider-group">
|
|
124
|
-
<label class="sc-slider-label">
|
|
124
|
+
<label class="sc-slider-label" for="inRow">
|
|
125
125
|
{ui.labelRowWidth}
|
|
126
126
|
<span class="sc-label-unit">{ui.unitCm}</span>
|
|
127
127
|
</label>
|
|
@@ -100,7 +100,7 @@ export const content: ToolLocaleContent<SeedCalculatorUI> = {
|
|
|
100
100
|
},
|
|
101
101
|
{
|
|
102
102
|
type: 'paragraph',
|
|
103
|
-
html: "Régler la transmission d'un semoir nécessite de savoir exactement combien de graines doivent tomber par mètre linéaire de sillon. Les manuels des machines donnent souvent des tables approximatives, mais des facteurs comme le <strong>patinage de la roue motrice</strong> ou la taille de la semence peuvent modifier la réalité. Cet outil vous donne la valeur théorique parfaite
|
|
103
|
+
html: "Régler la transmission d'un semoir nécessite de savoir exactement combien de graines doivent tomber par mètre linéaire de sillon. Les manuels des machines donnent souvent des tables approximatives, mais des facteurs comme le <strong>patinage de la roue motrice</strong> ou la taille de la semence peuvent modifier la réalité. Cet outil vous donne la valeur théorique parfaite: l'<strong>espacement cible entre graines</strong>.",
|
|
104
104
|
},
|
|
105
105
|
{
|
|
106
106
|
type: 'tip',
|
|
@@ -105,7 +105,7 @@ export const content: ToolLocaleContent<SeedCalculatorUI> = {
|
|
|
105
105
|
{
|
|
106
106
|
type: 'tip',
|
|
107
107
|
title: 'Wzór matematyczny',
|
|
108
|
-
html: '<p>Dla agronomów i ciekawskich
|
|
108
|
+
html: '<p>Dla agronomów i ciekawskich - oto podstawa obliczeń:</p><pre>Odstęp (cm) = 10 000 000 / (Obsada × Szerokość Rzędu)</pre><ul><li><strong>10 000 000:</strong> Współczynnik konwersji z Ha na cm².</li><li><strong>Obsada:</strong> Liczba nasion na hektar.</li><li><strong>Szerokość Rzędu:</strong> Odległość między rzędami w cm.</li></ul>',
|
|
109
109
|
},
|
|
110
110
|
{
|
|
111
111
|
type: 'title',
|
|
@@ -27,7 +27,7 @@ const faqData = [
|
|
|
27
27
|
{
|
|
28
28
|
question: 'Почему так важна калибровка сеялки?',
|
|
29
29
|
answer:
|
|
30
|
-
'Слишком густой посев вызывает конкуренцию между растениями и приводит к измельчанию зерна. Слишком редкий посев
|
|
30
|
+
'Слишком густой посев вызывает конкуренцию между растениями и приводит к измельчанию зерна. Слишком редкий посев - это потеря площади и потенциала урожайности. Точность - ключ к прибыльности.',
|
|
31
31
|
},
|
|
32
32
|
];
|
|
33
33
|
|
|
@@ -46,7 +46,7 @@ const howToData = [
|
|
|
46
46
|
},
|
|
47
47
|
{
|
|
48
48
|
name: 'Получите настройки механизмов',
|
|
49
|
-
text: 'Используйте значение
|
|
49
|
+
text: 'Используйте значение "семян на метр" или "расстояние в см между семенами" для настройки звездочек или монитора на вашей машине.',
|
|
50
50
|
},
|
|
51
51
|
];
|
|
52
52
|
|
|
@@ -105,7 +105,7 @@ export const content: ToolLocaleContent<SeedCalculatorUI> = {
|
|
|
105
105
|
{
|
|
106
106
|
type: 'tip',
|
|
107
107
|
title: 'Математическая формула',
|
|
108
|
-
html: '<p>Для агрономов и любознательных
|
|
108
|
+
html: '<p>Для агрономов и любознательных - вот основа расчета:</p><pre>Расстояние (см) = 10 000 000 / (Норма высева × Ширина междурядья)</pre><ul><li><strong>10 000 000:</strong> Коэффициент перевода из Га в см².</li><li><strong>Норма высева:</strong> Семян на гектар.</li><li><strong>Ширина междурядья:</strong> Расстояние между рядами в см.</li></ul>',
|
|
109
109
|
},
|
|
110
110
|
{
|
|
111
111
|
type: 'title',
|
|
@@ -136,7 +136,7 @@ export const content: ToolLocaleContent<SeedCalculatorUI> = {
|
|
|
136
136
|
},
|
|
137
137
|
{
|
|
138
138
|
type: 'paragraph',
|
|
139
|
-
html: '<strong>Метод 1/1000 гектара:</strong> Отмерьте расстояние вдоль борозды, соответствующее 1/1000 гектара. Подсчитайте семена и умножьте на 1000. Для междурядья 70 см расстояние составляет 14,28 м; для 52,5 см
|
|
139
|
+
html: '<strong>Метод 1/1000 гектара:</strong> Отмерьте расстояние вдоль борозды, соответствующее 1/1000 гектара. Подсчитайте семена и умножьте на 1000. Для междурядья 70 см расстояние составляет 14,28 м; для 52,5 см - 19,05 м.',
|
|
140
140
|
},
|
|
141
141
|
{
|
|
142
142
|
type: 'paragraph',
|