Files
politics-tracking/web/messages/en.json
T
simonandClaude Opus 5.5 456f9816f4 Redesign the web app from a written design concept
Design concept and design system in docs/design/: principles (evidence
first, neutral, fair to the people shown, plain language, time as a
dimension, accessible and private), information architecture, core
patterns and a concept for every page; tokens with checked contrast,
component catalogue, content and accessibility rules.

web:
- neutral ink-indigo accent instead of flag red; party colours only as
  small markers next to the name; light/dark theme with a switcher
- stylesheets split into tokens, base, layout, components, print
- new header (search, filter count, language, theme, mobile menu) and
  footer; breadcrumbs, page headers, tabs with counts, filter bars that
  collapse on phones, pagination, notices and empty states
- claim cards with source meter, legal stage, innocence notice inside
  the card and a permalink; claim pages with citation (/angaben/{id})
- profiles with role timeline and key figures; party and organisation
  dashboards; vote list with position chips; calendar agenda on phones;
  tables that stack into cards; loading and error pages; favicon

backend:
- GET /api/v1/claims/{id} and MCP tool get_claim for permalinks
- parties list: evaluate person_status once instead of per party
  (30 s -> 1 s on the sample database, identical result)
- parliament calendar: HTML-decode titles ("84. Sitzung")

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-28 22:21:44 +01:00

602 lines
24 KiB
JSON
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
{
"Meta": {
"title": "Politrack – Austrian politics, sourced",
"description": "What Austria's politicians do: votes, money, appearances, statements – every claim with its sources."
},
"Nav": {
"persons": "People",
"parties": "Parties",
"votes": "Votes",
"search": "Search",
"settings": "My filters",
"method": "Method & sources",
"language": "Deutsch",
"calendar": "Calendar",
"former": "Former politicians",
"organizations": "Organisations",
"money": "Money",
"social": "Social media",
"wikipedia": "Wikipedia edits"
},
"Home": {
"headline": "Austrian politics – traceable.",
"intro": "Politrack collects publicly available information about politicians and parties and links every claim to its sources. You decide which sources you trust.",
"lastUpdate": "Last updated: {date}",
"latest": "Latest claims",
"filtersActive": "Your filters are active ({count}) – some facts are hidden.",
"explore": "Explore",
"exploreMoney": "Money: donations, contracts, ads, party funding",
"exploreOrganizations": "Companies, associations, authorities – and their connections",
"exploreSocial": "What politicians post publicly",
"exploreWiki": "Wikipedia edits from parliament and government",
"exploreFormer": "What are former politicians doing?",
"exploreCalendar": "Sessions, committees, Council of Ministers, trips and meetings",
"quick": "Quick links",
"quickDonations": "Party donations",
"quickRollCalls": "Roll-call votes",
"quickAds": "Government ads",
"quickCalendar": "Calendar",
"statPersons": "people, {active} in office",
"statClaims": "sourced facts, {corroborated} corroborated",
"statVotes": "votes, {rollCalls} roll calls",
"statMoney": "money flows from official registers",
"changeFilters": "Change filters",
"searchInTime": "Search in time",
"parties": "Parties",
"activeOfficials": "{count} active",
"latestVotes": "Latest votes",
"allVotes": "All votes",
"exploreMoneyTitle": "Money",
"exploreOrganizationsTitle": "Organisations",
"exploreSocialTitle": "Social media",
"exploreCalendarTitle": "Calendar",
"exploreFormerTitle": "Former politicians",
"exploreWikiTitle": "Wikipedia edits",
"howTitle": "How Politrack works",
"howMore": "Methodology & sources",
"howEvidenceTitle": "Every fact has a source",
"howEvidence": "Facts come from official data, open registers and media reports. Each links to its sources, so you can check everything.",
"howCorroborationTitle": "Independently confirmed",
"howCorroboration": "When several independent sources report the same thing, a fact counts as corroborated. If a source contradicts it, it is marked as disputed.",
"howInnocenceTitle": "Fair and neutral",
"howInnocence": "For legal proceedings we always show the stage. Until a final conviction, the presumption of innocence applies."
},
"Search": {
"placeholder": "Person, topic or keyword …",
"submit": "Search",
"results": "Results for “{q}”",
"none": "No results.",
"from": "From",
"to": "To",
"title": "Search",
"intro": "Search people, topics and keywords across all facts and documents – or enter only a date range to see everything that happened in that period.",
"label": "Search term",
"inTime": "Facts from {range}",
"tips": "Tip: enter only a date or a date range (no search term) to see all facts from that time.",
"details": "View fact"
},
"Persons": {
"title": "People",
"filterParty": "Party",
"filterLevel": "Level",
"all": "All",
"none": "No people found.",
"level": {
"eu": "EU",
"federal": "Federal",
"state": "State",
"district": "District",
"municipal": "Municipal",
"party": "Party",
"other": "Other"
},
"filterStatus": "Status",
"statusValue": {
"active": "Active",
"former": "Former",
"party_member": "No current office (party member)",
"deceased": "Deceased",
"all": "All"
},
"lastOffice": "Last office until {date}",
"intro": "MPs, members of government, state and municipal politicians, and party officials.",
"name": "Name",
"namePlaceholder": "e.g. last name",
"unverifiedStatus": "Current office only according to Wikidata – not officially confirmed",
"roleMp": "Member of parliament"
},
"Person": {
"roles": "Offices & mandates",
"since": "since {date}",
"period": "{from} – {to}",
"tabs": {
"overview": "Overview",
"votes": "Votes",
"statements": "Statements & speeches",
"money": "Money & network",
"media": "Media & career",
"legal": "Legal",
"timeline": "Timeline",
"travel": "Travel & meetings",
"social": "Social media"
},
"factionVoteNote": "The National Council mostly votes by standing up; then only each faction's vote is recorded. For roll-call votes we show the person's own vote – and whether it differs from their faction.",
"roleCorroborated": "corroborated",
"unverified": "per Wikidata – not officially confirmed",
"accountUnverified": "According to Wikidata – not officially confirmed",
"metaDescription": "{name}: offices, votes, money, statements and media reports – every fact with its source.",
"member": "Member",
"born": "born {date}",
"died": "died {date}",
"elsewhere": "Profiles and channels",
"parliamentProfile": "Parliament",
"epProfile": "European Parliament",
"sections": "Sections",
"career": "Career",
"latest": "Latest facts",
"allClaims": "All facts",
"glanceTitle": "At a glance",
"glance": {
"votes": "votes",
"statements": "speeches & statements",
"questions": "questions",
"appearances": "appointments & trips",
"sideJobs": "side jobs",
"media": "media reports"
},
"moneyClaims": "Money-related facts",
"legalNote": "Proceedings are shown with their stage; automatically detected ones appear only after editorial review. The presumption of innocence applies.",
"datePrecision": "For trips and meetings the date is often the publication date of the source."
},
"Parties": {
"title": "Parties",
"activeOfficials": "{count, plural, one {# active official} other {# active officials}}",
"members": "Current officials",
"year": "Year",
"voteStats": "Voting record",
"recentVotes": "Recent votes",
"claims": "Sourced claims",
"formerMembers": "Former members – what are they doing now?",
"dissent": "Votes against own faction (roll calls)",
"money": "Money by year and kind",
"allMoney": "All money flows",
"finance": "Annual financial reports (Court of Audit)",
"income": "Income",
"expenses": "Expenses",
"related": "Affiliated organisations & holdings",
"relation": {
"affiliation": "affiliated",
"ownership": "holding"
},
"channels": "Channels of the party and its members",
"allPosts": "All posts",
"intro": "Parties with their current officials, votes, finances and affiliated organisations.",
"tracked": "{count, plural, one {# person tracked} other {# people tracked}}",
"statOfficials": "current officials",
"statFormer": "former members",
"statVotes": "faction votes recorded",
"statDissent": "members who voted against their faction",
"voteStatsNote": "The faction's positions in all recorded votes.",
"noMoney": "No money flows recorded.",
"allMembers": "Show all {count}",
"relatedNote": "According to the party's annual report.",
"allFormer": "All former members",
"lastMention": "last in the news {date}",
"dissentCount": "{count, plural, one {# dissenting vote} other {# dissenting votes}}"
},
"Votes": {
"title": "Votes",
"accepted": "accepted",
"rejected": "rejected",
"for": "for",
"against": "against",
"abstain": "abstained",
"absent": "absent",
"protocol": "Transcript",
"item": "Item",
"rollCall": "roll-call vote",
"dissent": "against own faction",
"ownVote": "own vote",
"individualVotes": "Individual votes",
"onlyRollCall": "Roll-call votes only",
"splitVote": "Split vote – see transcript",
"spoke": "Spoke on this",
"speech": "Speech",
"intro": "How the factions voted in the Nationalrat and Bundesrat – and, in roll-call votes, every individual vote.",
"none": "No votes found.",
"legend": "Legend",
"factionVoteOf": "vote of the {faction} faction",
"vote": "Vote",
"factions": "Factions",
"factionOnly": "The record shows how each faction voted, not individual MPs.",
"dissentSummary": "{count, plural, one {# member voted} other {# members voted}} against their faction.",
"protocolText": "Wording in the record",
"filteredParty": "Filtered by party: {party}"
},
"Claims": {
"sources": "{count, plural, one {# source} other {# sources}}",
"status": {
"reported": "single source",
"corroborated": "corroborated",
"disputed": "disputed",
"retracted": "retracted"
},
"innocence": "The presumption of innocence applies.",
"mentions": "mentions",
"contradicts": "contradicts",
"none": "No claims match your source and topic filters.",
"type": {
"role": "Office",
"vote": "Vote",
"donation": "Donation",
"money_flow": "Money flow",
"statement": "Statement",
"appearance": "Appearance",
"meeting": "Meeting",
"travel": "Travel",
"side_job": "Side job",
"legal_proceeding": "Proceedings",
"lobbying": "Lobbying",
"media_mention": "Media report",
"other": "Other",
"career": "Career",
"parliamentary_question": "Parliamentary question",
"government_decision": "Council of Ministers",
"wiki_edit": "Wikipedia edit",
"declaration": "Declaration",
"ownership": "Holding",
"affiliation": "Affiliation",
"party_finance": "Party finances"
},
"corroboratedBy": "confirmed by {count} independent sources",
"legalStage": {
"allegation_reported": "Allegation reported",
"investigation": "Investigation",
"immunity_waiver_requested": "Request to lift immunity",
"immunity_waived": "Immunity lifted",
"immunity_refused": "Request to lift immunity refused",
"indicted": "Indicted",
"trial": "Trial",
"convicted_not_final": "Convicted (not final)",
"convicted_final": "Final conviction",
"acquitted": "Acquitted",
"proceedings_dropped": "Proceedings dropped",
"diversion": "Diversion (no conviction)"
},
"pending": "Not yet reviewed",
"evidence": "{count, plural, one {# source} other {# sources}}",
"permalink": "Permalink",
"permalinkHint": "This fact's own page – for sharing and citing",
"archived": "archived copy"
},
"Settings": {
"title": "My filters",
"intro": "Choose which sources you trust and which topics you care about. Settings are only stored in a cookie in your browser.",
"sources": "Sources",
"topics": "Topics",
"topicsHint": "No selection = all topics.",
"minTrust": "Minimum trust score",
"save": "Save",
"saved": "Saved.",
"reset": "Reset",
"kind": {
"official": "Official",
"ngo": "NGO",
"media": "Media",
"social": "Social media",
"aggregator": "Databases",
"user": "Community",
"derived": "Derived"
},
"sourcesHint": "Sources you switch off are hidden everywhere. The number is the default trust score (0–100).",
"trust": "Trust score"
},
"Method": {
"title": "Method & sources",
"p1": "Every item on Politrack is a claim backed by at least one piece of evidence. When several independent sources confirm the same claim it is marked corroborated; if a source contradicts it, it is marked disputed.",
"p2": "We prefer official open data (Parliament, Court of Audit, RTR, RIS). News media are only processed through the RSS feeds publishers offer: we store headline, teaser and link, never the article text. Sites that reserve text and data mining are analysed by headline only.",
"p3": "For criminal matters we always show the procedural stage. The presumption of innocence applies until a final conviction.",
"license": "Licence",
"access": "Access",
"trust": "Trust",
"intro": "How Politrack collects, checks and presents facts.",
"toc": "Contents",
"section": {
"claims": "Facts and sources",
"certainty": "How certain a fact is",
"legal": "Legal proceedings",
"sources": "Sources",
"notCollected": "What we don't collect",
"data": "Data for developers and AI agents",
"corrections": "Corrections"
},
"certaintyIntro": "These labels mean the same everywhere on Politrack:",
"reported": "One source reports the fact.",
"corroborated": "Several independent sources confirm the fact.",
"disputed": "At least one source contradicts it – both sides are linked.",
"activeVerified": "Current office confirmed by the Austrian or European Parliament.",
"activeUnverified": "Current office only according to Wikidata, not officially confirmed.",
"accountUnverified": "Social media account only according to Wikidata, not confirmed by an official source.",
"stage": {
"allegation_reported": "A media outlet or another source reports an allegation; no proceedings are known.",
"investigation": "Prosecutors or police are investigating. This says nothing about guilt – many investigations are dropped.",
"immunity_waiver_requested": "An authority asks parliament to lift immunity so it can investigate.",
"immunity_waived": "Parliament has lifted immunity; this allows an investigation and is not an indictment.",
"immunity_refused": "Parliament has refused to lift immunity.",
"indicted": "Prosecutors have brought charges; a court will decide.",
"trial": "The trial is ongoing.",
"convicted_not_final": "A court has convicted, but the judgment is not final (an appeal is possible).",
"convicted_final": "Final conviction – the proceedings are closed.",
"acquitted": "The court has acquitted.",
"proceedings_dropped": "The proceedings were dropped.",
"diversion": "Settled without a conviction (e.g. a fine or community service); no finding of guilt, no criminal record."
},
"sourcesIntro": "All sources with their licence, access method and default trust score. Under “My filters” you can hide individual sources or set a minimum score.",
"source": "Source",
"kind": "Kind",
"notCollected": "We don't get around paywalls, logins or technical barriers, and we respect robots.txt and terms of use. From media we store only the headline, teaser and link.",
"data": "The operators of this instance also provide the data in machine-readable form: a REST API with OpenAPI documentation, an MCP server for AI agents and read access to the database. Every fact comes with the same sources as here.",
"corrections": "Found a mistake? We correct wrong facts, mark contradicted ones as disputed and never delete anything silently. Please quote the fact's number (see its permalink) and a source for the correction."
},
"Common": {
"loadError": "The data could not be loaded. Please try again in a moment.",
"notFound": "This page doesn't exist (any more). The search may help.",
"home": "Home",
"persons": "People",
"search": "Search",
"breadcrumb": "Breadcrumb",
"filters": "Filters",
"apply": "Apply",
"reset": "Reset",
"previous": "Previous",
"next": "Next",
"page": "Page {page}",
"pagination": "Pages",
"newTab": "opens in a new tab",
"loading": "Loading …",
"retry": "Try again",
"errorTitle": "Something went wrong",
"notFoundTitle": "Page not found"
},
"Timeline": {
"from": "From",
"to": "To",
"apply": "Show",
"histogram": "Activity per month",
"hint": "Click a month to show only that period."
},
"Calendar": {
"title": "Calendar",
"intro": "Sessions, committees, trips, meetings and appearances – with sources.",
"prev": "Previous month",
"next": "Next month",
"person": "Person",
"none": "No events in this period.",
"activity": "{count} claims",
"kind": {
"parliament_session": "Plenary session",
"committee": "Committee",
"press_conference": "Press conference",
"foreign_trip": "Trip",
"meeting": "Meeting",
"tv_appearance": "TV appearance",
"interview": "Interview",
"party_event": "Party event",
"public_event": "Event",
"other": "Other",
"hearing": "Hearing (inquiry committee)",
"government_meeting": "Council of Ministers"
},
"datePrecision": "Date = publication date of the source",
"today": "Today",
"personPlaceholder": "Name",
"kindLabel": "Kind",
"allKinds": "All kinds",
"legend": "Legend",
"group": {
"parliament": "Parliament",
"government": "Government",
"travel": "Trips & meetings",
"public": "Public appearances"
},
"more": "+{count} more",
"activityHint": "All facts from this day"
},
"Former": {
"title": "What are former politicians up to?",
"intro": "Former office holders – sorted by most recent news coverage.",
"lastRole": "Last: {role}",
"latestNews": "Latest coverage",
"career": "Career",
"none": "No former politicians found."
},
"ClaimDetails": {
"with": "with",
"reference": "Ref.",
"article": "Article",
"fileNumber": "File no.",
"financeDetails": "Annual report {year} details",
"metric": {
"likes": "likes",
"reposts": "reposts",
"favourites": "favourites",
"reblogs": "boosts",
"views": "views"
}
},
"Money": {
"title": "Money",
"intro": "Donations to parties, public contracts, government advertising, media subsidies, party funding and political ads – from official registers, every row with its source.",
"none": "No money flows found.",
"date": "Date",
"kindLabel": "Kind",
"payer": "From",
"payee": "To",
"amount": "Amount",
"sources": "Sources",
"allKinds": "All kinds",
"searchPlaceholder": "Name, company …",
"from": "From",
"to": "To",
"minAmount": "min. €",
"filteredBy": "Filtered by",
"personNote": "organisations connected to the person",
"reset": "Reset filter",
"topPayers": "Largest payers",
"topPayees": "Largest recipients",
"sourcesNote": "Sources: Court of Audit (donations, annual reports), data.gv.at procurement core data (contracts), RTR media transparency (ads, subsidies), Google/Meta ad libraries (political ads). Amounts as reported.",
"kind": {
"donation": "Donation",
"contract": "Public contract",
"government_ad": "Government ad",
"political_ad": "Political ad",
"subsidy": "Subsidy",
"party_funding": "Party funding",
"party_ad": "Ad (party)",
"loan": "Loan",
"side_income": "Side income",
"sponsorship": "Sponsorship",
"other": "Other"
},
"flows": "Individual money flows",
"nameLabel": "Name",
"asReported": "Amounts as reported."
},
"Organizations": {
"title": "Organisations",
"intro": "Companies, associations, authorities, media and lobby groups found in the sources – with money flows and connections to politicians.",
"searchPlaceholder": "Name …",
"kindLabel": "Kind",
"all": "All",
"none": "No organisations found.",
"name": "Name",
"paid": "paid",
"received": "received",
"paid_to": "paid",
"received_from": "received from",
"partOf": "Part of",
"moneyOverview": "Money flows",
"counterparties": "Main counterparties",
"people": "Connected people",
"connectionNote": "A connection (side job, career, meeting) is not an accusation.",
"flows": "Individual money flows",
"allFlows": "All money flows",
"claims": "Sourced claims",
"identifier": {
"wikidata": "Wikidata",
"firmenbuch": "Company register",
"uid": "VAT ID",
"eu_transparency": "EU Transparency Register",
"rtr": "RTR",
"google_advertiser": "Google advertiser",
"facebook_page": "Facebook page",
"other": "Identifier"
},
"kind": {
"party": "Party",
"parliamentary_group": "Parliamentary group",
"parliament": "Parliament",
"government": "Government",
"ministry": "Ministry",
"state_government": "State government",
"municipality": "Municipality",
"public_body": "Public body",
"company": "Company",
"ngo": "NGO / association",
"media": "Media",
"lobby": "Lobby group",
"court": "Court",
"authority": "Authority",
"eu_institution": "EU institution",
"other": "Other"
},
"receivedTotal": "received (total)",
"paidTotal": "paid (total)",
"counterpartyCount": "counterparties",
"receivedFromTitle": "Received money from",
"paidToTitle": "Paid to",
"noMoney": "No money flows recorded.",
"identifiers": "Identifiers"
},
"Network": {
"title": "Network: connected organisations",
"note": "Organisations the person is connected to according to the sources, and money those organisations paid or received. A connection is not an accusation.",
"flows": "Money flows of these organisations",
"allFlows": "All money flows",
"paid": "paid",
"received": "received",
"via": {
"side_job": "side job",
"career": "career",
"meeting": "meeting",
"role": "office",
"lobbying": "lobbying",
"party": "party"
},
"organization": "Organisation",
"connection": "Connection",
"money": "This organisation's money"
},
"Social": {
"title": "Social media",
"intro": "Public posts by politicians and parties on Bluesky, Mastodon, public Telegram channels and YouTube.",
"none": "No posts.",
"original": "View original",
"unverified": "account unconfirmed",
"unverifiedHint": "The account comes from Wikidata and was not confirmed by an official page.",
"platform": "Platform",
"allPlatforms": "All platforms",
"party": "Party",
"allParties": "All parties",
"policy": "X/Twitter only via the official API, Facebook/Instagram not at all (terms of service). WhatsApp and Signal groups and private Telegram groups are never collected."
},
"WikiEdits": {
"title": "Wikipedia edits from parliament and government",
"intro": "Anonymous Wikipedia edits from IP addresses assigned to parliament or the federal government.",
"none": "No edits found.",
"date": "Date",
"network": "Network",
"article": "Article",
"change": "Change",
"note": "An edit from a network says nothing about which person made it.",
"ranges": "The IP ranges are listed in config/ip_ranges.yaml in the source code."
},
"Layout": {
"skip": "Skip to content",
"homeLabel": "Politrack – home",
"mainNav": "Main navigation",
"footerNav": "Site map",
"more": "More",
"menu": "Menu",
"searchLabel": "Search",
"searchPlaceholder": "Search …",
"filtersActive": "My filters: {count} active",
"themeLabel": "Colour scheme: {current} – switch to {next}",
"theme": {
"system": "system",
"light": "light",
"dark": "dark"
},
"group": {
"people": "People",
"decisions": "Decisions",
"influence": "Money & influence",
"about": "About Politrack"
}
},
"Footer": {
"tagline": "Austrian politics, sourced. An independent project that collects public information on politicians and parties – every fact with its source.",
"principleEvidence": "Every fact with its source",
"principleInnocence": "Presumption of innocence",
"principlePrivacy": "No ads, no tracking",
"developers": "Data, API & AI agents",
"bottom": "No liability for the data. Every fact links to its sources, which are authoritative."
},
"ClaimPage": {
"crumb": "Fact #{id}",
"cite": "Cite",
"citation": "Politrack: “{summary}”. Fact #{id}, retrieved {date}. {url}",
"filtersIgnored": "This page shows the fact with all its sources – regardless of your filters, so a shared link looks the same for everyone."
}
}