{
  "app": {
    "name": "สมุดบันทึกการฝึกซ้อม",
    "title": "สมุดบันทึกการฝึกซ้อม"
  },
  "common": {
    "loading": "กำลังโหลด...",
    "save": "บันทึก",
    "saved": "บันทึกแล้ว",
    "cancel": "ยกเลิก",
    "delete": "ลบ",
    "edit": "แก้ไข",
    "add": "เพิ่ม",
    "close": "ปิด",
    "confirm": "ยืนยัน",
    "yes": "ใช่",
    "no": "ไม่",
    "search": "ค้นหา",
    "filter": "กรอง",
    "actions": "การดำเนินการ",
    "back": "กลับ",
    "next": "ถัดไป",
    "previous": "ก่อนหน้า",
    "submit": "ส่ง",
    "reset": "รีเซ็ต"
  },
  "navigation": {
    "home": "หน้าแรก",
    "members": "สมาชิก",
    "diary": "ไดอารี่",
    "approvals": "การอนุมัติ",
    "statistics": "สถิติการฝึกซ้อม",
    "tournaments": "การแข่งขัน",
    "clubTournaments": "การแข่งขันของสโมสร",
    "tournamentParticipations": "การเข้าร่วมการแข่งขัน",
    "schedule": "ตารางเวลา",
    "clubSettings": "การตั้งค่าสโมสร",
    "predefinedActivities": "กิจกรรมที่กำหนดไว้ล่วงหน้า",
    "teamManagement": "การจัดการทีม",
    "permissions": "สิทธิ์",
    "logs": "บันทึกระบบ",
    "memberTransfer": "การโอนสมาชิก",
    "myTischtennisAccount": "บัญชี myTischtennis",
    "personalSettings": "การตั้งค่าส่วนตัว",
    "logout": "ออกจากระบบ",
    "login": "เข้าสู่ระบบ",
    "register": "ลงทะเบียน",
    "dailyBusiness": "ธุรกิจประจำวัน",
    "competitions": "การแข่งขัน",
    "settings": "การตั้งค่า"
  },
  "club": {
    "select": "เลือกสโมสร",
    "selectPlaceholder": "เลือกสโมสร...",
    "new": "สโมสรใหม่",
    "load": "โหลด",
    "name": "ชื่อสโมสร",
    "create": "สร้างสโมสร",
    "accessRequestPending": "Access to this club has been requested. Please be patient."
  },
  "auth": {
    "login": "เข้าสู่ระบบ",
    "logout": "ออกจากระบบ",
    "register": "ลงทะเบียน",
    "email": "อีเมล",
    "password": "รหัสผ่าน",
    "forgotPassword": "ลืมรหัสผ่าน?",
    "rememberMe": "จดจำฉัน",
    "loginSuccess": "เข้าสู่ระบบสำเร็จ",
    "logoutSuccess": "ออกจากระบบสำเร็จ",
    "sessionExpired": "เซสชันของคุณหมดอายุแล้ว คุณจะถูกออกจากระบบ",
    "noAccount": "ยังไม่มีบัญชี?",
    "toLogin": "ไปที่เข้าสู่ระบบ",
    "loginFailed": "เข้าสู่ระบบล้มเหลว กรุณาตรวจสอบข้อมูลของคุณ",
    "activationFailed": "การเปิดใช้งานล้มเหลว กรุณาตรวจสอบลิงก์",
    "forgotPasswordDescription": "กรอกอีเมลของคุณ คุณจะได้รับลิงก์สำหรับรีเซ็ตรหัสผ่าน",
    "sendResetLink": "ส่งลิงก์",
    "sending": "กำลังส่ง...",
    "resetEmailSent": "หากมีบัญชีที่ใช้อีเมลนี้ ลิงก์รีเซ็ตได้ถูกส่งแล้ว กรุณาตรวจสอบกล่องจดหมาย (และสแปม)",
    "resetRequestFailed": "คำขอล้มเหลว กรุณาลองอีกครั้ง",
    "resetPassword": "ตั้งรหัสผ่านใหม่",
    "newPassword": "รหัสผ่านใหม่",
    "confirmPassword": "ยืนยันรหัสผ่าน",
    "saveNewPassword": "บันทึกรหัสผ่าน",
    "saving": "กำลังบันทึก...",
    "passwordResetSuccess": "เปลี่ยนรหัสผ่านสำเร็จ คุณสามารถเข้าสู่ระบบได้แล้ว",
    "passwordsDoNotMatch": "รหัสผ่านไม่ตรงกัน",
    "passwordTooShort": "รหัสผ่านต้องมีอย่างน้อย 6 ตัวอักษร",
    "resetFailed": "ไม่สามารถเปลี่ยนรหัสผ่านได้ ลิงก์อาจหมดอายุแล้ว"
  },
  "settings": {
    "title": "การตั้งค่า",
    "personalSettings": "การตั้งค่าส่วนตัว",
    "language": "ภาษา",
    "languageDescription": "เลือกภาษาที่คุณต้องการสำหรับแอปพลิเคชัน",
    "languageChanged": "เปลี่ยนภาษาสำเร็จ",
    "selectLanguage": "เลือกภาษา"
  },
  "languages": {
    "de": "Deutsch (เยอรมัน)",
    "en-GB": "English (อังกฤษ (GB))",
    "en-US": "English (อังกฤษ (US))",
    "en-AU": "English (อังกฤษ (AU))",
    "de-CH": "Schwiizerdütsch (เยอรมันสวิส)",
    "fr": "Français (ฝรั่งเศส)",
    "es": "Español (สเปน)",
    "it": "Italiano (อิตาลี)",
    "pl": "Polski (โปแลนด์)",
    "ja": "日本語 (ญี่ปุ่น)",
    "zh": "中文 (จีน)",
    "tl": "Tagalog (ตากาล็อก)",
    "th": "ไทย",
    "fil": "Filipino (ฟิลิปปินส์)"
  },
  "messages": {
    "success": "สำเร็จ",
    "error": "ข้อผิดพลาด",
    "warning": "คำเตือน",
    "info": "ข้อมูล",
    "confirm": "ยืนยัน",
    "cancel": "ยกเลิก"
  },
  "tournaments": {
    "numberOfTables": "จำนวนโต๊ะ",
    "table": "โต๊ะ",
    "playerOne": "ผู้เล่น 1",
    "playerTwo": "ผู้เล่น 2",
    "groupsLabel": "กลุ่ม",
    "knockoutLabel": "KO",
    "distributeTables": "จัดสรรโต๊ะว่าง",
    "distributeTablesResult": "การจัดสรรโต๊ะ",
    "noFreeTables": "ไม่มีโต๊ะว่าง",
    "noAssignableMatches": "ไม่มีแมตช์ที่ผู้เล่นทั้งสองว่าง",
    "tablesDistributed": "จัดสรรโต๊ะเรียบร้อยแล้ว",
    "errorDistributingTables": "เกิดข้อผิดพลาดในการจัดสรรโต๊ะ",
    "missingDataPDF": "ข้อมูลที่ขาดหายเป็น PDF",
    "missingDataPDFTitle": "ข้อมูลผู้เข้าร่วมที่ขาดหาย – มินิแชมเปี้ยนชิพ",
    "missingDataPDFSubtitle": "กรุณาเก็บข้อมูลที่ขาดหาย (ทำเครื่องหมาย ____) จากผู้เข้าร่วมและจดบันทึกที่นี่",
    "allDataComplete": "ข้อมูลผู้เข้าร่วมทั้งหมดครบถ้วน",
    "allDataCompleteTop3": "ข้อมูล 3 อันดับแรกครบถ้วน",
    "noTop3Yet": "ยังไม่ได้กำหนด 3 อันดับแรก",
    "missingDataPDFTitleTop3": "ข้อมูลที่ขาดหาย – 3 อันดับแรก มินิแชมเปี้ยนชิพ",
    "missingDataPDFSubtitleTop3": "กรุณาเก็บข้อมูลที่ขาดหายของ 3 อันดับแรก (ทำเครื่องหมาย ____) และจดบันทึกที่นี่",
    "address": "ที่อยู่",
    "phone": "โทรศัพท์",
    "generatingPDF": "กำลังสร้าง PDF...",
    "page": "หน้า",
    "statusOpen": "เปิด",
    "statusLive": "กำลังแข่ง",
    "statusFinished": "เสร็จแล้ว",
    "dataNotRecorded": "ยังไม่ได้บันทึก",
    "resultsRanking": "อันดับ",
    "newSetPlaceholder": "เซตใหม่ เช่น 11:7",
    "finishMatch": "จบการแข่งขัน",
    "correctMatch": "แก้ไข",
    "markMatchLive": "ทำเครื่องหมายว่ากำลังแข่ง",
    "unmarkMatchLive": "ลบเครื่องหมายกำลังแข่ง",
    "stageConfigTitle": "รอบกลางและรอบชิง",
    "stageConfigLoading": "กำลังโหลดการตั้งค่ารอบ…",
    "stageConfigIntro": "รอบกลางเป็นตัวเลือก หากเปิดใช้งาน จะมีรอบชิงตามมาเสมอ รอบชิงแบบน็อกเอาต์จะถูกสร้างเป็นสายเดียว",
    "useIntermediateStage": "ใช้รอบกลาง",
    "intermediateRound": "รอบกลาง (รอบ 2)",
    "finalRound": "รอบชิง",
    "playThirdPlace": "แข่งชิงอันดับสาม",
    "roundMode": "โหมด",
    "roundGroupCount": "จำนวนกลุ่ม",
    "promotionRule12": "ผ่านเข้ารอบ: รอบคัดเลือก → รอบกลาง (1→2)",
    "promotionRuleFinal": "ผ่านเข้ารอบ: รอบ {from} → รอบ {to}",
    "addPoolRule": "เพิ่มกฎกลุ่ม",
    "noPoolRulesYet12": "ยังไม่มีกฎ ตัวอย่าง: อันดับ 1 และ 2 -> กลุ่มบนของรอบ 2",
    "noPoolRulesYetFinal": "ยังไม่มีกฎ ตัวอย่าง: อันดับ 1 และ 2 -> รอบชิง",
    "placesFromEachGroup": "อันดับจากแต่ละกลุ่ม (เช่น 1,2)",
    "target": "เป้าหมาย",
    "targetGroupCount": "จำนวนกลุ่มปลายทาง",
    "saveRounds": "บันทึกรอบ",
    "createFinalFromPreliminary": "สร้างรอบชิงจากรอบคัดเลือก",
    "createIntermediateFromPreliminary": "สร้างรอบกลางจากรอบคัดเลือก",
    "createFinalFromIntermediate": "สร้างรอบชิงจากรอบกลาง",
    "stageConfigMissingIds": "ไม่สามารถบันทึกได้: ไม่มีรหัสสโมสรหรือรหัสทัวร์นาเมนต์",
    "stageConfigLoadError": "เกิดข้อผิดพลาดในการโหลดการตั้งค่ารอบ",
    "stageConfigBadServerResponse": "การตอบกลับจากเซิร์ฟเวอร์ไม่ถูกต้อง",
    "stageCreated": "สร้างรอบ {round} แล้ว",
    "atLeastOnePoolRule": "กรุณาเพิ่มกฎกลุ่มอย่างน้อยหนึ่งกฎสำหรับ {label} (เช่น อันดับ 1,2)",
    "enterMiniLocation": "กรุณากรอกสถานที่",
    "selectTournamentFirst": "กรุณาเลือกทัวร์นาเมนต์ก่อน",
    "errorGeneratingPdf": "เกิดข้อผิดพลาดในการสร้าง PDF",
    "orphanedMatchesRemoved": "ลบแมตช์กำพร้า {count} รายการแล้ว",
    "noOrphanedMatchesFound": "ไม่พบแมตช์กำพร้า",
    "enterClassName": "กรุณากรอกชื่อคลาส",
    "deleteClassTitle": "ลบคลาส",
    "deleteClassConfirm": "คุณต้องการลบคลาส \"{name}\" จริงหรือไม่?",
    "deleteClassParticipantsDetached": "ผู้เข้าร่วมทั้งหมดจะถูกเอาออกจากคลาสนี้",
    "enterExternalParticipantName": "กรุณากรอกอย่างน้อยชื่อและนามสกุล",
    "noTournamentDate": "ไม่มีวันที่ของทัวร์นาเมนต์",
    "noValidTrainingParticipants": "ไม่พบผู้เข้าร่วมการฝึกที่ถูกต้องสำหรับวันที่นี้",
    "noTrainingParticipants": "ไม่พบผู้เข้าร่วมการฝึกสำหรับวันที่นี้",
    "noTrainingOnDate": "ไม่พบวันฝึกสำหรับ {date}",
    "selectTwoDifferentPlayers": "กรุณาเลือกผู้เล่นสองคนที่แตกต่างกัน",
    "pairingAlreadyExists": "คู่นี้มีอยู่แล้ว",
    "participantNotFound": "ไม่พบผู้เข้าร่วม",
    "minimumParticipantsForPairings": "ต้องมีผู้เข้าร่วมอย่างน้อย 2 คนสำหรับการจับคู่",
    "deleteExistingPairingsConfirm": "คู่ที่มีอยู่จะถูกลบ ดำเนินการต่อหรือไม่?",
    "pairingsCreatedWithErrors": "สร้างคู่แล้ว {successCount} คู่, มีข้อผิดพลาด {errorCount} รายการ",
    "participantConflicts": "ความขัดแย้ง",
    "unpairedDoubles": "ประเภทคู่ที่ยังไม่มีคู่",
    "noEligibleClass": "ไม่พบคลาสที่เหมาะสม",
    "eligibleClassesHint": "เหมาะกับ: {classes}",
    "warningClassMissing": "ไม่พบคลาส",
    "warningGenderMismatch": "เพศไม่ตรงกับคลาส",
    "warningGenderMissing": "คลาสนี้ต้องมีข้อมูลเพศ",
    "warningBirthDateMissing": "คลาสนี้ต้องมีวันเกิด",
    "warningTooOldForClass": "อายุมากเกินไปสำหรับคลาสนี้",
    "warningTooYoungForClass": "อายุน้อยเกินไปสำหรับคลาสนี้",
    "warningMissingPairing": "ยังไม่มีคู่สำหรับประเภทคู่",
    "autoAssignableParticipantsHint": "{count} of them can be assigned automatically.",
    "assignmentReviewTitle": "{count} participants need a choice:",
    "conflictSuggestionLabel": "Suggestions:",
    "workspaceProblemsTitle": "{count} open issues",
    "problemConfigTitle": "Configuration incomplete",
    "problemConfigDescription": "Check date, name, winning sets and at least one class.",
    "problemUnassignedTitle": "{count} participants without class",
    "problemUnassignedDescription": "These participants still need a manual class assignment.",
    "problemUnassignedAutoDescription": "{count} of them can be assigned automatically right away.",
    "problemConflictsTitle": "{count} participants with conflicts",
    "problemConflictsDescription": "Review invalid classes, missing data or unclear assignments.",
    "problemDoublesTitle": "{count} open doubles partners",
    "problemDoublesDescription": "One or more doubles classes still need partner assignments.",
    "problemDoublesAutoDescription": "The open doubles class can be paired automatically right away.",
    "problemGroupsMissingTitle": "Groups not created yet",
    "problemGroupsMissingDescription": "The group tournament needs groups to be created first.",
    "problemGroupMatchesTitle": "Group matches not generated yet",
    "problemGroupMatchesDescription": "The groups are ready, but the matches have not been created yet.",
    "problemKnockoutReadyTitle": "Knockout can be started",
    "problemKnockoutReadyDescription": "The group stage is complete and the final round can be generated now.",
    "autoAssignEligible": "Assign automatically",
    "autoAssignEligibleNone": "There are currently no participants with a single automatic class assignment.",
    "autoAssignEligibleDone": "{count} participants were assigned automatically.",
    "autoAssignEligiblePartial": "{successCount} participants were assigned automatically, {errorCount} failed.",
    "doublesPairingHint": "{count} participants in this doubles class still need a partner.",
    "createSuggestedPairings": "Create pairings",
    "statusUnpairedDoubles": "{count} doubles without partner",
    "statusActionPair": "Pair",
    "stageConfigCurrentSetup": "Current structure",
    "stageFlowWithIntermediate": "Preliminary round -> intermediate round ({stage2}) -> final round ({final})",
    "stageFlowDirectFinal": "Preliminary round -> final round ({final})",
    "stageStep1": "Step 1",
    "stageStep2": "Step 2",
    "stageStep3": "Step 3",
    "stageStep1Title": "Decide on an intermediate round",
    "stageStep1Description": "First decide whether there should be an additional round after the preliminary round.",
    "stageStep2Description": "Define what the intermediate round should look like and how many groups it needs.",
    "stageFinalDescription": "Decide whether the final round should be played as groups or directly as a knockout bracket.",
    "promotionRuleDescription12": "Define which places from each preliminary group advance to the intermediate round.",
    "promotionRuleDescriptionFinalKnockout": "Define which places from the previous round advance to the knockout bracket.",
    "promotionRuleDescriptionFinalGroups": "Define which places from the previous round advance to the final-round groups.",
    "poolRuleLabel": "Rule {number}",
    "poolRuleSummary": "Places {places} go to {target}",
    "poolRulePlacesLabel": "Which places advance?",
    "poolRulePlacesHelp": "Example: 1 or 1,2",
    "poolRuleTargetLabel": "Where do these places go?",
    "poolRuleQuickExamples": "Quick examples:",
    "targetGroupsLabel": "{count} groups",
    "transferQualifiedToFinalFromPreliminary": "Move qualified players straight into the final round",
    "transferQualifiedToIntermediate": "Move qualified players into the intermediate round",
    "transferQualifiedToFinalFromIntermediate": "Move qualified players into the final round",
    "stageParticipantsTransferred": "Qualified players were moved into {round}.",
    "transferQualifiedToFinalFromPreliminaryDesc": "Uses the preliminary-round to final-round rules and creates the qualified players directly there.",
    "transferQualifiedToIntermediateDesc": "Uses the preliminary-round to intermediate-round rules and moves the qualified players across.",
    "transferQualifiedToFinalFromIntermediateDesc": "Uses the intermediate-round to final-round rules and moves the qualified players across.",
    "stageActionsTitle": "Next actions",
    "stageActionsDescription": "These steps move qualified players into the next round.",
    "stageActionRun": "Run now",
    "stageActionMissingRulesHint": "Create at least one advancement rule first before moving players into the next round.",
    "poolRulePreview": "From each group, places {places} advance to {target}.",
    "poolRuleTargetKnockout": "the knockout bracket",
    "poolRuleTargetGroupsDetailed": "{count} target groups",
    "stageValidationTitle": "Review configuration",
    "stageValidationDescription": "Fix these points before saving or moving players into the next round.",
    "stageValidationGroupCountRequired": "Please set at least one valid group count.",
    "stageValidationNoRules": "There is no advancement rule yet for {stage}.",
    "stageValidationRulePlacesRequired": "Enter at least one place that should advance.",
    "stageValidationRulePlacesInvalid": "The place definition is invalid. Only positive whole numbers such as 1 or 1,2 are allowed.",
    "stageValidationRulePlacesDuplicate": "A single rule must not contain the same place more than once.",
    "stageValidationRulesOverlap": "Place {place} is assigned twice, in rule {first} and rule {second}.",
    "stageValidationTargetGroupsRequired": "Please enter a valid number of target groups.",
    "stageValidationKnockoutTargetOnly": "For a knockout final round, only the knockout bracket is allowed as the target here.",
    "stageValidationSaveBlocked": "Please fix the highlighted configuration errors first.",
    "stageValidationSuggestion": "Suggestion: {value}",
    "stageValidationRulePlacesGap": "The place definition has gaps. Usually a continuous order such as 1,2 or 1,2,3 is intended.",
    "stageValidationTargetGroupCountMismatch": "The number of target groups must match the target round. Expected: {expected}.",
    "stageValidationTargetTypeMismatch": "The target of this rule must match the target round. Expected: {target}.",
    "stageValidationApplyFix": "Apply",
    "stageValidationApplyTargetTypeFix": "Switch to {target}",
    "stageValidationApplyTargetGroupFix": "Set to {count} target groups",
    "ruleStatusOk": "Looks good",
    "ruleStatusReview": "Review",
    "ruleStatusBlocked": "Blocked",
    "ruleStatusOkDescription": "This rule matches the current target round and can be used as-is.",
    "stageFlowHealthOk": "Round logic looks good",
    "stageFlowHealthOkDescription": "The transitions between rounds are fully configured and currently coherent.",
    "stageFlowHealthIncomplete": "Round logic is incomplete",
    "stageFlowHealthMissingRules": "At least one transition does not yet have a complete advancement rule.",
    "stageFlowHealthReviewDescription": "The round logic is basically usable, but should still be reviewed because of open hints.",
    "stageFlowHealthBlocked": "Round logic is contradictory",
    "stageFlowHealthBlockedDescription": "At least one rule currently does not match the target round or contains blocking configuration errors.",
    "stageFlowBreakdownOk": "Configuration looks good",
    "stageFlowBreakdownWarnings": "{count} warning(s) open",
    "stageFlowBreakdownErrors": "{count} blocking error(s)",
    "stageFlowBreakdownMissingRule": "No complete rule has been added yet",
    "stageFlowBreakdownActionAddRule": "Add rule",
    "stageFlowBreakdownActionReview": "Review issues",
    "stageFlowBreakdownActionOpen": "Open rule",
    "stageValidationApplyAllFixes": "Apply {count} quick fix(es)",
    "stageFlowRecommendationTitle": "Recommended next step",
    "stageFlowRecommendationFixes": "The typical configuration problems can be cleaned up automatically right away.",
    "stageFlowRecommendationMissingRule": "A complete rule is still missing for {label}. That is the best place to continue.",
    "stageFlowRecommendationError": "Review the first blocking error in the round logic first.",
    "stageFlowRecommendationWarnings": "There are still warnings that should be reviewed before saving.",
    "stageFlowRecommendationSave": "The round logic is coherent. You can save the configuration now.",
    "stageFlowPreviewMissing": "No rule has been configured yet.",
    "stageFlowPreviewRule": "Places {places} go to {target}",
    "stageValidationKnockoutNeedsTwoPlayers": "A knockout bracket needs at least 2 qualified players.",
    "stageValidationKnockoutByesLikely": "With an expected {count} qualifiers, the knockout bracket will very likely include byes.",
    "stageValidationNotEnoughQualifiersForGroups": "With only {count} qualifiers for {groups} target groups, empty groups would be created.",
    "stageValidationThinGroupsLikely": "With {count} qualifiers across {groups} target groups, the groups will likely be very small.",
    "stageFlowPreviewRuleWithCount": "{base} (expected qualifiers: {count})",
    "stageFlowReadinessNoGroups": "No matching groups exist yet",
    "stageFlowReadinessIncompleteGroups": "{count} group(s) are not fully decided yet",
    "stageFlowReadinessReady": "Transition is ready to start",
    "stageFlowQualifiedPreviewTitle": "Currently qualified",
    "stageFlowQualifiedPreviewEntry": "G{group} · Place {position} · {name}"
  },
  "members": {
    "subtitle": "Search, filter and edit members directly.",
    "closeEditor": "Close editor",
    "visibleMembers": "Visible members",
    "search": "Search",
    "searchPlaceholder": "Search by name, city, phone or email",
    "memberScope": "Member scope",
    "scopeAll": "All",
    "scopeActive": "Active",
    "scopeTest": "Trial",
    "scopeNeedsForm": "Form unverified",
    "scopeInactive": "Inactive",
    "resultsVisible": "members visible",
    "editHint": "Click a row to open the editor.",
    "editorCreateHint": "Create a new member and capture contact details directly.",
    "editorEditHint": "Edit the details for {name}.",
    "transferSuccessTitle": "Transfer successful",
    "transferErrorTitle": "Transfer error",
    "clickTtRequestPending": "Click-TT request in progress",
    "clickTtRequestAction": "Request click-TT eligibility",
    "clickTtRequestTitle": "Start Click-TT request",
    "clickTtRequestConfirm": "Start the automated Click-TT request for {name}?",
    "clickTtRequestHint": "The request is processed automatically by the backend Click-TT workflow.",
    "clickTtRequestSuccess": "Please sign in to click-tt and submit the request there.",
    "clickTtRequestError": "The Click-TT request could not be submitted.",
    "clickTtRequestFailedLog": "Click-TT request failed",
    "deleteImageTitle": "Delete image",
    "deleteImageConfirm": "Do you really want to delete this image?",
    "parentFallback": "Parent",
    "loadingMembers": "Loading members...",
    "errorLoadingMembers": "Failed to load the member list.",
    "scopeNotTraining": "No longer training",
    "notInTrainingTooltip": "No participation for {weeks} training weeks",
    "status": "Status",
    "contact": "Contact",
    "noPhoneShort": "No phone",
    "noEmailShort": "No email",
    "noAddressShort": "No address",
    "clickTtSubmitted": "Click-TT submitted",
    "markRegular": "Mark regular",
    "markFormReceived": "Mark form verified",
    "clickTtRequestShort": "Click-TT",
    "clickTtRequestPendingShort": "Pending ...",
    "memberDetails": "Member details",
    "previewLastTraining": "Last training",
    "previewNoLastTraining": "No participation yet",
    "phoneListForSelection": "Phone list for selection",
    "markFormsForSelection": "Verify forms for selection",
    "markRegularForSelection": "Mark selection regular",
    "phoneListSelectionFile": "phone-list-selection.pdf",
    "batchFormsMarkedSuccess": "Marked {count} form(s) as verified.",
    "batchFormsMarkedEmpty": "There are no unverified forms in the current selection.",
    "batchMarkedRegularSuccess": "Marked {count} trial member(s) as regular.",
    "batchMarkedRegularEmpty": "There are no trial members in the current selection.",
    "batchPartialFailure": "{success} succeeded, {failed} failed.",
    "sortBy": "Sort by",
    "sortLastName": "Last name",
    "sortFirstName": "First name",
    "sortBirthday": "Birthday",
    "sortAge": "Age",
    "age": "Age",
    "openTasks": "Open tasks",
    "noOpenTasks": "No open tasks",
    "taskVerifyForm": "Verify form",
    "taskReviewTrialStatus": "Review trial status",
    "taskCheckTrainingStatus": "Review training status",
    "taskCheckClickTt": "Review Click-TT eligibility",
    "taskActionVerify": "Verify",
    "taskActionMarkRegular": "Mark regular",
    "taskActionRequest": "Request",
    "toggleSortDirection": "Toggle sort direction",
    "sortLastTraining": "Last training",
    "sortOpenTasks": "Open tasks",
    "exportPreview": "Export preview",
    "exportMembersSelected": "members currently selected",
    "exportPhones": "Phone",
    "exportReachableByPhone": "with phone number",
    "exportEmails": "Email",
    "exportReachableByEmail": "with email address",
    "exportPreviewNames": "Preview",
    "exportPreviewEmpty": "No members in the current selection",
    "exportCsv": "Export CSV",
    "exportCsvFile": "member-selection.csv",
    "copyPhones": "Copy phones",
    "copyEmails": "Copy emails",
    "copyPhonesSuccess": "Phone list copied to clipboard.",
    "copyPhonesEmpty": "There are no phone numbers in the current selection.",
    "copyEmailsSuccess": "Email list copied to clipboard.",
    "copyEmailsEmpty": "There are no email addresses in the current selection.",
    "composeEmail": "Compose email",
    "copyContactSummary": "Copy contact summary",
    "copyContactSummarySuccess": "Contact summary copied to clipboard."
  }
}
