SkateSpots/src/i18n/legacy/becomeRoles.ts
SkateSpots 0b645d6d67 feat(lab): add Clothing Designer craft (kind 35015)
New data-driven Lab craft, mirroring the artist role: three skill
sections (What You Make [required] / How You Make It / Materials) plus
minimum order, turnaround, size range, samples and customisation extras,
inheriting the shared Lab extras (rate, payment, gallery, reel,
languages, availability, booking).

Wired through types.ts (kind, label/description maps, parse, collective-
capable), labelKeys, useLabProfiles (kind list + dispatch), becomeRoles
(role card), craftFields, LabPage (tab, filters, offer button, empty
state, counts, deep links), LabCrewsStrip, NIP.md, and en/es i18n
(labOptions, becomeRolesUi, labUi). /become/clothing added to the smoke
route list. tsc, eslint, check-i18n, vitest 101/101, build and smoke all
pass.
2026-10-10 19:30:47 +07:00

330 lines
16 KiB
TypeScript
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.

/**
* Lab role-form strings (`becomeRolesUi.*`) — the copy that lives in the
* `BECOME_ROLES` data table (`src/lib/becomeRoles.tsx`) and is rendered by
* `CraftProfileForm`, `BecomeRolePage` (SEO meta) and `LabProfilePreview`.
*
* Keys must exist in BOTH `en` and `es` (key-for-key), same as the other
* `*Ui` namespaces. Skate/brand terms (SkateSpots) and trick names stay as
* written; every craft field label/placeholder/helper that used to be raw
* English lives here.
*/
const becomeRolesUi = {
en: {
artist: {
seoTitle: 'Become a Designer / Artist - SkateSpots',
seoDescription: 'List your skate design & art — board graphics, logos, posters, merch and more.',
heading: 'Designer / Artist',
tagline: 'Board graphics, logos, posters, merch — put your art on the scene',
noun: 'artist',
rateLabel: 'Rate',
portfolioLabel: 'Portfolio / Shop link',
sectionWhatYouMake: 'What You Make',
sectionMedium: 'Medium',
sectionSoftwareTools: 'Software & Tools',
deliverablesPlaceholder: 'e.g. print-ready files, source files, deck graphics',
turnaroundPlaceholder: 'e.g. 3–5 days',
},
graffiti: {
seoTitle: 'Offer Graffiti / Murals - SkateSpots',
seoDescription: 'List your graffiti & mural work — pieces, murals, skatepark art and more.',
heading: 'Graffiti / Mural Artist',
tagline: 'Pieces, murals, skatepark art — paint the scene',
noun: 'graffiti artist',
rateLabel: 'Rate',
portfolioLabel: 'Portfolio link (IG, site)',
sectionStyle: 'Style',
sectionMedium: 'Medium',
sectionWorkContext: 'Work Context',
crewLabel: 'Graffiti Crew',
crewPlaceholder: 'Your writing crew (optional)',
crewHelper: 'Separate from your skate crew — the writers you paint with.',
surfacesPlaceholder: 'e.g. concrete, brick, permitted walls',
maxSizePlaceholder: 'e.g. up to 10 m',
},
musician: {
seoTitle: 'Add a Music Profile - SkateSpots',
seoDescription: 'Skate and make music? List your band or solo project — genres, instruments and links.',
heading: 'Musician / Band',
tagline: 'Skate and make music? Get booked for demos, jams & after-parties',
noun: 'musician',
rateLabel: 'Booking Rate',
portfolioLabel: 'Website / EPK link',
sectionGenre: 'Genre',
sectionInstruments: 'Instruments & Role',
actLabel: 'Act Type',
actPlaceholder: 'solo / band / dj / producer',
spotifyLabel: 'Spotify',
spotifyPlaceholder: 'https://open.spotify.com/…',
bandcampLabel: 'Bandcamp',
bandcampPlaceholder: 'https://…bandcamp.com',
soundcloudLabel: 'SoundCloud',
soundcloudPlaceholder: 'https://soundcloud.com/…',
youtubeLabel: 'YouTube',
youtubePlaceholder: 'https://youtube.com/…',
setLengthPlaceholder: 'e.g. 30–45 min',
techRiderPlaceholder: 'e.g. PA, mics, backline',
},
judge: {
seoTitle: 'Judge Skate Events - SkateSpots',
seoDescription: 'List yourself as a skate event judge — Game of S.K.A.T.E., best trick jams, contests, am series and world tour stops. Get booked to run fair, credible events.',
heading: 'Skate Event Judge',
tagline: 'From flat-ground Game of S.K.A.T.E. to the World Destruction Tour — run it fair, run it credible',
noun: 'judge',
rateLabel: 'Day Rate / Fee',
portfolioLabel: 'Results archive / profile link',
sectionEventFormats: 'Event Formats',
sectionSpecialty: 'Specialty',
sectionLevelCircuit: 'Level / Circuit',
eventsJudgedLabel: 'Events Judged',
eventsJudgedPlaceholder: 'e.g. 40+ contests, 3 World Tour stops',
eventsJudgedHelper: 'Notable events, comps or tours you have officiated.',
travelPlaceholder: 'e.g. regional / nationwide / international',
certificationsPlaceholder: 'e.g. national judging course',
},
organizer: {
seoTitle: 'Organize Skate Events - SkateSpots',
seoDescription: 'List yourself as a skate event organizer — street jams, best trick, contests, meetups, demos and tour stops. Get discovered and booked to run the session.',
heading: 'Event Organizer',
tagline: 'Jams, contests, meetups & demos — put on the session and bring the scene together',
noun: 'organizer',
rateLabel: 'Event Fee / Budget',
portfolioLabel: 'Past events / results link',
sectionEventTypes: 'Event Types',
sectionWhatYouHandle: 'What You Handle',
sectionScale: 'Scale',
eventsHostedLabel: 'Events Organized',
eventsHostedPlaceholder: 'e.g. 25 jams, 3 city comps',
eventsHostedHelper: 'Notable events, comps or meetups you have run.',
insurancePlaceholder: 'e.g. public liability included',
permitsPlaceholder: 'e.g. council permits handled',
},
tattoo: {
seoTitle: 'Become a Tattoo Artist - SkateSpots',
seoDescription: 'List your tattoo work for the skate scene — styles, flash, custom and more.',
heading: 'Tattoo Artist',
tagline: 'Ink for the scene — flash, custom, fine line & more',
noun: 'tattoo artist',
rateLabel: 'Rate / Hourly',
portfolioLabel: 'Portfolio link (IG, site)',
sectionStyles: 'Styles',
sectionMethod: 'Method',
studioLabel: 'Studio / Shop',
studioPlaceholder: 'Studio name (optional)',
booksOpenLabel: 'Books Open',
booksOpenHelper: 'Are you currently taking bookings?',
depositPlaceholder: 'e.g. 50 EUR non-refundable',
minimumPlaceholder: 'e.g. 80 EUR',
},
trainer: {
seoTitle: 'Become a Trainer / Physio - SkateSpots',
seoDescription: 'Help skaters get strong and stay healthy — strength, mobility, injury prevention and recovery.',
heading: 'Trainer / Physio',
tagline: 'Strength, mobility, injury prevention & recovery for skaters',
noun: 'trainer',
rateLabel: 'Rate / Session',
portfolioLabel: 'Profile / booking link',
sectionFocus: 'Focus',
sectionInjuries: 'Injuries You Work With',
sectionCredentialsSetting: 'Credentials & Setting',
credentialsPlaceholder: 'e.g. BSc Physiotherapy, CSCS…',
credentialsHelper: 'List real qualifications — skaters trust verifiable credentials.',
remoteLabel: 'Remote / Online',
remoteHelper: 'Do you offer online coaching or consultations?',
modalitiesPlaceholder: 'e.g. hands-on, S&C, dry needling',
},
barber: {
seoTitle: 'Become a Barber / Hairstylist - SkateSpots',
seoDescription: 'List your barbershop or chair for the skate scene — cuts, fades, beard trims, colour and more. Get booked by skaters.',
heading: 'Barber / Hairstylist',
tagline: 'Cuts, fades & beard trims for the scene — shop chair or mobile',
noun: 'barber',
rateLabel: 'Price / Cut',
portfolioLabel: 'Cuts gallery / IG link',
sectionWhatYouOffer: 'What You Offer',
sectionSignatureStyles: 'Signature Styles',
sectionSetting: 'Setting',
studioLabel: 'Shop / Studio',
studioPlaceholder: 'Shop or studio name (optional)',
booksOpenLabel: 'Books Open',
booksOpenHelper: 'Are you currently taking bookings?',
durationPlaceholder: 'e.g. 30–45 min',
},
clothing: {
seoTitle: 'Become a Clothing Designer - SkateSpots',
seoDescription: 'Custom clothes, team kits & apparel for the scene.',
heading: 'Clothing Designer',
tagline: 'Custom clothes, team kits & apparel for the scene',
noun: 'clothing designer',
rateLabel: 'Rate',
portfolioLabel: 'Shop / portfolio link',
sectionWhatYouMake: 'What You Make',
sectionHowYouMake: 'How You Make It',
sectionMaterials: 'Materials',
minimumPlaceholder: 'e.g. 10 pieces',
turnaroundPlaceholder: 'e.g. 2-3 weeks',
sizingPlaceholder: 'e.g. XS-3XL / made to measure',
samplesHelper: 'Do you offer samples or prototypes before a full run?',
customizationPlaceholder: 'e.g. names, numbers, graphics',
},
},
es: {
artist: {
seoTitle: 'Conviértete en diseñador / artista - SkateSpots',
seoDescription: 'Publica tu diseño y arte de skate: gráficos de tabla, logos, pósters, merch y más.',
heading: 'Diseñador / Artista',
tagline: 'Gráficos de tabla, logos, pósters, merch — pon tu arte en la escena',
noun: 'artista',
rateLabel: 'Tarifa',
portfolioLabel: 'Portafolio / enlace de tienda',
sectionWhatYouMake: 'Qué haces',
sectionMedium: 'Técnica',
sectionSoftwareTools: 'Software y herramientas',
deliverablesPlaceholder: 'p. ej. archivos listos para imprimir, archivos fuente, gráficos de tabla',
turnaroundPlaceholder: 'p. ej. 3–5 días',
},
graffiti: {
seoTitle: 'Ofrece graffiti / murales - SkateSpots',
seoDescription: 'Publica tu trabajo de graffiti y murales: piezas, murales, arte para skateparks y más.',
heading: 'Artista de graffiti / murales',
tagline: 'Piezas, murales, arte para skateparks — pinta la escena',
noun: 'artista de graffiti',
rateLabel: 'Tarifa',
portfolioLabel: 'Enlace de portafolio (IG, web)',
sectionStyle: 'Estilo',
sectionMedium: 'Técnica',
sectionWorkContext: 'Contexto del trabajo',
crewLabel: 'Peña de graffiti',
crewPlaceholder: 'Tu peña de escritura (opcional)',
crewHelper: 'Aparte de tu peña de skate: los escritores con los que pintas.',
surfacesPlaceholder: 'p. ej. hormigón, ladrillo, muros permitidos',
maxSizePlaceholder: 'p. ej. hasta 10 m',
},
musician: {
seoTitle: 'Añade un perfil musical - SkateSpots',
seoDescription: '¿Patinas y haces música? Publica tu banda o proyecto en solitario: géneros, instrumentos y enlaces.',
heading: 'Músico / Banda',
tagline: '¿Patinas y haces música? Consigue bolos para demos, jams y afters',
noun: 'músico',
rateLabel: 'Tarifa de bolo',
portfolioLabel: 'Web / enlace EPK',
sectionGenre: 'Género',
sectionInstruments: 'Instrumentos y rol',
actLabel: 'Tipo de actuación',
actPlaceholder: 'solo / banda / dj / productor',
spotifyLabel: 'Spotify',
spotifyPlaceholder: 'https://open.spotify.com/…',
bandcampLabel: 'Bandcamp',
bandcampPlaceholder: 'https://…bandcamp.com',
soundcloudLabel: 'SoundCloud',
soundcloudPlaceholder: 'https://soundcloud.com/…',
youtubeLabel: 'YouTube',
youtubePlaceholder: 'https://youtube.com/…',
setLengthPlaceholder: 'p. ej. 30–45 min',
techRiderPlaceholder: 'p. ej. PA, micros, backline',
},
judge: {
seoTitle: 'Juzga eventos de skate - SkateSpots',
seoDescription: 'Publícate como juez de eventos de skate: Game of S.K.A.T.E., best trick, concursos, series am y paradas de world tour. Consigue que te contraten para eventos justos y creíbles.',
heading: 'Juez de eventos de skate',
tagline: 'Del Game of S.K.A.T.E. en llano al World Destruction Tour — júzgalo con justicia y criterio',
noun: 'juez',
rateLabel: 'Tarifa por día / honorarios',
portfolioLabel: 'Archivo de resultados / enlace de perfil',
sectionEventFormats: 'Formatos de evento',
sectionSpecialty: 'Especialidad',
sectionLevelCircuit: 'Nivel / circuito',
eventsJudgedLabel: 'Eventos juzgados',
eventsJudgedPlaceholder: 'p. ej. más de 40 concursos, 3 paradas de World Tour',
eventsJudgedHelper: 'Eventos, concursos o giras destacadas que hayas arbitrado.',
travelPlaceholder: 'p. ej. regional / nacional / internacional',
certificationsPlaceholder: 'p. ej. curso nacional de jueces',
},
organizer: {
seoTitle: 'Organiza eventos de skate - SkateSpots',
seoDescription: 'Publícate como organizador de eventos de skate: jams de calle, best trick, concursos, quedadas, demos y paradas de gira. Deja que te descubran y te contraten para dirigir la sesión.',
heading: 'Organizador de eventos',
tagline: 'Jams, concursos, quedadas y demos — monta la sesión y une a la escena',
noun: 'organizador',
rateLabel: 'Tarifa de evento / presupuesto',
portfolioLabel: 'Enlace a eventos pasados / resultados',
sectionEventTypes: 'Tipos de evento',
sectionWhatYouHandle: 'De qué te encargas',
sectionScale: 'Escala',
eventsHostedLabel: 'Eventos organizados',
eventsHostedPlaceholder: 'p. ej. 25 jams, 3 concursos municipales',
eventsHostedHelper: 'Eventos, concursos o quedadas destacadas que hayas organizado.',
insurancePlaceholder: 'p. ej. responsabilidad civil incluida',
permitsPlaceholder: 'p. ej. permisos municipales gestionados',
},
tattoo: {
seoTitle: 'Conviértete en tatuador - SkateSpots',
seoDescription: 'Publica tu trabajo de tatuaje para la escena del skate: estilos, flash, custom y más.',
heading: 'Tatuador / Tatuadora',
tagline: 'Tinta para la escena — flash, custom, línea fina y más',
noun: 'tatuador',
rateLabel: 'Tarifa / por hora',
portfolioLabel: 'Enlace de portafolio (IG, web)',
sectionStyles: 'Estilos',
sectionMethod: 'Método',
studioLabel: 'Estudio / local',
studioPlaceholder: 'Nombre del estudio (opcional)',
booksOpenLabel: 'Agenda abierta',
booksOpenHelper: '¿Estás aceptando reservas ahora mismo?',
depositPlaceholder: 'p. ej. 50 EUR no reembolsables',
minimumPlaceholder: 'p. ej. 80 EUR',
},
trainer: {
seoTitle: 'Conviértete en entrenador / fisio - SkateSpots',
seoDescription: 'Ayuda a los skaters a estar fuertes y saludables: fuerza, movilidad, prevención de lesiones y recuperación.',
heading: 'Entrenador / Fisio',
tagline: 'Fuerza, movilidad, prevención de lesiones y recuperación para skaters',
noun: 'entrenador',
rateLabel: 'Tarifa / por sesión',
portfolioLabel: 'Perfil / enlace de reserva',
sectionFocus: 'Enfoque',
sectionInjuries: 'Lesiones con las que trabajas',
sectionCredentialsSetting: 'Credenciales y entorno',
credentialsPlaceholder: 'p. ej. Grado en Fisioterapia, CSCS…',
credentialsHelper: 'Indica titulaciones reales: los skaters confían en credenciales verificables.',
remoteLabel: 'Remoto / online',
remoteHelper: '¿Ofreces entrenamiento o consultas online?',
modalitiesPlaceholder: 'p. ej. manual, fuerza y acondicionamiento, punción seca',
},
barber: {
seoTitle: 'Conviértete en barbero / peluquero - SkateSpots',
seoDescription: 'Publica tu barbería o tu silla para la escena del skate: cortes, fades, arreglo de barba, color y más. Consigue clientes skaters.',
heading: 'Barbero / Peluquero',
tagline: 'Cortes, fades y arreglo de barba para la escena — en local o a domicilio',
noun: 'barbero',
rateLabel: 'Precio / corte',
portfolioLabel: 'Galería de cortes / enlace IG',
sectionWhatYouOffer: 'Qué ofreces',
sectionSignatureStyles: 'Estilos característicos',
sectionSetting: 'Entorno',
studioLabel: 'Local / estudio',
studioPlaceholder: 'Nombre del local o estudio (opcional)',
booksOpenLabel: 'Agenda abierta',
booksOpenHelper: '¿Estás aceptando reservas ahora mismo?',
durationPlaceholder: 'p. ej. 30–45 min',
},
clothing: {
seoTitle: 'Conviértete en diseñador de ropa - SkateSpots',
seoDescription: 'Ropa a medida, equipaciones y prendas para la escena.',
heading: 'Diseñador de ropa',
tagline: 'Ropa a medida, equipaciones y prendas para la escena',
noun: 'diseñador de ropa',
rateLabel: 'Tarifa',
portfolioLabel: 'Enlace de tienda / portafolio',
sectionWhatYouMake: 'Qué haces',
sectionHowYouMake: 'Cómo lo haces',
sectionMaterials: 'Materiales',
minimumPlaceholder: 'p. ej. 10 prendas',
turnaroundPlaceholder: 'p. ej. 2-3 semanas',
sizingPlaceholder: 'p. ej. XS-3XL / a medida',
samplesHelper: '¿Ofreces muestras o prototipos antes de una producción completa?',
customizationPlaceholder: 'p. ej. nombres, números, gráficos',
},
},
};
export default becomeRolesUi;