spb/countryatlas
Public
TypeScript 57%
Python 38.6%
JavaScript 3.6%
CSS 0.6%
1/**2 * Strings for the platform features: Data Stories, download builder, API explorer, provenance panel 2.0,3 * data quality, /updates, share cards. Merged into `en.ts`. Owned by the "platform" stream.4 */5export const enPlatform = {6 // --- share cards7 'og.sub': 'The interactive data atlas of the world — every number traceable to its source.',8 'og.countries': 'Countries',9 'og.indicators': 'Indicators',10 'og.observations': 'Observations',11 'og.sources': 'Sources',1213 // --- stories14 'stories.title': 'Data stories',15 'stories.description': 'Interactive stories generated from the CountryAtlas datasets — every chart deterministic, every number sourced.',16 'stories.sub': 'Long-run narratives built entirely from the atlas: the charts are live, the numbers are computed from the same data, nothing is written by a model.',17 'stories.eyebrow': 'Story',18 'stories.read': 'Read the story',19 'stories.minutes': '{n} min read',20 'stories.charts': '{n} charts',21 'stories.indicators': 'Indicators used',22 'stories.indicatorsN': '{n} indicators used',23 'stories.indicatorsOne': '1 indicator used',24 'stories.sources': 'Sources',25 'stories.sourcesNote': 'Every figure on this page is computed from the CountryAtlas snapshot {run} (built {date}). Values carry the licence of their source; the compilation is CC BY 4.0.',26 'stories.method': 'How this story is built',27 'stories.methodText': 'A story is a declarative template: a list of blocks (world map by year, aggregate trend, country lines, a ranking) bound to indicators. Sentences are templates filled with numbers computed server-side from exactly the payloads charted below; when a value is missing the sentence is omitted rather than guessed.',28 'stories.more': 'More stories',29 'stories.notFound': 'Unknown story',30 'stories.frame.year': 'Year',31 'stories.block.map': 'World map',32 'stories.block.trend': 'Trend',33 'stories.block.lines': 'Selected countries',34 'stories.block.ranked': 'Ranking, {year}',35 'stories.block.mapHint': 'Drag the year slider or press play. Hatched = no data.',36 'stories.block.trendNote': '{kind} across {n} countries per year, computed by CountryAtlas from country values.',37 'stories.explore': 'Explore this indicator',38 'stories.openRanking': 'Full ranking',39 'stories.compare': 'Compare these countries',40 'stories.unavailable': 'This block could not be computed from the current snapshot.',41 'stories.kind.weighted_mean': 'Population-weighted mean',42 'stories.kind.median': 'Median',43 'stories.kind.sum': 'Sum',44 'stories.kind.mean': 'Mean',4546 // --- download builder47 'download.title': 'Download data',48 'download.description': 'Build a dataset: pick countries, indicators, years and a format. Every row carries its source, series code, retrieval date and licence.',49 'download.sub': 'Build your own extract, or grab a whole country or indicator in one click. Every row carries provenance columns.',50 'download.builder.title': 'Dataset builder',51 'download.builder.sub': 'Up to 20 countries × 20 indicators, all years or a range, CSV or JSON.',52 'download.countries': 'Countries',53 'download.indicators': 'Indicators',54 'download.addCountry': 'Add a country…',55 'download.addIndicator': 'Add an indicator',56 'download.years': 'Years',57 'download.from': 'From',58 'download.to': 'To',59 'download.allYears': 'All years',60 'download.format': 'Format',61 'download.forecast': 'Include projections',62 'download.estimate': 'About {n} rows',63 'download.estimating': 'Estimating…',64 'download.estimateNote': 'Estimate from the annual series; monthly and quarterly series add rows.',65 'download.selection': '{c} countries · {i} indicators',66 'download.needBoth': 'Pick at least one country and one indicator.',67 'download.max': 'Maximum of {n}.',68 'download.get': 'Download {fmt}',69 'download.url': 'Direct URL',70 'download.copyUrl': 'Copy URL',71 'download.remove': 'Remove {name}',72 'download.clear': 'Clear',73 'download.presetHint': 'Quick starts',74 'download.preset.g7': 'G7 headline indicators',75 'download.preset.brics': 'BRICS economy',76 'download.preset.climate': 'Top emitters, climate',77 'download.quick.title': 'One-click datasets',78 'download.quick.sub': 'A whole country (all indicators, all years) or a whole indicator (all countries, all years).',79 'download.quick.country': 'Per-country dataset',80 'download.quick.countrySub': 'All indicators, all years, for one country.',81 'download.quick.indicator': 'Per-indicator dataset',82 'download.quick.indicatorSub': 'All countries, all years, for one indicator.',83 'download.bulk.title': 'Bulk data',84 'download.bulk.sub': 'How to get everything.',85 'download.bulk.text':86 'There is no single archive yet. The fastest way to the whole snapshot is the API: list indicators with /api/v1/indicators, then fetch /api/v1/indicators/{slug}/download.csv for each. Please keep to the rate limit (120 requests per minute) and cache locally; the snapshot changes once a day at most. For a full copy of the database, write to the address below.',87 'download.columns.title': 'Columns',88 'download.columns.sub': 'The same columns in every export. CSV files start with one comment line naming the snapshot.',89 'download.licence.title': 'Licence & attribution',90 'download.licence.sub': 'Please credit the original sources, not only CountryAtlas.',91 'download.licence.compilation': 'The CountryAtlas compilation (harmonised series, derived metrics, rankings, change detection) is released under CC BY 4.0.',92 'download.licence.sources': 'Each observation carries its source licence in the export (column licence). Check it before redistributing: most sources are CC BY 4.0, but the WHO Global Health Observatory is CC BY-NC-SA 3.0 IGO (no commercial use, share alike) and some portals apply their own terms.',93 'download.licence.example': 'Suggested attribution',94 'download.licence.exampleText': 'Data: {sources} via CountryAtlas (countryatlas.co), CC BY 4.0 compilation. Retrieved {date}.',95 'download.licence.source': 'Source',96 'download.licence.licence': 'Licence',97 'download.licence.attribution': 'Attribution',98 'download.snapshot': 'Current snapshot {run}, built {date}.',99 'download.api.title': 'API',100 'download.api.sub': 'Programmatic access to everything on the site.',101 'download.api.text': 'Every page is built from the public JSON API. Base URL {base}. Read the endpoint list and try requests live on the API page.',102 'download.api.link': 'API documentation',103104 // --- api page105 'apiPage.version': 'API {v}',106 'apiPage.explorer.title': 'Try it live',107 'apiPage.explorer.sub': 'Pick an endpoint, fill the parameters, run it against the current snapshot. Copy the request as curl, JavaScript or Python.',108 'apiPage.explorer.endpoint': 'Endpoint',109 'apiPage.explorer.params': 'Parameters',110 'apiPage.explorer.run': 'Run request',111 'apiPage.explorer.running': 'Running…',112 'apiPage.explorer.response': 'Response',113 'apiPage.explorer.status': 'HTTP {status} · {ms} ms · {size}',114 'apiPage.explorer.truncated': 'Response truncated for display ({n} characters shown).',115 'apiPage.explorer.error': 'The request failed: {msg}',116 'apiPage.explorer.copy.curl': 'curl',117 'apiPage.explorer.copy.js': 'JavaScript',118 'apiPage.explorer.copy.py': 'Python',119 'apiPage.explorer.request': 'Request',120 'apiPage.explorer.optional': 'optional',121 'apiPage.explorer.required': 'required',122 'apiPage.explorer.pathParam': 'Path parameter',123 'apiPage.new.title': 'New in API 1.1',124 'apiPage.new.sub': 'Additive, read-only analytics endpoints. Existing endpoints are unchanged.',125 'apiPage.group.countries': 'Countries',126 'apiPage.group.indicators': 'Indicators',127 'apiPage.group.rankings': 'Rankings & comparisons',128 'apiPage.group.analytics': 'Analytics (1.1)',129 'apiPage.group.reference': 'Reference',130 'apiPage.ep.pulse': 'World Pulse: what is changing globally, latest year vs previous.',131 'apiPage.ep.movers': 'Biggest movers by window (1 / 5 / 10 years), category and kind.',132 'apiPage.ep.extremes': 'Curated extremes facets: fastest ageing, urbanising, digital adoption…',133 'apiPage.ep.scatter': 'Cross-section scatter with Pearson, Spearman and OLS (descriptive).',134 'apiPage.ep.trajectory': 'Gapminder-style frames: x, y, size per country per year.',135 'apiPage.ep.finder': 'Structured country finder over latest values (AND / OR filters).',136 'apiPage.ep.peers': 'Above / below expected: robust cross-sectional fit and residuals.',137 'apiPage.ep.related': 'Statistically related indicators (correlation, n, period).',138 'apiPage.ep.distribution': 'Histogram, world / region / income medians, percentile of a country.',139 'apiPage.ep.frames': 'Multi-year map frames with a stable legend (time machine).',140 'apiPage.ep.indicatorQuality': 'Coverage, freshness and continuity summary for an indicator.',141 'apiPage.ep.race': 'Rank race frames: top N per year.',142 'apiPage.ep.regionsCompare': 'Group vs group aggregates and history.',143 'apiPage.ep.story': '"How X changed": long-run indicators with templated text.',144 'apiPage.ep.countryQuality': 'Per-indicator data quality for one country.',145 'apiPage.ep.updates': 'Freshness dashboard: sources, runs, changed values.',146 'apiPage.ep.download': 'Compare bundle download (CSV or JSON).',147148 // --- provenance panel 2.0149 'prov.country': 'Country',150 'prov.period': 'Period',151 'prov.quality': 'Data quality',152 'prov.copyApi': 'API',153 'prov.copiedApi': 'API URL copied',154 'prov.apiHint': 'Copies the exact API request for this series and opens the API documentation.',155 'prov.downloadSeries': 'Download series',156 'prov.years': 'Years',157 'prov.pointsN': '{n} points',158 'prov.status.forecastNote': 'Projection published by the source; never used in rankings or change detection.',159 'prov.definition': 'Definition',160 'prov.noValue': 'No observation for this selection.',161162 // --- quality badges163 'quality.fresh': 'Fresh',164 'quality.historical': 'Historical',165 'quality.sparse': 'Sparse',166 'quality.limited-coverage': 'Limited coverage',167 'quality.stale': 'Stale',168 'quality.flagged': 'Flagged',169 'quality.forecast': 'Projections',170 'quality.hint.fresh': 'Latest observation within a year of the reference year.',171 'quality.hint.historical': 'Series starts in 1970 or earlier.',172 'quality.hint.sparse': 'Fewer than 10 points per country in the median.',173 'quality.hint.limited-coverage': 'Fewer than half of the countries report this indicator.',174 'quality.hint.stale': 'Latest observation three or more years behind the reference year.',175 'quality.hint.flagged': 'More than 5 % of values carry a validation warning.',176 'quality.hint.forecast': 'The chosen source publishes projections for this series.',177 'quality.title': 'Data quality',178 'quality.latestYear': 'Latest year',179 'quality.firstYear': 'First year',180 'quality.points': 'Points',181 'quality.missing': 'Missing years',182 'quality.continuity': 'Continuity',183 'quality.coverage': 'Coverage',184 'quality.source': 'Primary source',185 'quality.noScore': 'Badges describe coverage and freshness; CountryAtlas does not compute an overall quality score.',186187 // --- updates dashboard188 'updates.title': 'Data updates',189 'updates.description': 'When each source was last imported, what changed in the current snapshot, and which indicators moved.',190 'updates.sub': 'Freshness of every source, the last import runs and the values that changed in the current snapshot.',191 'updates.snapshot.title': 'Current snapshot',192 'updates.snapshot.built': 'Built',193 'updates.snapshot.run': 'Run',194 'updates.snapshot.observations': 'Observations',195 'updates.snapshot.indicators': 'Indicators',196 'updates.snapshot.countries': 'Countries',197 'updates.snapshot.changed': 'Values changed',198 'updates.snapshot.changedHint': 'Observations whose value or source differs from the previous snapshot.',199 'updates.sources.title': 'Sources',200 'updates.sources.sub': 'One row per data source. Status reflects the last import attempt and the age of the source vintage.',201 'updates.col.source': 'Source',202 'updates.col.status': 'Status',203 'updates.col.lastImport': 'Last import',204 'updates.col.vintage': 'Source vintage',205 'updates.col.datasets': 'Datasets',206 'updates.col.indicators': 'Indicators',207 'updates.col.observations': 'Observations',208 'updates.col.latestYear': 'Latest year',209 'updates.col.changed': 'Changed',210 'updates.col.countries': 'Countries affected',211 'updates.status.ok': 'OK',212 'updates.status.partial': 'Partial',213 'updates.status.failed': 'Failed',214 'updates.status.stale': 'Stale',215 'updates.status.unknown': 'Unknown',216 'updates.runs.title': 'Recent import runs',217 'updates.runs.sub': 'Latest attempts per series, most recent first.',218 'updates.col.dataset': 'Dataset → indicator',219 'updates.col.started': 'Started',220 'updates.col.rows': 'Rows',221 'updates.col.warnings': 'Warnings',222 'updates.col.errors': 'Errors',223 'updates.col.message': 'Message',224 'updates.indicators.title': 'Recently updated indicators',225 'updates.indicators.sub': 'Ordered by the vintage the source advertises.',226 'updates.schedule': 'The pipeline refreshes every source daily; a new snapshot is published only when validation passes.',227 'updates.none': 'No import run recorded yet.',228 'updates.unavailable': 'The updates feed is not available in this snapshot.',229230 // --- data page redirect231 'data.redirect': 'Redirecting to the download builder…',232} as const;233