@jjlmoya/utils-tools 1.1.0 → 1.3.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/category/i18n/de.ts +172 -0
- package/src/category/i18n/id.ts +172 -0
- package/src/category/i18n/it.ts +172 -0
- package/src/category/i18n/ja.ts +172 -0
- package/src/category/i18n/ko.ts +172 -0
- package/src/category/i18n/nl.ts +172 -0
- package/src/category/i18n/pl.ts +172 -0
- package/src/category/i18n/pt.ts +172 -0
- package/src/category/i18n/ru.ts +172 -0
- package/src/category/i18n/sv.ts +172 -0
- package/src/category/i18n/tr.ts +172 -0
- package/src/category/i18n/zh.ts +172 -0
- package/src/category/index.ts +13 -1
- package/src/tests/i18n_coverage.test.ts +36 -0
- package/src/tests/locale_completeness.test.ts +1 -1
- package/src/tests/slug_uniqueness.test.ts +81 -0
- package/src/tests/title_quality.test.ts +0 -1
- package/src/tool/date-diff-calculator/i18n/de.ts +132 -0
- package/src/tool/date-diff-calculator/i18n/fr.ts +1 -1
- package/src/tool/date-diff-calculator/i18n/id.ts +132 -0
- package/src/tool/date-diff-calculator/i18n/it.ts +132 -0
- package/src/tool/date-diff-calculator/i18n/ja.ts +132 -0
- package/src/tool/date-diff-calculator/i18n/ko.ts +132 -0
- package/src/tool/date-diff-calculator/i18n/nl.ts +132 -0
- package/src/tool/date-diff-calculator/i18n/pl.ts +132 -0
- package/src/tool/date-diff-calculator/i18n/pt.ts +132 -0
- package/src/tool/date-diff-calculator/i18n/ru.ts +132 -0
- package/src/tool/date-diff-calculator/i18n/sv.ts +132 -0
- package/src/tool/date-diff-calculator/i18n/tr.ts +132 -0
- package/src/tool/date-diff-calculator/i18n/zh.ts +132 -0
- package/src/tool/date-diff-calculator/index.ts +12 -0
- package/src/tool/drive-direct-link/i18n/de.ts +118 -0
- package/src/tool/drive-direct-link/i18n/id.ts +118 -0
- package/src/tool/drive-direct-link/i18n/it.ts +118 -0
- package/src/tool/drive-direct-link/i18n/ja.ts +118 -0
- package/src/tool/drive-direct-link/i18n/ko.ts +118 -0
- package/src/tool/drive-direct-link/i18n/nl.ts +118 -0
- package/src/tool/drive-direct-link/i18n/pl.ts +118 -0
- package/src/tool/drive-direct-link/i18n/pt.ts +118 -0
- package/src/tool/drive-direct-link/i18n/ru.ts +118 -0
- package/src/tool/drive-direct-link/i18n/sv.ts +118 -0
- package/src/tool/drive-direct-link/i18n/tr.ts +118 -0
- package/src/tool/drive-direct-link/i18n/zh.ts +118 -0
- package/src/tool/drive-direct-link/index.ts +12 -0
- package/src/tool/email-list-cleaner/i18n/de.ts +140 -0
- package/src/tool/email-list-cleaner/i18n/es.ts +1 -1
- package/src/tool/email-list-cleaner/i18n/fr.ts +1 -1
- package/src/tool/email-list-cleaner/i18n/id.ts +140 -0
- package/src/tool/email-list-cleaner/i18n/it.ts +140 -0
- package/src/tool/email-list-cleaner/i18n/ja.ts +140 -0
- package/src/tool/email-list-cleaner/i18n/ko.ts +140 -0
- package/src/tool/email-list-cleaner/i18n/nl.ts +140 -0
- package/src/tool/email-list-cleaner/i18n/pl.ts +140 -0
- package/src/tool/email-list-cleaner/i18n/pt.ts +140 -0
- package/src/tool/email-list-cleaner/i18n/ru.ts +140 -0
- package/src/tool/email-list-cleaner/i18n/sv.ts +140 -0
- package/src/tool/email-list-cleaner/i18n/tr.ts +140 -0
- package/src/tool/email-list-cleaner/i18n/zh.ts +140 -0
- package/src/tool/email-list-cleaner/index.ts +12 -0
- package/src/tool/env-badge-spain/i18n/de.ts +153 -0
- package/src/tool/env-badge-spain/i18n/es.ts +1 -1
- package/src/tool/env-badge-spain/i18n/fr.ts +1 -1
- package/src/tool/env-badge-spain/i18n/id.ts +153 -0
- package/src/tool/env-badge-spain/i18n/it.ts +153 -0
- package/src/tool/env-badge-spain/i18n/ja.ts +153 -0
- package/src/tool/env-badge-spain/i18n/ko.ts +153 -0
- package/src/tool/env-badge-spain/i18n/nl.ts +153 -0
- package/src/tool/env-badge-spain/i18n/pl.ts +153 -0
- package/src/tool/env-badge-spain/i18n/pt.ts +153 -0
- package/src/tool/env-badge-spain/i18n/ru.ts +153 -0
- package/src/tool/env-badge-spain/i18n/sv.ts +153 -0
- package/src/tool/env-badge-spain/i18n/tr.ts +153 -0
- package/src/tool/env-badge-spain/i18n/zh.ts +153 -0
- package/src/tool/env-badge-spain/index.ts +12 -0
- package/src/tool/morse-beacon/i18n/de.ts +157 -0
- package/src/tool/morse-beacon/i18n/es.ts +1 -1
- package/src/tool/morse-beacon/i18n/id.ts +157 -0
- package/src/tool/morse-beacon/i18n/it.ts +157 -0
- package/src/tool/morse-beacon/i18n/ja.ts +157 -0
- package/src/tool/morse-beacon/i18n/ko.ts +157 -0
- package/src/tool/morse-beacon/i18n/nl.ts +157 -0
- package/src/tool/morse-beacon/i18n/pl.ts +157 -0
- package/src/tool/morse-beacon/i18n/pt.ts +157 -0
- package/src/tool/morse-beacon/i18n/ru.ts +157 -0
- package/src/tool/morse-beacon/i18n/sv.ts +157 -0
- package/src/tool/morse-beacon/i18n/tr.ts +157 -0
- package/src/tool/morse-beacon/i18n/zh.ts +157 -0
- package/src/tool/morse-beacon/index.ts +13 -1
- package/src/tool/password-generator/i18n/de.ts +166 -0
- package/src/tool/password-generator/i18n/fr.ts +1 -1
- package/src/tool/password-generator/i18n/id.ts +166 -0
- package/src/tool/password-generator/i18n/it.ts +166 -0
- package/src/tool/password-generator/i18n/ja.ts +166 -0
- package/src/tool/password-generator/i18n/ko.ts +166 -0
- package/src/tool/password-generator/i18n/nl.ts +166 -0
- package/src/tool/password-generator/i18n/pl.ts +166 -0
- package/src/tool/password-generator/i18n/pt.ts +166 -0
- package/src/tool/password-generator/i18n/ru.ts +166 -0
- package/src/tool/password-generator/i18n/sv.ts +166 -0
- package/src/tool/password-generator/i18n/tr.ts +166 -0
- package/src/tool/password-generator/i18n/zh.ts +166 -0
- package/src/tool/password-generator/index.ts +13 -1
- package/src/tool/routes/i18n/de.ts +157 -0
- package/src/tool/routes/i18n/es.ts +1 -1
- package/src/tool/routes/i18n/id.ts +157 -0
- package/src/tool/routes/i18n/it.ts +157 -0
- package/src/tool/routes/i18n/ja.ts +157 -0
- package/src/tool/routes/i18n/ko.ts +157 -0
- package/src/tool/routes/i18n/nl.ts +157 -0
- package/src/tool/routes/i18n/pl.ts +157 -0
- package/src/tool/routes/i18n/pt.ts +157 -0
- package/src/tool/routes/i18n/ru.ts +157 -0
- package/src/tool/routes/i18n/sv.ts +157 -0
- package/src/tool/routes/i18n/tr.ts +157 -0
- package/src/tool/routes/i18n/zh.ts +157 -0
- package/src/tool/routes/index.ts +13 -1
- package/src/tool/rule-of-three/i18n/de.ts +171 -0
- package/src/tool/rule-of-three/i18n/en.ts +1 -1
- package/src/tool/rule-of-three/i18n/id.ts +171 -0
- package/src/tool/rule-of-three/i18n/it.ts +171 -0
- package/src/tool/rule-of-three/i18n/ja.ts +171 -0
- package/src/tool/rule-of-three/i18n/ko.ts +171 -0
- package/src/tool/rule-of-three/i18n/nl.ts +171 -0
- package/src/tool/rule-of-three/i18n/pl.ts +171 -0
- package/src/tool/rule-of-three/i18n/pt.ts +171 -0
- package/src/tool/rule-of-three/i18n/ru.ts +171 -0
- package/src/tool/rule-of-three/i18n/sv.ts +171 -0
- package/src/tool/rule-of-three/i18n/tr.ts +171 -0
- package/src/tool/rule-of-three/i18n/zh.ts +171 -0
- package/src/tool/rule-of-three/index.ts +13 -1
- package/src/tool/seo-content-optimizer/i18n/de.ts +136 -0
- package/src/tool/seo-content-optimizer/i18n/id.ts +136 -0
- package/src/tool/seo-content-optimizer/i18n/it.ts +136 -0
- package/src/tool/seo-content-optimizer/i18n/ja.ts +136 -0
- package/src/tool/seo-content-optimizer/i18n/ko.ts +136 -0
- package/src/tool/seo-content-optimizer/i18n/nl.ts +136 -0
- package/src/tool/seo-content-optimizer/i18n/pl.ts +136 -0
- package/src/tool/seo-content-optimizer/i18n/pt.ts +136 -0
- package/src/tool/seo-content-optimizer/i18n/ru.ts +136 -0
- package/src/tool/seo-content-optimizer/i18n/sv.ts +136 -0
- package/src/tool/seo-content-optimizer/i18n/tr.ts +136 -0
- package/src/tool/seo-content-optimizer/i18n/zh.ts +136 -0
- package/src/tool/seo-content-optimizer/index.ts +12 -0
- package/src/tool/speed-reader/i18n/de.ts +152 -0
- package/src/tool/speed-reader/i18n/es.ts +1 -1
- package/src/tool/speed-reader/i18n/id.ts +152 -0
- package/src/tool/speed-reader/i18n/it.ts +152 -0
- package/src/tool/speed-reader/i18n/ja.ts +152 -0
- package/src/tool/speed-reader/i18n/ko.ts +152 -0
- package/src/tool/speed-reader/i18n/nl.ts +152 -0
- package/src/tool/speed-reader/i18n/pl.ts +152 -0
- package/src/tool/speed-reader/i18n/pt.ts +152 -0
- package/src/tool/speed-reader/i18n/ru.ts +152 -0
- package/src/tool/speed-reader/i18n/sv.ts +152 -0
- package/src/tool/speed-reader/i18n/tr.ts +152 -0
- package/src/tool/speed-reader/i18n/zh.ts +152 -0
- package/src/tool/speed-reader/index.ts +12 -0
- package/src/tool/text-pixel-calculator/i18n/de.ts +133 -0
- package/src/tool/text-pixel-calculator/i18n/id.ts +133 -0
- package/src/tool/text-pixel-calculator/i18n/it.ts +133 -0
- package/src/tool/text-pixel-calculator/i18n/ja.ts +133 -0
- package/src/tool/text-pixel-calculator/i18n/ko.ts +133 -0
- package/src/tool/text-pixel-calculator/i18n/nl.ts +133 -0
- package/src/tool/text-pixel-calculator/i18n/pl.ts +133 -0
- package/src/tool/text-pixel-calculator/i18n/pt.ts +133 -0
- package/src/tool/text-pixel-calculator/i18n/ru.ts +133 -0
- package/src/tool/text-pixel-calculator/i18n/sv.ts +133 -0
- package/src/tool/text-pixel-calculator/i18n/tr.ts +133 -0
- package/src/tool/text-pixel-calculator/i18n/zh.ts +133 -0
- package/src/tool/text-pixel-calculator/index.ts +12 -0
- package/src/tool/whatsapp-link/i18n/de.ts +128 -0
- package/src/tool/whatsapp-link/i18n/es.ts +1 -1
- package/src/tool/whatsapp-link/i18n/id.ts +128 -0
- package/src/tool/whatsapp-link/i18n/it.ts +128 -0
- package/src/tool/whatsapp-link/i18n/ja.ts +128 -0
- package/src/tool/whatsapp-link/i18n/ko.ts +128 -0
- package/src/tool/whatsapp-link/i18n/nl.ts +128 -0
- package/src/tool/whatsapp-link/i18n/pl.ts +128 -0
- package/src/tool/whatsapp-link/i18n/pt.ts +128 -0
- package/src/tool/whatsapp-link/i18n/ru.ts +128 -0
- package/src/tool/whatsapp-link/i18n/sv.ts +128 -0
- package/src/tool/whatsapp-link/i18n/tr.ts +128 -0
- package/src/tool/whatsapp-link/i18n/zh.ts +128 -0
- package/src/tool/whatsapp-link/index.ts +12 -0
|
@@ -0,0 +1,171 @@
|
|
|
1
|
+
import type { ToolLocaleContent } from '../../../types';
|
|
2
|
+
import type { WithContext, FAQPage, HowTo, SoftwareApplication } from 'schema-dts';
|
|
3
|
+
import type { RuleOfThreeUI } from '../ui';
|
|
4
|
+
|
|
5
|
+
const faqData = [
|
|
6
|
+
{
|
|
7
|
+
question: '「単比例の三数法」とは何ですか?',
|
|
8
|
+
answer: '3つの既知の値から1つの未知の値を求めるための比例計算の手法です。一方が増えるともう一方も同じ比率で増えるため、「正比例(直接)」と呼ばれます。',
|
|
9
|
+
},
|
|
10
|
+
{
|
|
11
|
+
question: '反比例の三数法はいつ使うべきですか?',
|
|
12
|
+
answer: '一方が増えるともう一方が減るという「反比例」の関係にある場合です。例えば、2人の作業員で5時間かかる仕事は、4人の作業員ならもっと短い時間で終わります。現在の計算機は正比例に特化しています。',
|
|
13
|
+
},
|
|
14
|
+
{
|
|
15
|
+
question: 'プロの計算にも使用できますか?',
|
|
16
|
+
answer: 'はい。当計算機は高精度の浮動小数点計算を使用しており、薬剤の用量調節、グラフィックデザインの縮尺、営業予算、料理レシピの換算などに最適です。',
|
|
17
|
+
},
|
|
18
|
+
{
|
|
19
|
+
question: '手動で計算するにはどうすればよいですか?',
|
|
20
|
+
answer: '公式は (Bの値 × Cの値) ÷ Aの値 = X です。つまり、対角線上の値を掛け合わせ、残りの値で割ります。',
|
|
21
|
+
},
|
|
22
|
+
];
|
|
23
|
+
|
|
24
|
+
const howToData = [
|
|
25
|
+
{
|
|
26
|
+
name: '基準となる関係を特定',
|
|
27
|
+
text: '最初の比率となる2つの既知の値を入力します(例:100kmが8リットルに相当する場合)。',
|
|
28
|
+
},
|
|
29
|
+
{
|
|
30
|
+
name: '3つ目の値を入力',
|
|
31
|
+
text: '求めたい新しい方の値を入力します(例:250km走行する場合...)。',
|
|
32
|
+
},
|
|
33
|
+
{
|
|
34
|
+
name: '結果を表示',
|
|
35
|
+
text: 'ボタンを押す必要はなく、リアルタイムで未知の値(X)が自動的に計算されます。',
|
|
36
|
+
},
|
|
37
|
+
{
|
|
38
|
+
name: 'コピーまたはリセット',
|
|
39
|
+
text: '結果を直接クリップボードにコピーしたり、入力欄をクリアして新しい計算を行ったりできます。',
|
|
40
|
+
},
|
|
41
|
+
];
|
|
42
|
+
|
|
43
|
+
const faqSchema: WithContext<FAQPage> = {
|
|
44
|
+
'@context': 'https://schema.org',
|
|
45
|
+
'@type': 'FAQPage',
|
|
46
|
+
mainEntity: faqData.map((item) => ({
|
|
47
|
+
'@type': 'Question',
|
|
48
|
+
name: item.question,
|
|
49
|
+
acceptedAnswer: { '@type': 'Answer', text: item.answer },
|
|
50
|
+
})),
|
|
51
|
+
};
|
|
52
|
+
|
|
53
|
+
const howToSchema: WithContext<HowTo> = {
|
|
54
|
+
'@context': 'https://schema.org',
|
|
55
|
+
'@type': 'HowTo',
|
|
56
|
+
name: '比例計算機(三数法)の使い方',
|
|
57
|
+
step: howToData.map((s) => ({ '@type': 'HowToStep', name: s.name, text: s.text })),
|
|
58
|
+
};
|
|
59
|
+
|
|
60
|
+
const appSchema: WithContext<SoftwareApplication> = {
|
|
61
|
+
'@context': 'https://schema.org',
|
|
62
|
+
'@type': 'SoftwareApplication',
|
|
63
|
+
name: '比例計算機(三数法)',
|
|
64
|
+
applicationCategory: 'UtilitiesApplication',
|
|
65
|
+
operatingSystem: 'Web',
|
|
66
|
+
offers: { '@type': 'Offer', price: '0', priceCurrency: 'EUR' },
|
|
67
|
+
description: '数学的な比例計算を瞬時に解決します。数量、レシピ、割引、換算を計算するための決定版ツール。',
|
|
68
|
+
};
|
|
69
|
+
|
|
70
|
+
const ui: RuleOfThreeUI = {
|
|
71
|
+
labelA: 'もし...',
|
|
72
|
+
labelB: 'が...なら',
|
|
73
|
+
labelC: 'では...',
|
|
74
|
+
labelX: '結果 (X)',
|
|
75
|
+
hintA: '元の数量',
|
|
76
|
+
hintB: '既知の値',
|
|
77
|
+
hintC: '新しい数量',
|
|
78
|
+
hintX: '計算された値',
|
|
79
|
+
separatorIsTo: ':',
|
|
80
|
+
separatorWillBe: '=',
|
|
81
|
+
copyTitle: '結果をコピー',
|
|
82
|
+
};
|
|
83
|
+
|
|
84
|
+
export const content: ToolLocaleContent<RuleOfThreeUI> = {
|
|
85
|
+
slug: 'rule-of-three-calculator',
|
|
86
|
+
title: '比例計算機(三数法)',
|
|
87
|
+
description: '数学的な比例計算を瞬時に解決します。数量、レシピ、割引、換算を計算するための決定版ツール。',
|
|
88
|
+
ui,
|
|
89
|
+
faqTitle: 'よくある質問',
|
|
90
|
+
faq: faqData,
|
|
91
|
+
howTo: howToData,
|
|
92
|
+
bibliographyTitle: '参考文献',
|
|
93
|
+
bibliography: [
|
|
94
|
+
{ name: '比例 — Wikipedia', url: 'https://ja.wikipedia.org/wiki/%E6%AF%94%E4%BE%8B' },
|
|
95
|
+
{ name: '比と比例 — Khan Academy', url: 'https://ja.khanacademy.org/math/pre-algebra/pre-algebra-ratios-rates' },
|
|
96
|
+
],
|
|
97
|
+
schemas: [faqSchema, howToSchema, appSchema],
|
|
98
|
+
seo: [
|
|
99
|
+
{
|
|
100
|
+
type: 'title',
|
|
101
|
+
text: '比例計算(三数法)は何に使われますか?',
|
|
102
|
+
level: 2,
|
|
103
|
+
},
|
|
104
|
+
{
|
|
105
|
+
type: 'paragraph',
|
|
106
|
+
html: '三数法による比例計算は、数学における「十徳ナイフ」のようなものです。3つのデータがわかっていて、4つ目を求めるあらゆる問題を解決します。<strong>A と B</strong> の関係がわかっていて、新しい値 <strong>C</strong> がある場合、この計算機は即座に <strong>X</strong> を導き出します。',
|
|
107
|
+
},
|
|
108
|
+
{
|
|
109
|
+
type: 'comparative',
|
|
110
|
+
columns: 2,
|
|
111
|
+
items: [
|
|
112
|
+
{
|
|
113
|
+
icon: 'mdi:chef-hat',
|
|
114
|
+
title: '料理とレシピ',
|
|
115
|
+
description: '4人分で小麦粉500gが必要なレシピの場合、7人分なら何グラム必要でしょうか?',
|
|
116
|
+
points: ['(500 × 7) ÷ 4 = 875g'],
|
|
117
|
+
},
|
|
118
|
+
{
|
|
119
|
+
icon: 'mdi:shopping',
|
|
120
|
+
title: '買い物と価格',
|
|
121
|
+
description: '3缶セットで250円の場合、10缶買うといくらになりますか?',
|
|
122
|
+
points: ['(250 × 10) ÷ 3 = 833.33円'],
|
|
123
|
+
},
|
|
124
|
+
{
|
|
125
|
+
icon: 'mdi:car',
|
|
126
|
+
title: '旅行と距離',
|
|
127
|
+
description: '60km進むのに45分かかる場合、140km進むには何分かかるでしょうか?',
|
|
128
|
+
points: ['(45 × 140) ÷ 60 = 105分'],
|
|
129
|
+
},
|
|
130
|
+
{
|
|
131
|
+
icon: 'mdi:monitor-screenshot',
|
|
132
|
+
title: 'デザインと画面',
|
|
133
|
+
description: '幅1920pxの画像を、比率を維持したまま幅800pxに縮小したい場合...',
|
|
134
|
+
points: ['(元の高さ × 800) ÷ 1920 = 新しい高さ'],
|
|
135
|
+
},
|
|
136
|
+
],
|
|
137
|
+
},
|
|
138
|
+
{
|
|
139
|
+
type: 'title',
|
|
140
|
+
text: '公式の仕組み',
|
|
141
|
+
level: 2,
|
|
142
|
+
},
|
|
143
|
+
{
|
|
144
|
+
type: 'paragraph',
|
|
145
|
+
html: '公式は常に同じです:<strong>対角線上の値を掛け、残りの値で割る</strong>だけです。',
|
|
146
|
+
},
|
|
147
|
+
{
|
|
148
|
+
type: 'code',
|
|
149
|
+
code: '(B × C) ÷ A = X',
|
|
150
|
+
ariaLabel: '三数法の計算公式',
|
|
151
|
+
},
|
|
152
|
+
{
|
|
153
|
+
type: 'paragraph',
|
|
154
|
+
html: '計算機上では:値 <strong>B</strong> と値 <strong>C</strong> を掛け、<strong>A</strong> で割ります。その結果が <strong>X</strong> です。',
|
|
155
|
+
},
|
|
156
|
+
{
|
|
157
|
+
type: 'title',
|
|
158
|
+
text: 'プロの現場や日常での活用',
|
|
159
|
+
level: 2,
|
|
160
|
+
},
|
|
161
|
+
{
|
|
162
|
+
type: 'paragraph',
|
|
163
|
+
html: '学校の数学だけでなく、比例計算はいたるところで使われています。薬局での体重別投与量の計算、写真撮影時の露出時間の計算、金融での騰落率の計算、印刷でのフォーマット寸法のスケーリングなどです。',
|
|
164
|
+
},
|
|
165
|
+
{
|
|
166
|
+
type: 'tip',
|
|
167
|
+
title: '精度のヒント',
|
|
168
|
+
html: '結果は最大で小数点第4位まで表示されます。お金や正確な寸法を扱う場合は、文脈に応じて、円なら整数、ピクセルなら整数といったように、適切に四捨五入してください。',
|
|
169
|
+
},
|
|
170
|
+
],
|
|
171
|
+
};
|
|
@@ -0,0 +1,171 @@
|
|
|
1
|
+
import type { ToolLocaleContent } from '../../../types';
|
|
2
|
+
import type { WithContext, FAQPage, HowTo, SoftwareApplication } from 'schema-dts';
|
|
3
|
+
import type { RuleOfThreeUI } from '../ui';
|
|
4
|
+
|
|
5
|
+
const faqData = [
|
|
6
|
+
{
|
|
7
|
+
question: '단비례의 삼수법이란 무엇인가요?',
|
|
8
|
+
answer: '세 가지 알고 있는 값으로부터 하나의 모르는 값을 구하는 비례 계산법입니다. 한쪽이 증가하면 다른 쪽도 같은 비율로 증가하기 때문에 "정비례(직접)"라고 불립니다.',
|
|
9
|
+
},
|
|
10
|
+
{
|
|
11
|
+
question: '반비례의 삼수법은 언제 사용해야 하나요?',
|
|
12
|
+
answer: '한쪽이 증가하면 다른 쪽이 감소하는 "반비례" 관계일 때 사용합니다. 예를 들어, 2명의 작업자가 5시간 걸리는 일은 4명의 작업자가 하면 더 적은 시간이 걸립니다. 현재 계산기는 정비례에 집중하고 있습니다.',
|
|
13
|
+
},
|
|
14
|
+
{
|
|
15
|
+
question: '전문적인 계산에도 정확한가요?',
|
|
16
|
+
answer: '네. 당사의 계산기는 고정밀 부동 소수점 계산을 사용하여 약물 복용량 조절, 그래픽 디자인 축척, 영업 예산 및 레시피 변환에 이상적입니다.',
|
|
17
|
+
},
|
|
18
|
+
{
|
|
19
|
+
question: '수동으로 어떻게 계산하나요?',
|
|
20
|
+
answer: '공식은 (B 값 × C 값) ÷ A 값 = X입니다. 즉, 대각선 값을 곱하고 그 결과를 남은 값으로 나눕니다.',
|
|
21
|
+
},
|
|
22
|
+
];
|
|
23
|
+
|
|
24
|
+
const howToData = [
|
|
25
|
+
{
|
|
26
|
+
name: '기본 관계 식별',
|
|
27
|
+
text: '초기 비율을 형성하는 두 가지 알고 있는 값을 입력하세요(예: 100km가 8리터인 경우).',
|
|
28
|
+
},
|
|
29
|
+
{
|
|
30
|
+
name: '세 번째 값 입력',
|
|
31
|
+
text: '구하고자 하는 새로운 값을 입력하세요(예: 내가 250km를 주행한다면...).',
|
|
32
|
+
},
|
|
33
|
+
{
|
|
34
|
+
name: '결과 확인',
|
|
35
|
+
text: '버튼을 누를 필요 없이 실시간으로 미지수(X)가 자동으로 계산됩니다.',
|
|
36
|
+
},
|
|
37
|
+
{
|
|
38
|
+
name: '복사 또는 초기화',
|
|
39
|
+
text: '결과를 클립보드에 바로 복사하거나 입력란을 비워 새로운 계산을 수행할 수 있습니다.',
|
|
40
|
+
},
|
|
41
|
+
];
|
|
42
|
+
|
|
43
|
+
const faqSchema: WithContext<FAQPage> = {
|
|
44
|
+
'@context': 'https://schema.org',
|
|
45
|
+
'@type': 'FAQPage',
|
|
46
|
+
mainEntity: faqData.map((item) => ({
|
|
47
|
+
'@type': 'Question',
|
|
48
|
+
name: item.question,
|
|
49
|
+
acceptedAnswer: { '@type': 'Answer', text: item.answer },
|
|
50
|
+
})),
|
|
51
|
+
};
|
|
52
|
+
|
|
53
|
+
const howToSchema: WithContext<HowTo> = {
|
|
54
|
+
'@context': 'https://schema.org',
|
|
55
|
+
'@type': 'HowTo',
|
|
56
|
+
name: '비례 계산기(삼수법) 사용 방법',
|
|
57
|
+
step: howToData.map((s) => ({ '@type': 'HowToStep', name: s.name, text: s.text })),
|
|
58
|
+
};
|
|
59
|
+
|
|
60
|
+
const appSchema: WithContext<SoftwareApplication> = {
|
|
61
|
+
'@context': 'https://schema.org',
|
|
62
|
+
'@type': 'SoftwareApplication',
|
|
63
|
+
name: '단순 비례 계산기(삼수법)',
|
|
64
|
+
applicationCategory: 'UtilitiesApplication',
|
|
65
|
+
operatingSystem: 'Web',
|
|
66
|
+
offers: { '@type': 'Offer', price: '0', priceCurrency: 'EUR' },
|
|
67
|
+
description: '수학적 비례를 즉시 해결하세요. 수량, 레시피, 할인 및 변환을 계산하기 위한 결정적인 도구입니다.',
|
|
68
|
+
};
|
|
69
|
+
|
|
70
|
+
const ui: RuleOfThreeUI = {
|
|
71
|
+
labelA: '만약...',
|
|
72
|
+
labelB: '가 ...라면',
|
|
73
|
+
labelC: '이제...',
|
|
74
|
+
labelX: '결과 (X)',
|
|
75
|
+
hintA: '초기 수량',
|
|
76
|
+
hintB: '알고 있는 값',
|
|
77
|
+
hintC: '새로운 수량',
|
|
78
|
+
hintX: '계산된 값',
|
|
79
|
+
separatorIsTo: ':',
|
|
80
|
+
separatorWillBe: '=',
|
|
81
|
+
copyTitle: '결과 복사',
|
|
82
|
+
};
|
|
83
|
+
|
|
84
|
+
export const content: ToolLocaleContent<RuleOfThreeUI> = {
|
|
85
|
+
slug: 'rule-of-three-calculator',
|
|
86
|
+
title: '단순 비례 계산기(삼수법)',
|
|
87
|
+
description: '수학적 비례를 즉시 해결하세요. 수량, 레시피, 할인 및 변환을 계산하기 위한 결정적인 도구입니다.',
|
|
88
|
+
ui,
|
|
89
|
+
faqTitle: '자주 묻는 질문',
|
|
90
|
+
faq: faqData,
|
|
91
|
+
howTo: howToData,
|
|
92
|
+
bibliographyTitle: '참고 문헌',
|
|
93
|
+
bibliography: [
|
|
94
|
+
{ name: '비례 — 위키백과', url: 'https://ko.wikipedia.org/wiki/%EB%B9%84%EB%A1%80' },
|
|
95
|
+
{ name: '비와 비율 — Khan Academy', url: 'https://ko.khanacademy.org/math/pre-algebra/pre-algebra-ratios-rates' },
|
|
96
|
+
],
|
|
97
|
+
schemas: [faqSchema, howToSchema, appSchema],
|
|
98
|
+
seo: [
|
|
99
|
+
{
|
|
100
|
+
type: 'title',
|
|
101
|
+
text: '비례 계산(삼수법)은 어디에 사용되나요?',
|
|
102
|
+
level: 2,
|
|
103
|
+
},
|
|
104
|
+
{
|
|
105
|
+
type: 'paragraph',
|
|
106
|
+
html: '삼수법을 이용한 단순 비례 계산은 수학의 "맥가이버 칼"과 같습니다. 세 가지 데이터를 알고 네 번째 데이터를 찾는 모든 문제를 해결합니다. <strong>A와 B</strong>의 관계를 알고 있고 새로운 값 <strong>C</strong>가 있다면, 계산기는 즉시 <strong>X</strong>를 찾아줍니다.',
|
|
107
|
+
},
|
|
108
|
+
{
|
|
109
|
+
type: 'comparative',
|
|
110
|
+
columns: 2,
|
|
111
|
+
items: [
|
|
112
|
+
{
|
|
113
|
+
icon: 'mdi:chef-hat',
|
|
114
|
+
title: '요리와 레시피',
|
|
115
|
+
description: '레시피에 4인분 기준 밀가루 500g이 필요하다면, 7인분에는 얼마나 필요할까요?',
|
|
116
|
+
points: ['(500 × 7) ÷ 4 = 875g'],
|
|
117
|
+
},
|
|
118
|
+
{
|
|
119
|
+
icon: 'mdi:shopping',
|
|
120
|
+
title: '쇼핑과 가격',
|
|
121
|
+
description: '3캔 묶음이 2,500원이라면, 10캔은 얼마일까요?',
|
|
122
|
+
points: ['(2,500 × 10) ÷ 3 = 8,333원'],
|
|
123
|
+
},
|
|
124
|
+
{
|
|
125
|
+
icon: 'mdi:car',
|
|
126
|
+
title: '여행과 거리',
|
|
127
|
+
description: '60km를 가는 데 45분이 걸린다면, 140km를 가는 데는 얼마나 걸릴까요?',
|
|
128
|
+
points: ['(45 × 140) ÷ 60 = 105분'],
|
|
129
|
+
},
|
|
130
|
+
{
|
|
131
|
+
icon: 'mdi:monitor-screenshot',
|
|
132
|
+
title: '디자인과 화면',
|
|
133
|
+
description: '이미지 너비가 1920px인데 비율을 유지하면서 800px로 줄이고 싶다면...',
|
|
134
|
+
points: ['(원본 높이 × 800) ÷ 1920 = 새로운 높이'],
|
|
135
|
+
},
|
|
136
|
+
],
|
|
137
|
+
},
|
|
138
|
+
{
|
|
139
|
+
type: 'title',
|
|
140
|
+
text: '공식은 어떻게 작동하나요?',
|
|
141
|
+
level: 2,
|
|
142
|
+
},
|
|
143
|
+
{
|
|
144
|
+
type: 'paragraph',
|
|
145
|
+
html: '공식은 항상 동일합니다. <strong>대각선 값을 곱하고 남은 값으로 나누면</strong> 됩니다.',
|
|
146
|
+
},
|
|
147
|
+
{
|
|
148
|
+
type: 'code',
|
|
149
|
+
code: '(B × C) ÷ A = X',
|
|
150
|
+
ariaLabel: '단순 정비례 삼수법 공식',
|
|
151
|
+
},
|
|
152
|
+
{
|
|
153
|
+
type: 'paragraph',
|
|
154
|
+
html: '계산기에서: <strong>B</strong> 값과 <strong>C</strong> 값을 곱하고 <strong>A</strong>로 나눕니다. 결과는 <strong>X</strong>입니다.',
|
|
155
|
+
},
|
|
156
|
+
{
|
|
157
|
+
type: 'title',
|
|
158
|
+
text: '전문가 및 일상적 활용',
|
|
159
|
+
level: 2,
|
|
160
|
+
},
|
|
161
|
+
{
|
|
162
|
+
type: 'paragraph',
|
|
163
|
+
html: '학교 수학을 넘어 비례 계산은 어디에나 있습니다. 약국에서의 체중별 약물 용량 계산, 사진술에서의 노출 시간 계산, 금융에서의 수익률 계산, 인쇄에서의 포맷 규격 스케일링 등 다양합니다.',
|
|
164
|
+
},
|
|
165
|
+
{
|
|
166
|
+
type: 'tip',
|
|
167
|
+
title: '정밀도 팁',
|
|
168
|
+
html: '결과는 유효 소수점 4자리까지 표시됩니다. 돈이나 정확한 치수를 다룰 때는 맥락에 따라 반올림하세요. 통화는 소수점 2자리, 픽셀은 정수로 반올림하는 것이 좋습니다.',
|
|
169
|
+
},
|
|
170
|
+
],
|
|
171
|
+
};
|
|
@@ -0,0 +1,171 @@
|
|
|
1
|
+
import type { ToolLocaleContent } from '../../../types';
|
|
2
|
+
import type { WithContext, FAQPage, HowTo, SoftwareApplication } from 'schema-dts';
|
|
3
|
+
import type { RuleOfThreeUI } from '../ui';
|
|
4
|
+
|
|
5
|
+
const faqData = [
|
|
6
|
+
{
|
|
7
|
+
question: 'Wat is de eenvoudige directe regel van drie?',
|
|
8
|
+
answer: 'Het is een wiskundige methode voor het oplossen van evenredigheidsproblemen tussen drie bekende waarden en één onbekende. Het wordt „direct” genoemd omdat wanneer de ene hoeveelheid toeneemt, de andere in dezelfde verhouding toeneemt.',
|
|
9
|
+
},
|
|
10
|
+
{
|
|
11
|
+
question: 'Wanneer moet ik de omgekeerde regel van drie gebruiken?',
|
|
12
|
+
answer: 'Deze wordt gebruikt wanneer de hoeveelheden omgekeerd evenredig zijn (als de ene toeneemt, neemt de andere af). Bijvoorbeeld: als 2 schilders er 5 uur over doen, doen 4 schilders er minder lang over. Onze huidige calculator richt zich op directe evenredigheid.',
|
|
13
|
+
},
|
|
14
|
+
{
|
|
15
|
+
question: 'Is het nauwkeurig genoeg voor professionele berekeningen?',
|
|
16
|
+
answer: 'Ja. Onze calculator maakt gebruik van een hoge precisie, ideaal voor doseringsaanpassingen, schalen in grafisch ontwerp, commerciële budgetten en receptconversies.',
|
|
17
|
+
},
|
|
18
|
+
{
|
|
19
|
+
question: 'Hoe wordt het handmatig berekend?',
|
|
20
|
+
answer: 'De formule is: (Waarde B * Waarde C) / Waarde A = X. Dat wil zeggen, u vermenigvuldigt de diagonale waarden en deelt het resultaat door de resterende waarde.',
|
|
21
|
+
},
|
|
22
|
+
];
|
|
23
|
+
|
|
24
|
+
const howToData = [
|
|
25
|
+
{
|
|
26
|
+
name: 'Identificeer de basisrelatie',
|
|
27
|
+
text: 'Voer de twee bekende waarden in die de initiële verhouding vormen (bijv. 100 km is gelijk aan 8 liter).',
|
|
28
|
+
},
|
|
29
|
+
{
|
|
30
|
+
name: 'Voer de derde waarde in',
|
|
31
|
+
text: 'Voer de nieuwe waarde in waarvan u het equivalent wilt vinden (bijv. als ik 250 km ga reizen...).',
|
|
32
|
+
},
|
|
33
|
+
{
|
|
34
|
+
name: 'Krijg het resultaat',
|
|
35
|
+
text: 'Het systeem berekent de onbekende waarde (X) automatisch in realtime zonder dat u op knoppen hoeft te drukken.',
|
|
36
|
+
},
|
|
37
|
+
{
|
|
38
|
+
name: 'Kopiëren of resetten',
|
|
39
|
+
text: 'U kunt het resultaat rechtstreeks naar het klembord kopiëren of de velden wissen om een nieuwe berekening uit te voeren.',
|
|
40
|
+
},
|
|
41
|
+
];
|
|
42
|
+
|
|
43
|
+
const faqSchema: WithContext<FAQPage> = {
|
|
44
|
+
'@context': 'https://schema.org',
|
|
45
|
+
'@type': 'FAQPage',
|
|
46
|
+
mainEntity: faqData.map((item) => ({
|
|
47
|
+
'@type': 'Question',
|
|
48
|
+
name: item.question,
|
|
49
|
+
acceptedAnswer: { '@type': 'Answer', text: item.answer },
|
|
50
|
+
})),
|
|
51
|
+
};
|
|
52
|
+
|
|
53
|
+
const howToSchema: WithContext<HowTo> = {
|
|
54
|
+
'@context': 'https://schema.org',
|
|
55
|
+
'@type': 'HowTo',
|
|
56
|
+
name: 'Hoe de regel van drie calculator te gebruiken',
|
|
57
|
+
step: howToData.map((s) => ({ '@type': 'HowToStep', name: s.name, text: s.text })),
|
|
58
|
+
};
|
|
59
|
+
|
|
60
|
+
const appSchema: WithContext<SoftwareApplication> = {
|
|
61
|
+
'@context': 'https://schema.org',
|
|
62
|
+
'@type': 'SoftwareApplication',
|
|
63
|
+
name: 'Eenvoudige regel van drie calculator',
|
|
64
|
+
applicationCategory: 'UtilitiesApplication',
|
|
65
|
+
operatingSystem: 'Web',
|
|
66
|
+
offers: { '@type': 'Offer', price: '0', priceCurrency: 'EUR' },
|
|
67
|
+
description: 'Los wiskundige verhoudingen direct op. De definitieve tool voor het berekenen van hoeveelheden, recepten, kortingen en conversies.',
|
|
68
|
+
};
|
|
69
|
+
|
|
70
|
+
const ui: RuleOfThreeUI = {
|
|
71
|
+
labelA: 'Als ik heb...',
|
|
72
|
+
labelB: 'Staat gelijk aan...',
|
|
73
|
+
labelC: 'En nu heb ik...',
|
|
74
|
+
labelX: 'Resultaat (X)',
|
|
75
|
+
hintA: 'Initiële hoeveelheid',
|
|
76
|
+
hintB: 'Bekende waarde',
|
|
77
|
+
hintC: 'Nieuwe hoeveelheid',
|
|
78
|
+
hintX: 'Berekende waarde',
|
|
79
|
+
separatorIsTo: 'staat tot',
|
|
80
|
+
separatorWillBe: 'wordt',
|
|
81
|
+
copyTitle: 'Resultaat kopiëren',
|
|
82
|
+
};
|
|
83
|
+
|
|
84
|
+
export const content: ToolLocaleContent<RuleOfThreeUI> = {
|
|
85
|
+
slug: 'regel-van-drieen',
|
|
86
|
+
title: 'Eenvoudige regel van drie calculator',
|
|
87
|
+
description: 'Los wiskundige verhoudingen direct op. De definitieve tool voor het berekenen van hoeveelheden, recepten, kortingen en conversies.',
|
|
88
|
+
ui,
|
|
89
|
+
faqTitle: 'Veelgestelde Vragen',
|
|
90
|
+
faq: faqData,
|
|
91
|
+
howTo: howToData,
|
|
92
|
+
bibliographyTitle: 'Referenties',
|
|
93
|
+
bibliography: [
|
|
94
|
+
{ name: 'Evenredigheid (wiskunde) — Wikipedia', url: 'https://nl.wikipedia.org/wiki/Evenredigheid' },
|
|
95
|
+
{ name: 'Verhoudingen en proporties — Khan Academy', url: 'https://nl.khanacademy.org/math/pre-algebra/pre-algebra-ratios-rates' },
|
|
96
|
+
],
|
|
97
|
+
schemas: [faqSchema, howToSchema, appSchema],
|
|
98
|
+
seo: [
|
|
99
|
+
{
|
|
100
|
+
type: 'title',
|
|
101
|
+
text: 'Waarvoor wordt de regel van drie gebruikt?',
|
|
102
|
+
level: 2,
|
|
103
|
+
},
|
|
104
|
+
{
|
|
105
|
+
type: 'paragraph',
|
|
106
|
+
html: 'De eenvoudige directe regel van drie is het „Zwitserse zakmes” van de wiskunde. Het lost problemen op waarbij drie gegevenspunten bekend zijn en we de vierde zoeken. Als u de relatie tussen <strong>A en B</strong> kent, en u hebt een nieuwe waarde <strong>C</strong>, dan vindt de calculator direct <strong>X</strong>.',
|
|
107
|
+
},
|
|
108
|
+
{
|
|
109
|
+
type: 'comparative',
|
|
110
|
+
columns: 2,
|
|
111
|
+
items: [
|
|
112
|
+
{
|
|
113
|
+
icon: 'mdi:chef-hat',
|
|
114
|
+
title: 'Koken en recepten',
|
|
115
|
+
description: 'Als het recept 500 g bloem vraagt voor 4 personen, hoeveel heb ik dan nodig voor 7?',
|
|
116
|
+
points: ['(500 × 7) ÷ 4 = 875 g'],
|
|
117
|
+
},
|
|
118
|
+
{
|
|
119
|
+
icon: 'mdi:shopping',
|
|
120
|
+
title: 'Winkelen en prijzen',
|
|
121
|
+
description: 'Als een pak van 3 blikjes € 2,50 kost, hoeveel kosten 10 blikjes mij dan?',
|
|
122
|
+
points: ['(2,50 × 10) ÷ 3 = € 8,33'],
|
|
123
|
+
},
|
|
124
|
+
{
|
|
125
|
+
icon: 'mdi:car',
|
|
126
|
+
title: 'Reizen en afstand',
|
|
127
|
+
description: 'Als ik 45 min doe over 60 km, hoe lang doe ik dan over 140 km?',
|
|
128
|
+
points: ['(45 × 140) ÷ 60 = 105 min'],
|
|
129
|
+
},
|
|
130
|
+
{
|
|
131
|
+
icon: 'mdi:monitor-screenshot',
|
|
132
|
+
title: 'Ontwerp en schermen',
|
|
133
|
+
description: 'Als de afbeelding 1920 px breed is en ik deze wil verkleinen naar 800 px met behoud van de verhouding...',
|
|
134
|
+
points: ['(OorspronkelijkeHoogte × 800) ÷ 1920 = NieuweHoogte'],
|
|
135
|
+
},
|
|
136
|
+
],
|
|
137
|
+
},
|
|
138
|
+
{
|
|
139
|
+
type: 'title',
|
|
140
|
+
text: 'Hoe werkt de formule?',
|
|
141
|
+
level: 2,
|
|
142
|
+
},
|
|
143
|
+
{
|
|
144
|
+
type: 'paragraph',
|
|
145
|
+
html: 'De formule is altijd hetzelfde: <strong>vermenigvuldig de diagonale waarden en deel door de resterende waarde</strong>.',
|
|
146
|
+
},
|
|
147
|
+
{
|
|
148
|
+
type: 'code',
|
|
149
|
+
code: '(B × C) ÷ A = X',
|
|
150
|
+
ariaLabel: 'Eenvoudige directe regel van drie formule',
|
|
151
|
+
},
|
|
152
|
+
{
|
|
153
|
+
type: 'paragraph',
|
|
154
|
+
html: 'In de calculator: we vermenigvuldigen waarde <strong>B</strong> met waarde <strong>C</strong> en delen door <strong>A</strong>. Het resultaat is <strong>X</strong>.',
|
|
155
|
+
},
|
|
156
|
+
{
|
|
157
|
+
type: 'title',
|
|
158
|
+
text: 'Professioneel en dagelijks gebruik',
|
|
159
|
+
level: 2,
|
|
160
|
+
},
|
|
161
|
+
{
|
|
162
|
+
type: 'paragraph',
|
|
163
|
+
html: 'Naast schoolwiskunde is de regel van drie overal: in de farmacie voor het berekenen van doseringen op basis van lichaamsgewicht, in de fotografie voor het berekenen van belichtingstijden, in de financiële wereld voor het berekenen van procentuele variaties, of bij het drukken voor het schalen van formaatmaten.',
|
|
164
|
+
},
|
|
165
|
+
{
|
|
166
|
+
type: 'tip',
|
|
167
|
+
title: 'Precisietip',
|
|
168
|
+
html: 'Het resultaat wordt weergegeven met maximaal 4 significante decimalen. Als u met geld of exacte afmetingen werkt, vergeet dan niet af te ronden volgens de context: euro\'s op 2 decimalen, pixels op gehele getallen.',
|
|
169
|
+
},
|
|
170
|
+
],
|
|
171
|
+
};
|
|
@@ -0,0 +1,171 @@
|
|
|
1
|
+
import type { ToolLocaleContent } from '../../../types';
|
|
2
|
+
import type { WithContext, FAQPage, HowTo, SoftwareApplication } from 'schema-dts';
|
|
3
|
+
import type { RuleOfThreeUI } from '../ui';
|
|
4
|
+
|
|
5
|
+
const faqData = [
|
|
6
|
+
{
|
|
7
|
+
question: 'Czym jest prosta reguła trzech?',
|
|
8
|
+
answer: 'To matematyczna metoda rozwiązywania problemów proporcjonalności pomiędzy trzema znanymi wartościami a jedną niewiadomą. Nazywa się ją „prostą”, ponieważ gdy jedna wielkość rośnie, druga rośnie w tej samej proporcji.',
|
|
9
|
+
},
|
|
10
|
+
{
|
|
11
|
+
question: 'Kiedy należy stosować odwrotną regułę trzech?',
|
|
12
|
+
answer: 'Stosuje się ją, gdy wielkości są odwrotnie proporcjonalne (jeśli jedna rośnie, druga maleje). Na przykład: jeśli 2 malarzy pracuje 5 godzin, 4 malarzy będzie pracować krócej. Nasz obecny kalkulator skupia się na proporcjonalności prostej.',
|
|
13
|
+
},
|
|
14
|
+
{
|
|
15
|
+
question: 'Czy jest wystarczająco dokładny do profesjonalnych obliczeń?',
|
|
16
|
+
answer: 'Tak. Nasz kalkulator wykorzystuje wysoką precyzję zmiennoprzecinkową, idealną do dostosowywania dawek, skalowania projektów graficznych, budżetów komercyjnych i przeliczania przepisów.',
|
|
17
|
+
},
|
|
18
|
+
{
|
|
19
|
+
question: 'Jak obliczyć to ręcznie?',
|
|
20
|
+
answer: 'Wzór to: (Wartość B * Wartość C) / Wartość A = X. Oznacza to, że mnożysz wartości po przekątnej i dzielisz wynik przez pozostałą wartość.',
|
|
21
|
+
},
|
|
22
|
+
];
|
|
23
|
+
|
|
24
|
+
const howToData = [
|
|
25
|
+
{
|
|
26
|
+
name: 'Określ podstawową zależność',
|
|
27
|
+
text: 'Wprowadź dwie znane wartości, które tworzą początkową proporcję (np. 100 km odpowiada 8 litrom).',
|
|
28
|
+
},
|
|
29
|
+
{
|
|
30
|
+
name: 'Wprowadź trzecią wartość',
|
|
31
|
+
text: 'Wpisz nową wartość, której odpowiednik chcesz znaleźć (np. jeśli zamierzam przejechać 250 km...).',
|
|
32
|
+
},
|
|
33
|
+
{
|
|
34
|
+
name: 'Otrzymaj wynik',
|
|
35
|
+
text: 'System automatycznie obliczy niewiadomą wartość (X) w czasie rzeczywistym, bez konieczności naciskania jakichkolwiek przycisków.',
|
|
36
|
+
},
|
|
37
|
+
{
|
|
38
|
+
name: 'Kopiuj lub resetuj',
|
|
39
|
+
text: 'Możesz skopiować wynik bezpośrednio do schowka lub wyczyścić pola, aby wykonać nowe obliczenie.',
|
|
40
|
+
},
|
|
41
|
+
];
|
|
42
|
+
|
|
43
|
+
const faqSchema: WithContext<FAQPage> = {
|
|
44
|
+
'@context': 'https://schema.org',
|
|
45
|
+
'@type': 'FAQPage',
|
|
46
|
+
mainEntity: faqData.map((item) => ({
|
|
47
|
+
'@type': 'Question',
|
|
48
|
+
name: item.question,
|
|
49
|
+
acceptedAnswer: { '@type': 'Answer', text: item.answer },
|
|
50
|
+
})),
|
|
51
|
+
};
|
|
52
|
+
|
|
53
|
+
const howToSchema: WithContext<HowTo> = {
|
|
54
|
+
'@context': 'https://schema.org',
|
|
55
|
+
'@type': 'HowTo',
|
|
56
|
+
name: 'Jak korzystać z kalkulatora reguły trzech',
|
|
57
|
+
step: howToData.map((s) => ({ '@type': 'HowToStep', name: s.name, text: s.text })),
|
|
58
|
+
};
|
|
59
|
+
|
|
60
|
+
const appSchema: WithContext<SoftwareApplication> = {
|
|
61
|
+
'@context': 'https://schema.org',
|
|
62
|
+
'@type': 'SoftwareApplication',
|
|
63
|
+
name: 'Kalkulator Prostej Reguły Trzech',
|
|
64
|
+
applicationCategory: 'UtilitiesApplication',
|
|
65
|
+
operatingSystem: 'Web',
|
|
66
|
+
offers: { '@type': 'Offer', price: '0', priceCurrency: 'EUR' },
|
|
67
|
+
description: 'Błyskawicznie rozwiązuj proporcje matematyczne. Ostateczne narzędzie do obliczania ilości, przepisów, rabatów i konwersji.',
|
|
68
|
+
};
|
|
69
|
+
|
|
70
|
+
const ui: RuleOfThreeUI = {
|
|
71
|
+
labelA: 'Jeśli mam...',
|
|
72
|
+
labelB: 'To odpowiada...',
|
|
73
|
+
labelC: 'A teraz mam...',
|
|
74
|
+
labelX: 'Wynik (X)',
|
|
75
|
+
hintA: 'Początkowa ilość',
|
|
76
|
+
hintB: 'Znana wartość',
|
|
77
|
+
hintC: 'Nowa ilość',
|
|
78
|
+
hintX: 'Obliczona wartość',
|
|
79
|
+
separatorIsTo: 'ma się do',
|
|
80
|
+
separatorWillBe: 'wyniesie',
|
|
81
|
+
copyTitle: 'Kopiuj wynik',
|
|
82
|
+
};
|
|
83
|
+
|
|
84
|
+
export const content: ToolLocaleContent<RuleOfThreeUI> = {
|
|
85
|
+
slug: 'regula-trzech',
|
|
86
|
+
title: 'Kalkulator Prostej Reguły Trzech',
|
|
87
|
+
description: 'Błyskawicznie rozwiązuj proporcje matematyczne. Ostateczne narzędzie do obliczania ilości, przepisów, rabatów i konwersji.',
|
|
88
|
+
ui,
|
|
89
|
+
faqTitle: 'Często zadawane pytania',
|
|
90
|
+
faq: faqData,
|
|
91
|
+
howTo: howToData,
|
|
92
|
+
bibliographyTitle: 'Źródła',
|
|
93
|
+
bibliography: [
|
|
94
|
+
{ name: 'Proporcjonalność (matematyka) — Wikipedia', url: 'https://pl.wikipedia.org/wiki/Proporcjonalno%C5%9B%C4%87' },
|
|
95
|
+
{ name: 'Proporcje — Khan Academy', url: 'https://pl.khanacademy.org/math/algebra/x2f8bb11595b61c86:solve-equations-inequalities/x2f8bb11595b61c86:ratio-proportions/v/introduction-to-proportions' },
|
|
96
|
+
],
|
|
97
|
+
schemas: [faqSchema, howToSchema, appSchema],
|
|
98
|
+
seo: [
|
|
99
|
+
{
|
|
100
|
+
type: 'title',
|
|
101
|
+
text: 'Do czego służy reguła trzech?',
|
|
102
|
+
level: 2,
|
|
103
|
+
},
|
|
104
|
+
{
|
|
105
|
+
type: 'paragraph',
|
|
106
|
+
html: 'Prosta reguła trzech to „szwajcarski scyzoryk” matematyki. Rozwiązuje problemy, w których znane są trzy dane, a szukamy czwartej. Jeśli znasz zależność między <strong>A i B</strong> i masz nową wartość <strong>C</strong>, kalkulator natychmiast znajdzie <strong>X</strong>.',
|
|
107
|
+
},
|
|
108
|
+
{
|
|
109
|
+
type: 'comparative',
|
|
110
|
+
columns: 2,
|
|
111
|
+
items: [
|
|
112
|
+
{
|
|
113
|
+
icon: 'mdi:chef-hat',
|
|
114
|
+
title: 'Gotowanie i Przepisy',
|
|
115
|
+
description: 'Jeśli przepis wymaga 500g mąki na 4 osoby, ile potrzebuję na 7?',
|
|
116
|
+
points: ['(500 × 7) ÷ 4 = 875g'],
|
|
117
|
+
},
|
|
118
|
+
{
|
|
119
|
+
icon: 'mdi:shopping',
|
|
120
|
+
title: 'Zakupy i Ceny',
|
|
121
|
+
description: 'Jeśli opakowanie 3 puszek kosztuje 2,50 €, ile kosztowałoby mnie 10 puszek?',
|
|
122
|
+
points: ['(2,50 × 10) ÷ 3 = 8,33 €'],
|
|
123
|
+
},
|
|
124
|
+
{
|
|
125
|
+
icon: 'mdi:car',
|
|
126
|
+
title: 'Podróże i Odległość',
|
|
127
|
+
description: 'Jeśli przejechanie 60 km zajmuje mi 45 min, ile czasu zajmie mi przejechanie 140 km?',
|
|
128
|
+
points: ['(45 × 140) ÷ 60 = 105 min'],
|
|
129
|
+
},
|
|
130
|
+
{
|
|
131
|
+
icon: 'mdi:monitor-screenshot',
|
|
132
|
+
title: 'Design i Ekrany',
|
|
133
|
+
description: 'Jeśli obraz ma 1920px szerokości i chcę go zmniejszyć do 800px zachowując proporcje...',
|
|
134
|
+
points: ['(OryginalnaWysokość × 800) ÷ 1920 = NowaWysokość'],
|
|
135
|
+
},
|
|
136
|
+
],
|
|
137
|
+
},
|
|
138
|
+
{
|
|
139
|
+
type: 'title',
|
|
140
|
+
text: 'Jak działa wzór?',
|
|
141
|
+
level: 2,
|
|
142
|
+
},
|
|
143
|
+
{
|
|
144
|
+
type: 'paragraph',
|
|
145
|
+
html: 'Wzór jest zawsze taki sam: <strong>pomnóż wartości po przekątnej i podziel przez pozostałą</strong>.',
|
|
146
|
+
},
|
|
147
|
+
{
|
|
148
|
+
type: 'code',
|
|
149
|
+
code: '(B × C) ÷ A = X',
|
|
150
|
+
ariaLabel: 'Wzór prostej reguły trzech',
|
|
151
|
+
},
|
|
152
|
+
{
|
|
153
|
+
type: 'paragraph',
|
|
154
|
+
html: 'W kalkulatorze: mnożymy wartość <strong>B</strong> przez wartość <strong>C</strong> i dzielimy przez <strong>A</strong>. Wynikiem jest <strong>X</strong>.',
|
|
155
|
+
},
|
|
156
|
+
{
|
|
157
|
+
type: 'title',
|
|
158
|
+
text: 'Zastosowania profesjonalne i codzienne',
|
|
159
|
+
level: 2,
|
|
160
|
+
},
|
|
161
|
+
{
|
|
162
|
+
type: 'paragraph',
|
|
163
|
+
html: 'Poza matematyką szkolną reguła trzech jest wszędzie: w farmacji do obliczania dawek lekarskich na podstawie masy ciała, w fotografii do obliczania czasów naświetlania, w finansach do obliczania zmian procentowych czy w poligrafii do skalowania wymiarów formatów.',
|
|
164
|
+
},
|
|
165
|
+
{
|
|
166
|
+
type: 'tip',
|
|
167
|
+
title: 'Wskazówka dotycząca precyzji',
|
|
168
|
+
html: 'Wynik jest wyświetlany z dokładnością do 4 miejsc po przecinku. Jeśli pracujesz z pieniędzmi lub dokładnymi pomiarami, pamiętaj o zaokrągleniu zgodnie z kontekstem: euro do 2 miejsc po przecinku, piksele do liczb całkowitych.',
|
|
169
|
+
},
|
|
170
|
+
],
|
|
171
|
+
};
|