@jjlmoya/utils-civic 1.3.0 → 1.4.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package.json +1 -1
- package/src/category/index.ts +2 -1
- package/src/entries.ts +2 -0
- package/src/index.ts +1 -0
- package/src/tests/locale_completeness.test.ts +1 -1
- package/src/tests/tool_validation.test.ts +1 -1
- 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 +2 -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: 'Voer de bekendgemaakte aantallen in', eligibleLabel: 'Kiesgerechtigde of geregistreerde kiezers', eligibleHelp: 'Gebruik het kiespubliek dat de gecontroleerde regel noemt.', yesLabel: 'Ja stemmen', noLabel: 'Nee stemmen', blankLabel: 'Blanco stembiljetten', invalidLabel: 'Ongeldige stembiljetten', participationHeading: 'Participatiequorum', participationHelp: 'Kies wat als deelname telt en welke drempel moet worden gehaald.', approvalHeading: 'Goedkeuringsquorum', approvalHelp: 'Kies de noemer voor ja stemmen. Elke regel blijft zichtbaar in het resultaat.', thresholdModeLabel: 'Drempeltype', comparisonLabel: 'Vergelijking', atLeastOption: 'Minstens', moreThanOption: 'Meer dan', percentageOption: 'Percentage', absoluteOption: 'Absoluut aantal', thresholdValueLabel: 'Drempelwaarde', denominatorLabel: 'Gebruikte telling', allBallotsOption: 'Alle stembiljetten', validVotesOption: 'Alleen geldige stemmen', eligibleVotersOption: 'Kiesgerechtigde kiezers', presetsLabel: 'Goedkeuringsvoorinstellingen', simpleMajorityPreset: 'Eenvoudige meerderheid', electorateMajorityPreset: 'Meerderheid van kiezers', qualified55Preset: 'Gekwalificeerd 55%', qualified60Preset: 'Gekwalificeerd 60%', loadExample: 'Voorbeeld laden', shareAction: 'Permalink kopiëren', shareSuccess: 'Permalink gekopieerd. Het bevat aantallen en regels.', shareFailure: 'De permalink staat in de adresbalk en kan worden gekopieerd.', resultHeading: 'Beslissing volgens de opgegeven regel', emptyResult: 'Voer aantallen en drempels in om beide quorumtests te zien.', passed: 'Beide drempels worden gehaald', participationFailed: 'Participatiequorum wordt niet gehaald', approvalFailed: 'Goedkeuringsquorum wordt niet gehaald', bothFailed: 'Geen van beide drempels wordt gehaald', invalidResult: 'Controleer de opgegeven aantallen', participationMetric: 'Participatietest', approvalMetric: 'Goedkeuringstest', observedLabel: 'Waargenomen', thresholdLabel: 'Vereist', decisionPathLabel: 'Beslispad', methodHeading: 'Toegepaste methode', methodText: 'Participatie is de gekozen telling gedeeld door het aantal kiezers. Goedkeuring is ja gedeeld door de gekozen noemer. De vergelijking bepaalt of een exacte waarde volstaat of moet worden overschreden. Absolute drempels vergelijken aantallen rechtstreeks.', limitsHeading: 'Wat deze tool niet doet', limitsText: 'De tool bepaalt geen bevoegde instantie, certificeert geen telling, stelt geen termijnen vast en geeft geen juridisch advies. Het resultaat hangt af van de ingevoerde aannames.', warningsHeading: 'Randgevallen en gegevenswaarschuwingen', warningsText: 'Controleer of blanco en ongeldige biljetten meetellen voor participatie, of het kiespubliek actueel is en of goedkeuring geldige stemmen, alle biljetten of kiezers gebruikt.', invalidInput: 'Gebruik gehele, niet-negatieve aantallen. Het aantal kiezers moet groter zijn dan nul en het aantal biljetten mag dit niet overschrijden.', ballotsExceedEligible: 'De opgegeven stembiljetten zijn talrijker dan de kiezers.', noValidVotes: 'Er zijn geen ja- of nee-stemmen, dus de noemer van geldige stemmen ontbreekt.', noBallots: 'Er zijn geen stembiljetten opgegeven.', peopleSuffix: 'personen', yesShareLabel: 'Aandeel ja', allBallotsLabel: 'alle stembiljetten', validVotesLabel: 'geldige stemmen', eligibleVotersLabel: 'kiezers', whatNextLabel: 'Voordat je het resultaat gebruikt', whatNextText: 'Kopieer de exacte tekst van de toepasselijke regel en vergelijk die met de getoonde configuratie.',
|
|
9
|
+
};
|
|
10
|
+
|
|
11
|
+
const softwareApplication: SoftwareApplication = { '@type': 'SoftwareApplication', name: 'Referendumdrempel calculator', applicationCategory: 'EducationalApplication', operatingSystem: 'Any', description: 'Controleer participatie- en goedkeuringsquorums met zichtbare tellers en noemers.', url: 'https://gamebob.dev/nl/referendum-drempel-calculator', offers: { '@type': 'Offer', price: '0', priceCurrency: 'EUR' } };
|
|
12
|
+
const faqPage: FAQPage = { '@type': 'FAQPage', mainEntity: [
|
|
13
|
+
{ '@type': 'Question', name: 'Wat beslist deze calculator?', acceptedAnswer: { '@type': 'Answer', text: 'De calculator vergelijkt de opgegeven aantallen met de ingevoerde participatie- en goedkeuringsdrempels. Hij bepaalt niet welke rechtsregel geldt.' } },
|
|
14
|
+
{ '@type': 'Question', name: 'Wat is het verschil tussen participatie en goedkeuring?', acceptedAnswer: { '@type': 'Answer', text: 'Participatie vraagt of voldoende personen of biljetten de drempel bereiken. Goedkeuring vraagt of ja de vereiste hoeveelheid of verhouding bereikt.' } },
|
|
15
|
+
{ '@type': 'Question', name: 'Waarom kunnen blanco en ongeldige biljetten het resultaat veranderen?', acceptedAnswer: { '@type': 'Answer', text: 'Ze kunnen meetellen voor participatie maar buiten geldige stemmen vallen. De tool maakt elke noemer afzonderlijk zichtbaar.' } },
|
|
16
|
+
{ '@type': 'Question', name: 'Bewijst een positief resultaat juridische geldigheid?', acceptedAnswer: { '@type': 'Answer', text: 'Nee. Controleer grondwet, wet, officiële richtlijnen, definities van biljetten en de telautoriteit.' } },
|
|
17
|
+
] };
|
|
18
|
+
const howTo: HowTo = { '@type': 'HowTo', name: 'Referendumdrempels controleren', step: [
|
|
19
|
+
{ '@type': 'HowToStep', name: 'Voer het kiespubliek in', text: 'Vul de geregistreerde of kiesgerechtigde kiezers uit de regel in.' },
|
|
20
|
+
{ '@type': 'HowToStep', name: 'Scheid de biljetten', text: 'Voeg ja, nee, blanco en ongeldig uit dezelfde uitslag toe.' },
|
|
21
|
+
{ '@type': 'HowToStep', name: 'Definieer participatie', text: 'Kies de telling en een procentuele of absolute drempel.' },
|
|
22
|
+
{ '@type': 'HowToStep', name: 'Definieer goedkeuring', text: 'Kies de noemer en de vereiste voor ja stemmen.' },
|
|
23
|
+
{ '@type': 'HowToStep', name: 'Lees beide tests', text: 'Controleer teller, noemer, percentage, drempel en waarschuwingen.' },
|
|
24
|
+
] };
|
|
25
|
+
|
|
26
|
+
export const content: ToolLocaleContent<ReferendumThresholdLocaleContent['ui']> = {
|
|
27
|
+
slug: 'referendum-drempel-calculator', title: 'Referendumdrempel calculator', description: 'Controleer participatie- en goedkeuringsquorums met elke teller, noemer en regel duidelijk in beeld.', ui, seo: [
|
|
28
|
+
{ type: 'title', text: 'Controleer een referendumregel met zichtbare noemers', level: 2 },
|
|
29
|
+
{ type: 'paragraph', html: 'Een referendumuitslag lijkt soms vanzelfsprekend terwijl de noemer de uitkomst bepaalt. Deze calculator toont kiespubliek, biljetcategorieën en beide quorums in één controleerbare weergave.' },
|
|
30
|
+
{ type: 'paragraph', html: 'Participatie en goedkeuring zijn verschillende tests. Blanco en ongeldige biljetten kunnen participatie verhogen zonder geldige stemmen te worden. De tool kiest die definitie niet stilzwijgend.' },
|
|
31
|
+
{ type: 'title', text: 'Zo werken de twee quorumtests', level: 2 },
|
|
32
|
+
{ type: 'paragraph', html: 'Het participatiepercentage deelt de gekozen telling door de kiezers. Het goedkeuringspercentage deelt ja door de gekozen noemer. Je kunt gelijkheid toestaan of eisen dat de waarde de drempel overschrijdt.' },
|
|
33
|
+
{ type: 'table', headers: ['Test', 'Waargenomen waarde', 'Vraag'], rows: [['Participatie', 'Gekozen biljetten / kiezers', 'Nam een voldoende deel van het kiespubliek deel?'], ['Goedkeuring', 'Ja / gekozen noemer', 'Bereikt ja de vereiste drempel?']] },
|
|
34
|
+
{ type: 'title', text: 'Bereid aantallen voor zonder definities te mengen', level: 2 },
|
|
35
|
+
{ type: 'paragraph', html: 'Gebruik cijfers uit dezelfde stemming en dezelfde versie van het kiezersregister. Houd ja, nee, blanco en ongeldig gescheiden voordat je een noemer kiest. Zo blijft elke waarde terug te vinden.' },
|
|
36
|
+
{ type: 'list', items: ['Controleer of de regel geregistreerde of kiesgerechtigde kiezers noemt.', 'Registreer de vier biljetcategorieën afzonderlijk.', 'Controleer dat het aantal biljetten niet boven het kiespubliek uitkomt.', 'Noteer de noemer van elk percentage.', 'Bewaar de officiële formulering naast de uitkomst.'] },
|
|
37
|
+
{ type: 'tip', title: 'De noemer is onderdeel van de regel', html: '50% goedkeuring onder geldige stemmen is niet dezelfde test als 50% onder alle biljetten of kiezers. Blanco en ongeldige stemmen kunnen de beslissing verschuiven.' },
|
|
38
|
+
{ type: 'title', text: 'Interpreteer geslaagde en mislukte tests', level: 2 },
|
|
39
|
+
{ type: 'paragraph', html: 'De uitkomst onderscheidt participatiefalen van goedkeuringsfalen. Als participatie slaagt maar goedkeuring niet, kijk dan naar ja en de gekozen noemer. In het omgekeerde geval ontbreekt de participatievoorwaarde.' },
|
|
40
|
+
{ type: 'paragraph', html: 'Een positieve berekening is geen juridische conclusie. Een rechtsgebied kan bijzondere, territoriale of officiële regels voor blanco en ongeldige biljetten hebben. De tool beoordeelt alleen de ingevoerde configuratie.' },
|
|
41
|
+
{ type: 'tip', title: 'Gebruik de uitkomst als controleblad', html: 'Vergelijk voor publicatie elke teller, noemer, modus en vergelijking met de actuele regel. Laat bij twijfel de waarschuwing staan.' },
|
|
42
|
+
{ type: 'title', text: 'Bronnen en grenzen', level: 2 },
|
|
43
|
+
{ type: 'paragraph', html: 'International IDEA beschrijft waarom participatie- en goedkeuringsregels vooraf duidelijk moeten zijn. De Commissie van Venetië bespreekt de effecten van quorums. Deze bronnen geven geen universele drempel.' },
|
|
44
|
+
], faq: [
|
|
45
|
+
{ question: 'Wat beslist deze calculator?', answer: 'De calculator vergelijkt de opgegeven aantallen met de ingevoerde participatie- en goedkeuringsdrempels. Hij bepaalt niet welke rechtsregel geldt.' },
|
|
46
|
+
{ question: 'Wat is het verschil tussen participatie en goedkeuring?', answer: 'Participatie vraagt of voldoende personen of biljetten de drempel bereiken. Goedkeuring vraagt of ja de vereiste hoeveelheid of verhouding bereikt.' },
|
|
47
|
+
{ question: 'Waarom kunnen blanco en ongeldige biljetten het resultaat veranderen?', answer: 'Ze kunnen meetellen voor participatie maar buiten geldige stemmen vallen. De tool maakt elke noemer afzonderlijk zichtbaar.' },
|
|
48
|
+
{ question: 'Bewijst een positief resultaat juridische geldigheid?', answer: 'Nee. Controleer grondwet, wet, officiële richtlijnen, definities van biljetten en de telautoriteit.' },
|
|
49
|
+
], bibliography, howTo: [
|
|
50
|
+
{ name: 'Voer het kiespubliek in', text: 'Vul de geregistreerde of kiesgerechtigde kiezers uit de regel in.' },
|
|
51
|
+
{ name: 'Scheid de biljetten', text: 'Voeg ja, nee, blanco en ongeldig uit dezelfde uitslag toe.' },
|
|
52
|
+
{ name: 'Definieer participatie', text: 'Kies de telling en een procentuele of absolute drempel.' },
|
|
53
|
+
{ name: 'Definieer goedkeuring', text: 'Kies de noemer en de vereiste voor ja stemmen.' },
|
|
54
|
+
{ name: 'Lees beide tests', text: 'Controleer teller, noemer, percentage, drempel en waarschuwingen.' },
|
|
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: 'Wpisz zadeklarowane wyniki', eligibleLabel: 'Wyborcy uprawnieni lub zarejestrowani', eligibleHelp: 'Użyj elektoratu wskazanego w sprawdzanej regule.', yesLabel: 'Głosy za', noLabel: 'Głosy przeciw', blankLabel: 'Głosy nieważne puste', invalidLabel: 'Głosy nieważne', participationHeading: 'Kworum uczestnictwa', participationHelp: 'Wybierz, co liczy się jako uczestnictwo i jaki próg musi zostać osiągnięty.', approvalHeading: 'Kworum poparcia', approvalHelp: 'Wybierz mianownik dla głosów za. Każda reguła pozostaje widoczna w wyniku.', thresholdModeLabel: 'Typ progu', comparisonLabel: 'Porównanie', atLeastOption: 'Co najmniej', moreThanOption: 'Więcej niż', percentageOption: 'Procent', absoluteOption: 'Liczba bezwzględna', thresholdValueLabel: 'Wartość progu', denominatorLabel: 'Użyty licznik', allBallotsOption: 'Wszystkie karty', validVotesOption: 'Tylko ważne głosy', eligibleVotersOption: 'Wyborcy uprawnieni', presetsLabel: 'Gotowe progi poparcia', simpleMajorityPreset: 'Zwykła większość', electorateMajorityPreset: 'Większość elektoratu', qualified55Preset: 'Kwalifikowane 55%', qualified60Preset: 'Kwalifikowane 60%', loadExample: 'Wczytaj przykład', shareAction: 'Kopiuj permalink', shareSuccess: 'Permalink skopiowany. Zawiera wyniki i obie reguły.', shareFailure: 'Permalink jest w pasku adresu i można go skopiować.', resultHeading: 'Decyzja według zadeklarowanej reguły', emptyResult: 'Wpisz wyniki i progi, aby zobaczyć oba testy kworum.', passed: 'Oba progi są spełnione', participationFailed: 'Kworum uczestnictwa nie jest spełnione', approvalFailed: 'Kworum poparcia nie jest spełnione', bothFailed: 'Żaden próg nie jest spełniony', invalidResult: 'Sprawdź zadeklarowane wyniki', participationMetric: 'Test uczestnictwa', approvalMetric: 'Test poparcia', observedLabel: 'Zaobserwowano', thresholdLabel: 'Wymagane', decisionPathLabel: 'Ścieżka decyzji', methodHeading: 'Zastosowana metoda', methodText: 'Uczestnictwo to wybrany licznik podzielony przez liczbę wyborców. Poparcie to głosy za podzielone przez wybrany mianownik. Porównanie wskazuje, czy wystarczy dokładna wartość, czy trzeba ją przekroczyć. Progi bezwzględne porównują liczby bezpośrednio.', limitsHeading: 'Czego to narzędzie nie robi', limitsText: 'Nie wskazuje właściwego organu, nie zatwierdza liczenia, nie ustala terminów i nie udziela porady prawnej. Wynik zależy od przyjętych założeń.', warningsHeading: 'Przypadki graniczne i ostrzeżenia', warningsText: 'Sprawdź, czy puste i nieważne karty liczą się do uczestnictwa, czy elektorat jest aktualny oraz czy poparcie używa ważnych głosów, wszystkich kart czy wyborców.', invalidInput: 'Użyj całkowitych, nieujemnych liczb. Liczba wyborców musi być większa od zera, a kart nie może być więcej.', ballotsExceedEligible: 'Zadeklarowanych kart jest więcej niż wyborców.', noValidVotes: 'Brak głosów za i przeciw, więc nie ma mianownika ważnych głosów.', noBallots: 'Nie zadeklarowano żadnych kart.', peopleSuffix: 'osób', yesShareLabel: 'Udział głosów za', allBallotsLabel: 'wszystkie karty', validVotesLabel: 'ważne głosy', eligibleVotersLabel: 'wyborcy', whatNextLabel: 'Przed użyciem wyniku', whatNextText: 'Skopiuj dokładne brzmienie obowiązującej reguły i porównaj je z pokazaną konfiguracją.',
|
|
9
|
+
};
|
|
10
|
+
|
|
11
|
+
const softwareApplication: SoftwareApplication = { '@type': 'SoftwareApplication', name: 'Kalkulator progów referendum', applicationCategory: 'EducationalApplication', operatingSystem: 'Any', description: 'Sprawdza kwora uczestnictwa i poparcia, pokazując liczniki oraz mianowniki.', url: 'https://gamebob.dev/pl/kalkulator-progow-referendum', offers: { '@type': 'Offer', price: '0', priceCurrency: 'PLN' } };
|
|
12
|
+
const faqPage: FAQPage = { '@type': 'FAQPage', mainEntity: [
|
|
13
|
+
{ '@type': 'Question', name: 'Co rozstrzyga ten kalkulator?', acceptedAnswer: { '@type': 'Answer', text: 'Porównuje wyniki z wpisanymi progami uczestnictwa i poparcia. Nie rozstrzyga, która norma prawna obowiązuje.' } },
|
|
14
|
+
{ '@type': 'Question', name: 'Czym różni się uczestnictwo od poparcia?', acceptedAnswer: { '@type': 'Answer', text: 'Uczestnictwo sprawdza, czy wystarczająca liczba osób lub kart została uwzględniona. Poparcie sprawdza, czy głosy za osiągają wymaganą liczbę lub udział.' } },
|
|
15
|
+
{ '@type': 'Question', name: 'Dlaczego puste i nieważne karty mogą zmienić wynik?', acceptedAnswer: { '@type': 'Answer', text: 'Mogą liczyć się do uczestnictwa, ale nie wejść do ważnych głosów. Narzędzie pokazuje te mianowniki osobno.' } },
|
|
16
|
+
{ '@type': 'Question', name: 'Czy pozytywny wynik dowodzi ważności prawnej?', acceptedAnswer: { '@type': 'Answer', text: 'Nie. Sprawdź konstytucję, ustawę, oficjalne wytyczne, definicje kart i organ liczący.' } },
|
|
17
|
+
] };
|
|
18
|
+
const howTo: HowTo = { '@type': 'HowTo', name: 'Sprawdzić progi referendum', step: [
|
|
19
|
+
{ '@type': 'HowToStep', name: 'Wpisz elektorat', text: 'Podaj zarejestrowanych lub uprawnionych wyborców użytych w regule.' },
|
|
20
|
+
{ '@type': 'HowToStep', name: 'Rozdziel karty', text: 'Dodaj głosy za, przeciw, puste i nieważne z tego samego głosowania.' },
|
|
21
|
+
{ '@type': 'HowToStep', name: 'Ustal uczestnictwo', text: 'Wybierz licznik oraz próg procentowy albo bezwzględny.' },
|
|
22
|
+
{ '@type': 'HowToStep', name: 'Ustal poparcie', text: 'Wybierz mianownik i wymagany warunek dla głosów za.' },
|
|
23
|
+
{ '@type': 'HowToStep', name: 'Odczytaj testy', text: 'Sprawdź licznik, mianownik, wskaźnik, próg i ostrzeżenia.' },
|
|
24
|
+
] };
|
|
25
|
+
|
|
26
|
+
export const content: ToolLocaleContent<ReferendumThresholdLocaleContent['ui']> = {
|
|
27
|
+
slug: 'kalkulator-progow-referendum', title: 'Kalkulator progów referendum', description: 'Sprawdź kwora uczestnictwa i poparcia, widząc każdy licznik, mianownik oraz zadeklarowaną regułę.', ui, seo: [
|
|
28
|
+
{ type: 'title', text: 'Sprawdź regułę referendum z widocznymi mianownikami', level: 2 },
|
|
29
|
+
{ type: 'paragraph', html: 'Wynik referendum może wyglądać jasno, choć mianownik zmienia jego znaczenie. Ten kalkulator pokazuje elektorat, kategorie kart i oba kwora w jednym przejrzystym zestawieniu.' },
|
|
30
|
+
{ type: 'paragraph', html: 'Uczestnictwo i poparcie to osobne testy. Puste i nieważne karty mogą zwiększać uczestnictwo, nie należąc do ważnych głosów. Narzędzie nie wybiera tej definicji za użytkownika.' },
|
|
31
|
+
{ type: 'title', text: 'Jak działają oba kwora', level: 2 },
|
|
32
|
+
{ type: 'paragraph', html: 'Wskaźnik uczestnictwa dzieli wybraną liczbę kart przez liczbę wyborców. Wskaźnik poparcia dzieli głosy za przez wybrany mianownik. Porównanie może dopuścić równość albo wymagać przekroczenia progu.' },
|
|
33
|
+
{ type: 'table', headers: ['Test', 'Wartość obserwowana', 'Pytanie'], rows: [['Uczestnictwo', 'Wybrane karty / wyborcy', 'Czy uczestniczyła wystarczająca część elektoratu?'], ['Poparcie', 'Za / wybrany mianownik', 'Czy głosy za osiągają wymagany próg?']] },
|
|
34
|
+
{ type: 'title', text: 'Przygotuj wyniki bez mieszania definicji', level: 2 },
|
|
35
|
+
{ type: 'paragraph', html: 'Korzystaj z danych z tego samego głosowania i tej samej wersji spisu wyborców. Zapisz osobno głosy za, przeciw, puste i nieważne przed wybraniem mianownika, aby każdą wartość można było sprawdzić.' },
|
|
36
|
+
{ type: 'list', items: ['Ustal, czy reguła mówi o wyborcach zarejestrowanych czy uprawnionych.', 'Zapisz osobno wszystkie cztery kategorie kart.', 'Sprawdź, czy suma kart nie przekracza elektoratu.', 'Zanotuj mianownik każdej wartości procentowej.', 'Zachowaj oficjalne brzmienie reguły przy wyniku.'] },
|
|
37
|
+
{ type: 'tip', title: 'Mianownik jest częścią reguły', html: '50% poparcia wśród ważnych głosów to inny test niż 50% wśród wszystkich kart lub całego elektoratu. Puste i nieważne karty mogą zmienić decyzję.' },
|
|
38
|
+
{ type: 'title', text: 'Odczytaj stany spełnienia i porażki', level: 2 },
|
|
39
|
+
{ type: 'paragraph', html: 'Wynik rozróżnia porażkę uczestnictwa od porażki poparcia. Jeśli uczestnictwo przechodzi, a poparcie nie, sprawdź głosy za i ich mianownik. W odwrotnej sytuacji brakuje warunku uczestnictwa.' },
|
|
40
|
+
{ type: 'paragraph', html: 'Pozytywny wynik obliczenia nie jest wnioskiem prawnym. Państwo może przewidywać warunki szczególne, terytorialne albo własne zasady traktowania pustych i nieważnych kart. Kalkulator ocenia tylko wpisaną konfigurację.' },
|
|
41
|
+
{ type: 'tip', title: 'Traktuj wynik jak arkusz kontroli', html: 'Przed przekazaniem wniosku porównaj każdy licznik, mianownik, tryb i operator z aktualną regułą. Jeśli definicja jest niepewna, zostaw ostrzeżenie widoczne.' },
|
|
42
|
+
{ type: 'title', text: 'Źródła i ograniczenia', level: 2 },
|
|
43
|
+
{ type: 'paragraph', html: 'International IDEA wyjaśnia, dlaczego reguły uczestnictwa i poparcia powinny być jasne. Komisja Wenecka analizuje skutki kworów. Źródła porządkują metodę, ale nie ustanawiają uniwersalnego progu.' },
|
|
44
|
+
], faq: [
|
|
45
|
+
{ question: 'Co rozstrzyga ten kalkulator?', answer: 'Porównuje wyniki z wpisanymi progami uczestnictwa i poparcia. Nie rozstrzyga, która norma prawna obowiązuje.' },
|
|
46
|
+
{ question: 'Czym różni się uczestnictwo od poparcia?', answer: 'Uczestnictwo sprawdza, czy wystarczająca liczba osób lub kart została uwzględniona. Poparcie sprawdza, czy głosy za osiągają wymaganą liczbę lub udział.' },
|
|
47
|
+
{ question: 'Dlaczego puste i nieważne karty mogą zmienić wynik?', answer: 'Mogą liczyć się do uczestnictwa, ale nie wejść do ważnych głosów. Narzędzie pokazuje te mianowniki osobno.' },
|
|
48
|
+
{ question: 'Czy pozytywny wynik dowodzi ważności prawnej?', answer: 'Nie. Sprawdź konstytucję, ustawę, oficjalne wytyczne, definicje kart i organ liczący.' },
|
|
49
|
+
], bibliography, howTo: [
|
|
50
|
+
{ name: 'Wpisz elektorat', text: 'Podaj zarejestrowanych lub uprawnionych wyborców użytych w regule.' },
|
|
51
|
+
{ name: 'Rozdziel karty', text: 'Dodaj głosy za, przeciw, puste i nieważne z tego samego głosowania.' },
|
|
52
|
+
{ name: 'Ustal uczestnictwo', text: 'Wybierz licznik oraz próg procentowy albo bezwzględny.' },
|
|
53
|
+
{ name: 'Ustal poparcie', text: 'Wybierz mianownik i wymagany warunek dla głosów za.' },
|
|
54
|
+
{ name: 'Odczytaj testy', text: 'Sprawdź licznik, mianownik, wskaźnik, próg i ostrzeżenia.' },
|
|
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: 'Introduza as contagens declaradas', eligibleLabel: 'Eleitores inscritos ou com direito de voto', eligibleHelp: 'Use o eleitorado indicado pela regra que pretende verificar.', yesLabel: 'Votos sim', noLabel: 'Votos não', blankLabel: 'Votos em branco', invalidLabel: 'Votos nulos', participationHeading: 'Quórum de participação', participationHelp: 'Escolha o que conta como participação e o limiar que deve alcançar.', approvalHeading: 'Quórum de aprovação', approvalHelp: 'Escolha o denominador dos votos sim. Cada regra permanece visível no resultado.', thresholdModeLabel: 'Tipo de limiar', comparisonLabel: 'Comparação', atLeastOption: 'Pelo menos', moreThanOption: 'Mais de', percentageOption: 'Percentagem', absoluteOption: 'Número absoluto', thresholdValueLabel: 'Valor do limiar', denominatorLabel: 'Contagem usada', allBallotsOption: 'Todos os boletins', validVotesOption: 'Apenas votos válidos', eligibleVotersOption: 'Eleitores inscritos', presetsLabel: 'Predefinições de aprovação', simpleMajorityPreset: 'Maioria simples', electorateMajorityPreset: 'Maioria do eleitorado', qualified55Preset: 'Qualificada de 55%', qualified60Preset: 'Qualificada de 60%', loadExample: 'Carregar exemplo', shareAction: 'Copiar permalink', shareSuccess: 'Permalink copiado. Inclui contagens e regras.', shareFailure: 'O permalink está na barra de endereço para ser copiado.', resultHeading: 'Decisão segundo a regra declarada', emptyResult: 'Introduza contagens e limiares para ver os dois testes.', passed: 'Os dois limiares são cumpridos', participationFailed: 'O quórum de participação não é cumprido', approvalFailed: 'O quórum de aprovação não é cumprido', bothFailed: 'Nenhum dos limiares é cumprido', invalidResult: 'Verifique as contagens declaradas', participationMetric: 'Teste de participação', approvalMetric: 'Teste de aprovação', observedLabel: 'Observado', thresholdLabel: 'Exigido', decisionPathLabel: 'Percurso da decisão', methodHeading: 'Método aplicado', methodText: 'A participação é a contagem escolhida dividida pelos eleitores. A aprovação é o número de sim dividido pelo denominador escolhido. A comparação indica se um valor exato basta ou se precisa de ser ultrapassado. Os limiares absolutos comparam contagens diretamente.', limitsHeading: 'O que esta ferramenta não faz', limitsText: 'Não identifica a autoridade competente, não certifica a contagem, não define prazos e não presta aconselhamento jurídico. O resultado depende das hipóteses introduzidas.', warningsHeading: 'Casos-limite e avisos de dados', warningsText: 'Verifique se votos em branco e nulos contam para a participação, se o eleitorado está atualizado e se a aprovação usa votos válidos, todos os boletins ou eleitores.', invalidInput: 'Use números inteiros não negativos. Os eleitores devem ser superiores a zero e os boletins não podem ultrapassá-los.', ballotsExceedEligible: 'Os boletins declarados ultrapassam o eleitorado.', noValidVotes: 'Não existem votos sim ou não, por isso falta o denominador de votos válidos.', noBallots: 'Não foram declarados boletins.', peopleSuffix: 'pessoas', yesShareLabel: 'Parte de sim', allBallotsLabel: 'todos os boletins', validVotesLabel: 'votos válidos', eligibleVotersLabel: 'eleitores', whatNextLabel: 'Antes de usar o resultado', whatNextText: 'Copie o texto exato da regra aplicável e compare-o com a configuração apresentada.',
|
|
9
|
+
};
|
|
10
|
+
|
|
11
|
+
const softwareApplication: SoftwareApplication = { '@type': 'SoftwareApplication', name: 'Calculadora de limiares de referendo', applicationCategory: 'EducationalApplication', operatingSystem: 'Any', description: 'Verifica quóruns de participação e aprovação com numeradores e denominadores visíveis.', url: 'https://gamebob.dev/pt/calculadora-limiares-referendo', offers: { '@type': 'Offer', price: '0', priceCurrency: 'EUR' } };
|
|
12
|
+
const faqPage: FAQPage = { '@type': 'FAQPage', mainEntity: [
|
|
13
|
+
{ '@type': 'Question', name: 'O que decide esta calculadora?', acceptedAnswer: { '@type': 'Answer', text: 'Compara as contagens com os limiares de participação e aprovação que introduz. Não decide qual é a norma jurídica aplicável.' } },
|
|
14
|
+
{ '@type': 'Question', name: 'Qual é a diferença entre participação e aprovação?', acceptedAnswer: { '@type': 'Answer', text: 'A participação verifica se chegaram pessoas ou boletins suficientes ao limiar. A aprovação verifica se os votos sim atingem o número ou a proporção exigida.' } },
|
|
15
|
+
{ '@type': 'Question', name: 'Por que motivo votos brancos e nulos podem alterar o resultado?', acceptedAnswer: { '@type': 'Answer', text: 'Podem contar para a participação e ficar fora dos votos válidos. A ferramenta deixa cada denominador explícito.' } },
|
|
16
|
+
{ '@type': 'Question', name: 'Um resultado positivo prova a validade legal?', acceptedAnswer: { '@type': 'Answer', text: 'Não. Consulte a Constituição, a lei, as instruções oficiais, as definições dos boletins e a autoridade de contagem.' } },
|
|
17
|
+
] };
|
|
18
|
+
const howTo: HowTo = { '@type': 'HowTo', name: 'Verificar limiares de um referendo', step: [
|
|
19
|
+
{ '@type': 'HowToStep', name: 'Introduzir o eleitorado', text: 'Indique os eleitores inscritos ou com direito de voto usados pela regra.' },
|
|
20
|
+
{ '@type': 'HowToStep', name: 'Separar os boletins', text: 'Adicione sim, não, brancos e nulos do mesmo referendo.' },
|
|
21
|
+
{ '@type': 'HowToStep', name: 'Definir a participação', text: 'Escolha a contagem e um limiar percentual ou absoluto.' },
|
|
22
|
+
{ '@type': 'HowToStep', name: 'Definir a aprovação', text: 'Escolha o denominador e o requisito dos votos sim.' },
|
|
23
|
+
{ '@type': 'HowToStep', name: 'Ler os dois testes', text: 'Reveja numerador, denominador, taxa, limiar e avisos.' },
|
|
24
|
+
] };
|
|
25
|
+
|
|
26
|
+
export const content: ToolLocaleContent<ReferendumThresholdLocaleContent['ui']> = {
|
|
27
|
+
slug: 'calculadora-limiares-referendo', title: 'Calculadora de limiares de referendo', description: 'Verifique quóruns de participação e aprovação com cada numerador, denominador e regra claramente identificados.', ui, seo: [
|
|
28
|
+
{ type: 'title', text: 'Verifique uma regra de referendo com denominadores visíveis', level: 2 },
|
|
29
|
+
{ type: 'paragraph', html: 'Um resultado de referendo pode parecer direto, embora o denominador mude a sua leitura. Esta calculadora mostra o eleitorado, as quatro categorias de boletins e os dois quóruns numa única análise.' },
|
|
30
|
+
{ type: 'paragraph', html: 'Participação e aprovação são testes separados. Boletins brancos e nulos podem contar para a participação sem fazer parte dos votos válidos. A ferramenta não esconde nem presume essa escolha.' },
|
|
31
|
+
{ type: 'title', text: 'Como funcionam os dois quóruns', level: 2 },
|
|
32
|
+
{ type: 'paragraph', html: 'A taxa de participação divide a contagem escolhida pelos eleitores. A taxa de aprovação divide os votos sim pelo denominador selecionado. O comparador aceita igualdade ou exige que o valor seja ultrapassado.' },
|
|
33
|
+
{ type: 'table', headers: ['Teste', 'Valor observado', 'Pergunta'], rows: [['Participação', 'Boletins escolhidos / eleitores', 'Participou uma parte suficiente do eleitorado?'], ['Aprovação', 'Sim / denominador escolhido', 'Os votos sim atingem o limiar exigido?']] },
|
|
34
|
+
{ type: 'title', text: 'Prepare as contagens sem misturar definições', level: 2 },
|
|
35
|
+
{ type: 'paragraph', html: 'Use números do mesmo escrutínio e da mesma versão do recenseamento. Mantenha sim, não, branco e nulo separados antes de escolher o denominador, para que cada valor possa ser conferido.' },
|
|
36
|
+
{ type: 'list', items: ['Confirme se a regra menciona eleitores inscritos ou com direito de voto.', 'Registe separadamente as quatro categorias de boletins.', 'Confirme que o total de boletins não ultrapassa o eleitorado.', 'Anote o denominador de cada percentagem.', 'Guarde o texto oficial junto do resultado calculado.'] },
|
|
37
|
+
{ type: 'tip', title: 'O denominador faz parte da regra', html: '50% de aprovação entre votos válidos não é o mesmo que 50% entre todos os boletins ou entre o eleitorado. Brancos e nulos podem alterar a decisão.' },
|
|
38
|
+
{ type: 'title', text: 'Interprete os estados de aprovação e falha', level: 2 },
|
|
39
|
+
{ type: 'paragraph', html: 'A saída distingue falha de participação e falha de aprovação. Se a participação passa mas a aprovação falha, reveja os votos sim e o seu denominador. Se acontece o contrário, falta a condição de participação.' },
|
|
40
|
+
{ type: 'paragraph', html: 'Um resultado favorável não é uma conclusão jurídica. A jurisdição pode acrescentar regras especiais, condições territoriais ou tratamento oficial de votos brancos e nulos. O cálculo avalia apenas a configuração introduzida.' },
|
|
41
|
+
{ type: 'tip', title: 'Use a saída como folha de conferência', html: 'Antes de publicar uma conclusão, compare cada numerador, denominador, modo e comparador com a regra em vigor. Se uma definição for incerta, mantenha o aviso visível.' },
|
|
42
|
+
{ type: 'title', text: 'Fontes e limites', level: 2 },
|
|
43
|
+
{ type: 'paragraph', html: 'A International IDEA explica por que regras de participação e aprovação devem ser claras. A Comissão de Veneza analisa os efeitos dos quóruns. As fontes ajudam a estruturar a conferência, mas não dão um limiar universal.' },
|
|
44
|
+
], faq: [
|
|
45
|
+
{ question: 'O que decide esta calculadora?', answer: 'Compara as contagens com os limiares de participação e aprovação que introduz. Não decide qual é a norma jurídica aplicável.' },
|
|
46
|
+
{ question: 'Qual é a diferença entre participação e aprovação?', answer: 'A participação verifica se chegaram pessoas ou boletins suficientes ao limiar. A aprovação verifica se os votos sim atingem o número ou a proporção exigida.' },
|
|
47
|
+
{ question: 'Por que motivo votos brancos e nulos podem alterar o resultado?', answer: 'Podem contar para a participação e ficar fora dos votos válidos. A ferramenta deixa cada denominador explícito.' },
|
|
48
|
+
{ question: 'Um resultado positivo prova a validade legal?', answer: 'Não. Consulte a Constituição, a lei, as instruções oficiais, as definições dos boletins e a autoridade de contagem.' },
|
|
49
|
+
], bibliography, howTo: [
|
|
50
|
+
{ name: 'Introduzir o eleitorado', text: 'Indique os eleitores inscritos ou com direito de voto usados pela regra.' },
|
|
51
|
+
{ name: 'Separar os boletins', text: 'Adicione sim, não, brancos e nulos do mesmo referendo.' },
|
|
52
|
+
{ name: 'Definir a participação', text: 'Escolha a contagem e um limiar percentual ou absoluto.' },
|
|
53
|
+
{ name: 'Definir a aprovação', text: 'Escolha o denominador e o requisito dos votos sim.' },
|
|
54
|
+
{ name: 'Ler os dois testes', text: 'Reveja numerador, denominador, taxa, limiar e 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: 'Введите объявленные результаты', 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: 'Введите числа и пороги, чтобы увидеть обе проверки кворума.', passed: 'Оба порога достигнуты', participationFailed: 'Кворум участия не достигнут', approvalFailed: 'Кворум одобрения не достигнут', bothFailed: 'Ни один порог не достигнут', invalidResult: 'Проверьте объявленные результаты', participationMetric: 'Проверка участия', approvalMetric: 'Проверка одобрения', observedLabel: 'Наблюдаемое', thresholdLabel: 'Требуется', decisionPathLabel: 'Ход решения', methodHeading: 'Применённый метод', methodText: 'Участие равно выбранному числу бюллетеней, делённому на число избирателей. Одобрение равно голосам за, делённым на выбранный знаменатель. Сравнение определяет, достаточно ли точного значения или его нужно превысить. Абсолютные пороги сравнивают числа напрямую.', limitsHeading: 'Чего этот инструмент не делает', limitsText: 'Он не определяет компетентный орган, не удостоверяет подсчёт, не устанавливает сроки и не даёт юридических советов. Результат зависит от введённых предположений.', warningsHeading: 'Пограничные случаи и предупреждения о данных', warningsText: 'Проверьте, учитываются ли пустые и недействительные бюллетени в участии, актуален ли электорат и использует ли одобрение действительные голоса, все бюллетени или избирателей.', invalidInput: 'Используйте целые неотрицательные числа. Число избирателей должно быть больше нуля, а бюллетеней не может быть больше.', 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/ru/kalkulyator-porogov-referenduma', offers: { '@type': 'Offer', price: '0', priceCurrency: 'RUB' } };
|
|
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: 'kalkulyator-porogov-referenduma', title: 'Калькулятор порогов референдума', description: 'Проверяйте кворумы участия и одобрения, видя каждый числитель, знаменатель и объявленное правило.', ui, seo: [
|
|
28
|
+
{ type: 'title', text: 'Проверьте правило референдума с видимыми знаменателями', level: 2 },
|
|
29
|
+
{ type: 'paragraph', html: 'Результат референдума может выглядеть очевидным, хотя знаменатель меняет его смысл. Калькулятор показывает электорат, категории бюллетеней и оба кворума в одной проверке.' },
|
|
30
|
+
{ type: 'paragraph', html: 'Участие и одобрение являются разными тестами. Пустые и недействительные бюллетени могут увеличить участие, не становясь действительными голосами. Инструмент не делает такой выбор молча.' },
|
|
31
|
+
{ type: 'title', text: 'Как работают два кворума', 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: ['Уточните, говорит ли правило о зарегистрированных избирателях или о праве голоса.', 'Запишите четыре категории бюллетеней отдельно.', 'Проверьте, что число бюллетеней не превышает электорат.', 'Отметьте знаменатель каждого процента.', 'Сохраните официальный текст рядом с результатом.'] },
|
|
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
|
+
};
|
|
@@ -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: 'Ange de redovisade röstsiffrorna', eligibleLabel: 'Röstberättigade eller registrerade väljare', eligibleHelp: 'Använd det väljarunderlag som den granskade regeln anger.', yesLabel: 'Ja röster', noLabel: 'Nej röster', blankLabel: 'Blanka valsedlar', invalidLabel: 'Ogiltiga valsedlar', participationHeading: 'Deltagandekvorum', participationHelp: 'Välj vad som räknas som deltagande och vilken tröskel som måste nås.', approvalHeading: 'Godkännandekvorum', approvalHelp: 'Välj nämnare för ja röster. Varje regel visas i resultatet.', thresholdModeLabel: 'Tröskeltyp', comparisonLabel: 'Jämförelse', atLeastOption: 'Minst', moreThanOption: 'Mer än', percentageOption: 'Procent', absoluteOption: 'Absolut antal', thresholdValueLabel: 'Tröskelvärde', denominatorLabel: 'Använd räkning', allBallotsOption: 'Alla valsedlar', validVotesOption: 'Endast giltiga röster', eligibleVotersOption: 'Röstberättigade väljare', presetsLabel: 'Förval för godkännande', simpleMajorityPreset: 'Enkel majoritet', electorateMajorityPreset: 'Majoritet av väljarna', qualified55Preset: 'Kvalificerad 55 procent', qualified60Preset: 'Kvalificerad 60 procent', loadExample: 'Ladda exempel', shareAction: 'Kopiera permalänk', shareSuccess: 'Permalänk kopierad. Den innehåller siffror och regler.', shareFailure: 'Permalänken finns i adressfältet och kan kopieras.', resultHeading: 'Beslut enligt den angivna regeln', emptyResult: 'Ange röstsiffror och trösklar för att se de två kvorumtesterna.', passed: 'Båda trösklarna klaras', participationFailed: 'Deltagandekvorum klaras inte', approvalFailed: 'Godkännandekvorum klaras inte', bothFailed: 'Ingen av trösklarna klaras', invalidResult: 'Kontrollera de angivna siffrorna', participationMetric: 'Deltagandetest', approvalMetric: 'Godkännandetest', observedLabel: 'Observerat', thresholdLabel: 'Krävs', decisionPathLabel: 'Beslutsväg', methodHeading: 'Använd metod', methodText: 'Deltagande är den valda räkningen delad med antalet väljare. Godkännande är ja delat med den valda nämnaren. Jämförelsen avgör om ett exakt värde räcker eller måste överskridas. Absoluta trösklar jämför antal direkt.', limitsHeading: 'Det här gör verktyget inte', limitsText: 'Det fastställer inte behörig myndighet, godkänner ingen räkning, bestämmer inga tidsfrister och ger ingen juridisk rådgivning. Resultatet beror på dina antaganden.', warningsHeading: 'Gränsfall och dataanmärkningar', warningsText: 'Kontrollera om blanka och ogiltiga valsedlar räknas som deltagande, om väljarunderlaget är aktuellt och om godkännande använder giltiga röster, alla valsedlar eller väljare.', invalidInput: 'Använd heltal som inte är negativa. Antalet väljare måste vara större än noll och valsedlarna får inte överstiga det.', ballotsExceedEligible: 'De angivna valsedlarna överstiger antalet väljare.', noValidVotes: 'Det finns inga ja- eller nejröster, så nämnaren för giltiga röster saknas.', noBallots: 'Inga valsedlar har angetts.', peopleSuffix: 'personer', yesShareLabel: 'Andel ja', allBallotsLabel: 'alla valsedlar', validVotesLabel: 'giltiga röster', eligibleVotersLabel: 'väljare', whatNextLabel: 'Innan resultatet används', whatNextText: 'Kopiera den exakta lydelsen i den gällande regeln och jämför med konfigurationen som visas.',
|
|
9
|
+
};
|
|
10
|
+
|
|
11
|
+
const softwareApplication: SoftwareApplication = { '@type': 'SoftwareApplication', name: 'Kalkylator för folkomröstningströskel', applicationCategory: 'EducationalApplication', operatingSystem: 'Any', description: 'Kontrollerar deltagande- och godkännandekvorum med synliga täljare och nämnare.', url: 'https://gamebob.dev/sv/kalkylator-referendumstroeskel', offers: { '@type': 'Offer', price: '0', priceCurrency: 'SEK' } };
|
|
12
|
+
const faqPage: FAQPage = { '@type': 'FAQPage', mainEntity: [
|
|
13
|
+
{ '@type': 'Question', name: 'Vad avgör den här kalkylatorn?', acceptedAnswer: { '@type': 'Answer', text: 'Den jämför röstsiffrorna med de deltagande och godkännande trösklar du anger. Den avgör inte vilken juridisk regel som gäller.' } },
|
|
14
|
+
{ '@type': 'Question', name: 'Vad är skillnaden mellan deltagande och godkännande?', acceptedAnswer: { '@type': 'Answer', text: 'Deltagande frågar om tillräckligt många personer eller valsedlar nådde tröskeln. Godkännande frågar om ja nådde den krävda andelen eller mängden.' } },
|
|
15
|
+
{ '@type': 'Question', name: 'Varför kan blanka och ogiltiga valsedlar ändra resultatet?', acceptedAnswer: { '@type': 'Answer', text: 'De kan räknas som deltagande men uteslutas från giltiga röster. Verktyget visar nämnarna separat.' } },
|
|
16
|
+
{ '@type': 'Question', name: 'Bevisar ett godkänt resultat juridisk giltighet?', acceptedAnswer: { '@type': 'Answer', text: 'Nej. Kontrollera grundlag, lag, officiella anvisningar, valsedelsdefinitioner och räknande myndighet.' } },
|
|
17
|
+
] };
|
|
18
|
+
const howTo: HowTo = { '@type': 'HowTo', name: 'Kontrollera trösklar för en folkomröstning', step: [
|
|
19
|
+
{ '@type': 'HowToStep', name: 'Ange väljarunderlaget', text: 'Skriv in registrerade eller röstberättigade väljare enligt regeln.' },
|
|
20
|
+
{ '@type': 'HowToStep', name: 'Separera valsedlarna', text: 'Lägg till ja, nej, blanka och ogiltiga från samma omröstning.' },
|
|
21
|
+
{ '@type': 'HowToStep', name: 'Ange deltagande', text: 'Välj räkning och en procentuell eller absolut deltagandetröskel.' },
|
|
22
|
+
{ '@type': 'HowToStep', name: 'Ange godkännande', text: 'Välj nämnare och kravet för ja röster.' },
|
|
23
|
+
{ '@type': 'HowToStep', name: 'Läs testerna', text: 'Kontrollera täljare, nämnare, andel, tröskel och varningar.' },
|
|
24
|
+
] };
|
|
25
|
+
|
|
26
|
+
export const content: ToolLocaleContent<ReferendumThresholdLocaleContent['ui']> = {
|
|
27
|
+
slug: 'kalkylator-referendumstroeskel', title: 'Kalkylator för folkomröstningströskel', description: 'Kontrollera deltagande och godkännande med varje täljare, nämnare och regel tydligt synlig.', ui, seo: [
|
|
28
|
+
{ type: 'title', text: 'Kontrollera en folkomröstningsregel med synliga nämnare', level: 2 },
|
|
29
|
+
{ type: 'paragraph', html: 'Ett resultat från en folkomröstning kan verka tydligt trots att nämnaren ändrar innebörden. Kalkylatorn visar väljarunderlag, valsedelskategorier och båda kvorumen i samma granskning.' },
|
|
30
|
+
{ type: 'paragraph', html: 'Deltagande och godkännande är separata tester. Blanka och ogiltiga valsedlar kan räknas som deltagande utan att vara giltiga röster. Verktyget gör därför valet synligt.' },
|
|
31
|
+
{ type: 'title', text: 'Så fungerar de två kvorumen', level: 2 },
|
|
32
|
+
{ type: 'paragraph', html: 'Deltagandeandelen delar den valda räkningen med antalet väljare. Godkännandeandelen delar ja med den valda nämnaren. Jämförelsen kan acceptera likhet eller kräva att tröskeln överskrids.' },
|
|
33
|
+
{ type: 'table', headers: ['Test', 'Observerat värde', 'Fråga'], rows: [['Deltagande', 'Valda valsedlar / väljare', 'Deltog en tillräcklig del av väljarna?'], ['Godkännande', 'Ja / vald nämnare', 'Nådde ja den krävda tröskeln?']] },
|
|
34
|
+
{ type: 'title', text: 'Förbered siffrorna utan att blanda definitioner', level: 2 },
|
|
35
|
+
{ type: 'paragraph', html: 'Använd siffror från samma omröstning och samma version av röstlängden. Håll ja, nej, blank och ogiltig åtskilda innan du väljer nämnare, så går varje uppgift att spåra.' },
|
|
36
|
+
{ type: 'list', items: ['Kontrollera om regeln avser registrerade eller röstberättigade väljare.', 'Registrera de fyra valsedelskategorierna separat.', 'Säkerställ att valsedlarna inte överstiger väljarunderlaget.', 'Anteckna nämnaren för varje procenttal.', 'Spara den officiella lydelsen bredvid resultatet.'] },
|
|
37
|
+
{ type: 'tip', title: 'Nämnaren är en del av regeln', html: '50 procent godkännande bland giltiga röster är inte samma test som 50 procent bland alla valsedlar eller väljare. Blanka och ogiltiga röster kan ändra beslutet.' },
|
|
38
|
+
{ type: 'title', text: 'Tolka godkända och underkända tester', level: 2 },
|
|
39
|
+
{ type: 'paragraph', html: 'Resultatet skiljer mellan misslyckat deltagande och misslyckat godkännande. Om deltagandet klaras men godkännandet inte gör det, granskar du ja och nämnaren. I motsatt fall saknas deltagandevillkoret.' },
|
|
40
|
+
{ type: 'paragraph', html: 'Ett positivt räkneresultat är inte ett juridiskt besked. Jurisdiktionen kan ha särskilda villkor, territoriella krav eller egna regler för blanka och ogiltiga valsedlar. Verktyget bedömer bara din konfiguration.' },
|
|
41
|
+
{ type: 'tip', title: 'Använd resultatet som kontrollblad', html: 'Jämför varje täljare, nämnare, läge och jämförelse med den aktuella regeln innan du publicerar en slutsats. Behåll varningen om en definition är oklar.' },
|
|
42
|
+
{ type: 'title', text: 'Källor och begränsningar', level: 2 },
|
|
43
|
+
{ type: 'paragraph', html: 'International IDEA förklarar varför regler för deltagande och godkännande ska vara tydliga. Venedigkommissionen analyserar quorumens effekter. Källorna ger ingen universell tröskel.' },
|
|
44
|
+
], faq: [
|
|
45
|
+
{ question: 'Vad avgör den här kalkylatorn?', answer: 'Den jämför röstsiffrorna med de deltagande och godkännande trösklar du anger. Den avgör inte vilken juridisk regel som gäller.' },
|
|
46
|
+
{ question: 'Vad är skillnaden mellan deltagande och godkännande?', answer: 'Deltagande frågar om tillräckligt många personer eller valsedlar nådde tröskeln. Godkännande frågar om ja nådde den krävda andelen eller mängden.' },
|
|
47
|
+
{ question: 'Varför kan blanka och ogiltiga valsedlar ändra resultatet?', answer: 'De kan räknas som deltagande men uteslutas från giltiga röster. Verktyget visar nämnarna separat.' },
|
|
48
|
+
{ question: 'Bevisar ett godkänt resultat juridisk giltighet?', answer: 'Nej. Kontrollera grundlag, lag, officiella anvisningar, valsedelsdefinitioner och räknande myndighet.' },
|
|
49
|
+
], bibliography, howTo: [
|
|
50
|
+
{ name: 'Ange väljarunderlaget', text: 'Skriv in registrerade eller röstberättigade väljare enligt regeln.' },
|
|
51
|
+
{ name: 'Separera valsedlarna', text: 'Lägg till ja, nej, blanka och ogiltiga från samma omröstning.' },
|
|
52
|
+
{ name: 'Ange deltagande', text: 'Välj räkning och en procentuell eller absolut deltagandetröskel.' },
|
|
53
|
+
{ name: 'Ange godkännande', text: 'Välj nämnare och kravet för ja röster.' },
|
|
54
|
+
{ name: 'Läs testerna', text: 'Kontrollera täljare, nämnare, andel, tröskel och varningar.' },
|
|
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: 'Bildirilen oy sayılarını girin', eligibleLabel: 'Kayıtlı veya oy kullanma hakkı olan seçmenler', eligibleHelp: 'İncelediğiniz kuralın belirttiği seçmen kitlesini kullanın.', yesLabel: 'Evet oyları', noLabel: 'Hayır oyları', blankLabel: 'Boş oy pusulaları', invalidLabel: 'Geçersiz oy pusulaları', participationHeading: 'Katılım nisabı', participationHelp: 'Katılım sayımını ve ulaşılması gereken eşiği seçin.', approvalHeading: 'Onay nisabı', approvalHelp: 'Evet oyları için paydayı seçin. Her kural sonuçta görünür kalır.', thresholdModeLabel: 'Eşik türü', comparisonLabel: 'Karşılaştırma', atLeastOption: 'En az', moreThanOption: 'Daha fazla', percentageOption: 'Yüzde', absoluteOption: 'Mutlak sayı', thresholdValueLabel: 'Eşik değeri', denominatorLabel: 'Kullanılan sayım', allBallotsOption: 'Tüm oy pusulaları', validVotesOption: 'Yalnızca geçerli oylar', eligibleVotersOption: 'Oy kullanma hakkı olan seçmenler', presetsLabel: 'Onay hazır ayarları', simpleMajorityPreset: 'Basit çoğunluk', electorateMajorityPreset: 'Seçmen çoğunluğu', qualified55Preset: 'Nitelikli yüzde 55', qualified60Preset: 'Nitelikli yüzde 60', loadExample: 'Örneği yükle', shareAction: 'Permalink kopyala', shareSuccess: 'Permalink kopyalandı. Sayıları ve iki kuralı içerir.', shareFailure: 'Permalink adres çubuğunda bulunuyor ve kopyalanabilir.', resultHeading: 'Bildirilen kurala göre karar', emptyResult: 'İki nisap testini görmek için sayıları ve eşikleri girin.', passed: 'İki eşik de sağlandı', participationFailed: 'Katılım nisabı sağlanmadı', approvalFailed: 'Onay nisabı sağlanmadı', bothFailed: 'İki eşik de sağlanmadı', invalidResult: 'Bildirilen sayıları kontrol edin', participationMetric: 'Katılım testi', approvalMetric: 'Onay testi', observedLabel: 'Gözlenen', thresholdLabel: 'Gerekli', decisionPathLabel: 'Karar yolu', methodHeading: 'Uygulanan yöntem', methodText: 'Katılım, seçilen sayımın seçmenlere bölünmesidir. Onay, evet oylarının seçilen paydaya bölünmesidir. Karşılaştırma, tam değerin yeterli olup olmadığını veya aşılması gerekip gerekmediğini belirler. Mutlak eşikler sayıları doğrudan karşılaştırır.', limitsHeading: 'Bu araç ne yapmaz', limitsText: 'Yetkili kurumu belirlemez, sayımı onaylamaz, süre belirlemez ve hukuk danışmanlığı vermez. Sonuç girdiğiniz varsayımlara bağlıdır.', warningsHeading: 'Sınır durumları ve veri uyarıları', warningsText: 'Boş ve geçersiz pusulaların katılıma dahil olup olmadığını, seçmen listesinin güncel olup olmadığını ve onayın geçerli oyları, tüm pusulaları veya seçmenleri kullanıp kullanmadığını kontrol edin.', invalidInput: 'Negatif olmayan tam sayılar kullanın. Seçmen sayısı sıfırdan büyük olmalı ve pusula sayısı bunu aşmamalıdır.', ballotsExceedEligible: 'Bildirilen pusulalar seçmen sayısını aşıyor.', noValidVotes: 'Evet veya hayır oyu yok, bu nedenle geçerli oy paydası bulunmuyor.', noBallots: 'Hiçbir oy pusulası bildirilmedi.', peopleSuffix: 'kişi', yesShareLabel: 'Evet payı', allBallotsLabel: 'tüm oy pusulaları', validVotesLabel: 'geçerli oylar', eligibleVotersLabel: 'seçmenler', whatNextLabel: 'Sonucu kullanmadan önce', whatNextText: 'Uygulanan kuralın tam metnini kopyalayın ve gösterilen yapılandırmayla karşılaştırın.',
|
|
9
|
+
};
|
|
10
|
+
|
|
11
|
+
const softwareApplication: SoftwareApplication = { '@type': 'SoftwareApplication', name: 'Referandum eşik hesaplayıcısı', applicationCategory: 'EducationalApplication', operatingSystem: 'Any', description: 'Pay ve paydaları göstererek katılım ve onay nisaplarını kontrol eder.', url: 'https://gamebob.dev/tr/referandum-esik-hesaplayici', offers: { '@type': 'Offer', price: '0', priceCurrency: 'TRY' } };
|
|
12
|
+
const faqPage: FAQPage = { '@type': 'FAQPage', mainEntity: [
|
|
13
|
+
{ '@type': 'Question', name: 'Bu hesaplayıcı neye karar verir?', acceptedAnswer: { '@type': 'Answer', text: 'Girdiğiniz oy sayılarını katılım ve onay eşikleriyle karşılaştırır. Hangi hukuk kuralının geçerli olduğunu belirlemez.' } },
|
|
14
|
+
{ '@type': 'Question', name: 'Katılım ve onay arasındaki fark nedir?', acceptedAnswer: { '@type': 'Answer', text: 'Katılım, yeterli kişi veya pusulanın eşiğe ulaşıp ulaşmadığını sorar. Onay, evet oylarının gereken sayıya veya orana ulaşıp ulaşmadığını sorar.' } },
|
|
15
|
+
{ '@type': 'Question', name: 'Boş ve geçersiz pusulalar sonucu neden değiştirebilir?', acceptedAnswer: { '@type': 'Answer', text: 'Katılımda sayılabilir ancak geçerli oylara dahil edilmeyebilirler. Araç her paydayı ayrı olarak görünür kılar.' } },
|
|
16
|
+
{ '@type': 'Question', name: 'Olumlu sonuç hukuki geçerliliği kanıtlar mı?', acceptedAnswer: { '@type': 'Answer', text: 'Hayır. Anayasayı, kanunu, resmî talimatları, pusula tanımlarını ve sayım makamını kontrol edin.' } },
|
|
17
|
+
] };
|
|
18
|
+
const howTo: HowTo = { '@type': 'HowTo', name: 'Referandum eşiklerini kontrol etme', step: [
|
|
19
|
+
{ '@type': 'HowToStep', name: 'Seçmenleri girin', text: 'Kuralın kullandığı kayıtlı veya oy hakkı olan seçmenleri yazın.' },
|
|
20
|
+
{ '@type': 'HowToStep', name: 'Pusulaları ayırın', text: 'Aynı oylamadaki evet, hayır, boş ve geçersiz sayıları ekleyin.' },
|
|
21
|
+
{ '@type': 'HowToStep', name: 'Katılımı belirleyin', text: 'Sayımı ve yüzde veya mutlak katılım eşiğini seçin.' },
|
|
22
|
+
{ '@type': 'HowToStep', name: 'Onayı belirleyin', text: 'Paydayı ve gereken evet oyları koşulunu seçin.' },
|
|
23
|
+
{ '@type': 'HowToStep', name: 'İki testi okuyun', text: 'Payı, paydayı, oranı, eşiği ve uyarıları kontrol edin.' },
|
|
24
|
+
] };
|
|
25
|
+
|
|
26
|
+
export const content: ToolLocaleContent<ReferendumThresholdLocaleContent['ui']> = {
|
|
27
|
+
slug: 'referandum-esik-hesaplayici', title: 'Referandum eşik hesaplayıcısı', description: 'Her payı, paydayı ve bildirilen kuralı görünür kılarak katılım ve onay nisaplarını kontrol edin.', ui, seo: [
|
|
28
|
+
{ type: 'title', text: 'Paydaları görünür bir referandum kuralını kontrol edin', level: 2 },
|
|
29
|
+
{ type: 'paragraph', html: 'Bir referandum sonucu basit görünebilir, ancak payda yorumun kendisini değiştirebilir. Bu hesaplayıcı seçmenleri, pusula kategorilerini ve iki nisabı aynı incelemede gösterir.' },
|
|
30
|
+
{ type: 'paragraph', html: 'Katılım ve onay ayrı testlerdir. Boş ve geçersiz pusulalar katılımı artırabilir ancak geçerli oy sayılmayabilir. Araç bu seçimi gizlice yapmaz.' },
|
|
31
|
+
{ type: 'title', text: 'İki nisap testi nasıl çalışır', level: 2 },
|
|
32
|
+
{ type: 'paragraph', html: 'Katılım oranı seçilen katılım sayısını seçmenlere böler. Onay oranı evet oylarını seçilen paydaya böler. Karşılaştırma eşitliği kabul edebilir veya eşiğin aşılmasını isteyebilir.' },
|
|
33
|
+
{ type: 'table', headers: ['Test', 'Gözlenen değer', 'Soru'], rows: [['Katılım', 'Seçilen pusulalar / seçmenler', 'Seçmenlerin yeterli bölümü katıldı mı?'], ['Onay', 'Evet / seçilen payda', 'Evet oyları gerekli eşiğe ulaştı mı?']] },
|
|
34
|
+
{ type: 'title', text: 'Tanımları karıştırmadan sayıları hazırlayın', level: 2 },
|
|
35
|
+
{ type: 'paragraph', html: 'Aynı oylamadan ve aynı seçmen listesi sürümünden gelen sayıları kullanın. Paydayı seçmeden önce evet, hayır, boş ve geçersiz pusulaları ayrı tutun; böylece her sayı denetlenebilir.' },
|
|
36
|
+
{ type: 'list', items: ['Kuralın kayıtlı veya oy hakkı olan seçmenleri belirtip belirtmediğini doğrulayın.', 'Dört pusula kategorisini ayrı ayrı kaydedin.', 'Toplam pusulanın seçmen sayısını aşmadığını kontrol edin.', 'Her yüzde için paydayı not edin.', 'Resmî kural metnini sonuçla birlikte saklayın.'] },
|
|
37
|
+
{ type: 'tip', title: 'Payda kuralın bir parçasıdır', html: 'Geçerli oyların yüzde 50 si, tüm pusulaların veya seçmenlerin yüzde 50 siyle aynı test değildir. Boş ve geçersiz oylar kararı değiştirebilir.' },
|
|
38
|
+
{ type: 'title', text: 'Başarılı ve başarısız durumları yorumlayın', level: 2 },
|
|
39
|
+
{ type: 'paragraph', html: 'Sonuç katılım başarısızlığını onay başarısızlığından ayırır. Katılım geçip onay kalırsa evet oylarını ve paydayı inceleyin. Tersi durumda katılım koşulu sağlanmamıştır.' },
|
|
40
|
+
{ type: 'paragraph', html: 'Olumlu hesaplama hukuki bir sonuç değildir. Yargı alanı özel, bölgesel veya boş ve geçersiz pusulalara ilişkin resmî kurallar uygulayabilir. Araç yalnızca girdiğiniz yapıyı değerlendirir.' },
|
|
41
|
+
{ type: 'tip', title: 'Sonucu kontrol formu olarak kullanın', html: 'Bir sonuç yayımlamadan önce her payı, paydayı, modu ve karşılaştırmayı güncel kuralla eşleştirin. Tanım belirsizse uyarıyı görünür bırakın.' },
|
|
42
|
+
{ type: 'title', text: 'Kaynaklar ve sınırlar', level: 2 },
|
|
43
|
+
{ type: 'paragraph', html: 'International IDEA katılım ve onay kurallarının açık olması gerektiğini açıklar. Venedik Komisyonu nisapların etkilerini inceler. Bu kaynaklar yöntemi destekler, bütün ülkeler için evrensel bir eşik vermez.' },
|
|
44
|
+
], faq: [
|
|
45
|
+
{ question: 'Bu hesaplayıcı neye karar verir?', answer: 'Girdiğiniz oy sayılarını katılım ve onay eşikleriyle karşılaştırır. Hangi hukuk kuralının geçerli olduğunu belirlemez.' },
|
|
46
|
+
{ question: 'Katılım ve onay arasındaki fark nedir?', answer: 'Katılım, yeterli kişi veya pusulanın eşiğe ulaşıp ulaşmadığını sorar. Onay, evet oylarının gereken sayıya veya orana ulaşıp ulaşmadığını sorar.' },
|
|
47
|
+
{ question: 'Boş ve geçersiz pusulalar sonucu neden değiştirebilir?', answer: 'Katılımda sayılabilir ancak geçerli oylara dahil edilmeyebilirler. Araç her paydayı ayrı olarak görünür kılar.' },
|
|
48
|
+
{ question: 'Olumlu sonuç hukuki geçerliliği kanıtlar mı?', answer: 'Hayır. Anayasayı, kanunu, resmî talimatları, pusula tanımlarını ve sayım makamını kontrol edin.' },
|
|
49
|
+
], bibliography, howTo: [
|
|
50
|
+
{ name: 'Seçmenleri girin', text: 'Kuralın kullandığı kayıtlı veya oy hakkı olan seçmenleri yazın.' },
|
|
51
|
+
{ name: 'Pusulaları ayırın', text: 'Aynı oylamadaki evet, hayır, boş ve geçersiz sayıları ekleyin.' },
|
|
52
|
+
{ name: 'Katılımı belirleyin', text: 'Sayımı ve yüzde veya mutlak katılım eşiğini seçin.' },
|
|
53
|
+
{ name: 'Onayı belirleyin', text: 'Paydayı ve gereken evet oyları koşulunu seçin.' },
|
|
54
|
+
{ name: 'İki testi okuyun', text: 'Payı, paydayı, oranı, eşiği ve uyarıları kontrol edin.' },
|
|
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: '输入票数和门槛即可查看两项检验。', passed: '两项门槛都已达到', participationFailed: '未达到参与门槛', approvalFailed: '未达到赞成门槛', bothFailed: '两项门槛都未达到', invalidResult: '请检查公布的票数', participationMetric: '参与检验', approvalMetric: '赞成检验', observedLabel: '实际值', thresholdLabel: '要求值', decisionPathLabel: '判断路径', methodHeading: '采用的方法', methodText: '参与率是所选参与数量除以选民数量。赞成率是赞成票除以所选分母。比较方式决定相等是否足够,还是必须超过门槛。绝对门槛直接比较数量。', limitsHeading: '本工具不会做什么', limitsText: '它不会确定主管机关、认证计票结果、判断法定期限或提供法律建议。结果取决于输入的前提。', warningsHeading: '边界情况和数据提示', warningsText: '请确认空白票和无效票是否计入参与,选民数量是否为最新,以及赞成规则使用有效票、所有选票还是选民作为分母。', invalidInput: '请输入非负整数。选民数必须大于零,选票数不能超过选民数。', 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/zh/vote-referendum-threshold-calculator', offers: { '@type': 'Offer', price: '0', priceCurrency: 'CNY' } };
|
|
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: '公投结果看似简单,但分母会改变它的含义。本计算器把选民数、选票类别以及参与和赞成两项门槛放在同一份可核查的结果中。' },
|
|
30
|
+
{ type: 'paragraph', html: '参与和赞成是不同的检验。空白票和无效票可能增加参与数量,却不属于有效票。工具不会默默替你选择这种定义。' },
|
|
31
|
+
{ type: 'title', text: '两项门槛如何运作', 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: ['确认规则指的是登记选民还是有投票资格的选民。', '分别记录四类选票。', '确认选票总数没有超过选民数。', '记录每个百分比使用的分母。', '把官方规则原文与计算结果一起保存。'] },
|
|
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
|
+
};
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import type { ToolDefinition } from '../../types';
|
|
2
|
+
import { referendumThresholdCalculator } from './entry';
|
|
3
|
+
|
|
4
|
+
export * from './entry';
|
|
5
|
+
export * from './logic';
|
|
6
|
+
export const REFERENDUM_THRESHOLD_CALCULATOR_TOOL: ToolDefinition = {
|
|
7
|
+
entry: referendumThresholdCalculator,
|
|
8
|
+
Component: () => import('./component.astro'),
|
|
9
|
+
SEOComponent: () => import('./seo.astro'),
|
|
10
|
+
BibliographyComponent: () => import('./bibliography.astro'),
|
|
11
|
+
};
|