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

@@ -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"
}
}
}
}
}
}