All files / scripts/generate-news-enhanced analysis-labels.ts

100% Statements 85/85
75% Branches 69/92
100% Functions 10/10
100% Lines 62/62

Press n or j to go to the next uncovered block, b, p or k for the previous block.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 381 382 383 384 385 386 387 388 389 390 391 392 393 394 395 396 397 398 399 400 401 402 403 404 405 406 407 408 409 410 411 412 413 414 415 416 417 418 419 420 421 422 423 424 425 426 427 428 429 430 431 432 433 434 435 436 437 438 439 440 441 442 443 444 445 446 447 448 449 450 451 452 453 454 455 456 457 458 459 460 461 462 463 464 465 466 467 468 469 470 471 472 473 474 475 476 477 478 479 480 481 482 483 484 485 486 487 488 489 490 491 492 493 494 495 496 497 498 499 500 501 502 503 504 505 506 507 508 509 510 511 512 513 514 515 516 517 518 519 520 521 522 523 524 525 526 527 528 529 530 531 532 533 534 535 536 537 538 539 540 541 542 543 544 545 546 547 548 549 550 551 552 553 554 555 556 557 558 559 560 561 562 563 564 565 566 567 568 569 570 571 572 573 574 575 576 577 578 579 580 581 582 583 584 585 586 587 588 589 590 591 592 593 594 595 596 597 598 599 600 601 602 603 604 605 606 607 608 609 610 611 612 613 614 615 616 617 618 619 620 621 622 623 624 625 626 627 628 629 630 631 632 633 634 635 636 637 638 639 640 641 642 643 644 645 646 647 648 649 650 651 652 653 654 655 656 657 658 659 660 661 662 663 664 665 666 667 668 669 670 671 672 673 674 675 676 677 678 679 680 681 682 683 684 685 686 687 688 689 690 691 692                                    612x       1003x       1492x           159x 150x 146x 142x   138x     118x         31x 14x 13x 12x 11x         30x 14x 13x 12x 11x         58x 56x 54x 52x         31x 30x 29x 28x         30x 29x 28x 27x       17x                                 17x                                 17x                                   17x                                                                                                     17x                                                                                                         17x                                 17x                                 17x                                 17x                                 17x                                 17x                                 17x                                 17x                                 17x                                 17x                                             17x                                                                         17x                                 17x                                 17x                                 17x                                 17x                                     17x           17x           17x                                 17x                                     17x                                 17x                                 17x                                 17x                                 17x                                 17x                                
/**
 * @module generate-news-enhanced/analysis-labels
 * @description Localised label constants and interpolation helpers used by the
 * AI analysis pipeline. Contains all 14-language phrase maps for legislative
 * signals, SWOT quadrants, strategic implications, and key takeaway templates.
 *
 * @license Apache-2.0
 * @author Hack23 AB
 */
 
import type { Language } from '../types/language.js';
 
/** All 14 supported languages. */
export type Lang14 = Record<Language, string>;
 
export function L14(en: string, sv: string, da: string, no: string, fi: string,
              de: string, fr: string, es: string, nl: string,
              ar: string, he: string, ja: string, ko: string, zh: string): Lang14 {
  return { en, sv, da, no, fi, de, fr, es, nl, ar, he, ja, ko, zh };
}
 
export function pickLang(map: Lang14, lang: Language): string {
  return map[lang] ?? map.en;
}
 
export function interp(template: string, vars: Record<string, string | number>): string {
  return template.replace(/%(\w+)/g, (_, key) => String(vars[key] ?? ''));
}
 
export function plural(n: number, lang: Language): string {
  // Most supported languages use 's' as plural marker in EN-derived templates.
  // For the handful that don't, handle individually.
  if (lang === 'sv') return n !== 1 ? 'er' : '';
  if (lang === 'de') return n !== 1 ? 'e' : '';
  if (lang === 'fr') return n !== 1 ? 's' : '';
  if (lang === 'nl') return n !== 1 ? 'en' : '';
  // ja, ko, zh, ar, he — no plural suffix needed
  if (['ja', 'ko', 'zh', 'ar', 'he'].includes(lang)) return '';
  // da, no, fi — use 'er' / 'r' style, but templates already handle this in
  // most cases; default to 's' for EN-like languages.
  return n !== 1 ? 's' : '';
}
 
/** Full verb form for TAKEAWAY_BET templates (committee reports "scrutinise"/"examine"). */
export function betVerbForm(n: number, lang: Language): string {
  if (lang === 'en') return n === 1 ? 'scrutinises' : 'scrutinise';
  if (lang === 'fr') return n === 1 ? 'examine' : 'examinent';
  if (lang === 'es') return n === 1 ? 'examina' : 'examinan';
  if (lang === 'nl') return n === 1 ? 'onderzoekt' : 'onderzoeken';
  return ''; // Other languages use fixed verb forms in templates
}
 
/** Full verb form for TAKEAWAY_MOT templates (opposition motions "challenge"/"contest"). */
export function motVerbForm(n: number, lang: Language): string {
  if (lang === 'en') return n === 1 ? 'challenges' : 'challenge';
  if (lang === 'fr') return n === 1 ? 'conteste' : 'contestent';
  if (lang === 'es') return n === 1 ? 'impugna' : 'impugnan';
  if (lang === 'nl') return n === 1 ? 'betwist' : 'betwisten';
  return ''; // Other languages use fixed verb forms in templates
}
 
/** Noun form for TAKEAWAY_PROP templates — languages where simple %s suffix fails. */
export function propNounForm(n: number, lang: Language): string {
  if (lang === 'fr') return n === 1 ? 'proposition législative' : 'propositions législatives';
  if (lang === 'es') return n === 1 ? 'propuesta legislativa' : 'propuestas legislativas';
  if (lang === 'nl') return n === 1 ? 'wetsvoorstel' : 'wetsvoorstellen';
  return '';
}
 
/** Noun form for TAKEAWAY_BET templates — languages where simple %s suffix fails. */
export function betNounForm(n: number, lang: Language): string {
  if (lang === 'fr') return n === 1 ? 'rapport de commission' : 'rapports de commission';
  if (lang === 'es') return n === 1 ? 'informe de comité' : 'informes de comité';
  if (lang === 'nl') return n === 1 ? 'commissierapport' : 'commissierapporten';
  return '';
}
 
/** Noun form for TAKEAWAY_MOT templates — languages where simple %s suffix fails. */
export function motNounForm(n: number, lang: Language): string {
  if (lang === 'fr') return n === 1 ? 'motion d\'opposition' : 'motions d\'opposition';
  if (lang === 'es') return n === 1 ? 'moción de oposición' : 'mociones de oposición';
  if (lang === 'nl') return n === 1 ? 'oppositiemotie' : 'oppositiemoties';
  return '';
}
 
// ── Legislative impact labels ────────────────────────────────────────────────
export const LEGISLATIVE_SIGNAL: Lang14 = L14(
  'Active legislative agenda:',
  'Aktiv lagstiftningsagenda:',
  'Aktiv lovgivningsdagsorden:',
  'Aktiv lovgivningsagenda:',
  'Aktiivinen lainsäädäntöohjelma:',
  'Aktive Gesetzgebungsagenda:',
  'Agenda législative active:',
  'Agenda legislativa activa:',
  'Actieve wetgevingsagenda:',
  'جدول أعمال تشريعية نشطة:',
  'סדר יום חקיקתי פעיל:',
  '活発な立法アジェンダ:',
  '활발한 입법 의제:',
  '积极的立法议程:',
);
 
export const SCRUTINY_SIGNAL: Lang14 = L14(
  'Parliamentary scrutiny signal:',
  'Parlamentarisk granskningssignal:',
  'Parlamentarisk kontrolsignal:',
  'Parlamentarisk kontrollsignal:',
  'Parlamentaarinen valvontasignaali:',
  'Parlamentarisches Kontrollsignal:',
  'Signal de contrôle parlementaire:',
  'Señal de control parlamentario:',
  'Parlementair controlesignaal:',
  'إشارة الرقابة البرلمانية:',
  'אות פיקוח פרלמנטרי:',
  '議会審査シグナル:',
  '의회 심사 신호:',
  '议会审查信号:',
);
 
export const EU_ALIGNMENT_SIGNAL: Lang14 = L14(
  'EU alignment dimension:',
  'EU-anpassningsdimension:',
  'EU-tilpasningsdimension:',
  'EU-tilpasningsdimensjon:',
  'EU-yhdenmukaistamisdimensio:',
  'EU-Ausrichtungsdimension:',
  'Dimension d\'alignement UE:',
  'Dimensión de alineación UE:',
  'EU-afstemmingsdimensie:',
  'بُعد التوافق مع الاتحاد الأوروبي:',
  'ממד ההתאמה לאיחוד האירופי:',
  'EU整合の側面:',
  'EU 정합성 차원:',
  'EU对齐维度:',
);
 
// ── SWOT quadrant labels ─────────────────────────────────────────────────────
export const GOV_STRENGTH_LABELS: Record<string, Lang14> = {
  propositions: L14(
    'Active legislative pipeline: %n government proposal%s driving %t policy',
    'Aktiv lagstiftningspipeline: %n propositioner driver %t-politik',
    'Aktiv lovgivningspipeline: %n lovforslag driver %t-politik',
    'Aktiv lovgivningspipeline: %n stortingsproposisjoner driver %t-politikk',
    'Aktiivinen lainsäädäntöputki: %n hallituksen esitystä ohjaavat %t-politiikkaa',
    'Aktive Gesetzgebungs-Pipeline: %n Regierungsvorlagen treiben %t-Politik voran',
    'Pipeline législative active: %n propositions gouvernementales propulsent la politique %t',
    'Pipeline legislativa activa: %n propuestas de gobierno impulsan la política %t',
    'Actieve wetgevingspijplijn: %n overheidsvoorstellen sturen %t-beleid',
    'خط أنابيب تشريعي نشط: %n مقترح حكومي يدفع سياسة %t',
    'צינור חקיקה פעיל: %n הצעות ממשלה מניעות מדיניות %t',
    'アクティブな立法パイプライン: %n件の政府提案が%t政策を推進',
    '활발한 입법 파이프라인: %n 정부 제안이 %t 정책 추진',
    '积极的立法管道:%n 项政府提案推动%t政策',
  ),
  sfs: L14(
    'Regulatory authority: enacted legislation provides implementation framework for %t',
    'Regelverksauktoritet: stiftad lagstiftning ger implementeringsramverk för %t',
    'Regelværksautoritet: vedtaget lovgivning giver implementeringsramme for %t',
    'Regelverksautoritet: vedtatt lovgivning gir implementeringsrammeverk for %t',
    'Sääntelyauktoriteetti: annettu lainsäädäntö tarjoaa täytäntöönpanokehyksen %t:lle',
    'Regulierungsbehörde: erlassene Gesetzgebung bildet Umsetzungsrahmen für %t',
    'Autorité réglementaire: la législation adoptée fournit un cadre de mise en œuvre pour %t',
    'Autoridad regulatoria: la legislación promulgada proporciona un marco de implementación para %t',
    'Regelgevende autoriteit: uitgevaardigde wetgeving biedt implementatiekader voor %t',
    'سلطة تنظيمية: التشريع المسنّ يوفر إطار تنفيذ لـ %t',
    'סמכות רגולטורית: חקיקה שנחקקה מספקת מסגרת יישום ל-%t',
    '規制権限:制定された法令が%tの実施枠組みを提供',
    '규제 권한: 제정된 법률이 %t에 대한 이행 프레임워크 제공',
    '监管权力:已颁布的法律为%t提供实施框架',
  ),
  default: L14(
    'Government agenda-setting on %t',
    'Regeringens agendasättning för %t',
    'Regeringens dagsordenssætning for %t',
    'Regjeringens agendaoppsetting for %t',
    'Hallituksen agendaasetus %t:lle',
    'Regierung setzt Agenda für %t',
    'Le gouvernement fixe l\'agenda sur %t',
    'El gobierno establece la agenda en %t',
    'Agenda bepalen door de regering voor %t',
    'تحديد أجندة الحكومة على %t',
    'קביעת סדר יום ממשלתי על %t',
    '政府が%tに関するアジェンダを設定',
    '정부의 %t 의제 설정',
    '政府在%t问题上设定议程',
  ),
};
 
export const OPP_STRENGTH_LABELS: Record<string, Lang14> = {
  committee: L14(
    'Parliamentary scrutiny: %n committee report%s examining %t',
    'Parlamentarisk granskning: %n betänkanden granskar %t',
    'Parlamentarisk kontrol: %n udvalgsrapporter undersøger %t',
    'Parlamentarisk kontroll: %n komitérapporter undersøker %t',
    'Parlamentaarinen valvonta: %n valiokuntamietintöä tutkii %t:tä',
    'Parlamentarische Kontrolle: %n Ausschussberichte prüfen %t',
    'Contrôle parlementaire: %n rapports de commission examinent %t',
    'Escrutinio parlamentario: %n informes de comité examinan %t',
    'Parlementaire controle: %n commissierapporten onderzoeken %t',
    'الرقابة البرلمانية: %n تقرير لجنة تفحص %t',
    'פיקוח פרלמנטרי: %n דוחות ועדה בוחנים %t',
    '議会審査:%n 件の委員会報告書が%tを検討',
    '의회 심사: %n 위원회 보고서가 %t 검토',
    '议会审查:%n 份委员会报告审查%t',
  ),
  motions: L14(
    'Opposition challenge: %n motion%s contesting %t proposals',
    'Oppositionsutmaning: %n motioner utmanar %t-förslag',
    'Oppositionsudfordring: %n motioner udfordrer %t-forslag',
    'Opposisjonsutfordring: %n motioner utfordrer %t-forslag',
    'Oppositiohaaste: %n kirjelmää haastaa %t-esitykset',
    'Herausforderung der Opposition: %n Anträge fechten %t-Vorschläge an',
    'Défi de l\'opposition: %n motions contestent les propositions %t',
    'Desafío de la oposición: %n mociones impugnan las propuestas %t',
    'Oppositie-uitdaging: %n moties betwisten %t-voorstellen',
    'تحدي المعارضة: %n اقتراح يطعن في مقترحات %t',
    'אתגר אופוזיציה: %n הצעות מתמודדות עם הצעות %t',
    '野党の挑戦:%n 件の動議が%t提案に異議',
    '야당 도전: %n 동의가 %t 제안에 이의',
    '反对派挑战:%n 项动议对%t提案提出异议',
  ),
  default: L14(
    'Parliamentary oversight and accountability on %t',
    'Parlamentarisk tillsyn och ansvarsskyldighet för %t',
    'Parlamentarisk tilsyn og ansvarlighed for %t',
    'Parlamentarisk tilsyn og ansvarlighet for %t',
    'Parlamentaarinen valvonta ja vastuuvelvollisuus %t:lle',
    'Parlamentarische Aufsicht und Rechenschaftspflicht für %t',
    'Contrôle parlementaire et responsabilité sur %t',
    'Supervisión parlamentaria y responsabilidad sobre %t',
    'Parlementair toezicht en verantwoording voor %t',
    'الرقابة البرلمانية والمساءلة على %t',
    'פיקוח פרלמנטרי ואחריות על %t',
    '%tに関する議会の監視と説明責任',
    '%t에 대한 의회 감독 및 책임',
    '%t问题上的议会监督和责任',
  ),
};
 
// ── Opportunity & threat templates (all 14 languages) ──────────────────────
 
export const EU_OPPORTUNITY: Lang14 = L14(
  'EU framework alignment and Nordic co-operation on %t',
  'EU-ramverksanpassning och nordiskt samarbete om %t',
  'EU-rammetilpasning og nordisk samarbejde om %t',
  'EU-rammeverktilpasning og nordisk samarbeid om %t',
  'EU-kehystoimenpiteiden yhdenmukaistaminen ja pohjoismainen yhteistyö %t:ssä',
  'EU-Rahmenausrichtung und nordische Zusammenarbeit bei %t',
  'Alignement avec le cadre européen et coopération nordique sur %t',
  'Alineación con el marco europeo y cooperación nórdica en %t',
  'EU-kaderafstemming en Noordse samenwerking op %t',
  'التوافق مع الإطار الأوروبي والتعاون الشمالي على %t',
  'התאמה למסגרת האיחוד האירופי ושיתוף פעולה נורדי על %t',
  'EUフレームワーク整合とノルディック協力(%t)',
  'EU 프레임워크 정합 및 북유럽 협력 (%t)',
  'EU框架对齐与北欧合作(%t)',
);
 
export const GOV_WEAKNESS_IMPL: Lang14 = L14(
  'Implementation timeline and resource allocation for %t',
  'Genomförandetidsplan och resurstilldelning för %t',
  'Implementeringstidsplan og ressourceallokering for %t',
  'Implementeringstidsplan og ressursallokering for %t',
  'Toteutusaikataulu ja resurssien kohdentaminen %t:lle',
  'Umsetzungszeitplan und Ressourcenallokation für %t',
  'Calendrier de mise en œuvre et allocation des ressources pour %t',
  'Cronograma de implementación y asignación de recursos para %t',
  'Implementatietijdlijn en toewijzing van middelen voor %t',
  'الجدول الزمني للتنفيذ وتخصيص الموارد لـ %t',
  'לוח זמנים ליישום והקצאת משאבים עבור %t',
  '%tの実施スケジュールとリソース配分',
  '%t 이행 일정 및 자원 배분',
  '%t的实施时间表和资源分配',
);
 
export const GOV_THREAT_EXEC: Lang14 = L14(
  'Execution risks and stakeholder resistance to %t reform',
  'Genomföranderisker och motstånd mot %t-reform',
  'Udførelsesrisici og interessentmodstand mod %t-reform',
  'Utføringsrisikoer og interessentmotstand mot %t-reform',
  'Toteutusriskit ja sidosryhmien vastustus %t-uudistukselle',
  'Ausführungsrisiken und Widerstand der Stakeholder gegen %t-Reform',
  'Risques d\'exécution et résistance des parties prenantes à la réforme %t',
  'Riesgos de ejecución y resistencia de las partes interesadas a la reforma %t',
  'Uitvoeringsrisico\'s en weerstand van belanghebbenden tegen %t-hervorming',
  'مخاطر التنفيذ ومقاومة أصحاب المصلحة لإصلاح %t',
  'סיכוני ביצוע והתנגדות בעלי עניין לרפורמת %t',
  '%t改革に対する実施リスクとステークホルダーの反発',
  '%t 개혁에 대한 실행 위험 및 이해관계자 저항',
  '%t改革的执行风险和利益相关者阻力',
);
 
export const OPP_WEAKNESS_INFO: Lang14 = L14(
  'Limited access to implementation data and classified briefings on %t',
  'Begränsad tillgång till genomförandedata och sekretessbelagda underlag om %t',
  'Begrænset adgang til implementeringsdata og klassificerede briefinger om %t',
  'Begrenset tilgang til implementeringsdata og klassifiserte orienteringer om %t',
  'Rajoitettu pääsy täytäntöönpanotietoihin ja salaisiin tiedotteisiin %t:stä',
  'Begrenzter Zugang zu Umsetzungsdaten und klassifizierten Berichten über %t',
  'Accès limité aux données de mise en œuvre et aux briefings classifiés sur %t',
  'Acceso limitado a datos de implementación e informes clasificados sobre %t',
  'Beperkte toegang tot implementatiegegevens en geclassificeerde briefings over %t',
  'وصول محدود إلى بيانات التنفيذ والإحاطات السرية حول %t',
  'גישה מוגבלת לנתוני יישום ותדרוכים חסויים על %t',
  '%tに関する実施データおよび機密ブリーフィングへのアクセスが限定',
  '%t에 관한 이행 데이터 및 기밀 브리핑에 대한 제한적 접근',
  '对%t实施数据和机密简报的有限访问',
);
 
export const OPP_OPPORTUNITY_CONSENSUS: Lang14 = L14(
  'Cross-party consensus building on %t reform agenda',
  'Konsensusbyggande över partigränser om %t-reformagenda',
  'Tværpartisanisk konsensusopbygning om %t-reformdagsorden',
  'Tverrpartisanisk konsensusbygging om %t-reformagenda',
  'Puolueiden välinen konsensuksen rakentaminen %t-uudistusohjelmasta',
  'Überparteilicher Konsensaufbau zur %t-Reformagenda',
  'Construction d\'un consensus interpartis sur l\'agenda de réforme %t',
  'Construcción de consenso multipartidista sobre la agenda de reforma %t',
  'Overpartijdig consensusopbouw over de %t-hervormingsagenda',
  'بناء توافق بين الأحزاب حول أجندة إصلاح %t',
  'בניית קונצנזוס בין-מפלגתי על אג\'נדת הרפורמות ב-%t',
  '%t改革課題に関する超党派コンセンサス形成',
  '%t 개혁 의제에 관한 초당파적 합의 구축',
  '在%t改革议程上的跨党派共识建立',
);
 
export const OPP_THREAT_MAJORITY: Lang14 = L14(
  'Government majority limiting parliamentary amendment capacity on %t',
  'Regeringsmajoriteten begränsar riksdagens ändringskapacitet för %t',
  'Regeringsflertal begrænser parlamentets ændringskapacitet for %t',
  'Regjeringsflertall begrenser stortingets endringskapasitet for %t',
  'Hallitusenemmistö rajoittaa eduskunnan muutoskapasiteettia %t:ssä',
  'Regierungsmehrheit schränkt parlamentarische Änderungskapazität bei %t ein',
  'Majorité gouvernementale limitant la capacité d\'amendement parlementaire sur %t',
  'Mayoría de gobierno que limita la capacidad de enmienda parlamentaria sobre %t',
  'Regeringsmeerderheid beperkt parlementaire wijzigingscapaciteit voor %t',
  'أغلبية الحكومة تحد من قدرة البرلمان على التعديل في %t',
  'רוב הממשלה מגביל את יכולת תיקון הפרלמנט ב-%t',
  '与党多数が%tに関する議会の修正能力を制限',
  '정부 다수파가 %t에 관한 의회 수정 능력 제한',
  '政府多数派限制议会对%t的修改能力',
);
 
export const PRIVATE_STRENGTH_DOMAIN: Lang14 = L14(
  'Domain expertise and operational capacity in %t',
  'Domänexpertis och operativ kapacitet inom %t',
  'Domæneekspertise og operationel kapacitet inden for %t',
  'Domenekompetanse og operativ kapasitet innen %t',
  'Toimialaasiantuntemus ja operatiivinen kapasiteetti %t:ssä',
  'Fachkompetenz und operative Kapazität in %t',
  'Expertise sectorielle et capacité opérationnelle dans %t',
  'Experiencia en el sector y capacidad operativa en %t',
  'Domeinexpertise en operationele capaciteit in %t',
  'الخبرة في المجال والقدرة التشغيلية في %t',
  'מומחיות בתחום וכושר תפעולי ב-%t',
  '%tにおけるドメイン専門知識と運用能力',
  '%t 분야 전문성 및 운영 역량',
  '%t领域专业知识和运营能力',
);
 
export const PRIVATE_WEAKNESS_COMPLIANCE: Lang14 = L14(
  'Compliance costs and adaptation burden from %t regulation',
  'Efterlevnadskostnader och anpassningsbörda från %t-reglering',
  'Complianceomkostninger og tilpasningsbyrde fra %t-regulering',
  'Etterlevelseskostnader og tilpasningsbyrde fra %t-regulering',
  'Vaatimustenmukaisuuskustannukset ja sopeutumisrasite %t-sääntelystä',
  'Compliance-Kosten und Anpassungsbelastung durch %t-Regulierung',
  'Coûts de mise en conformité et charge d\'adaptation de la réglementation %t',
  'Costos de cumplimiento y carga de adaptación por la regulación %t',
  'Compliancekosten en aanpassingslast van %t-regelgeving',
  'تكاليف الامتثال وعبء التكيف مع لوائح %t',
  'עלויות ציות ועומס הסתגלות מרגולציית %t',
  '%t規制によるコンプライアンスコストと適応負担',
  '%t 규제로 인한 컴플라이언스 비용 및 적응 부담',
  '%t法规带来的合规成本和适应负担',
);
 
export const PRIVATE_OPPORTUNITY_INVESTMENT: Lang14 = L14(
  'Investment and innovation opportunities from %t policy direction',
  'Investerings- och innovationsmöjligheter från %t-politikens inriktning',
  'Investerings- og innovationsmuligheder fra %t-politikkens retning',
  'Investerings- og innovasjonsmuligheter fra %t-politikkens retning',
  'Investointi- ja innovaatiomahdollisuudet %t-politiikan suunnasta',
  'Investitions- und Innovationschancen durch die %t-Politikrichtung',
  'Opportunités d\'investissement et d\'innovation issues de la politique %t',
  'Oportunidades de inversión e innovación derivadas de la política %t',
  'Investerings- en innovatiemogelijkheden door de %t-beleidsrichting',
  'فرص الاستثمار والابتكار من اتجاه سياسة %t',
  'הזדמנויות השקעה וחדשנות מכיוון המדיניות %t',
  '%t政策方向からの投資とイノベーションの機会',
  '%t 정책 방향으로부터의 투자 및 혁신 기회',
  '%t政策方向带来的投资和创新机会',
);
 
export const PRIVATE_THREAT_UNCERTAINTY: Lang14 = L14(
  'Regulatory uncertainty and rapid policy evolution in %t creating stakeholder risk',
  'Regulatorisk osäkerhet och snabb policyutveckling inom %t skapar intressentrisk',
  'Regulatorisk usikkerhed og hurtig politikudvikling inden for %t skaber interessentrisiko',
  'Regulatorisk usikkerhet og rask policyutvikling innen %t skaper interessentrisiko',
  'Sääntelyllinen epävarmuus ja nopea politiikan kehitys %t:ssä luo sidosryhmäriskiä',
  'Regulatorische Unsicherheit und rasche Politikentwicklung in %t schaffen Stakeholder-Risiken',
  'Incertitude réglementaire et évolution rapide des politiques dans %t créant des risques pour les parties prenantes',
  'Incertidumbre regulatoria y evolución rápida de políticas en %t generando riesgo para las partes interesadas',
  'Regelgevende onzekerheid en snelle beleidsontwikkeling in %t creëren stakeholderrisico\'s',
  'الغموض التنظيمي والتطور السريع في السياسات في %t مما يخلق مخاطر لأصحاب المصلحة',
  'אי-ודאות רגולטורית ושינוי מדיניות מהיר ב-%t יוצרים סיכון לבעלי עניין',
  '%tにおける規制の不確実性と急速な政策変化がステークホルダーリスクを生む',
  '%t에서의 규제 불확실성과 빠른 정책 변화가 이해관계자 위험 초래',
  '%t中的监管不确定性和快速政策演变为利益相关者带来风险',
);
 
// ── Strategic implications (all 14 languages) ────────────────────────────────
// NOTE: Templates use count-only placeholders (%prop, %bet, %mot) and full
// language-correct word forms — no suffix-based plural placeholders (%ps/%bs/%ms).
// This avoids incorrect forms like "betänkandeer" in Swedish or
// "proposiciones" → "proposicioness" in Spanish.
 
export const STRATEGIC_IMPL_TEMPLATES: Record<string, Lang14> = {
  legislative: L14(
    'Based on analysis of %total documents (%enriched enriched with full text)%topic: The legislative pipeline shows %prop government proposals, %bet committee reports, and %mot opposition motions. This distribution signals %signal%domain. Stakeholders should monitor committee deliberations and chamber voting patterns as the most reliable indicators of policy trajectory.',
    'Baserat på analys av %total dokument (%enriched berikade med fulltext)%topic: Det lagstiftande flödet visar %prop propositioner, %bet betänkanden och %mot motioner. Fördelningen signalerar %signal%domain. Intressenter bör följa utskottens överläggningar och kammarens voteringsmönster.',
    'Baseret på analyse af %total dokumenter (%enriched beriget med fuldtekst)%topic: Det lovgivningsmæssige flow viser %prop lovforslag, %bet udvalgsrapporter og %mot oppositionsforslag. Fordelingen signalerer %signal%domain.',
    'Basert på analyse av %total dokumenter (%enriched beriket med fulltekst)%topic: Det lovgivningsmessige forløpet viser %prop stortingsproposisjoner, %bet komitérapporter og %mot motionsforslag. Fordelingen signaliserer %signal%domain.',
    'Perustuen %total asiakirjan analyysiin (%enriched rikastetussa koko tekstissä)%topic: Lainsäädäntöputki näyttää %prop hallituksen esitystä, %bet valiokuntamietintöä ja %mot kirjelmää. Jakauma merkitsee %signal%domain.',
    'Basierend auf der Analyse von %total Dokumenten (%enriched mit vollständigem Text angereichert)%topic: Die Gesetzgebungs-Pipeline zeigt %prop Regierungsvorlagen, %bet Ausschussberichte und %mot Oppositionsanträge. Diese Verteilung signalisiert %signal%domain.',
    'Basé sur l\'analyse de %total documents (%enriched enrichis avec le texte complet)%topic: La pipeline législative montre %prop propositions gouvernementales, %bet rapports de commission et %mot motions d\'opposition. Cette distribution signale %signal%domain.',
    'Basado en el análisis de %total documentos (%enriched enriquecidos con texto completo)%topic: La actividad legislativa muestra %prop proposiciones gubernamentales, %bet informes de comité y %mot mociones de oposición. Esta distribución señala %signal%domain.',
    'Gebaseerd op analyse van %total documenten (%enriched verrijkt met volledige tekst)%topic: De wetgevingspijplijn toont %prop overheidsvoorstellen, %bet commissierapporten en %mot oppositiemoties. Deze verdeling geeft aan: %signal%domain.',
    'استناداً إلى تحليل %total وثيقة (%enriched مُعززة بالنص الكامل)%topic: يُظهر المسار التشريعي %prop مقترحات حكومية، %bet تقارير لجان و%mot اقتراحات معارضة. يُشير هذا التوزيع إلى %signal%domain.',
    'בהתבסס על ניתוח %total מסמכים (%enriched מועשרים בטקסט מלא)%topic: הצינור החקיקתי מראה %prop הצעות חוק ממשלתיות, %bet דוחות ועדה ו-%mot הצעות חוק אופוזיציה. ההתפלגות מסמנת %signal%domain.',
    '%total件の文書(%enriched件全文で充実)の分析に基づき%topic、立法パイプラインは%prop件の政府提案、%bet件の委員会報告、%mot件の野党動議を示しています。この分布は%domain%signalを示します。',
    '%total개 문서(%enriched개 전문 보강) 분석 기반%topic: 입법 파이프라인은 %prop개 정부 제안, %bet개 위원회 보고서, %mot개 야당 동의를 보여줍니다. 이 분포는 %domain%signal을 나타냅니다.',
    '基于对%total份文件(%enriched份全文丰富)的分析%topic:立法管道显示%prop项政府提案、%bet份委员会报告和%mot项反对派动议。这一分布表明%domain%signal。',
  ),
  nonLegislative: L14(
    'Based on analysis of %total documents (%enriched enriched with full text)%topic: This analysis examines %typeDesc%domain. %signalText Stakeholders should track whether formal propositions or committee referrals follow.',
    'Baserat på analys av %total dokument (%enriched berikade med fulltext)%topic: Denna analys granskar %typeDesc%domain. %signalText Intressenter bör bevaka om formella propositioner eller utskottsremisser följer.',
    'Baseret på analyse af %total dokumenter (%enriched beriget med fuldtekst)%topic: Denne analyse undersøger %typeDesc%domain. %signalText',
    'Basert på analyse av %total dokumenter (%enriched beriket med fulltekst)%topic: Denne analysen undersøker %typeDesc%domain. %signalText',
    'Perustuen %total asiakirjan analyysiin (%enriched rikastetussa koko tekstissä)%topic: Tämä analyysi tarkastelee %typeDesc%domain. %signalText',
    'Basierend auf der Analyse von %total Dokumenten (%enriched mit vollständigem Text angereichert)%topic: Diese Analyse untersucht %typeDesc%domain. %signalText',
    'Basé sur l\'analyse de %total documents (%enriched enrichis avec le texte complet)%topic: Cette analyse examine %typeDesc%domain. %signalText',
    'Basado en el análisis de %total documentos (%enriched enriquecidos con texto completo)%topic: Este análisis examina %typeDesc%domain. %signalText',
    'Gebaseerd op analyse van %total documenten (%enriched verrijkt met volledige tekst)%topic: Deze analyse onderzoekt %typeDesc%domain. %signalText',
    'استناداً إلى تحليل %total وثيقة (%enriched مُعززة بالنص الكامل)%topic: تحلل هذه الدراسة %typeDesc%domain. %signalText',
    'בהתבסס על ניתוח %total מסמכים (%enriched מועשרים בטקסט מלא)%topic: ניתוח זה בוחן %typeDesc%domain. %signalText',
    '%total件の文書(%enriched件全文で充実)の分析に基づき%topic、この分析は%domain%typeDescを検討します。%signalText',
    '%total개 문서(%enriched개 전문 보강) 분석 기반%topic: 이 분석은 %domain%typeDesc를 검토합니다. %signalText',
    '基于对%total份文件(%enriched份全文丰富)的分析%topic:本分析研究%domain%typeDesc。%signalText',
  ),
};
 
// ── Localised signal phrases for strategic implications ──────────────────────
 
export const SIGNAL_GOVT_AGENDA: Lang14 = L14(
  'active government agenda-setting',
  'aktiv regeringsagendasättning',
  'aktiv regeringsdagsordenssætning',
  'aktiv regjeringsagendaoppsetting',
  'aktiivista hallituksen agendan asettamista',
  'aktive Regierungsagenda',
  'établissement actif de l\'agenda gouvernemental',
  'agenda gubernamental activa',
  'actieve regeringsagenda',
  'تحديد أجندة حكومية نشطة',
  'קביעת סדר יום ממשלתי פעיל',
  '積極的な政府アジェンダの設定',
  '적극적인 정부 의제 설정',
  '积极的政府议程设定',
);
 
export const SIGNAL_PARL_SCRUTINY: Lang14 = L14(
  'strong parliamentary scrutiny',
  'stark parlamentarisk granskning',
  'stærk parlamentarisk kontrol',
  'sterk parlamentarisk kontroll',
  'vahvaa parlamentaarista valvontaa',
  'starke parlamentarische Kontrolle',
  'contrôle parlementaire fort',
  'fuerte escrutinio parlamentario',
  'sterk parlementair toezicht',
  'رقابة برلمانية قوية',
  'פיקוח פרלמנטרי חזק',
  '強力な議会審査',
  '강력한 의회 심사',
  '强有力的议会审查',
);
 
export const SIGNAL_BALANCED: Lang14 = L14(
  'balanced legislative activity',
  'balanserad lagstiftningsverksamhet',
  'afbalanceret lovgivningsaktivitet',
  'balansert lovgivningsaktivitet',
  'tasapainoista lainsäädäntötoimintaa',
  'ausgewogene Gesetzgebungstätigkeit',
  'activité législative équilibrée',
  'actividad legislativa equilibrada',
  'evenwichtige wetgevingsactiviteit',
  'نشاط تشريعي متوازن',
  'פעילות חקיקה מאוזנת',
  '均衡な立法活動',
  '균형 잡힌 입법 활동',
  '平衡的立法活动',
);
 
export const SIGNAL_PRESS: Lang14 = L14(
  'Government press communications signal policy priorities and upcoming legislative action.',
  'Regeringens presskommunikation signalerar policyprioriteter och kommande lagstiftningsåtgärder.',
  'Regeringens pressekommunikation signalerer politiske prioriteter og kommende lovgivningstiltag.',
  'Regjeringens pressekommunikasjon signaliserer politiske prioriteringer og kommende lovgivningstiltak.',
  'Hallituksen lehdistöviestintä viestii politiikan prioriteeteista ja tulevasta lainsäädännöstä.',
  'Regierungspressekommunikation signalisiert politische Prioritäten und bevorstehende Gesetzgebung.',
  'Les communications de presse du gouvernement signalent les priorités politiques et les actions législatives à venir.',
  'Las comunicaciones de prensa del gobierno señalan prioridades políticas y acciones legislativas próximas.',
  'Overheidspersberichten signaleren beleidsprioriteiten en aanstaande wetgevingsactie.',
  'بيانات الحكومة الصحفية تشير إلى أولويات السياسة والإجراءات التشريعية القادمة.',
  'תקשורת עיתונות ממשלתית מסמנת עדיפויות מדיניות ופעולות חקיקה קרובות.',
  '政府の広報は政策の優先事項と今後の法案活動を示唆しています。',
  '정부 언론 커뮤니케이션이 정책 우선순위와 향후 입법 활동을 알립니다.',
  '政府新闻通信表明政策优先事项和即将进行的立法行动。',
);
 
export const SIGNAL_EXTERNAL: Lang14 = L14(
  'External references illuminate the policy landscape.',
  'Externa referenser belyser det politiska landskapet.',
  'Eksterne referencer belyser det politiske landskab.',
  'Eksterne referanser belyser det politiske landskapet.',
  'Ulkoiset viittaukset valaisevat politiikan maisemaa.',
  'Externe Referenzen erhellen die politische Landschaft.',
  'Les références externes éclairent le paysage politique.',
  'Las referencias externas iluminan el panorama político.',
  'Externe referenties werpen licht op het politieke landschap.',
  'المراجع الخارجية تسلط الضوء على المشهد السياسي.',
  'הפניות חיצוניות מאירות את הנוף הפוליטי.',
  '外部参照が政策環境を明らかにします。',
  '외부 참조가 정책 환경을 조명합니다.',
  '外部参考资料阐明了政策格局。',
);
 
// ── Localised non-legislative type descriptions ──────────────────────────────
 
export const TYPE_DESC_PRESS: Lang14 = L14(
  'press releases', 'pressmeddelanden', 'pressemeddelelser', 'pressemeldinger',
  'lehdistötiedotteita', 'Pressemitteilungen', 'communiqués de presse', 'comunicados de prensa',
  'persberichten', 'بيانات صحفية', 'הודעות לעיתונות', 'プレスリリース', '보도자료', '新闻稿',
);
 
export const TYPE_DESC_EXTERNAL: Lang14 = L14(
  'external references', 'externa referenser', 'eksterne referencer', 'eksterne referanser',
  'ulkoisia viittauksia', 'externe Referenzen', 'références externes', 'referencias externas',
  'externe referenties', 'مراجع خارجية', 'הפניות חיצוניות', '外部参照', '외부 참조', '外部参考',
);
 
export const TYPE_DESC_REGULATORY: Lang14 = L14(
  'regulatory and parliamentary documents',
  'reglerande och parlamentariska dokument',
  'regulatoriske og parlamentariske dokumenter',
  'regulatoriske og parlamentariske dokumenter',
  'sääntely- ja parlamentaarisia asiakirjoja',
  'Regulierungs- und Parlamentsdokumente',
  'documents réglementaires et parlementaires',
  'documentos regulatorios y parlamentarios',
  'regelgevende en parlementaire documenten',
  'وثائق تنظيمية وبرلمانية',
  'מסמכים רגולטוריים ופרלמנטריים',
  '規制・議会文書',
  '규제 및 의회 문서',
  '监管和议会文件',
);
 
export const SIGNAL_SNAPSHOT: Lang14 = L14(
  'This snapshot provides a regulatory and institutional overview — monitor whether formal legislative proposals follow.',
  'Denna ögonblicksbild ger en regulatorisk och institutionell överblick — bevaka om formella lagförslag följer.',
  'Dette øjebliksbillede giver et regulatorisk og institutionelt overblik — følg om formelle lovforslag følger.',
  'Dette øyeblikksbildet gir en regulatorisk og institusjonell oversikt — følg med på om formelle lovforslag følger.',
  'Tämä tilannekuva antaa sääntely- ja institutionaalisen yleiskuvan — seuraa, seuraavatko viralliset lakiehdotukset.',
  'Dieser Überblick bietet eine regulatorische und institutionelle Übersicht — beobachten Sie, ob formelle Gesetzesvorschläge folgen.',
  'Cet aperçu offre une vue réglementaire et institutionnelle — surveillez si des propositions législatives formelles suivent.',
  'Esta instantánea proporciona una visión regulatoria e institucional — monitoree si siguen propuestas legislativas formales.',
  'Dit overzicht biedt een regelgevend en institutioneel beeld — volg of formele wetsvoorstellen volgen.',
  'توفر هذه اللقطة نظرة تنظيمية ومؤسسية — راقب ما إذا كانت ستتبعها مقترحات تشريعية رسمية.',
  'תמונת מצב זו מספקת סקירה רגולטורית ומוסדית — עקבו אחרי האם הצעות חוק פורמליות ייכנסו.',
  'このスナップショットは規制・制度の概要を提供します — 正式な法案提出が続くか注視してください。',
  '이 스냅샷은 규제 및 제도적 개요를 제공합니다 — 공식 법률안 제출이 뒤따르는지 모니터링하십시오.',
  '此快照提供监管和制度概览——关注是否有正式立法提案跟进。',
);
 
// ── Key takeaway templates ────────────────────────────────────────────────────
 
export const TAKEAWAY_PROP: Lang14 = L14(
  'Government has submitted %n legislative proposal%s on %t — active policy commitment',
  'Regeringen har lämnat %n lagstiftningsförslag om %t — aktivt politiskt engagemang',
  'Regeringen har fremsat %n lovforslag om %t — aktivt politisk engagement',
  'Regjeringen har fremmet %n lovforslag om %t — aktivt politisk engasjement',
  'Hallitus on antanut %n lakiesitystä %t:stä — aktiivinen poliittinen sitoutuminen',
  'Die Regierung hat %n Gesetzgebungsvorschläge zu %t eingebracht — aktives politisches Engagement',
  'Le gouvernement a soumis %n %pnoun sur %t — engagement politique actif',
  'El gobierno ha presentado %n %pnoun sobre %t — compromiso político activo',
  'De regering heeft %n %pnoun ingediend over %t — actief politiek engagement',
  'قدّمت الحكومة %n اقتراحات تشريعية بشأن %t — التزام سياسي نشط',
  'הממשלה הגישה %n הצעות חוק בנושא %t — מחויבות פוליטית פעילה',
  '政府は%t について%n件の法案を提出 — 積極的な政策コミットメント',
  '정부는 %t에 관한 %n건의 입법 제안서 제출 — 적극적 정책 공약',
  '政府已提交%n项关于%t的立法提案——积极的政策承诺',
);
 
export const TAKEAWAY_BET: Lang14 = L14(
  '%n committee report%s %verb %t — parliamentary oversight engaged',
  '%n betänkanden granskar %t — parlamentarisk tillsyn aktiverad',
  '%n udvalgsrapporter undersøger %t — parlamentarisk kontrol aktiveret',
  '%n komitérapporter undersøker %t — parlamentarisk kontroll engasjert',
  '%n valiokuntamietintöä tarkastelee %t:tä — parlamentaarinen valvonta aktivoitu',
  '%n Ausschussberichte prüfen %t — parlamentarische Kontrolle aktiv',
  '%n %bnoun %verb %t — contrôle parlementaire engagé',
  '%n %bnoun %verb %t — supervisión parlamentaria activada',
  '%n %bnoun %verb %t — parlementaire controle actief',
  '%n تقارير لجان تفحص %t — الرقابة البرلمانية مفعّلة',
  '%n דוחות ועדה בוחנים %t — פיקוח פרלמנטרי פעיל',
  '%n件の委員会報告書が%tを審査 — 議会監視が活性化',
  '%n건의 위원회 보고서가 %t 심사 — 의회 감독 활성화',
  '%n份委员会报告审查%t——议会监督已启动',
);
 
export const TAKEAWAY_MOT: Lang14 = L14(
  '%n opposition motion%s %verb %t — cross-party debate active',
  '%n oppositionsmotioner utmanar %t — debatt över partigränser pågår',
  '%n oppositionsmotioner udfordrer %t — tværpartipolitisk debat aktiv',
  '%n opposisjonsmotioner utfordrer %t — tverr-partipolitisk debatt aktiv',
  '%n oppositiokirjelmää haastaa %t — puolueidenvälinen debatti aktiivinen',
  '%n Oppositionsanträge fechten %t an — parteiübergreifende Debatte aktiv',
  '%n %mnoun %verb %t — débat interpartis actif',
  '%n %mnoun %verb %t — debate entre partidos activo',
  '%n %mnoun %verb %t — overpartijdebat actief',
  '%n اقتراحات معارضة تطعن في %t — النقاش عبر الأحزاب نشط',
  '%n הצעות אופוזיציה מתמודדות עם %t — דיון בין-מפלגתי פעיל',
  '%n件の野党動議が%tに異議申し立て — 超党派討論が活発',
  '%n건의 야당 동의가 %t에 이의 제기 — 초당파 논쟁 활성화',
  '%n项反对派动议对%t提出异议——跨党派辩论活跃',
);
 
export const TAKEAWAY_EU: Lang14 = L14(
  '%n EU alignment documents — international context framing %t',
  '%n EU-anpassningsdokument — internationellt sammanhang ramas in kring %t',
  '%n EU-tilpasningsdokumenter — international kontekst rammer %t',
  '%n EU-tilpasningsdokumenter — internasjonalt kontekst rammer %t',
  '%n EU-yhdenmukaistamisasiakirjaa — kansainvälinen konteksti kehystää %t:n',
  '%n EU-Ausrichtungsdokumente — internationale Kontextrahmung für %t',
  '%n documents d\'alignement UE — contexte international encadrant %t',
  '%n documentos de alineación UE — contexto internacional enmarcando %t',
  '%n EU-afstemmingsdocumenten — internationale contextkaders %t',
  '%n وثائق توافق أوروبية — السياق الدولي يؤطر %t',
  '%n מסמכי התאמה לאיחוד האירופי — הקשר בינ\'ל מסגר %t',
  '%n件のEU整合文書 — 国際的文脈が%tをフレーミング',
  '%n건의 EU 정합 문서 — 국제 맥락이 %t를 틀 지어',
  '%n份EU对齐文件——国际背景框架%t',
);
 
export const TAKEAWAY_ENRICHED: Lang14 = L14(
  '%n of %total documents enriched with full text — high analytical confidence',
  '%n av %total dokument berikade med fulltext — hög analytisk tillförlitlighet',
  '%n af %total dokumenter beriget med fuldtekst — høj analytisk tillid',
  '%n av %total dokumenter beriket med fulltekst — høy analytisk tillit',
  '%n / %total asiakirjasta rikastettu koko tekstillä — korkea analyyttinen luotettavuus',
  '%n von %total Dokumenten mit vollständigem Text angereichert — hohe analytische Zuverlässigkeit',
  '%n sur %total documents enrichis avec le texte complet — grande confiance analytique',
  '%n de %total documentos enriquecidos con texto completo — alta confianza analítica',
  '%n van %total documenten verrijkt met volledige tekst — hoge analytische betrouwbaarheid',
  '%n من %total وثيقة مُعززة بالنص الكامل — ثقة تحليلية عالية',
  '%n מתוך %total מסמכים מועשרים בטקסט מלא — אמון אנליטי גבוה',
  '%total件中%n件のドキュメントが全文で充実 — 高い分析信頼性',
  '%total개 중 %n개 문서 전문 보강 — 높은 분석 신뢰도',
  '%total份中%n份文件全文丰富——高分析可信度',
);
 
export const TAKEAWAY_COALITION_STRESS: Lang14 = L14(
  'Coalition stress indicators present — opposition challenges to government proposals detected',
  'Koalitionsstressindikatorer påvisade — oppositionsutmaningar mot regeringsförslag detekterade',
  'Koalitionsstressindikatorer til stede — oppositionsudfordringer til regeringsforslag opdaget',
  'Koalisjonsstressindikatorer tilstede — opposisjonsutfordringer til regjeringsforslag oppdaget',
  'Koalition stressindikaattorit läsnä — opposition haasteet hallituksen esityksille havaittu',
  'Koalitionsstressindikatoren vorhanden — Oppositionsherausforderungen an Regierungsvorschläge erkannt',
  'Indicateurs de stress de coalition présents — défis de l\'opposition aux propositions gouvernementales détectés',
  'Indicadores de tensión de coalición presentes — desafíos de la oposición a las propuestas del gobierno detectados',
  'Coalitie-stress-indicatoren aanwezig — oppositie-uitdagingen aan overheidsvoorstellen gedetecteerd',
  'مؤشرات ضغط التحالف موجودة — تحديات المعارضة للمقترحات الحكومية مرصودة',
  'מחווני לחץ קואליציוני קיימים — אתגרי אופוזיציה להצעות הממשלה זוהו',
  '連立ストレス指標が存在 — 政府提案への野党の異議申し立てを検出',
  '연립 스트레스 지표 존재 — 정부 제안에 대한 야당 이의 제기 감지',
  '联盟压力指标存在——检测到反对派对政府提案的挑战',
);