Update translation strings for multiple languages, including corrections and new entries for Chinese, Thai, and Cebuano. Adjusted phrases for clarity and consistency across various contexts.
All checks were successful
Deploy tt-tagebuch / deploy (push) Successful in 57s

This commit is contained in:
Torsten Schulz (local)
2026-08-20 13:53:52 +02:00
parent 7553f2c99a
commit 1c2ee5ea10
2 changed files with 520 additions and 133 deletions

View File

@@ -1,5 +1,6 @@
<template>
<BaseDialog
class="ttr-history-dialog"
:model-value="modelValue"
@update:model-value="$emit('update:modelValue', $event)"
title="TTR-Historie"
@@ -37,18 +38,19 @@
<div v-if="errorMessage" class="state-panel state-panel-error state-panel-full">{{ errorMessage }}</div>
<div v-if="infoMessage" class="state-panel state-panel-info">{{ infoMessage }}</div>
<div class="chart-panel">
<div class="panel-title">Verlauf</div>
<div v-if="chartPoints.length < 2" class="state-panel state-panel-muted">
Noch nicht genug Datenpunkte für einen Verlauf.
</div>
<svg
v-else
class="history-chart"
:viewBox="`0 0 ${chartMeta.width} ${chartMeta.height}`"
preserveAspectRatio="none"
aria-label="TTR-Verlauf"
>
<div class="history-panels">
<div class="chart-panel">
<div class="panel-title">Verlauf</div>
<div v-if="chartPoints.length < 2" class="state-panel state-panel-muted">
Noch nicht genug Datenpunkte für einen Verlauf.
</div>
<svg
v-else
class="history-chart"
:viewBox="`0 0 ${chartMeta.width} ${chartMeta.height}`"
preserveAspectRatio="none"
aria-label="TTR-Verlauf"
>
<line
class="chart-axis"
:x1="chartMeta.paddingLeft"
@@ -83,7 +85,22 @@
:cx="point.x"
:cy="point.y"
r="4"
tabindex="0"
:aria-label="`${point.label}: ${point.value} TTR-Punkte`"
@mouseenter="activeChartPoint = point"
@mouseleave="activeChartPoint = null"
@focus="activeChartPoint = point"
@blur="activeChartPoint = null"
/>
<g
v-if="chartTooltip"
class="chart-tooltip"
:transform="`translate(${chartTooltip.x}, ${chartTooltip.y})`"
>
<rect width="142" height="44" rx="6" />
<text x="10" y="17">{{ chartTooltip.label }}</text>
<text x="10" y="34">{{ chartTooltip.value }} TTR-Punkte</text>
</g>
<g v-for="tick in chartXTicks" :key="`x-${tick.id}`">
<line
class="chart-tick"
@@ -99,34 +116,37 @@
{{ tick.label }}
</text>
</g>
</svg>
</div>
<div class="table-panel">
<div class="panel-title">Historie</div>
<div v-if="tableRows.length === 0" class="state-panel state-panel-muted">
Noch keine gespeicherte TTR-Historie vorhanden.
</svg>
</div>
<div class="table-panel">
<div class="panel-title">Historie</div>
<div v-if="tableRows.length === 0" class="state-panel state-panel-muted">
Noch keine gespeicherte TTR-Historie vorhanden.
</div>
<div v-else class="history-table-scroll">
<table class="history-table">
<thead>
<tr>
<th>Datum</th>
<th>TTR</th>
<th>Veränderung</th>
<th>Quelle</th>
</tr>
</thead>
<tbody>
<tr v-for="row in tableRows" :key="row.id">
<td>{{ formatDate(row.sourceDate) }}</td>
<td class="ttr-transition-cell">{{ formatTtrTransition(row.beforeTtr, row.afterTtr) }}</td>
<td :class="changeClass(row.change)">
{{ formatChange(row.change) }}
</td>
<td>{{ row.label || row.sourceType || '' }}</td>
</tr>
</tbody>
</table>
</div>
</div>
<table v-else class="history-table">
<thead>
<tr>
<th>Datum</th>
<th>TTR</th>
<th>Veränderung</th>
<th>Quelle</th>
</tr>
</thead>
<tbody>
<tr v-for="row in tableRows" :key="row.id">
<td>{{ formatDate(row.sourceDate) }}</td>
<td class="ttr-transition-cell">{{ formatTtrTransition(row.beforeTtr, row.afterTtr) }}</td>
<td :class="changeClass(row.change)">
{{ formatChange(row.change) }}
</td>
<td>{{ row.label || row.sourceType || '' }}</td>
</tr>
</tbody>
</table>
</div>
</div>
</div>
@@ -171,6 +191,7 @@ export default {
entries: [],
lastFetchedAt: null,
selectedRange: 'all',
activeChartPoint: null,
playerId: this.member?.myTischtennisHistoryPlayerId || this.member?.myTischtennisPlayerId || null
};
},
@@ -278,6 +299,23 @@ export default {
chartPolyline() {
return this.chartPoints.map((point) => `${point.x},${point.y}`).join(' ');
},
chartTooltip() {
if (!this.activeChartPoint) {
return null;
}
const width = 142;
const height = 44;
const margin = 8;
const { x, y, label, value } = this.activeChartPoint;
const tooltipX = Math.min(
Math.max(margin, x - width / 2),
this.chartMeta.width - width - margin
);
const tooltipY = y - height - 12 >= margin ? y - height - 12 : y + 12;
return { x: tooltipX, y: tooltipY, label, value };
},
chartXTicks() {
if (this.chartPoints.length === 0) {
return [];
@@ -451,8 +489,22 @@ export default {
</script>
<style scoped>
.ttr-history-dialog :deep(.dialog-container) {
height: min(800px, 90vh);
}
.ttr-history-dialog :deep(.dialog-body) {
display: flex;
min-height: 0;
overflow: hidden;
}
.ttr-history-content {
padding: 1rem;
display: flex;
flex: 1;
flex-direction: column;
min-height: 0;
}
.dialog-intro {
@@ -510,9 +562,21 @@ export default {
}
.content-grid {
display: flex;
flex-direction: column;
gap: 18px;
flex: 1;
min-height: 0;
overflow: hidden;
}
.history-panels {
display: grid;
grid-template-columns: 1.2fr 1fr;
grid-template-rows: minmax(0, 1fr);
gap: 18px;
flex: 1;
min-height: 0;
}
.chart-panel,
@@ -521,6 +585,12 @@ export default {
border: 1px solid #e2e8f0;
border-radius: 16px;
padding: 16px;
min-height: 0;
}
.table-panel {
display: flex;
flex-direction: column;
}
.panel-title {
@@ -583,6 +653,31 @@ export default {
.chart-point {
fill: #0d4f9a;
cursor: pointer;
outline: none;
}
.chart-point:focus {
stroke: #fff;
stroke-width: 2;
}
.chart-tooltip {
pointer-events: none;
}
.chart-tooltip rect {
fill: #1f2937;
opacity: 0.96;
}
.chart-tooltip text {
fill: #fff;
font-size: 11px;
}
.chart-tooltip text:last-child {
font-weight: 700;
}
.chart-tick {
@@ -605,6 +700,11 @@ export default {
border-collapse: collapse;
}
.history-table-scroll {
min-height: 0;
overflow-y: auto;
}
.history-table th,
.history-table td {
text-align: left;
@@ -613,6 +713,10 @@ export default {
}
.history-table thead th {
position: sticky;
top: 0;
background: var(--primary-color);
z-index: 1;
color: #fff;
border-bottom: 2px solid #ddd;
font-size: 0.82rem;
@@ -663,7 +767,12 @@ export default {
}
.content-grid {
overflow: hidden;
}
.history-panels {
grid-template-columns: 1fr;
grid-template-rows: auto minmax(0, 1fr);
}
}
</style>

View File

@@ -12627,49 +12627,49 @@
"en|ja|planned": "計画済み",
"en|ja|prepared": "Prepared",
"de|ja|Block": "ブロック",
"en|zh-CN|Swap": "交换",
"en|zh-CN|Outward": "向外",
"en|zh-CN|Home/Away Swapped": "主客场交换",
"en|zh-CN|Home/Away could not be swapped.": "主/客场无法交换。",
"en|zh-CN|planned": "计划",
"en|zh-CN|prepared": "准备好了",
"de|zh-CN|Optional": "选修的",
"de|zh-CN|in": "在",
"de|zh-CN|ไทย (Thai)": "ไทย(泰语)",
"de|zh-CN|Cebuano (Bisaya)": "宿务语(比萨亚语)",
"de|zh-CN|BIC": "商业银行",
"de|zh-CN|Optional": "可选",
"de|zh-CN|in": "出生地点",
"de|zh-CN|ไทย (Thai)": "ไทย (泰语)",
"de|zh-CN|Cebuano (Bisaya)": "宿务语(比萨亚)",
"de|zh-CN|BIC": "银行识别码 (BIC)",
"de|zh-CN|Min": "最小",
"de|zh-CN|Block": "堵塞",
"en|th|Disabled": "พิการ",
"en|th|Possible to be present": "เป็นไปได้ที่จะอยู่",
"en|th|Active members": "สมาชิกที่ใช้งานอยู่",
"en|th|Swap": "แลกเปลี่ยน",
"en|th|Outward": "ภายนอก",
"en|th|Home/Away Swapped": "สลับทีมเหย้า/เยือน",
"en|th|Home/Away could not be swapped.": "เหย้า/เยือนไม่สามารถสลับได้",
"en|th|planned": "วางแผนไว้",
"en|th|prepared": "เตรียมไว้",
"en|zh-CN|Swap": "掉期率",
"en|zh-CN|Outward": "进港",
"en|zh-CN|Home/Away Swapped": "Home/Away Swapped",
"en|zh-CN|Home/Away could not be swapped.": "Home/Away无法更换。",
"en|zh-CN|planned": "已计划",
"en|zh-CN|prepared": "准备好",
"de|zh-CN|Block": "左右对齐",
"de|th|Details": "รายละเอียด",
"de|th|Optional": "ไม่จำเป็น",
"de|th|in": "ใน",
"de|th|Optional": "ตัวเลือก",
"de|th|in": "ที่",
"de|th|OK": "ตกลง",
"de|th|HTTV / click-TT": "HTTV / คลิก-TT",
"de|th|Cebuano (Bisaya)": "เซบูอาโน (บิซายา)",
"de|th|IBAN": "ไอแบน",
"de|th|BIC": "บีไอซี",
"de|th|·": null,
"de|th|HTTV / click-TT": "HTTV/click-TT",
"de|th|Cebuano (Bisaya)": "เซบัวโน (บิซายา)",
"de|th|IBAN": "ธนาคาร",
"de|th|BIC": "เลขบัญชี",
"de|th|·": "·",
"de|th|Min": "นาที",
"de|th|KO": "เคโอ",
"en|th|Disabled": "ปิดการใช้งาน",
"en|th|Possible to be present": "เป็นไปได้ที่จะอยู่ด้วย",
"en|th|Active members": "สมาชิกที่ใช้งานอยู่",
"de|th|KO": "น็อคเอ๊าท์",
"de|th|Mixed": "ผสม",
"de|th|optional": "ไม่จำเป็น",
"de|th|Index": "ดชนี",
"de|th|Diff": "ความแตกต่าง",
"de|th|myTischtennis-Account": "บัญชีเทเบิลเทนนิสของฉัน",
"de|th|optional": "ตัวเลือก",
"de|th|Index": "ดรรชนี",
"de|th|Diff": "DIFF",
"de|th|myTischtennis-Account": "myTischtennis-Account",
"de|th|Cookies/Local Storage": "คุกกี้/ที่เก็บข้อมูลในเครื่อง",
"de|th|TTR": "ทีทีอาร์",
"de|th|TTR": "TTR",
"de|th|QTTR": "QTTR",
"de|th|min": "นาที",
"de|th|Download PDF": "ดาวน์โหลดไฟล์ PDF",
"de|th|Download PDF": "ดาวน์โหลด PDF",
"en|th|Swap": "สวอป",
"en|th|Outward": "ภายนอก",
"en|th|Home/Away Swapped": "สลับทีมเหย้า/เยือนแล้ว",
"en|th|Home/Away could not be swapped.": "ไม่สามารถสลับทีมเหย้า/เยือนได้",
"en|th|planned": "วางแผนแล้ว",
"en|th|prepared": "เตรียม",
"de|th|Code": "รหัส",
"de|th|Team": "ทีม",
"de|th|Teams": "ทีม",
@@ -12677,70 +12677,70 @@
"de|th|Email": "อีเมล",
"de|th|https://example.com": "https://example.com",
"de|th|/api/auth/login": "/api/auth/login",
"de|th|/api/members/bulk": "/api/สมาชิก/bulk",
"de|th|myTischtennis": "มายเทเบิลเทนนิส",
"de|th|IP": "ไอพี",
"de|th|Request Body": "ขอเนื้อความ",
"de|th|Response Body": "ร่างกาตอบสนอง",
"de|th|/api/members/bulk": "/api/members/bulk",
"de|th|myTischtennis": "myTischtennis",
"de|th|IP": "IP",
"de|th|Request Body": "เนื้อหาคำขอ",
"de|th|Response Body": "เนื้อหากาตอบสนอง",
"de|th|Server": "เซิร์ฟเวอร์",
"de|th|Endpoint": "จุดสิ้นสุด",
"de|th|Format": "รูปแบบ",
"de|th|Endpoint": "ปลายทาง",
"de|th|Format": "ฟอร์แมต",
"de|th|Tags": "แท็ก",
"de|th|Fullscreen Modal": "โมดอลแบบเต็มหน้าจอ",
"de|th|Fullscreen Modal": "หน้าต่างลอยแบบเต็มหน้าจอ",
"de|th|Fullscreen Modal Dialog": "กล่องโต้ตอบโมดอลแบบเต็มหน้าจอ",
"de|th|Block": "ปิดกั้น",
"de|th|🔍 nuscore Analyzer": "🔍 เครื่องวิเคราะห์ nuscore",
"de|th|(Q)TTR": "(ถาม)TTR",
"en|tl|Disabled": "Hindi pinagana",
"en|tl|Possible to be present": "Posibleng naroroon",
"en|tl|Active members": "Mga aktibong miyembro",
"en|tl|Swap": "Magpalit",
"en|tl|Outward": "Panlabas",
"en|tl|Home/Away Swapped": "Home/Away Pinagpalit",
"en|tl|Home/Away could not be swapped.": "Hindi mapalitan ang Home/Away.",
"en|tl|planned": "binalak",
"en|tl|prepared": "pinaghandaan",
"de|th|Block": "ท่อน",
"de|th|🔍 nuscore Analyzer": "🔍 nuscore Analyzer",
"de|th|(Q)TTR": "(Q) TTR",
"de|tl|Details": "Mga Detalye",
"de|tl|Optional": "Opsyonal",
"de|tl|in": "sa",
"de|tl|OK": "OK",
"de|tl|HTTV / click-TT": "HTTP / click-TT",
"de|tl|OK": "Sinop ko ba ito?",
"de|tl|HTTV / click-TT": "HTTV / click - TT",
"de|tl|Cebuano (Bisaya)": "Cebuano (Bisaya)",
"de|tl|IBAN": "IBAN",
"de|tl|BIC": "BIC",
"de|tl|·": null,
"de|tl|·": "·",
"de|tl|Min": "Min",
"en|tl|Disabled": "Naka-disable",
"en|tl|Possible to be present": "Posibleng naroroon",
"en|tl|Active members": "Mga aktibong miyembro",
"de|tl|KO": "KO",
"de|tl|Mixed": "Mixed",
"de|tl|Mixed": "Halu - halo",
"de|tl|optional": "opsyonal",
"de|tl|Index": "index",
"de|tl|Index": "Password:",
"de|tl|Diff": "Diff",
"de|tl|myTischtennis-Account": "ang aking table tennis account",
"de|tl|myTischtennis-Account": "myTischtennis - Account",
"de|tl|Cookies/Local Storage": "Cookies/Lokal na Imbakan",
"de|tl|TTR": "TTR",
"de|tl|QTTR": "QTTR",
"de|tl|min": "min",
"de|tl|Download PDF": "Mag-download ng PDF",
"de|tl|Code": "code",
"de|tl|Team": "pangkat",
"de|tl|Teams": "mga koponan",
"de|tl|vs": "vs",
"de|tl|Email": "E-mail",
"de|tl|Download PDF": "I - download ang PDF",
"en|tl|Swap": "I-swap",
"en|tl|Outward": "Sa Labas",
"en|tl|Home/Away Swapped": "Username or email address *",
"en|tl|Home/Away could not be swapped.": "Hindi maaaring palitan ang Home/Away.",
"en|tl|planned": "Naplano",
"en|tl|prepared": "pasaway",
"de|tl|Code": "Code",
"de|tl|Team": "Team",
"de|tl|Teams": "Mga Koponan",
"de|tl|vs": "kumpara sa",
"de|tl|Email": "Email",
"de|tl|https://example.com": "https://example.com",
"de|tl|/api/auth/login": "/api/auth/login",
"de|tl|/api/members/bulk": "/api/members/bulk",
"de|tl|myTischtennis": "myTable Tennis",
"de|tl|myTischtennis": "myTischtennis",
"de|tl|IP": "IP",
"de|tl|Request Body": "Katawan ng Kahilingan",
"de|tl|Response Body": "Katawan ng Pagtugon",
"de|tl|Server": "server",
"de|tl|Request Body": "Humiling ng Katawan",
"de|tl|Response Body": "Katawan ng Tugon",
"de|tl|Server": "Servers",
"de|tl|Endpoint": "Endpoint",
"de|tl|Format": "pormat",
"de|tl|Tags": "mga tag",
"de|tl|Fullscreen Modal": "Fullscreen modal",
"de|tl|Fullscreen Modal Dialog": "Fullscreen modal dialog",
"de|tl|Block": "harangan",
"de|tl|🔍 nuscore Analyzer": "🔍 nuscore analyzer",
"de|tl|Format": "Format",
"de|tl|Tags": "Mga Tag",
"de|tl|Fullscreen Modal": "Modal ng Fullscreen",
"de|tl|Fullscreen Modal Dialog": "Fullscreen Modal Dialog",
"de|tl|Block": "I - block",
"de|tl|🔍 nuscore Analyzer": "🔍 nuscore Analyzer",
"de|tl|(Q)TTR": "(Q)TTR",
"en|ceb|filter": "Salaan",
"en|ceb|status": "",
@@ -13012,34 +13012,312 @@
"en|ceb|Record accident": "Aksidente sa rekord",
"en|ceb|Activity": "Kalihokan",
"en|ceb|Duration": "Gidugayon",
"en|ceb|Activity image": "Larawan sa kalihokan",
"en|ceb|Activity image": "Imahe sa kalihokan",
"en|ceb|Activity drawing": "Pagdrowing sa kalihokan",
"en|ceb|Today": "Karon",
"en|ceb|Existing groups": "Anaa nga mga grupo",
"en|ceb|Leader": "Lider",
"en|ceb|Delete group": "Pagtangtang sa grupo",
"en|ceb|Today": "Karon Karon",
"en|ceb|Existing groups": "Mga kasamtangan nga grupo",
"en|ceb|Leader": "Pangulo",
"en|ceb|Delete group": "I-delete ang grupo",
"en|ceb|Number of groups": "Gidaghanon sa mga grupo",
"en|ceb|Add group": "Idugang ang grupo",
"en|ceb|Activity / time block": "Aktibidad / oras block",
"en|ceb|Add group": "verb in a column header displaying group names",
"en|ceb|Activity / time block": "Bloke sa kalihokan / oras",
"en|ceb|Duration (min)": "Gidugayon (min)",
"en|ceb|Standard activities": "Standard nga mga kalihokan",
"de|ceb|Min": "Min",
"en|ceb|Standard activity could not be added.": "Ang kasagarang kalihokan dili madugang.",
"en|ceb|Standard activity could not be added.": "Dili madugang ang naandan nga kalihokan.",
"en|ceb|Add group activity": "Idugang ang kalihokan sa grupo",
"en|ceb|+ Group": "+ Grupo",
"en|ceb|+ Group": "Maghugpong",
"en|ceb|All": "Tanan",
"en|ceb|Select group...": "Pilia ang grupo...",
"en|ceb|Select group...": "Gipili nga grupo...",
"en|ceb|Assign": "I-assign",
"en|ceb|Ready": "Andam",
"en|ceb|Open": "Bukas",
"en|ceb|Open": "Ablihi",
"en|ceb|Plan status": "Status sa plano",
"en|ceb|{count} open": "{count} bukas",
"en|ceb|e.g. 2x7 or 3*5": "e.g. 2x7 o 3*5",
"en|ceb|e.g. 2x7": "e.g. 2x7",
"en|ceb|Show image/drawing": "Ipakita ang hulagway/drawing",
"en|ceb|{count} open": "{count} ablihan",
"en|ceb|e.g. 2x7 or 3*5": "gigaset Gigaset 2x7 or 3*5",
"en|ceb|e.g. 2x7": "giggidy giggidy 2x7",
"en|ceb|Show image/drawing": "Ipakita ang imahe/drowing",
"en|ceb|Participants": "Mga partisipante",
"en|ceb|Disabled": "Nabaldado",
"en|ceb|Disabled": "Baldado",
"en|ceb|Possible to be present": "Posible nga presente",
"en|ceb|Search participants": "Pangitaa ang mga partisipante",
"en|ceb|Present": "Present"
"en|ceb|Present": "Present",
"en|ceb|Absent": "Absent",
"en|ceb|Excused": "Gipasaylo",
"en|ceb|No status": "Walay status",
"en|ceb|Cancelled": "Gikanselar",
"en|ceb|+ Quick add": "+ Dali nga pagdugang",
"en|ceb|Select tags": "Pagpili og mga tag",
"en|ceb|Create exercise drawing": "Paghimo og exercise drawing",
"en|ceb|Overall activity": "Kinatibuk-ang kalihokan",
"en|ceb|Edit activity": "I-edit ang kalihokan",
"en|ceb|Edit group activity": "I-edit ang kalihokan sa grupo",
"en|ceb|Assign participants for group activity": "I-assign ang mga partisipante alang sa kalihokan sa grupo",
"en|ceb|Failed to load predefined activities": "Napakyas sa pagkarga sa gitakda nang daan nga mga kalihokan",
"en|ceb|Please select a participant and enter a note.": "Palihug pagpili og usa ka partisipante ug isulod ang usa ka nota.",
"en|ceb|Please select a group and enter an activity.": "Palihug pagpili og grupo ug pagsulod og kalihokan.",
"en|ceb|Date cannot be deleted": "Dili mapapas ang petsa",
"en|ceb|There is still content present (training plan, participants, activities, accidents or notes).": "Aduna pa'y sulod nga anaa (plano sa pagbansay, mga partisipante, mga kalihokan, mga aksidente o mga nota).",
"en|ceb|Confirm deletion": "Kumpirma ang pagtangtang",
"en|ceb|Do you really want to delete this date?": "Gusto ba nimo nga papason kini nga petsa?",
"en|ceb|All associated data will also be deleted.": "Ang tanan nga nahilambigit nga datos mapapas usab.",
"en|ceb|No participants available for this training day.": "Walay mga partisipante nga magamit alang niini nga adlaw sa pagbansay.",
"en|ceb|At least 2 groups must be created the first time.": "Labing menos 2 ka grupo ang kinahanglang himoon sa unang higayon.",
"en|ceb|1 group was added successfully.": "1 ka grupo ang malampusong nadugang.",
"en|ceb|{count} groups were created successfully.": "Malampuson nga nahimo ang {count} nga mga grupo.",
"en|ceb|Error creating groups": "Sayop sa paghimo og mga grupo",
"en|ceb|Do you really want to delete the group \"{name}\"?": "Gusto ba nimo nga papason ang grupo nga \"{name}\"?",
"en|ceb|Group deleted successfully.": "Malampuson nga natangtang ang grupo.",
"en|ceb|Error deleting group": "Sayop sa pagtangtang sa grupo",
"en|ceb|Error creating activity": "Sayop sa paghimo sa kalihokan",
"en|ceb|Training plan as PDF": "Plano sa pagbansay isip PDF",
"en|ceb|Schedule as PDF": "Iskedyul isip PDF",
"en|ceb|Download training day as PDF": "Pag-download sa adlaw sa pagbansay isip PDF",
"en|ceb|Training day as PDF": "Adlaw sa pagbansay isip PDF",
"en|ceb|Created": "Compitable",
"en|ceb|Fully configured": "Bug-os nga gi-configure",
"en|ceb|Partially configured": "Partly gi-configure",
"en|ceb|Not configured": "Dili gi-configure",
"en|ceb|Never": "Wala gyud",
"en|ceb|Show code list": "Ipakita ang listahan sa code",
"en|ceb|Show PIN list": "Ipakita ang listahan sa PIN",
"en|ceb|Delete club team": "I-delete ang koponan sa club",
"en|ceb|Do you really want to delete the club team \"{name}\"?": "Gusto ba gyud nimo nga tangtangon ang koponan sa club nga \"{name}\"?",
"en|ceb|Failed to delete the club team.": "Napakyas sa pagtangtang sa koponan sa club.",
"en|ceb|This team is not assigned to a league.": "Ang kini nga koponan wala gi-assign sa usa ka liga.",
"en|ceb|Please assign a league to the team first so documents can be processed.": "Palihug pag-assign una usa ka liga sa koponan aron maproseso ang mga dokumento.",
"en|ceb|Please assign a league to the team first to parse PDF files.": "Palihug pag-assign usa ka liga sa koponan una aron ma-parse ang mga PDF file.",
"en|ceb|{label} uploaded and parsed successfully.\n\nMatches found: {matchesFound}\nNew matches created: {created}\nMatches updated: {updated}": "< start = \"136.26\" dur = \"2.72\" > Malampuson nga gi-upload ug gipares. >\n\nNakit-an ang mga panagsama: {matchesFound}\nBag-ong mga posporo nga gimugna: {created}\nGi-update ang mga posporo: {updated}",
"en|ceb|Errors: {count}": "Mga error: {count}",
"en|ceb|... and {count} more": "... ug {count} more",
"en|ceb|No matches found": "Wala 'y nakit-an nga mga posporo",
"en|ceb|Note: No matches detected.\nLines in document: {lines}": "Hinumdomi: Wala 'y nakit-an nga mga posporo.\nMga linya sa dokumento: {lines}",
"en|ceb|{label} \"{fileName}\" was uploaded successfully.": "Malampuson nga na-upload ang {label} \"{fileName}\".",
"en|ceb|Failed to upload and parse the file.": "Napakyas sa pag-upload ug pag-parse sa file.",
"en|ceb|Matches found: {matchesFound}\nNew matches created: {created}\nMatches updated: {updated}": "Nakit-an ang mga panagsama: {matchesFound}\nBag-ong mga posporo nga gimugna: {created}\nGi-update ang mga posporo: {updated}",
"en|ceb|Failed to parse the PDF file": "Napakyas sa pag-parse sa PDF file",
"en|ceb|The selected document could not be found.": "Ang gipili nga dokumento dili makit-an.",
"en|ceb|No league was provided for the selected team.": "Wala 'y gihatag nga liga alang sa napili nga koponan.",
"en|ceb|The PDF file could not be found.": "Ang PDF file dili makit-an.",
"en|ceb|Please upload the file again and try once more.": "Palihog i-upload ang file ug sulayi pag-usab.",
"en|ceb|Failed to load the PDF.": "Napakyas sa pag-load sa PDF.",
"en|ceb|The URL could not be parsed. Please check the format.": "Ang URL dili ma-paste. Palihug susihon ang format.",
"en|ceb|Configure league?": "I-configure ang liga?",
"en|ceb|Table URL detected": "Namatikdan ang URL sa lamesa",
"en|ceb|Association: {association}\nSeason: {season}\nLeague: {league}\nGroup ID: {groupId}\n\nDo you want to configure this league in the database? This enables automatic table data retrieval.": "Asosasyon: {association}\nPanahon: {season}\nLiga: {league}\nID sa Grupo: {groupId}\n\nGusto ba nimo nga i-configure kini nga liga sa database? Gitugotan niini ang awtomatikong pagkuha sa datos sa lamesa.",
"en|ceb|Please select a team first": "Palihug pilia una ang usa ka team",
"en|ceb|To activate the myTischtennis configuration, you must first select a team from the list.": "Aron maaktibo ang pag-configure sa myTischtennis, kinahanglan una nga mopili ka usa ka koponan gikan sa lista.",
"en|ceb|Team configured successfully. Automatic data retrieval is now active.": "Malampuson nga na-configure ang koponan. Ang awtomatikong pagkuha sa datos aktibo na karon.",
"en|ceb|League: {league}\nSeason: {season}\nAutomatic data retrieval is now active.": "Liga sa Liga: {league}\nPanahon: {season}\nAng awtomatikong pagkuha sa datos karon aktibo na.",
"en|ceb|The team could not be configured.": "Dili ma-configure ang koponan.",
"en|ceb|League configured successfully. Table data can now be retrieved automatically.": "Malampuson nga na-configure ang liga. ang datos sa lamesa mahimo na nga awtomatikong makuha.",
"en|ceb|League: {league}\nSeason: {season}\nAssociation: {association}\nGroup ID: {groupId}\n\nTable data can now be retrieved automatically.": "Liga sa Liga: {league}\nPanahon: {season}\nAsosasyon: {association}\nID sa Grupo: {groupId}\n\nAng datos sa lamesa mahimo na nga awtomatiko nga makuha.",
"en|ceb|The league could not be configured.": "Ang liga dili ma-configure.",
"en|ceb|Not created": "Wala gilalang",
"en|ceb|Automatic data retrieval is enabled": "Gipalihok ang awtomatikong pagkuha sa datos",
"en|ceb|Missing: {items}": "Missing: {items}",
"en|ceb|Missing:": "Nawad-an:",
"en|ceb|Please select a league class and save.": "Palihug pagpili usa ka klase sa liga ug i-save.",
"en|ceb|Paste and parse the MyTischtennis URL to link the team ID and league data.": "I-paste ug i-parse ang MyTischtennis URL aron ma-link ang team ID ug datos sa liga.",
"en|ceb|Enter a myTischtennis URL for automatic configuration": "Pagsulud sa usa ka myTischtennis URL alang sa awtomatikong pag-configure",
"en|ceb|Statistics could not be loaded.": "Dili ma-load ang mga istatistika.",
"en|ceb|The async job could not be started.": "Dili masugdan ang trabaho sa async.",
"en|ceb|Data could not be fetched.": "Ang datos dili makuha.",
"en|ceb|Timed out while fetching data (async job took too long).": "Gikuha ang oras samtang gikuha ang datos (ang trabaho sa async dugay kaayo).",
"en|ceb|Team data fetched successfully.": "Malampuson nga nakuha ang datos sa koponan.",
"en|ceb|Unknown team": "Wala mailhi nga team",
"en|ceb|Team: {team}\nFetched records: {count}": "Team: {team}\nGikuha nga mga rekord: {count}",
"en|ceb|Table update:": "Pag-update sa lamesa:",
"en|ceb|Login to myTischtennis required": "Pag-login sa myTischtennis nga gikinahanglan",
"en|ceb|Invalid file type": "Dili balido nga tipo sa file",
"en|ceb|{label} must have one of the following extensions: {extensions}.": "{label} kinahanglan adunay usa sa mga mosunud nga extension: {extensions}.",
"en|ceb|{label} has an unexpected MIME type: {type}.": "{label} adunay usa ka wala damha nga MIME type: {type}.",
"en|ceb|File too large": "Dako kaayo ang file",
"en|ceb|{label} must not exceed 10 MB.": "{label} dili kinahanglan molapas sa 10 MB.",
"en|ceb|Pending User Requests": "Pending Mga Paghangyo sa Gumagamit",
"de|ceb|Email": "Email",
"en|ceb|Approve  ": "Pag-apruba  ",
"en|ceb|Dismiss": "I-dismiss",
"en|ceb|No pending user requests.": "Wala 'y gihulat nga mga hangyo sa gumagamit.",
"en|ceb|No permission": "Wala 'y pagtugot",
"en|ceb|You do not have permission to manage shares.": "Wala ka 'y pagtugot sa pagdumala sa mga bahin.",
"en|ceb|Only admins can edit member requests.": "Ang mga admin ra ang maka-edit sa mga hangyo sa miyembro.",
"en|ceb|failed to load pendings for %<%E%s%E%>": "napakyas sa pag-load sa mga pending alang sa %<%E%s%E%>",
"en|ceb|Error approving user": "Sayup sa pag-apruba sa tiggamit",
"en|ceb|Error Rejecting User": "Sayup nga Pagsalikway sa Gumagamit",
"en|ceb|Credential management": "Pagdumala sa kredensyal",
"en|ceb|Manage access rights for club members": "Pagdumala sa mga katungod sa pag-access alang sa mga miyembro sa club",
"en|ceb|Inviting members...": "Imbitado ang mga miembro...",
"en|ceb|Available Roles": "Magamit nga mga Papel",
"en|ceb|Club members": "Mga miyembro sa club",
"en|ceb|Role": "Papel",
"en|ceb|Click to disable": "I-klik aron ma-disable",
"en|ceb|Click to activate.": "Pag-klik aron ma-aktibo.",
"en|ceb|Customize": "Ipasadya",
"en|ceb|Creator": "Maglalalang",
"en|ceb|Permissions for": "Mga permiso alang sa",
"en|ceb|Base Role": "Base Role",
"en|ceb|Here you can make individual adjustments.": "Dinhi mahimo nimo ang indibidwal nga pag-adjust.",
"en|ceb|Revert": "Balik",
"en|ceb|Reset All": "I-reset ang Tanan",
"en|ceb|Error loading data": "Error sa pagkarga ng data",
"en|ceb|Failed to update the role": "Napakyas sa pag-update sa tahas",
"en|ceb|Error saving permissions": "Sayup sa pagluwas sa mga pagtugot",
"en|ceb|Member Transfer - Settings": "Pagbalhin sa Miyembro - Mga setting",
"en|ceb|Loading configuration...": "Pag-configure sa pagkarga...",
"en|ceb|Transmission Configuration": "Pag-configure sa Transmission",
"en|ceb|Configure the settings for transferring members to external systems here. These settings are saved on a club-specific basis.": "I-configure ang mga setting alang sa pagbalhin sa mga miyembro ngadto sa mga eksternal nga sistema dinhi. Kini nga mga setting maluwas sa usa ka club nga piho nga basehan.",
"en|ceb|Server -configuration": "Server - pag-configure",
"en|ceb|Server Base URL": "Server Base URL",
"de|ceb|https://example.com": "https://example.com",
"en|ceb|Base URL of the server (e.g. https://example.com)": "Base URL sa server (pananglitan https://example.com)",
"en|ceb|Login Configuration": "Pag-configure sa Pag-login",
"en|ceb|Login Endpoint Path": "Pag-login sa Endpoint Path",
"de|ceb|/api/auth/login": "/api/auth/pag-login",
"en|ceb|Optional: Relative path to login endpoint (e.g. /api/auth/login)": "Opsyonal: Paryente nga agianan sa pag-login sa katapusan nga punto (pananglitan /api/auth/login)",
"en|ceb|Login Format": "Format sa Pag-login",
"en|ceb|Login data": "Datos sa pag-login",
"en|ceb|Username / email": "Username / Email",
"en|ceb|Password": "Password",
"en|ceb|Extra field": "Ekstra nga uma",
"en|ceb|Additional field (e.g. client_id)": "Dugang nga natad (pananglitan client_id)",
"en|ceb|Additional field (e.g. client_secret)": "Dugang nga natad (pananglitan kliyente_tinago)",
"en|ceb|Transmission Endpoint Path": "Transmisyon Endpoint Path",
"de|ceb|/api/members/bulk": "/api/miembro/bulk",
"en|ceb|Relative path to the transmission endpoint (e.g. /api/members/bulk)": "Relatibong dalan ngadto sa transmission endpoint (pananglitan /api/mga miyembro/bulk)",
"en|ceb|HTTP Method": "HTTP nga Pamaagi",
"en|ceb|Transmission format": "Format sa pagpadala",
"en|ceb|Bulk import mode (transfer all members at once)": "Bulk import mode (pagbalhin sa tanan nga mga miyembro sa makausa)",
"en|ceb|If enabled, all members in a request are transferred as an array.": "Kung mahimo, ang tanan nga mga miyembro sa usa ka hangyo ibalhin ingon usa ka han-ay.",
"en|ceb|Import template from full example": "Import template gikan sa bug-os nga panig-ingnan",
"en|ceb|Insert a full example template here, e.g.:\nLBRACE\n December: [\n LBRACE\n D .firstNameD.: D .MaxD.,\n D. LastNameD.: D. MustermannD.,\n DMail: DMaxATexample.comMail: DMaxATexample.com\n RBRACE\n ]\nRBRACE": "Pagsulud usa ka kompleto nga pananglitan sa template dinhi, pananglitan:\nLBRACE\n Disyembre: [\n LBRACE\n D. UnaNameD.: D .MaxD.,\n D. LastNameD.: D. MustermannD.,\n DMail: DMaxATexample.comMail: DMaxATexample.com\n RBRACE\n ]\nRBRACE",
"en|ceb|Analyze and Import Template": "Pag-analisar ug Pag-import sa Template",
"en|ceb|Include a full sample template (with sample members). The system will automatically detect the member template and bulk wrapper template.": "Ilakip ang usa ka bug-os nga sample template (uban sa sample nga mga miyembro). Ang sistema awtomatikong makit-an ang template sa miyembro ug bulk wrapper template.",
"en|ceb|Bulk wrapper template (optional)": "Bulk wrapper template (opsyonal)",
"en|ceb|What is a bulk wrapper template?": "Unsa ang usa ka bulk wrapper template?",
"en|ceb|Optionally, you can define the outer structure into which the member array will be inserted. Use PLACEHOLDER_MEMBERS as placeholders for the array of members.": "Opsyonal, mahimo nimong ipasabut ang panggawas nga istraktura diin isulud ang han-ay sa miyembro. Paggamit PLACEHOLDER_MEMBERS ingon mga placeholder alang sa han-ay sa mga miyembro.",
"en|ceb|Example": "Pananglitan",
"en|ceb|Note: If no wrapper template is specified, a members array is automatically used.": "Hinumdomi: Kung wala 'y gitino nga template sa wrapper, awtomatikong gigamit ang usa ka han-ay sa mga miyembro.",
"en|ceb|Available placeholders": "Anaa nga mga placeholder",
"en|ceb|Member Array": "Array sa Miyembro",
"en|ceb|Transfer Template": "Template sa Pagbalhin",
"en|ceb|What is a template?": "Unsa ang usa ka template?",
"en|ceb|The template defines the format in which the member data is transferred to the external system. Use placeholders such as PLACEHOLDER_FIRSTNAME to automatically replace the data.": "Gihubit sa template ang pormat diin ang datos sa miyembro gibalhin sa gawas nga sistema. Paggamit mga placeholder sama sa PLACEHOLDER_FIRSTNAME aron awtomatikong mapulihan ang datos.",
"en|ceb|Example of JSON format (recommended)": "Panig-ingnan sa JSON format (girekomendar)",
"en|ceb|Example of XML format": "Panig-ingnan sa XML format",
"en|ceb|Example of form data format": "Pananglitan sa pormat sa datos sa porma",
"en|ceb|For form data, use a simple text template with lines in the format feldname=placeholder:": "Alang sa datos sa porma, gamita ang usa ka yano nga template sa teksto nga adunay mga linya sa format ngafeldname =placeholder:",
"en|ceb|Mode active": "Aktibo nga mode",
"en|ceb|The template defines the format for a single member. The members are automatically wrapped in an array. You can optionally define the external structure in the \"bulk wrapper template\" (see below).": "Ang template naghubit sa pormat alang sa usa ka miyembro. Ang mga miyembro awtomatikong giputos sa usa ka han-ay. Mahimo nimo kapilian nga ipasabut ang panggawas nga istraktura sa \"bulk wrapper template\" (tan-awa sa ubus).",
"en|ceb|Click on a placeholder to insert it at the current cursor position:": "Pag-klik sa usa ka placeholder aron isulud kini sa karon nga posisyon sa cursor:",
"en|ceb|Tip: Place the cursor in the desired place in the template and click on a placeholder to insert it. Placeholders are automatically replaced by the actual member data when they are transferred.": "Tip: Ibutang ang cursor sa gitinguha nga lugar sa template ug i-klik ang usa ka placeholder aron isulud kini. Ang mga placeholder awtomatikong gipulihan sa aktwal nga datos sa miyembro kung gibalhin kini.",
"en|ceb|Saving...": "Nagaluwas...",
"en|ceb|clearing...": "pagpatin-aw...",
"en|ceb|Delete configuration": "I-delete ang pag-configure",
"en|ceb|Error Loading Config": "Error sa Pagkarga sa Config",
"en|ceb|Configuration saved successfully": "Malampuson nga naluwas ang pag-configure",
"en|ceb|Error while saving": "Sayop samtang nagaluwas",
"en|ceb|Are you sure you want to refund this transaction?": "Sigurado ka ba nga gusto nimo ibalik kini nga transaksyon?",
"en|ceb|Configuration deleted successfully!": "Malampuson nga gitangtang ang pag-configure!",
"en|ceb|Error clearing": "Paglimpyo sa sayup",
"en|ceb|Template imported successfully.": "Malampuson nga na-import ang template.",
"en|ceb|Member and bulk wrapper templates have been detected and completed.": "Ang mga template sa miyembro ug bulk wrapper nakit-an ug nahuman.",
"en|ceb|Single member template detected.": "Nakit-an ang template sa miyembro nga nag-inusara.",
"en|ceb|Member template detected, bulk mode enabled.": "Nakit-an ang template sa miyembro, gipalihok ang kadaghanan nga mode.",
"en|ceb|Error parsing template": "Sayop sa pag-parse sa template",
"en|ceb|Invalid template format": "Dili balido nga pormat sa template",
"en|ceb|Please ensure valid JSON is used.": "Palihug siguruha nga gigamit ang balido nga JSON.",
"en|ceb|Member First Name": "Member Unang Ngalan",
"en|ceb|Member Last Name": "Apelyido sa Miyembro",
"en|ceb|Full name ": "Bug-os nga ngalan",
"en|ceb|First name and last name combined": "Unang ngalan ug apelyido nga gihiusa",
"en|ceb|Email Address": "daguwat",
"en|ceb|Member's email address": "Email Adres sa Miyembro",
"en|ceb|Phone Number": "Numero sa telepono",
"en|ceb|Staff Member's Phone": "Telepono sa Kawani",
"en|ceb|Street and house number": "Numero sa dalan ug balay",
"en|ceb|Place of Residence": "Dapit sa Puy-anan",
"en|ceb|in the format YYYY-MM-DD": "sa format nga YYYY-MM-DD",
"en|ceb|Date of birth (old)": "Petsa sa pagkatawo (tigulang)",
"en|ceb|Date of birth in the format YYYY-MM-DD (alternative name)": "Petsa sa pagkatawo sa format nga YYY-MM-DD (alternatibo nga ngalan)",
"en|ceb|Combined Address": "Dungan nga Adres",
"en|ceb|Street and town combined": "Dalan ug lungsod gihiusa",
"en|ceb|TTR value": "Bili sa TTR",
"en|ceb|Member TTR Value": "Miyembro nga TTR Value",
"en|ceb|QTTR value": "Bili sa QTTR",
"en|ceb|Member QTTR Value": "Miyembro nga QTTR Value",
"en|ceb|Sex": "Iyotan pinay",
"en|ceb|Gender of the member": "Kasarian sa miyembro",
"en|ceb|System Logs": "Mga Log sa Sistema",
"en|ceb|Overview of all API requests, responses and executions": "Kinatibuk-ang Pagtan-aw sa tanan nga mga hangyo sa API, mga tubag ug pagpatuman",
"en|ceb|Backend Settings": "Mga Setting sa Backend",
"de|ceb|myTischtennis": "myTischtennis",
"en|ceb|Own backend": "Kaugalingon nga backend",
"en|ceb|Log Type": "Type sa Log",
"en|ceb|API Requests": "Mga Hangyo sa API",
"en|ceb|scheduler": "tig-iskedyul",
"en|ceb|Cron Jobs": "Cron Mga Trabaho",
"en|ceb|Manual Executions": "Manwal nga Pagpatuman",
"en|ceb|path": "kaang",
"en|ceb|e.g. /api/diary": "gig /api/diary",
"en|ceb|From": "From aha",
"en|ceb|To": "hangtud sa hangtod",
"en|ceb|Apply filter": "Magma Apply Magma filter",
"en|ceb|Loading logs...": "Pag-load sa mga log...",
"en|ceb|Loaded successfully": "Malampuson nga na-load",
"en|ceb|Records found": "Mga rekord nga nakit-an",
"en|ceb|displayed": "gipakita",
"en|ceb|Viewed": "Gitan-aw",
"en|ceb|Type": "Matang",
"en|ceb|Method": "paagi sa mini nga pag butang",
"en|ceb|Execution time": "Panahon sa pagpatuman",
"de|ceb|Details": "Mga Detalye",
"en|ceb|Previous": "Kaniadto",
"en|ceb|Next ": "Sunod ",
"en|ceb|by": "ni",
"en|ceb|Log Detail": "Detalye sa Log",
"en|ceb|Error loading logs": "Error sa pag-load ng mga log",
"en|ceb|just now": "karon lang",
"en|ceb|{n} seconds ago": "{n} segundos ang nakalipas",
"en|ceb|{n} minutes ago": "{n} minuten ago",
"en|ceb|API Request": "API Paghangyo",
"en|ceb|Cron Job": "Cron Job",
"en|ceb|Manual": "Manwal",
"de|ceb|IP": "IP",
"en|ceb|Scheduler Job": "Eskedyul Job",
"de|ceb|Request Body": "Hangyo nga Lawas",
"de|ceb|Response Body": "Tubag nga Lawas",
"en|ceb|Import Schedule": "Iskedyul sa Pag-import",
"en|ceb|Upload CSV file": "Mag-upload sa CSV file",
"en|ceb|Importing": "Importera",
"en|ceb|Add new member": "Idugang ang bag-ong miyembro",
"en|ceb|Surname (optional)": "Apelyido (opsyonal)",
"en|ceb|Date of birth (optional)": "Petsa sa pagkatawo (opsyonal)",
"en|ceb|Create & add new": "Paghimo & pagdugang bag-o",
"en|ceb|information": "Impormasyon ",
"en|ceb|Confirmation": "conpirma\n",
"en|ceb|Select Members": "Pilia ang mga Miyembro",
"en|ceb|Select All": "Pilia ang Tanan",
"en|ceb|Deselect all": "I-delete ang tanan",
"en|ceb|Recommendations": "Mga Rekomendasyon",
"en|ceb|No matching recommendations found.": "Wala 'y nakit-an nga katugbang nga mga rekomendasyon.",
"en|ceb|Transfer Members": "Pagbalhin sa mga Miyembro",
"en|ceb|Loading saved configuration": "Pag-load sa na-save nga pag-configure",
"en|ceb|No configuration found": "Wala 'y nakit-an nga pag-configure",
"en|ceb|Please configure the member transfer in the settings first.": "Palihug i-configure una ang pagbalhin sa miyembro sa mga setting.",
"en|ceb|Settings Where to?": "Mga Setting Asa?",
"de|ceb|Server": "Server",
"de|ceb|Endpoint": "Endpoint",
"de|ceb|Format": "Format",
"en|ceb|mode": "mode",
"en|ceb|Bulk Import": "Bulk Import",
"en|ceb|Edit the configuration.": "I-edit ang configuration.",
"en|ceb|Login details (optional overwrite)": "Mga detalye sa pag-login (opsyonal nga overrite)",
"en|ceb|The login details are used from the settings. You can overwrite them here if necessary.": "Ang mga detalye sa pag-login gigamit gikan sa mga setting. Mahimo nimo kini i-overwrite dinhi kung kinahanglan.",
"en|ceb|Password (leave blank for saved)": "Password (biya nga blangko alang sa maluwas)",
"en|ceb|Field name: Value (e.g. client_id: abc123)": "Ngalan sa uma: Value (pananglitan client_id: abc123)",
"en|ceb|Only fill in if you want to overwrite the saved login data. Empty fields use the stored values.": "Pun-a lang kung gusto nimo i-overwrite ang gitipigan nga datos sa pag-login. Ang mga natad nga wala 'y sulod naggamit sa gitipigan nga mga kantidad.",
"en|ceb|Communicating...": "Komunikasyon...",
"en|ceb|Transferred": "Gibalhin",
"en|ceb|{transferred} successfully transferred by {total} members.": "{transferred} malampuson nga gibalhin sa {total} mga miyembro."
}