spb/countryatlas
Public
TypeScript 57%
Python 38.6%
JavaScript 3.6%
CSS 0.6%
1/**2 * English UI dictionary. Every visible string in a component goes through `t()` (src/i18n/index.ts).3 * Placeholders use `{name}`. Keys are flat, dot-namespaced; add new sections at the end of the block4 * they belong to so diffs stay readable.5 */6import { enCompare } from './en.compare';7import { enCore } from './en.core';8import { enExplore } from './en.explore';9import { enFlagship } from './en.flagship';10import { enPlatform } from './en.platform';1112export const en = {13 // --- site14 'site.name': 'CountryAtlas',15 'site.tagline': 'Explore the world through data.',16 'site.description':17 'The interactive data atlas of the world: 218 countries and territories, 260+ indicators, 2 million observations across economy, population, health, energy, climate and more — every number traceable to its source.',18 'site.skip': 'Skip to content',19 'site.licence':20 'Data: World Bank, IMF, OECD, Eurostat, WHO, Our World in Data, BIS, ILO — CC BY 4.0 where applicable. Each value links to its source.',21 'site.footer.made': 'CountryAtlas is an independent, non-commercial data project.',22 'site.footer.sources': 'Sources',23 'site.footer.methodology': 'Methodology',24 'site.footer.api': 'API',25 'site.footer.data': 'Data downloads',26 'site.footer.about': 'About',27 'site.footer.explore': 'Explore',28 'site.footer.reference': 'Reference',29 'site.footer.refreshed': 'Data refreshed {date}',30 'site.footer.build': 'Snapshot {run}',31 'site.footer.madeBy': 'Made by',32 'site.footer.author': 'Simon-Pierre Boucher',33 'site.footer.contact': 'contact@spboucher.ai',34 'site.footer.hostedOn': 'Hosted on',35 'site.footer.host': 'MacLustr',36 'site.footer.credits': 'Credits',37 'site.footer.changes': 'Recent changes',38 'site.footer.explorePage': 'Explore',39 'brand.logoAlt': 'CountryAtlas logo',40 'brand.home': 'CountryAtlas — home',4142 // --- navigation43 'nav.home': 'Home',44 'nav.countries': 'Countries',45 'nav.compare': 'Compare',46 'nav.rankings': 'Rankings',47 'nav.indicators': 'Indicators',48 'nav.regions': 'Regions',49 'nav.data': 'Data',50 'nav.search': 'Search',51 'nav.menu': 'Menu',52 'nav.primary': 'Primary',53 'nav.close': 'Close',5455 // --- theme56 'theme.toggle': 'Toggle colour theme',57 'theme.light': 'Light',58 'theme.dark': 'Dark',59 'theme.system': 'System',6061 // --- search62 'search.placeholder': 'Search countries, indicators, topics…',63 'search.placeholder.short': 'Search…',64 'search.hint': 'Type to search. ↑↓ to navigate, ↵ to open, esc to close.',65 'search.recent': 'Recent',66 'search.clear': 'Clear',67 'search.empty': 'No results for “{q}”.',68 'search.error': 'Search is unavailable right now.',69 'search.loading': 'Searching…',70 'search.shortcut': '⌘K',71 'search.open': 'Open search',72 'search.type.country': 'Country',73 'search.type.indicator': 'Indicator',74 'search.type.topic': 'Topic',75 'search.type.region': 'Region',76 'search.type.source': 'Source',77 'search.results': '{n} results',78 'search.start': 'Start typing to search 218 countries and 260 indicators.',7980 // --- common81 'common.noData': 'No data',82 'common.other': 'Other',83 'common.noDataLong': 'No data available',84 'common.loading': 'Loading…',85 'common.seeAll': 'See all',86 'common.seeFullRanking': 'See full ranking',87 'common.more': 'More',88 'common.less': 'Less',89 'common.compare': 'Compare',90 'common.ranking': 'Ranking',91 'common.download': 'Download',92 'common.downloadCsv': 'Download CSV',93 'common.share': 'Share',94 'common.copied': 'Link copied',95 'common.copyLink': 'Copy link',96 'common.close': 'Close',97 'common.of': 'of',98 'common.and': 'and',99 'common.vs': 'vs {period}',100 'common.source': 'Source',101 'common.retrieved': 'retrieved {date}',102 'common.forecast': 'forecast',103 'common.estimate': 'estimate',104 'common.viewTable': 'View data as table',105 'common.hideTable': 'Hide data table',106 'common.showMore': 'Show {n} more',107 'common.back': 'Back',108 'common.year': 'Year',109 'common.value': 'Value',110 'common.country': 'Country',111 'common.indicator': 'Indicator',112 'common.period': 'Period',113 'common.change': 'Change',114 'common.rank': 'Rank',115 'common.world': 'World',116 'common.region': 'Region',117 'common.income': 'Income group',118 'common.all': 'All',119 'common.filters': 'Filters',120 'common.reset': 'Reset',121 'common.apply': 'Apply',122 'common.sortBy': 'Sort by',123 'common.name': 'Name',124 'common.population': 'Population',125 'common.gdpPerCapita': 'GDP per capita',126 'common.gdp': 'GDP',127 'common.coverage': 'Coverage',128 'common.na': '—',129 'common.up': 'up',130 'common.down': 'down',131 'common.flat': 'unchanged',132 'common.log': 'Log scale',133 'common.linear': 'Linear',134 'common.legend': 'Legend',135 'common.why': 'Why?',136 'common.openProvenance': 'Show source and provenance',137 'common.new': 'New',138 'common.updated': 'Updated',139 'common.notBuilt': 'Data is being prepared',140 'common.notBuiltHint': 'The first data snapshot is still being built. This page will fill in automatically once it is ready.',141 'common.errorTitle': 'Something went wrong',142 'common.errorHint': 'The data service did not respond. Try again in a moment.',143 'common.retry': 'Try again',144 'common.notFound': 'Page not found',145 'common.notFoundHint': 'We could not find that page. Try the search, or start from the list of countries.',146 'common.goHome': 'Go to the home page',147 'common.browseCountries': 'Browse all countries',148 'common.freshness.fresh': 'Fresh',149 'common.freshness.recent': 'Recent',150 'common.freshness.stale': 'Stale',151 'common.freshness.updated': 'Updated {when}',152 'common.status.verified': 'Verified',153 'common.status.imported': 'Imported',154 'common.status.warning': 'Flagged',155 'common.status.stale': 'Stale',156 'common.status.quarantined': 'Quarantined',157 'common.byline': 'CountryAtlas',158 'common.ago.now': 'just now',159 'common.ago.minutes': '{n} min ago',160 'common.ago.hours': '{n} h ago',161 'common.ago.days': '{n} d ago',162 'common.ago.months': '{n} mo ago',163 'common.ago.years': '{n} y ago',164165 // --- provenance166 'prov.title': 'Provenance',167 'prov.source': 'Source',168 'prov.dataset': 'Dataset',169 'prov.series': 'Series code',170 'prov.observation': 'Observation date',171 'prov.retrieved': 'Retrieved',172 'prov.sourceUpdated': 'Source updated',173 'prov.unit': 'Unit',174 'prov.transform': 'Transformation',175 'prov.methodology': 'Methodology',176 'prov.licence': 'Licence',177 'prov.status': 'Status',178 'prov.openSource': 'Open at source',179 'prov.none': 'No transformation',180 'prov.indicatorPage': 'Indicator page',181 'prov.value': 'Value',182183 // --- metric184 'metric.rankWorld': '{rank} of {n}',185 'metric.rankRegion': '{rank} in {region}',186 'metric.rankYearNote': 'Ranked among {year} values',187 'metric.change': '{change} vs {period}',188 'metric.history': 'History',189 'metric.open': 'Open {name}',190191 // --- chart192 'chart.summary.rose': '{subject} rose from {from} in {y0} to {to} in {y1}.',193 'chart.summary.fell': '{subject} fell from {from} in {y0} to {to} in {y1}.',194 'chart.summary.flat': '{subject} was {from} in {y0} and {to} in {y1}.',195 'chart.summary.multi': '{n} series from {y0} to {y1}: {names}.',196 'chart.summary.bars': 'Ranked bars: {top} leads with {value}; {n} entries.',197 'chart.summary.map': 'World map of {name} ({year}) for {n} countries, from {min} to {max}.',198 'chart.summary.dna': 'Country DNA fingerprint of {name}: {dims}.',199 'chart.summary.pyramid': 'Population by age group for {name}: {parts}.',200 'chart.summary.scatter': 'Scatter of {y} against {x} for {n} countries.',201 'chart.summary.slope': 'Change from {y0} to {y1} for {n} entries.',202 'chart.noData': 'No data to chart.',203 'chart.forecastNote': 'Dashed segments are projections.',204 'chart.tooltipForecast': 'Projection',205 'chart.legend.noData': 'No data',206 'chart.map.tapHint': 'Tap a country for its value',207 'chart.map.hoverHint': 'Hover a country for its value; click to open it',208 'chart.map.legend': '{name}, {year}',209 'chart.table.caption': 'Data table for the chart above',210 'chart.download': 'Download this series',211 'chart.axisYear': 'Year',212213 // --- home214 'home.hero.title': 'Explore the world through data.',215 'home.hero.sub':216 '218 countries and territories, 260 indicators, two million observations — every number traceable to its source.',217 'home.snapshot.title': 'Global snapshot',218 'home.snapshot.population': 'World population',219 'home.snapshot.gdp': 'World GDP',220 'home.snapshot.lifeExpectancy': 'Median life expectancy',221 'home.snapshot.countries': 'Countries & territories',222 'home.snapshot.indicators': 'Indicators',223 'home.snapshot.observations': 'Observations',224 'home.snapshot.refreshed': 'Refreshed {date}',225 'home.explore.title': 'Explore countries',226 'home.explore.sub': 'Pick a region, or start from the map.',227 'home.explore.mapTitle': 'GDP per capita, PPP',228 'home.explore.allCountries': 'All countries',229 'home.compare.title': 'Compare countries',230 'home.compare.sub': 'Side by side across every indicator.',231 'home.compare.custom': 'Build your own comparison',232 'home.topics.title': 'Major topics',233 'home.topics.sub': '19 topics, 260 indicators.',234 'home.featured.title': 'Featured indicators',235 'home.featured.sub': 'Global trends and this year’s leaders.',236 'home.changes.title': 'Biggest recent changes',237 'home.changes.sub': 'Detected automatically from the latest data — no editorial picks.',238 'home.changes.all': 'All recent changes',239 'home.rankings.economies': 'Largest economies',240 'home.rankings.growth': 'Fastest population growth',241 'home.rankings.life': 'Highest life expectancy',242 'home.rankings.energy': 'Energy transition leaders',243 'home.updated.title': 'Recently updated data',244 'home.updated.sub': 'Datasets refreshed in the latest snapshot.',245 'home.notBuilt': 'The first data snapshot is being built. Countries, rankings and charts appear here as soon as it is ready.',246247 // --- countries directory248 'countries.title': 'Countries',249 'countries.sub': '{n} countries and territories. Filter by region or income group, sort, or jump by letter.',250 'countries.search': 'Filter by name…',251 'countries.count': '{n} of {total}',252 'countries.noMatch': 'No country matches these filters.',253 'countries.sort.name': 'Name',254 'countries.sort.population': 'Population',255 'countries.sort.gdp': 'GDP per capita',256 'countries.sort.coverage': 'Coverage',257 'countries.letterIndex': 'Jump to letter',258 'countries.territory': 'Territory',259 'countries.filters': 'Filters',260 'countries.filtersActive': '{n} active',261 'countries.populationTrend': 'Population trend',262263 // --- country page264 'country.title': '{name} Data & Statistics',265 'country.description':266 '{name}: population, GDP, growth, inflation, unemployment, life expectancy, energy, climate and 250+ more indicators with sources.',267 'country.capital': 'Capital',268 'country.region': 'Region',269 'country.incomeGroup': 'Income group',270 'country.population': 'Population',271 'country.area': 'Area',272 'country.currency': 'Currency',273 'country.refreshed': 'Data refreshed {date}',274 'country.coverage': '{pct} coverage · {n} indicators',275 'country.compare': 'Compare',276 'country.compareWith': 'Compare {name} with another country',277 'country.download': 'Download',278 'country.downloadHint': 'Full dataset (CSV)',279 'country.share': 'Share',280 'country.headline.title': 'At a glance',281 'country.headline.sub': 'Twelve headline indicators, latest available year.',282 'country.changes.title': 'What changed in {name}',283 'country.changes.sub': 'Statistically notable movements in the latest data.',284 'country.changes.none': 'No notable changes detected in the latest snapshot.',285 'country.similar.title': 'Countries similar to {name}',286 'country.similar.sub': 'Nearest peers by standardised distance on the selected dimension.',287 'country.similar.none': 'Not enough data to compute peers.',288 'country.similar.mode.overall': 'Overall',289 'country.similar.mode.economic': 'Economic',290 'country.similar.mode.demographic': 'Demographic',291 'country.similar.mode.energy': 'Energy',292 'country.similar.mode.social': 'Social',293 'country.similar.score': 'Similarity {score}',294 'country.similar.why': 'Why these are similar',295 'country.similar.contrib': '{indicator}: {a} vs {b}',296 'country.dna.title': 'Country DNA',297 'country.dna.sub': 'Percentile rank among all countries on nine dimensions. Descriptive, not a score.',298 'country.dna.none': 'DNA not available for this country yet.',299 'country.facts.title': 'Key facts',300 'country.facts.sub': 'Computed from the data — no model-generated numbers.',301 'country.facts.none': 'No verified insights yet.',302 'country.timeline.title': 'Timeline',303 'country.timeline.sub': 'Records, reversals and turning points across the whole history.',304 'country.timeline.none': 'No events detected.',305 'country.topics.title': 'Explore {name} by topic',306 'country.topics.sub': '{n} topics · {m} indicators with data.',307 'country.topics.count': '{n} indicators',308 'country.topics.withData': '{n} with data',309 'country.landlocked': 'Landlocked',310 'country.unMember': 'UN member',311 'country.borders': 'Borders',312 'country.languages': 'Languages',313 'country.officialName': 'Official name',314 'country.similar.peerOf': 'Peers of {name}',315 'country.notFound': 'Unknown country',316 'country.notFoundHint': 'No country or territory matches “{slug}”. Check the spelling or browse the directory.',317 'country.severity': 'Severity {n}',318 'country.dna.income': 'Income',319 'country.dna.demographics': 'Demographics',320 'country.dna.urbanization': 'Urbanisation',321 'country.dna.trade': 'Trade',322 'country.dna.energy': 'Energy',323 'country.dna.emissions': 'Emissions',324 'country.dna.innovation': 'Innovation',325 'country.dna.education': 'Education',326 'country.dna.public_spending': 'Public spending',327 'country.overview': 'Overview',328329 // --- topic page330 'topic.title': '{country} — {topic}',331 'topic.description': '{topic} indicators for {country}: {list} and more, with full history, ranks and sources.',332 'topic.noData': 'No data available ({n})',333 'topic.noDataHint': 'These indicators exist in the registry but no source reports a value for {country}.',334 'topic.indicators': '{n} indicators',335 'topic.withData': '{n} with data',336 'topic.latest': 'Latest',337 'topic.rankIn': 'Rank',338 'topic.history': 'Full history',339 'topic.compareLink': 'Compare',340 'topic.rankingLink': 'Ranking',341 'topic.indicatorLink': 'Indicator page',342 'topic.otherTopics': 'Other topics',343 'topic.notFound': 'Unknown topic',344 'topic.overview': 'Overview',345 'topic.jump': 'Jump to a subtopic',346 'topic.collapsedHint': 'Latest values — expand for the charts.',347348 // --- collapsible subtopic groups (compare tabs, topic pages)349 'group.count': '{n} indicators',350 'group.expand': 'Show charts',351 'group.collapse': 'Hide charts',352 'group.jump': 'Jump to',353 'group.latestCol': 'Latest',354 'group.yearCol': 'Year',355356 // --- empty state357 'empty.title': 'No data for {indicator} in {country}.',358 'empty.sourcesChecked': 'Sources checked: {sources}.',359 'empty.generic': 'Nothing to show here yet.',360361 // --- data table362 'table.definitionList': 'Table shown as a list on small screens',363 'table.sortAsc': 'Sorted ascending',364 'table.sortDesc': 'Sorted descending',365366 // --- changes / severity367 'change.kind.yoy_drop': 'Sharp drop',368 'change.kind.yoy_jump': 'Sharp rise',369 'change.kind.record_high': 'Record high',370 'change.kind.record_low': 'Record low',371 'change.kind.n_year_high': '{n}-year high',372 'change.kind.n_year_low': '{n}-year low',373 'change.kind.sign_flip': 'Reversal',374 'change.kind.accelerating': 'Accelerating',375 'change.kind.decelerating': 'Decelerating',376 'change.severity.high': 'Major',377 'change.severity.medium': 'Notable',378 'change.severity.low': 'Minor',379380 // --- opengraph381 'og.alt': '{name} — key statistics on CountryAtlas',382 'og.site': 'countryatlas.co',383 ...enCompare,384 ...enExplore,385 ...enCore,386 ...enFlagship,387 ...enPlatform,388} as const;389390export type DictKey = keyof typeof en;391