@jjlmoya/utils-civic 1.3.0 → 1.5.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package.json +1 -1
- package/src/category/index.ts +3 -1
- package/src/entries.ts +6 -0
- package/src/index.ts +2 -0
- package/src/pages/[locale]/[slug].astro +7 -4
- package/src/tests/locale_completeness.test.ts +1 -1
- package/src/tests/tool_validation.test.ts +1 -1
- package/src/tool/civic-priority-matrix/bibliography.astro +6 -0
- package/src/tool/civic-priority-matrix/bibliography.ts +12 -0
- package/src/tool/civic-priority-matrix/civic-priority-matrix.css +531 -0
- package/src/tool/civic-priority-matrix/component.astro +108 -0
- package/src/tool/civic-priority-matrix/contract.test.ts +16 -0
- package/src/tool/civic-priority-matrix/controller.ts +168 -0
- package/src/tool/civic-priority-matrix/dom-views.ts +123 -0
- package/src/tool/civic-priority-matrix/entry.ts +28 -0
- package/src/tool/civic-priority-matrix/evaluator.ts +13 -0
- package/src/tool/civic-priority-matrix/i18n/de.ts +52 -0
- package/src/tool/civic-priority-matrix/i18n/en.ts +73 -0
- package/src/tool/civic-priority-matrix/i18n/es.ts +52 -0
- package/src/tool/civic-priority-matrix/i18n/fr.ts +50 -0
- package/src/tool/civic-priority-matrix/i18n/id.ts +50 -0
- package/src/tool/civic-priority-matrix/i18n/it.ts +50 -0
- package/src/tool/civic-priority-matrix/i18n/ja.ts +121 -0
- package/src/tool/civic-priority-matrix/i18n/ko.ts +121 -0
- package/src/tool/civic-priority-matrix/i18n/nl.ts +45 -0
- package/src/tool/civic-priority-matrix/i18n/pl.ts +35 -0
- package/src/tool/civic-priority-matrix/i18n/pt.ts +32 -0
- package/src/tool/civic-priority-matrix/i18n/ru.ts +32 -0
- package/src/tool/civic-priority-matrix/i18n/sv.ts +32 -0
- package/src/tool/civic-priority-matrix/i18n/tr.ts +32 -0
- package/src/tool/civic-priority-matrix/i18n/zh.ts +121 -0
- package/src/tool/civic-priority-matrix/index.ts +11 -0
- package/src/tool/civic-priority-matrix/logic.test.ts +68 -0
- package/src/tool/civic-priority-matrix/logic.ts +124 -0
- package/src/tool/civic-priority-matrix/seo.astro +12 -0
- package/src/tool/civic-priority-matrix/storage.ts +50 -0
- package/src/tool/civic-priority-matrix/ui.ts +96 -0
- package/src/tool/referendum-threshold-calculator/bibliography.astro +6 -0
- package/src/tool/referendum-threshold-calculator/bibliography.ts +6 -0
- package/src/tool/referendum-threshold-calculator/component.astro +117 -0
- package/src/tool/referendum-threshold-calculator/controller.ts +141 -0
- package/src/tool/referendum-threshold-calculator/dom-views.ts +71 -0
- package/src/tool/referendum-threshold-calculator/entry.ts +27 -0
- package/src/tool/referendum-threshold-calculator/evaluator.ts +19 -0
- package/src/tool/referendum-threshold-calculator/i18n/de.ts +56 -0
- package/src/tool/referendum-threshold-calculator/i18n/en.ts +79 -0
- package/src/tool/referendum-threshold-calculator/i18n/es.ts +56 -0
- package/src/tool/referendum-threshold-calculator/i18n/fr.ts +56 -0
- package/src/tool/referendum-threshold-calculator/i18n/id.ts +56 -0
- package/src/tool/referendum-threshold-calculator/i18n/it.ts +56 -0
- package/src/tool/referendum-threshold-calculator/i18n/ja.ts +56 -0
- package/src/tool/referendum-threshold-calculator/i18n/ko.ts +56 -0
- package/src/tool/referendum-threshold-calculator/i18n/nl.ts +56 -0
- package/src/tool/referendum-threshold-calculator/i18n/pl.ts +56 -0
- package/src/tool/referendum-threshold-calculator/i18n/pt.ts +56 -0
- package/src/tool/referendum-threshold-calculator/i18n/ru.ts +56 -0
- package/src/tool/referendum-threshold-calculator/i18n/sv.ts +56 -0
- package/src/tool/referendum-threshold-calculator/i18n/tr.ts +56 -0
- package/src/tool/referendum-threshold-calculator/i18n/zh.ts +56 -0
- package/src/tool/referendum-threshold-calculator/index.ts +11 -0
- package/src/tool/referendum-threshold-calculator/logic.test.ts +69 -0
- package/src/tool/referendum-threshold-calculator/logic.ts +120 -0
- package/src/tool/referendum-threshold-calculator/referendum-threshold-calculator.css +640 -0
- package/src/tool/referendum-threshold-calculator/seo.astro +14 -0
- package/src/tool/referendum-threshold-calculator/sharing.test.ts +23 -0
- package/src/tool/referendum-threshold-calculator/sharing.ts +42 -0
- package/src/tool/referendum-threshold-calculator/storage.ts +39 -0
- package/src/tool/referendum-threshold-calculator/ui.ts +126 -0
- package/src/tools.ts +4 -0
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
import type { FAQPage, HowTo, SoftwareApplication } from 'schema-dts';
|
|
2
|
+
import type { ToolLocaleContent } from '../../../types';
|
|
3
|
+
import { bibliography } from '../bibliography';
|
|
4
|
+
import type { ReferendumThresholdLocaleContent } from '../entry';
|
|
5
|
+
import type { ReferendumThresholdUI } from '../ui';
|
|
6
|
+
|
|
7
|
+
const ui: ReferendumThresholdUI = {
|
|
8
|
+
countsHeading: 'Gemeldete Stimmenzahlen eingeben', eligibleLabel: 'Wahlberechtigte oder registrierte Wähler', eligibleHelp: 'Verwende den Wählerkreis, den die geprüfte Regel nennt.', yesLabel: 'Ja-Stimmen', noLabel: 'Nein-Stimmen', blankLabel: 'Leere Stimmzettel', invalidLabel: 'Ungültige Stimmzettel', participationHeading: 'Beteiligungsquorum', participationHelp: 'Lege fest, was als Beteiligung zählt und welche Schwelle erreicht werden muss.', approvalHeading: 'Zustimmungsquorum', approvalHelp: 'Wähle den Nenner für die Ja-Schwelle. Jede Regel bleibt im Ergebnis sichtbar.', thresholdModeLabel: 'Schwellentyp', comparisonLabel: 'Vergleich', atLeastOption: 'Mindestens', moreThanOption: 'Mehr als', percentageOption: 'Prozent', absoluteOption: 'Absolute Zahl', thresholdValueLabel: 'Schwellenwert', denominatorLabel: 'Verwendete Zahl', allBallotsOption: 'Alle Stimmzettel', validVotesOption: 'Nur gültige Stimmen', eligibleVotersOption: 'Wahlberechtigte', presetsLabel: 'Vorlagen für Zustimmung', simpleMajorityPreset: 'Einfache Mehrheit', electorateMajorityPreset: 'Mehrheit des Wahlkörpers', qualified55Preset: 'Qualifizierte 55 Prozent', qualified60Preset: 'Qualifizierte 60 Prozent', loadExample: 'Beispiel laden', shareAction: 'Permalink kopieren', shareSuccess: 'Permalink kopiert. Er enthält Zahlen und Regeln.', shareFailure: 'Der Permalink steht in der Adresszeile und kann kopiert werden.', resultHeading: 'Entscheidung nach gemeldeter Regel', emptyResult: 'Gib Zahlen und Schwellen ein, um beide Quorumsprüfungen zu sehen.', passed: 'Beide Schwellen erreicht', participationFailed: 'Beteiligungsquorum nicht erreicht', approvalFailed: 'Zustimmungsquorum nicht erreicht', bothFailed: 'Beide Schwellen nicht erreicht', invalidResult: 'Gemeldete Zahlen prüfen', participationMetric: 'Beteiligungsprüfung', approvalMetric: 'Zustimmungsprüfung', observedLabel: 'Beobachtet', thresholdLabel: 'Erforderlich', decisionPathLabel: 'Entscheidungspfad', methodHeading: 'Angewandte Methode', methodText: 'Die Beteiligung ist die ausgewählte Zahl von Stimmzetteln geteilt durch die Wahlberechtigten. Die Zustimmung ist Ja geteilt durch den gewählten Nenner. Der Vergleich legt fest, ob ein exakter Prozentsatz genügt oder überschritten werden muss. Absolute Schwellen vergleichen direkt die Anzahl.', limitsHeading: 'Was dieses Werkzeug nicht leistet', limitsText: 'Es bestimmt keine zuständige Behörde, keine Frist, keine amtliche Zählung und keine Rechtsberatung. Das Ergebnis ist nur so zuverlässig wie die eingegebenen Annahmen.', warningsHeading: 'Grenzfälle und Datenhinweise', warningsText: 'Prüfe, ob leere und ungültige Stimmzettel zur Beteiligung zählen, ob der Wählerkreis aktuell ist und ob die Zustimmung gegen gültige Stimmen, alle Stimmzettel oder die Wahlberechtigten berechnet wird.', invalidInput: 'Verwende ganze, nichtnegative Zahlen. Die Wahlberechtigten müssen größer als null sein und die Stimmzettel dürfen sie nicht überschreiten.', ballotsExceedEligible: 'Die gemeldeten Stimmzettel überschreiten den Wählerkreis.', noValidVotes: 'Es gibt keine Ja- oder Nein-Stimmen, daher fehlt der Nenner gültiger Stimmen.', noBallots: 'Es wurden keine Stimmzettel gemeldet.', peopleSuffix: 'Personen', yesShareLabel: 'Ja-Anteil', allBallotsLabel: 'alle Stimmzettel', validVotesLabel: 'gültige Stimmen', eligibleVotersLabel: 'Wahlberechtigte', whatNextLabel: 'Vor einer Verwendung des Ergebnisses', whatNextText: 'Übernimm den genauen Wortlaut der geltenden Regel und vergleiche ihn mit den angezeigten Einstellungen.',
|
|
9
|
+
};
|
|
10
|
+
|
|
11
|
+
const softwareApplication: SoftwareApplication = { '@type': 'SoftwareApplication', name: 'Referendum Quorum Rechner', applicationCategory: 'EducationalApplication', operatingSystem: 'Any', description: 'Prüft Beteiligungs- und Zustimmungsquoren mit sichtbaren Zählern und Nennern.', url: 'https://gamebob.dev/de/referendum-quorum-rechner', offers: { '@type': 'Offer', price: '0', priceCurrency: 'EUR' } };
|
|
12
|
+
const faqPage: FAQPage = { '@type': 'FAQPage', mainEntity: [
|
|
13
|
+
{ '@type': 'Question', name: 'Was entscheidet dieser Rechner?', acceptedAnswer: { '@type': 'Answer', text: 'Er prüft gemeldete Stimmen gegen die von dir eingegebenen Beteiligungs- und Zustimmungsschwellen. Er legt nicht fest, welche Rechtsregel gilt.' } },
|
|
14
|
+
{ '@type': 'Question', name: 'Was ist der Unterschied zwischen den beiden Quoren?', acceptedAnswer: { '@type': 'Answer', text: 'Das Beteiligungsquorum fragt, ob genügend Stimmen oder Personen erfasst wurden. Das Zustimmungsquorum fragt, ob Ja die geforderte Zahl oder den geforderten Anteil erreicht.' } },
|
|
15
|
+
{ '@type': 'Question', name: 'Warum verändern leere und ungültige Stimmzettel das Ergebnis?', acceptedAnswer: { '@type': 'Answer', text: 'Sie können bei der Beteiligung zählen, aber aus gültigen Stimmen ausgeschlossen werden. Der Rechner macht diese Nenner getrennt sichtbar.' } },
|
|
16
|
+
{ '@type': 'Question', name: 'Beweist ein positives Ergebnis die rechtliche Gültigkeit?', acceptedAnswer: { '@type': 'Answer', text: 'Nein. Prüfe Verfassung, Gesetz, amtliche Hinweise, Definitionen der Stimmzettel und die zuständige Zählstelle.' } },
|
|
17
|
+
] };
|
|
18
|
+
const howTo: HowTo = { '@type': 'HowTo', name: 'Referendumsquoren prüfen', step: [
|
|
19
|
+
{ '@type': 'HowToStep', name: 'Wählerkreis eintragen', text: 'Trage die Wahlberechtigten oder registrierten Wähler der geprüften Regel ein.' },
|
|
20
|
+
{ '@type': 'HowToStep', name: 'Stimmen erfassen', text: 'Trenne Ja, Nein, leere und ungültige Stimmzettel aus derselben Auszählung.' },
|
|
21
|
+
{ '@type': 'HowToStep', name: 'Beteiligung festlegen', text: 'Wähle die Zählweise und eine prozentuale oder absolute Beteiligungsschwelle.' },
|
|
22
|
+
{ '@type': 'HowToStep', name: 'Zustimmung festlegen', text: 'Wähle den Zustimmungsnenner und die erforderliche Ja-Zahl oder Ja-Quote.' },
|
|
23
|
+
{ '@type': 'HowToStep', name: 'Ergebnis lesen', text: 'Vergleiche Zähler, Nenner, beobachteten Wert, Schwelle und Datenhinweise.' },
|
|
24
|
+
] };
|
|
25
|
+
|
|
26
|
+
export const content: ToolLocaleContent<ReferendumThresholdLocaleContent['ui']> = {
|
|
27
|
+
slug: 'referendum-quorum-rechner', title: 'Referendum Quorum Rechner', description: 'Prüfe Beteiligungs- und Zustimmungsquoren mit sichtbaren Zählern, Nennern und klar getrennten Regeln.', ui, seo: [
|
|
28
|
+
{ type: 'title', text: 'Referendumsregel mit sichtbaren Nennern prüfen', level: 2 },
|
|
29
|
+
{ type: 'paragraph', html: 'Ein Referendum kann einfach aussehen, obwohl die entscheidende Frage im Nenner steckt. Dieser Rechner stellt Wahlkreis, Stimmzettel und beide Quoren nebeneinander, damit die verwendete Definition nachvollziehbar bleibt.' },
|
|
30
|
+
{ type: 'paragraph', html: 'Beteiligung und Zustimmung sind getrennte Prüfungen. Leere oder ungültige Stimmzettel können die Beteiligung erhöhen, ohne Teil der gültigen Stimmen zu sein. Das Werkzeug übernimmt diese Entscheidung nicht stillschweigend.' },
|
|
31
|
+
{ type: 'title', text: 'So funktionieren die beiden Quoren', level: 2 },
|
|
32
|
+
{ type: 'paragraph', html: 'Die Beteiligungsquote teilt die gewählte Beteiligungszahl durch die Wahlberechtigten. Die Zustimmungsquote teilt Ja durch den gewählten Zustimmungsnenner. Der Vergleich kann einen exakten Wert akzeptieren oder eine echte Überschreitung verlangen.' },
|
|
33
|
+
{ type: 'table', headers: ['Prüfung', 'Beobachteter Wert', 'Frage'], rows: [['Beteiligung', 'Ausgewählte Stimmzettel / Wahlberechtigte', 'Hat ein ausreichender Teil teilgenommen?'], ['Zustimmung', 'Ja / gewählter Nenner', 'Erreicht Ja die geforderte Schwelle?']] },
|
|
34
|
+
{ type: 'title', text: 'Zahlen sauber vorbereiten', level: 2 },
|
|
35
|
+
{ type: 'paragraph', html: 'Nutze Zahlen aus derselben amtlichen Auszählung und demselben Wählerkreis. Vermische keine vorläufige Zählung mit einem späteren Wählerverzeichnis. Halte Ja, Nein, leer und ungültig getrennt, bevor du einen Nenner auswählst.' },
|
|
36
|
+
{ type: 'list', items: ['Prüfe, ob die Regel Wahlberechtigte oder registrierte Wähler nennt.', 'Erfasse alle vier Stimmzettelkategorien separat.', 'Stelle sicher, dass die Stimmzettel den Wählerkreis nicht überschreiten.', 'Notiere den Nenner jeder Prozentangabe.', 'Bewahre den amtlichen Wortlaut neben dem Ergebnis auf.'] },
|
|
37
|
+
{ type: 'tip', title: 'Der Nenner ist Teil der Regel', html: '50 Prozent Zustimmung unter gültigen Stimmen ist eine andere Prüfung als 50 Prozent unter allen Stimmzetteln oder Wahlberechtigten. Leere und ungültige Stimmen können die Entscheidung verschieben.' },
|
|
38
|
+
{ type: 'title', text: 'Positive und negative Zustände einordnen', level: 2 },
|
|
39
|
+
{ type: 'paragraph', html: 'Das Ergebnis unterscheidet Beteiligungsfehler von Zustimmungsfehlern. Wenn die Beteiligung genügt, aber Zustimmung nicht, liegt das Problem bei Ja und seinem Nenner. Wenn nur Zustimmung genügt, fehlt die Beteiligungsbedingung.' },
|
|
40
|
+
{ type: 'paragraph', html: 'Ein positives Rechenergebnis ist keine Rechtsfeststellung. Länder und Fragestellungen können besondere Regeln, territoriale Bedingungen oder amtliche Behandlungen leerer Stimmen vorsehen. Geprüft wird nur deine Konfiguration.' },
|
|
41
|
+
{ type: 'tip', title: 'Das Ergebnis als Prüfbogen verwenden', html: 'Vergleiche vor einer Veröffentlichung jeden angezeigten Zähler, Nenner und Schwellentyp mit der aktuellen amtlichen Regel. Bei unklarer Definition solltest du den Hinweis offenlassen.' },
|
|
42
|
+
{ type: 'title', text: 'Quellen und Grenzen', level: 2 },
|
|
43
|
+
{ type: 'paragraph', html: 'International IDEA beschreibt die Bedeutung klarer Beteiligungs- und Zustimmungsregeln. Die Venedig-Kommission behandelt Wirkungen und Risiken von Quoren. Diese Quellen liefern keinen universellen Schwellenwert für jedes Land.' },
|
|
44
|
+
], faq: [
|
|
45
|
+
{ question: 'Was entscheidet dieser Rechner?', answer: 'Er prüft gemeldete Stimmen gegen die von dir eingegebenen Beteiligungs- und Zustimmungsschwellen. Er legt nicht fest, welche Rechtsregel gilt.' },
|
|
46
|
+
{ question: 'Was ist der Unterschied zwischen den beiden Quoren?', answer: 'Das Beteiligungsquorum fragt, ob genügend Stimmen oder Personen erfasst wurden. Das Zustimmungsquorum fragt, ob Ja die geforderte Zahl oder den geforderten Anteil erreicht.' },
|
|
47
|
+
{ question: 'Warum verändern leere und ungültige Stimmzettel das Ergebnis?', answer: 'Sie können bei der Beteiligung zählen, aber aus gültigen Stimmen ausgeschlossen werden. Der Rechner macht diese Nenner getrennt sichtbar.' },
|
|
48
|
+
{ question: 'Beweist ein positives Ergebnis die rechtliche Gültigkeit?', answer: 'Nein. Prüfe Verfassung, Gesetz, amtliche Hinweise, Definitionen der Stimmzettel und die zuständige Zählstelle.' },
|
|
49
|
+
], bibliography, howTo: [
|
|
50
|
+
{ name: 'Wählerkreis eintragen', text: 'Trage die Wahlberechtigten oder registrierten Wähler der geprüften Regel ein.' },
|
|
51
|
+
{ name: 'Stimmen erfassen', text: 'Trenne Ja, Nein, leere und ungültige Stimmzettel aus derselben Auszählung.' },
|
|
52
|
+
{ name: 'Beteiligung festlegen', text: 'Wähle die Zählweise und eine prozentuale oder absolute Beteiligungsschwelle.' },
|
|
53
|
+
{ name: 'Zustimmung festlegen', text: 'Wähle den Zustimmungsnenner und die erforderliche Ja-Zahl oder Ja-Quote.' },
|
|
54
|
+
{ name: 'Ergebnis lesen', text: 'Vergleiche Zähler, Nenner, beobachteten Wert, Schwelle und Datenhinweise.' },
|
|
55
|
+
], schemas: [softwareApplication, faqPage, howTo] as unknown as Record<string, unknown>[]
|
|
56
|
+
};
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
import type { FAQPage, HowTo, SoftwareApplication } from 'schema-dts';
|
|
2
|
+
import type { ToolLocaleContent } from '../../../types';
|
|
3
|
+
import { bibliography } from '../bibliography';
|
|
4
|
+
import type { ReferendumThresholdLocaleContent } from '../entry';
|
|
5
|
+
import { ui } from '../ui';
|
|
6
|
+
|
|
7
|
+
const softwareApplication: SoftwareApplication = {
|
|
8
|
+
'@type': 'SoftwareApplication',
|
|
9
|
+
name: 'Referendum Threshold Calculator',
|
|
10
|
+
applicationCategory: 'EducationalApplication',
|
|
11
|
+
operatingSystem: 'Any',
|
|
12
|
+
description: 'Evaluate declared participation and approval quorum rules from transparent ballot counts.',
|
|
13
|
+
url: 'https://gamebob.dev/en/referendum-threshold-calculator',
|
|
14
|
+
offers: { '@type': 'Offer', price: '0', priceCurrency: 'USD' },
|
|
15
|
+
};
|
|
16
|
+
|
|
17
|
+
const faqPage: FAQPage = {
|
|
18
|
+
'@type': 'FAQPage',
|
|
19
|
+
mainEntity: [
|
|
20
|
+
{ '@type': 'Question', name: 'What does this calculator decide?', acceptedAnswer: { '@type': 'Answer', text: 'It evaluates the ballot counts against the participation and approval thresholds that you enter. It does not determine which rule applies in a country or replace an official count.' } },
|
|
21
|
+
{ '@type': 'Question', name: 'What is the difference between participation and approval quorum?', acceptedAnswer: { '@type': 'Answer', text: 'Participation quorum asks whether enough people or ballots reached the participation threshold. Approval quorum asks whether Yes votes reached the required share or number under the declared denominator.' } },
|
|
22
|
+
{ '@type': 'Question', name: 'Why can blank and invalid ballots change the result?', acceptedAnswer: { '@type': 'Answer', text: 'They may count as participation while being excluded from valid votes. The calculator lets you declare the denominator separately for each test so that this choice is visible.' } },
|
|
23
|
+
{ '@type': 'Question', name: 'Does a passing result prove that a referendum is legally valid?', acceptedAnswer: { '@type': 'Answer', text: 'No. A passing result only follows the inputs and thresholds shown. Check the applicable constitution, statute, official guidance, ballot definitions, and counting authority.' } },
|
|
24
|
+
],
|
|
25
|
+
};
|
|
26
|
+
|
|
27
|
+
const howTo: HowTo = {
|
|
28
|
+
'@type': 'HowTo',
|
|
29
|
+
name: 'Evaluate referendum thresholds',
|
|
30
|
+
step: [
|
|
31
|
+
{ '@type': 'HowToStep', name: 'Enter the electorate', text: 'Enter the eligible or registered voters used by the declared rule.' },
|
|
32
|
+
{ '@type': 'HowToStep', name: 'Enter ballot counts', text: 'Add Yes, No, blank, and invalid counts from the same referendum result.' },
|
|
33
|
+
{ '@type': 'HowToStep', name: 'Declare participation', text: 'Choose all ballots or valid votes and set a percentage or absolute participation threshold.' },
|
|
34
|
+
{ '@type': 'HowToStep', name: 'Declare approval', text: 'Choose the approval denominator and set the required Yes percentage or absolute count.' },
|
|
35
|
+
{ '@type': 'HowToStep', name: 'Read both tests', text: 'Check the numerator, denominator, observed rate, threshold, and warning before using the result.' },
|
|
36
|
+
],
|
|
37
|
+
};
|
|
38
|
+
|
|
39
|
+
export const content: ToolLocaleContent<ReferendumThresholdLocaleContent['ui']> = {
|
|
40
|
+
slug: 'referendum-threshold-calculator',
|
|
41
|
+
title: 'Referendum Threshold Calculator',
|
|
42
|
+
description: 'Evaluate participation and approval quorums from declared referendum rules, with every numerator and denominator visible.',
|
|
43
|
+
ui,
|
|
44
|
+
seo: [
|
|
45
|
+
{ type: 'title', text: 'Evaluate a Referendum Rule With Visible Denominators', level: 2 },
|
|
46
|
+
{ type: 'paragraph', html: 'Referendum results can look simple while hiding a crucial choice: what counts as participation, and what counts as the denominator for approval. This calculator keeps those choices beside the result. Enter the electorate, the four ballot categories, and the rule you want to test. The output shows whether each declared threshold passes.' },
|
|
47
|
+
{ type: 'paragraph', html: 'Participation and approval are separate tests. A participation quorum can use all ballots or valid votes against eligible voters. An approval quorum can compare Yes votes with all ballots or with valid votes. These are not interchangeable definitions, so the tool never silently picks one for you.' },
|
|
48
|
+
{ type: 'title', text: 'How the Two Quorum Tests Work', level: 2 },
|
|
49
|
+
{ type: 'paragraph', html: 'For participation, the observed rate is the selected participation count divided by eligible or registered voters. For approval, the observed rate is Yes divided by the selected approval denominator. The comparison you choose controls whether an exact percentage passes or the observed value must be greater. Absolute thresholds compare the count directly and still show the related denominator for context.' },
|
|
50
|
+
{ type: 'table', headers: ['Test', 'Observed value', 'Threshold question'], rows: [['Participation', 'Selected participation count / eligible voters', 'Did enough of the electorate participate?'], ['Approval', 'Yes votes / selected approval denominator', 'Did Yes reach the required share or count?']] },
|
|
51
|
+
{ type: 'title', text: 'Prepare Counts Without Mixing Definitions', level: 2 },
|
|
52
|
+
{ type: 'paragraph', html: 'Use counts from one official result and one electoral scope. Do not combine a registered electorate from one revision with ballots from another, or mix a preliminary count with a final count. Keep blank and invalid ballots separate because a rule may include them in participation while excluding them from valid votes.' },
|
|
53
|
+
{ type: 'list', items: ['Confirm whether the rule names eligible voters or registered voters.', 'Record Yes, No, blank, and invalid ballots separately before choosing denominators.', 'Check that the total ballots do not exceed the declared electorate.', 'Write down whether every percentage is based on the electorate, all ballots, or valid votes.', 'Keep the exact official wording beside the calculator output for review.'] },
|
|
54
|
+
{ type: 'tip', title: 'A denominator is part of the rule', html: 'A 50% approval threshold over valid votes is not the same test as 50% over all ballots. The number can change because blank and invalid ballots remain in one denominator but not the other.' },
|
|
55
|
+
{ type: 'title', text: 'Interpret Pass and Fail States Carefully', level: 2 },
|
|
56
|
+
{ type: 'paragraph', html: 'The result distinguishes participation failure from approval failure. If participation passes but approval fails, the issue is the Yes threshold under the chosen denominator. If approval passes but participation fails, the Yes share is sufficient but the declared participation condition is not. If both fail, neither condition is met.' },
|
|
57
|
+
{ type: 'paragraph', html: 'A passing calculation is not a legal conclusion. Referendum rules vary by jurisdiction and by question type. Some systems have no quorum, while others use special approval rules, separate territorial conditions, or official treatments of blank and invalid ballots. The calculator evaluates only the configuration you supply.' },
|
|
58
|
+
{ type: 'tip', title: 'Use the output as a review sheet', html: 'Before publishing a conclusion, compare the displayed numerators, denominators, and threshold modes with the current official rule. If any definition is uncertain, stop at the warning instead of presenting a confident verdict.' },
|
|
59
|
+
{ type: 'title', text: 'Evidence and Limits', level: 2 },
|
|
60
|
+
{ type: 'paragraph', html: 'International IDEA documents that turnout and approval quorums should be clear in advance, while the Venice Commission discusses the risks and effects of quorum design. Those sources support the distinction between the tests and the need to expose the rule. They do not supply a universal threshold for every country.' },
|
|
61
|
+
],
|
|
62
|
+
faq: [
|
|
63
|
+
{ question: 'What does this calculator decide?', answer: 'It evaluates the ballot counts against the participation and approval thresholds that you enter. It does not determine which rule applies in a country or replace an official count.' },
|
|
64
|
+
{ question: 'What is the difference between participation and approval quorum?', answer: 'Participation asks whether enough people or ballots reached the participation threshold. Approval asks whether Yes votes reached the required share or number under the declared denominator.' },
|
|
65
|
+
{ question: 'Why can blank and invalid ballots change the result?', answer: 'They may count as participation while being excluded from valid votes. The calculator lets you declare the denominator separately for each test.' },
|
|
66
|
+
{ question: 'Does a passing result prove that a referendum is legally valid?', answer: 'No. A passing result only follows the inputs and thresholds shown. Check the applicable law, official guidance, ballot definitions, and counting authority.' },
|
|
67
|
+
],
|
|
68
|
+
bibliography,
|
|
69
|
+
howTo: [
|
|
70
|
+
{ name: 'Enter the electorate', text: 'Enter the eligible or registered voters used by the declared rule.' },
|
|
71
|
+
{ name: 'Enter ballot counts', text: 'Add Yes, No, blank, and invalid counts from the same referendum result.' },
|
|
72
|
+
{ name: 'Declare participation', text: 'Choose all ballots or valid votes and set a percentage or absolute participation threshold.' },
|
|
73
|
+
{ name: 'Declare approval', text: 'Choose the approval denominator and set the required Yes percentage or absolute count.' },
|
|
74
|
+
{ name: 'Read both tests', text: 'Check the numerator, denominator, observed rate, threshold, and warning before using the result.' },
|
|
75
|
+
],
|
|
76
|
+
schemas: [softwareApplication, faqPage, howTo] as unknown as Record<string, unknown>[],
|
|
77
|
+
};
|
|
78
|
+
|
|
79
|
+
export const englishContent: ReferendumThresholdLocaleContent = content;
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
import type { FAQPage, HowTo, SoftwareApplication } from 'schema-dts';
|
|
2
|
+
import type { ToolLocaleContent } from '../../../types';
|
|
3
|
+
import { bibliography } from '../bibliography';
|
|
4
|
+
import type { ReferendumThresholdLocaleContent } from '../entry';
|
|
5
|
+
import type { ReferendumThresholdUI } from '../ui';
|
|
6
|
+
|
|
7
|
+
const ui: ReferendumThresholdUI = {
|
|
8
|
+
countsHeading: 'Introduce los recuentos declarados', eligibleLabel: 'Electores con derecho a voto o inscritos', eligibleHelp: 'Usa el electorado que indique la norma que quieres comprobar.', yesLabel: 'Votos sí', noLabel: 'Votos no', blankLabel: 'Votos en blanco', invalidLabel: 'Votos nulos', participationHeading: 'Quórum de participación', participationHelp: 'Elige qué cuenta como participación y qué umbral debe alcanzar.', approvalHeading: 'Quórum de aprobación', approvalHelp: 'Elige el denominador de los votos sí. Cada regla queda visible en el resultado.', thresholdModeLabel: 'Tipo de umbral', comparisonLabel: 'Comparación', atLeastOption: 'Al menos', moreThanOption: 'Más de', percentageOption: 'Porcentaje', absoluteOption: 'Número absoluto', thresholdValueLabel: 'Valor del umbral', denominatorLabel: 'Recuento usado', allBallotsOption: 'Todas las papeletas', validVotesOption: 'Solo votos válidos', eligibleVotersOption: 'Electores inscritos', presetsLabel: 'Preajustes de aprobación', simpleMajorityPreset: 'Mayoría simple', electorateMajorityPreset: 'Mayoría del electorado', qualified55Preset: 'Cualificada del 55 %', qualified60Preset: 'Cualificada del 60 %', loadExample: 'Cargar ejemplo', shareAction: 'Copiar enlace', shareSuccess: 'Enlace copiado. Contiene los recuentos y las dos reglas.', shareFailure: 'El enlace está en la barra de direcciones para copiarlo.', resultHeading: 'Decisión según la regla declarada', emptyResult: 'Introduce recuentos y umbrales para ver las dos comprobaciones.', passed: 'Se cumplen los dos umbrales', participationFailed: 'No se cumple el quórum de participación', approvalFailed: 'No se cumple el quórum de aprobación', bothFailed: 'No se cumple ningún umbral', invalidResult: 'Revisa los recuentos declarados', participationMetric: 'Prueba de participación', approvalMetric: 'Prueba de aprobación', observedLabel: 'Observado', thresholdLabel: 'Requerido', decisionPathLabel: 'Ruta de decisión', methodHeading: 'Método aplicado', methodText: 'La participación es el recuento elegido dividido por los electores. La aprobación es sí dividido por el denominador elegido. La comparación decide si basta un porcentaje exacto o si debe superarse. Los umbrales absolutos comparan cantidades directamente.', limitsHeading: 'Lo que esta herramienta no hace', limitsText: 'No identifica la autoridad competente, no certifica el recuento, no determina plazos ni ofrece asesoramiento jurídico. El resultado depende de tus supuestos.', warningsHeading: 'Casos límite y avisos de datos', warningsText: 'Comprueba si los votos en blanco y nulos cuentan para participar, si el electorado está actualizado y si la aprobación usa votos válidos, todas las papeletas o electores.', invalidInput: 'Usa recuentos enteros y no negativos. Los electores deben ser mayores que cero y las papeletas no pueden superarlos.', ballotsExceedEligible: 'Las papeletas declaradas superan el electorado.', noValidVotes: 'No hay votos sí o no, por lo que falta el denominador de votos válidos.', noBallots: 'No se han declarado papeletas.', peopleSuffix: 'personas', yesShareLabel: 'Parte de sí', allBallotsLabel: 'todas las papeletas', validVotesLabel: 'votos válidos', eligibleVotersLabel: 'electores', whatNextLabel: 'Antes de usar el resultado', whatNextText: 'Copia el texto exacto de la norma aplicable y compáralo con la configuración mostrada.',
|
|
9
|
+
};
|
|
10
|
+
|
|
11
|
+
const softwareApplication: SoftwareApplication = { '@type': 'SoftwareApplication', name: 'Calculadora de umbrales de referéndum', applicationCategory: 'EducationalApplication', operatingSystem: 'Any', description: 'Comprueba quórums de participación y aprobación mostrando numeradores y denominadores.', url: 'https://gamebob.dev/es/calculadora-umbrales-referendum', offers: { '@type': 'Offer', price: '0', priceCurrency: 'EUR' } };
|
|
12
|
+
const faqPage: FAQPage = { '@type': 'FAQPage', mainEntity: [
|
|
13
|
+
{ '@type': 'Question', name: '¿Qué decide esta calculadora?', acceptedAnswer: { '@type': 'Answer', text: 'Compara los recuentos con los umbrales de participación y aprobación que introduces. No decide qué norma rige en un país.' } },
|
|
14
|
+
{ '@type': 'Question', name: '¿Qué diferencia hay entre participación y aprobación?', acceptedAnswer: { '@type': 'Answer', text: 'La participación comprueba si llegó suficiente gente o papeletas al umbral. La aprobación comprueba si los votos sí alcanzan la cantidad o proporción exigida.' } },
|
|
15
|
+
{ '@type': 'Question', name: '¿Por qué los votos en blanco y nulos pueden cambiar el resultado?', acceptedAnswer: { '@type': 'Answer', text: 'Pueden contar como participación y quedar fuera de los votos válidos. La herramienta permite declarar cada denominador por separado.' } },
|
|
16
|
+
{ '@type': 'Question', name: '¿Un resultado favorable demuestra validez legal?', acceptedAnswer: { '@type': 'Answer', text: 'No. Debes revisar la Constitución, la ley, las instrucciones oficiales, las definiciones de papeleta y la autoridad del recuento.' } },
|
|
17
|
+
] };
|
|
18
|
+
const howTo: HowTo = { '@type': 'HowTo', name: 'Comprobar umbrales de un referéndum', step: [
|
|
19
|
+
{ '@type': 'HowToStep', name: 'Introduce el electorado', text: 'Indica los electores inscritos o con derecho a voto que use la norma.' },
|
|
20
|
+
{ '@type': 'HowToStep', name: 'Separa las papeletas', text: 'Añade los recuentos de sí, no, blanco y nulo de la misma consulta.' },
|
|
21
|
+
{ '@type': 'HowToStep', name: 'Define la participación', text: 'Elige el recuento y fija un umbral porcentual o absoluto.' },
|
|
22
|
+
{ '@type': 'HowToStep', name: 'Define la aprobación', text: 'Elige el denominador de aprobación y el requisito de votos sí.' },
|
|
23
|
+
{ '@type': 'HowToStep', name: 'Lee las dos pruebas', text: 'Revisa numerador, denominador, porcentaje observado, umbral y avisos.' },
|
|
24
|
+
] };
|
|
25
|
+
|
|
26
|
+
export const content: ToolLocaleContent<ReferendumThresholdLocaleContent['ui']> = {
|
|
27
|
+
slug: 'calculadora-umbrales-referendum', title: 'Calculadora de umbrales de referéndum', description: 'Comprueba quórums de participación y aprobación mostrando con claridad cada numerador, denominador y regla.', ui, seo: [
|
|
28
|
+
{ type: 'title', text: 'Comprueba una regla de referéndum con denominadores visibles', level: 2 },
|
|
29
|
+
{ type: 'paragraph', html: 'Un resultado de referéndum puede parecer claro y esconder una decisión esencial: qué cuenta como participación y sobre qué conjunto se calcula la aprobación. Esta calculadora deja ambas decisiones junto al resultado.' },
|
|
30
|
+
{ type: 'paragraph', html: 'La participación y la aprobación son pruebas diferentes. Los votos en blanco y nulos pueden sumar participación sin formar parte de los votos válidos. Por eso la herramienta no elige un denominador en silencio.' },
|
|
31
|
+
{ type: 'title', text: 'Cómo funcionan los dos quórums', level: 2 },
|
|
32
|
+
{ type: 'paragraph', html: 'La tasa de participación divide el recuento elegido entre los electores. La tasa de aprobación divide los votos sí entre el denominador elegido. Puedes exigir al menos el umbral o que el resultado lo supere.' },
|
|
33
|
+
{ type: 'table', headers: ['Prueba', 'Valor observado', 'Pregunta'], rows: [['Participación', 'Papeletas elegidas / electores', '¿Participó una parte suficiente del electorado?'], ['Aprobación', 'Sí / denominador elegido', '¿Sí alcanza la proporción o cantidad requerida?']] },
|
|
34
|
+
{ type: 'title', text: 'Prepara los recuentos sin mezclar conceptos', level: 2 },
|
|
35
|
+
{ type: 'paragraph', html: 'Usa cifras de una misma consulta y de una misma versión del censo. No mezcles un recuento provisional con una cifra final ni unas papeletas con otro ámbito electoral. Mantén cada categoría separada antes de escoger el denominador.' },
|
|
36
|
+
{ type: 'list', items: ['Confirma si la norma habla de electores inscritos o con derecho a voto.', 'Registra por separado sí, no, blanco y nulo.', 'Comprueba que el total de papeletas no supera el electorado.', 'Anota el denominador de cada porcentaje.', 'Conserva el texto oficial junto a la salida de la calculadora.'] },
|
|
37
|
+
{ type: 'tip', title: 'El denominador forma parte de la regla', html: 'Un 50 % de aprobación sobre votos válidos no equivale a un 50 % sobre todas las papeletas o sobre el electorado. Los blancos y nulos pueden mover la decisión.' },
|
|
38
|
+
{ type: 'title', text: 'Interpreta los estados de aprobado y fallido', level: 2 },
|
|
39
|
+
{ type: 'paragraph', html: 'La salida separa un fallo de participación de un fallo de aprobación. Si participa suficiente gente pero no hay suficientes votos sí, revisa el umbral y el denominador de aprobación. Si ocurre al revés, falta la condición de participación.' },
|
|
40
|
+
{ type: 'paragraph', html: 'Un cálculo favorable no es una conclusión jurídica. Cada jurisdicción puede añadir reglas especiales, condiciones territoriales o tratamientos oficiales de votos blancos y nulos. La herramienta solo evalúa la configuración introducida.' },
|
|
41
|
+
{ type: 'tip', title: 'Usa la salida como hoja de comprobación', html: 'Antes de comunicar un resultado, compara cada numerador, denominador, modo y operador con la norma vigente. Si una definición no está clara, conserva el aviso y no presentes una certeza.' },
|
|
42
|
+
{ type: 'title', text: 'Evidencia y límites', level: 2 },
|
|
43
|
+
{ type: 'paragraph', html: 'International IDEA explica por qué las reglas de participación y aprobación deben ser claras. La Comisión de Venecia analiza los efectos de los quórums. Estas referencias ayudan a estructurar la comprobación, pero no fijan un umbral universal.' },
|
|
44
|
+
], faq: [
|
|
45
|
+
{ question: '¿Qué decide esta calculadora?', answer: 'Compara los recuentos con los umbrales de participación y aprobación que introduces. No decide qué norma rige en un país.' },
|
|
46
|
+
{ question: '¿Qué diferencia hay entre participación y aprobación?', answer: 'La participación comprueba si llegó suficiente gente o papeletas al umbral. La aprobación comprueba si los votos sí alcanzan la cantidad o proporción exigida.' },
|
|
47
|
+
{ question: '¿Por qué los votos en blanco y nulos pueden cambiar el resultado?', answer: 'Pueden contar como participación y quedar fuera de los votos válidos. La herramienta permite declarar cada denominador por separado.' },
|
|
48
|
+
{ question: '¿Un resultado favorable demuestra validez legal?', answer: 'No. Debes revisar la Constitución, la ley, las instrucciones oficiales, las definiciones de papeleta y la autoridad del recuento.' },
|
|
49
|
+
], bibliography, howTo: [
|
|
50
|
+
{ name: 'Introduce el electorado', text: 'Indica los electores inscritos o con derecho a voto que use la norma.' },
|
|
51
|
+
{ name: 'Separa las papeletas', text: 'Añade los recuentos de sí, no, blanco y nulo de la misma consulta.' },
|
|
52
|
+
{ name: 'Define la participación', text: 'Elige el recuento y fija un umbral porcentual o absoluto.' },
|
|
53
|
+
{ name: 'Define la aprobación', text: 'Elige el denominador de aprobación y el requisito de votos sí.' },
|
|
54
|
+
{ name: 'Lee las dos pruebas', text: 'Revisa numerador, denominador, porcentaje observado, umbral y avisos.' },
|
|
55
|
+
], schemas: [softwareApplication, faqPage, howTo] as unknown as Record<string, unknown>[]
|
|
56
|
+
};
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
import type { FAQPage, HowTo, SoftwareApplication } from 'schema-dts';
|
|
2
|
+
import type { ToolLocaleContent } from '../../../types';
|
|
3
|
+
import { bibliography } from '../bibliography';
|
|
4
|
+
import type { ReferendumThresholdLocaleContent } from '../entry';
|
|
5
|
+
import type { ReferendumThresholdUI } from '../ui';
|
|
6
|
+
|
|
7
|
+
const ui: ReferendumThresholdUI = {
|
|
8
|
+
countsHeading: 'Saisir les résultats déclarés', eligibleLabel: 'Électeurs inscrits ou admis à voter', eligibleHelp: 'Utilisez l électorat mentionné par la règle examinée.', yesLabel: 'Votes oui', noLabel: 'Votes non', blankLabel: 'Bulletins blancs', invalidLabel: 'Bulletins nuls', participationHeading: 'Quorum de participation', participationHelp: 'Choisissez ce qui compte comme participation et le seuil à atteindre.', approvalHeading: 'Quorum d approbation', approvalHelp: 'Choisissez le dénominateur des votes oui. Chaque règle reste visible dans le résultat.', thresholdModeLabel: 'Type de seuil', comparisonLabel: 'Comparaison', atLeastOption: 'Au moins', moreThanOption: 'Plus de', percentageOption: 'Pourcentage', absoluteOption: 'Nombre absolu', thresholdValueLabel: 'Valeur du seuil', denominatorLabel: 'Décompte utilisé', allBallotsOption: 'Tous les bulletins', validVotesOption: 'Votes valides seulement', eligibleVotersOption: 'Électeurs inscrits', presetsLabel: 'Préréglages d approbation', simpleMajorityPreset: 'Majorité simple', electorateMajorityPreset: 'Majorité de l électorat', qualified55Preset: 'Majorité qualifiée à 55 %', qualified60Preset: 'Majorité qualifiée à 60 %', loadExample: 'Charger un exemple', shareAction: 'Copier le permalien', shareSuccess: 'Permalien copié. Il contient les décomptes et les règles.', shareFailure: 'Le permalien est dans la barre d adresse et peut être copié.', resultHeading: 'Décision selon la règle déclarée', emptyResult: 'Saisissez les décomptes et les seuils pour voir les deux contrôles.', passed: 'Les deux seuils sont atteints', participationFailed: 'Le quorum de participation échoue', approvalFailed: 'Le quorum d approbation échoue', bothFailed: 'Les deux seuils échouent', invalidResult: 'Vérifiez les résultats déclarés', participationMetric: 'Contrôle de participation', approvalMetric: 'Contrôle d approbation', observedLabel: 'Observé', thresholdLabel: 'Requis', decisionPathLabel: 'Chemin de décision', methodHeading: 'Méthode appliquée', methodText: 'La participation est le décompte choisi divisé par les électeurs. L approbation est le nombre de oui divisé par le dénominateur choisi. La comparaison indique si une valeur exacte suffit ou doit être dépassée. Les seuils absolus comparent directement les nombres.', limitsHeading: 'Ce que cet outil ne fait pas', limitsText: 'Il ne désigne pas l autorité compétente, ne certifie pas le dépouillement, ne fixe pas les délais et ne donne pas de conseil juridique. Le résultat dépend de vos hypothèses.', warningsHeading: 'Cas limites et alertes de données', warningsText: 'Vérifiez si les bulletins blancs et nuls comptent pour la participation, si l électorat est à jour et si l approbation utilise les votes valides, tous les bulletins ou les électeurs.', invalidInput: 'Utilisez des nombres entiers non négatifs. Le nombre d électeurs doit être supérieur à zéro et les bulletins ne peuvent pas le dépasser.', ballotsExceedEligible: 'Les bulletins déclarés dépassent le nombre d électeurs.', noValidVotes: 'Aucun vote oui ou non n est déclaré, le dénominateur des votes valides manque.', noBallots: 'Aucun bulletin n est déclaré.', peopleSuffix: 'personnes', yesShareLabel: 'Part des oui', allBallotsLabel: 'tous les bulletins', validVotesLabel: 'votes valides', eligibleVotersLabel: 'électeurs', whatNextLabel: 'Avant d utiliser le résultat', whatNextText: 'Copiez le texte exact de la règle applicable et comparez-le avec la configuration affichée.',
|
|
9
|
+
};
|
|
10
|
+
|
|
11
|
+
const softwareApplication: SoftwareApplication = { '@type': 'SoftwareApplication', name: 'Calculateur de seuil référendaire', applicationCategory: 'EducationalApplication', operatingSystem: 'Any', description: 'Vérifie les quorums de participation et d approbation avec des numérateurs et dénominateurs visibles.', url: 'https://gamebob.dev/fr/calculateur-seuil-referendum', offers: { '@type': 'Offer', price: '0', priceCurrency: 'EUR' } };
|
|
12
|
+
const faqPage: FAQPage = { '@type': 'FAQPage', mainEntity: [
|
|
13
|
+
{ '@type': 'Question', name: 'Que décide ce calculateur ?', acceptedAnswer: { '@type': 'Answer', text: 'Il compare les résultats aux seuils de participation et d approbation saisis. Il ne détermine pas la règle juridique applicable.' } },
|
|
14
|
+
{ '@type': 'Question', name: 'Quelle est la différence entre les deux quorums ?', acceptedAnswer: { '@type': 'Answer', text: 'Le quorum de participation demande si assez de personnes ou de bulletins sont pris en compte. Le quorum d approbation demande si les oui atteignent le nombre ou la proportion requise.' } },
|
|
15
|
+
{ '@type': 'Question', name: 'Pourquoi les bulletins blancs et nuls peuvent-ils changer le résultat ?', acceptedAnswer: { '@type': 'Answer', text: 'Ils peuvent compter pour la participation tout en étant exclus des votes valides. L outil rend chaque dénominateur explicite.' } },
|
|
16
|
+
{ '@type': 'Question', name: 'Un résultat positif prouve-t-il la validité juridique ?', acceptedAnswer: { '@type': 'Answer', text: 'Non. Consultez la Constitution, la loi, les instructions officielles, les définitions des bulletins et l autorité de dépouillement.' } },
|
|
17
|
+
] };
|
|
18
|
+
const howTo: HowTo = { '@type': 'HowTo', name: 'Vérifier les seuils d un référendum', step: [
|
|
19
|
+
{ '@type': 'HowToStep', name: 'Saisir l électorat', text: 'Indiquez les électeurs inscrits ou admis à voter utilisés par la règle.' },
|
|
20
|
+
{ '@type': 'HowToStep', name: 'Séparer les bulletins', text: 'Ajoutez les comptes oui, non, blancs et nuls du même scrutin.' },
|
|
21
|
+
{ '@type': 'HowToStep', name: 'Définir la participation', text: 'Choisissez le décompte et un seuil en pourcentage ou en nombre absolu.' },
|
|
22
|
+
{ '@type': 'HowToStep', name: 'Définir l approbation', text: 'Choisissez le dénominateur et la condition requise pour les oui.' },
|
|
23
|
+
{ '@type': 'HowToStep', name: 'Lire les contrôles', text: 'Vérifiez numérateur, dénominateur, taux observé, seuil et alertes.' },
|
|
24
|
+
] };
|
|
25
|
+
|
|
26
|
+
export const content: ToolLocaleContent<ReferendumThresholdLocaleContent['ui']> = {
|
|
27
|
+
slug: 'calculateur-seuil-referendum', title: 'Calculateur de seuils de référendum', description: 'Vérifiez les quorums de participation et d approbation en affichant chaque numérateur, dénominateur et règle.', ui, seo: [
|
|
28
|
+
{ type: 'title', text: 'Vérifier une règle référendaire avec des dénominateurs visibles', level: 2 },
|
|
29
|
+
{ type: 'paragraph', html: 'Un résultat référendaire peut sembler évident alors que le dénominateur change toute l interprétation. Ce calculateur place l électorat, les catégories de bulletins et les deux quorums dans une même lecture.' },
|
|
30
|
+
{ type: 'paragraph', html: 'La participation et l approbation sont deux contrôles différents. Les bulletins blancs et nuls peuvent compter pour la participation mais ne pas appartenir aux votes valides. L outil ne choisit pas cette définition à votre place.' },
|
|
31
|
+
{ type: 'title', text: 'Comprendre les deux quorums', level: 2 },
|
|
32
|
+
{ type: 'paragraph', html: 'Le taux de participation divise le décompte choisi par le nombre d électeurs. Le taux d approbation divise les oui par le dénominateur sélectionné. Le comparateur permet d accepter une égalité ou d exiger un dépassement.' },
|
|
33
|
+
{ type: 'table', headers: ['Contrôle', 'Valeur observée', 'Question'], rows: [['Participation', 'Bulletins choisis / électeurs', 'Une part suffisante de l électorat a-t-elle participé ?'], ['Approbation', 'Oui / dénominateur choisi', 'Les oui atteignent-ils le seuil requis ?']] },
|
|
34
|
+
{ type: 'title', text: 'Préparer les résultats sans mélanger les définitions', level: 2 },
|
|
35
|
+
{ type: 'paragraph', html: 'Utilisez les chiffres d un même scrutin et d une même version de la liste électorale. Séparez oui, non, blanc et nul avant de choisir les dénominateurs. Cette discipline permet de retrouver la source de chaque chiffre.' },
|
|
36
|
+
{ type: 'list', items: ['Confirmez si la règle vise les électeurs inscrits ou admis à voter.', 'Notez séparément les quatre catégories de bulletins.', 'Vérifiez que le total des bulletins ne dépasse pas l électorat.', 'Écrivez le dénominateur de chaque pourcentage.', 'Conservez le texte officiel avec le résultat calculé.'] },
|
|
37
|
+
{ type: 'tip', title: 'Le dénominateur fait partie de la règle', html: '50 % d approbation parmi les votes valides ne signifie pas 50 % parmi tous les bulletins ou tous les électeurs. Les bulletins blancs et nuls peuvent modifier la décision.' },
|
|
38
|
+
{ type: 'title', text: 'Interpréter les états de réussite et d échec', level: 2 },
|
|
39
|
+
{ type: 'paragraph', html: 'Le résultat distingue l échec de participation de l échec d approbation. Si la participation suffit mais que l approbation échoue, examinez les oui et leur dénominateur. Dans le cas inverse, la condition de participation manque.' },
|
|
40
|
+
{ type: 'paragraph', html: 'Un résultat favorable n est pas une conclusion juridique. Une juridiction peut prévoir des règles spéciales, des conditions territoriales ou un traitement officiel des bulletins blancs et nuls. Le calcul ne porte que sur votre configuration.' },
|
|
41
|
+
{ type: 'tip', title: 'Utiliser la sortie comme feuille de contrôle', html: 'Avant de communiquer un résultat, comparez chaque numérateur, dénominateur, mode et comparateur avec la règle en vigueur. Si une définition reste incertaine, gardez l alerte visible.' },
|
|
42
|
+
{ type: 'title', text: 'Sources et limites', level: 2 },
|
|
43
|
+
{ type: 'paragraph', html: 'International IDEA explique pourquoi les règles de participation et d approbation doivent être claires. La Commission de Venise étudie les effets des quorums. Ces références structurent la vérification sans fournir de seuil universel.' },
|
|
44
|
+
], faq: [
|
|
45
|
+
{ question: 'Que décide ce calculateur ?', answer: 'Il compare les résultats aux seuils de participation et d approbation saisis. Il ne détermine pas la règle juridique applicable.' },
|
|
46
|
+
{ question: 'Quelle est la différence entre les deux quorums ?', answer: 'Le quorum de participation demande si assez de personnes ou de bulletins sont pris en compte. Le quorum d approbation demande si les oui atteignent le nombre ou la proportion requise.' },
|
|
47
|
+
{ question: 'Pourquoi les bulletins blancs et nuls peuvent-ils changer le résultat ?', answer: 'Ils peuvent compter pour la participation tout en étant exclus des votes valides. L outil rend chaque dénominateur explicite.' },
|
|
48
|
+
{ question: 'Un résultat positif prouve-t-il la validité juridique ?', answer: 'Non. Consultez la Constitution, la loi, les instructions officielles, les définitions des bulletins et l autorité de dépouillement.' },
|
|
49
|
+
], bibliography, howTo: [
|
|
50
|
+
{ name: 'Saisir l électorat', text: 'Indiquez les électeurs inscrits ou admis à voter utilisés par la règle.' },
|
|
51
|
+
{ name: 'Séparer les bulletins', text: 'Ajoutez les comptes oui, non, blancs et nuls du même scrutin.' },
|
|
52
|
+
{ name: 'Définir la participation', text: 'Choisissez le décompte et un seuil en pourcentage ou en nombre absolu.' },
|
|
53
|
+
{ name: 'Définir l approbation', text: 'Choisissez le dénominateur et la condition requise pour les oui.' },
|
|
54
|
+
{ name: 'Lire les contrôles', text: 'Vérifiez numérateur, dénominateur, taux observé, seuil et alertes.' },
|
|
55
|
+
], schemas: [softwareApplication, faqPage, howTo] as unknown as Record<string, unknown>[]
|
|
56
|
+
};
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
import type { FAQPage, HowTo, SoftwareApplication } from 'schema-dts';
|
|
2
|
+
import type { ToolLocaleContent } from '../../../types';
|
|
3
|
+
import { bibliography } from '../bibliography';
|
|
4
|
+
import type { ReferendumThresholdLocaleContent } from '../entry';
|
|
5
|
+
import type { ReferendumThresholdUI } from '../ui';
|
|
6
|
+
|
|
7
|
+
const ui: ReferendumThresholdUI = {
|
|
8
|
+
countsHeading: 'Masukkan jumlah suara yang dinyatakan', eligibleLabel: 'Pemilih terdaftar atau yang berhak memilih', eligibleHelp: 'Gunakan jumlah pemilih yang disebutkan dalam aturan yang diperiksa.', yesLabel: 'Suara ya', noLabel: 'Suara tidak', blankLabel: 'Surat suara kosong', invalidLabel: 'Surat suara tidak sah', participationHeading: 'Kuorum partisipasi', participationHelp: 'Pilih apa yang dihitung sebagai partisipasi dan ambang yang harus dicapai.', approvalHeading: 'Kuorum persetujuan', approvalHelp: 'Pilih penyebut untuk suara ya. Setiap aturan tetap terlihat pada hasil.', thresholdModeLabel: 'Jenis ambang', comparisonLabel: 'Perbandingan', atLeastOption: 'Sekurang-kurangnya', moreThanOption: 'Lebih dari', percentageOption: 'Persentase', absoluteOption: 'Jumlah mutlak', thresholdValueLabel: 'Nilai ambang', denominatorLabel: 'Jumlah yang digunakan', allBallotsOption: 'Semua surat suara', validVotesOption: 'Hanya suara sah', eligibleVotersOption: 'Pemilih terdaftar', presetsLabel: 'Preset persetujuan', simpleMajorityPreset: 'Mayoritas sederhana', electorateMajorityPreset: 'Mayoritas pemilih', qualified55Preset: 'Kualifikasi 55%', qualified60Preset: 'Kualifikasi 60%', loadExample: 'Muat contoh', shareAction: 'Salin permalink', shareSuccess: 'Permalink disalin. Isinya jumlah suara dan kedua aturan.', shareFailure: 'Permalink tersedia di bilah alamat untuk disalin.', resultHeading: 'Keputusan menurut aturan yang dinyatakan', emptyResult: 'Masukkan jumlah dan ambang untuk melihat dua pengujian kuorum.', passed: 'Kedua ambang terpenuhi', participationFailed: 'Kuorum partisipasi tidak terpenuhi', approvalFailed: 'Kuorum persetujuan tidak terpenuhi', bothFailed: 'Kedua ambang tidak terpenuhi', invalidResult: 'Periksa jumlah yang dinyatakan', participationMetric: 'Uji partisipasi', approvalMetric: 'Uji persetujuan', observedLabel: 'Teramati', thresholdLabel: 'Diperlukan', decisionPathLabel: 'Jalur keputusan', methodHeading: 'Metode yang diterapkan', methodText: 'Partisipasi adalah jumlah yang dipilih dibagi jumlah pemilih. Persetujuan adalah suara ya dibagi penyebut yang dipilih. Perbandingan menentukan apakah nilai tepat sudah cukup atau harus dilampaui. Ambang mutlak membandingkan jumlah secara langsung.', limitsHeading: 'Yang tidak dilakukan alat ini', limitsText: 'Alat ini tidak menentukan lembaga yang berwenang, mengesahkan penghitungan, menetapkan tenggat, atau memberi nasihat hukum. Hasil bergantung pada asumsi yang dimasukkan.', warningsHeading: 'Kasus batas dan peringatan data', warningsText: 'Periksa apakah surat suara kosong dan tidak sah dihitung sebagai partisipasi, apakah daftar pemilih terbaru, dan apakah persetujuan memakai suara sah, semua surat suara, atau pemilih.', invalidInput: 'Gunakan jumlah bulat yang tidak negatif. Jumlah pemilih harus lebih dari nol dan surat suara tidak boleh melebihinya.', ballotsExceedEligible: 'Surat suara yang dinyatakan melebihi jumlah pemilih.', noValidVotes: 'Tidak ada suara ya atau tidak, sehingga penyebut suara sah tidak tersedia.', noBallots: 'Tidak ada surat suara yang dinyatakan.', peopleSuffix: 'orang', yesShareLabel: 'Proporsi suara ya', allBallotsLabel: 'semua surat suara', validVotesLabel: 'suara sah', eligibleVotersLabel: 'pemilih', whatNextLabel: 'Sebelum menggunakan hasil', whatNextText: 'Salin bunyi persis aturan yang berlaku dan bandingkan dengan konfigurasi yang ditampilkan.',
|
|
9
|
+
};
|
|
10
|
+
|
|
11
|
+
const softwareApplication: SoftwareApplication = { '@type': 'SoftwareApplication', name: 'Kalkulator ambang referendum', applicationCategory: 'EducationalApplication', operatingSystem: 'Any', description: 'Periksa kuorum partisipasi dan persetujuan dengan pembilang dan penyebut yang terlihat.', url: 'https://gamebob.dev/id/kalkulator-ambang-referendum', offers: { '@type': 'Offer', price: '0', priceCurrency: 'IDR' } };
|
|
12
|
+
const faqPage: FAQPage = { '@type': 'FAQPage', mainEntity: [
|
|
13
|
+
{ '@type': 'Question', name: 'Apa yang diputuskan kalkulator ini?', acceptedAnswer: { '@type': 'Answer', text: 'Kalkulator membandingkan jumlah suara dengan ambang partisipasi dan persetujuan yang dimasukkan. Kalkulator tidak menentukan aturan hukum yang berlaku.' } },
|
|
14
|
+
{ '@type': 'Question', name: 'Apa perbedaan partisipasi dan persetujuan?', acceptedAnswer: { '@type': 'Answer', text: 'Partisipasi memeriksa apakah cukup banyak orang atau surat suara mencapai ambang. Persetujuan memeriksa apakah suara ya mencapai jumlah atau proporsi yang diwajibkan.' } },
|
|
15
|
+
{ '@type': 'Question', name: 'Mengapa surat suara kosong dan tidak sah dapat mengubah hasil?', acceptedAnswer: { '@type': 'Answer', text: 'Keduanya dapat dihitung untuk partisipasi tetapi dikeluarkan dari suara sah. Alat ini menampilkan setiap penyebut secara terpisah.' } },
|
|
16
|
+
{ '@type': 'Question', name: 'Apakah hasil positif membuktikan keabsahan hukum?', acceptedAnswer: { '@type': 'Answer', text: 'Tidak. Periksa konstitusi, undang-undang, petunjuk resmi, definisi surat suara, dan lembaga penghitungan.' } },
|
|
17
|
+
] };
|
|
18
|
+
const howTo: HowTo = { '@type': 'HowTo', name: 'Memeriksa ambang referendum', step: [
|
|
19
|
+
{ '@type': 'HowToStep', name: 'Masukkan jumlah pemilih', text: 'Masukkan pemilih terdaftar atau yang berhak memilih menurut aturan.' },
|
|
20
|
+
{ '@type': 'HowToStep', name: 'Pisahkan surat suara', text: 'Tambahkan suara ya, tidak, kosong, dan tidak sah dari hasil yang sama.' },
|
|
21
|
+
{ '@type': 'HowToStep', name: 'Tentukan partisipasi', text: 'Pilih jumlah yang digunakan dan ambang persentase atau mutlak.' },
|
|
22
|
+
{ '@type': 'HowToStep', name: 'Tentukan persetujuan', text: 'Pilih penyebut dan syarat suara ya yang diperlukan.' },
|
|
23
|
+
{ '@type': 'HowToStep', name: 'Baca kedua uji', text: 'Periksa pembilang, penyebut, tingkat, ambang, dan peringatan.' },
|
|
24
|
+
] };
|
|
25
|
+
|
|
26
|
+
export const content: ToolLocaleContent<ReferendumThresholdLocaleContent['ui']> = {
|
|
27
|
+
slug: 'kalkulator-ambang-referendum', title: 'Kalkulator ambang referendum', description: 'Periksa kuorum partisipasi dan persetujuan dengan pembilang, penyebut, dan aturan yang terlihat jelas.', ui, seo: [
|
|
28
|
+
{ type: 'title', text: 'Periksa aturan referendum dengan penyebut yang terlihat', level: 2 },
|
|
29
|
+
{ type: 'paragraph', html: 'Hasil referendum dapat terlihat sederhana, padahal penyebut menentukan cara membacanya. Kalkulator ini menempatkan jumlah pemilih, kategori surat suara, dan kedua kuorum dalam satu tampilan yang mudah ditelusuri.' },
|
|
30
|
+
{ type: 'paragraph', html: 'Partisipasi dan persetujuan merupakan pengujian yang berbeda. Surat suara kosong dan tidak sah dapat menambah partisipasi tanpa menjadi suara sah. Alat ini tidak mengambil keputusan tersebut secara diam-diam.' },
|
|
31
|
+
{ type: 'title', text: 'Cara kerja kedua kuorum', level: 2 },
|
|
32
|
+
{ type: 'paragraph', html: 'Tingkat partisipasi membagi jumlah partisipasi dengan jumlah pemilih. Tingkat persetujuan membagi suara ya dengan penyebut pilihan. Perbandingan dapat menerima nilai yang sama atau meminta nilai yang melampaui ambang.' },
|
|
33
|
+
{ type: 'table', headers: ['Uji', 'Nilai teramati', 'Pertanyaan'], rows: [['Partisipasi', 'Surat suara terpilih / pemilih', 'Apakah bagian pemilih yang ikut sudah cukup?'], ['Persetujuan', 'Ya / penyebut terpilih', 'Apakah suara ya mencapai ambang yang diminta?']] },
|
|
34
|
+
{ type: 'title', text: 'Siapkan jumlah tanpa mencampur definisi', level: 2 },
|
|
35
|
+
{ type: 'paragraph', html: 'Gunakan angka dari pemungutan suara dan daftar pemilih yang sama. Pisahkan ya, tidak, kosong, dan tidak sah sebelum memilih penyebut agar setiap angka dapat diperiksa kembali.' },
|
|
36
|
+
{ type: 'list', items: ['Pastikan aturan menyebut pemilih terdaftar atau pemilih yang berhak.', 'Catat empat kategori surat suara secara terpisah.', 'Pastikan total surat suara tidak melebihi jumlah pemilih.', 'Tuliskan penyebut untuk setiap persentase.', 'Simpan bunyi aturan resmi di samping hasil kalkulator.'] },
|
|
37
|
+
{ type: 'tip', title: 'Penyebut adalah bagian dari aturan', html: 'Persetujuan 50% dari suara sah bukan pengujian yang sama dengan 50% dari semua surat suara atau seluruh pemilih. Surat suara kosong dan tidak sah dapat mengubah keputusan.' },
|
|
38
|
+
{ type: 'title', text: 'Tafsirkan keadaan lulus dan gagal', level: 2 },
|
|
39
|
+
{ type: 'paragraph', html: 'Hasil membedakan kegagalan partisipasi dari kegagalan persetujuan. Jika partisipasi lulus tetapi persetujuan gagal, periksa suara ya dan penyebutnya. Jika sebaliknya, syarat partisipasi belum terpenuhi.' },
|
|
40
|
+
{ type: 'paragraph', html: 'Hasil hitung yang positif bukan kesimpulan hukum. Setiap yurisdiksi dapat memiliki syarat khusus, wilayah, atau perlakuan resmi terhadap surat suara kosong dan tidak sah. Kalkulator hanya menilai konfigurasi yang dimasukkan.' },
|
|
41
|
+
{ type: 'tip', title: 'Gunakan hasil sebagai lembar pemeriksaan', html: 'Sebelum menyampaikan kesimpulan, cocokkan setiap pembilang, penyebut, mode, dan perbandingan dengan aturan terkini. Jika definisinya belum jelas, biarkan peringatan tetap terlihat.' },
|
|
42
|
+
{ type: 'title', text: 'Sumber dan batasan', level: 2 },
|
|
43
|
+
{ type: 'paragraph', html: 'International IDEA menjelaskan pentingnya aturan partisipasi dan persetujuan yang jelas. Komisi Venesia membahas dampak kuorum. Sumber ini mendukung metode pemeriksaan, bukan ambang universal untuk semua negara.' },
|
|
44
|
+
], faq: [
|
|
45
|
+
{ question: 'Apa yang diputuskan kalkulator ini?', answer: 'Kalkulator membandingkan jumlah suara dengan ambang partisipasi dan persetujuan yang dimasukkan. Kalkulator tidak menentukan aturan hukum yang berlaku.' },
|
|
46
|
+
{ question: 'Apa perbedaan partisipasi dan persetujuan?', answer: 'Partisipasi memeriksa apakah cukup banyak orang atau surat suara mencapai ambang. Persetujuan memeriksa apakah suara ya mencapai jumlah atau proporsi yang diwajibkan.' },
|
|
47
|
+
{ question: 'Mengapa surat suara kosong dan tidak sah dapat mengubah hasil?', answer: 'Keduanya dapat dihitung untuk partisipasi tetapi dikeluarkan dari suara sah. Alat ini menampilkan setiap penyebut secara terpisah.' },
|
|
48
|
+
{ question: 'Apakah hasil positif membuktikan keabsahan hukum?', answer: 'Tidak. Periksa konstitusi, undang-undang, petunjuk resmi, definisi surat suara, dan lembaga penghitungan.' },
|
|
49
|
+
], bibliography, howTo: [
|
|
50
|
+
{ name: 'Masukkan jumlah pemilih', text: 'Masukkan pemilih terdaftar atau yang berhak memilih menurut aturan.' },
|
|
51
|
+
{ name: 'Pisahkan surat suara', text: 'Tambahkan suara ya, tidak, kosong, dan tidak sah dari hasil yang sama.' },
|
|
52
|
+
{ name: 'Tentukan partisipasi', text: 'Pilih jumlah yang digunakan dan ambang persentase atau mutlak.' },
|
|
53
|
+
{ name: 'Tentukan persetujuan', text: 'Pilih penyebut dan syarat suara ya yang diperlukan.' },
|
|
54
|
+
{ name: 'Baca kedua uji', text: 'Periksa pembilang, penyebut, tingkat, ambang, dan peringatan.' },
|
|
55
|
+
], schemas: [softwareApplication, faqPage, howTo] as unknown as Record<string, unknown>[]
|
|
56
|
+
};
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
import type { FAQPage, HowTo, SoftwareApplication } from 'schema-dts';
|
|
2
|
+
import type { ToolLocaleContent } from '../../../types';
|
|
3
|
+
import { bibliography } from '../bibliography';
|
|
4
|
+
import type { ReferendumThresholdLocaleContent } from '../entry';
|
|
5
|
+
import type { ReferendumThresholdUI } from '../ui';
|
|
6
|
+
|
|
7
|
+
const ui: ReferendumThresholdUI = {
|
|
8
|
+
countsHeading: 'Inserisci i conteggi dichiarati', eligibleLabel: 'Elettori aventi diritto o registrati', eligibleHelp: 'Usa l elettorato indicato dalla regola che stai verificando.', yesLabel: 'Voti sì', noLabel: 'Voti no', blankLabel: 'Schede bianche', invalidLabel: 'Schede nulle', participationHeading: 'Quorum di partecipazione', participationHelp: 'Scegli cosa conta come partecipazione e quale soglia deve essere raggiunta.', approvalHeading: 'Quorum di approvazione', approvalHelp: 'Scegli il denominatore dei voti sì. Ogni regola resta visibile nel risultato.', thresholdModeLabel: 'Tipo di soglia', comparisonLabel: 'Confronto', atLeastOption: 'Almeno', moreThanOption: 'Più di', percentageOption: 'Percentuale', absoluteOption: 'Numero assoluto', thresholdValueLabel: 'Valore della soglia', denominatorLabel: 'Conteggio usato', allBallotsOption: 'Tutte le schede', validVotesOption: 'Solo voti validi', eligibleVotersOption: 'Elettori registrati', presetsLabel: 'Preimpostazioni di approvazione', simpleMajorityPreset: 'Maggioranza semplice', electorateMajorityPreset: 'Maggioranza dell elettorato', qualified55Preset: 'Qualificata al 55%', qualified60Preset: 'Qualificata al 60%', loadExample: 'Carica esempio', shareAction: 'Copia permalink', shareSuccess: 'Permalink copiato. Contiene conteggi e regole.', shareFailure: 'Il permalink è nella barra degli indirizzi e può essere copiato.', resultHeading: 'Decisione secondo la regola dichiarata', emptyResult: 'Inserisci conteggi e soglie per vedere i due controlli.', passed: 'Entrambe le soglie sono raggiunte', participationFailed: 'Il quorum di partecipazione non è raggiunto', approvalFailed: 'Il quorum di approvazione non è raggiunto', bothFailed: 'Nessuna delle due soglie è raggiunta', invalidResult: 'Controlla i conteggi dichiarati', participationMetric: 'Controllo della partecipazione', approvalMetric: 'Controllo dell approvazione', observedLabel: 'Osservato', thresholdLabel: 'Richiesto', decisionPathLabel: 'Percorso decisionale', methodHeading: 'Metodo applicato', methodText: 'La partecipazione è il conteggio scelto diviso per gli elettori. L approvazione è il numero di sì diviso per il denominatore scelto. Il confronto stabilisce se basta un valore esatto o se deve essere superato. Le soglie assolute confrontano direttamente i conteggi.', limitsHeading: 'Cosa non fa questo strumento', limitsText: 'Non identifica l autorità competente, non certifica lo scrutinio, non stabilisce scadenze e non offre consulenza legale. Il risultato dipende dalle ipotesi inserite.', warningsHeading: 'Casi limite e avvisi sui dati', warningsText: 'Controlla se le schede bianche e nulle contano per la partecipazione, se l elettorato è aggiornato e se l approvazione usa voti validi, tutte le schede o gli elettori.', invalidInput: 'Usa conteggi interi non negativi. Gli elettori devono essere maggiori di zero e le schede non possono superarli.', ballotsExceedEligible: 'Le schede dichiarate superano il numero degli elettori.', noValidVotes: 'Non ci sono voti sì o no, quindi manca il denominatore dei voti validi.', noBallots: 'Non sono state dichiarate schede.', peopleSuffix: 'persone', yesShareLabel: 'Quota dei sì', allBallotsLabel: 'tutte le schede', validVotesLabel: 'voti validi', eligibleVotersLabel: 'elettori', whatNextLabel: 'Prima di usare il risultato', whatNextText: 'Copia il testo preciso della regola applicabile e confrontalo con la configurazione mostrata.',
|
|
9
|
+
};
|
|
10
|
+
|
|
11
|
+
const softwareApplication: SoftwareApplication = { '@type': 'SoftwareApplication', name: 'Calcolatore delle soglie referendarie', applicationCategory: 'EducationalApplication', operatingSystem: 'Any', description: 'Verifica i quorum di partecipazione e approvazione mostrando numeratori e denominatori.', url: 'https://gamebob.dev/it/calcolatore-soglie-referendum', offers: { '@type': 'Offer', price: '0', priceCurrency: 'EUR' } };
|
|
12
|
+
const faqPage: FAQPage = { '@type': 'FAQPage', mainEntity: [
|
|
13
|
+
{ '@type': 'Question', name: 'Che cosa decide questo calcolatore?', acceptedAnswer: { '@type': 'Answer', text: 'Confronta i conteggi con le soglie di partecipazione e approvazione che inserisci. Non stabilisce quale norma giuridica si applichi.' } },
|
|
14
|
+
{ '@type': 'Question', name: 'Qual è la differenza tra partecipazione e approvazione?', acceptedAnswer: { '@type': 'Answer', text: 'La partecipazione verifica se abbastanza persone o schede raggiungono la soglia. L approvazione verifica se i voti sì raggiungono il numero o la proporzione richiesta.' } },
|
|
15
|
+
{ '@type': 'Question', name: 'Perché schede bianche e nulle possono cambiare il risultato?', acceptedAnswer: { '@type': 'Answer', text: 'Possono contare per la partecipazione ma essere escluse dai voti validi. Lo strumento rende separato ogni denominatore.' } },
|
|
16
|
+
{ '@type': 'Question', name: 'Un risultato positivo dimostra la validità legale?', acceptedAnswer: { '@type': 'Answer', text: 'No. Verifica costituzione, legge, istruzioni ufficiali, definizioni delle schede e autorità di scrutinio.' } },
|
|
17
|
+
] };
|
|
18
|
+
const howTo: HowTo = { '@type': 'HowTo', name: 'Verificare le soglie di un referendum', step: [
|
|
19
|
+
{ '@type': 'HowToStep', name: 'Inserisci l elettorato', text: 'Indica gli elettori registrati o aventi diritto usati dalla regola.' },
|
|
20
|
+
{ '@type': 'HowToStep', name: 'Separa le schede', text: 'Aggiungi sì, no, bianche e nulle dallo stesso scrutinio.' },
|
|
21
|
+
{ '@type': 'HowToStep', name: 'Definisci la partecipazione', text: 'Scegli il conteggio e una soglia percentuale o assoluta.' },
|
|
22
|
+
{ '@type': 'HowToStep', name: 'Definisci l approvazione', text: 'Scegli il denominatore e il requisito per i voti sì.' },
|
|
23
|
+
{ '@type': 'HowToStep', name: 'Leggi i due controlli', text: 'Controlla numeratore, denominatore, tasso, soglia e avvisi.' },
|
|
24
|
+
] };
|
|
25
|
+
|
|
26
|
+
export const content: ToolLocaleContent<ReferendumThresholdLocaleContent['ui']> = {
|
|
27
|
+
slug: 'calcolatore-soglie-referendum', title: 'Calcolatore delle soglie referendarie', description: 'Verifica i quorum di partecipazione e approvazione con numeratori, denominatori e regole ben visibili.', ui, seo: [
|
|
28
|
+
{ type: 'title', text: 'Verifica una regola referendaria con denominatori visibili', level: 2 },
|
|
29
|
+
{ type: 'paragraph', html: 'Un risultato referendario può sembrare semplice, ma il denominatore decide il significato del dato. Questo calcolatore mantiene insieme elettorato, categorie delle schede e due quorum, così puoi ricostruire ogni passaggio.' },
|
|
30
|
+
{ type: 'paragraph', html: 'Partecipazione e approvazione sono verifiche distinte. Le schede bianche e nulle possono aumentare la partecipazione senza entrare nei voti validi. Lo strumento non nasconde questa scelta.' },
|
|
31
|
+
{ type: 'title', text: 'Come funzionano i due quorum', level: 2 },
|
|
32
|
+
{ type: 'paragraph', html: 'Il tasso di partecipazione divide il conteggio scelto per gli elettori. Il tasso di approvazione divide i sì per il denominatore selezionato. Il confronto può accettare l uguaglianza oppure richiedere un superamento.' },
|
|
33
|
+
{ type: 'table', headers: ['Verifica', 'Valore osservato', 'Domanda'], rows: [['Partecipazione', 'Schede scelte / elettori', 'Ha partecipato una parte sufficiente?'], ['Approvazione', 'Sì / denominatore scelto', 'I sì raggiungono la soglia richiesta?']] },
|
|
34
|
+
{ type: 'title', text: 'Prepara i conteggi senza confondere le definizioni', level: 2 },
|
|
35
|
+
{ type: 'paragraph', html: 'Usa cifre dello stesso scrutinio e della stessa versione dell elenco elettorale. Tieni separati sì, no, bianco e nullo prima di scegliere il denominatore. In questo modo ogni cifra resta verificabile.' },
|
|
36
|
+
{ type: 'list', items: ['Controlla se la regola parla di elettori registrati o aventi diritto.', 'Registra separatamente le quattro categorie di schede.', 'Verifica che le schede totali non superino l elettorato.', 'Annota il denominatore di ogni percentuale.', 'Conserva il testo ufficiale accanto al risultato.'] },
|
|
37
|
+
{ type: 'tip', title: 'Il denominatore è parte della regola', html: 'Il 50% sui voti validi non è la stessa verifica del 50% su tutte le schede o sull elettorato. Bianche e nulle possono cambiare l esito.' },
|
|
38
|
+
{ type: 'title', text: 'Interpreta gli stati di successo e fallimento', level: 2 },
|
|
39
|
+
{ type: 'paragraph', html: 'Il risultato distingue il fallimento della partecipazione da quello dell approvazione. Se la partecipazione passa ma l approvazione no, guarda i sì e il loro denominatore. Nel caso opposto manca la condizione di partecipazione.' },
|
|
40
|
+
{ type: 'paragraph', html: 'Un risultato positivo non è una conclusione giuridica. Ogni ordinamento può aggiungere condizioni speciali, territoriali o regole ufficiali per schede bianche e nulle. Il calcolo riguarda solo i dati inseriti.' },
|
|
41
|
+
{ type: 'tip', title: 'Usa l uscita come foglio di controllo', html: 'Prima di comunicare un esito, confronta numeratore, denominatore, modalità e confronto con la regola vigente. Se una definizione è incerta, lascia visibile l avviso.' },
|
|
42
|
+
{ type: 'title', text: 'Fonti e limiti', level: 2 },
|
|
43
|
+
{ type: 'paragraph', html: 'International IDEA spiega perché le regole di partecipazione e approvazione devono essere chiare. La Commissione di Venezia analizza gli effetti dei quorum. Le fonti aiutano a strutturare il controllo, ma non fissano una soglia universale.' },
|
|
44
|
+
], faq: [
|
|
45
|
+
{ question: 'Che cosa decide questo calcolatore?', answer: 'Confronta i conteggi con le soglie di partecipazione e approvazione che inserisci. Non stabilisce quale norma giuridica si applichi.' },
|
|
46
|
+
{ question: 'Qual è la differenza tra partecipazione e approvazione?', answer: 'La partecipazione verifica se abbastanza persone o schede raggiungono la soglia. L approvazione verifica se i voti sì raggiungono il numero o la proporzione richiesta.' },
|
|
47
|
+
{ question: 'Perché schede bianche e nulle possono cambiare il risultato?', answer: 'Possono contare per la partecipazione ma essere escluse dai voti validi. Lo strumento rende separato ogni denominatore.' },
|
|
48
|
+
{ question: 'Un risultato positivo dimostra la validità legale?', answer: 'No. Verifica costituzione, legge, istruzioni ufficiali, definizioni delle schede e autorità di scrutinio.' },
|
|
49
|
+
], bibliography, howTo: [
|
|
50
|
+
{ name: 'Inserisci l elettorato', text: 'Indica gli elettori registrati o aventi diritto usati dalla regola.' },
|
|
51
|
+
{ name: 'Separa le schede', text: 'Aggiungi sì, no, bianche e nulle dallo stesso scrutinio.' },
|
|
52
|
+
{ name: 'Definisci la partecipazione', text: 'Scegli il conteggio e una soglia percentuale o assoluta.' },
|
|
53
|
+
{ name: 'Definisci l approvazione', text: 'Scegli il denominatore e il requisito per i voti sì.' },
|
|
54
|
+
{ name: 'Leggi i due controlli', text: 'Controlla numeratore, denominatore, tasso, soglia e avvisi.' },
|
|
55
|
+
], schemas: [softwareApplication, faqPage, howTo] as unknown as Record<string, unknown>[]
|
|
56
|
+
};
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
import type { FAQPage, HowTo, SoftwareApplication } from 'schema-dts';
|
|
2
|
+
import type { ToolLocaleContent } from '../../../types';
|
|
3
|
+
import { bibliography } from '../bibliography';
|
|
4
|
+
import type { ReferendumThresholdLocaleContent } from '../entry';
|
|
5
|
+
import type { ReferendumThresholdUI } from '../ui';
|
|
6
|
+
|
|
7
|
+
const ui: ReferendumThresholdUI = {
|
|
8
|
+
countsHeading: '申告された票数を入力', eligibleLabel: '有権者または登録有権者', eligibleHelp: '確認する規則が指定する有権者数を使います。', yesLabel: '賛成票', noLabel: '反対票', blankLabel: '白票', invalidLabel: '無効票', participationHeading: '参加定足数', participationHelp: '参加に含める票と到達すべき基準を選びます。', approvalHeading: '承認定足数', approvalHelp: '賛成票の分母を選びます。各規則は結果に表示されます。', thresholdModeLabel: '基準の種類', comparisonLabel: '比較', atLeastOption: '以上', moreThanOption: '超える', percentageOption: '割合', absoluteOption: '絶対数', thresholdValueLabel: '基準値', denominatorLabel: '使用する数', allBallotsOption: 'すべての投票用紙', validVotesOption: '有効票のみ', eligibleVotersOption: '有権者', presetsLabel: '承認プリセット', simpleMajorityPreset: '単純過半数', electorateMajorityPreset: '有権者の過半数', qualified55Preset: '55%の特別多数', qualified60Preset: '60%の特別多数', loadExample: '例を読み込む', shareAction: 'パーマリンクをコピー', shareSuccess: 'パーマリンクをコピーしました。票数と規則を含みます。', shareFailure: 'パーマリンクはアドレスバーに表示されています。', resultHeading: '申告された規則による判定', emptyResult: '票数と基準を入力すると、2つの定足数判定が表示されます。', passed: '両方の基準を満たしています', participationFailed: '参加定足数を満たしていません', approvalFailed: '承認定足数を満たしていません', bothFailed: 'どちらの基準も満たしていません', invalidResult: '申告された票数を確認してください', participationMetric: '参加判定', approvalMetric: '承認判定', observedLabel: '観測値', thresholdLabel: '必要値', decisionPathLabel: '判定の流れ', methodHeading: '適用した方法', methodText: '参加率は選択した票数を有権者数で割ります。承認率は賛成票を選択した分母で割ります。比較方法により、基準と同じ値を認めるか、基準を超える必要があるかが決まります。絶対数の基準は票数を直接比較します。', limitsHeading: 'このツールでできないこと', limitsText: '管轄機関の特定、開票結果の認証、期限の判断、法的助言は行いません。結果は入力した前提に依存します。', warningsHeading: '境界事例とデータの注意', warningsText: '白票と無効票を参加に含めるか、有権者数が最新か、承認が有効票、全投票用紙、有権者のどれを使うかを確認してください。', invalidInput: '0以上の整数を使ってください。有権者数は0より大きく、投票用紙数はそれを超えられません。', ballotsExceedEligible: '申告された投票用紙数が有権者数を超えています。', noValidVotes: '賛成票または反対票がないため、有効票の分母がありません。', noBallots: '投票用紙が申告されていません。', peopleSuffix: '人', yesShareLabel: '賛成票の割合', allBallotsLabel: 'すべての投票用紙', validVotesLabel: '有効票', eligibleVotersLabel: '有権者', whatNextLabel: '結果を使う前に', whatNextText: '適用される規則の正確な文言を写し、表示された設定と照合してください。',
|
|
9
|
+
};
|
|
10
|
+
|
|
11
|
+
const softwareApplication: SoftwareApplication = { '@type': 'SoftwareApplication', name: '国民投票基準計算機', applicationCategory: 'EducationalApplication', operatingSystem: 'Any', description: '分子と分母を表示して参加と承認の定足数を確認します。', url: 'https://gamebob.dev/ja/referendum-shikii-keisan', offers: { '@type': 'Offer', price: '0', priceCurrency: 'JPY' } };
|
|
12
|
+
const faqPage: FAQPage = { '@type': 'FAQPage', mainEntity: [
|
|
13
|
+
{ '@type': 'Question', name: 'この計算機は何を判定しますか?', acceptedAnswer: { '@type': 'Answer', text: '入力した参加基準と承認基準に票数を照らして判定します。どの法律が適用されるかは決めません。' } },
|
|
14
|
+
{ '@type': 'Question', name: '参加と承認の違いは何ですか?', acceptedAnswer: { '@type': 'Answer', text: '参加は十分な人数または票が基準に達したかを確認します。承認は賛成票が必要な数または割合に達したかを確認します。' } },
|
|
15
|
+
{ '@type': 'Question', name: '白票と無効票が結果を変えるのはなぜですか?', acceptedAnswer: { '@type': 'Answer', text: '参加には含めても、有効票から除外されることがあります。このツールは分母を別々に表示します。' } },
|
|
16
|
+
{ '@type': 'Question', name: '合格結果は法的有効性を証明しますか?', acceptedAnswer: { '@type': 'Answer', text: 'いいえ。憲法、法律、公的指針、投票用紙の定義、開票機関を確認してください。' } },
|
|
17
|
+
] };
|
|
18
|
+
const howTo: HowTo = { '@type': 'HowTo', name: '国民投票の基準を確認する方法', step: [
|
|
19
|
+
{ '@type': 'HowToStep', name: '有権者数を入力', text: '規則が使う登録有権者または投票権を持つ有権者を入力します。' },
|
|
20
|
+
{ '@type': 'HowToStep', name: '票を分けて入力', text: '同じ投票結果の賛成、反対、白票、無効票を加えます。' },
|
|
21
|
+
{ '@type': 'HowToStep', name: '参加を定義', text: '票の数え方と割合または絶対数の参加基準を選びます。' },
|
|
22
|
+
{ '@type': 'HowToStep', name: '承認を定義', text: '分母と必要な賛成票の条件を選びます。' },
|
|
23
|
+
{ '@type': 'HowToStep', name: '両方の判定を読む', text: '分子、分母、割合、基準、注意を確認します。' },
|
|
24
|
+
] };
|
|
25
|
+
|
|
26
|
+
export const content: ToolLocaleContent<ReferendumThresholdLocaleContent['ui']> = {
|
|
27
|
+
slug: 'referendum-threshold-calculator', title: '国民投票の基準計算機', description: '分子、分母、参加と承認の規則を明示して国民投票の定足数を確認します。', ui, seo: [
|
|
28
|
+
{ type: 'title', text: '分母を見ながら国民投票の規則を確認する', level: 2 },
|
|
29
|
+
{ type: 'paragraph', html: '国民投票の結果は明快に見えても、分母によって意味が変わります。この計算機は有権者数、票の種類、参加と承認の2つの定足数を同じ画面で確認できるようにします。' },
|
|
30
|
+
{ type: 'paragraph', html: '参加と承認は別々の判定です。白票と無効票は参加には数えられても、有効票には含まれない場合があります。このツールはその定義を自動で決めません。' },
|
|
31
|
+
{ type: 'title', text: '2つの定足数の仕組み', level: 2 },
|
|
32
|
+
{ type: 'paragraph', html: '参加率は選択した参加票を有権者数で割ります。承認率は賛成票を選択した分母で割ります。比較方法は同じ値を認めるか、基準を超えることを求めるかを示します。' },
|
|
33
|
+
{ type: 'table', headers: ['判定', '観測値', '確認する問い'], rows: [['参加', '選択した票 / 有権者', '十分な割合の有権者が参加しましたか?'], ['承認', '賛成 / 選択した分母', '賛成票は必要な基準に達しましたか?']] },
|
|
34
|
+
{ type: 'title', text: '定義を混ぜずに票数を準備する', level: 2 },
|
|
35
|
+
{ type: 'paragraph', html: '同じ投票と同じ有権者名簿の版から数値を使います。分母を選ぶ前に賛成、反対、白票、無効票を分けておくと、各数値の出所を確認できます。' },
|
|
36
|
+
{ type: 'list', items: ['規則が登録有権者と投票権者のどちらを指すか確認する。', '4種類の票を別々に記録する。', '票の合計が有権者数を超えないことを確認する。', '各割合の分母を書き留める。', '公的な規則の文言を結果と一緒に保存する。'] },
|
|
37
|
+
{ type: 'tip', title: '分母は規則の一部です', html: '有効票の50%と、すべての投票用紙または有権者の50%は同じ判定ではありません。白票と無効票によって結論が変わることがあります。' },
|
|
38
|
+
{ type: 'title', text: '合格と不合格の状態を読む', level: 2 },
|
|
39
|
+
{ type: 'paragraph', html: '結果は参加の不成立と承認の不成立を分けて示します。参加が成立して承認が成立しない場合は、賛成票と分母を確認します。逆の場合は参加条件が不足しています。' },
|
|
40
|
+
{ type: 'paragraph', html: '計算上の合格は法的判断ではありません。地域によって特別条件、地域別条件、白票と無効票の公的な扱いが異なる場合があります。' },
|
|
41
|
+
{ type: 'tip', title: '結果を確認票として使う', html: '結論を公表する前に、分子、分母、方式、比較方法を現行の公的規則と照合してください。定義が不明なら注意表示を残します。' },
|
|
42
|
+
{ type: 'title', text: '情報源と限界', level: 2 },
|
|
43
|
+
{ type: 'paragraph', html: 'International IDEA は参加と承認の規則を事前に明確にする重要性を説明しています。ヴェネツィア委員会は定足数の影響を検討しています。これらは方法の参考であり、全地域共通の基準ではありません。' },
|
|
44
|
+
], faq: [
|
|
45
|
+
{ question: 'この計算機は何を判定しますか?', answer: '入力した参加基準と承認基準に票数を照らして判定します。どの法律が適用されるかは決めません。' },
|
|
46
|
+
{ question: '参加と承認の違いは何ですか?', answer: '参加は十分な人数または票が基準に達したかを確認します。承認は賛成票が必要な数または割合に達したかを確認します。' },
|
|
47
|
+
{ question: '白票と無効票が結果を変えるのはなぜですか?', answer: '参加には含めても、有効票から除外されることがあります。このツールは分母を別々に表示します。' },
|
|
48
|
+
{ question: '合格結果は法的有効性を証明しますか?', answer: 'いいえ。憲法、法律、公的指針、投票用紙の定義、開票機関を確認してください。' },
|
|
49
|
+
], bibliography, howTo: [
|
|
50
|
+
{ name: '有権者数を入力', text: '規則が使う登録有権者または投票権を持つ有権者を入力します。' },
|
|
51
|
+
{ name: '票を分けて入力', text: '同じ投票結果の賛成、反対、白票、無効票を加えます。' },
|
|
52
|
+
{ name: '参加を定義', text: '票の数え方と割合または絶対数の参加基準を選びます。' },
|
|
53
|
+
{ name: '承認を定義', text: '分母と必要な賛成票の条件を選びます。' },
|
|
54
|
+
{ name: '両方の判定を読む', text: '分子、分母、割合、基準、注意を確認します。' },
|
|
55
|
+
], schemas: [softwareApplication, faqPage, howTo] as unknown as Record<string, unknown>[]
|
|
56
|
+
};
|