feat(i18n): implement deep merging for locale chunks and enhance Cebuano translations
All checks were successful
Deploy to production / deploy (push) Successful in 2m48s

- Introduced a deep merge function to combine locale chunks, improving the handling of language data for Cebuano.
- Updated Cebuano locale files with comprehensive translations, including new sections for admin, social network, and settings.
- Enhanced existing translations for clarity and consistency across various components, ensuring a better user experience.
- Added new fields in the settings and profile sections to capture more user attributes, improving personalization options.
This commit is contained in:
Torsten Schulz (local)
2026-04-07 16:23:11 +02:00
parent e9f0f6c133
commit f715c6125d
17 changed files with 4380 additions and 1173 deletions

View File

@@ -80,6 +80,73 @@ import esMessage from './locales/es/message.json';
import esPersonal from './locales/es/personal.json';
import esSeo from './locales/es/seo.json';
function isPlainObject(value) {
return value !== null && typeof value === 'object' && !Array.isArray(value);
}
/** Tiefes Zusammenführen von Locale-Chunks (ceb überschreibt en nur auf Blattebene, ohne ganze Teilbäume zu verwerfen). */
function deepMerge(target, source) {
if (!isPlainObject(source)) return target;
const base = isPlainObject(target) ? { ...target } : {};
for (const key of Object.keys(source)) {
const sv = source[key];
const tv = base[key];
if (isPlainObject(sv) && isPlainObject(tv)) {
base[key] = deepMerge(tv, sv);
} else if (isPlainObject(sv)) {
base[key] = deepMerge({}, sv);
} else {
base[key] = sv;
}
}
return base;
}
function mergeLocaleChunks(chunks) {
return chunks.reduce((acc, chunk) => deepMerge(acc, chunk), {});
}
const cebLocaleChunks = [
enGeneral,
enHeader,
enNavigation,
enHome,
enChat,
enRegister,
enPasswordReset,
enError,
enActivate,
enSettings,
enAdmin,
enSocialNetwork,
enFriends,
enFalukant,
enBlog,
enMinigames,
enMessage,
enPersonal,
enSeo,
cebGeneral,
cebHeader,
cebNavigation,
cebHome,
cebRegister,
cebActivate,
cebError,
cebMessage,
cebSettings,
cebAdmin,
cebPasswordReset,
cebSocialNetwork,
cebFriends,
cebChat,
cebPersonal,
cebFalukant,
cebBlog,
cebMinigames,
cebSeo,
];
const messages = {
en: {
...enGeneral,
@@ -102,45 +169,7 @@ const messages = {
...enPersonal,
...enSeo,
},
ceb: {
...enGeneral,
...enHeader,
...enNavigation,
...enHome,
...enChat,
...enRegister,
...enPasswordReset,
...enError,
...enActivate,
...enSettings,
...enAdmin,
...enSocialNetwork,
...enFriends,
...enFalukant,
...enBlog,
...enMinigames,
...enMessage,
...enPersonal,
...cebGeneral,
...cebHeader,
...cebNavigation,
...cebHome,
...cebRegister,
...cebActivate,
...cebError,
...cebMessage,
...cebSettings,
...cebAdmin,
...cebPasswordReset,
...cebSocialNetwork,
...cebFriends,
...cebChat,
...cebPersonal,
...cebFalukant,
...cebBlog,
...cebMinigames,
...cebSeo,
},
ceb: mergeLocaleChunks(cebLocaleChunks),
de: {
'Ok': 'Ok',
...deGeneral,

View File

@@ -1,68 +1,482 @@
{
"admin": {
"interests": {
"title": "[Admin] - Pagdumala sa mga interes"
},
"contacts": {
"title": "[Admin] - Mga hangyo sa pakigkontak",
"date": "Petsa",
"from": "Gikan kang",
"actions": "Mga aksyon",
"open": "Ablihi",
"finished": "Tapusa"
},
"editcontactrequest": {
"title": "[Admin] - Usba ang hangyo sa pakigkontak"
},
"user": {
"name": "Ngalan sa user",
"active": "Aktibo",
"blocked": "Gi-block",
"actions": "Mga aksyon",
"search": "Pangita"
},
"vocabLessonReset": {
"title": "Kurso sa pinulongan: pag-uswag sa leksiyon",
"intro": "Tangtanga ang pag-uswag, mga resulta sa ehersisyo ug natipig nga kahimtang sa usa ka leksiyon lamang (dili ang tibuok kurso). Makita ra ang mga kurso nga na-enroll niini nga tiggamit.",
"loadCourses": "Ikarga ang na-enroll nga mga kurso",
"selectCourse": "Kurso",
"selectLesson": "Leksiyon",
"reset": "I-reset ang leksiyon niining user",
"confirmTitle": "Tangtanga ang pag-uswag sa leksiyon",
"confirm": "Tinuod nga tangtangon ang pag-uswag sa leksiyon nga «{lesson}» ni {username}?",
"success": "Na-reset na ang pag-uswag sa leksiyon.",
"error": "Dili ma-reset.",
"pickUserFirst": "Una pagpili ug user.",
"noEnrolledCourses": "Kini nga tiggamit wala na-enroll sa bisan unsang kurso sa pinulongan.",
"loadCoursesError": "Dili makarga ang lista sa mga kurso.",
"loadingLessons": "Nagkarga sa mga leksiyon"
},
"vocabLessonMarkComplete": {
"divider": "Ayuhon ang pag-uswag (dili paghimo og peke nga resulta sa ehersisyo)",
"throughLabel": "Tanang leksiyon hangtod sa numero (lakip)",
"hint": "I-mark ang kulang o abli nga mga row nga nahuman, lakip ang target score ug unang review wave. Ang nahuman na dili usbon.",
"submit": "I-mark nga nahuman hangtod dinhi",
"confirmTitle": "I-mark ang mga leksiyon nga nahuman",
"confirm": "I-mark nga nahuman ang tanang leksiyon nga numero ≤ {n} ni {username} niining kurso?",
"success": "{marked} ka leksiyon nga bag-ong gi-mark nga nahuman ({unchanged} klaro nang nahuman).",
"successNone": "Walay pagbag-o: tanang leksiyon nga naapektuhan ({unchanged}) klaro nang nahuman.",
"error": "Dili ma-mark nga nahuman."
},
"rights": {
"add": "Idugang ang katungod",
"select": "Palihog pagpili",
"current": "Karon nga mga katungod"
},
"forum": {
"title": "[Admin] - Forum",
"currentForums": "Anaa nang mga forum",
"edit": "Usba",
"delete": "Tangtanga",
"createForum": "Paghimo",
"forumName": "Titulo",
"create": "Paghimo",
"selectPermissions": "Palihog pagpili",
"confirmDeleteTitle": "Tangtanga ang forum"
"admin": {
"interests": {
"title": "[Admin] - Pagdumala sa mga interes",
"newinterests": {
"name": "Ngalan sa interes",
"status": "Na-aprub",
"adultonly": "Hamtong lamang",
"translations": "Mga hubad",
"isactive": "Aktibo",
"isadult": "Hamtong lamang",
"delete": "Tangtanga"
}
},
"contacts": {
"title": "[Admin] - Mga hangyo sa pakigkontak",
"date": "Petsa",
"from": "Gikan kang",
"actions": "Mga aksyon",
"open": "Usba",
"finished": "Humana"
},
"editcontactrequest": {
"title": "[Admin] - Usba ang hangyo sa pakigkontak"
},
"user": {
"name": "Ngalan sa user",
"active": "Aktibo",
"blocked": "Gi-block",
"actions": "Mga aksyon",
"search": "Pangita"
},
"vocabLessonReset": {
"title": "Kurso sa pinulongan: pag-uswag sa leksiyon",
"intro": "Tangtanga ang pag-uswag, mga resulta sa ehersisyo ug natipig nga kahimtang sa usa ka leksiyon lamang (dili ang tibuok kurso). Makita ra ang mga kurso nga na-enroll niini nga tiggamit.",
"loadCourses": "Ikarga ang na-enroll nga mga kurso",
"selectCourse": "Kurso",
"selectLesson": "Leksiyon",
"reset": "I-reset ang leksiyon niining user",
"confirmTitle": "Tangtanga ang pag-uswag sa leksiyon",
"confirm": "Tinuod nga tangtangon ang pag-uswag sa leksiyon nga «{lesson}» ni {username}?",
"success": "Na-reset na ang pag-uswag sa leksiyon.",
"error": "Dili ma-reset.",
"pickUserFirst": "Una pagpili ug user.",
"noEnrolledCourses": "Kini nga tiggamit wala na-enroll sa bisan unsang kurso sa pinulongan.",
"loadCoursesError": "Dili makarga ang lista sa mga kurso.",
"loadingLessons": "Nagkarga sa mga leksiyon …"
},
"vocabLessonMarkComplete": {
"divider": "Ayuhon ang pag-uswag (dili paghimo og peke nga resulta sa ehersisyo)",
"throughLabel": "Tanang leksiyon hangtod sa numero (lakip)",
"hint": "I-mark ang kulang o abli nga mga row nga nahuman, lakip ang target score ug unang review wave. Ang nahuman na dili usbon.",
"submit": "I-mark nga nahuman hangtod dinhi",
"confirmTitle": "I-mark ang mga leksiyon nga nahuman",
"confirm": "I-mark nga nahuman ang tanang leksiyon nga numero ≤ {n} ni {username} niining kurso?",
"success": "{marked} ka leksiyon nga bag-ong gi-mark nga nahuman ({unchanged} klaro nang nahuman).",
"successNone": "Walay pagbag-o: tanang leksiyon nga naapektuhan ({unchanged}) klaro nang nahuman.",
"error": "Dili ma-mark nga nahuman."
},
"adultVerification": {
"title": "[Admin] - Pag-aprub sa erotik",
"intro": "Ang mga hamtong nga tiggamit makahimo og hangyo sa pag-abli sa erotik nga lugar. Dinhi masusi, ma-aprub o ma-balibaran ang mga hangyo.",
"username": "User",
"age": "Edad",
"statusLabel": "Status",
"requestLabel": "Prueba",
"actions": "Mga aksyon",
"approve": "Aprub",
"reject": "Balibari",
"resetPending": "Ibutang nga pending",
"openDocument": "Ablihi ang dokumento",
"previewTitle": "Preview sa prueba",
"closePreview": "Isira ang preview",
"previewUnavailable": "Walay inline preview niini nga matang sa file.",
"documentMissing": "Wala makit-i ang verification file sa server.",
"empty": "Walay angay nga hangyo.",
"loadError": "Dili makarga ang mga pag-aprub.",
"updateError": "Dili ma-update ang status.",
"documentError": "Dili maablihi ang dokumento.",
"filters": {
"pending": "Pending",
"approved": "Na-aprub",
"rejected": "Gibalibaran",
"all": "Tanan"
},
"status": {
"none": "Wala mangayo",
"pending": "Pending",
"approved": "Na-aprub",
"rejected": "Gibalibaran"
},
"messages": {
"approved": "Gi-aprub na.",
"rejected": "Gibalibaran ang pag-aprub.",
"pending": "Gi-ibalik sa pending ang hangyo."
}
},
"eroticModeration": {
"title": "[Admin] - Moderasyon sa erotik",
"intro": "Ang gi-report nga erotik nga mga hulagway ug video masusi dinhi, matago, matangtang, o i-escalate batok sa account.",
"empty": "Walay angay nga report.",
"loadError": "Dili makarga ang mga report.",
"actionError": "Dili matuman ang aksyon sa moderation.",
"actionSuccess": "Nasave na ang aksyon sa moderation.",
"target": "Target",
"owner": "Tag-iya",
"reporter": "Nag-report",
"reason": "Rason",
"statusLabel": "Status",
"meta": "Oras / aksyon",
"actions": "Mga aksyon",
"image": "Hulagway",
"video": "Video",
"hidden": "Gitago",
"preview": "Preview",
"previewError": "Dili makarga ang preview.",
"dismiss": "Isalikway",
"hide": "Itago",
"restore": "Ibalik",
"delete": "Tangtanga",
"blockUploads": "I-block ang mga upload",
"revokeAccess": "Kuhaa ang erotik access",
"notePrompt": "Nota para niini nga aksyon sa moderation",
"actionLabels": {
"dismiss": "Gisalikway",
"hide_content": "Gitago",
"restore_content": "Gibalik",
"delete_content": "Gitantang",
"block_uploads": "Gi-block ang upload",
"revoke_access": "Gikuha ang access"
},
"filters": {
"open": "Abli",
"actioned": "Naaksyonan",
"dismissed": "Gisalikway",
"all": "Tanan"
},
"status": {
"open": "Abli",
"actioned": "Naaksyonan",
"dismissed": "Gisalikway"
}
},
"rights": {
"add": "Idugang ang katungod",
"select": "Palihog pagpili",
"current": "Karon nga mga katungod"
},
"forum": {
"title": "[Admin] - Forum",
"currentForums": "Anaa nang mga forum",
"edit": "Usba",
"delete": "Tangtanga",
"createForum": "Paghimo",
"forumName": "Titulo",
"create": "Paghimo",
"permissions": {
"label": "Permiso",
"all": "Tanan",
"admin": "Admin lamang",
"teammember": "Miyembro sa team lamang",
"user": "Piniling user lamang",
"age": "Edad 14+ lamang"
},
"selectPermissions": "Palihog pagpili",
"confirmDeleteMessage": "Tinuod nga gusto nimong tangtangon kini nga forum?",
"confirmDeleteTitle": "Tangtanga ang forum"
},
"match3": {
"title": "Pagdumala sa Match3 nga mga level",
"newLevel": "Paghimo og bag-ong level",
"editLevel": "Usba ang level",
"deleteLevel": "Tangtanga ang level",
"confirmDelete": "Tinuod nga gusto nimong tangtangon kini nga level?",
"levelName": "Ngalan",
"levelDescription": "Deskripsiyon",
"boardWidth": "Lapad",
"boardHeight": "Taas",
"moveLimit": "Limit sa lihok",
"levelOrder": "Order",
"boardLayout": "Layout sa board",
"tileTypes": "Anaa nga matang sa tile",
"actions": "Mga aksyon",
"edit": "Usba",
"delete": "Tangtanga",
"save": "I-save",
"cancel": "Kanselahon",
"update": "I-update",
"create": "Paghimo",
"boardControls": {
"fillAll": "I-activate tanan",
"clearAll": "I-deactivate tanan",
"invert": "Baliktad"
},
"loading": "Nagkarga sa mga level …",
"retry": "Suwayi pag-usab",
"availableLevels": "Anaa nga mga level: {count}",
"levelFormat": "Level {number}: {name}",
"levelObjectives": "Mga tumong sa level",
"objectivesTitle": "Kondisyon sa kadaogan",
"addObjective": "Idugang ang tumong",
"removeObjective": "Kuhaa",
"objectiveType": "Matang",
"objectiveTypeScore": "Mangolekta og score",
"objectiveTypeMatches": "Paghimog match",
"objectiveTypeMoves": "Gamita ang mga lihok",
"objectiveTypeTime": "Hupti ang oras",
"objectiveTypeSpecial": "Espesyal nga tumong",
"objectiveOperator": "Operator",
"operatorGreaterEqual": "Mas dako o pareho (≥)",
"operatorLessEqual": "Mas gamay o pareho (≤)",
"operatorEqual": "Pareho (=)",
"operatorGreater": "Mas dako kay (>)",
"operatorLess": "Mas gamay kay (<)",
"objectiveTarget": "Target nga bili",
"objectiveTargetPlaceholder": "pananglitan 100",
"objectiveOrder": "Order",
"objectiveOrderPlaceholder": "1, 2, 3 …",
"objectiveDescription": "Deskripsiyon",
"objectiveDescriptionPlaceholder": "pananglitan mangolekta og 100 puntos",
"objectiveRequired": "Gikinahanglan aron mahuman ang level",
"noObjectives": "Walay kondisyon sa kadaogan. I-klik ang «Idugang ang tumong»."
},
"falukant": {
"edituser": {
"title": "Usba ang Falukant user",
"username": "Ngalan sa user",
"characterName": "Ngalan sa karakter",
"user": "User",
"success": "Nasave na ang mga kausaban.",
"error": "Dili masave ang mga kausaban.",
"errorLoadingBranches": "Sayop sa pagkarga sa mga sangang opisina.",
"errorUpdatingStock": "Sayop sa pag-update sa bodega.",
"stockUpdated": "Malampuson nga na-update ang bodega.",
"search": "Pangita",
"tabs": {
"userdata": "Datos sa user",
"branches": "Mga sangang opisina"
},
"branches": {
"title": "Mga sangang opisina ug bodega",
"noStocks": "Walay bodega",
"noBranches": "Walay nakit-an nga sangang opisina",
"addStock": "Idugang ang bodega",
"stockType": "Matang sa bodega",
"selectStockType": "Pilia ang matang sa bodega",
"quantity": "Kantidad",
"allStocksAdded": "Anaa na ang tanang matang sa bodega"
},
"errorLoadingStockTypes": "Sayop sa pagkarga sa mga matang sa bodega.",
"errorAddingStock": "Sayop sa pagdugang sa bodega.",
"stockAdded": "Malampuson nga nadugang ang bodega.",
"invalidStockData": "Palihog sulodi ang balido nga matang ug kantidad.",
"pregnancy": {
"title": "Pagmabdus (admin)",
"characterId": "ID sa karakter",
"status": "Status",
"statusActive": "Nagpaabot hangtod",
"statusNone": "Dili mabdus",
"fatherId": "ID sa amahan nga karakter (opsyonal)",
"fatherSelect": "Amahan (asawa / nobyo / uyab)",
"fatherNone": "— walay natipig nga amahan —",
"fatherHintList": "Gikan sa relasyon niini nga karakter (kaminyoon, engagement, aktibong uyab).",
"fatherHintManual": "Walay angay nga partner sa database: isulod ang ID sa amahan nga karakter.",
"fatherManualPlaceholder": "ID sa karakter",
"dueDays": "Mga adlaw hangtod sa due date",
"dueDaysHint": "0 = due karon (mahimong mosunod ang pagkatawo depende sa lohika sa dula).",
"force": "Ibutang ang pagmabdus",
"clear": "Tangtanga ang pagmabdus",
"successForce": "Na-set na ang pagmabdus.",
"successClear": "Natangtang na ang pagmabdus.",
"error": "Napakyas ang aksyon.",
"relationship": {
"married": "Asawa",
"engaged": "Nobyo/nobya",
"lover": "Uyab"
}
},
"birth": {
"title": "Pugson ang pagkatawo (admin)",
"motherHint": "Ang karakter sa ibabaw gamiton isip inahan.",
"fatherId": "ID sa amahan nga karakter",
"fatherSelect": "Amahan (asawa / nobyo / uyab)",
"fatherChoose": "— pilia ang amahan —",
"fatherHintList": "Gikan sa relasyon niini nga karakter.",
"fatherHintManual": "Walay partner sa lista: isulod ang ID sa amahan.",
"fatherRequired": "Palihog pilia ang amahan o isulod ang ID sa karakter.",
"context": "Konteksto",
"contextMarriage": "Kaminyoon",
"contextLover": "Uyab",
"legitimacy": "Legitimidad",
"legitimate": "Legitimo",
"ackBastard": "Giila nga bastardo",
"hiddenBastard": "Tago nga bastardo",
"gender": "Sekso sa bata",
"genderRandom": "Random",
"male": "Lalaki",
"female": "Babaye",
"force": "Pugson ang pagkatawo",
"success": "Nahimo ang bata (bautismo pending).",
"error": "Dili mapugos ang pagkatawo."
}
},
"createNPC": {
"title": "Paghimo og mga NPC",
"region": "Lungsod",
"allRegions": "Tanan nga lungsod",
"ageRange": "Sakup sa edad",
"to": "hangtod",
"years": "ka tuig",
"titleRange": "Sakup sa titulo",
"count": "Isip kada kombinasyon lungsodtitulo",
"countHelp": "Kini nga isip himoon sa matag kombinasyon sa napiling lungsod ug titulo.",
"create": "Paghimo og mga NPC",
"creating": "Naghimo …",
"result": "Resulta",
"createdCount": "{count} ka NPC ang nahimo.",
"combinationInfo": "{perCombination} ka NPC matag kombinasyon × {combinations} ka kombinasyon = {count} ka NPC tanan",
"age": "Edad",
"errorLoadingRegions": "Sayop sa pagkarga sa mga lungsod.",
"errorLoadingTitles": "Sayop sa pagkarga sa mga titulo.",
"errorCreating": "Sayop sa paghimo sa mga NPC.",
"invalidAgeRange": "Dili balido nga sakup sa edad.",
"invalidTitleRange": "Dili balido nga sakup sa titulo.",
"invalidCount": "Dili balido nga isip (1500).",
"progress": "Progreso",
"progressDetails": "{current} sa {total} ka NPC ang nahimo",
"timeRemainingSeconds": "Nahibilin nga oras: {seconds} ka segundo",
"timeRemainingMinutes": "Nahibilin nga oras: {minutes} ka minuto {seconds} ka segundo",
"almostDone": "Hapit na …",
"jobNotFound": "Wala makit-i ang trabaho o na-expire na."
}
},
"chatrooms": {
"title": "[Admin] - Pagdumala sa chat room",
"roomName": "Ngalan sa room",
"create": "Paghimo og chat room",
"edit": "Usba ang chat room",
"type": "Matang",
"isPublic": "Makita sa publiko",
"isAdultOnly": "Erotik nga lugar lamang",
"actions": "Mga aksyon",
"genderRestriction": {
"show": "Tugoti ang limit sa sekso",
"label": "Limit sa sekso"
},
"minAge": {
"show": "Butangi ang minimum nga edad",
"label": "Minimum nga edad"
},
"maxAge": {
"show": "Butangi ang maximum nga edad",
"label": "Maximum nga edad"
},
"password": {
"show": "Tugoti ang proteksyon sa password",
"label": "Password"
},
"friendsOfOwnerOnly": "Mga higala sa tag-iya lamang",
"requiredUserRight": {
"show": "Butangi ang gikinahanglan nga katungod sa user",
"label": "Gikinahanglan nga katungod sa user"
},
"roomtype": {
"chat": "Chat",
"dice": "Dado",
"poker": "Poker",
"hangman": "Hangman"
},
"rights": {
"talk": "Makistorya",
"scream": "Mosinggit",
"whisper": "Whisper",
"start game": "Sugdi ang dula",
"open room": "Ablihi ang room",
"systemmessage": "Mensahe sa sistema"
},
"confirmDelete": "Tinuod nga gusto nimong tangtangon kini nga chat room?"
},
"userStatistics": {
"title": "[Admin] - Estadistika sa user",
"totalUsers": "Tanan nga mga user",
"genderDistribution": "Distribusyon sa sekso",
"ageDistribution": "Distribusyon sa edad"
},
"taxiTools": {
"title": "Mga himan sa taxi",
"description": "Pagdumala sa mga mapa, level ug setting sa taxi",
"mapEditor": {
"title": "Usba ang mapa",
"availableMaps": "Anaa nga mga mapa: {count}",
"newMap": "Paghimo og bag-ong mapa",
"mapFormat": "{name} (Posisyon: {x},{y})",
"mapName": "Ngalan sa mapa",
"mapDescription": "Deskripsiyon",
"mapWidth": "Lapad",
"mapHeight": "Taas",
"tileSize": "Sukod sa tile",
"positionX": "Posisyon X",
"positionY": "Posisyon Y",
"mapType": "Matang sa mapa",
"mapLayout": "Layout sa mapa",
"tilePalette": "Palette sa tile",
"streetNames": "Ngalan sa dalan",
"extraElements": "Dugang nga elemento",
"streetNameHorizontal": "Ngalan sa dalan (pahigda)",
"streetNameVertical": "Ngalan sa dalan (patindog)",
"continueHorizontal": "Padayon sa laing direksiyon (→)",
"continueVertical": "Padayon sa laing direksiyon (↓)",
"continueOther": "Padayon sa laing direksiyon",
"position": "Posisyon",
"fillAllRoads": "Tanan nga dalan",
"clearAll": "Hawani tanan",
"generateRandom": "Himoa nga random",
"delete": "Tangtanga",
"update": "I-update",
"cancel": "Kanselahon",
"create": "Paghimo",
"createSuccess": "Malampuson nga nahimo ang mapa!",
"updateSuccess": "Malampuson nga na-update ang mapa!",
"deleteSuccess": "Malampuson nga natangtang ang mapa!"
}
},
"servicesStatus": {
"title": "Status sa serbisyo",
"description": "Tan-awa ang status sa Backend, Chat ug Daemon",
"status": {
"connected": "Na-connect",
"connecting": "Nag-connect …",
"disconnected": "Wala na-connect",
"error": "Sayop",
"unknown": "Wala mailhi"
},
"backend": {
"title": "Backend",
"connected": "Naabot ang backend service ug na-connect"
},
"chat": {
"title": "Chat",
"connected": "Naabot ang chat service ug na-connect"
},
"daemon": {
"title": "Daemon",
"connected": "Naabot ang daemon service ug na-connect",
"connections": {
"title": "Aktibong mga koneksiyon",
"none": "Walay aktibong koneksiyon",
"userId": "ID sa user",
"username": "Ngalan sa user",
"connections": "mga koneksiyon",
"duration": "Gidugayon sa koneksiyon",
"lastPong": "Panahon sukad sa kataposang pong",
"pingTimeouts": "Mga timeout sa ping",
"pongReceived": "Nadawat ang pong",
"yes": "Oo",
"no": "Dili",
"notConnected": "Wala na-connect ang daemon",
"sendError": "Sayop sa pagpadala sa hangyo",
"error": "Sayop sa pagkuha sa mga koneksiyon"
},
"websocketLog": {
"title": "Log sa WebSocket",
"showLog": "Ipakita ang WebSocket log",
"refresh": "I-refresh",
"loading": "Nagkarga …",
"close": "Isira",
"entryCount": "{count} ka entry",
"noEntries": "Walay entry sa log",
"notConnected": "Wala na-connect ang daemon",
"sendError": "Sayop sa pagpadala sa hangyo",
"parseError": "Sayop sa pag-parse sa tubag",
"timestamp": "Timestamp",
"direction": "Direksiyon",
"peer": "Peer",
"connUser": "User sa koneksiyon",
"targetUser": "Target nga user",
"event": "Hitabo"
}
}
}
}
}
}

File diff suppressed because it is too large Load Diff

View File

@@ -15,7 +15,18 @@
"error-title": "Sayop",
"warning-title": "Pasidaan",
"info-title": "Impormasyon",
"dialog": {
"contact": {
"email": "Adres sa email",
"name": "Pangalan",
"message": "Imong mensahe kanamo",
"accept": "Ang imong email address temporaryong matipigan sa among sistema. Human masusi ang imong hangyo, matangtang na usab ang email.",
"acceptdatasave": "Mituyo ko sa temporaryong pagtipig sa akong email address.",
"accept2": "Kung wala niini, dili mi makatubag kanimo."
}
},
"general": {
"datetimelong": "dd.MM.yyyy HH:mm:ss",
"loading": "Nagkarga...",
"back": "Balik",
"cancel": "Kanselahon",

View File

@@ -3,16 +3,135 @@
"personal": {
"title": "Personal nga datos",
"label": {
"language": "Pinulongan"
"language": "Pinulongan",
"birthdate": "Petsa sa pagkatawo",
"gender": "Sekso",
"town": "Lungsod",
"zip": "ZIP",
"eyecolor": "Kolor sa mata",
"haircolor": "Kolor sa buhok",
"hairlength": "Taas sa buhok",
"skincolor": "Kolor sa panit",
"freckles": "Mga batik",
"weight": "Timbang",
"bodyheight": "Gitas-on",
"piercings": "Mga piercing",
"tattoos": "Mga tattoo",
"sexualpreference": "Oryentasyon",
"pubichair": "Buhok sa pribado",
"penislength": "Taas sa penis",
"brasize": "Sukod sa bra",
"willChildren": "Gusto og anak",
"smokes": "Pagpanigarilyo",
"drinks": "Pag-inom og alkohol",
"hasChildren": "Naay mga anak",
"interestedInGender": "Interesado sa"
},
"tooltip": {
"language": "Pinulongan"
"language": "Pinulongan",
"birthdate": "Petsa sa pagkatawo",
"gender": "Sekso",
"town": "Lungsod",
"zip": "ZIP",
"eyecolor": "Kolor sa mata",
"haircolor": "Kolor sa buhok",
"hairlength": "Taas sa buhok",
"skincolor": "Kolor sa panit",
"freckles": "Mga batik",
"weight": "Timbang",
"bodyheight": "Gitas-on",
"piercings": "Mga piercing",
"tattoos": "Mga tattoo",
"sexualpreference": "Oryentasyon",
"pubichair": "Buhok sa pribado",
"penislength": "Taas sa penis",
"brasize": "Sukod sa bra"
},
"gender": {
"male": "Lalaki",
"female": "Babaye",
"transmale": "Trans nga babaye",
"transfemale": "Trans nga lalaki",
"nonbinary": "Dili binaryo"
},
"language": {
"de": "Aleman",
"en": "Iningles",
"ceb": "Bisaya",
"es": "Espanyol"
},
"eyecolor": {
"blue": "Asul",
"green": "Berde",
"brown": "Brown",
"black": "Itom",
"grey": "Abohon",
"hazel": "Hazel",
"amber": "Amber",
"red": "Pula",
"other": "Uban"
},
"haircolor": {
"black": "Itom",
"brown": "Brown",
"blonde": "Blonde",
"red": "Pula",
"grey": "Abohon",
"white": "Puti",
"other": "Uban"
},
"hairlength": {
"short": "Mubo",
"medium": "Tunga-tunga",
"long": "Taas",
"bald": "Kalbo",
"other": "Uban"
},
"skincolor": {
"light": "Klaro",
"medium": "Tunga-tunga",
"dark": "Itom",
"other": "Uban"
},
"freckles": {
"much": "Daghan",
"medium": "Tunga-tunga",
"less": "Ubos",
"none": "Wala"
},
"sexualpreference": {
"straight": "Heterosexual",
"gay": "Homosexual",
"bi": "Bisexual",
"asexual": "Asexual",
"pan": "Pansexual"
},
"pubichair": {
"none": "Wala",
"short": "Mubo",
"medium": "Tunga-tunga",
"long": "Taas",
"hairy": "Natural",
"waxed": "Wax",
"landingstrip": "Landing strip",
"bikinizone": "Zona sa bikini lamang",
"other": "Uban"
},
"interestedInGender": {
"male": "Mga lalaki",
"female": "Mga babaye"
},
"smokes": {
"often": "Kanunay",
"socially": "Kung kauban",
"daily": "Adlaw-adlaw",
"never": "Dili gayud"
},
"drinks": {
"often": "Kanunay",
"socially": "Kung kauban",
"daily": "Adlaw-adlaw",
"never": "Dili gayud"
}
},
"view": {
@@ -25,11 +144,12 @@
"title": "Account",
"heroEyebrow": "Mga setting",
"heroIntro": "Atimana ang ngalan sa user, email, password ug visibility sa usa ka lugar.",
"language": "Pinulongan",
"username": "Ngalan sa user",
"email": "E-mail address",
"newpassword": "Password",
"newpasswordretype": "Usba ang password",
"deleteAccount": "Tangtanga ang account",
"language": "Pinulongan",
"showinsearch": "Ipakita sa pagpangita sa user",
"changeaction": "Usba ang datos sa user",
"oldpassword": "Karaan nga password (gikinahanglan)",
@@ -41,19 +161,88 @@
"feedback": {
"saved": "Malampuson nga nasave ang account settings.",
"saveError": "Adunay sayop sa pagsave sa account settings."
},
"adultAccessTitle": "Erotik nga lugar",
"adultAccessIntro": "Ang erotik nga lugar para lamang sa hamtong nga mga tiggamit ug gikinahanglan usab og pag-aprub sa moderator.",
"requestAdultVerification": "Mangayo og pag-abli",
"requestAdultVerificationSuccess": "Napadala na ang hangyo sa pag-abli.",
"requestAdultVerificationError": "Dili mapadala ang hangyo sa pag-abli.",
"adultStatus": {
"ineligible": {
"title": "Dili available",
"body": "Ang erotik nga lugar makita lamang sa hamtong nga mga tiggamit."
},
"none": {
"title": "Wala pa ma-abli",
"body": "Makita ang lugar, pero naka-lock pa hangtod sa pag-susi sa moderator."
},
"pending": {
"title": "Naghuwat sa pagsusi",
"body": "Ang imong hangyo naghuwat sa moderation. Naka-lock pa ang lugar hangtod ma-aprub."
},
"approved": {
"title": "Na-abli na",
"body": "Ang erotik nga lugar na-abli na para sa imong account."
},
"rejected": {
"title": "Gibalibaran ang pag-abli",
"body": "Ang kataposang hangyo wala ma-aprub. Mahimo kang magpadala og bag-ong hangyo."
}
}
},
"flirt": {
"title": "Flirt"
"languageAssistant": {
"eyebrow": "Mga setting",
"title": "Katabang sa pinulongan ug AI",
"intro": "Dinhi makatipig ka og kaugalingong API access (pananglitan OpenAI) nga magamit sa plataporma para sa mga bahin sa kurso sa pinulongan. Ang yabi gisave nga encrypted sa server; kinahanglan nimo og account sa provider.",
"linkSignup": "Paghimo og account sa OpenAI (bag-ong bintana)",
"linkApiKeys": "Pagdumala sa API keys sa OpenAI (bag-ong bintana)",
"enabled": "Tugoti ang paggamit para sa mga bahin sa pinulongan",
"baseUrl": "API base URL (opsyonal)",
"baseUrlPlaceholder": "Walay sulod = default (OpenAI). Para sa Ollama pananglitan http://127.0.0.1:11434/v1",
"model": "Ngalan sa modelo",
"apiKey": "API key",
"apiKeyHint": "Biyai nga walay sulod aron mapadayon ang natipig nga yabi.",
"apiKeyPlaceholderNew": "I-paste ang bag-ong yabi",
"apiKeyPlaceholderHasKey": "Ang natipig nagtapos sa …{last4} — walay sulod = padayon",
"apiKeyPlaceholderClear": "Ma-clear ang tipigan kung mag-save ka nga “tangtanga ang yabi” sa ubos",
"clearKey": "Tangtanga ang natipig nga API key",
"save": "I-save",
"saved": "Nasave na ang mga setting.",
"saveError": "Dili masave.",
"confirmClear": "Tinuod nga tangtangon ang API key?",
"keyStatusStored": "Naa ang API key nga natipig.",
"keyStatusInvalid": "Naa ang natipig nga API key pero dili mabasa. Palihog i-save pag-usab.",
"keyStatusMissing": "Walay natipig nga API key karon."
},
"interests": {
"title": "Mga interes",
"new": "Bag-ong interes",
"add": "Idugang"
"add": "Idugang",
"added": "Ang bag-ong interes gidugang na ug gisusi pa. Dili pa makita sa lista hangtod mahuman.",
"adderror": "Sayop sa pagdugang sa interes.",
"errorsetinterest": "Dili ma-book ang interes para nimo."
},
"visibility": {
"Invisible": "Ayaw ipakita",
"OnlyFriends": "Mga higala lamang",
"FriendsAndAdults": "Mga higala ug mga hamtong",
"AdultsOnly": "Mga hamtong lamang",
"All": "Ipakita sa tanan"
},
"feedback": {
"updateError": "Dili masave ang kausaban.",
"visibilityUpdateError": "Dili ma-update ang visibility."
},
"flirt": {
"title": "Flirt"
},
"immutable": {
"tooltip": "Kini nga field dili mausab. Para sa kausaban, kontaka ang support.",
"supportContact": "Kontaka ang support",
"supportMessage": {
"general": "Hello,\n\ngusto nako mangayo og kausaban sa akong profile nga dili mausab.\n\nPalihog kontaka ko para sa dugang detalye.\n\nSalamat",
"specific": "Hello,\n\ngusto nako mangayo og kausaban niini nga dili mausab nga datos sa profile: {fields}\n\nPalihog kontaka ko para sa dugang detalye.\n\nSalamat"
}
}
}
}

File diff suppressed because it is too large Load Diff

View File

@@ -1,11 +1,61 @@
{
"blog": {
"blog": {
"posts": "Publicaciones",
"noPosts": "No hay publicaciones.",
"newPost": "Escribir nueva publicación",
"title": "Blog",
"title": "Título",
"publish": "Publicar",
"pickImage": "Seleccionar imagen",
"uploadImage": "Subir imagen"
"uploadImage": "Subir imagen",
"list": {
"eyebrow": "Blogs de la comunidad",
"title": "Blogs",
"intro": "Artículos, avances de proyectos y miradas personales de la comunidad YourPart.",
"create": "Crear nuevo blog",
"loading": "Cargando…",
"empty": "No se han encontrado blogs.",
"by": "por",
"unknownAuthor": "Desconocido",
"open": "Ir al blog",
"fallbackExcerpt": "Entradas públicas, ideas y avances de proyectos de la comunidad."
},
"view": {
"loading": "Cargando…",
"edit": "Editar",
"entriesCount": "{count} entradas",
"empty": "No hay entradas.",
"fallbackDescription": "Blog público de la comunidad en YourPart.",
"notFoundTitle": "Blog no encontrado | YourPart",
"notFoundDescription": "No se pudo cargar el blog solicitado."
},
"editor": {
"createTitle": "Crear blog",
"editTitle": "Editar blog",
"description": "Descripción",
"visibility": "Visibilidad",
"visibilityPublic": "Público",
"visibilityLoggedIn": "Solo usuarios con sesión iniciada",
"ageRange": "Rango de edad",
"gender": "Género",
"genderMale": "Masculino",
"genderFemale": "Femenino",
"save": "Guardar",
"newPostTitle": "Nueva entrada",
"addPost": "Añadir entrada",
"shareTitle": "Compartir blog",
"url": "URL",
"copyLink": "Copiar enlace",
"shareToFriends": "Enviar a amigos",
"emailAddresses": "Direcciones de correo (separadas por comas)",
"send": "Enviar",
"restrictedHint": "Nota: este blog no es público. Los destinatarios pueden necesitar iniciar sesión y permisos de edad/género adecuados.",
"invalidAgeRange": "Rango de edad no válido",
"copySuccess": "Enlace copiado",
"copyError": "No se pudo copiar",
"shareError": "Error al compartir",
"emailError": "Error al enviar el correo",
"friendsSent": "Enviado a {count} amigo(s).",
"emailsSent": "{count} correo(s) enviado(s)."
}
}
}

View File

@@ -37,6 +37,9 @@
},
"notifications": {
"notify_election_created": "Se ha convocado una nueva elección.",
"director_death": "{characterName} ha fallecido a la edad de {ageYears} años. Como empleador debes nombrar un nuevo director.{regionLabel}{spouses}{children}{lovers}",
"relationship_death": "{characterName} ha fallecido a la edad de {ageYears} años.{regionLabel}{spouses}{children}{lovers}",
"child_death": "Tu hijo/a {characterName} ha fallecido a la edad de {ageYears} años.{regionLabel}",
"production": {
"overproduction": "Sobreproducción: tu producción está un {value}% por encima de la demanda."
},
@@ -118,12 +121,22 @@
},
"overview": {
"title": "Falukant - Resumen",
"heroIntro": "Tu situación en economía, familia y patrimonio, de un vistazo.",
"heirSelection": {
"title": "Elección de heredero",
"description": "Tu personaje anterior ya no está disponible. Elige un heredero de la lista para seguir jugando.",
"loading": "Cargando posibles herederos…",
"noHeirs": "No hay herederos disponibles.",
"select": "Elegir como personaje",
"error": "Error al elegir al heredero."
},
"metadata": {
"title": "Datos personales",
"name": "Nombre",
"money": "Patrimonio",
"age": "Edad",
"years": "años",
"days": "días",
"mainbranch": "Ciudad natal",
"nobleTitle": "Rango",
"certificate": "Certificado"
@@ -171,6 +184,16 @@
"two_of": "Al menos dos condiciones de estatus"
}
},
"summary": {
"certificateHint": "Determina qué categorías de producto puedes fabricar ahora.",
"branches": "Sucursales",
"branchesHint": "Acceso directo a tus principales ubicaciones.",
"productions": "Producciones activas",
"productionsHint": "Producciones en curso que pronto requieren conclusión o control.",
"stock": "Posiciones de almacén",
"stockHint": "Vista resumida del inventario en todas las regiones.",
"open": "Abrir"
},
"productions": {
"title": "Producciones"
},
@@ -196,6 +219,8 @@
"toddler": "niño pequeño",
"child": "niño",
"adolescence": "joven",
"teen": "jovencito",
"youngAdult": "joven adulto",
"adult": "hombre",
"mature": "señor",
"elder": "anciano"
@@ -205,6 +230,8 @@
"toddler": "niña pequeña",
"child": "niña",
"adolescence": "joven",
"teen": "jovencita",
"youngAdult": "joven adulta",
"adult": "mujer",
"mature": "señora",
"elder": "anciana"
@@ -256,6 +283,8 @@
},
"branch": {
"title": "Sucursal",
"heroEyebrow": "Sucursal",
"heroIntro": "Producción, almacén, venta y transporte en un panel ligado al mundo del juego.",
"debtorsPrison": {
"branchLocked": "En la prisión por deudas se bloquean los nuevos pasos económicos. Las sucursales cerradas o embargadas también se reflejarán aquí.",
"branchRisk": "Tu mora pone en peligro sucursales, vehículos y mercancías almacenadas.",
@@ -393,7 +422,10 @@
"current": "Producciones en curso",
"product": "Producto",
"remainingTime": "Tiempo restante (segundos)",
"noProductions": "No hay producciones en curso."
"noProductions": "No hay producciones en curso.",
"status": "Estado",
"sleep": "En pausa",
"active": "Activo"
},
"columns": {
"city": "Ciudad",
@@ -792,6 +824,23 @@
"time": "Hora",
"prev": "Anterior",
"next": "Siguiente",
"graph": {
"open": "Mostrar evolución",
"title": "Evolución del dinero",
"close": "Cerrar",
"loading": "Cargando historial…",
"noData": "No hay movimientos en el periodo seleccionado.",
"yesterday": "Ayer",
"range": {
"label": "Periodo",
"today": "Hoy",
"24h": "Últimas 24 horas",
"week": "Última semana",
"month": "Último mes",
"year": "Último año",
"all": "Todo el historial"
}
},
"activities": {
"Product sale": "Productos vendidos",
"Production cost": "Costes de producción",
@@ -882,7 +931,8 @@
"apathetic": "Apático",
"relieved": "Aliviado",
"proud": "Orgulloso",
"ashamed": "Avergonzado"
"ashamed": "Avergonzado",
"calm": "Tranquilo"
},
"character": {
"brave": "Valiente",
@@ -1027,7 +1077,34 @@
"reputation": {
"title": "Reputación",
"overview": {
"title": "Resumen"
"title": "Resumen",
"current": "Reputación actual"
},
"actions": {
"title": "Acciones de reputación",
"description": "Puedes realizar distintas acciones para mejorar tu reputación.",
"none": "No hay acciones de reputación disponibles.",
"action": "Acción",
"cost": "Coste",
"gain": "Ganancia",
"timesUsed": "Usado",
"execute": "Ejecutar",
"running": "En curso…",
"dailyLimit": "Límite diario: quedan {remaining} de {cap} acciones",
"cooldown": "Enfriamiento: aún {minutes} minutos",
"type": {
"soup_kitchen": "Comedor social",
"library_donation": "Donación a la biblioteca",
"scholarships": "Becas",
"church_hospice": "Hospicio eclesiástico",
"school_funding": "Financiación escolar",
"orphanage_build": "Construir orfanato",
"bridge_build": "Construir puente",
"hospital_donation": "Donación al hospital",
"patronage": "Mecenazgo",
"statue_build": "Erigir estatua",
"well_build": "Construir pozo"
}
},
"party": {
"title": "Fiestas",
@@ -1078,6 +1155,17 @@
},
"church": {
"title": "Iglesia",
"offices": {
"lay-preacher": "Predicador laico",
"village-priest": "Párroco del pueblo",
"parish-priest": "Párroco",
"dean": "Decano",
"archdeacon": "Arcediano",
"bishop": "Obispo",
"archbishop": "Arzobispo",
"cardinal": "Cardenal",
"pope": "Papa"
},
"tabs": {
"baptism": "Bautizos",
"current": "Cargos actuales",
@@ -1254,7 +1342,12 @@
"drunkOfLife": "Elixir de la vida",
"barber": "Barbero"
},
"choose": "Por favor, selecciona"
"choose": "Por favor, selecciona",
"errors": {
"tooClose": "No puedes aplicar medidas tan a menudo.",
"generic": "Se ha producido un error."
},
"nextMeasureAt": "Próxima medida a partir de"
},
"politics": {
"title": "Política",
@@ -1264,6 +1357,10 @@
"upcoming": "Cargos pendientes de (re)elección",
"elections": "Elecciones"
},
"bookmarkCandidate": "Recordar esta candidatura",
"voteError": "Error al emitir el voto",
"voteAllError": "Error al emitir los votos",
"applyError": "No se pudo enviar la candidatura.",
"benefits": {
"daily_salary": "Estipendio diario (una vez al día): {amount}",
"tax_exemption": "Exención fiscal: {regions}",
@@ -1326,9 +1423,13 @@
"region": "Región",
"date": "Fecha",
"candidacy": "Candidatura",
"candidacyWithAge": "Candidatura (desde 16 años)",
"none": "No hay cargos abiertos.",
"apply": "Presentarse a los cargos seleccionados"
"apply": "Presentarse a los cargos seleccionados",
"minAgeHint": "La candidatura solo es posible a partir de 16 años.",
"ageRequirement": "Para todos los cargos políticos: candidatura solo a partir de 16 años."
},
"too_young": "Tu personaje es demasiado joven. La candidatura solo es posible a partir de 16 años.",
"upcoming": {
"office": "Cargo",
"region": "Región",

View File

@@ -32,7 +32,13 @@
"totalScore": "Puntuación total",
"totalStars": "Estrellas totales",
"levelsCompleted": "Niveles completados",
"restartCampaign": "Reiniciar campaña"
"restartCampaign": "Reiniciar campaña",
"nextStep": "Siguiente paso",
"objectivesCollapse": "Ocultar objetivos",
"objectivesShow": "Mostrar objetivos",
"objectives": "Objetivos",
"loadingBoard": "Preparando el tablero…",
"loadingHint": "Sincronizando datos del nivel, objetivos y disposición del campo."
},
"taxi": {
"title": "Taxi Simulator",
@@ -64,6 +70,34 @@
"refuel": "Repostar",
"startEngine": "Arrancar motor",
"stopEngine": "Parar motor",
"controls": "Controles",
"accelerate": "Acelerar",
"brake": "Frenar",
"steerRight": "Girar a la derecha",
"steerLeft": "Girar a la izquierda",
"goals": "Objetivos",
"avoidCollisions": "Evita colisiones con otros vehículos",
"streetNames": "Nombres de calles",
"remainingVehicles": "Vehículos restantes",
"fuelTitle": "Combustible",
"pointsTitle": "Puntos",
"speedViolations": "Infracciones de velocidad",
"redLightsPassed": "Semáforos en rojo saltados",
"highscore": "Récords",
"topPlayers": "Top 20 jugadores",
"loadingHighscore": "Cargando récords…",
"noHighscore": "Aún no hay récords",
"pointsShort": "pts",
"backToGame": "Volver al juego",
"minimap": "Minimapa",
"loadedPassengers": "Pasajeros a bordo",
"waitingPassengers": "Pasajeros en espera",
"noPassengersInTaxi": "No hay pasajeros en el taxi",
"noWaitingPassengers": "No hay pasajeros esperando",
"name": "Nombre",
"destination": "Destino",
"bonus": "Bonificación",
"time": "Tiempo",
"crash": {
"title": "¡Accidente!",
"message": "¡Has tenido un accidente! Choques: {crashes}"

View File

@@ -1,9 +1,13 @@
{
"passwordReset": {
"title": "Restablecer contraseña",
"email": "E-Mail",
"passwordReset": {
"title": "Restablecer contraseña",
"email": "Correo electrónico",
"reset": "Restablecer",
"success": "Si el correo electrónico existe, se ha enviado una guía para restablecer la contraseña.",
"failure": "No se pudo restablecer la contraseña. Inténtalo de nuevo más tarde."
"success": "Si el correo existe, se ha enviado una guía para restablecer la contraseña.",
"failure": "No se pudo restablecer la contraseña. Inténtalo de nuevo más tarde.",
"emailHint": "Enviaremos el enlace a la dirección de correo registrada.",
"validation": {
"invalidEmail": "Introduce una dirección de correo válida."
}
}
}

View File

@@ -1,21 +1,29 @@
{
"register": {
"title": "Registrarse",
"email": "Dirección de correo electrónico",
"username": "Nombre de usuario",
"password": "Contraseña",
"repeatPassword": "Repetir contraseña",
"language": "Idioma",
"languages": {
"en": "Inglés",
"de": "Alemán"
},
"register": "Registrarse",
"close": "Cerrar",
"failure": "Se ha producido un error.",
"success": "Te has registrado correctamente. Revisa tu correo electrónico para activar tu cuenta.",
"passwordMismatch": "Las contraseñas no coinciden.",
"emailinuse": "La dirección de correo electrónico ya está en uso.",
"usernameinuse": "El nombre de usuario no está disponible."
"register": {
"title": "Registrarse en yourPart",
"email": "Dirección de correo electrónico",
"username": "Nombre de usuario",
"password": "Contraseña",
"repeatPassword": "Repetir contraseña",
"language": "Idioma",
"languages": {
"en": "Inglés",
"de": "Alemán",
"ceb": "Bisaya",
"es": "Español"
},
"register": "Registrarse",
"close": "Cerrar",
"failure": "Se ha producido un error.",
"success": "Te has registrado correctamente. Revisa tu correo para activar tu cuenta.",
"passwordMismatch": "Las contraseñas no coinciden.",
"emailinuse": "La dirección de correo ya está en uso.",
"usernameinuse": "El nombre de usuario no está disponible.",
"validation": {
"invalidEmail": "Introduce una dirección de correo válida.",
"usernameTooShort": "El nombre de usuario debe tener al menos 3 caracteres.",
"passwordHint": "Al menos 8 caracteres.",
"passwordTooShort": "La contraseña es demasiado corta."
}
}
}

View File

@@ -142,6 +142,8 @@
},
"account": {
"title": "Account",
"heroEyebrow": "Ajustes",
"heroIntro": "Gestiona nombre de usuario, correo, contraseña y visibilidad en un solo lugar.",
"username": "Nombre de usuario",
"email": "Dirección de correo electrónico",
"newpassword": "Contraseña",
@@ -151,6 +153,15 @@
"showinsearch": "Mostrar en búsquedas de usuarios",
"changeaction": "Actualizar datos de usuario",
"oldpassword": "Contraseña anterior (obligatoria)",
"validation": {
"newPasswordTooShort": "La nueva contraseña debe tener al menos 8 caracteres.",
"passwordMismatch": "Las contraseñas no coinciden.",
"oldPasswordRequired": "Se necesita la contraseña actual para cambiarla."
},
"feedback": {
"saved": "Los ajustes de la cuenta se guardaron correctamente.",
"saveError": "Se produjo un error al guardar los ajustes de la cuenta."
},
"adultAccessTitle": "Área erótica",
"adultAccessIntro": "El área erótica está destinada solo a usuarios adultos y además requiere aprobación de moderación.",
"requestAdultVerification": "Solicitar acceso",
@@ -218,6 +229,10 @@
"AdultsOnly": "Solo adultos",
"All": "Mostrar a todos"
},
"feedback": {
"updateError": "No se pudo guardar el cambio.",
"visibilityUpdateError": "No se pudo actualizar la visibilidad."
},
"flirt": {
"title": "Flirt"
},