@jjlmoya/utils-pets 1.28.0 → 1.30.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 -2
- package/scripts/validate-icons.mjs +57 -0
- package/src/category/index.ts +2 -1
- package/src/data.ts +2 -0
- package/src/entries.ts +4 -1
- package/src/index.ts +1 -0
- package/src/tests/i18n_coverage.test.ts +1 -1
- package/src/tests/locale_completeness.test.ts +1 -1
- package/src/tests/mfe_assets_contract.test.ts +54 -0
- package/src/tests/tool_validation.test.ts +3 -3
- package/src/tool/petCollarSizeCalculator/bibliography.astro +6 -0
- package/src/tool/petCollarSizeCalculator/bibliography.ts +12 -0
- package/src/tool/petCollarSizeCalculator/component.astro +65 -0
- package/src/tool/petCollarSizeCalculator/controller.ts +160 -0
- package/src/tool/petCollarSizeCalculator/dom-views.ts +111 -0
- package/src/tool/petCollarSizeCalculator/entry.ts +32 -0
- package/src/tool/petCollarSizeCalculator/evaluator.ts +18 -0
- package/src/tool/petCollarSizeCalculator/i18n/de.ts +44 -0
- package/src/tool/petCollarSizeCalculator/i18n/en.ts +153 -0
- package/src/tool/petCollarSizeCalculator/i18n/es.ts +44 -0
- package/src/tool/petCollarSizeCalculator/i18n/fr.ts +44 -0
- package/src/tool/petCollarSizeCalculator/i18n/id.ts +44 -0
- package/src/tool/petCollarSizeCalculator/i18n/it.ts +44 -0
- package/src/tool/petCollarSizeCalculator/i18n/ja.ts +44 -0
- package/src/tool/petCollarSizeCalculator/i18n/ko.ts +44 -0
- package/src/tool/petCollarSizeCalculator/i18n/nl.ts +44 -0
- package/src/tool/petCollarSizeCalculator/i18n/pl.ts +44 -0
- package/src/tool/petCollarSizeCalculator/i18n/pt.ts +44 -0
- package/src/tool/petCollarSizeCalculator/i18n/ru.ts +44 -0
- package/src/tool/petCollarSizeCalculator/i18n/sv.ts +44 -0
- package/src/tool/petCollarSizeCalculator/i18n/tr.ts +44 -0
- package/src/tool/petCollarSizeCalculator/i18n/zh.ts +44 -0
- package/src/tool/petCollarSizeCalculator/index.ts +11 -0
- package/src/tool/petCollarSizeCalculator/logic.test.ts +63 -0
- package/src/tool/petCollarSizeCalculator/logic.ts +72 -0
- package/src/tool/petCollarSizeCalculator/pet-collar-size-calculator.css +631 -0
- package/src/tool/petCollarSizeCalculator/seo.astro +14 -0
- package/src/tool/petCollarSizeCalculator/storage.ts +29 -0
- package/src/tool/petCollarSizeCalculator/ui.ts +33 -0
- package/src/tools.ts +3 -0
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
import { bibliography } from '../bibliography';
|
|
2
|
+
import type { FAQPage, HowTo, SoftwareApplication, WithContext } from 'schema-dts';
|
|
3
|
+
import type { PetCollarSizeCalculatorLocaleContent } from '../entry';
|
|
4
|
+
import type { PetCollarSizeCalculatorUI } from '../ui';
|
|
5
|
+
|
|
6
|
+
const slug = 'halsband-groesse-haustier-berechnen';
|
|
7
|
+
const title = 'Halsbandgröße für Haustiere berechnen';
|
|
8
|
+
const description = 'Messen Sie den Halsumfang, addieren Sie Bewegungsfreiheit und finden Sie einen verstellbaren Halsbandbereich für die Handprüfung.';
|
|
9
|
+
const ui: PetCollarSizeCalculatorUI = {
|
|
10
|
+
neckCircumferenceLabel: 'Halsumfang', unitLabel: 'Anzeige', centimetres: 'Zentimeter', inches: 'Zoll', allowanceLabel: 'Bewegungsfreiheit', collarTypeLabel: 'Halsbandtyp', flatCollar: 'Flach', breakawayCollar: 'Sicherheitsverschluss', martingaleCollar: 'Martingale', statusTight: 'Mehr Raum einplanen', statusBalanced: 'Bereit zur Prüfung', statusLoose: 'Sicherheit prüfen', statusTightDetail: 'Mehr Raum einplanen.', statusBalancedDetail: 'Diesen Bereich von Hand prüfen.', statusLooseDetail: 'Prüfen, dass es nicht abrutschen kann.', fitStudyLabel: 'Halsband-Passformstudie', fitWindowLabel: 'Diesen Bereich suchen', measuredLabel: 'Gemessener Hals', roomLabel: 'Bewegungsfreiheit', checkLabel: 'Prüfung von Hand', sceneAria: 'Passformstudie mit Halsring und verstellbarem Halsbandbereich', neckMarker: 'Hals', easeMarker: 'Raum', rangeMarker: 'Halsbandbereich', minimumMarker: 'Start', maximumMarker: 'Ende', checkFlat: 'Bequem, sicher, ohne Reibung.', checkBreakaway: 'Bequeme Passform und korrekte Auslösevorrichtung prüfen.', checkMartingale: 'Die Zugschlaufe darf den Hals nicht einengen.', invalidInput: 'Geben Sie einen gültigen Halsumfang und Bewegungsraum ein.',
|
|
11
|
+
};
|
|
12
|
+
const faq: PetCollarSizeCalculatorLocaleContent['faq'] = [
|
|
13
|
+
{ question: 'Wie messe ich den Halsumfang meines Tieres?', answer: 'Legen Sie ein flexibles Maßband dort um den Hals, wo das Halsband sitzen soll. Halten Sie es gerade und nah am Fell, ohne Haut oder Fell zusammenzudrücken. Messen Sie erneut, wenn sich die Position, das Fell oder die Haltung des Tieres ändert.' },
|
|
14
|
+
{ question: 'Warum zeigt der Rechner einen Bereich statt einer Groesse?', answer: 'Verstellbare Halsbaender haben unterschiedliche Einstellbereiche und Hersteller verwenden keine einheitlichen Groessen. Der Rechner addiert Ihren gewaehlten Bewegungsraum und gibt einen kleinen Einkaufsbereich aus. Danach muss das konkrete Halsband am Tier geprueft werden.' },
|
|
15
|
+
{ question: 'Wie viel Bewegungsfreiheit soll ich einplanen?', answer: 'Es gibt keinen universellen Zentimeterwert. Fell, Halsbandbreite, Bauform und Nutzung verändern die passende Einstellung. Verwenden Sie den Wert als sichtbare Annahme und bestätigen Sie die Passform anschließend mit einer ruhigen Handprüfung.' },
|
|
16
|
+
{ question: 'Gilt die Rechnung auch fuer Martingale-Halsbaender?', answer: 'Die erste Groessenschaetzung beginnt mit demselben Halsumfang. Bei einem Martingale-Halsband ist die Sicherheitspruefung jedoch anders: Die Zugschlaufe muss begrenzt sein und darf den Hals nicht einengen. Beachten Sie immer die Herstellerangaben.' },
|
|
17
|
+
{ question: 'Kann ich den Bereich bei einem jungen Tier verwenden?', answer: 'Ja, als Momentaufnahme. Junge Tiere wachsen und verändern ihr Fell, deshalb sollte die Messung regelmäßig wiederholt werden. Ein heutiger Bereich ersetzt keine spätere Kontrolle.' },
|
|
18
|
+
];
|
|
19
|
+
const howTo: PetCollarSizeCalculatorLocaleContent['howTo'] = [
|
|
20
|
+
{ name: 'Hals messen', text: 'Messen Sie den ruhigen, natuerlich stehenden Hals dort, wo das Halsband liegen wird. Das Massband soll flach und nicht straff sein.' },
|
|
21
|
+
{ name: 'Bewegungsraum waehlen', text: 'Stellen Sie den Raum zwischen Hals und Halsband als sichtbaren Eingabewert ein. Zwei Zentimeter sind nur ein leicht lesbares Beispiel.' },
|
|
22
|
+
{ name: 'Halsbandtyp auswaehlen', text: 'Waehlen Sie Flach, Sicherheitsverschluss oder Martingale, damit die abschliessende Pruefung zum Verschluss passt.' },
|
|
23
|
+
{ name: 'Einstellbereich vergleichen', text: 'Suchen Sie ein verstellbares Halsband, das den gesamten Bereich abdeckt, und pruefen Sie es anschliessend am Tier.' },
|
|
24
|
+
];
|
|
25
|
+
const seo: PetCollarSizeCalculatorLocaleContent['seo'] = [
|
|
26
|
+
{ type: 'summary', title: 'Vom Halsmass zum passenden Einkaufsbereich', items: ['Messen Sie dort, wo das Halsband wirklich sitzen wird.', 'Machen Sie den Bewegungsraum sichtbar statt nach Rasse oder Gewicht zu raten.', 'Vergleichen Sie den Bereich mit der echten Verstellspanne des Produkts.', 'Beenden Sie die Auswahl mit einer ruhigen Handpruefung.'] },
|
|
27
|
+
{ type: 'title', text: 'Was diese Halsbandberechnung entscheidet', level: 2 },
|
|
28
|
+
{ type: 'paragraph', html: 'Eine Groessentabelle ist oft unklar, wenn ein Tier zwischen zwei Groessen liegt, dichtes Fell hat oder noch waechst. Dieser Rechner beginnt mit einem Messwert, den Sie selbst kontrollieren: dem Umfang an der Stelle, an der das Halsband liegen soll. Dazu kommt der Bewegungsraum, den Sie bewusst waehlen. Das Ergebnis ist kein Marketinglabel wie klein, mittel oder gross, sondern ein konkreter Bereich, den Sie mit Produktangaben vergleichen koennen.' },
|
|
29
|
+
{ type: 'paragraph', html: 'Der Bereich bleibt absichtlich klein. Verstellbare Halsbaender werden nicht nach einer weltweit einheitlichen Norm gefertigt, und die nutzbare Laenge kann sich von der Bezeichnung auf einer Produktseite unterscheiden. Ein Produkt passt erst dann in die Auswahl, wenn seine Verstellung den ganzen Bereich abdeckt. Danach pruefen Sie Kanten, Verschluss, Fell, Bewegung und die Angaben des Herstellers.' },
|
|
30
|
+
{ type: 'title', text: 'So messen Sie vor dem Einkauf', level: 2 },
|
|
31
|
+
{ type: 'list', items: ['Messen Sie, wenn das Tier ruhig steht und normal atmet.', 'Halten Sie das Band gerade und druecken Sie Fell oder Haut nicht zusammen.', 'Wiederholen Sie die Messung, wenn das Halsband hoeher oder tiefer sitzen soll.', 'Bei jungen Tieren das Datum notieren und die Passform regelmaessig neu pruefen.'] },
|
|
32
|
+
{ type: 'paragraph', html: 'Der Bewegungsraum ist eine Annahme, keine Sicherheitsgarantie. Fell, Halsbandbreite, Material, Verschluss und Aktivitaet beeinflussen die richtige Einstellung. Eine allgemeine Fingerpruefung kann helfen, ersetzt aber keine Beobachtung des individuellen Tieres. Wenn Reiben, Husten, Schmerzen, Atemprobleme oder Stress auftreten, nehmen Sie das Halsband ab und holen Sie fachkundige Hilfe.' },
|
|
33
|
+
{ type: 'title', text: 'Die Signale im Passformrad lesen', level: 2 },
|
|
34
|
+
{ type: 'table', headers: ['Signal', 'Bedeutung', 'Naechster Schritt'], rows: [['Gemessener Hals', 'Der Umfang vor dem Bewegungsraum.', 'Messung bei Bedarf wiederholen.'], ['Start', 'Halsumfang plus Ihr Bewegungsraum.', 'Als untere Grenze der Verstellung verwenden.'], ['Ende', 'Ein kleiner Vergleichsbereich oberhalb des Starts.', 'Produkt suchen, das ihn vollstaendig abdeckt.'], ['Pruefung', 'Hinweis auf die gewaehlte Annahme.', 'Am Tier von Hand bestaetigen.']] },
|
|
35
|
+
{ type: 'title', text: 'Der Halsbandtyp ändert die letzte Prüfung', level: 2 },
|
|
36
|
+
{ type: 'paragraph', html: 'Ein flaches Halsband braucht eine andere Handprüfung als ein Sicherheitsverschluss oder ein Martingale-Modell. Achten Sie auf die Kante, die Schnalle und die Begrenzung der Zugschlaufe. Die Zahl hilft bei der Auswahl; das ruhige Tier und die Herstellerangaben entscheiden über die tatsächliche Verwendung.' },
|
|
37
|
+
{ type: 'tip', title: 'Leise Handpruefung', html: 'Legen Sie das Halsband an, wenn das Tier ruhig ist. Es soll sich bewegen, atmen, fressen und trinken koennen, ohne dass das Halsband scheuert oder ueber den Kopf rutscht. Nach Fellpflege, Wachstum, Gewichtsveraenderung oder einer neuen Position erneut pruefen.' },
|
|
38
|
+
];
|
|
39
|
+
const schemas: PetCollarSizeCalculatorLocaleContent['schemas'] = [
|
|
40
|
+
{ '@context': 'https://schema.org', '@type': 'SoftwareApplication', name: title, description, applicationCategory: 'LifestyleApplication', operatingSystem: 'Web', offers: { '@type': 'Offer', price: '0', priceCurrency: 'EUR' } } as WithContext<SoftwareApplication>,
|
|
41
|
+
{ '@context': 'https://schema.org', '@type': 'FAQPage', mainEntity: faq.map((item) => ({ '@type': 'Question', name: item.question, acceptedAnswer: { '@type': 'Answer', text: item.answer } })) } as WithContext<FAQPage>,
|
|
42
|
+
{ '@context': 'https://schema.org', '@type': 'HowTo', name: title, step: howTo.map((step) => ({ '@type': 'HowToStep', name: step.name, text: step.text })) } as WithContext<HowTo>,
|
|
43
|
+
];
|
|
44
|
+
export const content: PetCollarSizeCalculatorLocaleContent = { slug, title, description, ui, seo, faq, bibliography, howTo, schemas };
|
|
@@ -0,0 +1,153 @@
|
|
|
1
|
+
import { bibliography } from '../bibliography';
|
|
2
|
+
import type { FAQPage, HowTo, SoftwareApplication, WithContext } from 'schema-dts';
|
|
3
|
+
import type { PetCollarSizeCalculatorLocaleContent } from '../entry';
|
|
4
|
+
import type { PetCollarSizeCalculatorUI } from '../ui';
|
|
5
|
+
|
|
6
|
+
const slug = 'pet-collar-size-calculator';
|
|
7
|
+
const title = 'Pet Collar Size Calculator';
|
|
8
|
+
const description = 'Measure a pet neck, add breathing room, and find an adjustable collar range to check by hand.';
|
|
9
|
+
|
|
10
|
+
const ui: PetCollarSizeCalculatorUI = {
|
|
11
|
+
neckCircumferenceLabel: 'Neck circumference',
|
|
12
|
+
unitLabel: 'Display',
|
|
13
|
+
centimetres: 'Centimetres',
|
|
14
|
+
inches: 'Inches',
|
|
15
|
+
allowanceLabel: 'Breathing room',
|
|
16
|
+
collarTypeLabel: 'Collar type',
|
|
17
|
+
flatCollar: 'Flat',
|
|
18
|
+
breakawayCollar: 'Breakaway',
|
|
19
|
+
martingaleCollar: 'Martingale',
|
|
20
|
+
statusTight: 'Add more room',
|
|
21
|
+
statusBalanced: 'Ready to check',
|
|
22
|
+
statusLoose: 'Check security',
|
|
23
|
+
statusTightDetail: 'Add more room.',
|
|
24
|
+
statusBalancedDetail: 'Check this span by hand.',
|
|
25
|
+
statusLooseDetail: 'Check it cannot slip.',
|
|
26
|
+
fitStudyLabel: 'Collar fit study',
|
|
27
|
+
fitWindowLabel: 'Find this span',
|
|
28
|
+
measuredLabel: 'Measured neck',
|
|
29
|
+
roomLabel: 'Breathing room',
|
|
30
|
+
checkLabel: 'Hands-on check',
|
|
31
|
+
sceneAria: 'Collar fit study showing the neck ring and adjustable collar span',
|
|
32
|
+
neckMarker: 'neck',
|
|
33
|
+
easeMarker: 'room',
|
|
34
|
+
rangeMarker: 'collar span',
|
|
35
|
+
minimumMarker: 'start',
|
|
36
|
+
maximumMarker: 'end',
|
|
37
|
+
checkFlat: 'Comfortable, secure, no rubbing.',
|
|
38
|
+
checkBreakaway: 'Comfortable fit and correct release hardware.',
|
|
39
|
+
checkMartingale: 'The tightening loop must not choke.',
|
|
40
|
+
invalidInput: 'Enter a valid neck measurement and breathing room.',
|
|
41
|
+
};
|
|
42
|
+
|
|
43
|
+
const faq: PetCollarSizeCalculatorLocaleContent['faq'] = [
|
|
44
|
+
{
|
|
45
|
+
question: 'How do I measure a pet neck for a collar?',
|
|
46
|
+
answer: 'Use a flexible tape around the place where the collar will rest. Keep the tape level and close to the coat without compressing the neck. Record the circumference, then use the calculator to add the breathing room you want. Measure again if the animal moves, if the coat changes, or if the collar will sit in a different position.',
|
|
47
|
+
},
|
|
48
|
+
{
|
|
49
|
+
question: 'Why does the calculator return a range instead of one collar size?',
|
|
50
|
+
answer: 'Collars are adjustable and product size labels are not consistent between makers. The result adds your allowance to the measured neck and creates a small comparison span. Use it to filter product dimensions, then check the actual collar on the animal. The span is not a substitute for a physical fit test.',
|
|
51
|
+
},
|
|
52
|
+
{
|
|
53
|
+
question: 'What is a sensible comfort allowance?',
|
|
54
|
+
answer: 'There is no single allowance that fits every animal, coat, collar construction, or activity. The calculator starts at 2 cm so the first example is easy to read, but you can change it. Welfare guidance commonly describes a comfortable gap that allows a finger check without letting the collar slip. Treat the number as a planning input and confirm the result by hand.',
|
|
55
|
+
},
|
|
56
|
+
{
|
|
57
|
+
question: 'Does a martingale collar use a different formula?',
|
|
58
|
+
answer: 'The first size estimate still begins with the measured neck and selected allowance because the animal measurement does not change with the label on the collar. The important difference is the adjustment and use check: the tightening loop must not choke the animal, and the collar should be fitted by someone who understands the design if you are unsure.',
|
|
59
|
+
},
|
|
60
|
+
{
|
|
61
|
+
question: 'Can this calculator choose a collar for a puppy or kitten?',
|
|
62
|
+
answer: 'It can help you compare a current measurement, but a growing animal needs frequent rechecks. A collar that fits today may become tight quickly. Inspect the fit regularly, follow the manufacturer instructions, and get professional advice if there is rubbing, pain, coughing, breathing difficulty, or a risk of the collar catching.',
|
|
63
|
+
},
|
|
64
|
+
];
|
|
65
|
+
|
|
66
|
+
const howTo: PetCollarSizeCalculatorLocaleContent['howTo'] = [
|
|
67
|
+
{ name: 'Measure the neck', text: 'Wrap a flexible tape around the place where the collar will sit. Keep it flat, level, and close to the coat without pulling it tight.' },
|
|
68
|
+
{ name: 'Choose the allowance', text: 'Enter the breathing room you want between the neck and collar. The 2 cm example is only a starting point, not a universal rule.' },
|
|
69
|
+
{ name: 'Select the collar type', text: 'Choose flat, breakaway, or martingale so the final review reminds you of the hardware and adjustment check that belongs to that design.' },
|
|
70
|
+
{ name: 'Compare the physical collar', text: 'Look for an adjustable span that covers the result, then place it on the calm animal and check comfort, security, movement, and the maker instructions.' },
|
|
71
|
+
];
|
|
72
|
+
|
|
73
|
+
const seo: PetCollarSizeCalculatorLocaleContent['seo'] = [
|
|
74
|
+
{
|
|
75
|
+
type: 'summary',
|
|
76
|
+
title: 'Turn a neck measurement into a collar shopping range',
|
|
77
|
+
items: [
|
|
78
|
+
'Measure the neck where the collar will actually sit.',
|
|
79
|
+
'Add a visible comfort allowance instead of guessing from a breed label.',
|
|
80
|
+
'Compare the result with the adjustable span of the product.',
|
|
81
|
+
'Finish with a calm physical fit check and regular rechecks.',
|
|
82
|
+
],
|
|
83
|
+
},
|
|
84
|
+
{ type: 'title', text: 'What this pet collar calculator helps you decide', level: 2 },
|
|
85
|
+
{
|
|
86
|
+
type: 'paragraph',
|
|
87
|
+
html: 'A collar size chart can be difficult to use when an animal is between sizes, has a thick coat, or is growing quickly. This calculator starts with a measurement you own: the circumference around the neck where the collar will rest. It adds the comfort allowance you choose and returns a small starting span for shopping. That makes the decision more concrete than choosing small, medium, or large from a breed name alone. The unit switch changes the display while preserving the same physical measurement.',
|
|
88
|
+
},
|
|
89
|
+
{
|
|
90
|
+
type: 'paragraph',
|
|
91
|
+
html: 'The result is intentionally a range. Adjustable collars are not manufactured to one universal standard, and the usable length may be different from the headline size on a product page. Compare the result with the maker adjustment range, then check the collar on the animal. A collar can match the number and still be unsuitable because of a stiff edge, a buckle, a tightening loop, a thick coat, or a position that interferes with movement.',
|
|
92
|
+
},
|
|
93
|
+
{ type: 'title', text: 'How to measure before you shop', level: 2 },
|
|
94
|
+
{
|
|
95
|
+
type: 'list',
|
|
96
|
+
items: [
|
|
97
|
+
'Measure while the animal is calm and standing naturally.',
|
|
98
|
+
'Keep a flexible tape level around the neck and do not compress the coat or skin.',
|
|
99
|
+
'Repeat the measurement if the collar will sit higher or lower than your first attempt.',
|
|
100
|
+
'For a young animal, write down the date and recheck the fit as it grows or its coat changes.',
|
|
101
|
+
],
|
|
102
|
+
},
|
|
103
|
+
{
|
|
104
|
+
type: 'paragraph',
|
|
105
|
+
html: 'The comfort allowance is an explicit assumption rather than a hidden promise. The example begins at 2 cm because it gives a readable starting point, but the correct choice depends on the individual animal, the coat, the collar width, and how the collar is used. PDSA advises that a dog collar should be comfortable with space for two fingers between the collar and neck. That check is useful context, but it cannot be converted into one exact centimetre value for every pet. Use the calculator to make your assumption visible, then confirm it by hand.',
|
|
106
|
+
},
|
|
107
|
+
{ type: 'title', text: 'Read the fitting rail', level: 2 },
|
|
108
|
+
{
|
|
109
|
+
type: 'table',
|
|
110
|
+
headers: ['Signal', 'What it means', 'What to do next'],
|
|
111
|
+
rows: [
|
|
112
|
+
['Measured neck', 'The circumference you entered before adding ease.', 'Repeat the measurement if the tape was tight, tilted, or placed differently from the collar.'],
|
|
113
|
+
['Start', 'The measured neck plus your chosen allowance.', 'Use it as the lower edge of the product adjustment span.'],
|
|
114
|
+
['End', 'A 2 cm comparison window beyond the start.', 'Look for an adjustable collar that covers this window without forcing the hardware.'],
|
|
115
|
+
['Fit review', 'A reading of the allowance you selected.', 'Use it as a prompt for a hands on check, not as a pass or fail certificate.'],
|
|
116
|
+
],
|
|
117
|
+
},
|
|
118
|
+
{ type: 'title', text: 'Collar type changes the final check', level: 2 },
|
|
119
|
+
{
|
|
120
|
+
type: 'paragraph',
|
|
121
|
+
html: 'A flat collar should be comfortable and secure without rubbing or pressing into the throat. A breakaway collar must be checked against the manufacturer instructions because its release hardware is part of the safety design. A martingale needs extra care: its tightening loop must be limited so it cannot choke the animal, and the person fitting it should understand how the two loops work. The calculator keeps the first measurement method consistent, then puts the type specific question beside the result.',
|
|
122
|
+
},
|
|
123
|
+
{
|
|
124
|
+
type: 'tip',
|
|
125
|
+
title: 'Do the quiet hands on check',
|
|
126
|
+
html: 'Put the collar on while the animal is calm. Check that the animal can move, breathe, eat, drink, and turn its head normally, and that the collar cannot slip over the head when it should stay on. Recheck after grooming, growth, weight change, wet fur, or a change of collar position. Remove it and seek qualified advice if there is pain, coughing, rubbing, distress, or restricted movement.',
|
|
127
|
+
},
|
|
128
|
+
];
|
|
129
|
+
|
|
130
|
+
const schemas: PetCollarSizeCalculatorLocaleContent['schemas'] = [
|
|
131
|
+
{
|
|
132
|
+
'@context': 'https://schema.org',
|
|
133
|
+
'@type': 'SoftwareApplication',
|
|
134
|
+
name: title,
|
|
135
|
+
description,
|
|
136
|
+
applicationCategory: 'LifestyleApplication',
|
|
137
|
+
operatingSystem: 'Web',
|
|
138
|
+
offers: { '@type': 'Offer', price: '0', priceCurrency: 'EUR' },
|
|
139
|
+
} as WithContext<SoftwareApplication>,
|
|
140
|
+
{
|
|
141
|
+
'@context': 'https://schema.org',
|
|
142
|
+
'@type': 'FAQPage',
|
|
143
|
+
mainEntity: faq.map((item) => ({ '@type': 'Question', name: item.question, acceptedAnswer: { '@type': 'Answer', text: item.answer } })),
|
|
144
|
+
} as WithContext<FAQPage>,
|
|
145
|
+
{
|
|
146
|
+
'@context': 'https://schema.org',
|
|
147
|
+
'@type': 'HowTo',
|
|
148
|
+
name: title,
|
|
149
|
+
step: howTo.map((step) => ({ '@type': 'HowToStep', name: step.name, text: step.text })),
|
|
150
|
+
} as WithContext<HowTo>,
|
|
151
|
+
];
|
|
152
|
+
|
|
153
|
+
export const content: PetCollarSizeCalculatorLocaleContent = { slug, title, description, ui, seo, faq, bibliography, howTo, schemas };
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
import { bibliography } from '../bibliography';
|
|
2
|
+
import type { FAQPage, HowTo, SoftwareApplication, WithContext } from 'schema-dts';
|
|
3
|
+
import type { PetCollarSizeCalculatorLocaleContent } from '../entry';
|
|
4
|
+
import type { PetCollarSizeCalculatorUI } from '../ui';
|
|
5
|
+
|
|
6
|
+
const slug = 'calculadora-talla-collar-mascotas';
|
|
7
|
+
const title = 'Calculadora de talla de collar para mascotas';
|
|
8
|
+
const description = 'Mide el cuello, añade espacio de comodidad y encuentra un rango de collar ajustable para comprobarlo a mano.';
|
|
9
|
+
const ui: PetCollarSizeCalculatorUI = {
|
|
10
|
+
neckCircumferenceLabel: 'Contorno del cuello', unitLabel: 'Mostrar', centimetres: 'Centímetros', inches: 'Pulgadas', allowanceLabel: 'Espacio de comodidad', collarTypeLabel: 'Tipo de collar', flatCollar: 'Plano', breakawayCollar: 'Antiescape', martingaleCollar: 'Martingale', statusTight: 'Añade más espacio', statusBalanced: 'Listo para comprobar', statusLoose: 'Comprueba la seguridad', statusTightDetail: 'Añade más espacio.', statusBalancedDetail: 'Comprueba este rango a mano.', statusLooseDetail: 'Comprueba que no pueda deslizarse.', fitStudyLabel: 'Estudio de ajuste del collar', fitWindowLabel: 'Busca este rango', measuredLabel: 'Cuello medido', roomLabel: 'Espacio de comodidad', checkLabel: 'Comprobación manual', sceneAria: 'Estudio de ajuste con el círculo del cuello y el rango ajustable del collar', neckMarker: 'cuello', easeMarker: 'espacio', rangeMarker: 'rango del collar', minimumMarker: 'inicio', maximumMarker: 'final', checkFlat: 'Cómodo, seguro y sin rozaduras.', checkBreakaway: 'Comprueba el ajuste y el mecanismo de liberación.', checkMartingale: 'El lazo de tensión no debe apretar el cuello.', invalidInput: 'Introduce un contorno de cuello y un espacio válidos.',
|
|
11
|
+
};
|
|
12
|
+
const faq: PetCollarSizeCalculatorLocaleContent['faq'] = [
|
|
13
|
+
{ question: '¿Cómo mido el cuello de mi mascota?', answer: 'Rodea con una cinta flexible el punto donde se apoyará el collar. Mantenla recta y cerca del pelo, sin comprimir la piel ni el manto. Repite la medida si cambia la posición del collar, el pelo o la postura del animal.' },
|
|
14
|
+
{ question: '¿Por qué devuelve un rango y no una talla única?', answer: 'Los collares ajustables tienen recorridos diferentes y las etiquetas de talla no son iguales entre fabricantes. La calculadora suma el espacio que eliges y crea un pequeño rango para comparar productos. Después debes probar el collar concreto sobre la mascota.' },
|
|
15
|
+
{ question: '¿Cuánto espacio de comodidad debo añadir?', answer: 'No existe una cifra universal. El pelo, la anchura del collar, el material y la actividad cambian el ajuste. Usa el valor como una hipótesis visible y confirma después la comodidad y la seguridad con una revisión manual tranquila.' },
|
|
16
|
+
{ question: '¿La fórmula sirve para un collar martingale?', answer: 'La estimación inicial parte del mismo contorno de cuello. La revisión final cambia: el lazo de tensión debe estar limitado y nunca debe estrangular. Sigue las instrucciones del fabricante y pide ayuda si no conoces el mecanismo.' },
|
|
17
|
+
{ question: '¿Puedo usar el resultado con un cachorro o gatito?', answer: 'Sí, como una fotografía del ajuste actual. Los animales jóvenes crecen y cambian de pelo, así que debes repetir la medida con frecuencia y no dejar el collar puesto sin supervisión si existe riesgo de que se enganche.' },
|
|
18
|
+
];
|
|
19
|
+
const howTo: PetCollarSizeCalculatorLocaleContent['howTo'] = [
|
|
20
|
+
{ name: 'Mide el cuello', text: 'Mide al animal tranquilo y de pie, justo donde se apoyará el collar. La cinta debe quedar plana y no apretar.' },
|
|
21
|
+
{ name: 'Elige el espacio', text: 'Ajusta el espacio entre cuello y collar con el control visible. Los 2 cm iniciales son solo un ejemplo legible.' },
|
|
22
|
+
{ name: 'Selecciona el tipo', text: 'Elige plano, antiescape o martingale para que el recordatorio final encaje con el mecanismo elegido.' },
|
|
23
|
+
{ name: 'Compara la regulación', text: 'Busca un collar ajustable que cubra todo el rango y termina con una prueba física sobre el animal.' },
|
|
24
|
+
];
|
|
25
|
+
const seo: PetCollarSizeCalculatorLocaleContent['seo'] = [
|
|
26
|
+
{ type: 'summary', title: 'Convierte una medida en un rango de compra', items: ['Mide donde el collar se colocará de verdad.', 'Haz visible el espacio de comodidad en vez de adivinar por raza.', 'Compara el rango con la regulación real del producto.', 'Termina con una prueba tranquila sobre la mascota.'] },
|
|
27
|
+
{ type: 'title', text: 'Qué decisión ayuda a tomar esta calculadora', level: 2 },
|
|
28
|
+
{ type: 'paragraph', html: 'Las tablas de tallas confunden cuando una mascota queda entre dos medidas, tiene mucho pelo o todavía está creciendo. Esta herramienta comienza con un dato que puedes verificar: el contorno del cuello en el lugar donde descansará el collar. Después suma el espacio de comodidad que tú eliges. El resultado no intenta adivinar una talla comercial como pequeña, mediana o grande; crea un rango concreto para filtrar las medidas ajustables de los productos.' },
|
|
29
|
+
{ type: 'paragraph', html: 'El rango es deliberadamente pequeño porque sirve como punto de partida para comparar. Los collares ajustables no tienen una norma universal y la longitud útil puede no coincidir con el nombre de la talla de una tienda. Un producto entra en la selección cuando su recorrido cubre todo el rango. Aun así, el número no confirma por sí solo que el borde, la hebilla, el pelo o el mecanismo sean adecuados.' },
|
|
30
|
+
{ type: 'title', text: 'Cómo medir antes de comprar', level: 2 },
|
|
31
|
+
{ type: 'list', items: ['Mide cuando el animal esté tranquilo y de pie con naturalidad.', 'Mantén la cinta nivelada y no comprimas el pelo ni la piel.', 'Repite la medida si el collar se colocará más arriba o más abajo.', 'En animales jóvenes, anota la fecha y vuelve a comprobar el ajuste durante el crecimiento.'] },
|
|
32
|
+
{ type: 'paragraph', html: 'El espacio de comodidad es una suposición explícita, no una garantía de seguridad. El valor correcto depende del animal, el manto, la anchura, el material y el uso. La comprobación de los dedos puede orientarte, pero no convierte una cifra en una regla para todos. Si observas rozaduras, tos, dolor, dificultad para respirar, angustia o movimiento limitado, retira el collar y consulta a un profesional.' },
|
|
33
|
+
{ type: 'title', text: 'Lee el círculo de ajuste', level: 2 },
|
|
34
|
+
{ type: 'table', headers: ['Señal', 'Qué significa', 'Qué hacer después'], rows: [['Cuello medido', 'El contorno antes de añadir espacio.', 'Repite la medida si la cinta estaba torcida o apretada.'], ['Inicio', 'El cuello más el espacio elegido.', 'Úsalo como límite inferior de la regulación.'], ['Final', 'Una ventana corta para comparar productos.', 'Busca una regulación que cubra toda la ventana.'], ['Revisión', 'Un aviso relacionado con tu espacio elegido.', 'Confírmalo físicamente sobre el animal.']] },
|
|
35
|
+
{ type: 'title', text: 'El tipo de collar cambia la revisión final', level: 2 },
|
|
36
|
+
{ type: 'paragraph', html: 'Un collar plano se revisa por comodidad y seguridad, mientras que uno antiescape o martingale añade una pregunta sobre su mecanismo. Comprueba los bordes, la hebilla, el pelo y cualquier lazo de tensión. El número ayuda a filtrar productos, pero la decisión final depende de la mascota tranquila y de las instrucciones del fabricante.' },
|
|
37
|
+
{ type: 'tip', title: 'Haz una comprobación tranquila', html: 'Coloca el collar con la mascota calmada. Debe poder moverse, respirar, comer, beber y girar la cabeza sin roces. Comprueba también que no pueda salir por encima de la cabeza cuando deba permanecer puesto. Revisa el ajuste después del cepillado, el crecimiento, un cambio de peso o un cambio de posición.' },
|
|
38
|
+
];
|
|
39
|
+
const schemas: PetCollarSizeCalculatorLocaleContent['schemas'] = [
|
|
40
|
+
{ '@context': 'https://schema.org', '@type': 'SoftwareApplication', name: title, description, applicationCategory: 'LifestyleApplication', operatingSystem: 'Web', offers: { '@type': 'Offer', price: '0', priceCurrency: 'EUR' } } as WithContext<SoftwareApplication>,
|
|
41
|
+
{ '@context': 'https://schema.org', '@type': 'FAQPage', mainEntity: faq.map((item) => ({ '@type': 'Question', name: item.question, acceptedAnswer: { '@type': 'Answer', text: item.answer } })) } as WithContext<FAQPage>,
|
|
42
|
+
{ '@context': 'https://schema.org', '@type': 'HowTo', name: title, step: howTo.map((step) => ({ '@type': 'HowToStep', name: step.name, text: step.text })) } as WithContext<HowTo>,
|
|
43
|
+
];
|
|
44
|
+
export const content: PetCollarSizeCalculatorLocaleContent = { slug, title, description, ui, seo, faq, bibliography, howTo, schemas };
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
import { bibliography } from '../bibliography';
|
|
2
|
+
import type { FAQPage, HowTo, SoftwareApplication, WithContext } from 'schema-dts';
|
|
3
|
+
import type { PetCollarSizeCalculatorLocaleContent } from '../entry';
|
|
4
|
+
import type { PetCollarSizeCalculatorUI } from '../ui';
|
|
5
|
+
|
|
6
|
+
const slug = 'calculateur-taille-collier-animal';
|
|
7
|
+
const title = 'Calculateur de taille de collier pour animal';
|
|
8
|
+
const description = 'Mesurez le tour de cou, ajoutez une marge de confort et trouvez une plage de réglage à vérifier sur votre animal.';
|
|
9
|
+
const ui: PetCollarSizeCalculatorUI = {
|
|
10
|
+
neckCircumferenceLabel: 'Tour de cou', unitLabel: 'Afficher', centimetres: 'Centimètres', inches: 'Pouces', allowanceLabel: 'Marge de confort', collarTypeLabel: 'Type de collier', flatCollar: 'Classique', breakawayCollar: 'À ouverture', martingaleCollar: 'Martingale', statusTight: 'Ajoutez de la marge', statusBalanced: 'Prêt à vérifier', statusLoose: 'Vérifiez la sécurité', statusTightDetail: 'Ajoutez de la marge.', statusBalancedDetail: 'Vérifiez cette plage à la main.', statusLooseDetail: 'Vérifiez qu il ne peut pas glisser.', fitStudyLabel: 'Étude de réglage du collier', fitWindowLabel: 'Trouvez cette plage', measuredLabel: 'Cou mesuré', roomLabel: 'Marge de confort', checkLabel: 'Vérification manuelle', sceneAria: 'Étude de réglage montrant le cercle du cou et la plage du collier', neckMarker: 'cou', easeMarker: 'marge', rangeMarker: 'plage du collier', minimumMarker: 'début', maximumMarker: 'fin', checkFlat: 'Confortable, sûr et sans frottement.', checkBreakaway: 'Vérifiez le confort et le mécanisme d ouverture.', checkMartingale: 'La boucle de serrage ne doit pas comprimer le cou.', invalidInput: 'Saisissez un tour de cou et une marge valides.',
|
|
11
|
+
};
|
|
12
|
+
const faq: PetCollarSizeCalculatorLocaleContent['faq'] = [
|
|
13
|
+
{ question: 'Comment mesurer le cou de mon animal ?', answer: 'Placez un mètre souple autour de l endroit où le collier reposera. Gardez-le horizontal et proche du pelage sans serrer la peau. Recommencez si la position du collier, le pelage ou la posture de l animal change.' },
|
|
14
|
+
{ question: 'Pourquoi obtenir une plage plutôt qu une taille ?', answer: 'Les colliers réglables ont des courses différentes et les tailles ne sont pas normalisées entre fabricants. Le calcul ajoute la marge choisie et produit une petite plage de comparaison. Le collier réel doit ensuite être essayé sur l animal.' },
|
|
15
|
+
{ question: 'Quelle marge de confort choisir ?', answer: 'Il n existe pas une valeur universelle. Le pelage, la largeur, la matière et l activité changent le réglage. Utilisez le nombre comme une hypothèse visible, puis confirmez le confort et la sécurité par une vérification calme.' },
|
|
16
|
+
{ question: 'Le calcul convient-il à un collier martingale ?', answer: 'La première estimation utilise le même tour de cou. Le contrôle final est différent: la boucle de serrage doit être limitée et ne jamais étrangler. Suivez la notice du fabricant si le mécanisme vous est inconnu.' },
|
|
17
|
+
{ question: 'Puis-je utiliser le résultat pour un jeune animal ?', answer: 'Oui, comme une photographie du réglage actuel. Un jeune animal grandit et son pelage change, donc la mesure doit être répétée régulièrement et contrôlée avec attention.' },
|
|
18
|
+
];
|
|
19
|
+
const howTo: PetCollarSizeCalculatorLocaleContent['howTo'] = [
|
|
20
|
+
{ name: 'Mesurer le cou', text: 'Mesurez l animal calme et debout, à l endroit où le collier sera posé. Le mètre doit rester plat et souple.' },
|
|
21
|
+
{ name: 'Choisir la marge', text: 'Réglez l espace entre le cou et le collier avec le contrôle visible. Les 2 cm initiaux sont seulement un exemple.' },
|
|
22
|
+
{ name: 'Choisir le type', text: 'Sélectionnez classique, à ouverture ou martingale afin d obtenir le rappel adapté au mécanisme.' },
|
|
23
|
+
{ name: 'Comparer le réglage', text: 'Cherchez un collier dont la plage réglable couvre tout le résultat, puis faites l essai physique.' },
|
|
24
|
+
];
|
|
25
|
+
const seo: PetCollarSizeCalculatorLocaleContent['seo'] = [
|
|
26
|
+
{ type: 'summary', title: 'Transformer une mesure en plage d achat', items: ['Mesurez à l endroit où le collier sera réellement placé.', 'Rendez la marge de confort visible au lieu de deviner selon la race.', 'Comparez le résultat avec la plage de réglage du produit.', 'Terminez par un contrôle calme sur l animal.'] },
|
|
27
|
+
{ type: 'title', text: 'La décision aidée par ce calculateur', level: 2 },
|
|
28
|
+
{ type: 'paragraph', html: 'Les tableaux de tailles deviennent imprécis lorsqu un animal se trouve entre deux mesures, possède un pelage épais ou grandit encore. Cet outil part d une donnée vérifiable: le tour de cou à l endroit où le collier reposera. Vous ajoutez ensuite la marge de confort souhaitée. Le résultat n essaie pas de choisir une étiquette commerciale comme petit, moyen ou grand ; il crée une plage concrète à comparer avec les dimensions réglables du produit.' },
|
|
29
|
+
{ type: 'paragraph', html: 'La plage reste volontairement courte pour servir de repère d achat. Les colliers réglables ne suivent pas une norme mondiale et la longueur utile peut différer du nom affiché par une boutique. Un produit entre dans la sélection quand son réglage couvre toute la plage. Le chiffre ne suffit pourtant pas à valider une bordure, une boucle, un pelage ou un mécanisme particulier.' },
|
|
30
|
+
{ type: 'title', text: 'Mesurer avant l achat', level: 2 },
|
|
31
|
+
{ type: 'list', items: ['Mesurez lorsque l animal est calme et debout naturellement.', 'Gardez le mètre droit sans comprimer le poil ni la peau.', 'Recommencez si le collier doit être posé plus haut ou plus bas.', 'Pour un jeune animal, notez la date et vérifiez régulièrement pendant la croissance.'] },
|
|
32
|
+
{ type: 'paragraph', html: 'La marge de confort est une hypothèse explicite, pas une garantie de sécurité. La bonne valeur dépend de l animal, du pelage, de la largeur, de la matière et de l usage. Le contrôle avec les doigts peut donner un repère, mais il ne transforme pas un nombre en règle universelle. En cas de frottement, toux, douleur, gêne respiratoire ou stress, retirez le collier et demandez un avis qualifié.' },
|
|
33
|
+
{ type: 'title', text: 'Lire la roue de réglage', level: 2 },
|
|
34
|
+
{ type: 'table', headers: ['Signal', 'Signification', 'Suite'], rows: [['Cou mesuré', 'Tour avant la marge.', 'Recommencer si le mètre était incliné ou serré.'], ['Début', 'Cou plus marge choisie.', 'Repère inférieur de la plage réglable.'], ['Fin', 'Petite fenêtre pour comparer.', 'Chercher un produit qui couvre toute la fenêtre.'], ['Contrôle', 'Rappel lié à la marge choisie.', 'Confirmer sur l animal.']] },
|
|
35
|
+
{ type: 'title', text: 'Le type de collier change le contrôle final', level: 2 },
|
|
36
|
+
{ type: 'paragraph', html: 'Un collier classique demande une vérification du confort et de la sécurité, tandis qu un modèle à ouverture ou martingale ajoute une question sur son mécanisme. Contrôlez le bord, la boucle, le pelage et la boucle de serrage. Le nombre aide à filtrer les produits, mais la décision finale dépend de l animal calme et de la notice du fabricant.' },
|
|
37
|
+
{ type: 'tip', title: 'Faire un contrôle calme', html: 'Posez le collier lorsque l animal est détendu. Il doit pouvoir bouger, respirer, manger, boire et tourner la tête sans frottement. Vérifiez aussi qu il ne peut pas passer par-dessus la tête lorsqu il doit rester en place. Recommencez après le toilettage, la croissance ou un changement de poids.' },
|
|
38
|
+
];
|
|
39
|
+
const schemas: PetCollarSizeCalculatorLocaleContent['schemas'] = [
|
|
40
|
+
{ '@context': 'https://schema.org', '@type': 'SoftwareApplication', name: title, description, applicationCategory: 'LifestyleApplication', operatingSystem: 'Web', offers: { '@type': 'Offer', price: '0', priceCurrency: 'EUR' } } as WithContext<SoftwareApplication>,
|
|
41
|
+
{ '@context': 'https://schema.org', '@type': 'FAQPage', mainEntity: faq.map((item) => ({ '@type': 'Question', name: item.question, acceptedAnswer: { '@type': 'Answer', text: item.answer } })) } as WithContext<FAQPage>,
|
|
42
|
+
{ '@context': 'https://schema.org', '@type': 'HowTo', name: title, step: howTo.map((step) => ({ '@type': 'HowToStep', name: step.name, text: step.text })) } as WithContext<HowTo>,
|
|
43
|
+
];
|
|
44
|
+
export const content: PetCollarSizeCalculatorLocaleContent = { slug, title, description, ui, seo, faq, bibliography, howTo, schemas };
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
import { bibliography } from '../bibliography';
|
|
2
|
+
import type { FAQPage, HowTo, SoftwareApplication, WithContext } from 'schema-dts';
|
|
3
|
+
import type { PetCollarSizeCalculatorLocaleContent } from '../entry';
|
|
4
|
+
import type { PetCollarSizeCalculatorUI } from '../ui';
|
|
5
|
+
|
|
6
|
+
const slug = 'kalkulator-ukuran-kalung-hewan';
|
|
7
|
+
const title = 'Kalkulator ukuran kalung hewan peliharaan';
|
|
8
|
+
const description = 'Ukur leher, tambahkan ruang nyaman, lalu temukan rentang kalung yang dapat disetel untuk diperiksa langsung.';
|
|
9
|
+
const ui: PetCollarSizeCalculatorUI = {
|
|
10
|
+
neckCircumferenceLabel: 'Lingkar leher', unitLabel: 'Tampilan', centimetres: 'Sentimeter', inches: 'Inci', allowanceLabel: 'Ruang nyaman', collarTypeLabel: 'Jenis kalung', flatCollar: 'Datar', breakawayCollar: 'Pengaman lepas', martingaleCollar: 'Martingale', statusTight: 'Tambahkan ruang', statusBalanced: 'Siap diperiksa', statusLoose: 'Periksa keamanan', statusTightDetail: 'Tambahkan ruang.', statusBalancedDetail: 'Periksa rentang ini dengan tangan.', statusLooseDetail: 'Pastikan tidak mudah terlepas.', fitStudyLabel: 'Studi kecocokan kalung', fitWindowLabel: 'Cari rentang ini', measuredLabel: 'Leher terukur', roomLabel: 'Ruang nyaman', checkLabel: 'Pemeriksaan langsung', sceneAria: 'Studi kecocokan yang menunjukkan lingkar leher dan rentang kalung yang dapat disetel', neckMarker: 'leher', easeMarker: 'ruang', rangeMarker: 'rentang kalung', minimumMarker: 'mulai', maximumMarker: 'akhir', checkFlat: 'Nyaman, aman, dan tidak menggesek.', checkBreakaway: 'Periksa kecocokan dan mekanisme pelepas.', checkMartingale: 'Lingkar pengencang tidak boleh menekan leher.', invalidInput: 'Masukkan lingkar leher dan ruang yang valid.',
|
|
11
|
+
};
|
|
12
|
+
const faq: PetCollarSizeCalculatorLocaleContent['faq'] = [
|
|
13
|
+
{ question: 'Bagaimana mengukur leher hewan?', answer: 'Lingkarkan pita ukur yang lentur di tempat kalung akan berada. Jaga tetap rata dan dekat dengan bulu tanpa menekan kulit atau bulu. Ukur ulang jika posisi kalung, bulu, atau postur hewan berubah.' },
|
|
14
|
+
{ question: 'Mengapa hasilnya berupa rentang?', answer: 'Kalung yang dapat disetel memiliki panjang berbeda dan label ukuran tidak sama antarprodusen. Kalkulator menambahkan ruang yang dipilih lalu membuat rentang kecil untuk perbandingan. Kalung sebenarnya tetap harus diperiksa pada hewan.' },
|
|
15
|
+
{ question: 'Berapa ruang nyaman yang harus dipilih?', answer: 'Tidak ada satu nilai untuk semua hewan. Bulu, lebar, bahan, dan aktivitas memengaruhi kecocokan. Gunakan angka sebagai asumsi yang terlihat, lalu pastikan kenyamanan dan keamanan dengan pemeriksaan langsung yang tenang.' },
|
|
16
|
+
{ question: 'Apakah ini berlaku untuk kalung martingale?', answer: 'Perkiraan awal memakai lingkar leher yang sama. Pemeriksaan akhirnya berbeda: lingkar pengencang harus dibatasi dan tidak boleh mencekik. Ikuti petunjuk produsen jika mekanismenya belum dikenal.' },
|
|
17
|
+
{ question: 'Apakah hasil ini bisa digunakan untuk anak hewan?', answer: 'Bisa sebagai gambaran kecocokan saat ini. Hewan muda tumbuh dan bulunya berubah, jadi pengukuran harus diulang secara berkala dan diperiksa dengan cermat.' },
|
|
18
|
+
];
|
|
19
|
+
const howTo: PetCollarSizeCalculatorLocaleContent['howTo'] = [
|
|
20
|
+
{ name: 'Ukur leher', text: 'Ukur hewan yang tenang dan berdiri alami, di tempat kalung akan berada. Pita harus rata dan tidak menarik.' },
|
|
21
|
+
{ name: 'Pilih ruang', text: 'Atur ruang antara leher dan kalung dengan penggeser yang terlihat. Contoh awal 2 cm bukan aturan universal.' },
|
|
22
|
+
{ name: 'Pilih jenis', text: 'Pilih datar, pengaman lepas, atau martingale agar pengingat sesuai dengan mekanismenya.' },
|
|
23
|
+
{ name: 'Bandingkan setelan', text: 'Cari kalung yang rentang setelannya mencakup seluruh hasil, lalu lakukan uji langsung pada hewan.' },
|
|
24
|
+
];
|
|
25
|
+
const seo: PetCollarSizeCalculatorLocaleContent['seo'] = [
|
|
26
|
+
{ type: 'summary', title: 'Dari ukuran ke rentang belanja', items: ['Ukur di tempat kalung benar-benar akan berada.', 'Tampilkan ruang nyaman alih-alih menebak dari ras.', 'Bandingkan hasil dengan rentang setelan produk.', 'Akhiri dengan pemeriksaan tenang pada hewan.'] },
|
|
27
|
+
{ type: 'title', text: 'Keputusan yang dibantu kalkulator ini', level: 2 },
|
|
28
|
+
{ type: 'paragraph', html: 'Tabel ukuran sering membingungkan saat hewan berada di antara dua ukuran, memiliki bulu tebal, atau masih tumbuh. Alat ini dimulai dari ukuran yang bisa Anda periksa: lingkar leher di tempat kalung akan beristirahat. Setelah itu Anda menambahkan ruang nyaman yang dipilih. Hasilnya tidak menebak label kecil, sedang, atau besar, tetapi membuat rentang konkret untuk dibandingkan dengan ukuran setelan produk.' },
|
|
29
|
+
{ type: 'paragraph', html: 'Rentang dibuat singkat agar berguna sebagai titik awal belanja. Kalung yang dapat disetel tidak memiliki standar dunia yang sama, dan panjang yang dapat digunakan mungkin berbeda dari nama ukuran di toko. Produk masuk pilihan jika setelannya mencakup seluruh rentang. Angka ini tetap tidak membuktikan bahwa tepi, gesper, bulu, atau mekanismenya cocok.' },
|
|
30
|
+
{ type: 'title', text: 'Cara mengukur sebelum membeli', level: 2 },
|
|
31
|
+
{ type: 'list', items: ['Ukur saat hewan tenang dan berdiri alami.', 'Jaga pita tetap rata tanpa menekan bulu atau kulit.', 'Ukur ulang jika kalung akan berada lebih tinggi atau lebih rendah.', 'Untuk hewan muda, catat tanggal dan periksa kecocokan selama pertumbuhan.'] },
|
|
32
|
+
{ type: 'paragraph', html: 'Ruang nyaman adalah asumsi yang terlihat, bukan jaminan keamanan. Nilai yang tepat bergantung pada hewan, bulu, lebar, bahan, dan penggunaan. Pemeriksaan dengan jari dapat membantu, tetapi angka tidak menjadi aturan bagi semua hewan. Jika ada gesekan, batuk, nyeri, sulit bernapas, stres, atau gerak terbatas, lepaskan kalung dan minta nasihat ahli.' },
|
|
33
|
+
{ type: 'title', text: 'Baca lingkar kecocokan', level: 2 },
|
|
34
|
+
{ type: 'table', headers: ['Sinyal', 'Arti', 'Langkah berikutnya'], rows: [['Leher terukur', 'Lingkar sebelum ruang ditambahkan.', 'Ukur ulang jika pita miring atau terlalu ketat.'], ['Mulai', 'Leher ditambah ruang pilihan.', 'Gunakan sebagai batas bawah setelan.'], ['Akhir', 'Jendela kecil untuk perbandingan.', 'Cari setelan yang mencakup seluruh jendela.'], ['Pemeriksaan', 'Pengingat terkait ruang pilihan.', 'Pastikan langsung pada hewan.']] },
|
|
35
|
+
{ type: 'title', text: 'Jenis kalung mengubah pemeriksaan akhir', level: 2 },
|
|
36
|
+
{ type: 'paragraph', html: 'Kalung datar memerlukan pemeriksaan kenyamanan dan keamanan, sedangkan model pengaman lepas atau martingale membutuhkan perhatian tambahan pada mekanismenya. Periksa tepi, gesper, bulu, dan lingkar pengencang. Angka membantu menyaring produk, tetapi keputusan akhir bergantung pada hewan yang tenang dan petunjuk produsen.' },
|
|
37
|
+
{ type: 'tip', title: 'Lakukan pemeriksaan dengan tenang', html: 'Pasang kalung saat hewan santai. Hewan harus dapat bergerak, bernapas, makan, minum, dan memutar kepala tanpa gesekan. Periksa juga agar kalung tidak melewati kepala ketika harus tetap di tempat. Periksa kembali setelah grooming, tumbuh, berat berubah, atau posisi berganti.' },
|
|
38
|
+
];
|
|
39
|
+
const schemas: PetCollarSizeCalculatorLocaleContent['schemas'] = [
|
|
40
|
+
{ '@context': 'https://schema.org', '@type': 'SoftwareApplication', name: title, description, applicationCategory: 'LifestyleApplication', operatingSystem: 'Web', offers: { '@type': 'Offer', price: '0', priceCurrency: 'EUR' } } as WithContext<SoftwareApplication>,
|
|
41
|
+
{ '@context': 'https://schema.org', '@type': 'FAQPage', mainEntity: faq.map((item) => ({ '@type': 'Question', name: item.question, acceptedAnswer: { '@type': 'Answer', text: item.answer } })) } as WithContext<FAQPage>,
|
|
42
|
+
{ '@context': 'https://schema.org', '@type': 'HowTo', name: title, step: howTo.map((step) => ({ '@type': 'HowToStep', name: step.name, text: step.text })) } as WithContext<HowTo>,
|
|
43
|
+
];
|
|
44
|
+
export const content: PetCollarSizeCalculatorLocaleContent = { slug, title, description, ui, seo, faq, bibliography, howTo, schemas };
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
import { bibliography } from '../bibliography';
|
|
2
|
+
import type { FAQPage, HowTo, SoftwareApplication, WithContext } from 'schema-dts';
|
|
3
|
+
import type { PetCollarSizeCalculatorLocaleContent } from '../entry';
|
|
4
|
+
import type { PetCollarSizeCalculatorUI } from '../ui';
|
|
5
|
+
|
|
6
|
+
const slug = 'calcolatore-taglia-collare-animale';
|
|
7
|
+
const title = 'Calcolatore della taglia del collare per animali';
|
|
8
|
+
const description = 'Misura il collo, aggiungi spazio di comfort e trova un intervallo regolabile da controllare manualmente.';
|
|
9
|
+
const ui: PetCollarSizeCalculatorUI = {
|
|
10
|
+
neckCircumferenceLabel: 'Circonferenza del collo', unitLabel: 'Mostra', centimetres: 'Centimetri', inches: 'Pollici', allowanceLabel: 'Spazio di comfort', collarTypeLabel: 'Tipo di collare', flatCollar: 'Classico', breakawayCollar: 'A sgancio', martingaleCollar: 'Martingala', statusTight: 'Aggiungi spazio', statusBalanced: 'Pronto da controllare', statusLoose: 'Controlla la sicurezza', statusTightDetail: 'Aggiungi spazio.', statusBalancedDetail: 'Controlla questo intervallo a mano.', statusLooseDetail: 'Controlla che non possa scivolare.', fitStudyLabel: 'Studio della vestibilità', fitWindowLabel: 'Trova questo intervallo', measuredLabel: 'Collo misurato', roomLabel: 'Spazio di comfort', checkLabel: 'Controllo manuale', sceneAria: 'Studio della vestibilità con anello del collo e intervallo regolabile', neckMarker: 'collo', easeMarker: 'spazio', rangeMarker: 'intervallo collare', minimumMarker: 'inizio', maximumMarker: 'fine', checkFlat: 'Comodo, sicuro e senza sfregamenti.', checkBreakaway: 'Controlla la vestibilità e il meccanismo di sgancio.', checkMartingale: 'Il passante di tensione non deve stringere il collo.', invalidInput: 'Inserisci una circonferenza e uno spazio validi.',
|
|
11
|
+
};
|
|
12
|
+
const faq: PetCollarSizeCalculatorLocaleContent['faq'] = [
|
|
13
|
+
{ question: 'Come misuro il collo del mio animale?', answer: 'Avvolgi un metro flessibile nel punto in cui appoggerà il collare. Tienilo diritto e vicino al pelo senza comprimere pelle o manto. Ripeti la misura se cambiano posizione, pelo o postura dell animale.' },
|
|
14
|
+
{ question: 'Perché il calcolatore restituisce un intervallo?', answer: 'I collari regolabili hanno escursioni diverse e le taglie non sono uniformi tra produttori. Il calcolatore aggiunge lo spazio scelto e crea un piccolo intervallo di confronto. Poi devi provare il collare reale sull animale.' },
|
|
15
|
+
{ question: 'Quanto spazio di comfort devo aggiungere?', answer: 'Non esiste un valore valido per tutti. Pelo, larghezza, materiale e attività cambiano la vestibilità. Usa il numero come ipotesi visibile e conferma comfort e sicurezza con un controllo manuale tranquillo.' },
|
|
16
|
+
{ question: 'La formula vale anche per un collare a martingala?', answer: 'La prima stima parte dalla stessa circonferenza. Il controllo finale cambia: il passante di tensione deve essere limitato e non deve mai soffocare. Segui le istruzioni del produttore se il meccanismo non ti è familiare.' },
|
|
17
|
+
{ question: 'Posso usare il risultato per un cucciolo?', answer: 'Sì, come fotografia della vestibilità attuale. Un animale giovane cresce e cambia pelo, quindi la misura va ripetuta spesso e controllata con attenzione.' },
|
|
18
|
+
];
|
|
19
|
+
const howTo: PetCollarSizeCalculatorLocaleContent['howTo'] = [
|
|
20
|
+
{ name: 'Misura il collo', text: 'Misura l animale calmo e in piedi, nel punto in cui il collare sarà appoggiato. Il metro deve restare piatto e morbido.' },
|
|
21
|
+
{ name: 'Scegli lo spazio', text: 'Regola lo spazio tra collo e collare con il controllo visibile. I 2 cm iniziali sono solo un esempio.' },
|
|
22
|
+
{ name: 'Scegli il tipo', text: 'Seleziona classico, a sgancio o martingala per ricevere il promemoria adatto al meccanismo.' },
|
|
23
|
+
{ name: 'Confronta la regolazione', text: 'Cerca un collare che copra tutto l intervallo e termina con una prova fisica sull animale.' },
|
|
24
|
+
];
|
|
25
|
+
const seo: PetCollarSizeCalculatorLocaleContent['seo'] = [
|
|
26
|
+
{ type: 'summary', title: 'Dalla misura a un intervallo per l acquisto', items: ['Misura dove il collare verrà davvero appoggiato.', 'Rendi visibile lo spazio di comfort invece di indovinare dalla razza.', 'Confronta l intervallo con la regolazione reale del prodotto.', 'Concludi con una prova calma sull animale.'] },
|
|
27
|
+
{ type: 'title', text: 'La decisione che aiuta a prendere', level: 2 },
|
|
28
|
+
{ type: 'paragraph', html: 'Le tabelle delle taglie diventano poco chiare quando un animale è tra due misure, ha molto pelo o sta crescendo. Questo strumento parte da un dato controllabile: la circonferenza del collo nel punto in cui il collare resterà. Poi aggiunge lo spazio di comfort che scegli. Il risultato non cerca di indovinare un etichetta commerciale come piccola, media o grande; crea un intervallo concreto da confrontare con la regolazione del prodotto.' },
|
|
29
|
+
{ type: 'paragraph', html: 'L intervallo è breve di proposito e serve come riferimento per confrontare gli articoli. I collari regolabili non seguono una norma mondiale e la lunghezza utile può essere diversa dal nome della taglia mostrato in negozio. Un prodotto è adatto alla selezione quando la sua escursione copre tutto l intervallo. Il numero però non convalida bordi, fibbie, pelo o meccanismi particolari.' },
|
|
30
|
+
{ type: 'title', text: 'Come misurare prima di comprare', level: 2 },
|
|
31
|
+
{ type: 'list', items: ['Misura quando l animale è calmo e sta in piedi naturalmente.', 'Tieni il metro diritto senza comprimere pelo o pelle.', 'Ripeti se il collare dovrà stare più in alto o più in basso.', 'Per un animale giovane, annota la data e ricontrolla spesso durante la crescita.'] },
|
|
32
|
+
{ type: 'paragraph', html: 'Lo spazio di comfort è un ipotesi esplicita, non una garanzia di sicurezza. Il valore corretto dipende da animale, manto, larghezza, materiale e uso. Il controllo con le dita può dare un riferimento, ma non trasforma un numero in una regola universale. Se noti sfregamenti, tosse, dolore, difficoltà respiratoria o stress, togli il collare e chiedi un parere qualificato.' },
|
|
33
|
+
{ type: 'title', text: 'Leggi la ruota di vestibilità', level: 2 },
|
|
34
|
+
{ type: 'table', headers: ['Segnale', 'Significato', 'Passo successivo'], rows: [['Collo misurato', 'Circonferenza prima dello spazio.', 'Ripeti se il metro era inclinato o stretto.'], ['Inizio', 'Collo più spazio scelto.', 'Usalo come limite inferiore della regolazione.'], ['Fine', 'Piccola finestra di confronto.', 'Cerca una regolazione che copra tutta la finestra.'], ['Controllo', 'Promemoria legato allo spazio scelto.', 'Conferma fisicamente sull animale.']] },
|
|
35
|
+
{ type: 'title', text: 'Il tipo di collare cambia il controllo finale', level: 2 },
|
|
36
|
+
{ type: 'paragraph', html: 'Un collare classico richiede una verifica di comfort e sicurezza, mentre un modello a sgancio o a martingala aggiunge una domanda sul meccanismo. Controlla bordi, fibbia, pelo e passanti. Il numero serve a filtrare i prodotti, ma la decisione finale dipende dall animale tranquillo e dalle istruzioni del produttore.' },
|
|
37
|
+
{ type: 'tip', title: 'Fai un controllo tranquillo', html: 'Metti il collare quando l animale è rilassato. Deve poter muoversi, respirare, mangiare, bere e girare la testa senza sfregamenti. Controlla anche che non possa passare sopra la testa quando deve restare fermo. Ricontrolla dopo toelettatura, crescita, variazioni di peso o cambio di posizione.' },
|
|
38
|
+
];
|
|
39
|
+
const schemas: PetCollarSizeCalculatorLocaleContent['schemas'] = [
|
|
40
|
+
{ '@context': 'https://schema.org', '@type': 'SoftwareApplication', name: title, description, applicationCategory: 'LifestyleApplication', operatingSystem: 'Web', offers: { '@type': 'Offer', price: '0', priceCurrency: 'EUR' } } as WithContext<SoftwareApplication>,
|
|
41
|
+
{ '@context': 'https://schema.org', '@type': 'FAQPage', mainEntity: faq.map((item) => ({ '@type': 'Question', name: item.question, acceptedAnswer: { '@type': 'Answer', text: item.answer } })) } as WithContext<FAQPage>,
|
|
42
|
+
{ '@context': 'https://schema.org', '@type': 'HowTo', name: title, step: howTo.map((step) => ({ '@type': 'HowToStep', name: step.name, text: step.text })) } as WithContext<HowTo>,
|
|
43
|
+
];
|
|
44
|
+
export const content: PetCollarSizeCalculatorLocaleContent = { slug, title, description, ui, seo, faq, bibliography, howTo, schemas };
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
import { bibliography } from '../bibliography';
|
|
2
|
+
import type { FAQPage, HowTo, SoftwareApplication, WithContext } from 'schema-dts';
|
|
3
|
+
import type { PetCollarSizeCalculatorLocaleContent } from '../entry';
|
|
4
|
+
import type { PetCollarSizeCalculatorUI } from '../ui';
|
|
5
|
+
|
|
6
|
+
const slug = 'pet-collar-size-calculator';
|
|
7
|
+
const title = 'ペットの首輪サイズ計算機';
|
|
8
|
+
const description = '首回りを測り、ゆとりを加えて、手で確認できる調整範囲を見つけます。';
|
|
9
|
+
const ui: PetCollarSizeCalculatorUI = {
|
|
10
|
+
neckCircumferenceLabel: '首回り', unitLabel: '表示', centimetres: 'センチメートル', inches: 'インチ', allowanceLabel: 'ゆとり', collarTypeLabel: '首輪の種類', flatCollar: '通常', breakawayCollar: 'セーフティ', martingaleCollar: 'マーチンゲール', statusTight: 'ゆとりを増やす', statusBalanced: '確認の準備完了', statusLoose: '安全性を確認', statusTightDetail: 'ゆとりを増やしてください。', statusBalancedDetail: 'この範囲を手で確認してください。', statusLooseDetail: '抜け落ちないか確認してください。', fitStudyLabel: '首輪フィット研究', fitWindowLabel: 'この範囲を探す', measuredLabel: '測定した首回り', roomLabel: 'ゆとり', checkLabel: '手で確認', sceneAria: '首の円と首輪の調整範囲を示すフィット研究', neckMarker: '首', easeMarker: 'ゆとり', rangeMarker: '首輪の範囲', minimumMarker: '開始', maximumMarker: '終了', checkFlat: '快適で安全、こすれません。', checkBreakaway: '装着感と解除機構を確認してください。', checkMartingale: '締め付ける輪が首を圧迫しないようにしてください。', invalidInput: '有効な首回りとゆとりを入力してください。',
|
|
11
|
+
};
|
|
12
|
+
const faq: PetCollarSizeCalculatorLocaleContent['faq'] = [
|
|
13
|
+
{ question: 'ペットの首回りはどう測りますか?', answer: '首輪を着ける位置に柔らかいメジャーを回します。皮膚や毛を押しつぶさず、毛の近くで水平に保ちます。首輪の位置、毛の量、姿勢が変わった場合はもう一度測ってください。' },
|
|
14
|
+
{ question: 'なぜ一つのサイズではなく範囲が表示されますか?', answer: '調整式の首輪はメーカーごとに調整幅が異なり、サイズ表記も統一されていません。選んだゆとりを加えて比較用の小さな範囲を作ります。最後は実際の首輪をペットに着けて確認します。' },
|
|
15
|
+
{ question: 'ゆとりはどれくらい必要ですか?', answer: 'すべてのペットに同じ値はありません。毛、首輪の幅、素材、活動によって変わります。数値を見える前提として使い、落ち着いた状態で手による確認を行ってください。' },
|
|
16
|
+
{ question: 'マーチンゲール首輪にも使えますか?', answer: '最初の目安は同じ首回りから始めます。ただし最後の確認は異なり、締め付ける輪に制限があり、首を絞めてはいけません。仕組みが分からない場合はメーカーの説明を確認してください。' },
|
|
17
|
+
{ question: '子犬や子猫にも結果を使えますか?', answer: '現在のフィットを確認する目安として使えます。若いペットは成長し毛も変わるため、測定を定期的に繰り返し、毎回慎重に確認してください。' },
|
|
18
|
+
];
|
|
19
|
+
const howTo: PetCollarSizeCalculatorLocaleContent['howTo'] = [
|
|
20
|
+
{ name: '首回りを測る', text: 'ペットが落ち着いて自然に立っているとき、首輪を着ける位置を測ります。メジャーは平らにし、締め付けません。' },
|
|
21
|
+
{ name: 'ゆとりを選ぶ', text: '見えるスライダーで首と首輪の間のゆとりを設定します。最初の2センチメートルは例にすぎません。' },
|
|
22
|
+
{ name: '種類を選ぶ', text: '通常、セーフティ、マーチンゲールから選び、仕組みに合った確認メッセージを表示します。' },
|
|
23
|
+
{ name: '調整幅を比べる', text: '計算した範囲全体を覆う首輪を探し、ペットに着けて実際に確認します。' },
|
|
24
|
+
];
|
|
25
|
+
const seo: PetCollarSizeCalculatorLocaleContent['seo'] = [
|
|
26
|
+
{ type: 'summary', title: '測定値を購入用の範囲に変える', items: ['首輪を実際に着ける位置で測ります。', '犬種名で推測せず、ゆとりを見える形にします。', '商品の調整幅と結果を比べます。', '落ち着いた状態でペットに着けて確認します。'] },
|
|
27
|
+
{ type: 'title', text: 'この計算機で判断できること', level: 2 },
|
|
28
|
+
{ type: 'paragraph', html: 'サイズ表は、ペットが二つのサイズの間にいる場合、毛が多い場合、成長中の場合に分かりにくくなります。この計算機は、首輪が実際に置かれる場所の首回りという確認しやすい測定から始めます。そこへ自分で選んだゆとりを加えます。小型、中型、大型という商品ラベルを推測するのではなく、商品の調整幅と比べられる具体的な範囲を作ります。' },
|
|
29
|
+
{ type: 'paragraph', html: '範囲は比較しやすいように短くしています。調整式の首輪に世界共通の規格はなく、実際に使える長さが販売ページのサイズ名と違うこともあります。調整幅が範囲全体を覆う商品を候補にします。ただし数値だけでは、縁、バックル、毛、素材、仕組みがペットに適しているかは判断できません。' },
|
|
30
|
+
{ type: 'title', text: '購入前の測り方', level: 2 },
|
|
31
|
+
{ type: 'list', items: ['ペットが落ち着いて自然に立っているときに測る。', '毛や皮膚を押しつぶさず、メジャーを水平に保つ。', '首輪を高い位置や低い位置に着ける場合は再測定する。', '若いペットは日付を記録し、成長中に定期的に確認する。'] },
|
|
32
|
+
{ type: 'paragraph', html: 'ゆとりは明示した前提であり、安全の保証ではありません。適切な値はペット、毛、幅、素材、使い方によって変わります。指を入れる確認は目安になりますが、一つの数字が全てのペットの規則になるわけではありません。こすれ、咳、痛み、呼吸のしづらさ、苦しそうな様子、動きの制限があれば首輪を外し、専門家に相談してください。' },
|
|
33
|
+
{ type: 'title', text: 'フィットの円を読む', level: 2 },
|
|
34
|
+
{ type: 'table', headers: ['表示', '意味', '次にすること'], rows: [['測定した首回り', 'ゆとりを加える前の周囲。', 'メジャーが斜めやきつかったら測り直す。'], ['開始', '首回りに選んだゆとりを加えた値。', '調整幅の下限として使う。'], ['終了', '比較のための小さな窓。', '窓全体を覆う調整幅を探す。'], ['確認', '選んだゆとりへの注意。', 'ペットに着けて確かめる。']] },
|
|
35
|
+
{ type: 'title', text: '首輪の種類で最後の確認が変わる', level: 2 },
|
|
36
|
+
{ type: 'paragraph', html: '通常の首輪では快適さと安全性を確認し、セーフティやマーチンゲールでは仕組みも確認します。縁、バックル、毛、締め付ける輪を見てください。数値は商品を絞るために役立ちますが、最後は落ち着いたペットとメーカーの説明で判断します。' },
|
|
37
|
+
{ type: 'tip', title: '静かに手で確認する', html: 'ペットがリラックスしているときに首輪を着けます。こすれずに動き、呼吸し、食べ、飲み、頭を回せる必要があります。着けたままにする首輪なら、頭の上から抜けないことも確認します。トリミング、成長、体重変化、位置の変更後は再確認してください。' },
|
|
38
|
+
];
|
|
39
|
+
const schemas: PetCollarSizeCalculatorLocaleContent['schemas'] = [
|
|
40
|
+
{ '@context': 'https://schema.org', '@type': 'SoftwareApplication', name: title, description, applicationCategory: 'LifestyleApplication', operatingSystem: 'Web', offers: { '@type': 'Offer', price: '0', priceCurrency: 'EUR' } } as WithContext<SoftwareApplication>,
|
|
41
|
+
{ '@context': 'https://schema.org', '@type': 'FAQPage', mainEntity: faq.map((item) => ({ '@type': 'Question', name: item.question, acceptedAnswer: { '@type': 'Answer', text: item.answer } })) } as WithContext<FAQPage>,
|
|
42
|
+
{ '@context': 'https://schema.org', '@type': 'HowTo', name: title, step: howTo.map((step) => ({ '@type': 'HowToStep', name: step.name, text: step.text })) } as WithContext<HowTo>,
|
|
43
|
+
];
|
|
44
|
+
export const content: PetCollarSizeCalculatorLocaleContent = { slug, title, description, ui, seo, faq, bibliography, howTo, schemas };
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
import { bibliography } from '../bibliography';
|
|
2
|
+
import type { FAQPage, HowTo, SoftwareApplication, WithContext } from 'schema-dts';
|
|
3
|
+
import type { PetCollarSizeCalculatorLocaleContent } from '../entry';
|
|
4
|
+
import type { PetCollarSizeCalculatorUI } from '../ui';
|
|
5
|
+
|
|
6
|
+
const slug = 'pet-collar-size-calculator';
|
|
7
|
+
const title = '반려동물 목줄 사이즈 계산기';
|
|
8
|
+
const description = '목둘레를 측정하고 여유 공간을 더해 손으로 확인할 수 있는 조절 범위를 찾습니다.';
|
|
9
|
+
const ui: PetCollarSizeCalculatorUI = {
|
|
10
|
+
neckCircumferenceLabel: '목둘레', unitLabel: '표시', centimetres: '센티미터', inches: '인치', allowanceLabel: '여유 공간', collarTypeLabel: '목줄 종류', flatCollar: '일반형', breakawayCollar: '안전 해제형', martingaleCollar: '마틴게일', statusTight: '여유를 늘리세요', statusBalanced: '확인할 준비 완료', statusLoose: '안전성을 확인하세요', statusTightDetail: '여유를 늘리세요.', statusBalancedDetail: '이 범위를 손으로 확인하세요.', statusLooseDetail: '빠지지 않는지 확인하세요.', fitStudyLabel: '목줄 맞춤 연구', fitWindowLabel: '이 범위의 제품 찾기', measuredLabel: '측정한 목', roomLabel: '여유 공간', checkLabel: '손으로 확인', sceneAria: '목 둘레와 조절 가능한 목줄 범위를 보여 주는 맞춤 연구', neckMarker: '목', easeMarker: '여유', rangeMarker: '목줄 범위', minimumMarker: '시작', maximumMarker: '끝', checkFlat: '편안하고 안전하며 쓸림이 없습니다.', checkBreakaway: '맞춤과 해제 장치를 확인하세요.', checkMartingale: '조임 고리가 목을 압박하지 않아야 합니다.', invalidInput: '올바른 목둘레와 여유 공간을 입력하세요.',
|
|
11
|
+
};
|
|
12
|
+
const faq: PetCollarSizeCalculatorLocaleContent['faq'] = [
|
|
13
|
+
{ question: '반려동물의 목둘레는 어떻게 측정하나요?', answer: '목줄이 놓일 위치에 부드러운 줄자를 둘러 주세요. 피부나 털을 누르지 말고 털 가까이에서 수평을 유지합니다. 목줄 위치, 털의 양, 동물의 자세가 달라지면 다시 측정하세요.' },
|
|
14
|
+
{ question: '왜 하나의 사이즈가 아니라 범위로 나오나요?', answer: '조절식 목줄은 제조사마다 조절 폭이 다르고 사이즈 표기도 통일되어 있지 않습니다. 선택한 여유를 더해 작은 비교 범위를 만듭니다. 마지막에는 실제 목줄을 동물에게 착용해 확인해야 합니다.' },
|
|
15
|
+
{ question: '여유 공간은 얼마나 선택해야 하나요?', answer: '모든 동물에 같은 값이 맞지는 않습니다. 털, 폭, 소재, 활동량에 따라 달라집니다. 숫자는 보이는 가정으로 사용하고 편안함과 안전성을 차분하게 손으로 확인하세요.' },
|
|
16
|
+
{ question: '마틴게일 목줄에도 사용할 수 있나요?', answer: '첫 계산은 같은 목둘레에서 시작합니다. 최종 확인은 다릅니다. 조임 고리는 제한되어야 하며 절대 목을 조이면 안 됩니다. 구조를 잘 모르면 제조사 안내를 따르세요.' },
|
|
17
|
+
{ question: '어린 반려동물에게도 결과를 사용할 수 있나요?', answer: '현재 맞춤을 확인하는 참고값으로 사용할 수 있습니다. 어린 동물은 성장하고 털도 변하므로 측정을 자주 반복하고 매번 주의 깊게 확인하세요.' },
|
|
18
|
+
];
|
|
19
|
+
const howTo: PetCollarSizeCalculatorLocaleContent['howTo'] = [
|
|
20
|
+
{ name: '목둘레 측정', text: '동물이 편안하게 자연스럽게 서 있을 때 목줄이 놓일 위치를 측정합니다. 줄자는 평평하게 두고 당기지 않습니다.' },
|
|
21
|
+
{ name: '여유 선택', text: '보이는 조절기를 사용해 목과 목줄 사이의 여유를 설정합니다. 처음의 2센티미터는 예시일 뿐입니다.' },
|
|
22
|
+
{ name: '종류 선택', text: '일반형, 안전 해제형, 마틴게일 중에서 선택해 장치에 맞는 확인 안내를 봅니다.' },
|
|
23
|
+
{ name: '조절 폭 비교', text: '계산된 범위를 모두 덮는 목줄을 찾은 뒤 동물에게 직접 착용해 확인합니다.' },
|
|
24
|
+
];
|
|
25
|
+
const seo: PetCollarSizeCalculatorLocaleContent['seo'] = [
|
|
26
|
+
{ type: 'summary', title: '측정값을 구매 범위로 바꾸기', items: ['목줄이 실제로 놓일 위치에서 측정하세요.', '품종으로 추측하지 말고 여유 공간을 표시하세요.', '제품의 실제 조절 폭과 결과를 비교하세요.', '동물에게 차분하게 착용해 확인하세요.'] },
|
|
27
|
+
{ type: 'title', text: '이 계산기가 도와주는 결정', level: 2 },
|
|
28
|
+
{ type: 'paragraph', html: '동물이 두 사이즈 사이에 있거나 털이 많거나 성장 중이면 사이즈표가 모호해집니다. 이 도구는 직접 확인할 수 있는 값인 목줄이 놓일 위치의 목둘레에서 시작합니다. 그 다음 원하는 여유 공간을 더합니다. 작은 사이즈, 중간 사이즈, 큰 사이즈 같은 판매용 이름을 추측하는 대신 제품의 조절 치수와 비교할 수 있는 구체적인 범위를 만듭니다.' },
|
|
29
|
+
{ type: 'paragraph', html: '범위는 비교하기 쉽도록 짧게 만들었습니다. 조절식 목줄에는 전 세계 공통 규격이 없고 실제 사용 가능한 길이가 판매 페이지의 사이즈 이름과 다를 수 있습니다. 조절 폭이 범위 전체를 덮는 제품을 후보로 삼으세요. 그래도 숫자만으로 가장자리, 버클, 털, 소재 또는 구조의 적합성을 보장할 수는 없습니다.' },
|
|
30
|
+
{ type: 'title', text: '구매 전 측정 방법', level: 2 },
|
|
31
|
+
{ type: 'list', items: ['동물이 편안하고 자연스럽게 서 있을 때 측정하세요.', '털이나 피부를 누르지 말고 줄자를 수평으로 유지하세요.', '목줄을 더 높거나 낮게 착용할 예정이면 다시 측정하세요.', '어린 동물은 날짜를 적고 성장하는 동안 맞춤을 확인하세요.'] },
|
|
32
|
+
{ type: 'paragraph', html: '여유 공간은 명시적인 가정이지 안전 보장이 아닙니다. 적절한 값은 동물, 털, 폭, 소재와 사용 방식에 따라 달라집니다. 손가락 확인은 참고가 될 수 있지만 숫자가 모든 동물에게 적용되는 규칙이 되지는 않습니다. 쓸림, 기침, 통증, 호흡 곤란, 불안 또는 움직임 제한이 있으면 목줄을 제거하고 전문가에게 문의하세요.' },
|
|
33
|
+
{ type: 'title', text: '맞춤 원 읽기', level: 2 },
|
|
34
|
+
{ type: 'table', headers: ['신호', '의미', '다음 단계'], rows: [['측정한 목', '여유를 더하기 전의 둘레.', '줄자가 기울었거나 조였다면 다시 측정하세요.'], ['시작', '목둘레에 선택한 여유를 더한 값.', '조절 폭의 아래 경계로 사용하세요.'], ['끝', '비교를 위한 작은 창.', '창 전체를 덮는 조절 폭을 찾으세요.'], ['확인', '선택한 여유에 대한 안내.', '동물에게 직접 확인하세요.']] },
|
|
35
|
+
{ type: 'title', text: '목줄 종류에 따라 마지막 확인이 달라집니다', level: 2 },
|
|
36
|
+
{ type: 'paragraph', html: '일반형은 편안함과 안전성을 확인하고, 안전 해제형이나 마틴게일은 장치의 작동도 확인해야 합니다. 가장자리, 버클, 털과 조임 고리를 살펴보세요. 숫자는 제품을 고르는 데 도움을 주지만 마지막 판단은 편안한 동물과 제조사 안내를 바탕으로 해야 합니다.' },
|
|
37
|
+
{ type: 'tip', title: '차분하게 손으로 확인하기', html: '동물이 편안할 때 목줄을 착용하세요. 쓸림 없이 움직이고, 숨 쉬고, 먹고, 마시고, 고개를 돌릴 수 있어야 합니다. 계속 착용해야 하는 목줄이라면 머리 위로 빠지지 않는지도 확인하세요. 미용, 성장, 체중 변화 또는 위치 변경 후에는 다시 확인하세요.' },
|
|
38
|
+
];
|
|
39
|
+
const schemas: PetCollarSizeCalculatorLocaleContent['schemas'] = [
|
|
40
|
+
{ '@context': 'https://schema.org', '@type': 'SoftwareApplication', name: title, description, applicationCategory: 'LifestyleApplication', operatingSystem: 'Web', offers: { '@type': 'Offer', price: '0', priceCurrency: 'EUR' } } as WithContext<SoftwareApplication>,
|
|
41
|
+
{ '@context': 'https://schema.org', '@type': 'FAQPage', mainEntity: faq.map((item) => ({ '@type': 'Question', name: item.question, acceptedAnswer: { '@type': 'Answer', text: item.answer } })) } as WithContext<FAQPage>,
|
|
42
|
+
{ '@context': 'https://schema.org', '@type': 'HowTo', name: title, step: howTo.map((step) => ({ '@type': 'HowToStep', name: step.name, text: step.text })) } as WithContext<HowTo>,
|
|
43
|
+
];
|
|
44
|
+
export const content: PetCollarSizeCalculatorLocaleContent = { slug, title, description, ui, seo, faq, bibliography, howTo, schemas };
|