@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,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
|
+
};
|
|
@@ -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: '์์๊ฐ ์๋ ์ ์๋ฅผ ์ฌ์ฉํ์ธ์. ์ ๊ถ์ ์๋ 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/ko/gukmin-tupyo-chamyeoyul-gyesan', offers: { '@type': 'Offer', price: '0', priceCurrency: 'KRW' } };
|
|
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
|
+
};
|