245 keys had accumulated in en/es only (trustUi, labOptions, cordnUi, socialUi, walletUi, marketTerms, …), leaving every other locale at 97%. Backfilled 245x20 = 4,900 strings into src/i18n/<lang>/drift.ts and merged them through a new shared src/i18n/deepMerge.ts — a shallow ...drift spread would clobber existing namespaces, so index.ts deep-merges instead. Verified: check-i18n all 20 at 100%, tsc + eslint clean.
319 lines
16 KiB
TypeScript
319 lines
16 KiB
TypeScript
/**
|
|
* ro — drift fill (245 keys added after en/es only).
|
|
* Nested fragment spread additively into `ro/index.ts`.
|
|
*/
|
|
const drift = {
|
|
"nav": {
|
|
"searchLanguages": "Caută limbi...",
|
|
"noLanguages": "Nu s-au găsit limbi"
|
|
},
|
|
"mapPage": {
|
|
"searchSuggestPlaces": "Locuri"
|
|
},
|
|
"mapUi": {
|
|
"firstRunTitle": "Începe",
|
|
"firstRunAddSpot": "Adaugă primul tău spot",
|
|
"firstRunJoinCrew": "Alătură-te unui crew",
|
|
"firstRunStartCrew": "Începe-ți crew-ul",
|
|
"firstRunWallet": "Configurează-ți portofelul",
|
|
"forecastDays": "Prognoză pe {{count}} zile"
|
|
},
|
|
"spotUi": {
|
|
"forecastDays": "Prognoză pe {{count}} zile"
|
|
},
|
|
"marketUi": {
|
|
"trades": {
|
|
"stateRevoked": "Revocat",
|
|
"stateVerifying": "Se verifică"
|
|
},
|
|
"loadFailed": "Nu s-au putut atinge relay-urile. Verifică conexiunea și încearcă din nou.",
|
|
"statusPending": "În așteptare",
|
|
"offers": {
|
|
"closeDeal": "Închide tranzacția",
|
|
"loadFailed": "Ofertele nu s-au putut încărca. Verifică conexiunea și încearcă din nou."
|
|
},
|
|
"pay": {
|
|
"nonSats": "Această ofertă este cotată în {{currency}}. Plata în aplicație este doar în sats. Rezolvă direct cu vânzătorul.",
|
|
"unsupported": "Acest cod de plată (o cerere Cashu) nu este încă acceptat. Cere vânzătorului o factură Lightning sau o adresă."
|
|
},
|
|
"escrowRequest": {
|
|
"lockedNotSent": "Fondurile sunt blocate în escrow și salvate pe acest dispozitiv, dar cererea nu s-a trimis. Redeschide anunțul pentru a reîncerca. Nu plăti din nou.",
|
|
"mintLabel": "Mint (unde sunt blocate fondurile)",
|
|
"sellerMintHint": "Vânzătorul preferă acest mint; fondurile blocate aici îi sunt cel mai ușor de revendicat.",
|
|
"mintHint": "Escrow-ul se află la acest mint. Vânzătorul revendică aici, așa că alege unul în care aveți încredere amândoi.",
|
|
"noMints": "Nu există mint-uri disponibile",
|
|
"p2pkUnsupported": "Acest mint nu anunță suport P2PK (NUT-11), așa că escrow-ul nu poate fi blocat aici. Alege alt mint."
|
|
}
|
|
},
|
|
"labUi": {
|
|
"offerClothing": "Oferă îmbrăcăminte",
|
|
"tabClothing": "Îmbrăcăminte",
|
|
"empty": {
|
|
"clothingTitle": "Încă niciun designer de îmbrăcăminte",
|
|
"clothingBody": "Fii primul care oferă haine personalizate, echipamente de echipă și apparel pentru scenă."
|
|
},
|
|
"craftFields": {
|
|
"sizing": "Gamă de mărimi",
|
|
"samples": "Mostre / prototipuri",
|
|
"customization": "Personalizare"
|
|
}
|
|
},
|
|
"socialUi": {
|
|
"coordinator": {
|
|
"ourDefaultTitle": "Coordonator SkateSpots",
|
|
"ourDefaultDesc": "SkateSpots rulează un coordonator la relay.skate-spots.org. Folosește-l implicit sau rulează-l pe al tău — un coordonator vede doar text cifrat și metadate, niciodată mesajele tale.",
|
|
"useOurs": "Folosește coordonatorul SkateSpots"
|
|
},
|
|
"crewCoordinator": {
|
|
"encryptedChat": "Chat criptat",
|
|
"privateChatName": "Chat privat",
|
|
"privateChatDesc": "Chat de grup cu forward secrecy (MLS) printr-un coordonator.",
|
|
"privateChatDescFull": "Chatul privat este creat o dată de un admin, apoi membrii se alătură.",
|
|
"chatRowDesc": "Toți din crew — sigilat cu cheia fiecărui membru (NIP-17).",
|
|
"openChat": "Deschide",
|
|
"setUpChat": "Configurează",
|
|
"joinChat": "Alătură-te",
|
|
"checking": "Se verifică…",
|
|
"openInAnotherApp": "Deschide în altă aplicație",
|
|
"openInCordnWeb": "Cordn (web)",
|
|
"openCordnGroup": "Deschide chatul crew-ului",
|
|
"copyForStaircase": "Copiază pentru Staircase"
|
|
},
|
|
"dms": {
|
|
"refresh": "Reîmprospătează",
|
|
"crews": "Crews",
|
|
"crewFounder": "Fondator",
|
|
"crewMember": "Membru",
|
|
"crewOpen": "Deschide",
|
|
"crewSetUp": "Configurează"
|
|
},
|
|
"form": {
|
|
"cordnGroup": "Grup Cordn",
|
|
"cordnGroupHint": "Opțional: lipește linkul grupului din Staircase sau Cordn web. Crew-ul tău primește atunci chat MLS real end-to-end, găzduit pe coordonatorul nostru."
|
|
}
|
|
},
|
|
"settingsUi": {
|
|
"settingsPage": {
|
|
"trust": "Încredere",
|
|
"trustSub": "Surse și afișare"
|
|
}
|
|
},
|
|
"walletUi": {
|
|
"trust": {
|
|
"mute": "Oprește sunetul",
|
|
"muted": "Fără sunet",
|
|
"mutedDesc": "Nu le vei vedea conținutul.",
|
|
"muteFailed": "Nu s-a putut opri sunetul. Încearcă din nou.",
|
|
"loginToMute": "Autentifică-te pentru a opri sunetul.",
|
|
"attributedNetwork": "De la persoane din rețeaua ta",
|
|
"attributedProviderHouse": "De la furnizorul de încredere al comunității",
|
|
"attributedProviderCustom": "De la furnizorul pe care l-ai ales",
|
|
"howItWorks": "Cum funcționează încrederea",
|
|
"flaggedNoticeTitle": "Raportat de skateri de încredere",
|
|
"flaggedNoticeDesc": "Ai grijă. Persoane de încredere din rețea au raportat acest cont.",
|
|
"flaggedReporterFollow": "{{count}} pe care îi urmărești",
|
|
"flaggedReporterNetwork": "{{count}} din rețeaua ta",
|
|
"flaggedReporterOther": "{{count}} alte conturi",
|
|
"flaggedReport": "Raportează",
|
|
"flaggedDismiss": "Respinge",
|
|
"bucketVerified": "Verificat",
|
|
"bucketUnknown": "Necunoscut",
|
|
"bucketFlagged": "Semnalat",
|
|
"bucketVerifiedDesc": "Cineva din rețeaua ta garantează pentru acest cont.",
|
|
"bucketUnknownDesc": "Nimeni din rețeaua ta nu a garantat încă pentru acest cont.",
|
|
"bucketFlaggedDesc": "Persoane de încredere au raportat acest cont.",
|
|
"reportedByTrusted": "Raportat de {{count}} persoane de încredere"
|
|
}
|
|
},
|
|
"trustUi": {
|
|
"alertsTitle": "Alerte de rețea",
|
|
"alertsDesc": "Conturi pe care le urmărești și pe care persoane de încredere le-au raportat sau le-au pus pe silențios.",
|
|
"alertsEmpty": "Nicio alertă. Verificăm conturile pe care le urmărești pentru raportări de la persoane de încredere.",
|
|
"alertsReported": "Raportat de {{count}} persoane de încredere",
|
|
"alertsMuted": "Fără sunet din partea a {{count}} persoane de încredere",
|
|
"alertsIgnore": "Ignoră",
|
|
"alertsUnfollow": "Nu mai urmări",
|
|
"alertsLogin": "Autentifică-te pentru a vedea alertele pentru conturile pe care le urmărești.",
|
|
"providerTitle": "Furnizor",
|
|
"providerDesc": "Scorurile vin de la un furnizor pe care îl alegi. Furnizorul comunității este implicit.",
|
|
"useCommunity": "Folosește furnizorul comunității",
|
|
"setProvider": "Setează un furnizor",
|
|
"customPubkeyPlaceholder": "npub sau cheie publică hex a furnizorului",
|
|
"customRelayPlaceholder": "wss://relay.example.com",
|
|
"invalidProvider": "Introdu un npub valid sau o cheie publică hex de 64 de caractere și un relay wss://.",
|
|
"publishFailed": "Furnizorul nu a putut fi publicat. Încearcă din nou.",
|
|
"providerSaved": "Furnizor actualizat.",
|
|
"loggedOutProvider": "Autentifică-te pentru a alege un furnizor.",
|
|
"showMarks": "Arată marcajele de încredere",
|
|
"showMarksDesc": "Marcaje verificate și necunoscute. Raportările se afișează mereu.",
|
|
"sourceLabel": "Sursă",
|
|
"sourceHouse": "Furnizorul de încredere al comunității",
|
|
"sourceCustom": "Furnizorul tău",
|
|
"loggedOut": "Autentifică-te pentru a-ți alege propriul furnizor de încredere.",
|
|
"seoTitle": "Cum funcționează încrederea",
|
|
"seoDescription": "Cum afișează SkateSpots încrederea: trei stări, de unde vin scorurile și de ce absența nu înseamnă neîncredere.",
|
|
"title": "Cum funcționează încrederea",
|
|
"intro": "Încrederea aici este un semnal, nu o sentință. Vine de la cine îi cunoști sau de la un furnizor pe care îl alegi. Nu clasificăm oamenii la nivel global.",
|
|
"statesTitle": "Trei stări",
|
|
"verifiedTitle": "Verificat",
|
|
"verifiedDesc": "Cineva din rețeaua ta garantează pentru acest cont: un prieten al unui prieten sau furnizorul tău ales.",
|
|
"unknownTitle": "Necunoscut",
|
|
"unknownDesc": "Nimeni nu a garantat încă. Aici începe fiecare cont nou.",
|
|
"flaggedTitle": "Semnalat",
|
|
"flaggedDesc": "Persoane de încredere au raportat acest cont. Este un avertisment să te uiți mai atent, nu o dovadă pentru nimic.",
|
|
"absenceTitle": "Lipsa unei insigne nu înseamnă neîncredere",
|
|
"absenceDesc": "Majoritatea conturilor nu arată nimic. Asta înseamnă că nimeni din rețeaua ta nu a garantat încă pentru ele, nu că ceva este în neregulă. Nu interpreta niciodată un marcaj lipsă ca pe un lucru negativ.",
|
|
"sourceTitle": "Cine îl calculează",
|
|
"sourceDesc": "Implicit folosim propria ta rețea. Poți alege și un furnizor de încredere care publică scoruri semnate prin Nostr (NIP-85) sau poți opri afișarea. Semnalat se afișează mereu, pentru că este un semnal de siguranță.",
|
|
"endorsementTitle": "Prezența nu este o susținere",
|
|
"endorsementDesc": "Un marcaj verificat înseamnă că cineva a garantat, nu că persoana este bună. Un marcaj înseamnă că persoane de încredere au raportat-o, nu că este vinovată. Verifică detaliile înainte de a decide.",
|
|
"povTitle": "Depinde de punctul de vedere",
|
|
"povDesc": "Un scor este relativ la cine se uită. Un rang de la un furnizor sau o persoană nu este comparabil cu altul și nu îl prezentăm niciodată ca pe un fapt obiectiv.",
|
|
"settingsCta": "Gestionează în Setări"
|
|
},
|
|
"marketTerms": {
|
|
"link": "Regulile Marketplace",
|
|
"seoTitle": "Regulile Marketplace",
|
|
"seoDescription": "Cum funcționează anunțurile de echipament SkateSpots: peer-to-peer, cumpărătorul să fie atent, și regulile.",
|
|
"title": "Regulile Marketplace",
|
|
"intro": "SkateSpots este o tablă de echipament peer-to-peer. Tratezi direct cu cealaltă persoană: nu ținem fonduri, nu expediem articole și nu rezolvăm dispute.",
|
|
"howTitle": "Cum funcționează",
|
|
"howBody": "Listează echipament, contactează vânzătorul într-un mesaj privat și rezolvă direct (numerar, Lightning sau un schimb). Nu există coș sau checkout.",
|
|
"rulesTitle": "Ce nu este permis",
|
|
"rulesBody": "Fără conținut ilegal, periculos sau pentru adulți; fără droguri, arme, produse contrafăcute sau furate. Ține anunțurile despre echipament de skate și articole conexe.",
|
|
"respectTitle": "Fii respectuos",
|
|
"respectBody": "Fără abuz, hărțuire, amenințări sau ură. Moderatorii pot ascunde anunțuri sau conturi.",
|
|
"trustTitle": "Încrederea este un ghid, nu o garanție",
|
|
"trustBody": "Marcajele de verificare și reputația de tranzacționare sunt semnale din rețea, nu promisiuni. Fă-ți propriile verificări înainte de a tranzacționa.",
|
|
"trustLink": "Cum funcționează încrederea",
|
|
"privacyLink": "Ce pleacă de pe dispozitivul tău",
|
|
"safetyTitle": "Tranzacționează în siguranță",
|
|
"safetyBody": "Întâlnește-te în public pentru predare, folosește escrow sau un depozit de bună-credință pentru livrări și nu trimite niciodată bani în afara aplicației.",
|
|
"moderationTitle": "Moderarea este blândă și reversibilă",
|
|
"moderationBody": "Conținutul ascuns rămâne pe relay-uri și poate fi restaurat; disputele dintre oameni sunt ale tale de rezolvat."
|
|
},
|
|
"labOptions": {
|
|
"clothing": {
|
|
"service": {
|
|
"tees": "Tricouri",
|
|
"hoodies": "Hanorace și treninguri",
|
|
"pants": "Pantaloni și șorturi",
|
|
"jackets": "Jachete și haine de exterior",
|
|
"kits": "Echipamente și tricouri de echipă",
|
|
"caps": "Șepci și căciuli",
|
|
"socks": "Șosete",
|
|
"accessories": "Genți și accesorii",
|
|
"footwear": "Încălțăminte și pantofi",
|
|
"patches": "Patch-uri și aplicații",
|
|
"griptape": "Griptape și îmbrăcăminte pentru deck",
|
|
"onepiece": "Piese unicate / upcycled"
|
|
},
|
|
"serviceDesc": {
|
|
"tees": "Tricouri și topuri personalizate",
|
|
"hoodies": "Hanorace, treninguri și pantaloni de trening",
|
|
"pants": "Pantaloni de lucru, cargo și șorturi",
|
|
"jackets": "Jachete de antrenor, shell și de lucru",
|
|
"kits": "Echipamente, tricouri și uniforme de echipă",
|
|
"caps": "Șepci, căciuli și acoperitoare de cap",
|
|
"socks": "Șosete și tricotaje",
|
|
"accessories": "Genți, curele și obiecte mici",
|
|
"footwear": "Pantofi și încălțăminte personalizată",
|
|
"patches": "Patch-uri brodate și aplicații",
|
|
"griptape": "Artă pe griptape și îmbrăcăminte pentru deck",
|
|
"onepiece": "Piese singulare și haine upcycled"
|
|
},
|
|
"method": {
|
|
"screenprint": "Serigrafie",
|
|
"dtg": "DTG / direct-to-garment",
|
|
"embroidery": "Broderie",
|
|
"cutsew": "Cut & sew",
|
|
"sublimation": "Sublimare",
|
|
"heattransfer": "Heat transfer / vinil",
|
|
"garmentdye": "Vopsire vestimentară",
|
|
"knit": "Tricotaj",
|
|
"patchwork": "Patchwork",
|
|
"allover": "Print all-over"
|
|
},
|
|
"material": {
|
|
"cotton": "Bumbac",
|
|
"heavyweight": "Greutate mare",
|
|
"organic": "Organic / durabil",
|
|
"fleece": "Fleece",
|
|
"denim": "Denim",
|
|
"canvas": "Canvas",
|
|
"nylon": "Nylon / tehnic",
|
|
"wool": "Merino / lână",
|
|
"leather": "Piele",
|
|
"recycled": "Reciclat / deadstock"
|
|
}
|
|
}
|
|
},
|
|
"becomeRolesUi": {
|
|
"clothing": {
|
|
"seoTitle": "Devino designer de îmbrăcăminte - SkateSpots",
|
|
"seoDescription": "Haine personalizate, echipamente de echipă și apparel pentru scenă.",
|
|
"heading": "Designer de îmbrăcăminte",
|
|
"tagline": "Haine personalizate, echipamente de echipă și apparel pentru scenă",
|
|
"noun": "designer de îmbrăcăminte",
|
|
"rateLabel": "Tarif",
|
|
"portfolioLabel": "Link magazin / portofoliu",
|
|
"sectionWhatYouMake": "Ce realizezi",
|
|
"sectionHowYouMake": "Cum realizezi",
|
|
"sectionMaterials": "Materiale",
|
|
"minimumPlaceholder": "de ex. 10 bucăți",
|
|
"turnaroundPlaceholder": "de ex. 2-3 săptămâni",
|
|
"sizingPlaceholder": "de ex. XS-3XL / la comandă",
|
|
"samplesHelper": "Oferi mostre sau prototipuri înainte de o serie completă?",
|
|
"customizationPlaceholder": "de ex. nume, numere, grafică"
|
|
}
|
|
},
|
|
"weatherUi": {
|
|
"updated": "Actualizat",
|
|
"refresh": "Reîmprospătează",
|
|
"unavailable": "Vremea indisponibilă.",
|
|
"retry": "Reîncearcă",
|
|
"sunrise": "Răsărit",
|
|
"sunset": "Apus",
|
|
"legendTitle": "Scor meteo",
|
|
"legendWeatherOnly": "Doar vremea"
|
|
},
|
|
"cordnUi": {
|
|
"title": "Chat privat",
|
|
"subtitle": "Criptat end-to-end (MLS) între membrii crew-ului. Coordonatorul transportă doar text cifrat și metadate — nu vede niciodată conținutul mesajelor.",
|
|
"notLoggedIn": "Autentifică-te pentru a folosi chatul privat al crew-ului.",
|
|
"membersOnly": "Doar membrii crew-ului pot deschide chatul privat.",
|
|
"connecting": "Se conectează…",
|
|
"noCoordinator": "Nu este configurat încă un coordonator pentru acest crew.",
|
|
"noGroupAdmin": "Chatul privat al acestui crew nu a fost încă creat.",
|
|
"noGroupMember": "Nu ești încă în chatul privat al acestui crew.",
|
|
"create": "Creează chatul privat",
|
|
"requestJoin": "Cere să te alături",
|
|
"checkInvite": "Verifică invitația",
|
|
"requested": "Cerere trimisă — un admin de crew o va aproba.",
|
|
"noInvite": "Nicio invitație în așteptare încă. Cere unui admin să aprobe cererea ta.",
|
|
"placeholder": "Trimite un mesaj crew-ului…",
|
|
"send": "Trimite",
|
|
"refresh": "Reîmprospătează",
|
|
"requests": "Cereri de alăturare",
|
|
"checkRequests": "Verifică cererile",
|
|
"approve": "Adaugă",
|
|
"noRequests": "Nicio cerere de alăturare în așteptare.",
|
|
"inviteHint": "Momentan doar tu ești în acest chat — membrii crew-ului pot apăsa „Cere să te alături”, apoi îi aprobi aici.",
|
|
"memberCount": "{{count}} în grup",
|
|
"you": "Tu",
|
|
"groupRef": "Link de grup",
|
|
"copyRef": "Copiază",
|
|
"copied": "Copiat",
|
|
"attachImage": "Atașează imagine",
|
|
"uploading": "Se încarcă…",
|
|
"uploadFailed": "Imaginea nu a putut fi încărcată.",
|
|
"bannerTitle": "Acest crew nu are încă un chat privat",
|
|
"bannerBody": "Configurează chat criptat end-to-end (MLS) pentru crew-ul tău — membrii se alătură din filă.",
|
|
"bannerCta": "Configurează",
|
|
"ready": "Conectat · MLS",
|
|
"errorPrefix": "Coordonatorul nu a putut fi contactat",
|
|
"interactiveHint": "Signerul tău cere aprobare la fiecare acțiune — folosește Reîmprospătează și Trimite după nevoie."
|
|
}
|
|
};
|
|
|
|
export default drift;
|