SPB Git forge

spb/countryatlas

Public
20commits 1branches 0releases
268.3 MBsize
maindefault branch
12 days agolast push
TypeScript 57% Python 38.6% JavaScript 3.6% CSS 0.6%
13.2 KB · 233 lines typescript
Raw Blame History
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