Give the tech radar its own page
/radar (/en/radar, /ca/radar) shows every technology the collective has placed, by ring: logo, category, what it is, why it sits there, its website and how many projects use it. The landing's radar summary links to it. It is the first listing — a page this site composes rather than one record's — so resolveRoute learns about those (LISTINGS), and builds their addresses and hreflang alternates from the same table. Logos sit on a light tile in both themes. A brand's mark is not ours to recolour, and Rust's, which is black, would vanish in dark mode. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
@@ -114,6 +114,19 @@ export interface Copy {
|
||||
links: string;
|
||||
since: string;
|
||||
};
|
||||
radar: {
|
||||
eyebrow: string;
|
||||
lead: string;
|
||||
ringLead: Record<'adopt' | 'trial' | 'assess' | 'hold', string>;
|
||||
categories: Record<
|
||||
'language' | 'framework' | 'datastore' | 'infrastructure' | 'tool' | 'practice',
|
||||
string
|
||||
>;
|
||||
website: string;
|
||||
projects: string;
|
||||
empty: string;
|
||||
seeAll: string;
|
||||
};
|
||||
call: {
|
||||
eyebrow: string;
|
||||
seniority: Record<'any' | 'junior' | 'mid' | 'senior', string>;
|
||||
@@ -248,6 +261,28 @@ const es: Copy = {
|
||||
links: 'Enlaces',
|
||||
since: 'En el colectivo desde',
|
||||
},
|
||||
radar: {
|
||||
eyebrow: 'Radar tecnológico',
|
||||
lead: 'Las herramientas con las que trabajamos y lo que opinamos de cada una: qué usamos sin dudar, qué estamos probando y qué preferimos evitar.',
|
||||
ringLead: {
|
||||
adopt: 'Lo usamos en proyectos reales y lo recomendamos sin reservas.',
|
||||
trial: 'Lo estamos probando en proyectos donde el riesgo es asumible.',
|
||||
assess: 'Nos interesa y lo estamos estudiando, sin usarlo aún en serio.',
|
||||
hold: 'Por ahora preferimos no empezar nada nuevo con esto.',
|
||||
},
|
||||
categories: {
|
||||
language: 'Lenguaje',
|
||||
framework: 'Framework',
|
||||
datastore: 'Datos',
|
||||
infrastructure: 'Infraestructura',
|
||||
tool: 'Herramienta',
|
||||
practice: 'Práctica',
|
||||
},
|
||||
website: 'Web oficial',
|
||||
projects: 'proyectos',
|
||||
empty: 'Todavía no hemos colocado ninguna tecnología en el radar.',
|
||||
seeAll: 'Ver el radar completo',
|
||||
},
|
||||
call: {
|
||||
eyebrow: 'Convocatoria',
|
||||
seniority: { any: 'Cualquier nivel', junior: 'Junior', mid: 'Intermedio', senior: 'Senior' },
|
||||
@@ -386,6 +421,28 @@ const en: Copy = {
|
||||
links: 'Links',
|
||||
since: 'In the collective since',
|
||||
},
|
||||
radar: {
|
||||
eyebrow: 'Tech radar',
|
||||
lead: 'The tools we work with and what we think of each: what we use without a second thought, what we are trying out and what we would rather avoid.',
|
||||
ringLead: {
|
||||
adopt: 'We use it on real projects and recommend it without reservation.',
|
||||
trial: 'We are trying it out on projects where the risk is acceptable.',
|
||||
assess: 'It interests us and we are looking into it, without using it seriously yet.',
|
||||
hold: 'For now we would rather not start anything new with it.',
|
||||
},
|
||||
categories: {
|
||||
language: 'Language',
|
||||
framework: 'Framework',
|
||||
datastore: 'Data',
|
||||
infrastructure: 'Infrastructure',
|
||||
tool: 'Tool',
|
||||
practice: 'Practice',
|
||||
},
|
||||
website: 'Official website',
|
||||
projects: 'projects',
|
||||
empty: 'We have not placed any technology on the radar yet.',
|
||||
seeAll: 'See the full radar',
|
||||
},
|
||||
call: {
|
||||
eyebrow: 'Open call',
|
||||
seniority: { any: 'Any level', junior: 'Junior', mid: 'Mid-level', senior: 'Senior' },
|
||||
@@ -524,6 +581,28 @@ const ca: Copy = {
|
||||
links: 'Enllaços',
|
||||
since: 'Al col·lectiu des de',
|
||||
},
|
||||
radar: {
|
||||
eyebrow: 'Radar tecnològic',
|
||||
lead: "Les eines amb què treballem i què en pensem de cadascuna: què fem servir sense dubtar, què estem provant i què preferim evitar.",
|
||||
ringLead: {
|
||||
adopt: 'El fem servir en projectes reals i el recomanem sense reserves.',
|
||||
trial: "L'estem provant en projectes on el risc és assumible.",
|
||||
assess: "Ens interessa i l'estem estudiant, sense fer-lo servir encara seriosament.",
|
||||
hold: 'Ara per ara preferim no començar res de nou amb això.',
|
||||
},
|
||||
categories: {
|
||||
language: 'Llenguatge',
|
||||
framework: 'Framework',
|
||||
datastore: 'Dades',
|
||||
infrastructure: 'Infraestructura',
|
||||
tool: 'Eina',
|
||||
practice: 'Pràctica',
|
||||
},
|
||||
website: 'Web oficial',
|
||||
projects: 'projectes',
|
||||
empty: 'Encara no hem col·locat cap tecnologia al radar.',
|
||||
seeAll: 'Veure el radar sencer',
|
||||
},
|
||||
call: {
|
||||
eyebrow: 'Convocatòria',
|
||||
seniority: { any: 'Qualsevol nivell', junior: 'Júnior', mid: 'Intermedi', senior: 'Sènior' },
|
||||
|
||||
Reference in New Issue
Block a user