feat(localization): expand language support and enhance UI for user settings
All checks were successful
Deploy to production / deploy (push) Successful in 3m0s

- Added support for additional UI locales including Cebuano and Spanish, improving accessibility for a broader user base.
- Updated language selection components in the AppHeader and SettingsWidget to reflect new language options, enhancing user experience.
- Enhanced localization of various UI elements across components, ensuring consistent language representation and improved user engagement.
- Implemented logic to synchronize user language preferences with backend settings, providing a seamless experience when changing languages.
This commit is contained in:
Torsten Schulz (local)
2026-04-02 07:54:44 +02:00
parent ac5d436a36
commit 6d9d69dc10
72 changed files with 1792 additions and 343 deletions

View File

@@ -1,11 +1,16 @@
{
"socialnetwork": {
"usersearch": {
"kicker": "Pagpangita sa komunidad",
"intro": "Pangitaa ang angay nga mga kontak sa komunidad pinaagi sa ngalan, edad ug sekso.",
"ageSeparator": "hangtod",
"resultsCount": "{count} ka resulta",
"openProfile": "Ablihi ang profile",
"title": "Pagpangita og user",
"username": "Username",
"username": "Ngalan sa user",
"age_from": "Edad gikan sa",
"age_to": "hangtod",
"gender": "Gender",
"gender": "Sekso",
"search_button": "Pangita",
"no_results": "Walay nakit-an nga resulta",
"results_title": "Mga resulta sa pagpangita:",
@@ -22,8 +27,8 @@
"tab": {
"general": "Kinatibuk-an",
"sexuality": "Sekswalidad",
"images": "Gallery",
"guestbook": "Guestbook"
"images": "Galeriya",
"guestbook": "Libro sa bisita"
},
"values": {
"bool": {
@@ -71,7 +76,8 @@
"hideInput": "Tagoa ang bag-ong entry",
"imageUpload": "Hulagway",
"submit": "Ipadala ang entry",
"noEntries": "Walay entry nga nakit-an"
"noEntries": "Walay entry nga nakit-an",
"entryImageAlt": "Hulagway sa entry sa libro sa bisita"
},
"interestedInGender": "Interesado sa",
"hasChildren": "Naay mga anak",
@@ -80,7 +86,7 @@
"willChildren": "Gusto og anak",
"sexualpreference": "Sekswal nga oryentasyon",
"language": "Pinulongan",
"gender": "Gender",
"gender": "Sekso",
"birthdate": "Petsa sa pagkatawo",
"age": "Edad",
"town": "Lungsod",
@@ -88,7 +94,9 @@
"weight": "Timbang"
},
"gallery": {
"title": "Gallery",
"kicker": "Mga hulagway ug folder",
"intro": "Organisaha ang imong kaugalingong sulod, kontrola ang makita, ug ihan-ay sa mga folder.",
"title": "Galeriya",
"folders": "Mga folder",
"create_folder": "Paghimo og folder",
"upload": {
@@ -130,19 +138,26 @@
},
"show_image_dialog": {
"title": "Hulagway"
}
},
"imagePreviewAlt": "Preview sa hulagway",
"imageLoadingAlt": "Nag-load ang hulagway"
},
"guestbook": {
"title": "Guestbook",
"kicker": "Libro sa bisita",
"intro": "Mga mensahe, feedback ug gagmayng hulagway sa imong network.",
"title": "Libro sa bisita",
"prevPage": "Balik",
"nextPage": "Sunod",
"page": "Panid"
},
"diary": {
"title": "Diary",
"noEntries": "Wala ka pay nahimong diary entries.",
"newEntry": "Bag-ong diary entry",
"editEntry": "Usba ang diary entry",
"kicker": "Personal nga mga entry",
"intro": "Mga hunahuna, nota ug mubo nga update sa usa ka malinawon ug personal nga tan-aw.",
"placeholder": "Isulat dinhi ang imong entry sa talaarawan...",
"title": "Talaarawan",
"noEntries": "Wala ka pay mga entry sa talaarawan.",
"newEntry": "Bag-ong entry sa talaarawan",
"editEntry": "Usba ang entry sa talaarawan",
"save": "I-save",
"update": "I-update",
"cancel": "I-cancel",
@@ -154,12 +169,22 @@
"page": "Panid"
},
"forum": {
"kicker": "Forum sa komunidad",
"intro": "Mga hilisgutan, diskusyon ug bag-ong post sa usa ka organisado nga lugar.",
"createTitle": "Paghimo og bag-ong hilisgutan",
"createIntro": "Ibutang una ang titulo, dayon isulat ang post ug dayon i-publish dayon.",
"cancelCreation": "Kanselahon",
"creationHint": "Kinahanglan mapun-an ang titulo ug sulod.",
"communityFallback": "Komunidad",
"topicIntro": "Mga diskusyon, tubag ug bag-ong post sa usa ka mas nakapokus nga pagbasa.",
"topicCreated": "Malampuson nga nahimo ang hilisgutan.",
"topicCreateError": "Adunay sayop sa paghimo sa hilisgutan",
"title": "Forum",
"showNewTopic": "Paghimo og bag-ong topic",
"hideNewTopic": "I-cancel ang paghimo",
"noTitles": "Walay topic nga available",
"topic": "Topic",
"createNewTopic": "Paghimo og topic",
"topic": "Hilisgutan",
"createNewTopic": "Paghimo og hilisgutan",
"createdBy": "Gihimo ni",
"createdAt": "Gihimo sa",
"reactions": "Reaksiyon",
@@ -190,7 +215,174 @@
"lockedShort": "Magamit ra kini nga area human sa moderator approval.",
"requestVerification": "Mangayo og access",
"requestSent": "Napadala na ang access request.",
"requestError": "Wala mapadala ang access request."
"requestError": "Wala mapadala ang access request.",
"picturesTitle": "Erotic nga mga hulagway",
"picturesIntro": "Ang imong mga sulod magpabiling bulag gikan sa kasagarang galeriya. Dinhi nimo dumalahon ang mga hulagway para sa naablihang erotic area.",
"uploadTitle": "Pag-upload og erotic nga hulagway",
"noimages": "Wala pay hulagway niining erotic nga folder.",
"videosTitle": "Erotic nga mga video",
"videosIntro": "Ang imong kaugalingong mga video dumalahon nga bulag sa normal nga social area. Dinhi nimo organisahon ang uploads, visibility ug moderation status sa usa ka lugar.",
"videoUploadTitle": "Pag-upload og erotic nga video",
"videoUploadHint": "Pag-upload dinhi og mga video para sa imong naablihang erotic area ug pun-a dayon ang titulo ug deskripsiyon.",
"videoDescription": "Deskripsiyon",
"videoFile": "File sa video",
"videoFormats": "MP4, WEBM, OGG, MOV",
"myVideos": "Akong mga video",
"sharedVideos": "Mga gi-share nga video",
"foreignVideosIntro": "Mga gi-share nga video gikan sa adult area.",
"foreignVideosOnlyHint": "Dinhi makita lang nimo ang mga video nga gi-share para nimo sa adult area.",
"sharedVideosIntro": "Makita nga mga video gikan sa gi-share nga adult areas.",
"noSharedVideos": "Wala pay gi-share nga mga video para nimo karon.",
"libraryTitle": "Bibliyoteka",
"libraryIntro": "Ang imong uploads, visibility ug reports sa usa ka lugar.",
"libraryEmptyHint": "Paghimo una sa wala ang imong unang video ug dayon dumalaha kini dinhi sa bibliyoteka.",
"latestUpload": "Pinakabag-ong upload",
"visibleVideos": "Makita nga mga video",
"moderationCases": "Mga kaso sa moderation",
"notesTitle": "Mga pahimangno",
"friendsVisibilityHint": "Makakita ra ang mga higala sa sulod kung hamtong sila ug naablihan para sa adult area.",
"selectedUsersVisibilityHint": "Ang mga tawo nga espesipikong gi-share-an kinahanglan usab nga hamtong ug naablihan.",
"selectedUsersPlaceholder": "anna, bert, clara",
"imagePreviewAlt": "Preview sa hulagway",
"imageLoadingAlt": "Nag-load ang hulagway",
"untitled": "Walay titulo",
"noUploadYet": "Wala pay upload",
"closeEditing": "Isira ang pag-edit",
"editVisibility": "Usba ang visibility",
"reportAction": "Ireport",
"reportHint": "Gamita ang {action} direkta sa maong entry kung ang sulod kinahanglan susihon.",
"reportNote": "Mubo nga nota para sa moderation",
"submitReport": "Ipadala ang report",
"reportSubmitted": "Natala na ang report.",
"reportError": "Dili masave ang report.",
"moderationHidden": "Gitago sa moderation",
"hiddenByModeration": "Kini nga sulod temporaryong gitago sa moderation.",
"reportReasons": {
"suspected_minor": "Suspetsang menor de edad",
"non_consensual": "Sulod nga walay pagtugot",
"violence": "Kapintas o abuso",
"harassment": "Paghasol o pagpugos",
"spam": "Spam o scam",
"other": "Uban pa"
}
},
"vocab": {
"heroEyebrow": "Pagtuon og pinulongan",
"summaryTotalLabel": "Tanan nga pinulongan",
"summaryTotalIntro": "Tanang aktibong pinulongan nga lugar diin naggamit o nagdumala ka og sulod.",
"summaryOwnedLabel": "Imong kaugalingong lugar",
"summaryOwnedIntro": "Dinhi ka mismo maghimo og sulod, kapitulo ug materyal sa pagkat-on.",
"summarySubscribedLabel": "Gi-subscribe",
"summarySubscribedIntro": "Kini nga mga lugar mas para sa pagkat-on ug progreso kaysa pagdumala.",
"taskCreateEyebrow": "Paspas nga sugod",
"taskCreateTitle": "Paghimo og bag-ong pinulongan",
"taskCreateIntro": "Mao kini ang labing maayong sugod kung gusto nimo nga ikaw mismo ang mohikay ug moatiman sa sulod.",
"taskContinueEyebrow": "Padayon sa pagkat-on",
"taskContinueTitle": "Ablihi ang mga kurso ug kapitulo",
"taskContinueIntro": "Sulod dayon sa mga andam nang learning path ug ipadayon ang anaa nang mga kurso.",
"ownedSectionTitle": "Imong mga pinulongan",
"ownedSectionIntro": "Direktang agi-anan sa pag-edit, mga kapitulo ug pagdumala sa kurso.",
"ownedHint": "Pagdumala ug pag-atiman sa sulod",
"ownedEmpty": "Wala pay imong kaugalingong pinulongan nga lugar.",
"subscribedSectionTitle": "Mga gi-subscribe nga pinulongan",
"subscribedSectionIntro": "Maayo para sa paspas nga pagbalik sa pagkat-on nga walay kabug-at sa pagdumala.",
"subscribedHint": "Pagkat-on, praktis ug tan-awa ang progreso",
"subscribedEmpty": "Walay gi-subscribe nga pinulongan karon.",
"languageHeroEyebrow": "Pinulongan",
"languageHeroIntro": "Mga kapitulo, pagpangita ug pagpaambit para niining pinulongana sa usa ka lugar.",
"newLanguageHeroEyebrow": "Trainer sa bokabularyo",
"newLanguageHeroIntro": "Paghimo og bag-ong pinulongan, paghimo og share code ug dayon balhin dayon sa pag-edit.",
"newLanguageNameHint": "Sapat na ang mubo ug klaro nga ngalan sa pinulongan para sa pagsugod.",
"newLanguageNameValidation": "Ang ngalan kinahanglan adunay labing menos 2 ka karakter.",
"subscribeHeroEyebrow": "Trainer sa bokabularyo",
"chapterHeroEyebrow": "Trainer sa bokabularyo",
"chapterHeroIntro": "Susihon ang sulod sa kapitulo, atimana ang bokabularyo ug balhin dayon sa praktis.",
"courses": {
"courseKicker": "Kurso sa pagkat-on",
"courseListKicker": "Mga kurso",
"courseListIntro": "Sal-a ang publiko ug imong kaugalingong mga kurso sa pagkat-on, pangitaa ang angay, ug ipadayon dayon.",
"courseShareCodePlaceholder": "pananglitan abc123def456",
"courseFlowEyebrow": "Agos sa adlaw",
"courseFlowTitle": "Maayong ipadayon karon",
"courseFlowIntro": "Ang sunod-sunod mosunod sa konsepto: una ang angay nang balikon, dayon ang kasamtangang block, unya ang intensive phase ug sa katapusan ang libre nga pagpalalom.",
"courseFlowReviewStat": "Angay balikon: {count}",
"courseFlowBlockStat": "Aktibong block: {block}",
"courseFlowReviewTitle": "Angay nga balik-balikon",
"courseFlowReviewDescription": "Mga leksiyon nga nahuman na ug angay balikon karong adlawa.",
"courseFlowReviewEmpty": "Walay daang leksiyon nga nakamarka isip angay balikon karon.",
"courseFlowBlockTitle": "Kasamtangang block",
"courseFlowBlockDescription": "Dinhi nahimutang ang sunod regular nga lakang sa kurso.",
"courseFlowBlockEmpty": "Nahuman na ang kasamtangang block o walay abli nga leksiyon niini karon.",
"courseFlowIntensiveTitle": "Angay nga intensive phase",
"courseFlowIntensiveDescription": "Mas dikit nga balik-balik sa dihang lig-on na ang nag-una nga block.",
"courseFlowIntensiveEmpty": "Wala pay bag-ong intensive phase nga naablihan karon.",
"courseFlowPracticeTitle": "Libre nga pagpalalom",
"courseFlowPracticeDescription": "Nahuman nang mga leksiyon para sa hinay-hinay nga dugang praktis gawas sa obligadong agi-anan.",
"courseFlowPracticeEmpty": "Sa dihang makahuman ka sa unang mga leksiyon, makita sila dinhi para sa libre nga praktis.",
"practiceInTrainer": "Praktisa sa trainer",
"lessonsCount": "{count} ka leksiyon",
"lessonBlockLabel": "Block {number}",
"lessonIntensiveBadge": "Intensive nga balik-balik",
"addLessonValidation": "Palihog kompletoha ang numero, titulo ug kapitulo.",
"addLessonSuccess": "Malampuson nga nahimo ang leksiyon.",
"addLessonError": "Dili madugang ang leksiyon.",
"createCourseError": "Dili mahimo ang paghimo sa kurso.",
"deleteLessonTitle": "Tangtanga ang leksiyon",
"deleteLessonSuccess": "Malampuson nga natangtang ang leksiyon.",
"deleteLessonError": "Dili matangtang ang leksiyon.",
"enrollCourseError": "Dili makapa-enroll sa kurso.",
"editLessonPending": "Ang tagsa-tagsa nga pag-edit sa mga leksiyon moabot pa.",
"timeToday": "karon",
"timeSinceOneDay": "sukad 1 ka adlaw",
"timeSinceDays": "sukad {count} ka adlaw",
"reviewDueNow": "angay na karon",
"reviewDueTomorrow": "angay ugma",
"reviewDueInDays": "angay sulod sa {count} ka adlaw",
"reviewDueToday": "angay karon",
"reviewDueSinceOneDay": "angay na sukad 1 ka adlaw",
"reviewDueSinceDays": "angay na sukad {count} ka adlaw",
"reviewStageDay1": "Adlaw 1",
"reviewStageDay3": "Adlaw 3",
"reviewStageDay7": "Adlaw 7",
"reviewStageCompleted": "Nahuman ang review",
"phaseQuickstart": "Paspas nga sugod",
"phaseDailyLife": "Adlaw-adlaw",
"phaseStabilization": "Pagpalig-on",
"phaseDefault": "Hugna sa pagkat-on",
"didacticModeCoreInput": "Bag-ong sulod",
"didacticModeGuidedDialogue": "Giyahang dayalogo",
"didacticModeContrastTraining": "Contrast training",
"didacticModePatternDrill": "Pagpraktis sa mga hulma",
"didacticModeRealLifeScenario": "Tinuod nga kahimtang sa adlaw-adlaw",
"didacticModeIntensiveReview": "Hugna sa balik-balik",
"didacticModeCheckpoint": "Checkpoint",
"didacticModeDefault": "Yunit sa pagkat-on",
"didacticModeFocusDefault": "Pokus sa pagkat-on",
"lessonMetaFocus": "Pokus",
"lessonMetaPhase": "Hugna",
"lessonMetaNewUnits": "Bag-ong yunit",
"lessonMetaReview": "Balik-balik",
"intensiveReviewTitle": "Intensive nga hugna sa balik-balik",
"intensiveReviewIntro": "Kini nga leksiyon nag-una sa balik-balik ug pagpalalom. Gipakunhod og tinuyo ang bag-ong sulod aron malig-on ang mga hulma nga nakat-onan na.",
"reviewPriorityTitle": "Hinay-hinay nga gisagol ang balik-balik",
"reviewPriorityIntro": "Sa sinugdan, ang pokus anaa sa bag-ong mga pulong niining leksiyona. Samtang mopadayon ka, hinay-hinay nga masagol ang daan nga bokabularyo.",
"exerciseLockTitle": "Naka-lock pa ang chapter test",
"trainerStartWithReview": "Sugdi sa bag-ong bokabularyo niining leksiyona. Samtang nagpraktis ka, awtomatikong isagol sa trainer ang angay nga balik-balik.",
"startLesson": "Sugdi ang leksiyon",
"trainerProgressNewContent": "Bag-ong sulod: {current}/{target}",
"trainerProgressReview": "Balik-balik: {count}",
"trainerProgressMixShare": "Nasagol nga bahin: {percent}%",
"unknownExerciseTypeNotice": "Kini nga matang sa ehersisyo wala pa ipakita nga interaktibo sa kasamtangang view.",
"unknownExerciseTypeLabel": "Matang: {type}",
"lessonReviewHeadlineDone": "Nakaabot na kini nga leksiyon sa libre nga pagpalalom.",
"lessonReviewHeadlineDue": "Angay na karon kining review wave.",
"lessonReviewHeadlineScheduled": "Gitakda kini nga leksiyon para sa sunod nga review wave.",
"lessonReviewHintDone": "Nahuman na ang 1/3/7 ka adlaw nga balik-balik. Mahimo na nimo kining praktison sa mas luag nga paagi.",
"lessonReviewHintNextDue": "Sunod nga petsa: {due}.",
"reviewTimeNow": "karon",
"reviewTimeTomorrow": "ugma",
"reviewTimeInDays": "sulod sa {count} ka adlaw"
}
}
}
}