feat(i18n, CourtDrawingTool, MembersOverviewSection): enhance internationalization and UI components

- Added new i18n keys for improved translations in the CourtDrawingTool and MembersOverviewSection components.
- Updated CourtDrawingTool to utilize translation keys for various UI elements, enhancing user experience and accessibility.
- Enhanced MembersOverviewSection with translation support for search and filter functionalities, improving usability for non-German speakers.
- Introduced new scripts in package.json for i18n auditing and status checking, streamlining localization management.
This commit is contained in:
Torsten Schulz (local)
2026-03-20 09:05:15 +01:00
parent 542d741428
commit cbc5054f1f
22 changed files with 5863 additions and 508 deletions

View File

@@ -7,8 +7,8 @@
<section class="workflow-card">
<button type="button" class="workflow-toggle" @click="toggleStartSection">
<div>
<div class="workflow-step">1. Startposition</div>
<p class="workflow-copy workflow-copy-compact">Aus welcher Aufschlagposition startet die Übung?</p>
<div class="workflow-step">{{ $t('courtDrawingTool.stepStartPosition') }}</div>
<p class="workflow-copy workflow-copy-compact">{{ $t('courtDrawingTool.stepStartPositionHint') }}</p>
</div>
<span class="workflow-toggle-icon">{{ startSectionExpanded ? '' : '+' }}</span>
</button>
@@ -31,8 +31,8 @@
<section class="workflow-card">
<button type="button" class="workflow-toggle" @click="toggleFirstStrokeSection">
<div>
<div class="workflow-step">2. 1. Schlag</div>
<p class="workflow-copy workflow-copy-compact">Schlagseite und Rotation für den ersten Ball festlegen.</p>
<div class="workflow-step">{{ $t('courtDrawingTool.stepFirstStroke') }}</div>
<p class="workflow-copy workflow-copy-compact">{{ $t('courtDrawingTool.stepFirstStrokeHint') }}</p>
</div>
<span class="workflow-toggle-icon">{{ firstStrokeSectionExpanded ? '' : '+' }}</span>
</button>
@@ -79,8 +79,8 @@
<section class="workflow-card">
<button type="button" class="workflow-toggle" @click="toggleTargetSection">
<div>
<div class="workflow-step">3. Ziel</div>
<p class="workflow-copy workflow-copy-compact">Zielzone für den ersten Schlag auswählen.</p>
<div class="workflow-step">{{ $t('courtDrawingTool.stepTarget') }}</div>
<p class="workflow-copy workflow-copy-compact">{{ $t('courtDrawingTool.stepTargetHint') }}</p>
</div>
<span class="workflow-toggle-icon">{{ targetSectionExpanded ? '' : '+' }}</span>
</button>
@@ -104,8 +104,8 @@
</section>
<section class="workflow-card workflow-card-wide" v-if="strokeType && spinType && targetPosition">
<div class="workflow-step">4. Folgeschläge</div>
<p class="workflow-copy">Optional weitere Bälle als Liste aufbauen.</p>
<div class="workflow-step">{{ $t('courtDrawingTool.stepAdditionalStrokes') }}</div>
<p class="workflow-copy">{{ $t('courtDrawingTool.stepAdditionalStrokesHint') }}</p>
<div v-if="additionalStrokes.length" class="stroke-sequence-list">
<div
@@ -115,14 +115,14 @@
>
<div class="stroke-sequence-index">{{ index + 2 }}</div>
<div class="stroke-sequence-copy">{{ formatAdditionalStroke(stroke) }}</div>
<button type="button" class="stroke-sequence-remove" @click="removeAdditionalStroke(index)">Entfernen</button>
<button type="button" class="stroke-sequence-remove" @click="removeAdditionalStroke(index)">{{ $t('common.delete') }}</button>
</div>
</div>
<div v-else class="stroke-sequence-empty">Noch keine Folgeschläge angelegt.</div>
<div v-else class="stroke-sequence-empty">{{ $t('courtDrawingTool.noAdditionalStrokes') }}</div>
<div class="next-stroke-selection">
<div class="workflow-block">
<span class="group-label">Seite</span>
<span class="group-label">{{ $t('courtDrawingTool.strokeSide') }}</span>
<div class="choice-row">
<button
type="button"
@@ -144,7 +144,7 @@
</div>
<div class="workflow-block">
<span class="group-label">Schlagart</span>
<span class="group-label">{{ $t('courtDrawingTool.strokeTypeLabel') }}</span>
<div class="choice-row choice-row-dense">
<button
v-for="option in additionalStrokeTypeOptions"
@@ -161,7 +161,7 @@
</div>
<div class="workflow-block">
<span class="group-label">Zielposition</span>
<span class="group-label">{{ $t('courtDrawingTool.targetPositionLabel') }}</span>
<div class="target-grid target-grid-large">
<button
v-for="n in additionalTargetPositions"
@@ -182,22 +182,22 @@
@click="addNextStroke"
:disabled="additionalStrokes.length >= 4 || !nextStrokeTargetPosition"
>
Schlag hinzufügen
{{ $t('courtDrawingTool.addStroke') }}
</button>
</div>
</section>
</div>
<div class="exercise-info" v-if="strokeType && spinType">
<p><strong>Kürzel:</strong> {{ getFullCode() }}</p>
<p><strong>Titel:</strong> {{ getFullTitle() }}</p>
<p><strong>{{ $t('courtDrawingTool.codeLabel') }}:</strong> {{ getFullCode() }}</p>
<p><strong>{{ $t('courtDrawingTool.titleLabel') }}:</strong> {{ getFullTitle() }}</p>
</div>
</div>
<aside class="preview-panel">
<div class="preview-panel-header">
<div class="workflow-step">Vorschau</div>
<p class="workflow-copy">Die Grafik erscheint, sobald der erste Schlag vollständig gesetzt ist.</p>
<div class="workflow-step">{{ $t('courtDrawingTool.preview') }}</div>
<p class="workflow-copy">{{ $t('courtDrawingTool.previewHint') }}</p>
</div>
<div v-if="isPrimaryStrokeReady" class="canvas-container">
<canvas
@@ -211,8 +211,8 @@
></canvas>
</div>
<div v-else class="canvas-placeholder">
<strong>1. Schlag vervollständigen</strong>
<span>Wähle Startposition, Schlagseite, Rotation und Ziel. Danach erscheint die grafische Darstellung.</span>
<strong>{{ $t('courtDrawingTool.completeFirstStroke') }}</strong>
<span>{{ $t('courtDrawingTool.completeFirstStrokeHint') }}</span>
</div>
</aside>
</div>
@@ -390,9 +390,9 @@ export default {
},
startPositionOptions() {
return [
{ value: 'AS1', short: 'AS1', label: 'links' },
{ value: 'AS2', short: 'AS2', label: 'mitte' },
{ value: 'AS3', short: 'AS3', label: 'rechts' }
{ value: 'AS1', short: 'AS1', label: this.$t('courtDrawingTool.startLeft') },
{ value: 'AS2', short: 'AS2', label: this.$t('courtDrawingTool.startMiddle') },
{ value: 'AS3', short: 'AS3', label: this.$t('courtDrawingTool.startRight') }
];
},
mainSpinOptions() {
@@ -406,14 +406,14 @@ export default {
},
additionalStrokeTypeOptions() {
return [
{ value: 'US', short: 'US', label: 'Schupf' },
{ value: 'OS', short: 'OS', label: 'Konter' },
{ value: 'TS', short: 'TS', label: 'Topspin' },
{ value: 'F', short: 'F', label: 'Flip' },
{ value: 'B', short: 'B', label: 'Block' },
{ value: 'SCH', short: 'SCH', label: 'Schuss' },
{ value: 'SAB', short: 'SAB', label: 'Schnittabwehr' },
{ value: 'BAB', short: 'BAB', label: 'Ballonabwehr' }
{ value: 'US', short: 'US', label: this.$t('courtDrawingTool.strokeTypePush') },
{ value: 'OS', short: 'OS', label: this.$t('courtDrawingTool.strokeTypeCounter') },
{ value: 'TS', short: 'TS', label: this.$t('courtDrawingTool.strokeTypeTopspin') },
{ value: 'F', short: 'F', label: this.$t('courtDrawingTool.strokeTypeFlip') },
{ value: 'B', short: 'B', label: this.$t('courtDrawingTool.strokeTypeBlock') },
{ value: 'SCH', short: 'SCH', label: this.$t('courtDrawingTool.strokeTypeSmash') },
{ value: 'SAB', short: 'SAB', label: this.$t('courtDrawingTool.strokeTypeChopDefense') },
{ value: 'BAB', short: 'BAB', label: this.$t('courtDrawingTool.strokeTypeLobDefense') }
];
},
// Reihenfolge der Positionen für Hauptschlag basierend auf Richtung
@@ -542,20 +542,20 @@ export default {
},
formatTargetPosition(position) {
const labels = {
'1': 'Vorhand lang',
'2': 'Mitte lang',
'3': 'Rückhand lang',
'4': 'Vorhand halblang',
'5': 'Mitte halblang',
'6': 'Rückhand halblang',
'7': 'Vorhand kurz',
'8': 'Mitte kurz',
'9': 'Rückhand kurz'
'1': this.$t('courtDrawingTool.targetForehandLong'),
'2': this.$t('courtDrawingTool.targetMiddleLong'),
'3': this.$t('courtDrawingTool.targetBackhandLong'),
'4': this.$t('courtDrawingTool.targetForehandHalfLong'),
'5': this.$t('courtDrawingTool.targetMiddleHalfLong'),
'6': this.$t('courtDrawingTool.targetBackhandHalfLong'),
'7': this.$t('courtDrawingTool.targetForehandShort'),
'8': this.$t('courtDrawingTool.targetMiddleShort'),
'9': this.$t('courtDrawingTool.targetBackhandShort')
};
return labels[String(position)] || String(position);
},
formatAdditionalStroke(stroke) {
return `${this.formatStrokeSide(stroke.side)} ${this.formatAdditionalStrokeType(stroke.type)} nach ${this.formatTargetPosition(stroke.targetPosition)}`;
return `${this.formatStrokeSide(stroke.side)} ${this.formatAdditionalStrokeType(stroke.type)} ${this.$t('courtDrawingTool.toTarget')} ${this.formatTargetPosition(stroke.targetPosition)}`;
},
removeAdditionalStroke(index) {
this.additionalStrokes.splice(index, 1);
@@ -1620,40 +1620,22 @@ export default {
getFullTitle() {
if (!this.selectedStartPosition || !this.strokeType) return '';
const strokeName = this.strokeType === 'VH' ? 'Vorhand' : 'Rückhand';
let title = `Aufschlag ${strokeName}`;
const strokeName = this.strokeType === 'VH' ? this.$t('courtDrawingTool.forehand') : this.$t('courtDrawingTool.backhand');
let title = `${this.$t('courtDrawingTool.serviceTitle')} ${strokeName}`;
if (this.spinType) {
title = `Aufschlag ${strokeName} ${this.spinType}`;
title = `${this.$t('courtDrawingTool.serviceTitle')} ${strokeName} ${this.spinType}`;
}
if (this.targetPosition) {
// Ausgeschriebene Beschreibungen für Zielpositionen
const targetDescriptionMap = {
'1': 'Vorhand Lang', '2': 'Mitte Lang', '3': 'Rückhand Lang',
'4': 'Vorhand Halblang', '5': 'Mitte Halblang', '6': 'Rückhand Halblang',
'7': 'Vorhand Kurz', '8': 'Mitte Kurz', '9': 'Rückhand Kurz'
};
const targetDescription = targetDescriptionMap[this.targetPosition] || this.targetPosition;
const targetDescription = this.formatTargetPosition(this.targetPosition);
title += `${targetDescription}`;
}
// Zusätzliche Schläge hinzufügen
if (this.additionalStrokes.length > 0) {
this.additionalStrokes.forEach(stroke => {
const strokeNameMap = {
'US': 'Schupf', 'OS': 'Konter', 'TS': 'Topspin', 'F': 'Flip', 'B': 'Block',
'SCH': 'Schuss', 'SAB': 'Schnittabwehr', 'BAB': 'Ballonabwehr'
};
const sideNameMap = {
'VH': 'Vorhand', 'RH': 'Rückhand'
};
const targetDescriptionMap = {
'1': 'Vorhand Lang', '2': 'Mitte Lang', '3': 'Rückhand Lang',
'4': 'Vorhand Halblang', '5': 'Mitte Halblang', '6': 'Rückhand Halblang',
'7': 'Vorhand Kurz', '8': 'Mitte Kurz', '9': 'Rückhand Kurz'
};
const strokeName = strokeNameMap[stroke.type] || stroke.type;
const sideName = sideNameMap[stroke.side] || stroke.side;
const targetDescription = targetDescriptionMap[stroke.targetPosition] || stroke.targetPosition;
const strokeName = this.formatAdditionalStrokeType(stroke.type);
const sideName = this.formatStrokeSide(stroke.side);
const targetDescription = this.formatTargetPosition(stroke.targetPosition);
title += ` / ${sideName} ${strokeName}${targetDescription}`;
});
}

View File

@@ -36,7 +36,7 @@
</div>
<details class="members-advanced-filters">
<summary>Suche und Filter</summary>
<summary>{{ $t('members.searchAndFilter') }}</summary>
<div class="filter-controls">
<div class="member-search-group">
<label for="member-search-input">{{ $t('members.search') }}</label>
@@ -69,11 +69,11 @@
<option value="J15">{{ $t('members.j15') }}</option>
<option value="J13">{{ $t('members.j13') }}</option>
<option value="J11">{{ $t('members.j11') }}</option>
<option value="range">Alter von - bis</option>
<option value="range">{{ $t('members.ageRange') }}</option>
</select>
</div>
<div v-if="selectedAgeGroup === 'range'" class="filter-group age-range-group">
<label>Alter von - bis:</label>
<label>{{ $t('members.ageRange') }}:</label>
<div class="age-range-inputs">
<input
:value="selectedAgeFrom"
@@ -81,7 +81,7 @@
min="0"
max="120"
class="filter-select age-range-input"
placeholder="von"
:placeholder="$t('members.ageFromPlaceholder')"
@input="$emit('update:selected-age-from', $event.target.value)"
>
<span class="age-range-separator">-</span>
@@ -91,7 +91,7 @@
min="0"
max="120"
class="filter-select age-range-input"
placeholder="bis"
:placeholder="$t('members.ageToPlaceholder')"
@input="$emit('update:selected-age-to', $event.target.value)"
>
</div>
@@ -150,7 +150,7 @@
</div>
</div>
<details class="members-bulk-actions">
<summary>Sammelaktionen</summary>
<summary>{{ $t('members.bulkActions') }}</summary>
<div class="members-bulk-actions-grid">
<button type="button" @click="$emit('create-phone-list-for-filtered')" :disabled="visibleMembersCount === 0">
{{ $t('members.phoneListForSelection') }}

View File

@@ -17,6 +17,28 @@ import tl from './locales/tl.json';
import th from './locales/th.json';
import fil from './locales/fil.json';
function deepMergeMessages(base, override) {
if (!base || typeof base !== 'object' || Array.isArray(base)) {
return override ?? base;
}
const result = { ...base };
for (const [key, value] of Object.entries(override || {})) {
if (
value &&
typeof value === 'object' &&
!Array.isArray(value) &&
result[key] &&
typeof result[key] === 'object' &&
!Array.isArray(result[key])
) {
result[key] = deepMergeMessages(result[key], value);
} else {
result[key] = value;
}
}
return result;
}
// Language mapping for browser language detection
const languageMap = {
'de': 'de',
@@ -92,19 +114,19 @@ const i18n = createI18n({
fallbackLocale: 'de',
messages: {
'de': de,
'en-GB': enGB,
'en-US': enUS,
'en-AU': enAU,
'de-CH': deCH,
'fr': fr,
'es': es,
'it': it,
'pl': pl,
'ja': ja,
'zh': zh,
'tl': tl,
'th': th,
'fil': fil,
'en-GB': deepMergeMessages(de, enGB),
'en-US': deepMergeMessages(de, enUS),
'en-AU': deepMergeMessages(de, enAU),
'de-CH': deepMergeMessages(de, deCH),
'fr': deepMergeMessages(de, fr),
'es': deepMergeMessages(de, es),
'it': deepMergeMessages(de, it),
'pl': deepMergeMessages(de, pl),
'ja': deepMergeMessages(de, ja),
'zh': deepMergeMessages(de, zh),
'tl': deepMergeMessages(de, tl),
'th': deepMergeMessages(de, th),
'fil': deepMergeMessages(de, fil),
},
legacy: true, // Use Options API mode (required for $t in templates with Options API)
// globalInjection is automatically enabled with legacy: true
@@ -159,4 +181,3 @@ if (typeof window !== 'undefined' && (process.env.NODE_ENV === 'development' ||
export default i18n;

View File

@@ -11,7 +11,7 @@
"delete": "Lösche",
"edit": "Bearbeite",
"add": "Hinzufüge",
"close": "Schliesse",
"close": "Schliessen",
"confirm": "Bestätige",
"yes": "Ja",
"no": "Nei",
@@ -22,7 +22,41 @@
"next": "Wiiter",
"previous": "Zrugg",
"submit": "Abschicke",
"reset": "Zruggsetze"
"reset": "Zruggsetze",
"all": "Alle",
"today": "Hüt",
"time": "Zyt",
"new": "Neu",
"update": "Aktualisiere",
"create": "Erstelle",
"remove": "Entferne",
"select": "Uswähle",
"download": "Herunterlade",
"choose": "Wähle",
"apply": "Aawände",
"clear": "Lösche",
"details": "Details",
"view": "Aazeige",
"name": "Name",
"date": "Datum",
"status": "Status",
"type": "Typ",
"description": "Beschrieb",
"active": "Aktiv",
"inactive": "Inaktiv",
"enabled": "Aktiviert",
"disabled": "Deaktiviert",
"required": "Erforderlich",
"optional": "Optional",
"in": "in",
"min": "Min",
"minutes": "Minute",
"hours": "Stunde",
"days": "Täg",
"weeks": "Wuche",
"months": "Monat",
"years": "Jahr",
"ok": "OK"
},
"navigation": {
"home": "Startseite",
@@ -41,13 +75,16 @@
"logs": "System-Logs",
"memberTransfer": "Mitgliderübertragig",
"myTischtennisAccount": "myTischtennis-Account",
"clickTtAccount": "HTTV / click-TT-Account",
"clickTtBrowser": "HTTV / click-TT",
"personalSettings": "Persönlichi Iistellige",
"logout": "Abmelde",
"login": "Aamelde",
"register": "Registriere",
"dailyBusiness": "Tagesgschäft",
"competitions": "Wettbewerb",
"settings": "Iistellige"
"settings": "Iistellige",
"backToHome": "Zur Startseite"
},
"club": {
"select": "Verein uswähle",
@@ -56,7 +93,20 @@
"load": "Lade",
"name": "Vereinsname",
"create": "Verein erstelle",
"accessRequestPending": "Der Zugriff auf diesen Verein ist beantragt. Bitte haben Sie etwas Geduld."
"createTitle": "Verein aalege",
"members": "Mitglieder",
"trainingDiary": "Trainingstagebuch",
"noAccess": "Für diesen Verein isch no kei Zugriff freigschaltet.",
"requestAccess": "Zugriff beantrage",
"openRequests": "Offeni Zugriffsafrage",
"title": "Verein",
"openAccessRequests": "Offeni Zugriffsafrage",
"diary": "Trainingstagebuch",
"accessDenied": "Zugriff uf de Verein verweigeret.",
"errorLoadingRequests": "Fehler bim Lade vo de offene Afroge",
"accessRequested": "Zugriff isch aagfragt worde.",
"accessRequestPending": "Der Zugriff auf diesen Verein ist beantragt. Bitte haben Sie etwas Geduld.",
"accessRequestFailed": "Zugriffsafrag het nöd chönne gstellt werde."
},
"auth": {
"login": "Aamelde",
@@ -359,6 +409,106 @@
"stageFlowQualifiedPreviewEntry": "G{group} · Platz {position} · {name}"
},
"members": {
"title": "Mitglieder",
"memberInfo": "Mitglieder-Info",
"activeMembers": "Aktive Mitglieder",
"testMembers": "Testmitglieder",
"inactiveMembers": "Inaktive Mitglieder",
"generatePhoneList": "Telefonliste generieren",
"onlyActiveMembers": "Es werden nur aktive Mitglieder ausgegeben",
"updateRatings": "TTR/QTTR von myTischtennis aktualisieren",
"updating": "Aktualisiere...",
"transferMembers": "Mitglieder übertragen",
"newMember": "Neues Mitglied",
"editMember": "Mitglied bearbeiten",
"createNewMember": "Neues Mitglied anlegen",
"firstName": "Vorname",
"lastName": "Nachname",
"street": "Straße",
"postalCode": "PLZ",
"city": "Ort",
"birthdate": "Geburtsdatum",
"phones": "Telefonnummern",
"emails": "E-Mail-Adressen",
"addPhone": "Telefonnummer hinzufügen",
"addEmail": "E-Mail-Adresse hinzufügen",
"phoneNumber": "Telefonnummer",
"emailAddress": "E-Mail-Adresse",
"parent": "Elternteil",
"parentName": "Name (z.B. Mutter, Vater)",
"primary": "Primär",
"gender": "Geschlecht",
"genderUnknown": "Unbekannt",
"genderMale": "Männlich",
"genderFemale": "Weiblich",
"genderDiverse": "Divers",
"picsInInternetAllowed": "Pics in Internet erlaubt",
"testMembership": "Testmitgliedschaft",
"memberFormHandedOver": "Mitgliedsformular ausgehändigt",
"trainingGroups": "Trainingsgruppen",
"noGroupsAssigned": "Keine Gruppen zugeordnet",
"noGroupsAvailable": "Keine Gruppen verfügbar",
"addGroup": "Gruppe hinzufügen...",
"remove": "Entfernen",
"image": "Bild",
"selectFile": "Datei auswählen",
"camera": "Kamera",
"imagePreview": "Vorschau des Mitgliedsbildes",
"change": "Ändern",
"create": "Anlegen",
"clearFields": "Felder leeren",
"showInactiveMembers": "Inaktive Mitglieder anzeigen",
"ageGroup": "Altersklasse",
"adults": "Erwachsene (20+)",
"j19": "J19 (19 und jünger)",
"j17": "J17 (17 und jünger)",
"j15": "J15 (15 und jünger)",
"j13": "J13 (13 und jünger)",
"j11": "J11 (11 und jünger)",
"clearFilters": "Filter zurücksetzen",
"imageInternet": "Bild (Inet?)",
"testMember": "Testm.",
"name": "Name, Vorname",
"ttrQttr": "TTR / QTTR",
"address": "Adresse",
"active": "Aktiv",
"actions": "Aktionen",
"phoneNumberShort": "Telefon-Nr.",
"emailAddressShort": "Email-Adresse",
"trainingParticipations": "Trainingsteilnahmen",
"memberImage": "Mitgliedsbild",
"inactive": "inaktiv",
"sixOrMoreParticipations": "6 oder mehr Trainingsteilnahmen",
"threeOrMoreParticipations": "3 oder mehr Trainingsteilnahmen",
"noTestMembership": "Keine Testmitgliedschaft mehr",
"formHandedOver": "Mitgliedsformular ausgehändigt",
"deactivateMember": "Mitglied deaktivieren",
"notes": "Notizen",
"exercises": "Übungen",
"memberImages": "Mitgliedsbilder",
"testMembershipRemoved": "Testmitgliedschaft entfernt.",
"errorRemovingTestMembership": "Fehler beim Entfernen der Testmitgliedschaft.",
"formMarkedAsHandedOver": "Mitgliedsformular als ausgehändigt markiert.",
"errorMarkingForm": "Fehler beim Markieren des Formulars.",
"deactivateMemberTitle": "Mitglied deaktivieren",
"deactivateMemberConfirm": "Möchten Sie \"{name}\" wirklich deaktivieren?",
"memberDeactivated": "Mitglied deaktiviert",
"errorDeactivatingMember": "Fehler beim Deaktivieren des Mitglieds",
"errorSavingMember": "Fehler beim Speichern des Mitglieds",
"errorAddingToGroup": "Fehler beim Hinzufügen zur Gruppe",
"errorRemovingFromGroup": "Fehler beim Entfernen aus der Gruppe",
"imageUpdated": "Bild wurde aktualisiert",
"errorRotatingImage": "Fehler beim Drehen des Bildes",
"imageDeleted": "Bild wurde gelöscht.",
"errorDeletingImage": "Bild konnte nicht gelöscht werden",
"primaryImageUpdated": "Hauptbild wurde aktualisiert.",
"errorSettingPrimaryImage": "Hauptbild konnte nicht gesetzt werden",
"errorUploadingImage": "Bild konnte nicht hochgeladen werden",
"errorLoadingImage": "Fehler beim Laden des Bildes",
"phoneList": "Telefonliste.pdf",
"errorLoadingTrainingParticipations": "Fehler beim Laden der Trainingsteilnahmen",
"errorUpdatingRatings": "Fehler beim Aktualisieren der TTR/QTTR-Werte",
"errorTransfer": "Fehler bei der Übertragung",
"subtitle": "Mitglieder suchen, filtern und direkt bearbeiten.",
"closeEditor": "Editor schließen",
"visibleMembers": "Sichtbare Mitglieder",
@@ -369,11 +519,17 @@
"scopeActive": "Aktiv",
"scopeTest": "Probe",
"scopeNeedsForm": "Formular ungeprüft",
"scopeActiveDataIncomplete": "Aktiv + Daten unvollständig",
"scopeDataIncomplete": "Daten unvollständig",
"scopeInactive": "Inaktiv",
"searchAndFilter": "Suche und Filter",
"bulkActions": "Sammelaktionen",
"resultsVisible": "Mitglieder sichtbar",
"editHint": "Ein Klick auf eine Zeile öffnet den Editor.",
"editorCreateHint": "Neues Mitglied anlegen und Kontaktdaten direkt erfassen.",
"editorEditHint": "Daten von {name} bearbeiten.",
"editorAssignTrainingGroupHint": "Bitte mindestens eine Trainingsgruppe zuordnen.",
"editorRecommendedEntry": "Empfohlener Eintrag",
"transferSuccessTitle": "Übertragung erfolgreich",
"transferErrorTitle": "Fehler bei der Übertragung",
"clickTtRequestPending": "Click-TT-Antrag läuft",
@@ -418,17 +574,33 @@
"sortFirstName": "Vorname",
"sortBirthday": "Geburtstag",
"sortAge": "Alter",
"ageRange": "Alter von - bis",
"ageFromPlaceholder": "von",
"ageToPlaceholder": "bis",
"age": "Alter",
"dataQuality": "Datenqualität",
"dataQualityComplete": "Daten vollständig",
"dataIssueBirthdate": "Geburtsdatum fehlt",
"dataIssuePhone": "Telefon fehlt",
"dataIssueEmail": "E-Mail fehlt",
"dataIssueAddress": "Adresse fehlt",
"dataIssueGender": "Geschlecht ungeklärt",
"dataIssueTrainingGroup": "Trainingsgruppe fehlt",
"openTasks": "Offene Aufgaben",
"noOpenTasks": "Keine offenen Aufgaben",
"taskVerifyForm": "Formular prüfen",
"taskReviewTrialStatus": "Probe-Status prüfen",
"taskCheckTrainingStatus": "Trainingsstatus prüfen",
"taskCheckDataQuality": "Datenqualität prüfen",
"taskAssignTrainingGroup": "Trainingsgruppe zuordnen",
"taskCheckClickTt": "Click-TT-Spielberechtigung prüfen",
"taskActionVerify": "Prüfen",
"taskActionMarkRegular": "Regulär setzen",
"taskActionReview": "Öffnen",
"taskActionRequest": "Anfragen",
"toggleSortDirection": "Sortierrichtung wechseln",
"showTtrHistory": "TTR-Historie anzeigen",
"missingTtrHistoryId": "Keine myTischtennis-ID hinterlegt",
"sortLastTraining": "Letztes Training",
"sortOpenTasks": "Offene Aufgaben",
"exportPreview": "Exportvorschau",
@@ -450,5 +622,212 @@
"composeEmail": "E-Mail vorbereiten",
"copyContactSummary": "Kontaktübersicht kopieren",
"copyContactSummarySuccess": "Kontaktübersicht in die Zwischenablage kopiert."
},
"diary": {
"title": "Trainingstagebuch",
"date": "Datum",
"noEntries": "Keine Einträge",
"deleteDate": "Datum löschen",
"createNew": "Neu anlegen",
"gallery": "Mitglieder-Galerie",
"galleryCreating": "Galerie wird erstellt…",
"selectTrainingGroup": "Trainingsgruppe auswählen",
"selectTrainingGroupPlaceholder": "Bitte wählen...",
"suggestion": "Vorschlag",
"nextAppointment": "Nächster Termin",
"applySuggestion": "Vorschlag übernehmen",
"skipSuggestion": "Ohne Vorschlag fortfahren",
"createNewDate": "Neues Datum anlegen",
"activeTrainingDay": "Aktiver Trainingstag",
"trainingDaySection": "Trainingstag",
"trainingDayChecklist": "Abschlusscheck",
"trainingStart": "Trainingsbeginn",
"trainingEnd": "Trainingsende",
"trainingWindow": "Trainingsfenster",
"trainingWindowUnset": "Noch nicht gesetzt",
"groupsLabel": "Gruppen",
"groupsSection": "Gruppen",
"createDate": "Datum anlegen",
"editTrainingTimes": "Trainingszeiten bearbeiten",
"updateTimes": "Zeiten aktualisieren",
"groupManagement": "Gruppenverwaltung",
"createGroups": "Gruppen erstellen",
"trainingPlan": "Trainingsplan",
"planActivitiesCount": "Plan-Aktivitäten",
"timeblocksCount": "Zeitblöcke",
"planEmptyState": "Im Trainingsplan ist noch nichts eingetragen.",
"planAddHint": "Neue Plan-Elemente fügst du über die Aktionen oben hinzu.",
"startTime": "Startzeit",
"group": "Gruppe...",
"timeblock": "Zeitblock",
"assignParticipants": "Teilnehmer zuordnen",
"addTimeblock": "Zeitblock",
"activities": "Aktivitäten",
"freeActivities": "Freie Aktivitäten",
"noFreeActivitiesYet": "Noch keine freien Aktivitäten erfasst.",
"addActivity": "Aktivität hinzufügen",
"bookAccident": "Unfall buchen",
"activity": "Aktivität",
"duration": "Dauer",
"activityImage": "Aktivitätsbild",
"activityDrawing": "Aktivitätszeichnung",
"today": "Heute",
"existingGroups": "Vorhandene Gruppen",
"leader": "Leiter",
"deleteGroup": "Gruppe löschen",
"numberOfGroups": "Anzahl Gruppen",
"addGroup": "Gruppe hinzufügen",
"activityOrTimeblock": "Aktivität / Zeitblock",
"durationMinutes": "Dauer (Min)",
"standardActivities": "Standard-Aktivitäten",
"standardDurationShort": "Min",
"standardActivityAddError": "Standard-Aktivität konnte nicht hinzugefügt werden.",
"addGroupActivity": "Gruppen-Aktivität hinzufügen",
"addGroupButton": "+ Gruppe",
"all": "Alle",
"selectGroup": "Gruppe auswählen...",
"activityPlaceholder": "Aktivität",
"assignShort": "Zuordnen",
"statusReadyShort": "Bereit",
"statusOpenShort": "Offen",
"openPlanItemsLabel": "Plan-Status",
"openPlanItems": "{count} offen",
"unassignedPlanItems": "{count} offen",
"durationExampleLong": "z.B. 2x7 oder 3*5",
"durationExampleShort": "z.B. 2x7",
"showImage": "Bild/Zeichnung anzeigen",
"participants": "Teilnehmer",
"searchParticipants": "Teilnehmer suchen",
"filterAll": "Alle",
"filterPresent": "Anwesend",
"filterAbsent": "Abwesend",
"filterExcused": "Entschuldigt",
"filterTest": "Probe",
"participantStatusNone": "Kein Status",
"participantStatusExcused": "Entschuldigt",
"participantStatusCancelled": "Abgesagt",
"quickAdd": "+ Schnell hinzufügen",
"selectTags": "Tags auswählen",
"createDrawing": "Übungszeichnung erstellen",
"overallActivity": "Gesamt-Aktivität",
"editActivity": "Aktivität bearbeiten",
"editGroupActivity": "Gruppen-Aktivität bearbeiten",
"assignParticipantsForGroupActivity": "Teilnehmer für Gruppen-Aktivität zuordnen",
"delete": "Löschen",
"min": "Min",
"errorLoadingPredefinedActivities": "Fehler beim Laden der vordefinierten Aktivitäten",
"selectParticipantAndNote": "Bitte wählen Sie einen Teilnehmer aus und geben Sie einen Notiztext ein.",
"selectGroupAndActivity": "Bitte wählen Sie eine Gruppe und geben Sie eine Aktivität ein.",
"dateCannotBeDeleted": "Datum kann nicht gelöscht werden",
"dateCannotBeDeletedDetails": "Es sind noch Inhalte vorhanden (Trainingplan, Teilnehmer, Aktivitäten, Unfälle oder Notizen).",
"confirmDelete": "Löschen bestätigen",
"confirmDeleteDate": "Möchten Sie dieses Datum wirklich löschen?",
"confirmDeleteDateDetails": "Alle zugehörigen Daten werden ebenfalls gelöscht.",
"noParticipants": "Keine Teilnehmer für diesen Trainingstag vorhanden.",
"mustCreateAtLeastTwoGroups": "Beim ersten Erstellen müssen mindestens 2 Gruppen erstellt werden!",
"oneGroupAdded": "1 Gruppe wurde erfolgreich hinzugefügt!",
"groupsCreated": "{count} Gruppen wurden erfolgreich erstellt!",
"errorCreatingGroups": "Fehler beim Erstellen der Gruppen",
"confirmDeleteGroup": "Möchten Sie die Gruppe \"{name}\" wirklich löschen?",
"groupDeletedSuccessfully": "Gruppe wurde erfolgreich gelöscht!",
"errorDeletingGroup": "Fehler beim Löschen der Gruppe",
"errorCreatingActivity": "Fehler beim Erstellen der Aktivität",
"trainingPlanAsPDF": "Trainingsplan als PDF",
"trainingPlanPdfShort": "Ablaufplan als PDF",
"trainingDayAsPDF": "Trainingstag als PDF herunterladen",
"trainingDayAsPDFShort": "Trainingstag als PDF",
"trainingDaySummaryPdfShort": "Teilnehmerübersicht als PDF",
"minutes": "Minuten",
"formHandedOver": "Mitgliedsformular ausgehändigt",
"errorOccurred": "Ein Fehler ist aufgetreten. Bitte versuchen Sie es erneut.",
"trainingTimesUpdated": "Trainingszeiten erfolgreich aktualisiert.",
"noActiveTrainingDay": "Kein Trainingstag ausgewählt.",
"statusReady": "Zeiten und Trainingsplan sind gepflegt.",
"statusEmpty": "Dieser Trainingstag ist noch leer.",
"statusInProgress": "Dieser Trainingstag ist teilweise vorbereitet.",
"formMarkedAsHandedOver": "Mitgliedsformular als ausgehändigt markiert",
"errorMarkingForm": "Fehler beim Markieren des Mitgliedsformulars",
"dateNoLongerCurrent": "Ausgewähltes Datum war nicht mehr aktuell. Bitte erneut versuchen.",
"activityRequired": "Bitte geben Sie eine Aktivität ein.",
"activityNotFound": "Aktivität nicht gefunden. Bitte wählen Sie eine aus der Liste aus."
},
"trainingStats": {
"title": "Trainings-Statistik",
"activeMembers": "Aktive Mitglieder",
"averageParticipationCurrentMonth": "Durchschnittliche Teilnahme (aktueller Monat)",
"averageParticipationLastMonth": "Durchschnittliche Teilnahme (letzter Monat)",
"averageParticipationQuarter": "Durchschnittliche Teilnahme (Quartal)",
"averageParticipationHalfYear": "Durchschnittliche Teilnahme (Halbjahr)",
"averageParticipationYear": "Durchschnittliche Teilnahme (Jahr)",
"trainingDays": "Trainingstage (letzte 12 Monate)",
"memberParticipations": "Mitglieder-Teilnahmen",
"date": "Datum",
"weekday": "Wochentag",
"participants": "Teilnehmer",
"name": "Name",
"ttr": "TTR",
"qttr": "QTTR",
"birthdate": "Geburtsdatum",
"participations12Months": "Teilnahmen (12 Monate)",
"participations3Months": "Teilnahmen (3 Monate)",
"participationsTotal": "Teilnahmen (Gesamt)",
"lastTraining": "Letztes Training",
"actions": "Aktionen",
"showDetails": "Details anzeigen"
},
"courtDrawingTool": {
"title": "Tischtennis-Übungszeichnung",
"configureExercise": "Übung konfigurieren",
"stepStartPosition": "1. Startposition",
"stepStartPositionHint": "Aus welcher Aufschlagposition startet die Übung?",
"stepFirstStroke": "2. 1. Schlag",
"stepFirstStrokeHint": "Schlagseite und Rotation für den ersten Ball festlegen.",
"stepTarget": "3. Ziel",
"stepTargetHint": "Zielzone für den ersten Schlag auswählen.",
"stepAdditionalStrokes": "4. Folgeschläge",
"stepAdditionalStrokesHint": "Optional weitere Bälle als Liste aufbauen.",
"noAdditionalStrokes": "Noch keine Folgeschläge angelegt.",
"service": "Aufschlag:",
"serviceTitle": "Aufschlag",
"forehand": "Vorhand",
"backhand": "Rückhand",
"spin": "Schnitt:",
"underspin": "Unterschnitt",
"topspin": "Überschnitt",
"sidespin": "Seitschnitt",
"sideUnderspin": "Seitunterschnitt",
"counterSpin": "Gegenläufer",
"targetPosition": "Zielposition:",
"targetPositionLabel": "Zielposition",
"strokeSide": "Seite",
"strokeTypeLabel": "Schlagart",
"addStroke": "Schlag hinzufügen",
"preview": "Vorschau",
"previewHint": "Die Grafik erscheint, sobald der erste Schlag vollständig gesetzt ist.",
"completeFirstStroke": "1. Schlag vervollständigen",
"completeFirstStrokeHint": "Wähle Startposition, Schlagseite, Rotation und Ziel. Danach erscheint die grafische Darstellung.",
"codeLabel": "Kürzel",
"titleLabel": "Titel",
"startLeft": "links",
"startMiddle": "mitte",
"startRight": "rechts",
"strokeTypePush": "Schupf",
"strokeTypeCounter": "Konter",
"strokeTypeTopspin": "Topspin",
"strokeTypeFlip": "Flip",
"strokeTypeBlock": "Block",
"strokeTypeSmash": "Schuss",
"strokeTypeChopDefense": "Schnittabwehr",
"strokeTypeLobDefense": "Ballonabwehr",
"targetForehandLong": "Vorhand lang",
"targetMiddleLong": "Mitte lang",
"targetBackhandLong": "Rückhand lang",
"targetForehandHalfLong": "Vorhand halblang",
"targetMiddleHalfLong": "Mitte halblang",
"targetBackhandHalfLong": "Rückhand halblang",
"targetForehandShort": "Vorhand kurz",
"targetMiddleShort": "Mitte kurz",
"targetBackhandShort": "Rückhand kurz",
"toTarget": "nach"
}
}

View File

@@ -298,6 +298,8 @@
"scopeActiveDataIncomplete": "Aktiv + Daten unvollständig",
"scopeDataIncomplete": "Daten unvollständig",
"scopeInactive": "Inaktiv",
"searchAndFilter": "Suche und Filter",
"bulkActions": "Sammelaktionen",
"resultsVisible": "Mitglieder sichtbar",
"editHint": "Ein Klick auf eine Zeile öffnet den Editor.",
"editorCreateHint": "Neues Mitglied anlegen und Kontaktdaten direkt erfassen.",
@@ -348,6 +350,9 @@
"sortFirstName": "Vorname",
"sortBirthday": "Geburtstag",
"sortAge": "Alter",
"ageRange": "Alter von - bis",
"ageFromPlaceholder": "von",
"ageToPlaceholder": "bis",
"age": "Alter",
"dataQuality": "Datenqualität",
"dataQualityComplete": "Daten vollständig",
@@ -370,6 +375,8 @@
"taskActionReview": "Öffnen",
"taskActionRequest": "Anfragen",
"toggleSortDirection": "Sortierrichtung wechseln",
"showTtrHistory": "TTR-Historie anzeigen",
"missingTtrHistoryId": "Keine myTischtennis-ID hinterlegt",
"sortLastTraining": "Letztes Training",
"sortOpenTasks": "Offene Aufgaben",
"exportPreview": "Exportvorschau",
@@ -2018,7 +2025,17 @@
"courtDrawingTool": {
"title": "Tischtennis-Übungszeichnung",
"configureExercise": "Übung konfigurieren",
"stepStartPosition": "1. Startposition",
"stepStartPositionHint": "Aus welcher Aufschlagposition startet die Übung?",
"stepFirstStroke": "2. 1. Schlag",
"stepFirstStrokeHint": "Schlagseite und Rotation für den ersten Ball festlegen.",
"stepTarget": "3. Ziel",
"stepTargetHint": "Zielzone für den ersten Schlag auswählen.",
"stepAdditionalStrokes": "4. Folgeschläge",
"stepAdditionalStrokesHint": "Optional weitere Bälle als Liste aufbauen.",
"noAdditionalStrokes": "Noch keine Folgeschläge angelegt.",
"service": "Aufschlag:",
"serviceTitle": "Aufschlag",
"forehand": "Vorhand",
"backhand": "Rückhand",
"spin": "Schnitt:",
@@ -2027,7 +2044,38 @@
"sidespin": "Seitschnitt",
"sideUnderspin": "Seitunterschnitt",
"counterSpin": "Gegenläufer",
"targetPosition": "Zielposition:"
"targetPosition": "Zielposition:",
"targetPositionLabel": "Zielposition",
"strokeSide": "Seite",
"strokeTypeLabel": "Schlagart",
"addStroke": "Schlag hinzufügen",
"preview": "Vorschau",
"previewHint": "Die Grafik erscheint, sobald der erste Schlag vollständig gesetzt ist.",
"completeFirstStroke": "1. Schlag vervollständigen",
"completeFirstStrokeHint": "Wähle Startposition, Schlagseite, Rotation und Ziel. Danach erscheint die grafische Darstellung.",
"codeLabel": "Kürzel",
"titleLabel": "Titel",
"startLeft": "links",
"startMiddle": "mitte",
"startRight": "rechts",
"strokeTypePush": "Schupf",
"strokeTypeCounter": "Konter",
"strokeTypeTopspin": "Topspin",
"strokeTypeFlip": "Flip",
"strokeTypeBlock": "Block",
"strokeTypeSmash": "Schuss",
"strokeTypeChopDefense": "Schnittabwehr",
"strokeTypeLobDefense": "Ballonabwehr",
"targetForehandLong": "Vorhand lang",
"targetMiddleLong": "Mitte lang",
"targetBackhandLong": "Rückhand lang",
"targetForehandHalfLong": "Vorhand halblang",
"targetMiddleHalfLong": "Mitte halblang",
"targetBackhandHalfLong": "Rückhand halblang",
"targetForehandShort": "Vorhand kurz",
"targetMiddleShort": "Mitte kurz",
"targetBackhandShort": "Rückhand kurz",
"toTarget": "nach"
},
"courtDrawingRender": {
"startAnimation": "Animation starten",

View File

@@ -12,6 +12,7 @@
"edit": "Edit",
"add": "Add",
"close": "Close",
"details": "Details",
"confirm": "Confirm",
"yes": "Yes",
"no": "No",
@@ -22,7 +23,40 @@
"next": "Next",
"previous": "Previous",
"submit": "Submit",
"reset": "Reset"
"reset": "Reset",
"all": "All",
"today": "Today",
"time": "Time",
"new": "New",
"update": "Update",
"create": "Create",
"remove": "Remove",
"select": "Select",
"download": "Download",
"choose": "Choose",
"apply": "Apply",
"clear": "Clear",
"view": "View",
"name": "Name",
"date": "Date",
"status": "Status",
"type": "Type",
"description": "Description",
"active": "Active",
"inactive": "Inactive",
"enabled": "Enabled",
"disabled": "Disabled",
"required": "Required",
"optional": "Optional",
"in": "in",
"min": "min",
"minutes": "minutes",
"hours": "hours",
"days": "days",
"weeks": "weeks",
"months": "months",
"years": "years",
"ok": "OK"
},
"navigation": {
"home": "Home",
@@ -41,13 +75,16 @@
"logs": "System Logs",
"memberTransfer": "Member Transfer",
"myTischtennisAccount": "myTischtennis Account",
"clickTtAccount": "HTTV / click-TT Account",
"clickTtBrowser": "HTTV / click-TT",
"personalSettings": "Personal Settings",
"logout": "Logout",
"login": "Login",
"register": "Register",
"dailyBusiness": "Daily Business",
"competitions": "Competitions",
"settings": "Settings"
"settings": "Settings",
"backToHome": "Back to home"
},
"club": {
"select": "Select Club",
@@ -56,7 +93,20 @@
"load": "Load",
"name": "Club Name",
"create": "Create Club",
"accessRequestPending": "Access to this club has been requested. Please be patient."
"accessRequestPending": "Access to this club has been requested. Please be patient.",
"createTitle": "Create club",
"members": "Members",
"trainingDiary": "Training diary",
"noAccess": "You have not yet been granted access to this club.",
"requestAccess": "Request access",
"openRequests": "Open access requests",
"title": "Club",
"openAccessRequests": "Open access requests",
"diary": "Training diary",
"accessDenied": "Access to the club was denied.",
"errorLoadingRequests": "Failed to load open requests",
"accessRequested": "Access has been requested.",
"accessRequestFailed": "Access request could not be submitted."
},
"auth": {
"login": "Login",
@@ -359,6 +409,106 @@
"stageFlowQualifiedPreviewEntry": "G{group} · Place {position} · {name}"
},
"members": {
"title": "Members",
"memberInfo": "Member info",
"activeMembers": "Active members",
"testMembers": "Trial members",
"inactiveMembers": "Inactive members",
"generatePhoneList": "Generate phone list",
"onlyActiveMembers": "Only active members are included",
"updateRatings": "Update TTR/QTTR from myTischtennis",
"updating": "Updating...",
"transferMembers": "Transfer members",
"newMember": "New member",
"editMember": "Edit member",
"createNewMember": "Create new member",
"firstName": "First name",
"lastName": "Last name",
"street": "Street",
"postalCode": "Postcode",
"city": "City",
"birthdate": "Birthdate",
"phones": "Phone numbers",
"emails": "Email addresses",
"addPhone": "Add phone number",
"addEmail": "Add email address",
"phoneNumber": "Phone number",
"emailAddress": "Email address",
"parent": "Parent",
"parentName": "Name (e.g. mother, father)",
"primary": "Primary",
"gender": "Gender",
"genderUnknown": "Unknown",
"genderMale": "Male",
"genderFemale": "Female",
"genderDiverse": "Diverse",
"picsInInternetAllowed": "Pictures allowed online",
"testMembership": "Trial membership",
"memberFormHandedOver": "Membership form handed over",
"trainingGroups": "Training groups",
"noGroupsAssigned": "No groups assigned",
"noGroupsAvailable": "No groups available",
"addGroup": "Add group...",
"remove": "Remove",
"image": "Image",
"selectFile": "Select file",
"camera": "Camera",
"imagePreview": "Member image preview",
"change": "Change",
"create": "Create",
"clearFields": "Clear fields",
"showInactiveMembers": "Show inactive members",
"ageGroup": "Age group",
"adults": "Adults (20+)",
"j19": "U19 (19 and younger)",
"j17": "U17 (17 and younger)",
"j15": "U15 (15 and younger)",
"j13": "U13 (13 and younger)",
"j11": "U11 (11 and younger)",
"clearFilters": "Reset filters",
"imageInternet": "Image (web?)",
"testMember": "Trial",
"name": "Surname, first name",
"ttrQttr": "TTR / QTTR",
"address": "Address",
"active": "Active",
"actions": "Actions",
"phoneNumberShort": "Phone no.",
"emailAddressShort": "Email address",
"trainingParticipations": "Training participations",
"memberImage": "Member image",
"inactive": "inactive",
"sixOrMoreParticipations": "6 or more training participations",
"threeOrMoreParticipations": "3 or more training participations",
"noTestMembership": "No longer a trial member",
"formHandedOver": "Membership form handed over",
"deactivateMember": "Deactivate member",
"notes": "Notes",
"exercises": "Exercises",
"memberImages": "Member images",
"testMembershipRemoved": "Trial membership removed.",
"errorRemovingTestMembership": "Error removing the trial membership.",
"formMarkedAsHandedOver": "Membership form marked as handed over.",
"errorMarkingForm": "Error marking the form.",
"deactivateMemberTitle": "Deactivate member",
"deactivateMemberConfirm": "Do you really want to deactivate \"{name}\"?",
"memberDeactivated": "Member deactivated",
"errorDeactivatingMember": "Error deactivating member",
"errorSavingMember": "Error saving member",
"errorAddingToGroup": "Error adding to group",
"errorRemovingFromGroup": "Error removing from group",
"imageUpdated": "Image updated",
"errorRotatingImage": "Error rotating image",
"imageDeleted": "Image deleted.",
"errorDeletingImage": "Image could not be deleted",
"primaryImageUpdated": "Primary image updated.",
"errorSettingPrimaryImage": "Primary image could not be set",
"errorUploadingImage": "Image could not be uploaded",
"errorLoadingImage": "Error loading image",
"phoneList": "phone-list.pdf",
"errorLoadingTrainingParticipations": "Error loading training participations",
"errorUpdatingRatings": "Error updating TTR/QTTR values",
"errorTransfer": "Transfer error",
"subtitle": "Search, filter and edit members directly.",
"closeEditor": "Close editor",
"visibleMembers": "Visible members",
@@ -369,11 +519,17 @@
"scopeActive": "Active",
"scopeTest": "Trial",
"scopeNeedsForm": "Form unverified",
"scopeDataIncomplete": "Data incomplete",
"scopeInactive": "Inactive",
"scopeActiveDataIncomplete": "Active + data incomplete",
"searchAndFilter": "Search and filter",
"bulkActions": "Bulk actions",
"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}.",
"editorAssignTrainingGroupHint": "Please assign at least one training group.",
"editorRecommendedEntry": "Recommended entry",
"transferSuccessTitle": "Transfer successful",
"transferErrorTitle": "Transfer error",
"clickTtRequestPending": "Click-TT request in progress",
@@ -418,17 +574,33 @@
"sortFirstName": "First name",
"sortBirthday": "Birthday",
"sortAge": "Age",
"ageRange": "Age from - to",
"ageFromPlaceholder": "from",
"ageToPlaceholder": "to",
"age": "Age",
"dataQuality": "Data quality",
"dataQualityComplete": "Data complete",
"dataIssueBirthdate": "Birthdate missing",
"dataIssuePhone": "Phone missing",
"dataIssueEmail": "Email missing",
"dataIssueAddress": "Address missing",
"dataIssueGender": "Gender unclear",
"dataIssueTrainingGroup": "Training group missing",
"openTasks": "Open tasks",
"noOpenTasks": "No open tasks",
"taskVerifyForm": "Verify form",
"taskReviewTrialStatus": "Review trial status",
"taskCheckTrainingStatus": "Review training status",
"taskCheckDataQuality": "Review data quality",
"taskAssignTrainingGroup": "Assign training group",
"taskCheckClickTt": "Review Click-TT eligibility",
"taskActionVerify": "Verify",
"taskActionMarkRegular": "Mark regular",
"taskActionReview": "Open",
"taskActionRequest": "Request",
"toggleSortDirection": "Toggle sort direction",
"showTtrHistory": "Show TTR history",
"missingTtrHistoryId": "No myTischtennis ID stored",
"sortLastTraining": "Last training",
"sortOpenTasks": "Open tasks",
"exportPreview": "Export preview",
@@ -450,5 +622,212 @@
"composeEmail": "Compose email",
"copyContactSummary": "Copy contact summary",
"copyContactSummarySuccess": "Contact summary copied to clipboard."
},
"diary": {
"title": "Training diary",
"date": "Date",
"noEntries": "No entries",
"deleteDate": "Delete date",
"createNew": "Create new",
"gallery": "Member gallery",
"galleryCreating": "Creating gallery…",
"selectTrainingGroup": "Select training group",
"selectTrainingGroupPlaceholder": "Please choose...",
"suggestion": "Suggestion",
"nextAppointment": "Next appointment",
"applySuggestion": "Apply suggestion",
"skipSuggestion": "Continue without suggestion",
"createNewDate": "Create new date",
"activeTrainingDay": "Active training day",
"trainingDaySection": "Training day",
"trainingDayChecklist": "Completion checklist",
"trainingStart": "Training start",
"trainingEnd": "Training end",
"trainingWindow": "Training window",
"trainingWindowUnset": "Not set yet",
"groupsLabel": "Groups",
"groupsSection": "Groups",
"createDate": "Create date",
"editTrainingTimes": "Edit training times",
"updateTimes": "Update times",
"groupManagement": "Group management",
"createGroups": "Create groups",
"trainingPlan": "Training plan",
"planActivitiesCount": "Planned activities",
"timeblocksCount": "Time blocks",
"planEmptyState": "Nothing has been entered in the training plan yet.",
"planAddHint": "Add new plan items using the actions above.",
"startTime": "Start time",
"group": "Group...",
"timeblock": "Time block",
"assignParticipants": "Assign participants",
"addTimeblock": "Time block",
"activities": "Activities",
"freeActivities": "Free activities",
"noFreeActivitiesYet": "No free activities have been recorded yet.",
"addActivity": "Add activity",
"bookAccident": "Record accident",
"activity": "Activity",
"duration": "Duration",
"activityImage": "Activity image",
"activityDrawing": "Activity drawing",
"today": "Today",
"existingGroups": "Existing groups",
"leader": "Leader",
"deleteGroup": "Delete group",
"numberOfGroups": "Number of groups",
"addGroup": "Add group",
"activityOrTimeblock": "Activity / time block",
"durationMinutes": "Duration (min)",
"addGroupActivity": "Add group activity",
"addGroupButton": "+ Group",
"all": "All",
"selectGroup": "Select group...",
"activityPlaceholder": "Activity",
"assignShort": "Assign",
"statusReadyShort": "Ready",
"statusOpenShort": "Open",
"openPlanItemsLabel": "Plan status",
"openPlanItems": "{count} open",
"unassignedPlanItems": "{count} open",
"durationExampleLong": "e.g. 2x7 or 3*5",
"durationExampleShort": "e.g. 2x7",
"showImage": "Show image/drawing",
"participants": "Participants",
"searchParticipants": "Search participants",
"filterAll": "All",
"filterPresent": "Present",
"filterAbsent": "Absent",
"filterTest": "Trial",
"quickAdd": "+ Quick add",
"selectTags": "Select tags",
"createDrawing": "Create exercise drawing",
"overallActivity": "Overall activity",
"editActivity": "Edit activity",
"editGroupActivity": "Edit group activity",
"assignParticipantsForGroupActivity": "Assign participants for group activity",
"delete": "Delete",
"min": "Min",
"errorLoadingPredefinedActivities": "Failed to load predefined activities",
"selectParticipantAndNote": "Please select a participant and enter a note.",
"selectGroupAndActivity": "Please select a group and enter an activity.",
"dateCannotBeDeleted": "Date cannot be deleted",
"dateCannotBeDeletedDetails": "There is still content present (training plan, participants, activities, accidents or notes).",
"confirmDelete": "Confirm deletion",
"confirmDeleteDate": "Do you really want to delete this date?",
"confirmDeleteDateDetails": "All associated data will also be deleted.",
"noParticipants": "No participants available for this training day.",
"mustCreateAtLeastTwoGroups": "At least 2 groups must be created the first time.",
"oneGroupAdded": "1 group was added successfully.",
"groupsCreated": "{count} groups were created successfully.",
"errorCreatingGroups": "Error creating groups",
"confirmDeleteGroup": "Do you really want to delete the group \"{name}\"?",
"groupDeletedSuccessfully": "Group deleted successfully.",
"errorDeletingGroup": "Error deleting group",
"errorCreatingActivity": "Error creating activity",
"trainingPlanAsPDF": "Training plan as PDF",
"trainingPlanPdfShort": "Schedule as PDF",
"trainingDayAsPDF": "Download training day as PDF",
"trainingDayAsPDFShort": "Training day as PDF",
"trainingDaySummaryPdfShort": "Participant summary as PDF",
"minutes": "Minutes",
"formHandedOver": "Membership form handed over",
"errorOccurred": "An error occurred. Please try again.",
"trainingTimesUpdated": "Training times updated successfully.",
"noActiveTrainingDay": "No training day selected.",
"statusEmpty": "This training day is still empty.",
"statusInProgress": "This training day is partially prepared.",
"formMarkedAsHandedOver": "Membership form marked as handed over",
"errorMarkingForm": "Error marking the membership form",
"dateNoLongerCurrent": "The selected date was no longer current. Please try again.",
"activityRequired": "Please enter an activity.",
"activityNotFound": "Activity not found. Please choose one from the list.",
"standardActivities": "Standard activities",
"standardDurationShort": "Min",
"standardActivityAddError": "Standard activity could not be added.",
"statusReady": "Times and training plan are set.",
"filterExcused": "Excused",
"participantStatusNone": "No status",
"participantStatusExcused": "Excused",
"participantStatusCancelled": "Cancelled"
},
"trainingStats": {
"title": "Training statistics",
"activeMembers": "Active members",
"averageParticipationCurrentMonth": "Average participation (current month)",
"averageParticipationLastMonth": "Average participation (last month)",
"averageParticipationQuarter": "Average participation (quarter)",
"averageParticipationHalfYear": "Average participation (half-year)",
"averageParticipationYear": "Average participation (year)",
"trainingDays": "Training days (last 12 months)",
"memberParticipations": "Member participations",
"date": "Date",
"weekday": "Weekday",
"participants": "Participants",
"name": "Name",
"ttr": "TTR",
"qttr": "QTTR",
"birthdate": "Birthdate",
"participations12Months": "Participations (12 months)",
"participations3Months": "Participations (3 months)",
"participationsTotal": "Participations (total)",
"lastTraining": "Last training",
"actions": "Actions",
"showDetails": "Show details"
},
"courtDrawingTool": {
"title": "Table tennis exercise drawing",
"configureExercise": "Configure exercise",
"stepStartPosition": "1. Start position",
"stepStartPositionHint": "Which service position does the exercise start from?",
"stepFirstStroke": "2. First stroke",
"stepFirstStrokeHint": "Set stroke side and spin for the first ball.",
"stepTarget": "3. Target",
"stepTargetHint": "Choose the target zone for the first stroke.",
"stepAdditionalStrokes": "4. Follow-up strokes",
"stepAdditionalStrokesHint": "Optionally build additional balls as a sequence.",
"noAdditionalStrokes": "No follow-up strokes added yet.",
"service": "Serve:",
"serviceTitle": "Serve",
"forehand": "Forehand",
"backhand": "Backhand",
"spin": "Spin:",
"underspin": "Backspin",
"topspin": "Topspin",
"sidespin": "Sidespin",
"sideUnderspin": "Side-backspin",
"counterSpin": "Counter-spin",
"targetPosition": "Target position:",
"targetPositionLabel": "Target position",
"strokeSide": "Side",
"strokeTypeLabel": "Stroke type",
"addStroke": "Add stroke",
"preview": "Preview",
"previewHint": "The graphic appears as soon as the first stroke is fully configured.",
"completeFirstStroke": "Complete the first stroke",
"completeFirstStrokeHint": "Choose start position, stroke side, spin and target. The graphic will then appear.",
"codeLabel": "Code",
"titleLabel": "Title",
"startLeft": "left",
"startMiddle": "centre",
"startRight": "right",
"strokeTypePush": "Push",
"strokeTypeCounter": "Counter",
"strokeTypeTopspin": "Topspin",
"strokeTypeFlip": "Flip",
"strokeTypeBlock": "Block",
"strokeTypeSmash": "Smash",
"strokeTypeChopDefense": "Chop defence",
"strokeTypeLobDefense": "Lob defence",
"targetForehandLong": "Forehand deep",
"targetMiddleLong": "Middle deep",
"targetBackhandLong": "Backhand deep",
"targetForehandHalfLong": "Forehand half-long",
"targetMiddleHalfLong": "Middle half-long",
"targetBackhandHalfLong": "Backhand half-long",
"targetForehandShort": "Forehand short",
"targetMiddleShort": "Middle short",
"targetBackhandShort": "Backhand short",
"toTarget": "to"
}
}

View File

@@ -23,7 +23,40 @@
"next": "Next",
"previous": "Previous",
"submit": "Submit",
"reset": "Reset"
"reset": "Reset",
"all": "All",
"today": "Today",
"time": "Time",
"new": "New",
"update": "Update",
"create": "Create",
"remove": "Remove",
"select": "Select",
"download": "Download",
"choose": "Choose",
"apply": "Apply",
"clear": "Clear",
"view": "View",
"name": "Name",
"date": "Date",
"status": "Status",
"type": "Type",
"description": "Description",
"active": "Active",
"inactive": "Inactive",
"enabled": "Enabled",
"disabled": "Disabled",
"required": "Required",
"optional": "Optional",
"in": "in",
"min": "min",
"minutes": "minutes",
"hours": "hours",
"days": "days",
"weeks": "weeks",
"months": "months",
"years": "years",
"ok": "OK"
},
"navigation": {
"home": "Home",
@@ -50,7 +83,8 @@
"register": "Register",
"dailyBusiness": "Daily Business",
"competitions": "Competitions",
"settings": "Settings"
"settings": "Settings",
"backToHome": "Back to home"
},
"club": {
"select": "Select Club",
@@ -59,7 +93,20 @@
"load": "Load",
"name": "Club Name",
"create": "Create Club",
"accessRequestPending": "Access to this club has been requested. Please be patient."
"accessRequestPending": "Access to this club has been requested. Please be patient.",
"createTitle": "Create club",
"members": "Members",
"trainingDiary": "Training diary",
"noAccess": "You have not yet been granted access to this club.",
"requestAccess": "Request access",
"openRequests": "Open access requests",
"title": "Club",
"openAccessRequests": "Open access requests",
"diary": "Training diary",
"accessDenied": "Access to the club was denied.",
"errorLoadingRequests": "Failed to load open requests",
"accessRequested": "Access has been requested.",
"accessRequestFailed": "Access request could not be submitted."
},
"auth": {
"login": "Login",
@@ -130,6 +177,124 @@
"cancel": "Cancel"
},
"diary": {
"title": "Training diary",
"date": "Date",
"noEntries": "No entries",
"deleteDate": "Delete date",
"createNew": "Create new",
"gallery": "Member gallery",
"galleryCreating": "Creating gallery…",
"selectTrainingGroup": "Select training group",
"selectTrainingGroupPlaceholder": "Please choose...",
"suggestion": "Suggestion",
"nextAppointment": "Next appointment",
"applySuggestion": "Apply suggestion",
"skipSuggestion": "Continue without suggestion",
"createNewDate": "Create new date",
"activeTrainingDay": "Active training day",
"trainingDaySection": "Training day",
"trainingDayChecklist": "Completion checklist",
"trainingStart": "Training start",
"trainingEnd": "Training end",
"trainingWindow": "Training window",
"trainingWindowUnset": "Not set yet",
"groupsLabel": "Groups",
"groupsSection": "Groups",
"createDate": "Create date",
"editTrainingTimes": "Edit training times",
"updateTimes": "Update times",
"groupManagement": "Group management",
"createGroups": "Create groups",
"trainingPlan": "Training plan",
"planActivitiesCount": "Planned activities",
"timeblocksCount": "Time blocks",
"planEmptyState": "Nothing has been entered in the training plan yet.",
"planAddHint": "Add new plan items using the actions above.",
"startTime": "Start time",
"group": "Group...",
"timeblock": "Time block",
"assignParticipants": "Assign participants",
"addTimeblock": "Time block",
"activities": "Activities",
"freeActivities": "Free activities",
"noFreeActivitiesYet": "No free activities have been recorded yet.",
"addActivity": "Add activity",
"bookAccident": "Record accident",
"activity": "Activity",
"duration": "Duration",
"activityImage": "Activity image",
"activityDrawing": "Activity drawing",
"today": "Today",
"existingGroups": "Existing groups",
"leader": "Leader",
"deleteGroup": "Delete group",
"numberOfGroups": "Number of groups",
"addGroup": "Add group",
"activityOrTimeblock": "Activity / time block",
"durationMinutes": "Duration (min)",
"addGroupActivity": "Add group activity",
"addGroupButton": "+ Group",
"all": "All",
"selectGroup": "Select group...",
"activityPlaceholder": "Activity",
"assignShort": "Assign",
"statusReadyShort": "Ready",
"statusOpenShort": "Open",
"openPlanItemsLabel": "Plan status",
"openPlanItems": "{count} open",
"unassignedPlanItems": "{count} open",
"durationExampleLong": "e.g. 2x7 or 3*5",
"durationExampleShort": "e.g. 2x7",
"showImage": "Show image/drawing",
"participants": "Participants",
"searchParticipants": "Search participants",
"filterAll": "All",
"filterPresent": "Present",
"filterAbsent": "Absent",
"filterTest": "Trial",
"quickAdd": "+ Quick add",
"selectTags": "Select tags",
"createDrawing": "Create exercise drawing",
"overallActivity": "Overall activity",
"editActivity": "Edit activity",
"editGroupActivity": "Edit group activity",
"assignParticipantsForGroupActivity": "Assign participants for group activity",
"delete": "Delete",
"min": "Min",
"errorLoadingPredefinedActivities": "Failed to load predefined activities",
"selectParticipantAndNote": "Please select a participant and enter a note.",
"selectGroupAndActivity": "Please select a group and enter an activity.",
"dateCannotBeDeleted": "Date cannot be deleted",
"dateCannotBeDeletedDetails": "There is still content present (training plan, participants, activities, accidents or notes).",
"confirmDelete": "Confirm deletion",
"confirmDeleteDate": "Do you really want to delete this date?",
"confirmDeleteDateDetails": "All associated data will also be deleted.",
"noParticipants": "No participants available for this training day.",
"mustCreateAtLeastTwoGroups": "At least 2 groups must be created the first time.",
"oneGroupAdded": "1 group was added successfully.",
"groupsCreated": "{count} groups were created successfully.",
"errorCreatingGroups": "Error creating groups",
"confirmDeleteGroup": "Do you really want to delete the group \"{name}\"?",
"groupDeletedSuccessfully": "Group deleted successfully.",
"errorDeletingGroup": "Error deleting group",
"errorCreatingActivity": "Error creating activity",
"trainingPlanAsPDF": "Training plan as PDF",
"trainingPlanPdfShort": "Schedule as PDF",
"trainingDayAsPDF": "Download training day as PDF",
"trainingDayAsPDFShort": "Training day as PDF",
"trainingDaySummaryPdfShort": "Participant summary as PDF",
"minutes": "Minutes",
"formHandedOver": "Membership form handed over",
"errorOccurred": "An error occurred. Please try again.",
"trainingTimesUpdated": "Training times updated successfully.",
"noActiveTrainingDay": "No training day selected.",
"statusEmpty": "This training day is still empty.",
"statusInProgress": "This training day is partially prepared.",
"formMarkedAsHandedOver": "Membership form marked as handed over",
"errorMarkingForm": "Error marking the membership form",
"dateNoLongerCurrent": "The selected date was no longer current. Please try again.",
"activityRequired": "Please enter an activity.",
"activityNotFound": "Activity not found. Please choose one from the list.",
"standardActivities": "Standard activities",
"standardDurationShort": "Min",
"standardActivityAddError": "Standard activity could not be added.",
@@ -488,6 +653,106 @@
"errorImportingCSV": "Failed to import the CSV file"
},
"members": {
"title": "Members",
"memberInfo": "Member info",
"activeMembers": "Active members",
"testMembers": "Trial members",
"inactiveMembers": "Inactive members",
"generatePhoneList": "Generate phone list",
"onlyActiveMembers": "Only active members are included",
"updateRatings": "Update TTR/QTTR from myTischtennis",
"updating": "Updating...",
"transferMembers": "Transfer members",
"newMember": "New member",
"editMember": "Edit member",
"createNewMember": "Create new member",
"firstName": "First name",
"lastName": "Last name",
"street": "Street",
"postalCode": "Postcode",
"city": "City",
"birthdate": "Birthdate",
"phones": "Phone numbers",
"emails": "Email addresses",
"addPhone": "Add phone number",
"addEmail": "Add email address",
"phoneNumber": "Phone number",
"emailAddress": "Email address",
"parent": "Parent",
"parentName": "Name (e.g. mother, father)",
"primary": "Primary",
"gender": "Gender",
"genderUnknown": "Unknown",
"genderMale": "Male",
"genderFemale": "Female",
"genderDiverse": "Diverse",
"picsInInternetAllowed": "Pictures allowed online",
"testMembership": "Trial membership",
"memberFormHandedOver": "Membership form handed over",
"trainingGroups": "Training groups",
"noGroupsAssigned": "No groups assigned",
"noGroupsAvailable": "No groups available",
"addGroup": "Add group...",
"remove": "Remove",
"image": "Image",
"selectFile": "Select file",
"camera": "Camera",
"imagePreview": "Member image preview",
"change": "Change",
"create": "Create",
"clearFields": "Clear fields",
"showInactiveMembers": "Show inactive members",
"ageGroup": "Age group",
"adults": "Adults (20+)",
"j19": "U19 (19 and younger)",
"j17": "U17 (17 and younger)",
"j15": "U15 (15 and younger)",
"j13": "U13 (13 and younger)",
"j11": "U11 (11 and younger)",
"clearFilters": "Reset filters",
"imageInternet": "Image (web?)",
"testMember": "Trial",
"name": "Surname, first name",
"ttrQttr": "TTR / QTTR",
"address": "Address",
"active": "Active",
"actions": "Actions",
"phoneNumberShort": "Phone no.",
"emailAddressShort": "Email address",
"trainingParticipations": "Training participations",
"memberImage": "Member image",
"inactive": "inactive",
"sixOrMoreParticipations": "6 or more training participations",
"threeOrMoreParticipations": "3 or more training participations",
"noTestMembership": "No longer a trial member",
"formHandedOver": "Membership form handed over",
"deactivateMember": "Deactivate member",
"notes": "Notes",
"exercises": "Exercises",
"memberImages": "Member images",
"testMembershipRemoved": "Trial membership removed.",
"errorRemovingTestMembership": "Error removing the trial membership.",
"formMarkedAsHandedOver": "Membership form marked as handed over.",
"errorMarkingForm": "Error marking the form.",
"deactivateMemberTitle": "Deactivate member",
"deactivateMemberConfirm": "Do you really want to deactivate \"{name}\"?",
"memberDeactivated": "Member deactivated",
"errorDeactivatingMember": "Error deactivating member",
"errorSavingMember": "Error saving member",
"errorAddingToGroup": "Error adding to group",
"errorRemovingFromGroup": "Error removing from group",
"imageUpdated": "Image updated",
"errorRotatingImage": "Error rotating image",
"imageDeleted": "Image deleted.",
"errorDeletingImage": "Image could not be deleted",
"primaryImageUpdated": "Primary image updated.",
"errorSettingPrimaryImage": "Primary image could not be set",
"errorUploadingImage": "Image could not be uploaded",
"errorLoadingImage": "Error loading image",
"phoneList": "phone-list.pdf",
"errorLoadingTrainingParticipations": "Error loading training participations",
"errorUpdatingRatings": "Error updating TTR/QTTR values",
"errorTransfer": "Transfer error",
"subtitle": "Search, filter and edit members directly.",
"closeEditor": "Close editor",
"visibleMembers": "Visible members",
@@ -500,10 +765,15 @@
"scopeNeedsForm": "Form unverified",
"scopeDataIncomplete": "Data incomplete",
"scopeInactive": "Inactive",
"scopeActiveDataIncomplete": "Active + data incomplete",
"searchAndFilter": "Search and filter",
"bulkActions": "Bulk actions",
"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}.",
"editorAssignTrainingGroupHint": "Please assign at least one training group.",
"editorRecommendedEntry": "Recommended entry",
"transferSuccessTitle": "Transfer successful",
"transferErrorTitle": "Transfer error",
"clickTtRequestPending": "Click-TT request in progress",
@@ -548,6 +818,9 @@
"sortFirstName": "First name",
"sortBirthday": "Birthday",
"sortAge": "Age",
"ageRange": "Age from - to",
"ageFromPlaceholder": "from",
"ageToPlaceholder": "to",
"age": "Age",
"dataQuality": "Data quality",
"dataQualityComplete": "Data complete",
@@ -556,18 +829,22 @@
"dataIssueEmail": "Email missing",
"dataIssueAddress": "Address missing",
"dataIssueGender": "Gender unclear",
"dataIssueTrainingGroup": "Training group missing",
"openTasks": "Open tasks",
"noOpenTasks": "No open tasks",
"taskVerifyForm": "Verify form",
"taskReviewTrialStatus": "Review trial status",
"taskCheckTrainingStatus": "Review training status",
"taskCheckDataQuality": "Review data quality",
"taskAssignTrainingGroup": "Assign training group",
"taskCheckClickTt": "Review Click-TT eligibility",
"taskActionVerify": "Verify",
"taskActionMarkRegular": "Mark regular",
"taskActionReview": "Open",
"taskActionRequest": "Request",
"toggleSortDirection": "Toggle sort direction",
"showTtrHistory": "Show TTR history",
"missingTtrHistoryId": "No myTischtennis ID stored",
"sortLastTraining": "Last training",
"sortOpenTasks": "Open tasks",
"exportPreview": "Export preview",
@@ -590,6 +867,85 @@
"copyContactSummary": "Copy contact summary",
"copyContactSummarySuccess": "Contact summary copied to clipboard."
},
"trainingStats": {
"title": "Training statistics",
"activeMembers": "Active members",
"averageParticipationCurrentMonth": "Average participation (current month)",
"averageParticipationLastMonth": "Average participation (last month)",
"averageParticipationQuarter": "Average participation (quarter)",
"averageParticipationHalfYear": "Average participation (half-year)",
"averageParticipationYear": "Average participation (year)",
"trainingDays": "Training days (last 12 months)",
"memberParticipations": "Member participations",
"date": "Date",
"weekday": "Weekday",
"participants": "Participants",
"name": "Name",
"ttr": "TTR",
"qttr": "QTTR",
"birthdate": "Birthdate",
"participations12Months": "Participations (12 months)",
"participations3Months": "Participations (3 months)",
"participationsTotal": "Participations (total)",
"lastTraining": "Last training",
"actions": "Actions",
"showDetails": "Show details"
},
"courtDrawingTool": {
"title": "Table tennis exercise drawing",
"configureExercise": "Configure exercise",
"stepStartPosition": "1. Start position",
"stepStartPositionHint": "Which service position does the exercise start from?",
"stepFirstStroke": "2. First stroke",
"stepFirstStrokeHint": "Set stroke side and spin for the first ball.",
"stepTarget": "3. Target",
"stepTargetHint": "Choose the target zone for the first stroke.",
"stepAdditionalStrokes": "4. Follow-up strokes",
"stepAdditionalStrokesHint": "Optionally build additional balls as a sequence.",
"noAdditionalStrokes": "No follow-up strokes added yet.",
"service": "Serve:",
"serviceTitle": "Serve",
"forehand": "Forehand",
"backhand": "Backhand",
"spin": "Spin:",
"underspin": "Backspin",
"topspin": "Topspin",
"sidespin": "Sidespin",
"sideUnderspin": "Side-backspin",
"counterSpin": "Counter-spin",
"targetPosition": "Target position:",
"targetPositionLabel": "Target position",
"strokeSide": "Side",
"strokeTypeLabel": "Stroke type",
"addStroke": "Add stroke",
"preview": "Preview",
"previewHint": "The graphic appears as soon as the first stroke is fully configured.",
"completeFirstStroke": "Complete the first stroke",
"completeFirstStrokeHint": "Choose start position, stroke side, spin and target. The graphic will then appear.",
"codeLabel": "Code",
"titleLabel": "Title",
"startLeft": "left",
"startMiddle": "centre",
"startRight": "right",
"strokeTypePush": "Push",
"strokeTypeCounter": "Counter",
"strokeTypeTopspin": "Topspin",
"strokeTypeFlip": "Flip",
"strokeTypeBlock": "Block",
"strokeTypeSmash": "Smash",
"strokeTypeChopDefense": "Chop defence",
"strokeTypeLobDefense": "Lob defence",
"targetForehandLong": "Forehand deep",
"targetMiddleLong": "Middle deep",
"targetBackhandLong": "Backhand deep",
"targetForehandHalfLong": "Forehand half-long",
"targetMiddleHalfLong": "Middle half-long",
"targetBackhandHalfLong": "Backhand half-long",
"targetForehandShort": "Forehand short",
"targetMiddleShort": "Middle short",
"targetBackhandShort": "Backhand short",
"toTarget": "to"
},
"teamManagement": {
"title": "Team Management",
"subtitle": "Select teams, review configuration and maintain league data in one place.",

View File

@@ -12,6 +12,7 @@
"edit": "Edit",
"add": "Add",
"close": "Close",
"details": "Details",
"confirm": "Confirm",
"yes": "Yes",
"no": "No",
@@ -22,7 +23,40 @@
"next": "Next",
"previous": "Previous",
"submit": "Submit",
"reset": "Reset"
"reset": "Reset",
"all": "All",
"today": "Today",
"time": "Time",
"new": "New",
"update": "Update",
"create": "Create",
"remove": "Remove",
"select": "Select",
"download": "Download",
"choose": "Choose",
"apply": "Apply",
"clear": "Clear",
"view": "View",
"name": "Name",
"date": "Date",
"status": "Status",
"type": "Type",
"description": "Description",
"active": "Active",
"inactive": "Inactive",
"enabled": "Enabled",
"disabled": "Disabled",
"required": "Required",
"optional": "Optional",
"in": "in",
"min": "min",
"minutes": "minutes",
"hours": "hours",
"days": "days",
"weeks": "weeks",
"months": "months",
"years": "years",
"ok": "OK"
},
"navigation": {
"home": "Home",
@@ -41,13 +75,16 @@
"logs": "System Logs",
"memberTransfer": "Member Transfer",
"myTischtennisAccount": "myTischtennis Account",
"clickTtAccount": "HTTV / click-TT Account",
"clickTtBrowser": "HTTV / click-TT",
"personalSettings": "Personal Settings",
"logout": "Log Out",
"login": "Log In",
"register": "Sign Up",
"dailyBusiness": "Daily Business",
"competitions": "Competitions",
"settings": "Settings"
"settings": "Settings",
"backToHome": "Back to home"
},
"club": {
"select": "Select Club",
@@ -56,7 +93,20 @@
"load": "Load",
"name": "Club Name",
"create": "Create Club",
"accessRequestPending": "Access to this club has been requested. Please be patient."
"accessRequestPending": "Access to this club has been requested. Please be patient.",
"createTitle": "Create club",
"members": "Members",
"trainingDiary": "Training diary",
"noAccess": "You have not yet been granted access to this club.",
"requestAccess": "Request access",
"openRequests": "Open access requests",
"title": "Club",
"openAccessRequests": "Open access requests",
"diary": "Training diary",
"accessDenied": "Access to the club was denied.",
"errorLoadingRequests": "Failed to load open requests",
"accessRequested": "Access has been requested.",
"accessRequestFailed": "Access request could not be submitted."
},
"auth": {
"login": "Log In",
@@ -359,6 +409,106 @@
"stageFlowQualifiedPreviewEntry": "G{group} · Place {position} · {name}"
},
"members": {
"title": "Members",
"memberInfo": "Member info",
"activeMembers": "Active members",
"testMembers": "Trial members",
"inactiveMembers": "Inactive members",
"generatePhoneList": "Generate phone list",
"onlyActiveMembers": "Only active members are included",
"updateRatings": "Update TTR/QTTR from myTischtennis",
"updating": "Updating...",
"transferMembers": "Transfer members",
"newMember": "New member",
"editMember": "Edit member",
"createNewMember": "Create new member",
"firstName": "First name",
"lastName": "Last name",
"street": "Street",
"postalCode": "ZIP code",
"city": "City",
"birthdate": "Birthdate",
"phones": "Phone numbers",
"emails": "Email addresses",
"addPhone": "Add phone number",
"addEmail": "Add email address",
"phoneNumber": "Phone number",
"emailAddress": "Email address",
"parent": "Parent",
"parentName": "Name (e.g. mother, father)",
"primary": "Primary",
"gender": "Gender",
"genderUnknown": "Unknown",
"genderMale": "Male",
"genderFemale": "Female",
"genderDiverse": "Diverse",
"picsInInternetAllowed": "Pictures allowed online",
"testMembership": "Trial membership",
"memberFormHandedOver": "Membership form handed over",
"trainingGroups": "Training groups",
"noGroupsAssigned": "No groups assigned",
"noGroupsAvailable": "No groups available",
"addGroup": "Add group...",
"remove": "Remove",
"image": "Image",
"selectFile": "Select file",
"camera": "Camera",
"imagePreview": "Member image preview",
"change": "Change",
"create": "Create",
"clearFields": "Clear fields",
"showInactiveMembers": "Show inactive members",
"ageGroup": "Age group",
"adults": "Adults (20+)",
"j19": "U19 (19 and younger)",
"j17": "U17 (17 and younger)",
"j15": "U15 (15 and younger)",
"j13": "U13 (13 and younger)",
"j11": "U11 (11 and younger)",
"clearFilters": "Reset filters",
"imageInternet": "Image (web?)",
"testMember": "Trial",
"name": "Last name, first name",
"ttrQttr": "TTR / QTTR",
"address": "Address",
"active": "Active",
"actions": "Actions",
"phoneNumberShort": "Phone no.",
"emailAddressShort": "Email address",
"trainingParticipations": "Training participations",
"memberImage": "Member image",
"inactive": "inactive",
"sixOrMoreParticipations": "6 or more training participations",
"threeOrMoreParticipations": "3 or more training participations",
"noTestMembership": "No longer a trial member",
"formHandedOver": "Membership form handed over",
"deactivateMember": "Deactivate member",
"notes": "Notes",
"exercises": "Exercises",
"memberImages": "Member images",
"testMembershipRemoved": "Trial membership removed.",
"errorRemovingTestMembership": "Error removing the trial membership.",
"formMarkedAsHandedOver": "Membership form marked as handed over.",
"errorMarkingForm": "Error marking the form.",
"deactivateMemberTitle": "Deactivate member",
"deactivateMemberConfirm": "Do you really want to deactivate \"{name}\"?",
"memberDeactivated": "Member deactivated",
"errorDeactivatingMember": "Error deactivating member",
"errorSavingMember": "Error saving member",
"errorAddingToGroup": "Error adding to group",
"errorRemovingFromGroup": "Error removing from group",
"imageUpdated": "Image updated",
"errorRotatingImage": "Error rotating image",
"imageDeleted": "Image deleted.",
"errorDeletingImage": "Image could not be deleted",
"primaryImageUpdated": "Primary image updated.",
"errorSettingPrimaryImage": "Primary image could not be set",
"errorUploadingImage": "Image could not be uploaded",
"errorLoadingImage": "Error loading image",
"phoneList": "phone-list.pdf",
"errorLoadingTrainingParticipations": "Error loading training participations",
"errorUpdatingRatings": "Error updating TTR/QTTR values",
"errorTransfer": "Transfer error",
"subtitle": "Search, filter and edit members directly.",
"closeEditor": "Close editor",
"visibleMembers": "Visible members",
@@ -369,11 +519,17 @@
"scopeActive": "Active",
"scopeTest": "Trial",
"scopeNeedsForm": "Form unverified",
"scopeDataIncomplete": "Data incomplete",
"scopeInactive": "Inactive",
"scopeActiveDataIncomplete": "Active + data incomplete",
"searchAndFilter": "Search and filter",
"bulkActions": "Bulk actions",
"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}.",
"editorAssignTrainingGroupHint": "Please assign at least one training group.",
"editorRecommendedEntry": "Recommended entry",
"transferSuccessTitle": "Transfer successful",
"transferErrorTitle": "Transfer error",
"clickTtRequestPending": "Click-TT request in progress",
@@ -418,17 +574,33 @@
"sortFirstName": "First name",
"sortBirthday": "Birthday",
"sortAge": "Age",
"ageRange": "Age from - to",
"ageFromPlaceholder": "from",
"ageToPlaceholder": "to",
"age": "Age",
"dataQuality": "Data quality",
"dataQualityComplete": "Data complete",
"dataIssueBirthdate": "Birthdate missing",
"dataIssuePhone": "Phone missing",
"dataIssueEmail": "Email missing",
"dataIssueAddress": "Address missing",
"dataIssueGender": "Gender unclear",
"dataIssueTrainingGroup": "Training group missing",
"openTasks": "Open tasks",
"noOpenTasks": "No open tasks",
"taskVerifyForm": "Verify form",
"taskReviewTrialStatus": "Review trial status",
"taskCheckTrainingStatus": "Review training status",
"taskCheckDataQuality": "Review data quality",
"taskAssignTrainingGroup": "Assign training group",
"taskCheckClickTt": "Review Click-TT eligibility",
"taskActionVerify": "Verify",
"taskActionMarkRegular": "Mark regular",
"taskActionReview": "Open",
"taskActionRequest": "Request",
"toggleSortDirection": "Toggle sort direction",
"showTtrHistory": "Show TTR history",
"missingTtrHistoryId": "No myTischtennis ID stored",
"sortLastTraining": "Last training",
"sortOpenTasks": "Open tasks",
"exportPreview": "Export preview",
@@ -450,5 +622,212 @@
"composeEmail": "Compose email",
"copyContactSummary": "Copy contact summary",
"copyContactSummarySuccess": "Contact summary copied to clipboard."
},
"diary": {
"title": "Training diary",
"date": "Date",
"noEntries": "No entries",
"deleteDate": "Delete date",
"createNew": "Create new",
"gallery": "Member gallery",
"galleryCreating": "Creating gallery…",
"selectTrainingGroup": "Select training group",
"selectTrainingGroupPlaceholder": "Please choose...",
"suggestion": "Suggestion",
"nextAppointment": "Next appointment",
"applySuggestion": "Apply suggestion",
"skipSuggestion": "Continue without suggestion",
"createNewDate": "Create new date",
"activeTrainingDay": "Active training day",
"trainingDaySection": "Training day",
"trainingDayChecklist": "Completion checklist",
"trainingStart": "Training start",
"trainingEnd": "Training end",
"trainingWindow": "Training window",
"trainingWindowUnset": "Not set yet",
"groupsLabel": "Groups",
"groupsSection": "Groups",
"createDate": "Create date",
"editTrainingTimes": "Edit training times",
"updateTimes": "Update times",
"groupManagement": "Group management",
"createGroups": "Create groups",
"trainingPlan": "Training plan",
"planActivitiesCount": "Planned activities",
"timeblocksCount": "Time blocks",
"planEmptyState": "Nothing has been entered in the training plan yet.",
"planAddHint": "Add new plan items using the actions above.",
"startTime": "Start time",
"group": "Group...",
"timeblock": "Time block",
"assignParticipants": "Assign participants",
"addTimeblock": "Time block",
"activities": "Activities",
"freeActivities": "Free activities",
"noFreeActivitiesYet": "No free activities have been recorded yet.",
"addActivity": "Add activity",
"bookAccident": "Record accident",
"activity": "Activity",
"duration": "Duration",
"activityImage": "Activity image",
"activityDrawing": "Activity drawing",
"today": "Today",
"existingGroups": "Existing groups",
"leader": "Leader",
"deleteGroup": "Delete group",
"numberOfGroups": "Number of groups",
"addGroup": "Add group",
"activityOrTimeblock": "Activity / time block",
"durationMinutes": "Duration (min)",
"addGroupActivity": "Add group activity",
"addGroupButton": "+ Group",
"all": "All",
"selectGroup": "Select group...",
"activityPlaceholder": "Activity",
"assignShort": "Assign",
"statusReadyShort": "Ready",
"statusOpenShort": "Open",
"openPlanItemsLabel": "Plan status",
"openPlanItems": "{count} open",
"unassignedPlanItems": "{count} open",
"durationExampleLong": "e.g. 2x7 or 3*5",
"durationExampleShort": "e.g. 2x7",
"showImage": "Show image/drawing",
"participants": "Participants",
"searchParticipants": "Search participants",
"filterAll": "All",
"filterPresent": "Present",
"filterAbsent": "Absent",
"filterTest": "Trial",
"quickAdd": "+ Quick add",
"selectTags": "Select tags",
"createDrawing": "Create exercise drawing",
"overallActivity": "Overall activity",
"editActivity": "Edit activity",
"editGroupActivity": "Edit group activity",
"assignParticipantsForGroupActivity": "Assign participants for group activity",
"delete": "Delete",
"min": "Min",
"errorLoadingPredefinedActivities": "Failed to load predefined activities",
"selectParticipantAndNote": "Please select a participant and enter a note.",
"selectGroupAndActivity": "Please select a group and enter an activity.",
"dateCannotBeDeleted": "Date cannot be deleted",
"dateCannotBeDeletedDetails": "There is still content present (training plan, participants, activities, accidents or notes).",
"confirmDelete": "Confirm deletion",
"confirmDeleteDate": "Do you really want to delete this date?",
"confirmDeleteDateDetails": "All associated data will also be deleted.",
"noParticipants": "No participants available for this training day.",
"mustCreateAtLeastTwoGroups": "At least 2 groups must be created the first time.",
"oneGroupAdded": "1 group was added successfully.",
"groupsCreated": "{count} groups were created successfully.",
"errorCreatingGroups": "Error creating groups",
"confirmDeleteGroup": "Do you really want to delete the group \"{name}\"?",
"groupDeletedSuccessfully": "Group deleted successfully.",
"errorDeletingGroup": "Error deleting group",
"errorCreatingActivity": "Error creating activity",
"trainingPlanAsPDF": "Training plan as PDF",
"trainingPlanPdfShort": "Schedule as PDF",
"trainingDayAsPDF": "Download training day as PDF",
"trainingDayAsPDFShort": "Training day as PDF",
"trainingDaySummaryPdfShort": "Participant summary as PDF",
"minutes": "Minutes",
"formHandedOver": "Membership form handed over",
"errorOccurred": "An error occurred. Please try again.",
"trainingTimesUpdated": "Training times updated successfully.",
"noActiveTrainingDay": "No training day selected.",
"statusEmpty": "This training day is still empty.",
"statusInProgress": "This training day is partially prepared.",
"formMarkedAsHandedOver": "Membership form marked as handed over",
"errorMarkingForm": "Error marking the membership form",
"dateNoLongerCurrent": "The selected date was no longer current. Please try again.",
"activityRequired": "Please enter an activity.",
"activityNotFound": "Activity not found. Please choose one from the list.",
"standardActivities": "Standard activities",
"standardDurationShort": "Min",
"standardActivityAddError": "Standard activity could not be added.",
"statusReady": "Times and training plan are set.",
"filterExcused": "Excused",
"participantStatusNone": "No status",
"participantStatusExcused": "Excused",
"participantStatusCancelled": "Cancelled"
},
"trainingStats": {
"title": "Training statistics",
"activeMembers": "Active members",
"averageParticipationCurrentMonth": "Average participation (current month)",
"averageParticipationLastMonth": "Average participation (last month)",
"averageParticipationQuarter": "Average participation (quarter)",
"averageParticipationHalfYear": "Average participation (half-year)",
"averageParticipationYear": "Average participation (year)",
"trainingDays": "Training days (last 12 months)",
"memberParticipations": "Member participations",
"date": "Date",
"weekday": "Weekday",
"participants": "Participants",
"name": "Name",
"ttr": "TTR",
"qttr": "QTTR",
"birthdate": "Birthdate",
"participations12Months": "Participations (12 months)",
"participations3Months": "Participations (3 months)",
"participationsTotal": "Participations (total)",
"lastTraining": "Last training",
"actions": "Actions",
"showDetails": "Show details"
},
"courtDrawingTool": {
"title": "Table tennis exercise drawing",
"configureExercise": "Configure exercise",
"stepStartPosition": "1. Start position",
"stepStartPositionHint": "Which service position does the exercise start from?",
"stepFirstStroke": "2. First stroke",
"stepFirstStrokeHint": "Set stroke side and spin for the first ball.",
"stepTarget": "3. Target",
"stepTargetHint": "Choose the target zone for the first stroke.",
"stepAdditionalStrokes": "4. Follow-up strokes",
"stepAdditionalStrokesHint": "Optionally build additional balls as a sequence.",
"noAdditionalStrokes": "No follow-up strokes added yet.",
"service": "Serve:",
"serviceTitle": "Serve",
"forehand": "Forehand",
"backhand": "Backhand",
"spin": "Spin:",
"underspin": "Backspin",
"topspin": "Topspin",
"sidespin": "Sidespin",
"sideUnderspin": "Side-backspin",
"counterSpin": "Counter-spin",
"targetPosition": "Target position:",
"targetPositionLabel": "Target position",
"strokeSide": "Side",
"strokeTypeLabel": "Stroke type",
"addStroke": "Add stroke",
"preview": "Preview",
"previewHint": "The graphic appears as soon as the first stroke is fully configured.",
"completeFirstStroke": "Complete the first stroke",
"completeFirstStrokeHint": "Choose start position, stroke side, spin and target. The graphic will then appear.",
"codeLabel": "Code",
"titleLabel": "Title",
"startLeft": "left",
"startMiddle": "center",
"startRight": "right",
"strokeTypePush": "Push",
"strokeTypeCounter": "Counter",
"strokeTypeTopspin": "Topspin",
"strokeTypeFlip": "Flip",
"strokeTypeBlock": "Block",
"strokeTypeSmash": "Smash",
"strokeTypeChopDefense": "Chop defense",
"strokeTypeLobDefense": "Lob defense",
"targetForehandLong": "Forehand deep",
"targetMiddleLong": "Middle deep",
"targetBackhandLong": "Backhand deep",
"targetForehandHalfLong": "Forehand half-long",
"targetMiddleHalfLong": "Middle half-long",
"targetBackhandHalfLong": "Backhand half-long",
"targetForehandShort": "Forehand short",
"targetMiddleShort": "Middle short",
"targetBackhandShort": "Backhand short",
"toTarget": "to"
}
}

View File

@@ -22,7 +22,41 @@
"next": "Siguiente",
"previous": "Anterior",
"submit": "Enviar",
"reset": "Restablecer"
"reset": "Restablecer",
"all": "Todos",
"today": "Hoy",
"time": "Hora",
"new": "Nuevo",
"update": "Actualizar",
"create": "Crear",
"remove": "Quitar",
"select": "Seleccionar",
"download": "Descargar",
"choose": "Elegir",
"apply": "Aplicar",
"clear": "Borrar",
"details": "Detalles",
"view": "Ver",
"name": "Nombre",
"date": "Fecha",
"status": "Estado",
"type": "Tipo",
"description": "Descripción",
"active": "Activo",
"inactive": "Inactivo",
"enabled": "Habilitado",
"disabled": "Deshabilitado",
"required": "Obligatorio",
"optional": "Opcional",
"in": "en",
"min": "min",
"minutes": "minutos",
"hours": "horas",
"days": "días",
"weeks": "semanas",
"months": "meses",
"years": "años",
"ok": "OK"
},
"navigation": {
"home": "Inicio",
@@ -41,13 +75,16 @@
"logs": "Registros del sistema",
"memberTransfer": "Transferencia de miembros",
"myTischtennisAccount": "Cuenta myTischtennis",
"clickTtAccount": "Cuenta HTTV / click-TT",
"clickTtBrowser": "HTTV / click-TT",
"personalSettings": "Configuración personal",
"logout": "Cerrar sesión",
"login": "Iniciar sesión",
"register": "Registrarse",
"dailyBusiness": "Negocios diarios",
"dailyBusiness": "Gestión diaria",
"competitions": "Competiciones",
"settings": "Configuración"
"settings": "Configuración",
"backToHome": "Volver al inicio"
},
"club": {
"select": "Seleccionar club",
@@ -56,7 +93,20 @@
"load": "Cargar",
"name": "Nombre del club",
"create": "Crear club",
"accessRequestPending": "Access to this club has been requested. Please be patient."
"createTitle": "Crear club",
"members": "Miembros",
"trainingDiary": "Diario de entrenamiento",
"noAccess": "Todavía no tienes acceso a este club.",
"requestAccess": "Solicitar acceso",
"openRequests": "Solicitudes de acceso abiertas",
"title": "Club",
"openAccessRequests": "Solicitudes de acceso abiertas",
"diary": "Diario de entrenamiento",
"accessDenied": "Acceso al club denegado.",
"errorLoadingRequests": "Error al cargar las solicitudes abiertas",
"accessRequested": "Se ha solicitado el acceso.",
"accessRequestPending": "Se ha solicitado acceso a este club. Por favor, espera.",
"accessRequestFailed": "No se pudo enviar la solicitud de acceso."
},
"auth": {
"login": "Iniciar sesión",
@@ -331,96 +381,425 @@
"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",
"title": "Miembros",
"memberInfo": "Información del miembro",
"activeMembers": "Miembros activos",
"testMembers": "Miembros de prueba",
"inactiveMembers": "Miembros inactivos",
"generatePhoneList": "Generar lista telefónica",
"onlyActiveMembers": "Solo se incluyen miembros activos",
"updateRatings": "Actualizar TTR/QTTR desde myTischtennis",
"updating": "Actualizando...",
"transferMembers": "Transferir miembros",
"newMember": "Nuevo miembro",
"editMember": "Editar miembro",
"createNewMember": "Crear nuevo miembro",
"firstName": "Nombre",
"lastName": "Apellido",
"street": "Calle",
"postalCode": "Código postal",
"city": "Ciudad",
"birthdate": "Fecha de nacimiento",
"phones": "Números de teléfono",
"emails": "Direcciones de correo",
"addPhone": "Añadir número de teléfono",
"addEmail": "Añadir dirección de correo",
"phoneNumber": "Número de teléfono",
"emailAddress": "Dirección de correo",
"parent": "Tutor",
"parentName": "Nombre (p. ej. madre, padre)",
"primary": "Principal",
"gender": "Sexo",
"genderUnknown": "Desconocido",
"genderMale": "Masculino",
"genderFemale": "Femenino",
"genderDiverse": "Diverso",
"picsInInternetAllowed": "Fotos permitidas en internet",
"testMembership": "Membresía de prueba",
"memberFormHandedOver": "Formulario de afiliación entregado",
"trainingGroups": "Grupos de entrenamiento",
"noGroupsAssigned": "No hay grupos asignados",
"noGroupsAvailable": "No hay grupos disponibles",
"addGroup": "Añadir grupo...",
"remove": "Quitar",
"image": "Imagen",
"selectFile": "Seleccionar archivo",
"camera": "Cámara",
"imagePreview": "Vista previa de la imagen del miembro",
"change": "Cambiar",
"create": "Crear",
"clearFields": "Vaciar campos",
"showInactiveMembers": "Mostrar miembros inactivos",
"ageGroup": "Categoría de edad",
"adults": "Adultos (20+)",
"j19": "U19 (19 años o menos)",
"j17": "U17 (17 años o menos)",
"j15": "U15 (15 años o menos)",
"j13": "U13 (13 años o menos)",
"j11": "U11 (11 años o menos)",
"clearFilters": "Restablecer filtros",
"imageInternet": "Imagen (web?)",
"testMember": "Prueba",
"name": "Apellido, nombre",
"ttrQttr": "TTR / QTTR",
"address": "Dirección",
"active": "Activo",
"actions": "Acciones",
"phoneNumberShort": "Tel.",
"emailAddressShort": "Correo",
"trainingParticipations": "Participaciones en entrenamiento",
"memberImage": "Imagen del miembro",
"inactive": "inactivo",
"sixOrMoreParticipations": "6 o más participaciones en entrenamiento",
"threeOrMoreParticipations": "3 o más participaciones en entrenamiento",
"noTestMembership": "Ya no es miembro de prueba",
"formHandedOver": "Formulario de afiliación entregado",
"deactivateMember": "Desactivar miembro",
"notes": "Notas",
"exercises": "Ejercicios",
"memberImages": "Imágenes del miembro",
"testMembershipRemoved": "Se eliminó la membresía de prueba.",
"errorRemovingTestMembership": "Error al eliminar la membresía de prueba.",
"formMarkedAsHandedOver": "El formulario de afiliación se marcó como entregado.",
"errorMarkingForm": "Error al marcar el formulario.",
"deactivateMemberTitle": "Desactivar miembro",
"deactivateMemberConfirm": "¿Realmente deseas desactivar a \"{name}\"?",
"memberDeactivated": "Miembro desactivado",
"errorDeactivatingMember": "Error al desactivar al miembro",
"errorSavingMember": "Error al guardar el miembro",
"errorAddingToGroup": "Error al añadir al grupo",
"errorRemovingFromGroup": "Error al quitar del grupo",
"imageUpdated": "Imagen actualizada",
"errorRotatingImage": "Error al girar la imagen",
"imageDeleted": "La imagen ha sido eliminada.",
"errorDeletingImage": "No se pudo eliminar la imagen",
"primaryImageUpdated": "Imagen principal actualizada.",
"errorSettingPrimaryImage": "No se pudo establecer la imagen principal",
"errorUploadingImage": "No se pudo subir la imagen",
"errorLoadingImage": "Error al cargar la imagen",
"phoneList": "lista-telefonica.pdf",
"errorLoadingTrainingParticipations": "Error al cargar las participaciones de entrenamiento",
"errorUpdatingRatings": "Error al actualizar los valores TTR/QTTR",
"errorTransfer": "Error en la transferencia",
"subtitle": "Buscar, filtrar y editar miembros directamente.",
"closeEditor": "Cerrar editor",
"visibleMembers": "Miembros visibles",
"search": "Buscar",
"searchPlaceholder": "Buscar por nombre, ciudad, teléfono o correo",
"memberScope": "Ámbito de miembros",
"scopeAll": "Todos",
"scopeActive": "Activos",
"scopeTest": "Prueba",
"scopeNeedsForm": "Formulario sin verificar",
"scopeDataIncomplete": "Datos incompletos",
"scopeInactive": "Inactivos",
"scopeActiveDataIncomplete": "Activo + datos incompletos",
"searchAndFilter": "Búsqueda y filtros",
"bulkActions": "Acciones en lote",
"resultsVisible": "miembros visibles",
"editHint": "Un clic en una fila abre el editor.",
"editorCreateHint": "Crear un nuevo miembro e introducir directamente sus datos de contacto.",
"editorEditHint": "Editar los datos de {name}.",
"editorAssignTrainingGroupHint": "Asigna al menos un grupo de entrenamiento.",
"editorRecommendedEntry": "Entrada recomendada",
"transferSuccessTitle": "Transferencia correcta",
"transferErrorTitle": "Error de transferencia",
"clickTtRequestPending": "Solicitud Click-TT en curso",
"clickTtRequestAction": "Solicitar autorización Click-TT",
"clickTtRequestTitle": "Iniciar solicitud Click-TT",
"clickTtRequestConfirm": "¿Deseas iniciar la solicitud Click-TT automatizada para {name}?",
"clickTtRequestHint": "La solicitud se procesa automáticamente mediante el flujo Click-TT del backend.",
"clickTtRequestSuccess": "Inicia sesión en click-tt y envía allí la solicitud.",
"clickTtRequestError": "No se pudo enviar la solicitud Click-TT.",
"clickTtRequestFailedLog": "Falló la solicitud Click-TT",
"deleteImageTitle": "Eliminar imagen",
"deleteImageConfirm": "¿Deseas eliminar realmente esta imagen?",
"parentFallback": "Tutor",
"loadingMembers": "Cargando miembros...",
"errorLoadingMembers": "No se pudo cargar la lista de miembros.",
"scopeNotTraining": "Ya no entrena",
"notInTrainingTooltip": "Sin participación desde hace {weeks} semanas de entrenamiento",
"status": "Estado",
"contact": "Contacto",
"noPhoneShort": "Sin teléfono",
"noEmailShort": "Sin correo",
"noAddressShort": "Sin dirección",
"clickTtSubmitted": "Click-TT enviado",
"markRegular": "Marcar como regular",
"markFormReceived": "Marcar formulario como verificado",
"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."
"clickTtRequestPendingShort": "En curso...",
"memberDetails": "Detalles del miembro",
"previewLastTraining": "Último entrenamiento",
"previewNoLastTraining": "Aún sin participación",
"phoneListForSelection": "Lista telefónica de la selección",
"markFormsForSelection": "Verificar formularios de la selección",
"markRegularForSelection": "Marcar selección como regular",
"phoneListSelectionFile": "lista-telefonica-seleccion.pdf",
"batchFormsMarkedSuccess": "Se marcaron {count} formulario(s) como verificados.",
"batchFormsMarkedEmpty": "No hay formularios sin verificar en la selección actual.",
"batchMarkedRegularSuccess": "Se marcaron {count} miembro(s) de prueba como regulares.",
"batchMarkedRegularEmpty": "No hay miembros de prueba en la selección actual.",
"batchPartialFailure": "{success} correctos, {failed} fallidos.",
"sortBy": "Ordenar por",
"sortLastName": "Apellido",
"sortFirstName": "Nombre",
"sortBirthday": "Fecha de nacimiento",
"sortAge": "Edad",
"ageRange": "Edad de - a",
"ageFromPlaceholder": "de",
"ageToPlaceholder": "a",
"age": "Edad",
"dataQuality": "Calidad de los datos",
"dataQualityComplete": "Datos completos",
"dataIssueBirthdate": "Falta la fecha de nacimiento",
"dataIssuePhone": "Falta el teléfono",
"dataIssueEmail": "Falta el correo",
"dataIssueAddress": "Falta la dirección",
"dataIssueGender": "Sexo no definido",
"dataIssueTrainingGroup": "Falta el grupo de entrenamiento",
"openTasks": "Tareas abiertas",
"noOpenTasks": "No hay tareas abiertas",
"taskVerifyForm": "Verificar formulario",
"taskReviewTrialStatus": "Revisar estado de prueba",
"taskCheckTrainingStatus": "Revisar estado de entrenamiento",
"taskCheckDataQuality": "Revisar calidad de datos",
"taskAssignTrainingGroup": "Asignar grupo de entrenamiento",
"taskCheckClickTt": "Revisar autorización Click-TT",
"taskActionVerify": "Verificar",
"taskActionMarkRegular": "Marcar regular",
"taskActionReview": "Abrir",
"taskActionRequest": "Solicitar",
"toggleSortDirection": "Cambiar dirección de ordenación",
"showTtrHistory": "Mostrar historial TTR",
"missingTtrHistoryId": "No hay ID de myTischtennis almacenado",
"sortLastTraining": "Último entrenamiento",
"sortOpenTasks": "Tareas abiertas",
"exportPreview": "Vista previa de exportación",
"exportMembersSelected": "miembros seleccionados actualmente",
"exportPhones": "Teléfono",
"exportReachableByPhone": "con número de teléfono",
"exportEmails": "Correo",
"exportReachableByEmail": "con dirección de correo",
"exportPreviewNames": "Vista previa",
"exportPreviewEmpty": "No hay miembros en la selección actual",
"exportCsv": "Exportar CSV",
"exportCsvFile": "seleccion-miembros.csv",
"copyPhones": "Copiar teléfonos",
"copyEmails": "Copiar correos",
"copyPhonesSuccess": "La lista telefónica se copió al portapapeles.",
"copyPhonesEmpty": "No hay números de teléfono en la selección actual.",
"copyEmailsSuccess": "La lista de correo se copió al portapapeles.",
"copyEmailsEmpty": "No hay direcciones de correo en la selección actual.",
"composeEmail": "Preparar correo",
"copyContactSummary": "Copiar resumen de contactos",
"copyContactSummarySuccess": "Resumen de contactos copiado al portapapeles."
},
"diary": {
"title": "Diario de entrenamiento",
"date": "Fecha",
"noEntries": "No hay entradas",
"deleteDate": "Eliminar fecha",
"createNew": "Crear",
"gallery": "Galería de miembros",
"galleryCreating": "Creando galería…",
"selectTrainingGroup": "Seleccionar grupo de entrenamiento",
"selectTrainingGroupPlaceholder": "Selecciona...",
"suggestion": "Sugerencia",
"nextAppointment": "Próxima cita",
"applySuggestion": "Aplicar sugerencia",
"skipSuggestion": "Continuar sin sugerencia",
"createNewDate": "Crear nueva fecha",
"activeTrainingDay": "Día de entrenamiento activo",
"trainingDaySection": "Día de entrenamiento",
"trainingDayChecklist": "Lista de control final",
"trainingStart": "Inicio del entrenamiento",
"trainingEnd": "Fin del entrenamiento",
"trainingWindow": "Franja de entrenamiento",
"trainingWindowUnset": "Aún no definido",
"groupsLabel": "Grupos",
"groupsSection": "Grupos",
"createDate": "Crear fecha",
"editTrainingTimes": "Editar horarios de entrenamiento",
"updateTimes": "Actualizar horarios",
"groupManagement": "Gestión de grupos",
"createGroups": "Crear grupos",
"trainingPlan": "Plan de entrenamiento",
"planActivitiesCount": "Actividades planificadas",
"timeblocksCount": "Bloques horarios",
"planEmptyState": "Todavía no hay nada registrado en el plan de entrenamiento.",
"planAddHint": "Añade nuevos elementos del plan con las acciones superiores.",
"startTime": "Hora de inicio",
"group": "Grupo...",
"timeblock": "Bloque horario",
"assignParticipants": "Asignar participantes",
"addTimeblock": "Bloque horario",
"activities": "Actividades",
"freeActivities": "Actividades libres",
"noFreeActivitiesYet": "Todavía no se han registrado actividades libres.",
"addActivity": "Añadir actividad",
"bookAccident": "Registrar accidente",
"activity": "Actividad",
"duration": "Duración",
"activityImage": "Imagen de actividad",
"activityDrawing": "Dibujo de actividad",
"today": "Hoy",
"existingGroups": "Grupos existentes",
"leader": "Responsable",
"deleteGroup": "Eliminar grupo",
"numberOfGroups": "Número de grupos",
"addGroup": "Añadir grupo",
"activityOrTimeblock": "Actividad / bloque horario",
"durationMinutes": "Duración (min)",
"addGroupActivity": "Añadir actividad de grupo",
"addGroupButton": "+ Grupo",
"all": "Todos",
"selectGroup": "Seleccionar grupo...",
"activityPlaceholder": "Actividad",
"assignShort": "Asignar",
"statusReadyShort": "Listo",
"statusOpenShort": "Abierto",
"openPlanItemsLabel": "Estado del plan",
"openPlanItems": "{count} abiertos",
"unassignedPlanItems": "{count} abiertos",
"durationExampleLong": "p. ej. 2x7 o 3*5",
"durationExampleShort": "p. ej. 2x7",
"showImage": "Mostrar imagen/dibujo",
"participants": "Participantes",
"searchParticipants": "Buscar participantes",
"filterAll": "Todos",
"filterPresent": "Presente",
"filterAbsent": "Ausente",
"filterTest": "Prueba",
"quickAdd": "+ Añadir rápido",
"selectTags": "Seleccionar etiquetas",
"createDrawing": "Crear dibujo de ejercicio",
"overallActivity": "Actividad global",
"editActivity": "Editar actividad",
"editGroupActivity": "Editar actividad de grupo",
"assignParticipantsForGroupActivity": "Asignar participantes a la actividad de grupo",
"delete": "Eliminar",
"min": "min",
"errorLoadingPredefinedActivities": "Error al cargar las actividades predefinidas",
"selectParticipantAndNote": "Selecciona un participante e introduce una nota.",
"selectGroupAndActivity": "Selecciona un grupo e introduce una actividad.",
"dateCannotBeDeleted": "La fecha no se puede eliminar",
"dateCannotBeDeletedDetails": "Todavía hay contenido (plan, participantes, actividades, accidentes o notas).",
"confirmDelete": "Confirmar eliminación",
"confirmDeleteDate": "¿Deseas eliminar realmente esta fecha?",
"confirmDeleteDateDetails": "También se eliminarán todos los datos asociados.",
"noParticipants": "No hay participantes disponibles para este día de entrenamiento.",
"mustCreateAtLeastTwoGroups": "La primera vez deben crearse al menos 2 grupos.",
"oneGroupAdded": "Se añadió 1 grupo correctamente.",
"groupsCreated": "Se crearon {count} grupos correctamente.",
"errorCreatingGroups": "Error al crear grupos",
"confirmDeleteGroup": "¿Deseas eliminar realmente el grupo \"{name}\"?",
"groupDeletedSuccessfully": "El grupo se eliminó correctamente.",
"errorDeletingGroup": "Error al eliminar el grupo",
"errorCreatingActivity": "Error al crear la actividad",
"trainingPlanAsPDF": "Plan de entrenamiento en PDF",
"trainingPlanPdfShort": "Planificación en PDF",
"trainingDayAsPDF": "Descargar día de entrenamiento como PDF",
"trainingDayAsPDFShort": "Día de entrenamiento en PDF",
"trainingDaySummaryPdfShort": "Resumen de participantes en PDF",
"minutes": "Minutos",
"formHandedOver": "Formulario de afiliación entregado",
"errorOccurred": "Se ha producido un error. Inténtalo de nuevo.",
"trainingTimesUpdated": "Los horarios de entrenamiento se actualizaron correctamente.",
"noActiveTrainingDay": "No se ha seleccionado ningún día de entrenamiento.",
"statusEmpty": "Este día de entrenamiento aún está vacío.",
"statusInProgress": "Este día de entrenamiento está preparado parcialmente.",
"formMarkedAsHandedOver": "Formulario de afiliación marcado como entregado",
"errorMarkingForm": "Error al marcar el formulario",
"dateNoLongerCurrent": "La fecha seleccionada ya no era actual. Inténtalo de nuevo.",
"activityRequired": "Introduce una actividad.",
"activityNotFound": "Actividad no encontrada. Selecciona una de la lista.",
"standardActivities": "Actividades estándar",
"standardDurationShort": "min",
"standardActivityAddError": "No se pudo añadir la actividad estándar.",
"statusReady": "Los horarios y el plan de entrenamiento están definidos.",
"filterExcused": "Justificado",
"participantStatusNone": "Sin estado",
"participantStatusExcused": "Justificado",
"participantStatusCancelled": "Cancelado"
},
"trainingStats": {
"title": "Estadísticas de entrenamiento",
"activeMembers": "Miembros activos",
"averageParticipationCurrentMonth": "Participación media (mes actual)",
"averageParticipationLastMonth": "Participación media (mes anterior)",
"averageParticipationQuarter": "Participación media (trimestre)",
"averageParticipationHalfYear": "Participación media (semestre)",
"averageParticipationYear": "Participación media (año)",
"trainingDays": "Días de entrenamiento (últimos 12 meses)",
"memberParticipations": "Participaciones de los miembros",
"date": "Fecha",
"weekday": "Día de la semana",
"participants": "Participantes",
"name": "Nombre",
"ttr": "TTR",
"qttr": "QTTR",
"birthdate": "Fecha de nacimiento",
"participations12Months": "Participaciones (12 meses)",
"participations3Months": "Participaciones (3 meses)",
"participationsTotal": "Participaciones (total)",
"lastTraining": "Último entrenamiento",
"actions": "Acciones",
"showDetails": "Mostrar detalles"
},
"courtDrawingTool": {
"title": "Dibujo de ejercicio de tenis de mesa",
"configureExercise": "Configurar ejercicio",
"stepStartPosition": "1. Posición inicial",
"stepStartPositionHint": "¿Desde qué posición de saque comienza el ejercicio?",
"stepFirstStroke": "2. Primer golpe",
"stepFirstStrokeHint": "Define el lado y el efecto de la primera pelota.",
"stepTarget": "3. Objetivo",
"stepTargetHint": "Selecciona la zona objetivo del primer golpe.",
"stepAdditionalStrokes": "4. Golpes siguientes",
"stepAdditionalStrokesHint": "Opcionalmente añade más pelotas como secuencia.",
"noAdditionalStrokes": "Todavía no se han añadido golpes siguientes.",
"service": "Saque:",
"serviceTitle": "Saque",
"forehand": "Derecha",
"backhand": "Revés",
"spin": "Efecto:",
"underspin": "Cortado",
"topspin": "Topspin",
"sidespin": "Efecto lateral",
"sideUnderspin": "Lateral cortado",
"counterSpin": "Contraefecto",
"targetPosition": "Posición objetivo:",
"targetPositionLabel": "Posición objetivo",
"strokeSide": "Lado",
"strokeTypeLabel": "Tipo de golpe",
"addStroke": "Añadir golpe",
"preview": "Vista previa",
"previewHint": "El gráfico aparece en cuanto el primer golpe está completamente configurado.",
"completeFirstStroke": "Completar el primer golpe",
"completeFirstStrokeHint": "Elige posición inicial, lado, efecto y objetivo. Después aparecerá el gráfico.",
"codeLabel": "Código",
"titleLabel": "Título",
"startLeft": "izquierda",
"startMiddle": "centro",
"startRight": "derecha",
"strokeTypePush": "Corto",
"strokeTypeCounter": "Contragolpe",
"strokeTypeTopspin": "Topspin",
"strokeTypeFlip": "Flip",
"strokeTypeBlock": "Bloqueo",
"strokeTypeSmash": "Remate",
"strokeTypeChopDefense": "Defensa cortada",
"strokeTypeLobDefense": "Defensa alta",
"targetForehandLong": "Derecha larga",
"targetMiddleLong": "Centro largo",
"targetBackhandLong": "Revés largo",
"targetForehandHalfLong": "Derecha media-larga",
"targetMiddleHalfLong": "Centro media-larga",
"targetBackhandHalfLong": "Revés media-larga",
"targetForehandShort": "Derecha corta",
"targetMiddleShort": "Centro corto",
"targetBackhandShort": "Revés corto",
"toTarget": "a"
}
}

View File

@@ -22,32 +22,69 @@
"next": "Susunod",
"previous": "Nakaraan",
"submit": "Ipasa",
"reset": "I-reset"
"reset": "I-reset",
"all": "Lahat",
"today": "Ngayon",
"time": "Oras",
"new": "Bago",
"update": "I-update",
"create": "Lumikha",
"remove": "Alisin",
"select": "Pumili",
"download": "I-download",
"choose": "Pumili",
"apply": "Ilapat",
"clear": "Burahin",
"details": "Mga detalye",
"view": "Tingnan",
"name": "Pangalan",
"date": "Petsa",
"status": "Katayuan",
"type": "Uri",
"description": "Paglalarawan",
"active": "Aktibo",
"inactive": "Hindi aktibo",
"enabled": "Pinagana",
"disabled": "Hindi pinagana",
"required": "Kinakailangan",
"optional": "Opsyonal",
"in": "sa",
"min": "Min",
"minutes": "Minuto",
"hours": "Oras",
"days": "Araw",
"weeks": "Linggo",
"months": "Buwan",
"years": "Taon",
"ok": "OK"
},
"navigation": {
"home": "Home",
"members": "Mga miyembro",
"diary": "Talaarawan",
"approvals": "Mga pag-apruba",
"statistics": "Mga istatistika ng pagsasanay",
"statistics": "Istatistika ng pagsasanay",
"tournaments": "Mga paligsahan",
"clubTournaments": "Mga paligsahan ng club",
"tournamentParticipations": "Mga paglahok sa paligsahan",
"schedule": "Mga iskedyul",
"clubSettings": "Mga setting ng club",
"predefinedActivities": "Mga paunang natukoy na aktibidad",
"teamManagement": "Pamamahala ng koponan",
"teamManagement": "Pamamahala ng team",
"permissions": "Mga pahintulot",
"logs": "Mga system log",
"memberTransfer": "Paglipat ng miyembro",
"myTischtennisAccount": "myTischtennis Account",
"clickTtAccount": "HTTV / click-TT Account",
"clickTtBrowser": "HTTV / click-TT",
"personalSettings": "Mga personal na setting",
"logout": "Mag-logout",
"login": "Mag-login",
"register": "Magrehistro",
"dailyBusiness": "Araw-araw na negosyo",
"competitions": "Mga kompetisyon",
"settings": "Mga setting"
"settings": "Mga setting",
"backToHome": "Bumalik sa home"
},
"club": {
"select": "Pumili ng club",
@@ -56,7 +93,20 @@
"load": "I-load",
"name": "Pangalan ng club",
"create": "Gumawa ng club",
"accessRequestPending": "Access to this club has been requested. Please be patient."
"createTitle": "Gumawa ng club",
"members": "Mga miyembro",
"trainingDiary": "Talaarawan ng pagsasanay",
"noAccess": "Wala ka pang pahintulot na ma-access ang club na ito.",
"requestAccess": "Humiling ng access",
"openRequests": "Mga nakabinbing hiling sa access",
"title": "Klub",
"openAccessRequests": "Mga nakabinbing hiling sa access",
"diary": "Talaarawan ng pagsasanay",
"accessDenied": "Hindi pinapayagan ang access sa club na ito.",
"errorLoadingRequests": "Error sa pag-load ng mga nakabinbing hiling",
"accessRequested": "Naipadala na ang hiling sa access.",
"accessRequestPending": "Humiling ka na ng access sa club na ito. Maghintay lamang.",
"accessRequestFailed": "Hindi naipadala ang hiling sa access."
},
"auth": {
"login": "Mag-login",
@@ -331,6 +381,106 @@
"stageFlowQualifiedPreviewEntry": "G{group} · Place {position} · {name}"
},
"members": {
"title": "Mga kasapi",
"memberInfo": "Impormasyon ng kasapi",
"activeMembers": "Mga aktibong kasapi",
"testMembers": "Mga kasaping pansubok",
"inactiveMembers": "Mga hindi aktibong kasapi",
"generatePhoneList": "Gumawa ng listahan ng telepono",
"onlyActiveMembers": "Tanging mga aktibong miyembro lamang ang ilalabas",
"updateRatings": "I-update ang TTR/QTTR mula sa myTischtennis",
"updating": "Nag-a-update...",
"transferMembers": "Ilipat ang mga miyembro",
"newMember": "Bagong kasapi",
"editMember": "I-edit ang kasapi",
"createNewMember": "Lumikha ng bagong kasapi",
"firstName": "Pangalan",
"lastName": "Apelyido",
"street": "Kalye",
"postalCode": "Postal code",
"city": "Lungsod",
"birthdate": "Petsa ng kapanganakan",
"phones": "Mga numero ng telepono",
"emails": "Mga email address",
"addPhone": "Magdagdag ng numero ng telepono",
"addEmail": "Magdagdag ng email address",
"phoneNumber": "Numero ng telepono",
"emailAddress": "Email address",
"parent": "Magulang",
"parentName": "Pangalan (hal. ina, ama)",
"primary": "Pangunahin",
"gender": "Kasarian",
"genderUnknown": "Hindi alam",
"genderMale": "Lalaki",
"genderFemale": "Babae",
"genderDiverse": "Iba pa",
"picsInInternetAllowed": "Pinapayagan ang larawan sa internet",
"testMembership": "Trial membership",
"memberFormHandedOver": "Naibigay na ang pormularyo ng kasapi",
"trainingGroups": "Mga grupo ng pagsasanay",
"noGroupsAssigned": "Walang grupong nakatalaga",
"noGroupsAvailable": "Walang available na grupo",
"addGroup": "Magdagdag ng grupo...",
"remove": "Alisin",
"image": "Larawan",
"selectFile": "Pumili ng file",
"camera": "Camera",
"imagePreview": "Preview ng larawan ng miyembro",
"change": "Baguhin",
"create": "Lumikha",
"clearFields": "Burahin ang mga field",
"showInactiveMembers": "Ipakita ang mga hindi aktibong miyembro",
"ageGroup": "Pangkat ng edad",
"adults": "Adulto (20+)",
"j19": "J19 (19 pababa)",
"j17": "J17 (17 pababa)",
"j15": "J15 (15 pababa)",
"j13": "J13 (13 pababa)",
"j11": "J11 (11 pababa)",
"clearFilters": "I-reset ang mga filter",
"imageInternet": "Larawan (net?)",
"testMember": "Trial",
"name": "Apelyido, Pangalan",
"ttrQttr": "TTR / QTTR",
"address": "Address",
"active": "Aktibo",
"actions": "Mga aksyon",
"phoneNumberShort": "Telepono",
"emailAddressShort": "Email",
"trainingParticipations": "Paglahok sa pagsasanay",
"memberImage": "Larawan ng kasapi",
"inactive": "hindi aktibo",
"sixOrMoreParticipations": "6 o higit pang paglahok sa pagsasanay",
"threeOrMoreParticipations": "3 o higit pang paglahok sa pagsasanay",
"noTestMembership": "Hindi na trial member",
"formHandedOver": "Naibigay na ang pormularyo ng kasapi",
"deactivateMember": "I-deactivate ang kasapi",
"notes": "Mga tala",
"exercises": "Mga ehersisyo",
"memberImages": "Mga larawan ng miyembro",
"testMembershipRemoved": "Inalis na ang trial membership.",
"errorRemovingTestMembership": "Error sa pag-alis ng trial membership.",
"formMarkedAsHandedOver": "Namarkahan bilang naibigay na ang pormularyo ng kasapi.",
"errorMarkingForm": "Error sa pagmamarka ng form.",
"deactivateMemberTitle": "I-deactivate ang kasapi",
"deactivateMemberConfirm": "Sigurado ka bang ide-deactivate si \"{name}\"?",
"memberDeactivated": "Na-deactivate na ang kasapi",
"errorDeactivatingMember": "Error sa pag-deactivate ng miyembro",
"errorSavingMember": "Error sa pag-save ng miyembro",
"errorAddingToGroup": "Error sa pagdagdag sa grupo",
"errorRemovingFromGroup": "Error sa pag-alis mula sa grupo",
"imageUpdated": "Na-update na ang larawan",
"errorRotatingImage": "Error sa pag-ikot ng larawan",
"imageDeleted": "Nabura na ang larawan.",
"errorDeletingImage": "Hindi mabura ang larawan",
"primaryImageUpdated": "Na-update na ang pangunahing larawan.",
"errorSettingPrimaryImage": "Hindi maitakda ang pangunahing larawan",
"errorUploadingImage": "Hindi ma-upload ang larawan",
"errorLoadingImage": "Error sa pag-load ng larawan",
"phoneList": "ListahanNgTelepono.pdf",
"errorLoadingTrainingParticipations": "Error sa pag-load ng paglahok sa pagsasanay",
"errorUpdatingRatings": "Error sa pag-update ng mga TTR/QTTR value",
"errorTransfer": "Error sa paglipat",
"subtitle": "Search, filter and edit members directly.",
"closeEditor": "Close editor",
"visibleMembers": "Visible members",
@@ -341,11 +491,17 @@
"scopeActive": "Active",
"scopeTest": "Trial",
"scopeNeedsForm": "Form unverified",
"scopeActiveDataIncomplete": "Aktibo + hindi kumpleto ang datos",
"scopeDataIncomplete": "Hindi kumpleto ang datos",
"scopeInactive": "Inactive",
"searchAndFilter": "Paghahanap at mga filter",
"bulkActions": "Mga bulk action",
"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}.",
"editorAssignTrainingGroupHint": "Mangyaring magtalaga ng kahit isang grupo ng pagsasanay.",
"editorRecommendedEntry": "Inirerekomendang entry",
"transferSuccessTitle": "Transfer successful",
"transferErrorTitle": "Transfer error",
"clickTtRequestPending": "Click-TT request in progress",
@@ -363,7 +519,7 @@
"errorLoadingMembers": "Failed to load the member list.",
"scopeNotTraining": "No longer training",
"notInTrainingTooltip": "No participation for {weeks} training weeks",
"status": "Status",
"status": "Katayuan",
"contact": "Contact",
"noPhoneShort": "No phone",
"noEmailShort": "No email",
@@ -390,17 +546,33 @@
"sortFirstName": "First name",
"sortBirthday": "Birthday",
"sortAge": "Age",
"ageRange": "Edad mula - hanggang",
"ageFromPlaceholder": "mula",
"ageToPlaceholder": "hanggang",
"age": "Age",
"dataQuality": "Kalidad ng datos",
"dataQualityComplete": "Kumpleto ang datos",
"dataIssueBirthdate": "Kulang ang petsa ng kapanganakan",
"dataIssuePhone": "Kulang ang telepono",
"dataIssueEmail": "Kulang ang email",
"dataIssueAddress": "Kulang ang address",
"dataIssueGender": "Hindi malinaw ang kasarian",
"dataIssueTrainingGroup": "Kulang ang grupo ng pagsasanay",
"openTasks": "Open tasks",
"noOpenTasks": "No open tasks",
"taskVerifyForm": "Verify form",
"taskReviewTrialStatus": "Review trial status",
"taskCheckTrainingStatus": "Review training status",
"taskCheckDataQuality": "Suriin ang kalidad ng datos",
"taskAssignTrainingGroup": "Magtalaga ng grupo ng pagsasanay",
"taskCheckClickTt": "Review Click-TT eligibility",
"taskActionVerify": "Verify",
"taskActionMarkRegular": "Mark regular",
"taskActionReview": "Buksan",
"taskActionRequest": "Request",
"toggleSortDirection": "Toggle sort direction",
"showTtrHistory": "Ipakita ang TTR history",
"missingTtrHistoryId": "Walang naka-save na myTischtennis ID",
"sortLastTraining": "Last training",
"sortOpenTasks": "Open tasks",
"exportPreview": "Export preview",
@@ -422,5 +594,212 @@
"composeEmail": "Compose email",
"copyContactSummary": "Copy contact summary",
"copyContactSummarySuccess": "Contact summary copied to clipboard."
},
"diary": {
"title": "Talaarawan ng pagsasanay",
"date": "Petsa",
"noEntries": "Walang entry",
"deleteDate": "Burahin ang petsa",
"createNew": "Lumikha ng bago",
"gallery": "Gallery ng mga kasapi",
"galleryCreating": "Ginagawa ang gallery…",
"selectTrainingGroup": "Pumili ng grupo ng pagsasanay",
"selectTrainingGroupPlaceholder": "Mangyaring pumili...",
"suggestion": "Mungkahi",
"nextAppointment": "Susunod na schedule",
"applySuggestion": "Ilapat ang mungkahi",
"skipSuggestion": "Magpatuloy nang walang mungkahi",
"createNewDate": "Lumikha ng bagong petsa",
"activeTrainingDay": "Aktibong araw ng pagsasanay",
"trainingDaySection": "Araw ng pagsasanay",
"trainingDayChecklist": "Checklist ng pagkumpleto",
"trainingStart": "Simula ng pagsasanay",
"trainingEnd": "Pagtatapos ng pagsasanay",
"trainingWindow": "Oras ng pagsasanay",
"trainingWindowUnset": "Hindi pa naitakda",
"groupsLabel": "Mga grupo",
"groupsSection": "Mga grupo",
"createDate": "Lumikha ng petsa",
"editTrainingTimes": "I-edit ang oras ng pagsasanay",
"updateTimes": "I-update ang oras",
"groupManagement": "Pamamahala ng grupo",
"createGroups": "Lumikha ng mga grupo",
"trainingPlan": "Plano ng pagsasanay",
"planActivitiesCount": "Mga aktibidad sa plano",
"timeblocksCount": "Mga time block",
"planEmptyState": "Wala pang nakalagay sa plano ng pagsasanay.",
"planAddHint": "Magdagdag ng bagong item sa plano gamit ang mga aksyon sa itaas.",
"startTime": "Oras ng simula",
"group": "Grupo...",
"timeblock": "Time block",
"assignParticipants": "Magtalaga ng mga kalahok",
"addTimeblock": "Time block",
"activities": "Mga aktibidad",
"freeActivities": "Libreng aktibidad",
"noFreeActivitiesYet": "Wala pang naitalang libreng aktibidad.",
"addActivity": "Magdagdag ng aktibidad",
"bookAccident": "Magtala ng aksidente",
"activity": "Aktibidad",
"duration": "Tagal",
"activityImage": "Larawan ng aktibidad",
"activityDrawing": "Guhit ng aktibidad",
"today": "Ngayon",
"existingGroups": "Mga kasalukuyang grupo",
"leader": "Tagapanguna",
"deleteGroup": "Burahin ang grupo",
"numberOfGroups": "Bilang ng grupo",
"addGroup": "Magdagdag ng grupo",
"activityOrTimeblock": "Aktibidad / time block",
"durationMinutes": "Tagal (min)",
"standardActivities": "Mga karaniwang aktibidad",
"standardDurationShort": "min",
"standardActivityAddError": "Hindi maidagdag ang karaniwang aktibidad.",
"addGroupActivity": "Magdagdag ng aktibidad ng grupo",
"addGroupButton": "+ Grupo",
"all": "Lahat",
"selectGroup": "Pumili ng grupo...",
"activityPlaceholder": "Aktibidad",
"assignShort": "Italaga",
"statusReadyShort": "Handa",
"statusOpenShort": "Bukas",
"openPlanItemsLabel": "Katayuan ng plano",
"openPlanItems": "{count} bukas",
"unassignedPlanItems": "{count} hindi nakatalaga",
"durationExampleLong": "hal. 2x7 o 3*5",
"durationExampleShort": "hal. 2x7",
"showImage": "Ipakita ang larawan/guhit",
"participants": "Mga kalahok",
"searchParticipants": "Maghanap ng kalahok",
"filterAll": "Lahat",
"filterPresent": "Dumalo",
"filterAbsent": "Liban",
"filterExcused": "May paalam",
"filterTest": "Trial",
"participantStatusNone": "Walang katayuan",
"participantStatusExcused": "May paalam",
"participantStatusCancelled": "Kinansela",
"quickAdd": "+ Quick add",
"selectTags": "Pumili ng mga tag",
"createDrawing": "Gumawa ng guhit ng ehersisyo",
"overallActivity": "Kabuuang aktibidad",
"editActivity": "I-edit ang aktibidad",
"editGroupActivity": "I-edit ang aktibidad ng grupo",
"assignParticipantsForGroupActivity": "Magtalaga ng mga kalahok para sa aktibidad ng grupo",
"delete": "Burahin",
"min": "Min",
"errorLoadingPredefinedActivities": "Error sa pag-load ng paunang natukoy na mga aktibidad",
"selectParticipantAndNote": "Mangyaring pumili ng kalahok at maglagay ng tala.",
"selectGroupAndActivity": "Mangyaring pumili ng grupo at maglagay ng aktibidad.",
"dateCannotBeDeleted": "Hindi mabubura ang petsa",
"dateCannotBeDeletedDetails": "May laman pa (plano ng pagsasanay, mga kalahok, aktibidad, aksidente o mga tala).",
"confirmDelete": "Kumpirmahin ang pagbura",
"confirmDeleteDate": "Sigurado ka bang buburahin ang petsang ito?",
"confirmDeleteDateDetails": "Mabubura rin ang lahat ng kaugnay na datos.",
"noParticipants": "Walang kalahok para sa araw ng pagsasanay na ito.",
"mustCreateAtLeastTwoGroups": "Sa unang paggawa, kailangan ng hindi bababa sa 2 grupo!",
"oneGroupAdded": "Matagumpay na naidagdag ang 1 grupo!",
"groupsCreated": "Matagumpay na nalikha ang {count} grupo!",
"errorCreatingGroups": "Error sa paggawa ng mga grupo",
"confirmDeleteGroup": "Sigurado ka bang buburahin ang grupong \"{name}\"?",
"groupDeletedSuccessfully": "Matagumpay na nabura ang grupo!",
"errorDeletingGroup": "Error sa pagbura ng grupo",
"errorCreatingActivity": "Error sa paggawa ng aktibidad",
"trainingPlanAsPDF": "Plano ng pagsasanay bilang PDF",
"trainingPlanPdfShort": "Flow plan bilang PDF",
"trainingDayAsPDF": "I-download ang araw ng pagsasanay bilang PDF",
"trainingDayAsPDFShort": "Araw ng pagsasanay PDF",
"trainingDaySummaryPdfShort": "Buod ng kalahok bilang PDF",
"minutes": "Minuto",
"formHandedOver": "Naibigay na ang pormularyo ng kasapi",
"errorOccurred": "May naganap na error. Pakisubukang muli.",
"trainingTimesUpdated": "Matagumpay na na-update ang oras ng pagsasanay.",
"noActiveTrainingDay": "Walang napiling araw ng pagsasanay.",
"statusReady": "Naayos na ang oras at plano ng pagsasanay.",
"statusEmpty": "Wala pang laman ang araw ng pagsasanay na ito.",
"statusInProgress": "Bahagyang naihanda ang araw ng pagsasanay na ito.",
"formMarkedAsHandedOver": "Namarkahan bilang naibigay na ang pormularyo ng kasapi",
"errorMarkingForm": "Error sa pagmamarka ng pormularyo ng kasapi",
"dateNoLongerCurrent": "Hindi na kasalukuyan ang napiling petsa. Pakisubukan muli.",
"activityRequired": "Mangyaring maglagay ng aktibidad.",
"activityNotFound": "Hindi nahanap ang aktibidad. Mangyaring pumili mula sa listahan."
},
"trainingStats": {
"title": "Mga istatistika ng pagsasanay",
"activeMembers": "Mga aktibong miyembro",
"averageParticipationCurrentMonth": "Karaniwang paglahok (kasalukuyang buwan)",
"averageParticipationLastMonth": "Karaniwang paglahok (nakaraang buwan)",
"averageParticipationQuarter": "Karaniwang paglahok (quarter)",
"averageParticipationHalfYear": "Karaniwang paglahok (kalahating taon)",
"averageParticipationYear": "Karaniwang paglahok (taon)",
"trainingDays": "Mga araw ng pagsasanay (huling 12 buwan)",
"memberParticipations": "Paglahok ng miyembro",
"date": "Petsa",
"weekday": "Araw ng linggo",
"participants": "Mga kalahok",
"name": "Pangalan",
"ttr": "TTR",
"qttr": "QTTR",
"birthdate": "Petsa ng kapanganakan",
"participations12Months": "Paglahok (12 buwan)",
"participations3Months": "Paglahok (3 buwan)",
"participationsTotal": "Paglahok (kabuuan)",
"lastTraining": "Huling pagsasanay",
"actions": "Mga aksyon",
"showDetails": "Ipakita ang mga detalye"
},
"courtDrawingTool": {
"title": "Guhit ng ehersisyo sa table tennis",
"configureExercise": "I-configure ang ehersisyo",
"stepStartPosition": "1. Panimulang posisyon",
"stepStartPositionHint": "Saang posisyon ng serve magsisimula ang ehersisyo?",
"stepFirstStroke": "2. Unang palo",
"stepFirstStrokeHint": "Itakda ang side at spin para sa unang bola.",
"stepTarget": "3. Target",
"stepTargetHint": "Pumili ng target zone para sa unang palo.",
"stepAdditionalStrokes": "4. Mga kasunod na palo",
"stepAdditionalStrokesHint": "Opsyonal na magdagdag pa ng mga bola bilang listahan.",
"noAdditionalStrokes": "Wala pang mga kasunod na palo.",
"service": "Serve:",
"serviceTitle": "Serve",
"forehand": "Forehand",
"backhand": "Backhand",
"spin": "Spin:",
"underspin": "Underspin",
"topspin": "Topspin",
"sidespin": "Sidespin",
"sideUnderspin": "Side underspin",
"counterSpin": "Counter spin",
"targetPosition": "Posisyon ng target:",
"targetPositionLabel": "Posisyon ng target",
"strokeSide": "Side",
"strokeTypeLabel": "Uri ng palo",
"addStroke": "Magdagdag ng palo",
"preview": "Preview",
"previewHint": "Lilitaw ang graphic kapag kumpleto na ang unang palo.",
"completeFirstStroke": "Tapusin ang unang palo",
"completeFirstStrokeHint": "Piliin ang panimulang posisyon, side, spin at target. Pagkatapos ay lalabas ang graphic.",
"codeLabel": "Code",
"titleLabel": "Pamagat",
"startLeft": "kaliwa",
"startMiddle": "gitna",
"startRight": "kanan",
"strokeTypePush": "Push",
"strokeTypeCounter": "Counter",
"strokeTypeTopspin": "Topspin",
"strokeTypeFlip": "Flip",
"strokeTypeBlock": "Block",
"strokeTypeSmash": "Smash",
"strokeTypeChopDefense": "Chop defense",
"strokeTypeLobDefense": "Lob defense",
"targetForehandLong": "forehand long",
"targetMiddleLong": "middle long",
"targetBackhandLong": "backhand long",
"targetForehandHalfLong": "forehand half-long",
"targetMiddleHalfLong": "middle half-long",
"targetBackhandHalfLong": "backhand half-long",
"targetForehandShort": "forehand short",
"targetMiddleShort": "middle short",
"targetBackhandShort": "backhand short",
"toTarget": "papunta sa"
}
}

View File

@@ -21,8 +21,42 @@
"back": "Retour",
"next": "Suivant",
"previous": "Précédent",
"submit": "Soumettre",
"reset": "Réinitialiser"
"submit": "Valider",
"reset": "Réinitialiser",
"all": "Tous",
"today": "Aujourd'hui",
"time": "Heure",
"new": "Nouveau",
"update": "Mettre à jour",
"create": "Créer",
"remove": "Retirer",
"select": "Sélectionner",
"download": "Télécharger",
"choose": "Choisir",
"apply": "Appliquer",
"clear": "Effacer",
"details": "Détails",
"view": "Afficher",
"name": "Nom",
"date": "Date",
"status": "Statut",
"type": "Type",
"description": "Description",
"active": "Actif",
"inactive": "Inactif",
"enabled": "Activé",
"disabled": "Désactivé",
"required": "Obligatoire",
"optional": "Optionnel",
"in": "dans",
"min": "min",
"minutes": "minutes",
"hours": "heures",
"days": "jours",
"weeks": "semaines",
"months": "mois",
"years": "années",
"ok": "OK"
},
"navigation": {
"home": "Accueil",
@@ -39,15 +73,18 @@
"teamManagement": "Gestion d'équipe",
"permissions": "Autorisations",
"logs": "Journaux système",
"memberTransfer": "Transfert de membre",
"memberTransfer": "Transfert de membres",
"myTischtennisAccount": "Compte myTischtennis",
"clickTtAccount": "Compte HTTV / click-TT",
"clickTtBrowser": "HTTV / click-TT",
"personalSettings": "Paramètres personnels",
"logout": "Déconnexion",
"login": "Connexion",
"register": "S'inscrire",
"dailyBusiness": "Affaires quotidiennes",
"dailyBusiness": "Gestion quotidienne",
"competitions": "Compétitions",
"settings": "Paramètres"
"settings": "Paramètres",
"backToHome": "Retour à l'accueil"
},
"club": {
"select": "Sélectionner un club",
@@ -56,7 +93,20 @@
"load": "Charger",
"name": "Nom du club",
"create": "Créer un club",
"accessRequestPending": "Access to this club has been requested. Please be patient."
"createTitle": "Créer un club",
"members": "Membres",
"trainingDiary": "Journal d'entraînement",
"noAccess": "Vous n'avez pas encore accès à ce club.",
"requestAccess": "Demander l'accès",
"openRequests": "Demandes d'accès ouvertes",
"title": "Club",
"openAccessRequests": "Demandes d'accès ouvertes",
"diary": "Journal d'entraînement",
"accessDenied": "Accès au club refusé.",
"errorLoadingRequests": "Erreur lors du chargement des demandes ouvertes",
"accessRequested": "L'accès a été demandé.",
"accessRequestPending": "L'accès à ce club a été demandé. Veuillez patienter.",
"accessRequestFailed": "La demande d'accès n'a pas pu être envoyée."
},
"auth": {
"login": "Connexion",
@@ -331,96 +381,425 @@
"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?",
"title": "Membres",
"memberInfo": "Informations membre",
"activeMembers": "Membres actifs",
"testMembers": "Membres à l'essai",
"inactiveMembers": "Membres inactifs",
"generatePhoneList": "Générer la liste téléphonique",
"onlyActiveMembers": "Seuls les membres actifs sont inclus",
"updateRatings": "Mettre à jour TTR/QTTR depuis myTischtennis",
"updating": "Mise à jour...",
"transferMembers": "Transférer des membres",
"newMember": "Nouveau membre",
"editMember": "Modifier le membre",
"createNewMember": "Créer un nouveau membre",
"firstName": "Prénom",
"lastName": "Nom",
"street": "Rue",
"postalCode": "Code postal",
"city": "Ville",
"birthdate": "Date de naissance",
"phones": "Numéros de téléphone",
"emails": "Adresses e-mail",
"addPhone": "Ajouter un numéro",
"addEmail": "Ajouter une adresse e-mail",
"phoneNumber": "Numéro de téléphone",
"emailAddress": "Adresse e-mail",
"parent": "Parent",
"parentName": "Nom (p. ex. mère, père)",
"primary": "Principal",
"gender": "Sexe",
"genderUnknown": "Inconnu",
"genderMale": "Masculin",
"genderFemale": "Féminin",
"genderDiverse": "Divers",
"picsInInternetAllowed": "Photos autorisées en ligne",
"testMembership": "Adhésion d'essai",
"memberFormHandedOver": "Formulaire d'adhésion remis",
"trainingGroups": "Groupes d'entraînement",
"noGroupsAssigned": "Aucun groupe attribué",
"noGroupsAvailable": "Aucun groupe disponible",
"addGroup": "Ajouter un groupe...",
"remove": "Retirer",
"image": "Image",
"selectFile": "Choisir un fichier",
"camera": "Caméra",
"imagePreview": "Aperçu de l'image du membre",
"change": "Modifier",
"create": "Créer",
"clearFields": "Vider les champs",
"showInactiveMembers": "Afficher les membres inactifs",
"ageGroup": "Catégorie d'âge",
"adults": "Adultes (20+)",
"j19": "U19 (19 ans et moins)",
"j17": "U17 (17 ans et moins)",
"j15": "U15 (15 ans et moins)",
"j13": "U13 (13 ans et moins)",
"j11": "U11 (11 ans et moins)",
"clearFilters": "Réinitialiser les filtres",
"imageInternet": "Image (web ?)",
"testMember": "Essai",
"name": "Nom, prénom",
"ttrQttr": "TTR / QTTR",
"address": "Adresse",
"active": "Actif",
"actions": "Actions",
"phoneNumberShort": "Tél.",
"emailAddressShort": "E-mail",
"trainingParticipations": "Participations à l'entraînement",
"memberImage": "Photo du membre",
"inactive": "inactif",
"sixOrMoreParticipations": "6 participations ou plus à l'entraînement",
"threeOrMoreParticipations": "3 participations ou plus à l'entraînement",
"noTestMembership": "N'est plus membre à l'essai",
"formHandedOver": "Formulaire d'adhésion remis",
"deactivateMember": "Désactiver le membre",
"notes": "Notes",
"exercises": "Exercices",
"memberImages": "Images du membre",
"testMembershipRemoved": "L'adhésion d'essai a été supprimée.",
"errorRemovingTestMembership": "Erreur lors de la suppression de l'adhésion d'essai.",
"formMarkedAsHandedOver": "Le formulaire d'adhésion a été marqué comme remis.",
"errorMarkingForm": "Erreur lors du marquage du formulaire.",
"deactivateMemberTitle": "Désactiver le membre",
"deactivateMemberConfirm": "Voulez-vous vraiment désactiver \"{name}\" ?",
"memberDeactivated": "Membre désactivé",
"errorDeactivatingMember": "Erreur lors de la désactivation du membre",
"errorSavingMember": "Erreur lors de l'enregistrement du membre",
"errorAddingToGroup": "Erreur lors de l'ajout au groupe",
"errorRemovingFromGroup": "Erreur lors du retrait du groupe",
"imageUpdated": "Image mise à jour",
"errorRotatingImage": "Erreur lors de la rotation de l'image",
"imageDeleted": "L'image a été supprimée.",
"errorDeletingImage": "L'image n'a pas pu être supprimée",
"primaryImageUpdated": "Image principale mise à jour.",
"errorSettingPrimaryImage": "L'image principale n'a pas pu être définie",
"errorUploadingImage": "L'image n'a pas pu être téléversée",
"errorLoadingImage": "Erreur lors du chargement de l'image",
"phoneList": "liste-telephonique.pdf",
"errorLoadingTrainingParticipations": "Erreur lors du chargement des participations",
"errorUpdatingRatings": "Erreur lors de la mise à jour des valeurs TTR/QTTR",
"errorTransfer": "Erreur lors du transfert",
"subtitle": "Rechercher, filtrer et modifier les membres directement.",
"closeEditor": "Fermer l'éditeur",
"visibleMembers": "Membres visibles",
"search": "Rechercher",
"searchPlaceholder": "Rechercher par nom, ville, téléphone ou e-mail",
"memberScope": "Périmètre des membres",
"scopeAll": "Tous",
"scopeActive": "Actifs",
"scopeTest": "Essai",
"scopeNeedsForm": "Formulaire non vérifié",
"scopeDataIncomplete": "Données incomplètes",
"scopeInactive": "Inactifs",
"scopeActiveDataIncomplete": "Actif + données incomplètes",
"searchAndFilter": "Recherche et filtres",
"bulkActions": "Actions groupées",
"resultsVisible": "membres visibles",
"editHint": "Un clic sur une ligne ouvre léditeur.",
"editorCreateHint": "Créer un nouveau membre et saisir directement ses coordonnées.",
"editorEditHint": "Modifier les données de {name}.",
"editorAssignTrainingGroupHint": "Veuillez attribuer au moins un groupe d'entraînement.",
"editorRecommendedEntry": "Entrée recommandée",
"transferSuccessTitle": "Transfert réussi",
"transferErrorTitle": "Erreur de transfert",
"clickTtRequestPending": "Demande Click-TT en cours",
"clickTtRequestAction": "Demander l'autorisation Click-TT",
"clickTtRequestTitle": "Lancer une demande Click-TT",
"clickTtRequestConfirm": "Faut-il lancer la demande Click-TT automatisée pour {name} ?",
"clickTtRequestHint": "La demande est traitée automatiquement par le workflow Click-TT du backend.",
"clickTtRequestSuccess": "Veuillez encore vous connecter à click-tt et envoyer la demande.",
"clickTtRequestError": "La demande Click-TT n'a pas pu être envoyée.",
"clickTtRequestFailedLog": "Échec de la demande Click-TT",
"deleteImageTitle": "Supprimer l'image",
"deleteImageConfirm": "Voulez-vous vraiment supprimer cette 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",
"loadingMembers": "Chargement des membres...",
"errorLoadingMembers": "Échec du chargement de la liste des membres.",
"scopeNotTraining": "Ne s'entraîne plus",
"notInTrainingTooltip": "Aucune participation depuis {weeks} semaines dentraînement",
"status": "Statut",
"contact": "Contact",
"noPhoneShort": "No phone",
"noEmailShort": "No email",
"noAddressShort": "No address",
"clickTtSubmitted": "Click-TT submitted",
"markRegular": "Mark regular",
"markFormReceived": "Mark form verified",
"noPhoneShort": "Pas de téléphone",
"noEmailShort": "Pas de-mail",
"noAddressShort": "Pas dadresse",
"clickTtSubmitted": "Click-TT envoyé",
"markRegular": "Marquer comme régulier",
"markFormReceived": "Marquer le formulaire comme vérifié",
"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."
"clickTtRequestPendingShort": "En cours...",
"memberDetails": "Détails du membre",
"previewLastTraining": "Dernier entraînement",
"previewNoLastTraining": "Aucune participation pour le moment",
"phoneListForSelection": "Liste téléphonique pour la sélection",
"markFormsForSelection": "Vérifier les formulaires de la sélection",
"markRegularForSelection": "Marquer la sélection comme régulière",
"phoneListSelectionFile": "liste-telephonique-selection.pdf",
"batchFormsMarkedSuccess": "{count} formulaire(s) marqué(s) comme vérifié(s).",
"batchFormsMarkedEmpty": "Aucun formulaire non vérifié dans la sélection actuelle.",
"batchMarkedRegularSuccess": "{count} membre(s) à lessai marqué(s) comme réguliers.",
"batchMarkedRegularEmpty": "Aucun membre à lessai dans la sélection actuelle.",
"batchPartialFailure": "{success} réussis, {failed} échoués.",
"sortBy": "Trier par",
"sortLastName": "Nom",
"sortFirstName": "Prénom",
"sortBirthday": "Date de naissance",
"sortAge": "Âge",
"ageRange": "Âge de - à",
"ageFromPlaceholder": "de",
"ageToPlaceholder": ",
"age": "Âge",
"dataQuality": "Qualité des données",
"dataQualityComplete": "Données complètes",
"dataIssueBirthdate": "Date de naissance manquante",
"dataIssuePhone": "Téléphone manquant",
"dataIssueEmail": "E-mail manquant",
"dataIssueAddress": "Adresse manquante",
"dataIssueGender": "Sexe non défini",
"dataIssueTrainingGroup": "Groupe d'entraînement manquant",
"openTasks": "Tâches ouvertes",
"noOpenTasks": "Aucune tâche ouverte",
"taskVerifyForm": "Vérifier le formulaire",
"taskReviewTrialStatus": "Vérifier le statut d'essai",
"taskCheckTrainingStatus": "Vérifier le statut d'entraînement",
"taskCheckDataQuality": "Vérifier la qualité des données",
"taskAssignTrainingGroup": "Attribuer un groupe d'entraînement",
"taskCheckClickTt": "Vérifier l'autorisation Click-TT",
"taskActionVerify": "Vérifier",
"taskActionMarkRegular": "Marquer régulier",
"taskActionReview": "Ouvrir",
"taskActionRequest": "Demander",
"toggleSortDirection": "Changer le sens du tri",
"showTtrHistory": "Afficher lhistorique TTR",
"missingTtrHistoryId": "Aucun identifiant myTischtennis enregistré",
"sortLastTraining": "Dernier entraînement",
"sortOpenTasks": "Tâches ouvertes",
"exportPreview": "Aperçu de l'export",
"exportMembersSelected": "membres actuellement sélectionnés",
"exportPhones": "Téléphone",
"exportReachableByPhone": "avec numéro de téléphone",
"exportEmails": "E-mail",
"exportReachableByEmail": "avec adresse e-mail",
"exportPreviewNames": "Aperçu",
"exportPreviewEmpty": "Aucun membre dans la sélection actuelle",
"exportCsv": "Exporter en CSV",
"exportCsvFile": "selection-membres.csv",
"copyPhones": "Copier les téléphones",
"copyEmails": "Copier les e-mails",
"copyPhonesSuccess": "Liste téléphonique copiée dans le presse-papiers.",
"copyPhonesEmpty": "Aucun numéro de téléphone dans la sélection actuelle.",
"copyEmailsSuccess": "Liste e-mail copiée dans le presse-papiers.",
"copyEmailsEmpty": "Aucune adresse e-mail dans la sélection actuelle.",
"composeEmail": "Préparer un e-mail",
"copyContactSummary": "Copier le résumé des contacts",
"copyContactSummarySuccess": "Résumé des contacts copié dans le presse-papiers."
},
"diary": {
"title": "Journal d'entraînement",
"date": "Date",
"noEntries": "Aucune entrée",
"deleteDate": "Supprimer la date",
"createNew": "Créer",
"gallery": "Galerie des membres",
"galleryCreating": "Création de la galerie…",
"selectTrainingGroup": "Sélectionner un groupe d'entraînement",
"selectTrainingGroupPlaceholder": "Veuillez choisir...",
"suggestion": "Suggestion",
"nextAppointment": "Prochain rendez-vous",
"applySuggestion": "Appliquer la suggestion",
"skipSuggestion": "Continuer sans suggestion",
"createNewDate": "Créer une nouvelle date",
"activeTrainingDay": "Jour d'entraînement actif",
"trainingDaySection": "Jour d'entraînement",
"trainingDayChecklist": "Liste de contrôle finale",
"trainingStart": "Début de l'entraînement",
"trainingEnd": "Fin de l'entraînement",
"trainingWindow": "Plage d'entraînement",
"trainingWindowUnset": "Pas encore défini",
"groupsLabel": "Groupes",
"groupsSection": "Groupes",
"createDate": "Créer la date",
"editTrainingTimes": "Modifier les horaires d'entraînement",
"updateTimes": "Mettre à jour les horaires",
"groupManagement": "Gestion des groupes",
"createGroups": "Créer des groupes",
"trainingPlan": "Plan d'entraînement",
"planActivitiesCount": "Activités planifiées",
"timeblocksCount": "Blocs horaires",
"planEmptyState": "Aucun élément n'a encore été saisi dans le plan d'entraînement.",
"planAddHint": "Ajoutez de nouveaux éléments du plan avec les actions ci-dessus.",
"startTime": "Heure de début",
"group": "Groupe...",
"timeblock": "Bloc horaire",
"assignParticipants": "Attribuer des participants",
"addTimeblock": "Bloc horaire",
"activities": "Activités",
"freeActivities": "Activités libres",
"noFreeActivitiesYet": "Aucune activité libre n'a encore été enregistrée.",
"addActivity": "Ajouter une activité",
"bookAccident": "Enregistrer un accident",
"activity": "Activité",
"duration": "Durée",
"activityImage": "Image d'activité",
"activityDrawing": "Schéma d'activité",
"today": "Aujourd'hui",
"existingGroups": "Groupes existants",
"leader": "Responsable",
"deleteGroup": "Supprimer le groupe",
"numberOfGroups": "Nombre de groupes",
"addGroup": "Ajouter un groupe",
"activityOrTimeblock": "Activité / bloc horaire",
"durationMinutes": "Durée (min)",
"addGroupActivity": "Ajouter une activité de groupe",
"addGroupButton": "+ Groupe",
"all": "Tous",
"selectGroup": "Sélectionner un groupe...",
"activityPlaceholder": "Activité",
"assignShort": "Attribuer",
"statusReadyShort": "Prêt",
"statusOpenShort": "Ouvert",
"openPlanItemsLabel": "Statut du plan",
"openPlanItems": "{count} ouvert(s)",
"unassignedPlanItems": "{count} ouvert(s)",
"durationExampleLong": "p. ex. 2x7 ou 3*5",
"durationExampleShort": "p. ex. 2x7",
"showImage": "Afficher image/schéma",
"participants": "Participants",
"searchParticipants": "Rechercher des participants",
"filterAll": "Tous",
"filterPresent": "Présent",
"filterAbsent": "Absent",
"filterTest": "Essai",
"quickAdd": "+ Ajout rapide",
"selectTags": "Sélectionner des tags",
"createDrawing": "Créer un schéma d'exercice",
"overallActivity": "Activité globale",
"editActivity": "Modifier l'activité",
"editGroupActivity": "Modifier l'activité de groupe",
"assignParticipantsForGroupActivity": "Attribuer des participants à l'activité de groupe",
"delete": "Supprimer",
"min": "min",
"errorLoadingPredefinedActivities": "Erreur lors du chargement des activités prédéfinies",
"selectParticipantAndNote": "Veuillez sélectionner un participant et saisir une note.",
"selectGroupAndActivity": "Veuillez sélectionner un groupe et saisir une activité.",
"dateCannotBeDeleted": "La date ne peut pas être supprimée",
"dateCannotBeDeletedDetails": "Du contenu existe encore (plan, participants, activités, accidents ou notes).",
"confirmDelete": "Confirmer la suppression",
"confirmDeleteDate": "Voulez-vous vraiment supprimer cette date ?",
"confirmDeleteDateDetails": "Toutes les données associées seront également supprimées.",
"noParticipants": "Aucun participant disponible pour ce jour d'entraînement.",
"mustCreateAtLeastTwoGroups": "Il faut créer au moins 2 groupes la première fois.",
"oneGroupAdded": "1 groupe a été ajouté avec succès.",
"groupsCreated": "{count} groupes ont été créés avec succès.",
"errorCreatingGroups": "Erreur lors de la création des groupes",
"confirmDeleteGroup": "Voulez-vous vraiment supprimer le groupe \"{name}\" ?",
"groupDeletedSuccessfully": "Le groupe a été supprimé avec succès.",
"errorDeletingGroup": "Erreur lors de la suppression du groupe",
"errorCreatingActivity": "Erreur lors de la création de l'activité",
"trainingPlanAsPDF": "Plan d'entraînement en PDF",
"trainingPlanPdfShort": "Planning en PDF",
"trainingDayAsPDF": "Télécharger le jour d'entraînement en PDF",
"trainingDayAsPDFShort": "Jour d'entraînement en PDF",
"trainingDaySummaryPdfShort": "Résumé des participants en PDF",
"minutes": "Minutes",
"formHandedOver": "Formulaire d'adhésion remis",
"errorOccurred": "Une erreur est survenue. Veuillez réessayer.",
"trainingTimesUpdated": "Horaires d'entraînement mis à jour avec succès.",
"noActiveTrainingDay": "Aucun jour d'entraînement sélectionné.",
"statusEmpty": "Ce jour d'entraînement est encore vide.",
"statusInProgress": "Ce jour d'entraînement est partiellement préparé.",
"formMarkedAsHandedOver": "Formulaire d'adhésion marqué comme remis",
"errorMarkingForm": "Erreur lors du marquage du formulaire",
"dateNoLongerCurrent": "La date sélectionnée n'était plus actuelle. Veuillez réessayer.",
"activityRequired": "Veuillez saisir une activité.",
"activityNotFound": "Activité introuvable. Veuillez en choisir une dans la liste.",
"standardActivities": "Activités standard",
"standardDurationShort": "min",
"standardActivityAddError": "L'activité standard n'a pas pu être ajoutée.",
"statusReady": "Les horaires et le plan d'entraînement sont définis.",
"filterExcused": "Excusé",
"participantStatusNone": "Aucun statut",
"participantStatusExcused": "Excusé",
"participantStatusCancelled": "Annulé"
},
"trainingStats": {
"title": "Statistiques d'entraînement",
"activeMembers": "Membres actifs",
"averageParticipationCurrentMonth": "Participation moyenne (mois en cours)",
"averageParticipationLastMonth": "Participation moyenne (mois précédent)",
"averageParticipationQuarter": "Participation moyenne (trimestre)",
"averageParticipationHalfYear": "Participation moyenne (semestre)",
"averageParticipationYear": "Participation moyenne (année)",
"trainingDays": "Jours d'entraînement (12 derniers mois)",
"memberParticipations": "Participations des membres",
"date": "Date",
"weekday": "Jour de semaine",
"participants": "Participants",
"name": "Nom",
"ttr": "TTR",
"qttr": "QTTR",
"birthdate": "Date de naissance",
"participations12Months": "Participations (12 mois)",
"participations3Months": "Participations (3 mois)",
"participationsTotal": "Participations (total)",
"lastTraining": "Dernier entraînement",
"actions": "Actions",
"showDetails": "Afficher les détails"
},
"courtDrawingTool": {
"title": "Schéma d'exercice de tennis de table",
"configureExercise": "Configurer l'exercice",
"stepStartPosition": "1. Position de départ",
"stepStartPositionHint": "Depuis quelle position de service l'exercice commence-t-il ?",
"stepFirstStroke": "2. Premier coup",
"stepFirstStrokeHint": "Définir le côté et la rotation du premier ballon.",
"stepTarget": "3. Cible",
"stepTargetHint": "Choisir la zone cible pour le premier coup.",
"stepAdditionalStrokes": "4. Coups suivants",
"stepAdditionalStrokesHint": "Ajouter si besoin dautres balles sous forme de séquence.",
"noAdditionalStrokes": "Aucun coup suivant ajouté pour le moment.",
"service": "Service :",
"serviceTitle": "Service",
"forehand": "Coup droit",
"backhand": "Revers",
"spin": "Effet :",
"underspin": "Coupe",
"topspin": "Topspin",
"sidespin": "Effet latéral",
"sideUnderspin": "Latéral coupé",
"counterSpin": "Contre-effet",
"targetPosition": "Position cible :",
"targetPositionLabel": "Position cible",
"strokeSide": "Côté",
"strokeTypeLabel": "Type de coup",
"addStroke": "Ajouter un coup",
"preview": "Aperçu",
"previewHint": "Le schéma apparaît dès que le premier coup est entièrement configuré.",
"completeFirstStroke": "Compléter le premier coup",
"completeFirstStrokeHint": "Choisissez la position de départ, le côté, leffet et la cible. Le schéma apparaîtra ensuite.",
"codeLabel": "Code",
"titleLabel": "Titre",
"startLeft": "gauche",
"startMiddle": "centre",
"startRight": "droite",
"strokeTypePush": "Poussette",
"strokeTypeCounter": "Contre",
"strokeTypeTopspin": "Topspin",
"strokeTypeFlip": "Flip",
"strokeTypeBlock": "Bloc",
"strokeTypeSmash": "Frappe",
"strokeTypeChopDefense": "Défense coupée",
"strokeTypeLobDefense": "Défense lobée",
"targetForehandLong": "Coup droit long",
"targetMiddleLong": "Milieu long",
"targetBackhandLong": "Revers long",
"targetForehandHalfLong": "Coup droit mi-long",
"targetMiddleHalfLong": "Milieu mi-long",
"targetBackhandHalfLong": "Revers mi-long",
"targetForehandShort": "Coup droit court",
"targetMiddleShort": "Milieu court",
"targetBackhandShort": "Revers court",
"toTarget": "vers"
}
}

View File

@@ -22,7 +22,41 @@
"next": "Avanti",
"previous": "Precedente",
"submit": "Invia",
"reset": "Reimposta"
"reset": "Reimposta",
"all": "Tutti",
"today": "Oggi",
"time": "Ora",
"new": "Nuovo",
"update": "Aggiorna",
"create": "Crea",
"remove": "Rimuovi",
"select": "Seleziona",
"download": "Scarica",
"choose": "Scegli",
"apply": "Applica",
"clear": "Cancella",
"details": "Dettagli",
"view": "Visualizza",
"name": "Nome",
"date": "Data",
"status": "Stato",
"type": "Tipo",
"description": "Descrizione",
"active": "Attivo",
"inactive": "Inattivo",
"enabled": "Abilitato",
"disabled": "Disabilitato",
"required": "Obbligatorio",
"optional": "Opzionale",
"in": "in",
"min": "min",
"minutes": "minuti",
"hours": "ore",
"days": "giorni",
"weeks": "settimane",
"months": "mesi",
"years": "anni",
"ok": "OK"
},
"navigation": {
"home": "Home",
@@ -34,29 +68,45 @@
"clubTournaments": "Tornei del club",
"tournamentParticipations": "Partecipazioni ai tornei",
"schedule": "Calendari",
"clubSettings": "Impostazioni club",
"clubSettings": "Impostazioni del club",
"predefinedActivities": "Attività predefinite",
"teamManagement": "Gestione squadra",
"teamManagement": "Gestione squadre",
"permissions": "Permessi",
"logs": "Log di sistema",
"memberTransfer": "Trasferimento membri",
"myTischtennisAccount": "Account myTischtennis",
"clickTtAccount": "Account HTTV / click-TT",
"clickTtBrowser": "HTTV / click-TT",
"personalSettings": "Impostazioni personali",
"logout": "Esci",
"logout": "Disconnetti",
"login": "Accedi",
"register": "Registrati",
"dailyBusiness": "Attività quotidiane",
"dailyBusiness": "Gestione quotidiana",
"competitions": "Competizioni",
"settings": "Impostazioni"
"settings": "Impostazioni",
"backToHome": "Torna alla home"
},
"club": {
"select": "Seleziona club",
"selectPlaceholder": "Scegli club...",
"selectPlaceholder": "Scegli un club...",
"new": "Nuovo club",
"load": "Carica",
"name": "Nome club",
"name": "Nome del club",
"create": "Crea club",
"accessRequestPending": "Access to this club has been requested. Please be patient."
"createTitle": "Crea club",
"members": "Membri",
"trainingDiary": "Diario di allenamento",
"noAccess": "Non hai ancora accesso a questo club.",
"requestAccess": "Richiedi accesso",
"openRequests": "Richieste di accesso aperte",
"title": "Club",
"openAccessRequests": "Richieste di accesso aperte",
"diary": "Diario di allenamento",
"accessDenied": "Accesso al club negato.",
"errorLoadingRequests": "Errore durante il caricamento delle richieste aperte",
"accessRequested": "Accesso richiesto.",
"accessRequestPending": "Laccesso a questo club è stato richiesto. Attendere prego.",
"accessRequestFailed": "Impossibile inviare la richiesta di accesso."
},
"auth": {
"login": "Accedi",
@@ -331,96 +381,425 @@
"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",
"title": "Membri",
"memberInfo": "Informazioni membro",
"activeMembers": "Membri attivi",
"testMembers": "Membri in prova",
"inactiveMembers": "Membri inattivi",
"generatePhoneList": "Genera elenco telefonico",
"onlyActiveMembers": "Sono inclusi solo i membri attivi",
"updateRatings": "Aggiorna TTR/QTTR da myTischtennis",
"updating": "Aggiornamento in corso...",
"transferMembers": "Trasferisci membri",
"newMember": "Nuovo membro",
"editMember": "Modifica membro",
"createNewMember": "Crea nuovo membro",
"firstName": "Nome",
"lastName": "Cognome",
"street": "Via",
"postalCode": "CAP",
"city": "Città",
"birthdate": "Data di nascita",
"phones": "Numeri di telefono",
"emails": "Indirizzi e-mail",
"addPhone": "Aggiungi numero di telefono",
"addEmail": "Aggiungi indirizzo e-mail",
"phoneNumber": "Numero di telefono",
"emailAddress": "Indirizzo e-mail",
"parent": "Genitore",
"parentName": "Nome (es. madre, padre)",
"primary": "Principale",
"gender": "Genere",
"genderUnknown": "Sconosciuto",
"genderMale": "Maschile",
"genderFemale": "Femminile",
"genderDiverse": "Diverso",
"picsInInternetAllowed": "Foto consentite online",
"testMembership": "Iscrizione di prova",
"memberFormHandedOver": "Modulo di iscrizione consegnato",
"trainingGroups": "Gruppi di allenamento",
"noGroupsAssigned": "Nessun gruppo assegnato",
"noGroupsAvailable": "Nessun gruppo disponibile",
"addGroup": "Aggiungi gruppo...",
"remove": "Rimuovi",
"image": "Immagine",
"selectFile": "Seleziona file",
"camera": "Fotocamera",
"imagePreview": "Anteprima immagine membro",
"change": "Modifica",
"create": "Crea",
"clearFields": "Svuota campi",
"showInactiveMembers": "Mostra membri inattivi",
"ageGroup": "Fascia detà",
"adults": "Adulti (20+)",
"j19": "U19 (19 anni o meno)",
"j17": "U17 (17 anni o meno)",
"j15": "U15 (15 anni o meno)",
"j13": "U13 (13 anni o meno)",
"j11": "U11 (11 anni o meno)",
"clearFilters": "Reimposta filtri",
"imageInternet": "Immagine (web?)",
"testMember": "Prova",
"name": "Cognome, nome",
"ttrQttr": "TTR / QTTR",
"address": "Indirizzo",
"active": "Attivo",
"actions": "Azioni",
"phoneNumberShort": "Tel.",
"emailAddressShort": "E-mail",
"trainingParticipations": "Partecipazioni agli allenamenti",
"memberImage": "Immagine membro",
"inactive": "inattivo",
"sixOrMoreParticipations": "6 o più partecipazioni agli allenamenti",
"threeOrMoreParticipations": "3 o più partecipazioni agli allenamenti",
"noTestMembership": "Non più membro in prova",
"formHandedOver": "Modulo di iscrizione consegnato",
"deactivateMember": "Disattiva membro",
"notes": "Note",
"exercises": "Esercizi",
"memberImages": "Immagini membro",
"testMembershipRemoved": "Iscrizione di prova rimossa.",
"errorRemovingTestMembership": "Errore durante la rimozione delliscrizione di prova.",
"formMarkedAsHandedOver": "Modulo di iscrizione contrassegnato come consegnato.",
"errorMarkingForm": "Errore durante la marcatura del modulo.",
"deactivateMemberTitle": "Disattiva membro",
"deactivateMemberConfirm": "Vuoi davvero disattivare \"{name}\"?",
"memberDeactivated": "Membro disattivato",
"errorDeactivatingMember": "Errore durante la disattivazione del membro",
"errorSavingMember": "Errore durante il salvataggio del membro",
"errorAddingToGroup": "Errore durante laggiunta al gruppo",
"errorRemovingFromGroup": "Errore durante la rimozione dal gruppo",
"imageUpdated": "Immagine aggiornata",
"errorRotatingImage": "Errore durante la rotazione dellimmagine",
"imageDeleted": "Immagine eliminata.",
"errorDeletingImage": "Impossibile eliminare limmagine",
"primaryImageUpdated": "Immagine principale aggiornata.",
"errorSettingPrimaryImage": "Impossibile impostare limmagine principale",
"errorUploadingImage": "Impossibile caricare limmagine",
"errorLoadingImage": "Errore durante il caricamento dellimmagine",
"phoneList": "elenco-telefonico.pdf",
"errorLoadingTrainingParticipations": "Errore durante il caricamento delle partecipazioni",
"errorUpdatingRatings": "Errore durante laggiornamento dei valori TTR/QTTR",
"errorTransfer": "Errore durante il trasferimento",
"subtitle": "Cerca, filtra e modifica direttamente i membri.",
"closeEditor": "Chiudi editor",
"visibleMembers": "Membri visibili",
"search": "Cerca",
"searchPlaceholder": "Cerca per nome, città, telefono o e-mail",
"memberScope": "Ambito membri",
"scopeAll": "Tutti",
"scopeActive": "Attivi",
"scopeTest": "Prova",
"scopeNeedsForm": "Modulo non verificato",
"scopeDataIncomplete": "Dati incompleti",
"scopeInactive": "Inattivi",
"scopeActiveDataIncomplete": "Attivo + dati incompleti",
"searchAndFilter": "Ricerca e filtri",
"bulkActions": "Azioni di gruppo",
"resultsVisible": "membri visibili",
"editHint": "Un clic su una riga apre leditor.",
"editorCreateHint": "Crea un nuovo membro e inserisci subito i dati di contatto.",
"editorEditHint": "Modifica i dati di {name}.",
"editorAssignTrainingGroupHint": "Assegna almeno un gruppo di allenamento.",
"editorRecommendedEntry": "Voce consigliata",
"transferSuccessTitle": "Trasferimento riuscito",
"transferErrorTitle": "Errore di trasferimento",
"clickTtRequestPending": "Richiesta Click-TT in corso",
"clickTtRequestAction": "Richiedi autorizzazione Click-TT",
"clickTtRequestTitle": "Avvia richiesta Click-TT",
"clickTtRequestConfirm": "Vuoi avviare la richiesta Click-TT automatizzata per {name}?",
"clickTtRequestHint": "La richiesta viene elaborata automaticamente dal workflow Click-TT del backend.",
"clickTtRequestSuccess": "Accedi ancora a click-tt e invia lì la richiesta.",
"clickTtRequestError": "Impossibile inviare la richiesta Click-TT.",
"clickTtRequestFailedLog": "Richiesta Click-TT non riuscita",
"deleteImageTitle": "Elimina immagine",
"deleteImageConfirm": "Vuoi davvero eliminare questa immagine?",
"parentFallback": "Genitore",
"loadingMembers": "Caricamento membri...",
"errorLoadingMembers": "Impossibile caricare la lista dei membri.",
"scopeNotTraining": "Non si allena più",
"notInTrainingTooltip": "Nessuna partecipazione da {weeks} settimane di allenamento",
"status": "Stato",
"contact": "Contatto",
"noPhoneShort": "Nessun telefono",
"noEmailShort": "Nessuna e-mail",
"noAddressShort": "Nessun indirizzo",
"clickTtSubmitted": "Click-TT inviato",
"markRegular": "Segna come regolare",
"markFormReceived": "Segna modulo come verificato",
"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."
"clickTtRequestPendingShort": "In corso...",
"memberDetails": "Dettagli membro",
"previewLastTraining": "Ultimo allenamento",
"previewNoLastTraining": "Ancora nessuna partecipazione",
"phoneListForSelection": "Elenco telefonico per la selezione",
"markFormsForSelection": "Verifica moduli della selezione",
"markRegularForSelection": "Segna la selezione come regolare",
"phoneListSelectionFile": "elenco-telefonico-selezione.pdf",
"batchFormsMarkedSuccess": "{count} modulo/i contrassegnato/i come verificato/i.",
"batchFormsMarkedEmpty": "Nessun modulo non verificato nella selezione attuale.",
"batchMarkedRegularSuccess": "{count} membro/i in prova contrassegnato/i come regolare/i.",
"batchMarkedRegularEmpty": "Nessun membro in prova nella selezione attuale.",
"batchPartialFailure": "{success} riusciti, {failed} falliti.",
"sortBy": "Ordina per",
"sortLastName": "Cognome",
"sortFirstName": "Nome",
"sortBirthday": "Data di nascita",
"sortAge": "Età",
"ageRange": "Età da - a",
"ageFromPlaceholder": "da",
"ageToPlaceholder": "a",
"age": "Età",
"dataQuality": "Qualità dei dati",
"dataQualityComplete": "Dati completi",
"dataIssueBirthdate": "Data di nascita mancante",
"dataIssuePhone": "Telefono mancante",
"dataIssueEmail": "E-mail mancante",
"dataIssueAddress": "Indirizzo mancante",
"dataIssueGender": "Genere non definito",
"dataIssueTrainingGroup": "Gruppo di allenamento mancante",
"openTasks": "Attività aperte",
"noOpenTasks": "Nessuna attività aperta",
"taskVerifyForm": "Verifica modulo",
"taskReviewTrialStatus": "Controlla stato di prova",
"taskCheckTrainingStatus": "Controlla stato allenamento",
"taskCheckDataQuality": "Controlla qualità dati",
"taskAssignTrainingGroup": "Assegna gruppo di allenamento",
"taskCheckClickTt": "Controlla autorizzazione Click-TT",
"taskActionVerify": "Verifica",
"taskActionMarkRegular": "Segna come regolare",
"taskActionReview": "Apri",
"taskActionRequest": "Richiedi",
"toggleSortDirection": "Cambia direzione di ordinamento",
"showTtrHistory": "Mostra cronologia TTR",
"missingTtrHistoryId": "Nessun ID myTischtennis memorizzato",
"sortLastTraining": "Ultimo allenamento",
"sortOpenTasks": "Attività aperte",
"exportPreview": "Anteprima esportazione",
"exportMembersSelected": "membri attualmente selezionati",
"exportPhones": "Telefono",
"exportReachableByPhone": "con numero di telefono",
"exportEmails": "E-mail",
"exportReachableByEmail": "con indirizzo e-mail",
"exportPreviewNames": "Anteprima",
"exportPreviewEmpty": "Nessun membro nella selezione attuale",
"exportCsv": "Esporta CSV",
"exportCsvFile": "selezione-membri.csv",
"copyPhones": "Copia telefoni",
"copyEmails": "Copia e-mail",
"copyPhonesSuccess": "Elenco telefonico copiato negli appunti.",
"copyPhonesEmpty": "Nessun numero di telefono nella selezione attuale.",
"copyEmailsSuccess": "Elenco e-mail copiato negli appunti.",
"copyEmailsEmpty": "Nessun indirizzo e-mail nella selezione attuale.",
"composeEmail": "Prepara e-mail",
"copyContactSummary": "Copia riepilogo contatti",
"copyContactSummarySuccess": "Riepilogo contatti copiato negli appunti."
},
"diary": {
"title": "Diario di allenamento",
"date": "Data",
"noEntries": "Nessuna voce",
"deleteDate": "Elimina data",
"createNew": "Crea",
"gallery": "Galleria membri",
"galleryCreating": "Creazione galleria…",
"selectTrainingGroup": "Seleziona gruppo di allenamento",
"selectTrainingGroupPlaceholder": "Seleziona...",
"suggestion": "Suggerimento",
"nextAppointment": "Prossimo appuntamento",
"applySuggestion": "Applica suggerimento",
"skipSuggestion": "Continua senza suggerimento",
"createNewDate": "Crea nuova data",
"activeTrainingDay": "Giorno di allenamento attivo",
"trainingDaySection": "Giorno di allenamento",
"trainingDayChecklist": "Checklist finale",
"trainingStart": "Inizio allenamento",
"trainingEnd": "Fine allenamento",
"trainingWindow": "Fascia di allenamento",
"trainingWindowUnset": "Non ancora impostato",
"groupsLabel": "Gruppi",
"groupsSection": "Gruppi",
"createDate": "Crea data",
"editTrainingTimes": "Modifica orari di allenamento",
"updateTimes": "Aggiorna orari",
"groupManagement": "Gestione gruppi",
"createGroups": "Crea gruppi",
"trainingPlan": "Piano di allenamento",
"planActivitiesCount": "Attività pianificate",
"timeblocksCount": "Blocchi orari",
"planEmptyState": "Non è ancora stato inserito nulla nel piano di allenamento.",
"planAddHint": "Aggiungi nuovi elementi del piano usando le azioni sopra.",
"startTime": "Ora di inizio",
"group": "Gruppo...",
"timeblock": "Blocco orario",
"assignParticipants": "Assegna partecipanti",
"addTimeblock": "Blocco orario",
"activities": "Attività",
"freeActivities": "Attività libere",
"noFreeActivitiesYet": "Non sono ancora state registrate attività libere.",
"addActivity": "Aggiungi attività",
"bookAccident": "Registra incidente",
"activity": "Attività",
"duration": "Durata",
"activityImage": "Immagine attività",
"activityDrawing": "Disegno attività",
"today": "Oggi",
"existingGroups": "Gruppi esistenti",
"leader": "Responsabile",
"deleteGroup": "Elimina gruppo",
"numberOfGroups": "Numero di gruppi",
"addGroup": "Aggiungi gruppo",
"activityOrTimeblock": "Attività / blocco orario",
"durationMinutes": "Durata (min)",
"addGroupActivity": "Aggiungi attività di gruppo",
"addGroupButton": "+ Gruppo",
"all": "Tutti",
"selectGroup": "Seleziona gruppo...",
"activityPlaceholder": "Attività",
"assignShort": "Assegna",
"statusReadyShort": "Pronto",
"statusOpenShort": "Aperto",
"openPlanItemsLabel": "Stato del piano",
"openPlanItems": "{count} aperti",
"unassignedPlanItems": "{count} aperti",
"durationExampleLong": "es. 2x7 o 3*5",
"durationExampleShort": "es. 2x7",
"showImage": "Mostra immagine/disegno",
"participants": "Partecipanti",
"searchParticipants": "Cerca partecipanti",
"filterAll": "Tutti",
"filterPresent": "Presente",
"filterAbsent": "Assente",
"filterTest": "Prova",
"quickAdd": "+ Aggiunta rapida",
"selectTags": "Seleziona tag",
"createDrawing": "Crea disegno esercizio",
"overallActivity": "Attività complessiva",
"editActivity": "Modifica attività",
"editGroupActivity": "Modifica attività di gruppo",
"assignParticipantsForGroupActivity": "Assegna partecipanti allattività di gruppo",
"delete": "Elimina",
"min": "min",
"errorLoadingPredefinedActivities": "Errore durante il caricamento delle attività predefinite",
"selectParticipantAndNote": "Seleziona un partecipante e inserisci una nota.",
"selectGroupAndActivity": "Seleziona un gruppo e inserisci unattività.",
"dateCannotBeDeleted": "La data non può essere eliminata",
"dateCannotBeDeletedDetails": "Sono ancora presenti contenuti (piano, partecipanti, attività, incidenti o note).",
"confirmDelete": "Conferma eliminazione",
"confirmDeleteDate": "Vuoi davvero eliminare questa data?",
"confirmDeleteDateDetails": "Verranno eliminati anche tutti i dati associati.",
"noParticipants": "Nessun partecipante disponibile per questo giorno di allenamento.",
"mustCreateAtLeastTwoGroups": "La prima volta è necessario creare almeno 2 gruppi.",
"oneGroupAdded": "1 gruppo aggiunto correttamente.",
"groupsCreated": "{count} gruppi creati correttamente.",
"errorCreatingGroups": "Errore durante la creazione dei gruppi",
"confirmDeleteGroup": "Vuoi davvero eliminare il gruppo \"{name}\"?",
"groupDeletedSuccessfully": "Gruppo eliminato correttamente.",
"errorDeletingGroup": "Errore durante leliminazione del gruppo",
"errorCreatingActivity": "Errore durante la creazione dellattività",
"trainingPlanAsPDF": "Piano di allenamento in PDF",
"trainingPlanPdfShort": "Programma in PDF",
"trainingDayAsPDF": "Scarica il giorno di allenamento in PDF",
"trainingDayAsPDFShort": "Giorno di allenamento in PDF",
"trainingDaySummaryPdfShort": "Riepilogo partecipanti in PDF",
"minutes": "Minuti",
"formHandedOver": "Modulo di iscrizione consegnato",
"errorOccurred": "Si è verificato un errore. Riprova.",
"trainingTimesUpdated": "Orari di allenamento aggiornati correttamente.",
"noActiveTrainingDay": "Nessun giorno di allenamento selezionato.",
"statusEmpty": "Questo giorno di allenamento è ancora vuoto.",
"statusInProgress": "Questo giorno di allenamento è preparato solo in parte.",
"formMarkedAsHandedOver": "Modulo di iscrizione contrassegnato come consegnato",
"errorMarkingForm": "Errore durante la marcatura del modulo",
"dateNoLongerCurrent": "La data selezionata non era più attuale. Riprova.",
"activityRequired": "Inserisci unattività.",
"activityNotFound": "Attività non trovata. Scegline una dalla lista.",
"standardActivities": "Attività standard",
"standardDurationShort": "min",
"standardActivityAddError": "Non è stato possibile aggiungere l'attività standard.",
"statusReady": "Orari e piano di allenamento sono impostati.",
"filterExcused": "Giustificato",
"participantStatusNone": "Nessuno stato",
"participantStatusExcused": "Giustificato",
"participantStatusCancelled": "Annullato"
},
"trainingStats": {
"title": "Statistiche di allenamento",
"activeMembers": "Membri attivi",
"averageParticipationCurrentMonth": "Partecipazione media (mese corrente)",
"averageParticipationLastMonth": "Partecipazione media (mese precedente)",
"averageParticipationQuarter": "Partecipazione media (trimestre)",
"averageParticipationHalfYear": "Partecipazione media (semestre)",
"averageParticipationYear": "Partecipazione media (anno)",
"trainingDays": "Giorni di allenamento (ultimi 12 mesi)",
"memberParticipations": "Partecipazioni dei membri",
"date": "Data",
"weekday": "Giorno della settimana",
"participants": "Partecipanti",
"name": "Nome",
"ttr": "TTR",
"qttr": "QTTR",
"birthdate": "Data di nascita",
"participations12Months": "Partecipazioni (12 mesi)",
"participations3Months": "Partecipazioni (3 mesi)",
"participationsTotal": "Partecipazioni (totale)",
"lastTraining": "Ultimo allenamento",
"actions": "Azioni",
"showDetails": "Mostra dettagli"
},
"courtDrawingTool": {
"title": "Schema di esercizio di tennistavolo",
"configureExercise": "Configura esercizio",
"stepStartPosition": "1. Posizione iniziale",
"stepStartPositionHint": "Da quale posizione di servizio inizia lesercizio?",
"stepFirstStroke": "2. Primo colpo",
"stepFirstStrokeHint": "Definisci il lato e leffetto della prima palla.",
"stepTarget": "3. Obiettivo",
"stepTargetHint": "Scegli la zona bersaglio per il primo colpo.",
"stepAdditionalStrokes": "4. Colpi successivi",
"stepAdditionalStrokesHint": "Aggiungi facoltativamente altre palle come sequenza.",
"noAdditionalStrokes": "Nessun colpo successivo aggiunto finora.",
"service": "Servizio:",
"serviceTitle": "Servizio",
"forehand": "Dritto",
"backhand": "Rovescio",
"spin": "Effetto:",
"underspin": "Taglio",
"topspin": "Topspin",
"sidespin": "Effetto laterale",
"sideUnderspin": "Laterale tagliato",
"counterSpin": "Controeffetto",
"targetPosition": "Posizione bersaglio:",
"targetPositionLabel": "Posizione bersaglio",
"strokeSide": "Lato",
"strokeTypeLabel": "Tipo di colpo",
"addStroke": "Aggiungi colpo",
"preview": "Anteprima",
"previewHint": "Lo schema appare non appena il primo colpo è configurato completamente.",
"completeFirstStroke": "Completa il primo colpo",
"completeFirstStrokeHint": "Scegli posizione iniziale, lato, effetto e obiettivo. Lo schema apparirà poi.",
"codeLabel": "Codice",
"titleLabel": "Titolo",
"startLeft": "sinistra",
"startMiddle": "centro",
"startRight": "destra",
"strokeTypePush": "Palleggio corto",
"strokeTypeCounter": "Contro",
"strokeTypeTopspin": "Topspin",
"strokeTypeFlip": "Flip",
"strokeTypeBlock": "Blocco",
"strokeTypeSmash": "Schiacciata",
"strokeTypeChopDefense": "Difesa tagliata",
"strokeTypeLobDefense": "Difesa alta",
"targetForehandLong": "Dritto lungo",
"targetMiddleLong": "Centro lungo",
"targetBackhandLong": "Rovescio lungo",
"targetForehandHalfLong": "Dritto mezzo-lungo",
"targetMiddleHalfLong": "Centro mezzo-lungo",
"targetBackhandHalfLong": "Rovescio mezzo-lungo",
"targetForehandShort": "Dritto corto",
"targetMiddleShort": "Centro corto",
"targetBackhandShort": "Rovescio corto",
"toTarget": "verso"
}
}

View File

@@ -22,7 +22,41 @@
"next": "次へ",
"previous": "前へ",
"submit": "送信",
"reset": "リセット"
"reset": "リセット",
"all": "すべて",
"today": "今日",
"time": "時刻",
"new": "新規",
"update": "更新",
"create": "作成",
"remove": "削除",
"select": "選択",
"download": "ダウンロード",
"choose": "選択",
"apply": "適用",
"clear": "クリア",
"details": "詳細",
"view": "表示",
"name": "名前",
"date": "日付",
"status": "状態",
"type": "種類",
"description": "説明",
"active": "アクティブ",
"inactive": "非アクティブ",
"enabled": "有効",
"disabled": "無効",
"required": "必須",
"optional": "任意",
"in": "後",
"min": "分",
"minutes": "分",
"hours": "時間",
"days": "日",
"weeks": "週間",
"months": "か月",
"years": "年",
"ok": "OK"
},
"navigation": {
"home": "ホーム",
@@ -41,13 +75,16 @@
"logs": "システムログ",
"memberTransfer": "メンバー転送",
"myTischtennisAccount": "myTischtennisアカウント",
"clickTtAccount": "HTTV / click-TT アカウント",
"clickTtBrowser": "HTTV / click-TT",
"personalSettings": "個人設定",
"logout": "ログアウト",
"login": "ログイン",
"register": "登録",
"dailyBusiness": "日常業務",
"competitions": "競技",
"settings": "設定"
"settings": "設定",
"backToHome": "ホームへ戻る"
},
"club": {
"select": "クラブを選択",
@@ -56,7 +93,20 @@
"load": "読み込む",
"name": "クラブ名",
"create": "クラブを作成",
"accessRequestPending": "Access to this club has been requested. Please be patient."
"createTitle": "クラブを作成",
"members": "メンバー",
"trainingDiary": "練習日誌",
"noAccess": "このクラブへのアクセス権はまだ付与されていません。",
"requestAccess": "アクセスを申請",
"openRequests": "保留中のアクセス申請",
"title": "クラブ",
"openAccessRequests": "保留中のアクセス申請",
"diary": "練習日誌",
"accessDenied": "このクラブへのアクセスは許可されていません。",
"errorLoadingRequests": "保留中の申請の読み込みエラー",
"accessRequested": "アクセスを申請しました。",
"accessRequestPending": "このクラブへのアクセスを申請しました。しばらくお待ちください。",
"accessRequestFailed": "アクセス申請を送信できませんでした。"
},
"auth": {
"login": "ログイン",
@@ -331,6 +381,106 @@
"stageFlowQualifiedPreviewEntry": "G{group} · Place {position} · {name}"
},
"members": {
"title": "メンバー",
"memberInfo": "メンバー情報",
"activeMembers": "アクティブメンバー",
"testMembers": "体験メンバー",
"inactiveMembers": "非アクティブメンバー",
"generatePhoneList": "電話リストを作成",
"onlyActiveMembers": "アクティブメンバーのみ出力されます",
"updateRatings": "myTischtennis から TTR/QTTR を更新",
"updating": "更新中...",
"transferMembers": "メンバーを移行",
"newMember": "新規メンバー",
"editMember": "メンバーを編集",
"createNewMember": "新規メンバーを作成",
"firstName": "名",
"lastName": "姓",
"street": "住所",
"postalCode": "郵便番号",
"city": "市区町村",
"birthdate": "生年月日",
"phones": "電話番号",
"emails": "メールアドレス",
"addPhone": "電話番号を追加",
"addEmail": "メールアドレスを追加",
"phoneNumber": "電話番号",
"emailAddress": "メールアドレス",
"parent": "保護者",
"parentName": "名前(例:母、父)",
"primary": "メイン",
"gender": "性別",
"genderUnknown": "不明",
"genderMale": "男性",
"genderFemale": "女性",
"genderDiverse": "その他",
"picsInInternetAllowed": "インターネット掲載可",
"testMembership": "体験会員",
"memberFormHandedOver": "会員フォーム受け渡し済み",
"trainingGroups": "練習グループ",
"noGroupsAssigned": "グループ未割り当て",
"noGroupsAvailable": "利用可能なグループがありません",
"addGroup": "グループを追加...",
"remove": "削除",
"image": "画像",
"selectFile": "ファイルを選択",
"camera": "カメラ",
"imagePreview": "メンバー画像のプレビュー",
"change": "変更",
"create": "作成",
"clearFields": "入力欄をクリア",
"showInactiveMembers": "非アクティブメンバーを表示",
"ageGroup": "年齢区分",
"adults": "一般20歳以上",
"j19": "J1919歳以下",
"j17": "J1717歳以下",
"j15": "J1515歳以下",
"j13": "J1313歳以下",
"j11": "J1111歳以下",
"clearFilters": "フィルターをリセット",
"imageInternet": "画像(公開)",
"testMember": "体験",
"name": "姓名",
"ttrQttr": "TTR / QTTR",
"address": "住所",
"active": "アクティブ",
"actions": "操作",
"phoneNumberShort": "電話番号",
"emailAddressShort": "メール",
"trainingParticipations": "練習参加回数",
"memberImage": "メンバー画像",
"inactive": "非アクティブ",
"sixOrMoreParticipations": "練習参加 6 回以上",
"threeOrMoreParticipations": "練習参加 3 回以上",
"noTestMembership": "体験会員ではない",
"formHandedOver": "会員フォーム受け渡し済み",
"deactivateMember": "メンバーを無効化",
"notes": "メモ",
"exercises": "練習",
"memberImages": "メンバー画像",
"testMembershipRemoved": "体験会員を解除しました。",
"errorRemovingTestMembership": "体験会員の解除エラー。",
"formMarkedAsHandedOver": "会員フォームを受け渡し済みにしました。",
"errorMarkingForm": "フォームの更新エラー。",
"deactivateMemberTitle": "メンバーを無効化",
"deactivateMemberConfirm": "「{name}」を本当に無効化しますか?",
"memberDeactivated": "メンバーを無効化しました",
"errorDeactivatingMember": "メンバーの無効化エラー",
"errorSavingMember": "メンバーの保存エラー",
"errorAddingToGroup": "グループへの追加エラー",
"errorRemovingFromGroup": "グループからの削除エラー",
"imageUpdated": "画像を更新しました",
"errorRotatingImage": "画像回転エラー",
"imageDeleted": "画像を削除しました。",
"errorDeletingImage": "画像を削除できませんでした",
"primaryImageUpdated": "メイン画像を更新しました。",
"errorSettingPrimaryImage": "メイン画像を設定できませんでした",
"errorUploadingImage": "画像をアップロードできませんでした",
"errorLoadingImage": "画像の読み込みエラー",
"phoneList": "電話リスト.pdf",
"errorLoadingTrainingParticipations": "練習参加履歴の読み込みエラー",
"errorUpdatingRatings": "TTR/QTTR 更新エラー",
"errorTransfer": "移行エラー",
"subtitle": "Search, filter and edit members directly.",
"closeEditor": "Close editor",
"visibleMembers": "Visible members",
@@ -341,11 +491,17 @@
"scopeActive": "Active",
"scopeTest": "Trial",
"scopeNeedsForm": "Form unverified",
"scopeActiveDataIncomplete": "アクティブ + データ不完全",
"scopeDataIncomplete": "データ不完全",
"scopeInactive": "Inactive",
"searchAndFilter": "検索とフィルター",
"bulkActions": "一括操作",
"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}.",
"editorAssignTrainingGroupHint": "少なくとも 1 つの練習グループを割り当ててください。",
"editorRecommendedEntry": "推奨入力",
"transferSuccessTitle": "Transfer successful",
"transferErrorTitle": "Transfer error",
"clickTtRequestPending": "Click-TT request in progress",
@@ -363,7 +519,7 @@
"errorLoadingMembers": "Failed to load the member list.",
"scopeNotTraining": "No longer training",
"notInTrainingTooltip": "No participation for {weeks} training weeks",
"status": "Status",
"status": "状態",
"contact": "Contact",
"noPhoneShort": "No phone",
"noEmailShort": "No email",
@@ -390,17 +546,33 @@
"sortFirstName": "First name",
"sortBirthday": "Birthday",
"sortAge": "Age",
"ageRange": "年齢範囲",
"ageFromPlaceholder": "から",
"ageToPlaceholder": "まで",
"age": "Age",
"dataQuality": "データ品質",
"dataQualityComplete": "データは完全です",
"dataIssueBirthdate": "生年月日がありません",
"dataIssuePhone": "電話番号がありません",
"dataIssueEmail": "メールアドレスがありません",
"dataIssueAddress": "住所がありません",
"dataIssueGender": "性別が未設定です",
"dataIssueTrainingGroup": "練習グループがありません",
"openTasks": "Open tasks",
"noOpenTasks": "No open tasks",
"taskVerifyForm": "Verify form",
"taskReviewTrialStatus": "Review trial status",
"taskCheckTrainingStatus": "Review training status",
"taskCheckDataQuality": "データ品質を確認",
"taskAssignTrainingGroup": "練習グループを割り当て",
"taskCheckClickTt": "Review Click-TT eligibility",
"taskActionVerify": "Verify",
"taskActionMarkRegular": "Mark regular",
"taskActionReview": "開く",
"taskActionRequest": "Request",
"toggleSortDirection": "Toggle sort direction",
"showTtrHistory": "TTR 履歴を表示",
"missingTtrHistoryId": "myTischtennis ID が登録されていません",
"sortLastTraining": "Last training",
"sortOpenTasks": "Open tasks",
"exportPreview": "Export preview",
@@ -422,5 +594,212 @@
"composeEmail": "Compose email",
"copyContactSummary": "Copy contact summary",
"copyContactSummarySuccess": "Contact summary copied to clipboard."
},
"diary": {
"title": "練習日誌",
"date": "日付",
"noEntries": "エントリがありません",
"deleteDate": "日付を削除",
"createNew": "新規作成",
"gallery": "メンバーギャラリー",
"galleryCreating": "ギャラリーを作成中…",
"selectTrainingGroup": "練習グループを選択",
"selectTrainingGroupPlaceholder": "選択してください...",
"suggestion": "提案",
"nextAppointment": "次回の予定",
"applySuggestion": "提案を適用",
"skipSuggestion": "提案なしで続行",
"createNewDate": "新しい日付を作成",
"activeTrainingDay": "現在の練習日",
"trainingDaySection": "練習日",
"trainingDayChecklist": "完了チェック",
"trainingStart": "練習開始",
"trainingEnd": "練習終了",
"trainingWindow": "練習時間帯",
"trainingWindowUnset": "未設定",
"groupsLabel": "グループ",
"groupsSection": "グループ",
"createDate": "日付を作成",
"editTrainingTimes": "練習時間を編集",
"updateTimes": "時間を更新",
"groupManagement": "グループ管理",
"createGroups": "グループを作成",
"trainingPlan": "練習計画",
"planActivitiesCount": "計画アクティビティ",
"timeblocksCount": "時間ブロック",
"planEmptyState": "練習計画にはまだ何も登録されていません。",
"planAddHint": "新しい計画項目は上の操作から追加します。",
"startTime": "開始時刻",
"group": "グループ...",
"timeblock": "時間ブロック",
"assignParticipants": "参加者を割り当て",
"addTimeblock": "時間ブロック",
"activities": "アクティビティ",
"freeActivities": "自由アクティビティ",
"noFreeActivitiesYet": "自由アクティビティはまだありません。",
"addActivity": "アクティビティを追加",
"bookAccident": "事故を記録",
"activity": "アクティビティ",
"duration": "時間",
"activityImage": "アクティビティ画像",
"activityDrawing": "アクティビティ図",
"today": "今日",
"existingGroups": "既存のグループ",
"leader": "担当者",
"deleteGroup": "グループを削除",
"numberOfGroups": "グループ数",
"addGroup": "グループを追加",
"activityOrTimeblock": "アクティビティ / 時間ブロック",
"durationMinutes": "時間(分)",
"standardActivities": "標準アクティビティ",
"standardDurationShort": "分",
"standardActivityAddError": "標準アクティビティを追加できませんでした。",
"addGroupActivity": "グループアクティビティを追加",
"addGroupButton": "+ グループ",
"all": "すべて",
"selectGroup": "グループを選択...",
"activityPlaceholder": "アクティビティ",
"assignShort": "割り当て",
"statusReadyShort": "準備完了",
"statusOpenShort": "未完了",
"openPlanItemsLabel": "計画状況",
"openPlanItems": "{count} 件未完了",
"unassignedPlanItems": "{count} 件未割り当て",
"durationExampleLong": "例: 2x7 または 3*5",
"durationExampleShort": "例: 2x7",
"showImage": "画像/図を表示",
"participants": "参加者",
"searchParticipants": "参加者を検索",
"filterAll": "すべて",
"filterPresent": "出席",
"filterAbsent": "欠席",
"filterExcused": "欠席連絡あり",
"filterTest": "体験",
"participantStatusNone": "ステータスなし",
"participantStatusExcused": "欠席連絡あり",
"participantStatusCancelled": "キャンセル",
"quickAdd": "+ クイック追加",
"selectTags": "タグを選択",
"createDrawing": "練習図を作成",
"overallActivity": "全体アクティビティ",
"editActivity": "アクティビティを編集",
"editGroupActivity": "グループアクティビティを編集",
"assignParticipantsForGroupActivity": "グループアクティビティの参加者を割り当て",
"delete": "削除",
"min": "分",
"errorLoadingPredefinedActivities": "事前定義アクティビティの読み込みエラー",
"selectParticipantAndNote": "参加者を選択し、メモを入力してください。",
"selectGroupAndActivity": "グループを選択し、アクティビティを入力してください。",
"dateCannotBeDeleted": "日付を削除できません",
"dateCannotBeDeletedDetails": "まだ内容があります(練習計画、参加者、アクティビティ、事故、メモ)。",
"confirmDelete": "削除を確認",
"confirmDeleteDate": "この日付を本当に削除しますか?",
"confirmDeleteDateDetails": "関連データもすべて削除されます。",
"noParticipants": "この練習日に参加者がいません。",
"mustCreateAtLeastTwoGroups": "初回作成時は少なくとも 2 つのグループが必要です。",
"oneGroupAdded": "1 つのグループを追加しました。",
"groupsCreated": "{count} 個のグループを作成しました。",
"errorCreatingGroups": "グループ作成エラー",
"confirmDeleteGroup": "グループ「{name}」を本当に削除しますか?",
"groupDeletedSuccessfully": "グループを削除しました。",
"errorDeletingGroup": "グループ削除エラー",
"errorCreatingActivity": "アクティビティ作成エラー",
"trainingPlanAsPDF": "練習計画を PDF で出力",
"trainingPlanPdfShort": "進行計画を PDF",
"trainingDayAsPDF": "練習日を PDF でダウンロード",
"trainingDayAsPDFShort": "練習日を PDF",
"trainingDaySummaryPdfShort": "参加者一覧を PDF",
"minutes": "分",
"formHandedOver": "会員フォーム受け渡し済み",
"errorOccurred": "エラーが発生しました。もう一度お試しください。",
"trainingTimesUpdated": "練習時間を更新しました。",
"noActiveTrainingDay": "練習日が選択されていません。",
"statusReady": "時間と練習計画は設定済みです。",
"statusEmpty": "この練習日はまだ空です。",
"statusInProgress": "この練習日は一部のみ準備されています。",
"formMarkedAsHandedOver": "会員フォームを受け渡し済みにしました",
"errorMarkingForm": "会員フォーム更新エラー",
"dateNoLongerCurrent": "選択した日付は最新ではありません。もう一度お試しください。",
"activityRequired": "アクティビティを入力してください。",
"activityNotFound": "アクティビティが見つかりません。リストから選択してください。"
},
"trainingStats": {
"title": "練習統計",
"activeMembers": "アクティブメンバー",
"averageParticipationCurrentMonth": "平均参加数(今月)",
"averageParticipationLastMonth": "平均参加数(先月)",
"averageParticipationQuarter": "平均参加数(四半期)",
"averageParticipationHalfYear": "平均参加数(半年)",
"averageParticipationYear": "平均参加数(年間)",
"trainingDays": "練習日(過去 12 か月)",
"memberParticipations": "メンバー参加数",
"date": "日付",
"weekday": "曜日",
"participants": "参加者",
"name": "名前",
"ttr": "TTR",
"qttr": "QTTR",
"birthdate": "生年月日",
"participations12Months": "参加回数12 か月)",
"participations3Months": "参加回数3 か月)",
"participationsTotal": "参加回数(合計)",
"lastTraining": "最終練習",
"actions": "操作",
"showDetails": "詳細を表示"
},
"courtDrawingTool": {
"title": "卓球練習図",
"configureExercise": "練習を設定",
"stepStartPosition": "1. 開始位置",
"stepStartPositionHint": "どのサーブ位置から練習を始めますか?",
"stepFirstStroke": "2. 第1打",
"stepFirstStrokeHint": "最初のボールの打球面と回転を設定します。",
"stepTarget": "3. 落点",
"stepTargetHint": "第1打の落点ゾーンを選択します。",
"stepAdditionalStrokes": "4. 後続の打球",
"stepAdditionalStrokesHint": "必要に応じて後続のボールを一覧で追加できます。",
"noAdditionalStrokes": "まだ後続の打球はありません。",
"service": "サーブ:",
"serviceTitle": "サーブ",
"forehand": "フォアハンド",
"backhand": "バックハンド",
"spin": "回転:",
"underspin": "下回転",
"topspin": "上回転",
"sidespin": "横回転",
"sideUnderspin": "横下回転",
"counterSpin": "逆回転",
"targetPosition": "落点位置:",
"targetPositionLabel": "落点位置",
"strokeSide": "面",
"strokeTypeLabel": "打球タイプ",
"addStroke": "打球を追加",
"preview": "プレビュー",
"previewHint": "最初の打球が完全に設定されると図が表示されます。",
"completeFirstStroke": "第1打を完成させる",
"completeFirstStrokeHint": "開始位置、打球面、回転、落点を選択すると、図が表示されます。",
"codeLabel": "略称",
"titleLabel": "タイトル",
"startLeft": "左",
"startMiddle": "中央",
"startRight": "右",
"strokeTypePush": "ツッツキ",
"strokeTypeCounter": "カウンター",
"strokeTypeTopspin": "トップスピン",
"strokeTypeFlip": "フリック",
"strokeTypeBlock": "ブロック",
"strokeTypeSmash": "スマッシュ",
"strokeTypeChopDefense": "カット守備",
"strokeTypeLobDefense": "ロブ守備",
"targetForehandLong": "フォア奥",
"targetMiddleLong": "ミドル奥",
"targetBackhandLong": "バック奥",
"targetForehandHalfLong": "フォア半長",
"targetMiddleHalfLong": "ミドル半長",
"targetBackhandHalfLong": "バック半長",
"targetForehandShort": "フォア短",
"targetMiddleShort": "ミドル短",
"targetBackhandShort": "バック短",
"toTarget": "へ"
}
}

View File

@@ -22,7 +22,41 @@
"next": "Dalej",
"previous": "Poprzedni",
"submit": "Wyślij",
"reset": "Resetuj"
"reset": "Resetuj",
"all": "Wszystkie",
"today": "Dzisiaj",
"time": "Czas",
"new": "Nowy",
"update": "Aktualizuj",
"create": "Utwórz",
"remove": "Usuń",
"select": "Wybierz",
"download": "Pobierz",
"choose": "Wybierz",
"apply": "Zastosuj",
"clear": "Wyczyść",
"details": "Szczegóły",
"view": "Pokaż",
"name": "Nazwa",
"date": "Data",
"status": "Status",
"type": "Typ",
"description": "Opis",
"active": "Aktywny",
"inactive": "Nieaktywny",
"enabled": "Włączony",
"disabled": "Wyłączony",
"required": "Wymagane",
"optional": "Opcjonalne",
"in": "w",
"min": "min",
"minutes": "minuty",
"hours": "godziny",
"days": "dni",
"weeks": "tygodnie",
"months": "miesiące",
"years": "lata",
"ok": "OK"
},
"navigation": {
"home": "Strona główna",
@@ -36,18 +70,21 @@
"schedule": "Harmonogramy",
"clubSettings": "Ustawienia klubu",
"predefinedActivities": "Predefiniowane aktywności",
"teamManagement": "Zarządzanie zespołem",
"teamManagement": "Zarządzanie drużyną",
"permissions": "Uprawnienia",
"logs": "Logi systemowe",
"memberTransfer": "Transfer członka",
"memberTransfer": "Transfer członków",
"myTischtennisAccount": "Konto myTischtennis",
"clickTtAccount": "Konto HTTV / click-TT",
"clickTtBrowser": "HTTV / click-TT",
"personalSettings": "Ustawienia osobiste",
"logout": "Wyloguj",
"login": "Zaloguj",
"register": "Zarejestruj",
"dailyBusiness": "Codzienne sprawy",
"competitions": "Zawody",
"settings": "Ustawienia"
"dailyBusiness": "Codzienna praca",
"competitions": "Rozgrywki",
"settings": "Ustawienia",
"backToHome": "Powrót do strony głównej"
},
"club": {
"select": "Wybierz klub",
@@ -56,7 +93,20 @@
"load": "Załaduj",
"name": "Nazwa klubu",
"create": "Utwórz klub",
"accessRequestPending": "Access to this club has been requested. Please be patient."
"createTitle": "Utwórz klub",
"members": "Członkowie",
"trainingDiary": "Dziennik treningowy",
"noAccess": "Nie masz jeszcze dostępu do tego klubu.",
"requestAccess": "Poproś o dostęp",
"openRequests": "Otwarte prośby o dostęp",
"title": "Klub",
"openAccessRequests": "Otwarte prośby o dostęp",
"diary": "Dziennik treningowy",
"accessDenied": "Dostęp do klubu został odrzucony.",
"errorLoadingRequests": "Błąd podczas ładowania otwartych próśb",
"accessRequested": "Poproszono o dostęp.",
"accessRequestPending": "Poproszono o dostęp do tego klubu. Proszę czekać.",
"accessRequestFailed": "Nie udało się wysłać prośby o dostęp."
},
"auth": {
"login": "Zaloguj",
@@ -331,96 +381,425 @@
"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",
"title": "Członkowie",
"memberInfo": "Informacje o członku",
"activeMembers": "Aktywni członkowie",
"testMembers": "Członkowie próbni",
"inactiveMembers": "Nieaktywni członkowie",
"generatePhoneList": "Generuj listę telefoniczną",
"onlyActiveMembers": "Uwzględniani są tylko aktywni członkowie",
"updateRatings": "Aktualizuj TTR/QTTR z myTischtennis",
"updating": "Aktualizowanie...",
"transferMembers": "Przenieś członków",
"newMember": "Nowy członek",
"editMember": "Edytuj członka",
"createNewMember": "Utwórz nowego członka",
"firstName": "Imię",
"lastName": "Nazwisko",
"street": "Ulica",
"postalCode": "Kod pocztowy",
"city": "Miasto",
"birthdate": "Data urodzenia",
"phones": "Numery telefonów",
"emails": "Adresy e-mail",
"addPhone": "Dodaj numer telefonu",
"addEmail": "Dodaj adres e-mail",
"phoneNumber": "Numer telefonu",
"emailAddress": "Adres e-mail",
"parent": "Rodzic",
"parentName": "Imię (np. matka, ojciec)",
"primary": "Główny",
"gender": "Płeć",
"genderUnknown": "Nieznana",
"genderMale": "Męska",
"genderFemale": "Żeńska",
"genderDiverse": "Inna",
"picsInInternetAllowed": "Zdjęcia dozwolone w internecie",
"testMembership": "Członkostwo próbne",
"memberFormHandedOver": "Formularz członkowski przekazany",
"trainingGroups": "Grupy treningowe",
"noGroupsAssigned": "Brak przypisanych grup",
"noGroupsAvailable": "Brak dostępnych grup",
"addGroup": "Dodaj grupę...",
"remove": "Usuń",
"image": "Obraz",
"selectFile": "Wybierz plik",
"camera": "Aparat",
"imagePreview": "Podgląd zdjęcia członka",
"change": "Zmień",
"create": "Utwórz",
"clearFields": "Wyczyść pola",
"showInactiveMembers": "Pokaż nieaktywnych członków",
"ageGroup": "Kategoria wiekowa",
"adults": "Dorośli (20+)",
"j19": "U19 (19 lat i mniej)",
"j17": "U17 (17 lat i mniej)",
"j15": "U15 (15 lat i mniej)",
"j13": "U13 (13 lat i mniej)",
"j11": "U11 (11 lat i mniej)",
"clearFilters": "Resetuj filtry",
"imageInternet": "Zdjęcie (www?)",
"testMember": "Próba",
"name": "Nazwisko, imię",
"ttrQttr": "TTR / QTTR",
"address": "Adres",
"active": "Aktywny",
"actions": "Akcje",
"phoneNumberShort": "Tel.",
"emailAddressShort": "E-mail",
"trainingParticipations": "Udziały w treningach",
"memberImage": "Zdjęcie członka",
"inactive": "nieaktywny",
"sixOrMoreParticipations": "6 lub więcej udziałów w treningu",
"threeOrMoreParticipations": "3 lub więcej udziałów w treningu",
"noTestMembership": "Nie jest już członkiem próbnym",
"formHandedOver": "Formularz członkowski przekazany",
"deactivateMember": "Dezaktywuj członka",
"notes": "Notatki",
"exercises": "Ćwiczenia",
"memberImages": "Zdjęcia członka",
"testMembershipRemoved": "Usunięto członkostwo próbne.",
"errorRemovingTestMembership": "Błąd podczas usuwania członkostwa próbnego.",
"formMarkedAsHandedOver": "Formularz członkowski oznaczono jako przekazany.",
"errorMarkingForm": "Błąd podczas oznaczania formularza.",
"deactivateMemberTitle": "Dezaktywuj członka",
"deactivateMemberConfirm": "Czy na pewno chcesz dezaktywować „{name}”?",
"memberDeactivated": "Członek został dezaktywowany",
"errorDeactivatingMember": "Błąd podczas dezaktywacji członka",
"errorSavingMember": "Błąd podczas zapisywania członka",
"errorAddingToGroup": "Błąd podczas dodawania do grupy",
"errorRemovingFromGroup": "Błąd podczas usuwania z grupy",
"imageUpdated": "Zdjęcie zaktualizowano",
"errorRotatingImage": "Błąd podczas obracania zdjęcia",
"imageDeleted": "Zdjęcie zostało usunięte.",
"errorDeletingImage": "Nie udało się usunąć zdjęcia",
"primaryImageUpdated": "Zaktualizowano główne zdjęcie.",
"errorSettingPrimaryImage": "Nie udało się ustawić głównego zdjęcia",
"errorUploadingImage": "Nie udało się przesłać zdjęcia",
"errorLoadingImage": "Błąd podczas ładowania zdjęcia",
"phoneList": "lista-telefoniczna.pdf",
"errorLoadingTrainingParticipations": "Błąd podczas ładowania udziałów treningowych",
"errorUpdatingRatings": "Błąd podczas aktualizacji wartości TTR/QTTR",
"errorTransfer": "Błąd transferu",
"subtitle": "Szukaj, filtruj i edytuj członków bezpośrednio.",
"closeEditor": "Zamknij edytor",
"visibleMembers": "Widoczni członkowie",
"search": "Szukaj",
"searchPlaceholder": "Szukaj po nazwisku, mieście, telefonie lub e-mailu",
"memberScope": "Zakres członków",
"scopeAll": "Wszyscy",
"scopeActive": "Aktywni",
"scopeTest": "Próba",
"scopeNeedsForm": "Formularz niezweryfikowany",
"scopeDataIncomplete": "Niepełne dane",
"scopeInactive": "Nieaktywni",
"scopeActiveDataIncomplete": "Aktywny + niepełne dane",
"searchAndFilter": "Wyszukiwanie i filtry",
"bulkActions": "Akcje zbiorcze",
"resultsVisible": "widocznych członków",
"editHint": "Kliknięcie wiersza otwiera edytor.",
"editorCreateHint": "Utwórz nowego członka i od razu wprowadź dane kontaktowe.",
"editorEditHint": "Edytuj dane użytkownika {name}.",
"editorAssignTrainingGroupHint": "Przypisz co najmniej jedną grupę treningową.",
"editorRecommendedEntry": "Zalecany wpis",
"transferSuccessTitle": "Transfer zakończony sukcesem",
"transferErrorTitle": "Błąd transferu",
"clickTtRequestPending": "Wniosek Click-TT w toku",
"clickTtRequestAction": "Poproś o uprawnienie Click-TT",
"clickTtRequestTitle": "Uruchom wniosek Click-TT",
"clickTtRequestConfirm": "Czy uruchomić automatyczny wniosek Click-TT dla {name}?",
"clickTtRequestHint": "Wniosek jest przetwarzany automatycznie przez backendowy workflow Click-TT.",
"clickTtRequestSuccess": "Zaloguj się jeszcze do click-tt i wyślij tam wniosek.",
"clickTtRequestError": "Nie udało się wysłać wniosku Click-TT.",
"clickTtRequestFailedLog": "Wniosek Click-TT nie powiódł się",
"deleteImageTitle": "Usuń zdjęcie",
"deleteImageConfirm": "Czy na pewno chcesz usunąć to zdjęcie?",
"parentFallback": "Rodzic",
"loadingMembers": "Ładowanie członków...",
"errorLoadingMembers": "Nie udało się załadować listy członków.",
"scopeNotTraining": "Już nie trenuje",
"notInTrainingTooltip": "Brak udziału od {weeks} tygodni treningowych",
"status": "Status",
"contact": "Contact",
"noPhoneShort": "No phone",
"noEmailShort": "No email",
"noAddressShort": "No address",
"clickTtSubmitted": "Click-TT submitted",
"markRegular": "Mark regular",
"markFormReceived": "Mark form verified",
"contact": "Kontakt",
"noPhoneShort": "Brak telefonu",
"noEmailShort": "Brak e-maila",
"noAddressShort": "Brak adresu",
"clickTtSubmitted": "Click-TT wysłane",
"markRegular": "Oznacz jako regularny",
"markFormReceived": "Oznacz formularz jako zweryfikowany",
"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."
"clickTtRequestPendingShort": "W toku...",
"memberDetails": "Szczegóły członka",
"previewLastTraining": "Ostatni trening",
"previewNoLastTraining": "Brak udziału do tej pory",
"phoneListForSelection": "Lista telefoniczna dla zaznaczenia",
"markFormsForSelection": "Zweryfikuj formularze zaznaczenia",
"markRegularForSelection": "Oznacz zaznaczenie jako regularne",
"phoneListSelectionFile": "lista-telefoniczna-zaznaczenie.pdf",
"batchFormsMarkedSuccess": "Oznaczono {count} formularz(y) jako zweryfikowane.",
"batchFormsMarkedEmpty": "Brak niezweryfikowanych formularzy w bieżącym zaznaczeniu.",
"batchMarkedRegularSuccess": "Oznaczono {count} członka/ów próbnych jako regularnych.",
"batchMarkedRegularEmpty": "Brak członków próbnych w bieżącym zaznaczeniu.",
"batchPartialFailure": "{success} zakończonych sukcesem, {failed} nieudanych.",
"sortBy": "Sortuj według",
"sortLastName": "Nazwisko",
"sortFirstName": "Imię",
"sortBirthday": "Data urodzenia",
"sortAge": "Wiek",
"ageRange": "Wiek od - do",
"ageFromPlaceholder": "od",
"ageToPlaceholder": "do",
"age": "Wiek",
"dataQuality": "Jakość danych",
"dataQualityComplete": "Dane kompletne",
"dataIssueBirthdate": "Brak daty urodzenia",
"dataIssuePhone": "Brak telefonu",
"dataIssueEmail": "Brak e-maila",
"dataIssueAddress": "Brak adresu",
"dataIssueGender": "Płeć nieokreślona",
"dataIssueTrainingGroup": "Brak grupy treningowej",
"openTasks": "Otwarte zadania",
"noOpenTasks": "Brak otwartych zadań",
"taskVerifyForm": "Zweryfikuj formularz",
"taskReviewTrialStatus": "Sprawdź status próbny",
"taskCheckTrainingStatus": "Sprawdź status treningowy",
"taskCheckDataQuality": "Sprawdź jakość danych",
"taskAssignTrainingGroup": "Przypisz grupę treningową",
"taskCheckClickTt": "Sprawdź uprawnienie Click-TT",
"taskActionVerify": "Zweryfikuj",
"taskActionMarkRegular": "Oznacz jako regularny",
"taskActionReview": "Otwórz",
"taskActionRequest": "Poproś",
"toggleSortDirection": "Zmień kierunek sortowania",
"showTtrHistory": "Pokaż historię TTR",
"missingTtrHistoryId": "Brak zapisanego identyfikatora myTischtennis",
"sortLastTraining": "Ostatni trening",
"sortOpenTasks": "Otwarte zadania",
"exportPreview": "Podgląd eksportu",
"exportMembersSelected": "aktualnie wybrani członkowie",
"exportPhones": "Telefon",
"exportReachableByPhone": "z numerem telefonu",
"exportEmails": "E-mail",
"exportReachableByEmail": "z adresem e-mail",
"exportPreviewNames": "Podgląd",
"exportPreviewEmpty": "Brak członków w bieżącym zaznaczeniu",
"exportCsv": "Eksportuj CSV",
"exportCsvFile": "wybor-czlonkow.csv",
"copyPhones": "Kopiuj telefony",
"copyEmails": "Kopiuj e-maile",
"copyPhonesSuccess": "Lista telefoniczna skopiowana do schowka.",
"copyPhonesEmpty": "Brak numerów telefonu w bieżącym zaznaczeniu.",
"copyEmailsSuccess": "Lista e-mail skopiowana do schowka.",
"copyEmailsEmpty": "Brak adresów e-mail w bieżącym zaznaczeniu.",
"composeEmail": "Przygotuj e-mail",
"copyContactSummary": "Kopiuj podsumowanie kontaktów",
"copyContactSummarySuccess": "Podsumowanie kontaktów skopiowano do schowka."
},
"diary": {
"title": "Dziennik treningowy",
"date": "Data",
"noEntries": "Brak wpisów",
"deleteDate": "Usuń datę",
"createNew": "Utwórz",
"gallery": "Galeria członków",
"galleryCreating": "Tworzenie galerii…",
"selectTrainingGroup": "Wybierz grupę treningową",
"selectTrainingGroupPlaceholder": "Wybierz...",
"suggestion": "Sugestia",
"nextAppointment": "Następny termin",
"applySuggestion": "Zastosuj sugestię",
"skipSuggestion": "Kontynuuj bez sugestii",
"createNewDate": "Utwórz nową datę",
"activeTrainingDay": "Aktywny dzień treningowy",
"trainingDaySection": "Dzień treningowy",
"trainingDayChecklist": "Lista końcowa",
"trainingStart": "Początek treningu",
"trainingEnd": "Koniec treningu",
"trainingWindow": "Okno treningowe",
"trainingWindowUnset": "Jeszcze nie ustawiono",
"groupsLabel": "Grupy",
"groupsSection": "Grupy",
"createDate": "Utwórz datę",
"editTrainingTimes": "Edytuj godziny treningu",
"updateTimes": "Aktualizuj godziny",
"groupManagement": "Zarządzanie grupami",
"createGroups": "Utwórz grupy",
"trainingPlan": "Plan treningowy",
"planActivitiesCount": "Zaplanowane aktywności",
"timeblocksCount": "Bloki czasowe",
"planEmptyState": "W planie treningowym nic jeszcze nie wpisano.",
"planAddHint": "Dodawaj nowe elementy planu za pomocą powyższych akcji.",
"startTime": "Godzina rozpoczęcia",
"group": "Grupa...",
"timeblock": "Blok czasowy",
"assignParticipants": "Przypisz uczestników",
"addTimeblock": "Blok czasowy",
"activities": "Aktywności",
"freeActivities": "Wolne aktywności",
"noFreeActivitiesYet": "Nie zapisano jeszcze żadnych wolnych aktywności.",
"addActivity": "Dodaj aktywność",
"bookAccident": "Zarejestruj wypadek",
"activity": "Aktywność",
"duration": "Czas trwania",
"activityImage": "Obraz aktywności",
"activityDrawing": "Rysunek aktywności",
"today": "Dzisiaj",
"existingGroups": "Istniejące grupy",
"leader": "Prowadzący",
"deleteGroup": "Usuń grupę",
"numberOfGroups": "Liczba grup",
"addGroup": "Dodaj grupę",
"activityOrTimeblock": "Aktywność / blok czasowy",
"durationMinutes": "Czas trwania (min)",
"addGroupActivity": "Dodaj aktywność grupową",
"addGroupButton": "+ Grupa",
"all": "Wszystkie",
"selectGroup": "Wybierz grupę...",
"activityPlaceholder": "Aktywność",
"assignShort": "Przypisz",
"statusReadyShort": "Gotowe",
"statusOpenShort": "Otwarte",
"openPlanItemsLabel": "Status planu",
"openPlanItems": "{count} otwarte",
"unassignedPlanItems": "{count} otwarte",
"durationExampleLong": "np. 2x7 lub 3*5",
"durationExampleShort": "np. 2x7",
"showImage": "Pokaż obraz/rysunek",
"participants": "Uczestnicy",
"searchParticipants": "Szukaj uczestników",
"filterAll": "Wszystkie",
"filterPresent": "Obecny",
"filterAbsent": "Nieobecny",
"filterTest": "Próba",
"quickAdd": "+ Szybkie dodawanie",
"selectTags": "Wybierz tagi",
"createDrawing": "Utwórz rysunek ćwiczenia",
"overallActivity": "Aktywność ogólna",
"editActivity": "Edytuj aktywność",
"editGroupActivity": "Edytuj aktywność grupową",
"assignParticipantsForGroupActivity": "Przypisz uczestników do aktywności grupowej",
"delete": "Usuń",
"min": "min",
"errorLoadingPredefinedActivities": "Błąd podczas ładowania predefiniowanych aktywności",
"selectParticipantAndNote": "Wybierz uczestnika i wpisz notatkę.",
"selectGroupAndActivity": "Wybierz grupę i wpisz aktywność.",
"dateCannotBeDeleted": "Nie można usunąć daty",
"dateCannotBeDeletedDetails": "Nadal istnieje zawartość (plan, uczestnicy, aktywności, wypadki lub notatki).",
"confirmDelete": "Potwierdź usunięcie",
"confirmDeleteDate": "Czy na pewno chcesz usunąć tę datę?",
"confirmDeleteDateDetails": "Wszystkie powiązane dane również zostaną usunięte.",
"noParticipants": "Brak uczestników dla tego dnia treningowego.",
"mustCreateAtLeastTwoGroups": "Za pierwszym razem trzeba utworzyć co najmniej 2 grupy.",
"oneGroupAdded": "Pomyślnie dodano 1 grupę.",
"groupsCreated": "Pomyślnie utworzono {count} grup.",
"errorCreatingGroups": "Błąd podczas tworzenia grup",
"confirmDeleteGroup": "Czy na pewno chcesz usunąć grupę „{name}”?",
"groupDeletedSuccessfully": "Grupa została pomyślnie usunięta.",
"errorDeletingGroup": "Błąd podczas usuwania grupy",
"errorCreatingActivity": "Błąd podczas tworzenia aktywności",
"trainingPlanAsPDF": "Plan treningowy jako PDF",
"trainingPlanPdfShort": "Plan jako PDF",
"trainingDayAsPDF": "Pobierz dzień treningowy jako PDF",
"trainingDayAsPDFShort": "Dzień treningowy jako PDF",
"trainingDaySummaryPdfShort": "Podsumowanie uczestników jako PDF",
"minutes": "Minuty",
"formHandedOver": "Formularz członkowski przekazany",
"errorOccurred": "Wystąpił błąd. Spróbuj ponownie.",
"trainingTimesUpdated": "Godziny treningu zostały pomyślnie zaktualizowane.",
"noActiveTrainingDay": "Nie wybrano dnia treningowego.",
"statusEmpty": "Ten dzień treningowy jest jeszcze pusty.",
"statusInProgress": "Ten dzień treningowy jest częściowo przygotowany.",
"formMarkedAsHandedOver": "Formularz członkowski oznaczono jako przekazany",
"errorMarkingForm": "Błąd podczas oznaczania formularza",
"dateNoLongerCurrent": "Wybrana data nie była już aktualna. Spróbuj ponownie.",
"activityRequired": "Wpisz aktywność.",
"activityNotFound": "Nie znaleziono aktywności. Wybierz jedną z listy.",
"standardActivities": "Aktywności standardowe",
"standardDurationShort": "min",
"standardActivityAddError": "Nie udało się dodać standardowej aktywności.",
"statusReady": "Godziny i plan treningowy są ustawione.",
"filterExcused": "Usprawiedliwiony",
"participantStatusNone": "Brak statusu",
"participantStatusExcused": "Usprawiedliwiony",
"participantStatusCancelled": "Anulowano"
},
"trainingStats": {
"title": "Statystyki treningowe",
"activeMembers": "Aktywni członkowie",
"averageParticipationCurrentMonth": "Średnia frekwencja (bieżący miesiąc)",
"averageParticipationLastMonth": "Średnia frekwencja (poprzedni miesiąc)",
"averageParticipationQuarter": "Średnia frekwencja (kwartał)",
"averageParticipationHalfYear": "Średnia frekwencja (półrocze)",
"averageParticipationYear": "Średnia frekwencja (rok)",
"trainingDays": "Dni treningowe (ostatnie 12 miesięcy)",
"memberParticipations": "Udziały członków",
"date": "Data",
"weekday": "Dzień tygodnia",
"participants": "Uczestnicy",
"name": "Nazwa",
"ttr": "TTR",
"qttr": "QTTR",
"birthdate": "Data urodzenia",
"participations12Months": "Udziały (12 miesięcy)",
"participations3Months": "Udziały (3 miesiące)",
"participationsTotal": "Udziały (łącznie)",
"lastTraining": "Ostatni trening",
"actions": "Akcje",
"showDetails": "Pokaż szczegóły"
},
"courtDrawingTool": {
"title": "Rysunek ćwiczenia tenisa stołowego",
"configureExercise": "Konfiguruj ćwiczenie",
"stepStartPosition": "1. Pozycja startowa",
"stepStartPositionHint": "Z której pozycji serwisowej zaczyna się ćwiczenie?",
"stepFirstStroke": "2. Pierwsze zagranie",
"stepFirstStrokeHint": "Ustaw stronę i rotację pierwszej piłki.",
"stepTarget": "3. Cel",
"stepTargetHint": "Wybierz strefę celu dla pierwszego zagrania.",
"stepAdditionalStrokes": "4. Kolejne zagrania",
"stepAdditionalStrokesHint": "Opcjonalnie dodaj kolejne piłki jako sekwencję.",
"noAdditionalStrokes": "Nie dodano jeszcze kolejnych zagrań.",
"service": "Serwis:",
"serviceTitle": "Serwis",
"forehand": "Forehand",
"backhand": "Backhand",
"spin": "Rotacja:",
"underspin": "Podcięcie",
"topspin": "Topspin",
"sidespin": "Rotacja boczna",
"sideUnderspin": "Boczne podcięcie",
"counterSpin": "Kontratopspin",
"targetPosition": "Pozycja celu:",
"targetPositionLabel": "Pozycja celu",
"strokeSide": "Strona",
"strokeTypeLabel": "Typ zagrania",
"addStroke": "Dodaj zagranie",
"preview": "Podgląd",
"previewHint": "Grafika pojawi się, gdy pierwsze zagranie będzie w pełni skonfigurowane.",
"completeFirstStroke": "Uzupełnij pierwsze zagranie",
"completeFirstStrokeHint": "Wybierz pozycję startową, stronę, rotację i cel. Następnie pojawi się grafika.",
"codeLabel": "Kod",
"titleLabel": "Tytuł",
"startLeft": "lewa",
"startMiddle": "środek",
"startRight": "prawa",
"strokeTypePush": "Pchnięcie",
"strokeTypeCounter": "Kontra",
"strokeTypeTopspin": "Topspin",
"strokeTypeFlip": "Flip",
"strokeTypeBlock": "Blok",
"strokeTypeSmash": "Smecz",
"strokeTypeChopDefense": "Obrona podcięciem",
"strokeTypeLobDefense": "Obrona lobem",
"targetForehandLong": "Forehand długi",
"targetMiddleLong": "Środek długi",
"targetBackhandLong": "Backhand długi",
"targetForehandHalfLong": "Forehand półdługi",
"targetMiddleHalfLong": "Środek półdługi",
"targetBackhandHalfLong": "Backhand półdługi",
"targetForehandShort": "Forehand krótki",
"targetMiddleShort": "Środek krótki",
"targetBackhandShort": "Backhand krótki",
"toTarget": "do"
}
}

View File

@@ -22,7 +22,41 @@
"next": "ถัดไป",
"previous": "ก่อนหน้า",
"submit": "ส่ง",
"reset": "รีเซ็ต"
"reset": "รีเซ็ต",
"all": "ทั้งหมด",
"today": "วันนี้",
"time": "เวลา",
"new": "ใหม่",
"update": "อัปเดต",
"create": "สร้าง",
"remove": "เอาออก",
"select": "เลือก",
"download": "ดาวน์โหลด",
"choose": "เลือก",
"apply": "นำไปใช้",
"clear": "ล้าง",
"details": "รายละเอียด",
"view": "แสดง",
"name": "ชื่อ",
"date": "วันที่",
"status": "สถานะ",
"type": "ประเภท",
"description": "คำอธิบาย",
"active": "ใช้งานอยู่",
"inactive": "ไม่ใช้งาน",
"enabled": "เปิดใช้งาน",
"disabled": "ปิดใช้งาน",
"required": "จำเป็น",
"optional": "ไม่บังคับ",
"in": "ใน",
"min": "นาที",
"minutes": "นาที",
"hours": "ชั่วโมง",
"days": "วัน",
"weeks": "สัปดาห์",
"months": "เดือน",
"years": "ปี",
"ok": "ตกลง"
},
"navigation": {
"home": "หน้าแรก",
@@ -41,13 +75,16 @@
"logs": "บันทึกระบบ",
"memberTransfer": "การโอนสมาชิก",
"myTischtennisAccount": "บัญชี myTischtennis",
"clickTtAccount": "บัญชี HTTV / click-TT",
"clickTtBrowser": "HTTV / click-TT",
"personalSettings": "การตั้งค่าส่วนตัว",
"logout": "ออกจากระบบ",
"login": "เข้าสู่ระบบ",
"register": "ลงทะเบียน",
"dailyBusiness": "ธุรกิจประจำวัน",
"competitions": "การแข่งขัน",
"settings": "การตั้งค่า"
"settings": "การตั้งค่า",
"backToHome": "กลับหน้าแรก"
},
"club": {
"select": "เลือกสโมสร",
@@ -56,7 +93,20 @@
"load": "โหลด",
"name": "ชื่อสโมสร",
"create": "สร้างสโมสร",
"accessRequestPending": "Access to this club has been requested. Please be patient."
"createTitle": "สร้างสโมสร",
"members": "สมาชิก",
"trainingDiary": "สมุดบันทึกการฝึกซ้อม",
"noAccess": "คุณยังไม่ได้รับสิทธิ์เข้าถึงสโมสรนี้",
"requestAccess": "ขอสิทธิ์เข้าถึง",
"openRequests": "คำขอเข้าถึงที่รอดำเนินการ",
"title": "สโมสร",
"openAccessRequests": "คำขอเข้าถึงที่รอดำเนินการ",
"diary": "สมุดบันทึกการฝึกซ้อม",
"accessDenied": "ไม่ได้รับอนุญาตให้เข้าถึงสโมสรนี้",
"errorLoadingRequests": "เกิดข้อผิดพลาดในการโหลดคำขอที่รอดำเนินการ",
"accessRequested": "ส่งคำขอเข้าถึงแล้ว",
"accessRequestPending": "ได้ส่งคำขอเข้าถึงสโมสรนี้แล้ว โปรดรอสักครู่",
"accessRequestFailed": "ไม่สามารถส่งคำขอเข้าถึงได้"
},
"auth": {
"login": "เข้าสู่ระบบ",
@@ -331,6 +381,106 @@
"stageFlowQualifiedPreviewEntry": "G{group} · Place {position} · {name}"
},
"members": {
"title": "สมาชิก",
"memberInfo": "ข้อมูลสมาชิก",
"activeMembers": "สมาชิกที่ใช้งานอยู่",
"testMembers": "สมาชิกทดลอง",
"inactiveMembers": "สมาชิกที่ไม่ใช้งาน",
"generatePhoneList": "สร้างรายการโทรศัพท์",
"onlyActiveMembers": "จะแสดงเฉพาะสมาชิกที่ใช้งานอยู่",
"updateRatings": "อัปเดต TTR/QTTR จาก myTischtennis",
"updating": "กำลังอัปเดต...",
"transferMembers": "โอนสมาชิก",
"newMember": "สมาชิกใหม่",
"editMember": "แก้ไขสมาชิก",
"createNewMember": "สร้างสมาชิกใหม่",
"firstName": "ชื่อ",
"lastName": "นามสกุล",
"street": "ถนน",
"postalCode": "รหัสไปรษณีย์",
"city": "เมือง",
"birthdate": "วันเกิด",
"phones": "หมายเลขโทรศัพท์",
"emails": "อีเมล",
"addPhone": "เพิ่มหมายเลขโทรศัพท์",
"addEmail": "เพิ่มอีเมล",
"phoneNumber": "หมายเลขโทรศัพท์",
"emailAddress": "อีเมล",
"parent": "ผู้ปกครอง",
"parentName": "ชื่อ (เช่น แม่ พ่อ)",
"primary": "หลัก",
"gender": "เพศ",
"genderUnknown": "ไม่ทราบ",
"genderMale": "ชาย",
"genderFemale": "หญิง",
"genderDiverse": "หลากหลาย",
"picsInInternetAllowed": "อนุญาตให้ใช้รูปบนอินเทอร์เน็ต",
"testMembership": "สมาชิกทดลอง",
"memberFormHandedOver": "ส่งแบบฟอร์มสมาชิกแล้ว",
"trainingGroups": "กลุ่มฝึกซ้อม",
"noGroupsAssigned": "ยังไม่ได้กำหนดกลุ่ม",
"noGroupsAvailable": "ไม่มีกลุ่มให้เลือก",
"addGroup": "เพิ่มกลุ่ม...",
"remove": "เอาออก",
"image": "รูปภาพ",
"selectFile": "เลือกไฟล์",
"camera": "กล้อง",
"imagePreview": "ตัวอย่างรูปสมาชิก",
"change": "เปลี่ยน",
"create": "สร้าง",
"clearFields": "ล้างช่องข้อมูล",
"showInactiveMembers": "แสดงสมาชิกที่ไม่ใช้งาน",
"ageGroup": "กลุ่มอายุ",
"adults": "ผู้ใหญ่ (20+)",
"j19": "J19 (19 ปีหรือน้อยกว่า)",
"j17": "J17 (17 ปีหรือน้อยกว่า)",
"j15": "J15 (15 ปีหรือน้อยกว่า)",
"j13": "J13 (13 ปีหรือน้อยกว่า)",
"j11": "J11 (11 ปีหรือน้อยกว่า)",
"clearFilters": "รีเซ็ตตัวกรอง",
"imageInternet": "รูปภาพ (เน็ต)",
"testMember": "ทดลอง",
"name": "ชื่อ นามสกุล",
"ttrQttr": "TTR / QTTR",
"address": "ที่อยู่",
"active": "ใช้งานอยู่",
"actions": "การดำเนินการ",
"phoneNumberShort": "โทรศัพท์",
"emailAddressShort": "อีเมล",
"trainingParticipations": "การเข้าร่วมฝึกซ้อม",
"memberImage": "รูปสมาชิก",
"inactive": "ไม่ใช้งาน",
"sixOrMoreParticipations": "เข้าร่วมฝึกซ้อม 6 ครั้งขึ้นไป",
"threeOrMoreParticipations": "เข้าร่วมฝึกซ้อม 3 ครั้งขึ้นไป",
"noTestMembership": "ไม่ใช่สมาชิกทดลองอีกต่อไป",
"formHandedOver": "ส่งแบบฟอร์มสมาชิกแล้ว",
"deactivateMember": "ปิดการใช้งานสมาชิก",
"notes": "บันทึกย่อ",
"exercises": "แบบฝึก",
"memberImages": "รูปสมาชิก",
"testMembershipRemoved": "ลบสถานะสมาชิกทดลองแล้ว",
"errorRemovingTestMembership": "เกิดข้อผิดพลาดในการลบสถานะสมาชิกทดลอง",
"formMarkedAsHandedOver": "ทำเครื่องหมายว่าได้ส่งแบบฟอร์มสมาชิกแล้ว",
"errorMarkingForm": "เกิดข้อผิดพลาดในการทำเครื่องหมายแบบฟอร์ม",
"deactivateMemberTitle": "ปิดการใช้งานสมาชิก",
"deactivateMemberConfirm": "คุณต้องการปิดการใช้งาน \"{name}\" จริงหรือไม่?",
"memberDeactivated": "ปิดการใช้งานสมาชิกแล้ว",
"errorDeactivatingMember": "เกิดข้อผิดพลาดในการปิดการใช้งานสมาชิก",
"errorSavingMember": "เกิดข้อผิดพลาดในการบันทึกสมาชิก",
"errorAddingToGroup": "เกิดข้อผิดพลาดในการเพิ่มเข้ากลุ่ม",
"errorRemovingFromGroup": "เกิดข้อผิดพลาดในการลบออกจากกลุ่ม",
"imageUpdated": "อัปเดตรูปภาพแล้ว",
"errorRotatingImage": "เกิดข้อผิดพลาดในการหมุนรูปภาพ",
"imageDeleted": "ลบรูปภาพแล้ว",
"errorDeletingImage": "ไม่สามารถลบรูปภาพได้",
"primaryImageUpdated": "อัปเดตรูปภาพหลักแล้ว",
"errorSettingPrimaryImage": "ไม่สามารถตั้งรูปภาพหลักได้",
"errorUploadingImage": "ไม่สามารถอัปโหลดรูปภาพได้",
"errorLoadingImage": "เกิดข้อผิดพลาดในการโหลดรูปภาพ",
"phoneList": "รายการโทรศัพท์.pdf",
"errorLoadingTrainingParticipations": "เกิดข้อผิดพลาดในการโหลดการเข้าร่วมฝึกซ้อม",
"errorUpdatingRatings": "เกิดข้อผิดพลาดในการอัปเดตค่า TTR/QTTR",
"errorTransfer": "เกิดข้อผิดพลาดในการโอนข้อมูล",
"subtitle": "Search, filter and edit members directly.",
"closeEditor": "Close editor",
"visibleMembers": "Visible members",
@@ -341,11 +491,17 @@
"scopeActive": "Active",
"scopeTest": "Trial",
"scopeNeedsForm": "Form unverified",
"scopeActiveDataIncomplete": "ใช้งานอยู่ + ข้อมูลไม่ครบ",
"scopeDataIncomplete": "ข้อมูลไม่ครบ",
"scopeInactive": "Inactive",
"searchAndFilter": "ค้นหาและตัวกรอง",
"bulkActions": "การดำเนินการแบบกลุ่ม",
"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}.",
"editorAssignTrainingGroupHint": "กรุณากำหนดกลุ่มฝึกซ้อมอย่างน้อยหนึ่งกลุ่ม",
"editorRecommendedEntry": "ข้อมูลที่แนะนำให้กรอก",
"transferSuccessTitle": "Transfer successful",
"transferErrorTitle": "Transfer error",
"clickTtRequestPending": "Click-TT request in progress",
@@ -363,7 +519,7 @@
"errorLoadingMembers": "Failed to load the member list.",
"scopeNotTraining": "No longer training",
"notInTrainingTooltip": "No participation for {weeks} training weeks",
"status": "Status",
"status": "สถานะ",
"contact": "Contact",
"noPhoneShort": "No phone",
"noEmailShort": "No email",
@@ -390,17 +546,33 @@
"sortFirstName": "First name",
"sortBirthday": "Birthday",
"sortAge": "Age",
"ageRange": "ช่วงอายุ",
"ageFromPlaceholder": "จาก",
"ageToPlaceholder": "ถึง",
"age": "Age",
"dataQuality": "คุณภาพข้อมูล",
"dataQualityComplete": "ข้อมูลครบถ้วน",
"dataIssueBirthdate": "ไม่มีวันเกิด",
"dataIssuePhone": "ไม่มีหมายเลขโทรศัพท์",
"dataIssueEmail": "ไม่มีอีเมล",
"dataIssueAddress": "ไม่มีที่อยู่",
"dataIssueGender": "เพศยังไม่ชัดเจน",
"dataIssueTrainingGroup": "ไม่มีกลุ่มฝึกซ้อม",
"openTasks": "Open tasks",
"noOpenTasks": "No open tasks",
"taskVerifyForm": "Verify form",
"taskReviewTrialStatus": "Review trial status",
"taskCheckTrainingStatus": "Review training status",
"taskCheckDataQuality": "ตรวจสอบคุณภาพข้อมูล",
"taskAssignTrainingGroup": "กำหนดกลุ่มฝึกซ้อม",
"taskCheckClickTt": "Review Click-TT eligibility",
"taskActionVerify": "Verify",
"taskActionMarkRegular": "Mark regular",
"taskActionReview": "เปิด",
"taskActionRequest": "Request",
"toggleSortDirection": "Toggle sort direction",
"showTtrHistory": "แสดงประวัติ TTR",
"missingTtrHistoryId": "ไม่มีการบันทึก myTischtennis ID",
"sortLastTraining": "Last training",
"sortOpenTasks": "Open tasks",
"exportPreview": "Export preview",
@@ -422,5 +594,212 @@
"composeEmail": "Compose email",
"copyContactSummary": "Copy contact summary",
"copyContactSummarySuccess": "Contact summary copied to clipboard."
},
"diary": {
"title": "สมุดบันทึกการฝึกซ้อม",
"date": "วันที่",
"noEntries": "ไม่มีรายการ",
"deleteDate": "ลบวันที่",
"createNew": "สร้างใหม่",
"gallery": "แกลเลอรีสมาชิก",
"galleryCreating": "กำลังสร้างแกลเลอรี…",
"selectTrainingGroup": "เลือกกลุ่มฝึกซ้อม",
"selectTrainingGroupPlaceholder": "กรุณาเลือก...",
"suggestion": "ข้อเสนอแนะ",
"nextAppointment": "นัดถัดไป",
"applySuggestion": "ใช้ข้อเสนอแนะ",
"skipSuggestion": "ดำเนินการต่อโดยไม่ใช้ข้อเสนอแนะ",
"createNewDate": "สร้างวันที่ใหม่",
"activeTrainingDay": "วันฝึกซ้อมที่ใช้งานอยู่",
"trainingDaySection": "วันฝึกซ้อม",
"trainingDayChecklist": "รายการตรวจสอบความครบถ้วน",
"trainingStart": "เริ่มฝึกซ้อม",
"trainingEnd": "สิ้นสุดการฝึกซ้อม",
"trainingWindow": "ช่วงเวลาฝึกซ้อม",
"trainingWindowUnset": "ยังไม่ได้ตั้งค่า",
"groupsLabel": "กลุ่ม",
"groupsSection": "กลุ่ม",
"createDate": "สร้างวันที่",
"editTrainingTimes": "แก้ไขเวลาฝึกซ้อม",
"updateTimes": "อัปเดตเวลา",
"groupManagement": "การจัดการกลุ่ม",
"createGroups": "สร้างกลุ่ม",
"trainingPlan": "แผนการฝึกซ้อม",
"planActivitiesCount": "กิจกรรมในแผน",
"timeblocksCount": "ช่วงเวลา",
"planEmptyState": "ยังไม่มีรายการในแผนการฝึกซ้อม",
"planAddHint": "คุณสามารถเพิ่มรายการใหม่ได้จากปุ่มด้านบน",
"startTime": "เวลาเริ่ม",
"group": "กลุ่ม...",
"timeblock": "ช่วงเวลา",
"assignParticipants": "กำหนดผู้เข้าร่วม",
"addTimeblock": "ช่วงเวลา",
"activities": "กิจกรรม",
"freeActivities": "กิจกรรมอิสระ",
"noFreeActivitiesYet": "ยังไม่มีการบันทึกกิจกรรมอิสระ",
"addActivity": "เพิ่มกิจกรรม",
"bookAccident": "บันทึกอุบัติเหตุ",
"activity": "กิจกรรม",
"duration": "ระยะเวลา",
"activityImage": "รูปกิจกรรม",
"activityDrawing": "ภาพวาดกิจกรรม",
"today": "วันนี้",
"existingGroups": "กลุ่มที่มีอยู่",
"leader": "ผู้ดูแล",
"deleteGroup": "ลบกลุ่ม",
"numberOfGroups": "จำนวนกลุ่ม",
"addGroup": "เพิ่มกลุ่ม",
"activityOrTimeblock": "กิจกรรม / ช่วงเวลา",
"durationMinutes": "ระยะเวลา (นาที)",
"standardActivities": "กิจกรรมมาตรฐาน",
"standardDurationShort": "นาที",
"standardActivityAddError": "ไม่สามารถเพิ่มกิจกรรมมาตรฐานได้",
"addGroupActivity": "เพิ่มกิจกรรมของกลุ่ม",
"addGroupButton": "+ กลุ่ม",
"all": "ทั้งหมด",
"selectGroup": "เลือกกลุ่ม...",
"activityPlaceholder": "กิจกรรม",
"assignShort": "กำหนด",
"statusReadyShort": "พร้อม",
"statusOpenShort": "เปิด",
"openPlanItemsLabel": "สถานะแผน",
"openPlanItems": "เปิดอยู่ {count} รายการ",
"unassignedPlanItems": "ยังไม่กำหนด {count} รายการ",
"durationExampleLong": "เช่น 2x7 หรือ 3*5",
"durationExampleShort": "เช่น 2x7",
"showImage": "แสดงรูป/ภาพวาด",
"participants": "ผู้เข้าร่วม",
"searchParticipants": "ค้นหาผู้เข้าร่วม",
"filterAll": "ทั้งหมด",
"filterPresent": "มาเข้าร่วม",
"filterAbsent": "ขาด",
"filterExcused": "ลา",
"filterTest": "ทดลอง",
"participantStatusNone": "ไม่มีสถานะ",
"participantStatusExcused": "ลา",
"participantStatusCancelled": "ยกเลิก",
"quickAdd": "+ เพิ่มด่วน",
"selectTags": "เลือกแท็ก",
"createDrawing": "สร้างภาพฝึกซ้อม",
"overallActivity": "กิจกรรมรวม",
"editActivity": "แก้ไขกิจกรรม",
"editGroupActivity": "แก้ไขกิจกรรมกลุ่ม",
"assignParticipantsForGroupActivity": "กำหนดผู้เข้าร่วมสำหรับกิจกรรมกลุ่ม",
"delete": "ลบ",
"min": "นาที",
"errorLoadingPredefinedActivities": "เกิดข้อผิดพลาดในการโหลดกิจกรรมที่กำหนดไว้ล่วงหน้า",
"selectParticipantAndNote": "กรุณาเลือกผู้เข้าร่วมและใส่ข้อความบันทึก",
"selectGroupAndActivity": "กรุณาเลือกกลุ่มและกรอกกิจกรรม",
"dateCannotBeDeleted": "ไม่สามารถลบวันที่ได้",
"dateCannotBeDeletedDetails": "ยังมีเนื้อหาอยู่ (แผนการฝึก ผู้เข้าร่วม กิจกรรม อุบัติเหตุ หรือบันทึก)",
"confirmDelete": "ยืนยันการลบ",
"confirmDeleteDate": "คุณต้องการลบวันที่นี้จริงหรือไม่?",
"confirmDeleteDateDetails": "ข้อมูลที่เกี่ยวข้องทั้งหมดจะถูกลบด้วย",
"noParticipants": "ไม่มีผู้เข้าร่วมสำหรับวันฝึกซ้อมนี้",
"mustCreateAtLeastTwoGroups": "การสร้างครั้งแรกต้องมีอย่างน้อย 2 กลุ่ม",
"oneGroupAdded": "เพิ่มกลุ่มสำเร็จ 1 กลุ่ม",
"groupsCreated": "สร้างกลุ่มสำเร็จ {count} กลุ่ม",
"errorCreatingGroups": "เกิดข้อผิดพลาดในการสร้างกลุ่ม",
"confirmDeleteGroup": "คุณต้องการลบกลุ่ม \"{name}\" จริงหรือไม่?",
"groupDeletedSuccessfully": "ลบกลุ่มสำเร็จ",
"errorDeletingGroup": "เกิดข้อผิดพลาดในการลบกลุ่ม",
"errorCreatingActivity": "เกิดข้อผิดพลาดในการสร้างกิจกรรม",
"trainingPlanAsPDF": "แผนการฝึกซ้อมเป็น PDF",
"trainingPlanPdfShort": "แผนการดำเนินงาน PDF",
"trainingDayAsPDF": "ดาวน์โหลดวันฝึกซ้อมเป็น PDF",
"trainingDayAsPDFShort": "วันฝึกซ้อม PDF",
"trainingDaySummaryPdfShort": "สรุปผู้เข้าร่วม PDF",
"minutes": "นาที",
"formHandedOver": "ส่งแบบฟอร์มสมาชิกแล้ว",
"errorOccurred": "เกิดข้อผิดพลาด โปรดลองอีกครั้ง",
"trainingTimesUpdated": "อัปเดตเวลาฝึกซ้อมสำเร็จ",
"noActiveTrainingDay": "ไม่ได้เลือกวันฝึกซ้อม",
"statusReady": "ตั้งค่าเวลาและแผนการฝึกซ้อมแล้ว",
"statusEmpty": "วันฝึกซ้อมนี้ยังว่างอยู่",
"statusInProgress": "วันฝึกซ้อมนี้เตรียมไว้เพียงบางส่วน",
"formMarkedAsHandedOver": "ทำเครื่องหมายว่าได้ส่งแบบฟอร์มสมาชิกแล้ว",
"errorMarkingForm": "เกิดข้อผิดพลาดในการทำเครื่องหมายแบบฟอร์มสมาชิก",
"dateNoLongerCurrent": "วันที่ที่เลือกไม่ใช่ข้อมูลล่าสุดอีกต่อไป โปรดลองอีกครั้ง",
"activityRequired": "กรุณากรอกกิจกรรม",
"activityNotFound": "ไม่พบกิจกรรม กรุณาเลือกจากรายการ"
},
"trainingStats": {
"title": "สถิติการฝึกซ้อม",
"activeMembers": "สมาชิกที่ใช้งานอยู่",
"averageParticipationCurrentMonth": "การเข้าร่วมเฉลี่ย (เดือนปัจจุบัน)",
"averageParticipationLastMonth": "การเข้าร่วมเฉลี่ย (เดือนที่ผ่านมา)",
"averageParticipationQuarter": "การเข้าร่วมเฉลี่ย (ไตรมาส)",
"averageParticipationHalfYear": "การเข้าร่วมเฉลี่ย (ครึ่งปี)",
"averageParticipationYear": "การเข้าร่วมเฉลี่ย (ปี)",
"trainingDays": "วันฝึกซ้อม (12 เดือนล่าสุด)",
"memberParticipations": "การเข้าร่วมของสมาชิก",
"date": "วันที่",
"weekday": "วันในสัปดาห์",
"participants": "ผู้เข้าร่วม",
"name": "ชื่อ",
"ttr": "TTR",
"qttr": "QTTR",
"birthdate": "วันเกิด",
"participations12Months": "การเข้าร่วม (12 เดือน)",
"participations3Months": "การเข้าร่วม (3 เดือน)",
"participationsTotal": "การเข้าร่วม (ทั้งหมด)",
"lastTraining": "การฝึกซ้อมล่าสุด",
"actions": "การดำเนินการ",
"showDetails": "แสดงรายละเอียด"
},
"courtDrawingTool": {
"title": "ภาพวาดแบบฝึกปิงปอง",
"configureExercise": "กำหนดค่าแบบฝึก",
"stepStartPosition": "1. ตำแหน่งเริ่มต้น",
"stepStartPositionHint": "แบบฝึกเริ่มจากตำแหน่งเสิร์ฟใด?",
"stepFirstStroke": "2. ลูกแรก",
"stepFirstStrokeHint": "กำหนดด้านตีและสปินสำหรับลูกแรก",
"stepTarget": "3. เป้าหมาย",
"stepTargetHint": "เลือกโซนเป้าหมายสำหรับลูกแรก",
"stepAdditionalStrokes": "4. ลูกต่อเนื่อง",
"stepAdditionalStrokesHint": "สามารถเพิ่มลูกต่อเนื่องเป็นรายการได้ตามต้องการ",
"noAdditionalStrokes": "ยังไม่มีลูกต่อเนื่อง",
"service": "เสิร์ฟ:",
"serviceTitle": "การเสิร์ฟ",
"forehand": "โฟร์แฮนด์",
"backhand": "แบ็กแฮนด์",
"spin": "สปิน:",
"underspin": "อันเดอร์สปิน",
"topspin": "ท็อปสปิน",
"sidespin": "ไซด์สปิน",
"sideUnderspin": "ไซด์อันเดอร์สปิน",
"counterSpin": "สปินสวน",
"targetPosition": "ตำแหน่งเป้าหมาย:",
"targetPositionLabel": "ตำแหน่งเป้าหมาย",
"strokeSide": "ด้านตี",
"strokeTypeLabel": "ประเภทการตี",
"addStroke": "เพิ่มการตี",
"preview": "ตัวอย่าง",
"previewHint": "กราฟิกจะแสดงเมื่อกำหนดลูกแรกครบถ้วนแล้ว",
"completeFirstStroke": "กำหนดลูกแรกให้ครบ",
"completeFirstStrokeHint": "เลือกตำแหน่งเริ่ม ด้านตี สปิน และเป้าหมาย แล้วภาพจะแสดงขึ้น",
"codeLabel": "รหัสย่อ",
"titleLabel": "ชื่อเรื่อง",
"startLeft": "ซ้าย",
"startMiddle": "กลาง",
"startRight": "ขวา",
"strokeTypePush": "ผลัก",
"strokeTypeCounter": "เคาน์เตอร์",
"strokeTypeTopspin": "ท็อปสปิน",
"strokeTypeFlip": "ฟลิก",
"strokeTypeBlock": "บล็อก",
"strokeTypeSmash": "ตบ",
"strokeTypeChopDefense": "รับแบบช็อป",
"strokeTypeLobDefense": "รับแบบลอบ",
"targetForehandLong": "โฟร์แฮนด์ยาว",
"targetMiddleLong": "กลางยาว",
"targetBackhandLong": "แบ็กแฮนด์ยาว",
"targetForehandHalfLong": "โฟร์แฮนด์กึ่งยาว",
"targetMiddleHalfLong": "กลางกึ่งยาว",
"targetBackhandHalfLong": "แบ็กแฮนด์กึ่งยาว",
"targetForehandShort": "โฟร์แฮนด์สั้น",
"targetMiddleShort": "กลางสั้น",
"targetBackhandShort": "แบ็กแฮนด์สั้น",
"toTarget": "ไปยัง"
}
}

View File

@@ -22,7 +22,41 @@
"next": "Susunod",
"previous": "Nakaraan",
"submit": "Ipasa",
"reset": "I-reset"
"reset": "I-reset",
"all": "Lahat",
"today": "Ngayon",
"time": "Oras",
"new": "Bago",
"update": "I-update",
"create": "Lumikha",
"remove": "Alisin",
"select": "Pumili",
"download": "I-download",
"choose": "Pumili",
"apply": "Ilapat",
"clear": "Burahin",
"details": "Mga detalye",
"view": "Tingnan",
"name": "Pangalan",
"date": "Petsa",
"status": "Katayuan",
"type": "Uri",
"description": "Paglalarawan",
"active": "Aktibo",
"inactive": "Hindi aktibo",
"enabled": "Pinagana",
"disabled": "Hindi pinagana",
"required": "Kinakailangan",
"optional": "Opsyonal",
"in": "sa",
"min": "Min",
"minutes": "Minuto",
"hours": "Oras",
"days": "Araw",
"weeks": "Linggo",
"months": "Buwan",
"years": "Taon",
"ok": "OK"
},
"navigation": {
"home": "Home",
@@ -41,13 +75,16 @@
"logs": "Mga system log",
"memberTransfer": "Paglipat ng miyembro",
"myTischtennisAccount": "myTischtennis Account",
"clickTtAccount": "HTTV / click-TT Account",
"clickTtBrowser": "HTTV / click-TT",
"personalSettings": "Mga personal na setting",
"logout": "Mag-logout",
"login": "Mag-login",
"register": "Magrehistro",
"dailyBusiness": "Araw-araw na negosyo",
"competitions": "Mga kompetisyon",
"settings": "Mga setting"
"settings": "Mga setting",
"backToHome": "Bumalik sa home"
},
"club": {
"select": "Pumili ng club",
@@ -56,7 +93,20 @@
"load": "I-load",
"name": "Pangalan ng club",
"create": "Gumawa ng club",
"accessRequestPending": "Access to this club has been requested. Please be patient."
"createTitle": "Gumawa ng club",
"members": "Mga miyembro",
"trainingDiary": "Talaarawan ng pagsasanay",
"noAccess": "Wala ka pang pahintulot na ma-access ang club na ito.",
"requestAccess": "Humiling ng access",
"openRequests": "Mga nakabinbing hiling sa access",
"title": "Club",
"openAccessRequests": "Mga nakabinbing hiling sa access",
"diary": "Talaarawan ng pagsasanay",
"accessDenied": "Hindi pinapayagan ang access sa club na ito.",
"errorLoadingRequests": "Error sa pag-load ng mga nakabinbing hiling",
"accessRequested": "Naipadala na ang hiling sa access.",
"accessRequestPending": "Humiling ka na ng access sa club na ito. Maghintay lamang.",
"accessRequestFailed": "Hindi naipadala ang hiling sa access."
},
"auth": {
"login": "Mag-login",
@@ -331,6 +381,106 @@
"stageFlowQualifiedPreviewEntry": "G{group} · Place {position} · {name}"
},
"members": {
"title": "Mga miyembro",
"memberInfo": "Impormasyon ng miyembro",
"activeMembers": "Mga aktibong miyembro",
"testMembers": "Mga trial na miyembro",
"inactiveMembers": "Mga hindi aktibong miyembro",
"generatePhoneList": "Gumawa ng listahan ng telepono",
"onlyActiveMembers": "Tanging mga aktibong miyembro lamang ang ilalabas",
"updateRatings": "I-update ang TTR/QTTR mula sa myTischtennis",
"updating": "Nag-a-update...",
"transferMembers": "Ilipat ang mga miyembro",
"newMember": "Bagong miyembro",
"editMember": "I-edit ang miyembro",
"createNewMember": "Lumikha ng bagong miyembro",
"firstName": "Pangalan",
"lastName": "Apelyido",
"street": "Kalye",
"postalCode": "Postal code",
"city": "Lungsod",
"birthdate": "Petsa ng kapanganakan",
"phones": "Mga numero ng telepono",
"emails": "Mga email address",
"addPhone": "Magdagdag ng numero ng telepono",
"addEmail": "Magdagdag ng email address",
"phoneNumber": "Numero ng telepono",
"emailAddress": "Email address",
"parent": "Magulang",
"parentName": "Pangalan (hal. ina, ama)",
"primary": "Pangunahin",
"gender": "Kasarian",
"genderUnknown": "Hindi alam",
"genderMale": "Lalaki",
"genderFemale": "Babae",
"genderDiverse": "Iba pa",
"picsInInternetAllowed": "Pinapayagan ang larawan sa internet",
"testMembership": "Trial membership",
"memberFormHandedOver": "Naibigay na ang form ng miyembro",
"trainingGroups": "Mga grupo ng pagsasanay",
"noGroupsAssigned": "Walang grupong nakatalaga",
"noGroupsAvailable": "Walang available na grupo",
"addGroup": "Magdagdag ng grupo...",
"remove": "Alisin",
"image": "Larawan",
"selectFile": "Pumili ng file",
"camera": "Camera",
"imagePreview": "Preview ng larawan ng miyembro",
"change": "Baguhin",
"create": "Lumikha",
"clearFields": "Burahin ang mga field",
"showInactiveMembers": "Ipakita ang mga hindi aktibong miyembro",
"ageGroup": "Pangkat ng edad",
"adults": "Adulto (20+)",
"j19": "J19 (19 pababa)",
"j17": "J17 (17 pababa)",
"j15": "J15 (15 pababa)",
"j13": "J13 (13 pababa)",
"j11": "J11 (11 pababa)",
"clearFilters": "I-reset ang mga filter",
"imageInternet": "Larawan (net?)",
"testMember": "Trial",
"name": "Apelyido, Pangalan",
"ttrQttr": "TTR / QTTR",
"address": "Address",
"active": "Aktibo",
"actions": "Mga aksyon",
"phoneNumberShort": "Telepono",
"emailAddressShort": "Email",
"trainingParticipations": "Paglahok sa pagsasanay",
"memberImage": "Larawan ng miyembro",
"inactive": "hindi aktibo",
"sixOrMoreParticipations": "6 o higit pang paglahok sa pagsasanay",
"threeOrMoreParticipations": "3 o higit pang paglahok sa pagsasanay",
"noTestMembership": "Hindi na trial member",
"formHandedOver": "Naibigay na ang form ng miyembro",
"deactivateMember": "I-deactivate ang miyembro",
"notes": "Mga tala",
"exercises": "Mga ehersisyo",
"memberImages": "Mga larawan ng miyembro",
"testMembershipRemoved": "Inalis na ang trial membership.",
"errorRemovingTestMembership": "Error sa pag-alis ng trial membership.",
"formMarkedAsHandedOver": "Namarkahan bilang naibigay na ang form ng miyembro.",
"errorMarkingForm": "Error sa pagmamarka ng form.",
"deactivateMemberTitle": "I-deactivate ang miyembro",
"deactivateMemberConfirm": "Sigurado ka bang ide-deactivate si \"{name}\"?",
"memberDeactivated": "Na-deactivate na ang miyembro",
"errorDeactivatingMember": "Error sa pag-deactivate ng miyembro",
"errorSavingMember": "Error sa pag-save ng miyembro",
"errorAddingToGroup": "Error sa pagdagdag sa grupo",
"errorRemovingFromGroup": "Error sa pag-alis mula sa grupo",
"imageUpdated": "Na-update na ang larawan",
"errorRotatingImage": "Error sa pag-ikot ng larawan",
"imageDeleted": "Nabura na ang larawan.",
"errorDeletingImage": "Hindi mabura ang larawan",
"primaryImageUpdated": "Na-update na ang pangunahing larawan.",
"errorSettingPrimaryImage": "Hindi maitakda ang pangunahing larawan",
"errorUploadingImage": "Hindi ma-upload ang larawan",
"errorLoadingImage": "Error sa pag-load ng larawan",
"phoneList": "ListahanNgTelepono.pdf",
"errorLoadingTrainingParticipations": "Error sa pag-load ng paglahok sa pagsasanay",
"errorUpdatingRatings": "Error sa pag-update ng mga TTR/QTTR value",
"errorTransfer": "Error sa paglipat",
"subtitle": "Search, filter and edit members directly.",
"closeEditor": "Close editor",
"visibleMembers": "Visible members",
@@ -341,11 +491,17 @@
"scopeActive": "Active",
"scopeTest": "Trial",
"scopeNeedsForm": "Form unverified",
"scopeActiveDataIncomplete": "Aktibo + hindi kumpleto ang datos",
"scopeDataIncomplete": "Hindi kumpleto ang datos",
"scopeInactive": "Inactive",
"searchAndFilter": "Paghahanap at mga filter",
"bulkActions": "Mga bulk action",
"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}.",
"editorAssignTrainingGroupHint": "Mangyaring magtalaga ng kahit isang grupo ng pagsasanay.",
"editorRecommendedEntry": "Inirerekomendang entry",
"transferSuccessTitle": "Transfer successful",
"transferErrorTitle": "Transfer error",
"clickTtRequestPending": "Click-TT request in progress",
@@ -363,7 +519,7 @@
"errorLoadingMembers": "Failed to load the member list.",
"scopeNotTraining": "No longer training",
"notInTrainingTooltip": "No participation for {weeks} training weeks",
"status": "Status",
"status": "Katayuan",
"contact": "Contact",
"noPhoneShort": "No phone",
"noEmailShort": "No email",
@@ -390,17 +546,33 @@
"sortFirstName": "First name",
"sortBirthday": "Birthday",
"sortAge": "Age",
"ageRange": "Edad mula - hanggang",
"ageFromPlaceholder": "mula",
"ageToPlaceholder": "hanggang",
"age": "Age",
"dataQuality": "Kalidad ng datos",
"dataQualityComplete": "Kumpleto ang datos",
"dataIssueBirthdate": "Kulang ang petsa ng kapanganakan",
"dataIssuePhone": "Kulang ang telepono",
"dataIssueEmail": "Kulang ang email",
"dataIssueAddress": "Kulang ang address",
"dataIssueGender": "Hindi malinaw ang kasarian",
"dataIssueTrainingGroup": "Kulang ang grupo ng pagsasanay",
"openTasks": "Open tasks",
"noOpenTasks": "No open tasks",
"taskVerifyForm": "Verify form",
"taskReviewTrialStatus": "Review trial status",
"taskCheckTrainingStatus": "Review training status",
"taskCheckDataQuality": "Suriin ang kalidad ng datos",
"taskAssignTrainingGroup": "Magtalaga ng grupo ng pagsasanay",
"taskCheckClickTt": "Review Click-TT eligibility",
"taskActionVerify": "Verify",
"taskActionMarkRegular": "Mark regular",
"taskActionReview": "Buksan",
"taskActionRequest": "Request",
"toggleSortDirection": "Toggle sort direction",
"showTtrHistory": "Ipakita ang TTR history",
"missingTtrHistoryId": "Walang naka-save na myTischtennis ID",
"sortLastTraining": "Last training",
"sortOpenTasks": "Open tasks",
"exportPreview": "Export preview",
@@ -422,5 +594,212 @@
"composeEmail": "Compose email",
"copyContactSummary": "Copy contact summary",
"copyContactSummarySuccess": "Contact summary copied to clipboard."
},
"diary": {
"title": "Talaarawan ng pagsasanay",
"date": "Petsa",
"noEntries": "Walang entry",
"deleteDate": "Burahin ang petsa",
"createNew": "Lumikha ng bago",
"gallery": "Gallery ng mga miyembro",
"galleryCreating": "Ginagawa ang gallery…",
"selectTrainingGroup": "Pumili ng grupo ng pagsasanay",
"selectTrainingGroupPlaceholder": "Mangyaring pumili...",
"suggestion": "Mungkahi",
"nextAppointment": "Susunod na schedule",
"applySuggestion": "Ilapat ang mungkahi",
"skipSuggestion": "Magpatuloy nang walang mungkahi",
"createNewDate": "Lumikha ng bagong petsa",
"activeTrainingDay": "Aktibong araw ng pagsasanay",
"trainingDaySection": "Araw ng pagsasanay",
"trainingDayChecklist": "Checklist ng pagkumpleto",
"trainingStart": "Simula ng pagsasanay",
"trainingEnd": "Pagtatapos ng pagsasanay",
"trainingWindow": "Oras ng pagsasanay",
"trainingWindowUnset": "Hindi pa naitakda",
"groupsLabel": "Mga grupo",
"groupsSection": "Mga grupo",
"createDate": "Lumikha ng petsa",
"editTrainingTimes": "I-edit ang oras ng pagsasanay",
"updateTimes": "I-update ang oras",
"groupManagement": "Pamamahala ng grupo",
"createGroups": "Lumikha ng mga grupo",
"trainingPlan": "Plano ng pagsasanay",
"planActivitiesCount": "Mga aktibidad sa plano",
"timeblocksCount": "Mga time block",
"planEmptyState": "Wala pang nakalagay sa plano ng pagsasanay.",
"planAddHint": "Magdagdag ng bagong item sa plano gamit ang mga aksyon sa itaas.",
"startTime": "Oras ng simula",
"group": "Grupo...",
"timeblock": "Time block",
"assignParticipants": "Magtalaga ng mga kalahok",
"addTimeblock": "Time block",
"activities": "Mga aktibidad",
"freeActivities": "Libreng aktibidad",
"noFreeActivitiesYet": "Wala pang naitalang libreng aktibidad.",
"addActivity": "Magdagdag ng aktibidad",
"bookAccident": "Magtala ng aksidente",
"activity": "Aktibidad",
"duration": "Tagal",
"activityImage": "Larawan ng aktibidad",
"activityDrawing": "Guhit ng aktibidad",
"today": "Ngayon",
"existingGroups": "Mga kasalukuyang grupo",
"leader": "Tagapanguna",
"deleteGroup": "Burahin ang grupo",
"numberOfGroups": "Bilang ng grupo",
"addGroup": "Magdagdag ng grupo",
"activityOrTimeblock": "Aktibidad / time block",
"durationMinutes": "Tagal (min)",
"standardActivities": "Mga karaniwang aktibidad",
"standardDurationShort": "min",
"standardActivityAddError": "Hindi maidagdag ang karaniwang aktibidad.",
"addGroupActivity": "Magdagdag ng aktibidad ng grupo",
"addGroupButton": "+ Grupo",
"all": "Lahat",
"selectGroup": "Pumili ng grupo...",
"activityPlaceholder": "Aktibidad",
"assignShort": "Italaga",
"statusReadyShort": "Handa",
"statusOpenShort": "Bukas",
"openPlanItemsLabel": "Katayuan ng plano",
"openPlanItems": "{count} bukas",
"unassignedPlanItems": "{count} hindi nakatalaga",
"durationExampleLong": "hal. 2x7 o 3*5",
"durationExampleShort": "hal. 2x7",
"showImage": "Ipakita ang larawan/guhit",
"participants": "Mga kalahok",
"searchParticipants": "Maghanap ng kalahok",
"filterAll": "Lahat",
"filterPresent": "Dumalo",
"filterAbsent": "Liban",
"filterExcused": "May paalam",
"filterTest": "Trial",
"participantStatusNone": "Walang katayuan",
"participantStatusExcused": "May paalam",
"participantStatusCancelled": "Kinansela",
"quickAdd": "+ Quick add",
"selectTags": "Pumili ng mga tag",
"createDrawing": "Gumawa ng guhit ng ehersisyo",
"overallActivity": "Kabuuang aktibidad",
"editActivity": "I-edit ang aktibidad",
"editGroupActivity": "I-edit ang aktibidad ng grupo",
"assignParticipantsForGroupActivity": "Magtalaga ng mga kalahok para sa aktibidad ng grupo",
"delete": "Burahin",
"min": "Min",
"errorLoadingPredefinedActivities": "Error sa pag-load ng paunang natukoy na mga aktibidad",
"selectParticipantAndNote": "Mangyaring pumili ng kalahok at maglagay ng tala.",
"selectGroupAndActivity": "Mangyaring pumili ng grupo at maglagay ng aktibidad.",
"dateCannotBeDeleted": "Hindi mabubura ang petsa",
"dateCannotBeDeletedDetails": "May laman pa (plano ng pagsasanay, mga kalahok, aktibidad, aksidente o mga tala).",
"confirmDelete": "Kumpirmahin ang pagbura",
"confirmDeleteDate": "Sigurado ka bang buburahin ang petsang ito?",
"confirmDeleteDateDetails": "Mabubura rin ang lahat ng kaugnay na datos.",
"noParticipants": "Walang kalahok para sa araw ng pagsasanay na ito.",
"mustCreateAtLeastTwoGroups": "Sa unang paggawa, kailangan ng hindi bababa sa 2 grupo!",
"oneGroupAdded": "Matagumpay na naidagdag ang 1 grupo!",
"groupsCreated": "Matagumpay na nalikha ang {count} grupo!",
"errorCreatingGroups": "Error sa paggawa ng mga grupo",
"confirmDeleteGroup": "Sigurado ka bang buburahin ang grupong \"{name}\"?",
"groupDeletedSuccessfully": "Matagumpay na nabura ang grupo!",
"errorDeletingGroup": "Error sa pagbura ng grupo",
"errorCreatingActivity": "Error sa paggawa ng aktibidad",
"trainingPlanAsPDF": "Plano ng pagsasanay bilang PDF",
"trainingPlanPdfShort": "Flow plan bilang PDF",
"trainingDayAsPDF": "I-download ang araw ng pagsasanay bilang PDF",
"trainingDayAsPDFShort": "Araw ng pagsasanay PDF",
"trainingDaySummaryPdfShort": "Buod ng kalahok bilang PDF",
"minutes": "Minuto",
"formHandedOver": "Naibigay na ang form ng miyembro",
"errorOccurred": "May naganap na error. Pakisubukang muli.",
"trainingTimesUpdated": "Matagumpay na na-update ang oras ng pagsasanay.",
"noActiveTrainingDay": "Walang napiling araw ng pagsasanay.",
"statusReady": "Naayos na ang oras at plano ng pagsasanay.",
"statusEmpty": "Wala pang laman ang araw ng pagsasanay na ito.",
"statusInProgress": "Bahagyang naihanda ang araw ng pagsasanay na ito.",
"formMarkedAsHandedOver": "Namarkahan bilang naibigay na ang form ng miyembro",
"errorMarkingForm": "Error sa pagmamarka ng form ng miyembro",
"dateNoLongerCurrent": "Hindi na kasalukuyan ang napiling petsa. Pakisubukan muli.",
"activityRequired": "Mangyaring maglagay ng aktibidad.",
"activityNotFound": "Hindi nahanap ang aktibidad. Mangyaring pumili mula sa listahan."
},
"trainingStats": {
"title": "Mga istatistika ng pagsasanay",
"activeMembers": "Mga aktibong miyembro",
"averageParticipationCurrentMonth": "Karaniwang paglahok (kasalukuyang buwan)",
"averageParticipationLastMonth": "Karaniwang paglahok (nakaraang buwan)",
"averageParticipationQuarter": "Karaniwang paglahok (quarter)",
"averageParticipationHalfYear": "Karaniwang paglahok (kalahating taon)",
"averageParticipationYear": "Karaniwang paglahok (taon)",
"trainingDays": "Mga araw ng pagsasanay (huling 12 buwan)",
"memberParticipations": "Paglahok ng miyembro",
"date": "Petsa",
"weekday": "Araw ng linggo",
"participants": "Mga kalahok",
"name": "Pangalan",
"ttr": "TTR",
"qttr": "QTTR",
"birthdate": "Petsa ng kapanganakan",
"participations12Months": "Paglahok (12 buwan)",
"participations3Months": "Paglahok (3 buwan)",
"participationsTotal": "Paglahok (kabuuan)",
"lastTraining": "Huling pagsasanay",
"actions": "Mga aksyon",
"showDetails": "Ipakita ang mga detalye"
},
"courtDrawingTool": {
"title": "Guhit ng ehersisyo sa table tennis",
"configureExercise": "I-configure ang ehersisyo",
"stepStartPosition": "1. Panimulang posisyon",
"stepStartPositionHint": "Saang posisyon ng serve magsisimula ang ehersisyo?",
"stepFirstStroke": "2. Unang palo",
"stepFirstStrokeHint": "Itakda ang side at spin para sa unang bola.",
"stepTarget": "3. Target",
"stepTargetHint": "Pumili ng target zone para sa unang palo.",
"stepAdditionalStrokes": "4. Mga kasunod na palo",
"stepAdditionalStrokesHint": "Opsyonal na magdagdag pa ng mga bola bilang listahan.",
"noAdditionalStrokes": "Wala pang mga kasunod na palo.",
"service": "Serve:",
"serviceTitle": "Serve",
"forehand": "Forehand",
"backhand": "Backhand",
"spin": "Spin:",
"underspin": "Underspin",
"topspin": "Topspin",
"sidespin": "Sidespin",
"sideUnderspin": "Side underspin",
"counterSpin": "Counter spin",
"targetPosition": "Posisyon ng target:",
"targetPositionLabel": "Posisyon ng target",
"strokeSide": "Side",
"strokeTypeLabel": "Uri ng palo",
"addStroke": "Magdagdag ng palo",
"preview": "Preview",
"previewHint": "Lilitaw ang graphic kapag kumpleto na ang unang palo.",
"completeFirstStroke": "Tapusin ang unang palo",
"completeFirstStrokeHint": "Piliin ang panimulang posisyon, side, spin at target. Pagkatapos ay lalabas ang graphic.",
"codeLabel": "Code",
"titleLabel": "Pamagat",
"startLeft": "kaliwa",
"startMiddle": "gitna",
"startRight": "kanan",
"strokeTypePush": "Push",
"strokeTypeCounter": "Counter",
"strokeTypeTopspin": "Topspin",
"strokeTypeFlip": "Flip",
"strokeTypeBlock": "Block",
"strokeTypeSmash": "Smash",
"strokeTypeChopDefense": "Chop defense",
"strokeTypeLobDefense": "Lob defense",
"targetForehandLong": "forehand long",
"targetMiddleLong": "middle long",
"targetBackhandLong": "backhand long",
"targetForehandHalfLong": "forehand half-long",
"targetMiddleHalfLong": "middle half-long",
"targetBackhandHalfLong": "backhand half-long",
"targetForehandShort": "forehand short",
"targetMiddleShort": "middle short",
"targetBackhandShort": "backhand short",
"toTarget": "papunta sa"
}
}

View File

@@ -22,7 +22,41 @@
"next": "下一步",
"previous": "上一步",
"submit": "提交",
"reset": "重置"
"reset": "重置",
"all": "全部",
"today": "今天",
"time": "时间",
"new": "新建",
"update": "更新",
"create": "创建",
"remove": "移除",
"select": "选择",
"download": "下载",
"choose": "选择",
"apply": "应用",
"clear": "清除",
"details": "详情",
"view": "查看",
"name": "名称",
"date": "日期",
"status": "状态",
"type": "类型",
"description": "描述",
"active": "活跃",
"inactive": "非活跃",
"enabled": "已启用",
"disabled": "已禁用",
"required": "必填",
"optional": "可选",
"in": "后",
"min": "分",
"minutes": "分钟",
"hours": "小时",
"days": "天",
"weeks": "周",
"months": "个月",
"years": "年",
"ok": "确定"
},
"navigation": {
"home": "首页",
@@ -41,13 +75,16 @@
"logs": "系统日志",
"memberTransfer": "成员转移",
"myTischtennisAccount": "myTischtennis账户",
"clickTtAccount": "HTTV / click-TT 账户",
"clickTtBrowser": "HTTV / click-TT",
"personalSettings": "个人设置",
"logout": "退出登录",
"login": "登录",
"register": "注册",
"dailyBusiness": "日常事务",
"competitions": "比赛",
"settings": "设置"
"settings": "设置",
"backToHome": "返回首页"
},
"club": {
"select": "选择俱乐部",
@@ -56,7 +93,20 @@
"load": "加载",
"name": "俱乐部名称",
"create": "创建俱乐部",
"accessRequestPending": "Access to this club has been requested. Please be patient."
"createTitle": "创建俱乐部",
"members": "成员",
"trainingDiary": "训练日记",
"noAccess": "您尚未获得此俱乐部的访问权限。",
"requestAccess": "申请访问权限",
"openRequests": "待处理的访问申请",
"title": "俱乐部",
"openAccessRequests": "待处理的访问申请",
"diary": "训练日记",
"accessDenied": "无权访问此俱乐部。",
"errorLoadingRequests": "加载待处理申请时出错",
"accessRequested": "已提交访问申请。",
"accessRequestPending": "已申请访问此俱乐部。请稍候。",
"accessRequestFailed": "无法提交访问申请。"
},
"auth": {
"login": "登录",
@@ -331,6 +381,106 @@
"stageFlowQualifiedPreviewEntry": "G{group} · Place {position} · {name}"
},
"members": {
"title": "成员",
"memberInfo": "成员信息",
"activeMembers": "活跃成员",
"testMembers": "试用成员",
"inactiveMembers": "非活跃成员",
"generatePhoneList": "生成电话列表",
"onlyActiveMembers": "仅导出活跃成员",
"updateRatings": "从 myTischtennis 更新 TTR/QTTR",
"updating": "更新中...",
"transferMembers": "转移成员",
"newMember": "新成员",
"editMember": "编辑成员",
"createNewMember": "创建新成员",
"firstName": "名",
"lastName": "姓",
"street": "街道",
"postalCode": "邮政编码",
"city": "城市",
"birthdate": "出生日期",
"phones": "电话号码",
"emails": "电子邮箱地址",
"addPhone": "添加电话号码",
"addEmail": "添加电子邮箱地址",
"phoneNumber": "电话号码",
"emailAddress": "电子邮箱地址",
"parent": "家长",
"parentName": "姓名(例如:母亲、父亲)",
"primary": "主要",
"gender": "性别",
"genderUnknown": "未知",
"genderMale": "男",
"genderFemale": "女",
"genderDiverse": "其他",
"picsInInternetAllowed": "允许在互联网上发布照片",
"testMembership": "试用会员",
"memberFormHandedOver": "会员表格已交付",
"trainingGroups": "训练组",
"noGroupsAssigned": "未分配任何分组",
"noGroupsAvailable": "没有可用分组",
"addGroup": "添加分组...",
"remove": "移除",
"image": "图片",
"selectFile": "选择文件",
"camera": "相机",
"imagePreview": "成员图片预览",
"change": "更改",
"create": "创建",
"clearFields": "清空字段",
"showInactiveMembers": "显示非活跃成员",
"ageGroup": "年龄组",
"adults": "成人20岁以上",
"j19": "J1919岁及以下",
"j17": "J1717岁及以下",
"j15": "J1515岁及以下",
"j13": "J1313岁及以下",
"j11": "J1111岁及以下",
"clearFilters": "重置筛选",
"imageInternet": "图片(网络)",
"testMember": "试用",
"name": "姓名",
"ttrQttr": "TTR / QTTR",
"address": "地址",
"active": "活跃",
"actions": "操作",
"phoneNumberShort": "电话",
"emailAddressShort": "邮箱",
"trainingParticipations": "训练参与次数",
"memberImage": "成员图片",
"inactive": "非活跃",
"sixOrMoreParticipations": "训练参与 6 次或以上",
"threeOrMoreParticipations": "训练参与 3 次或以上",
"noTestMembership": "不再是试用会员",
"formHandedOver": "会员表格已交付",
"deactivateMember": "停用成员",
"notes": "备注",
"exercises": "练习",
"memberImages": "成员图片",
"testMembershipRemoved": "试用会员资格已移除。",
"errorRemovingTestMembership": "移除试用会员资格时出错。",
"formMarkedAsHandedOver": "已将会员表格标记为已交付。",
"errorMarkingForm": "标记表格时出错。",
"deactivateMemberTitle": "停用成员",
"deactivateMemberConfirm": "确定要停用“{name}”吗?",
"memberDeactivated": "成员已停用",
"errorDeactivatingMember": "停用成员时出错",
"errorSavingMember": "保存成员时出错",
"errorAddingToGroup": "添加到分组时出错",
"errorRemovingFromGroup": "从分组移除时出错",
"imageUpdated": "图片已更新",
"errorRotatingImage": "旋转图片时出错",
"imageDeleted": "图片已删除。",
"errorDeletingImage": "无法删除图片",
"primaryImageUpdated": "主图片已更新。",
"errorSettingPrimaryImage": "无法设置主图片",
"errorUploadingImage": "无法上传图片",
"errorLoadingImage": "加载图片时出错",
"phoneList": "电话列表.pdf",
"errorLoadingTrainingParticipations": "加载训练参与记录时出错",
"errorUpdatingRatings": "更新 TTR/QTTR 时出错",
"errorTransfer": "转移时出错",
"subtitle": "Search, filter and edit members directly.",
"closeEditor": "Close editor",
"visibleMembers": "Visible members",
@@ -341,11 +491,17 @@
"scopeActive": "Active",
"scopeTest": "Trial",
"scopeNeedsForm": "Form unverified",
"scopeActiveDataIncomplete": "活跃 + 数据不完整",
"scopeDataIncomplete": "数据不完整",
"scopeInactive": "Inactive",
"searchAndFilter": "搜索和筛选",
"bulkActions": "批量操作",
"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}.",
"editorAssignTrainingGroupHint": "请至少分配一个训练组。",
"editorRecommendedEntry": "建议填写",
"transferSuccessTitle": "Transfer successful",
"transferErrorTitle": "Transfer error",
"clickTtRequestPending": "Click-TT request in progress",
@@ -363,7 +519,7 @@
"errorLoadingMembers": "Failed to load the member list.",
"scopeNotTraining": "No longer training",
"notInTrainingTooltip": "No participation for {weeks} training weeks",
"status": "Status",
"status": "状态",
"contact": "Contact",
"noPhoneShort": "No phone",
"noEmailShort": "No email",
@@ -390,17 +546,33 @@
"sortFirstName": "First name",
"sortBirthday": "Birthday",
"sortAge": "Age",
"ageRange": "年龄范围",
"ageFromPlaceholder": "从",
"ageToPlaceholder": "到",
"age": "Age",
"dataQuality": "数据质量",
"dataQualityComplete": "数据完整",
"dataIssueBirthdate": "缺少出生日期",
"dataIssuePhone": "缺少电话号码",
"dataIssueEmail": "缺少电子邮箱地址",
"dataIssueAddress": "缺少地址",
"dataIssueGender": "性别未明确",
"dataIssueTrainingGroup": "缺少训练组",
"openTasks": "Open tasks",
"noOpenTasks": "No open tasks",
"taskVerifyForm": "Verify form",
"taskReviewTrialStatus": "Review trial status",
"taskCheckTrainingStatus": "Review training status",
"taskCheckDataQuality": "检查数据质量",
"taskAssignTrainingGroup": "分配训练组",
"taskCheckClickTt": "Review Click-TT eligibility",
"taskActionVerify": "Verify",
"taskActionMarkRegular": "Mark regular",
"taskActionReview": "打开",
"taskActionRequest": "Request",
"toggleSortDirection": "Toggle sort direction",
"showTtrHistory": "显示 TTR 历史",
"missingTtrHistoryId": "未保存 myTischtennis ID",
"sortLastTraining": "Last training",
"sortOpenTasks": "Open tasks",
"exportPreview": "Export preview",
@@ -422,5 +594,212 @@
"composeEmail": "Compose email",
"copyContactSummary": "Copy contact summary",
"copyContactSummarySuccess": "Contact summary copied to clipboard."
},
"diary": {
"title": "训练日记",
"date": "日期",
"noEntries": "没有条目",
"deleteDate": "删除日期",
"createNew": "新建",
"gallery": "成员图库",
"galleryCreating": "正在生成图库…",
"selectTrainingGroup": "选择训练组",
"selectTrainingGroupPlaceholder": "请选择...",
"suggestion": "建议",
"nextAppointment": "下一个时间",
"applySuggestion": "应用建议",
"skipSuggestion": "不使用建议继续",
"createNewDate": "创建新日期",
"activeTrainingDay": "当前训练日",
"trainingDaySection": "训练日",
"trainingDayChecklist": "完成检查",
"trainingStart": "训练开始",
"trainingEnd": "训练结束",
"trainingWindow": "训练时间段",
"trainingWindowUnset": "尚未设置",
"groupsLabel": "分组",
"groupsSection": "分组",
"createDate": "创建日期",
"editTrainingTimes": "编辑训练时间",
"updateTimes": "更新时间",
"groupManagement": "分组管理",
"createGroups": "创建分组",
"trainingPlan": "训练计划",
"planActivitiesCount": "计划活动",
"timeblocksCount": "时间块",
"planEmptyState": "训练计划中还没有任何内容。",
"planAddHint": "可通过上方操作添加新的计划项目。",
"startTime": "开始时间",
"group": "分组...",
"timeblock": "时间块",
"assignParticipants": "分配参与者",
"addTimeblock": "时间块",
"activities": "活动",
"freeActivities": "自由活动",
"noFreeActivitiesYet": "尚未记录自由活动。",
"addActivity": "添加活动",
"bookAccident": "记录事故",
"activity": "活动",
"duration": "时长",
"activityImage": "活动图片",
"activityDrawing": "活动图示",
"today": "今天",
"existingGroups": "现有分组",
"leader": "负责人",
"deleteGroup": "删除分组",
"numberOfGroups": "分组数量",
"addGroup": "添加分组",
"activityOrTimeblock": "活动 / 时间块",
"durationMinutes": "时长(分)",
"standardActivities": "标准活动",
"standardDurationShort": "分",
"standardActivityAddError": "无法添加标准活动。",
"addGroupActivity": "添加分组活动",
"addGroupButton": "+ 分组",
"all": "全部",
"selectGroup": "选择分组...",
"activityPlaceholder": "活动",
"assignShort": "分配",
"statusReadyShort": "已就绪",
"statusOpenShort": "未完成",
"openPlanItemsLabel": "计划状态",
"openPlanItems": "{count} 项未完成",
"unassignedPlanItems": "{count} 项未分配",
"durationExampleLong": "例如2x7 或 3*5",
"durationExampleShort": "例如2x7",
"showImage": "显示图片/图示",
"participants": "参与者",
"searchParticipants": "搜索参与者",
"filterAll": "全部",
"filterPresent": "出席",
"filterAbsent": "缺席",
"filterExcused": "已请假",
"filterTest": "试用",
"participantStatusNone": "无状态",
"participantStatusExcused": "已请假",
"participantStatusCancelled": "已取消",
"quickAdd": "+ 快速添加",
"selectTags": "选择标签",
"createDrawing": "创建练习图",
"overallActivity": "整体活动",
"editActivity": "编辑活动",
"editGroupActivity": "编辑分组活动",
"assignParticipantsForGroupActivity": "为分组活动分配参与者",
"delete": "删除",
"min": "分",
"errorLoadingPredefinedActivities": "加载预定义活动时出错",
"selectParticipantAndNote": "请选择一位参与者并输入备注文本。",
"selectGroupAndActivity": "请选择一个分组并输入活动。",
"dateCannotBeDeleted": "无法删除该日期",
"dateCannotBeDeletedDetails": "仍有内容存在(训练计划、参与者、活动、事故或备注)。",
"confirmDelete": "确认删除",
"confirmDeleteDate": "确定要删除此日期吗?",
"confirmDeleteDateDetails": "所有相关数据也将一并删除。",
"noParticipants": "该训练日没有参与者。",
"mustCreateAtLeastTwoGroups": "首次创建时至少需要 2 个分组。",
"oneGroupAdded": "已成功添加 1 个分组。",
"groupsCreated": "已成功创建 {count} 个分组。",
"errorCreatingGroups": "创建分组时出错",
"confirmDeleteGroup": "确定要删除分组“{name}”吗?",
"groupDeletedSuccessfully": "分组已成功删除。",
"errorDeletingGroup": "删除分组时出错",
"errorCreatingActivity": "创建活动时出错",
"trainingPlanAsPDF": "将训练计划导出为 PDF",
"trainingPlanPdfShort": "流程计划 PDF",
"trainingDayAsPDF": "将训练日下载为 PDF",
"trainingDayAsPDFShort": "训练日 PDF",
"trainingDaySummaryPdfShort": "参与者概览 PDF",
"minutes": "分钟",
"formHandedOver": "会员表格已交付",
"errorOccurred": "发生错误。请重试。",
"trainingTimesUpdated": "训练时间已成功更新。",
"noActiveTrainingDay": "未选择训练日。",
"statusReady": "时间和训练计划已维护完成。",
"statusEmpty": "该训练日仍为空。",
"statusInProgress": "该训练日已部分准备。",
"formMarkedAsHandedOver": "已将会员表格标记为已交付",
"errorMarkingForm": "标记会员表格时出错",
"dateNoLongerCurrent": "所选日期已不是最新状态。请重试。",
"activityRequired": "请输入活动。",
"activityNotFound": "未找到活动。请从列表中选择。"
},
"trainingStats": {
"title": "训练统计",
"activeMembers": "活跃成员",
"averageParticipationCurrentMonth": "平均参与人数(本月)",
"averageParticipationLastMonth": "平均参与人数(上月)",
"averageParticipationQuarter": "平均参与人数(季度)",
"averageParticipationHalfYear": "平均参与人数(半年)",
"averageParticipationYear": "平均参与人数(全年)",
"trainingDays": "训练日(近 12 个月)",
"memberParticipations": "成员参与次数",
"date": "日期",
"weekday": "星期",
"participants": "参与者",
"name": "姓名",
"ttr": "TTR",
"qttr": "QTTR",
"birthdate": "出生日期",
"participations12Months": "参与次数12 个月)",
"participations3Months": "参与次数3 个月)",
"participationsTotal": "参与次数(总计)",
"lastTraining": "最近训练",
"actions": "操作",
"showDetails": "显示详情"
},
"courtDrawingTool": {
"title": "乒乓球练习示意图",
"configureExercise": "配置练习",
"stepStartPosition": "1. 起始位置",
"stepStartPositionHint": "练习从哪个发球位置开始?",
"stepFirstStroke": "2. 第一拍",
"stepFirstStrokeHint": "设置第一球的击球面和旋转。",
"stepTarget": "3. 目标",
"stepTargetHint": "选择第一拍的目标区域。",
"stepAdditionalStrokes": "4. 后续击球",
"stepAdditionalStrokesHint": "可选地将后续来球添加为列表。",
"noAdditionalStrokes": "尚未添加后续击球。",
"service": "发球:",
"serviceTitle": "发球",
"forehand": "正手",
"backhand": "反手",
"spin": "旋转:",
"underspin": "下旋",
"topspin": "上旋",
"sidespin": "侧旋",
"sideUnderspin": "侧下旋",
"counterSpin": "逆旋转",
"targetPosition": "目标位置:",
"targetPositionLabel": "目标位置",
"strokeSide": "击球面",
"strokeTypeLabel": "击球方式",
"addStroke": "添加击球",
"preview": "预览",
"previewHint": "第一拍设置完整后将显示图示。",
"completeFirstStroke": "完成第一拍",
"completeFirstStrokeHint": "请选择起始位置、击球面、旋转和目标,随后会显示图示。",
"codeLabel": "缩写",
"titleLabel": "标题",
"startLeft": "左",
"startMiddle": "中",
"startRight": "右",
"strokeTypePush": "搓球",
"strokeTypeCounter": "反击",
"strokeTypeTopspin": "上旋",
"strokeTypeFlip": "挑打",
"strokeTypeBlock": "挡球",
"strokeTypeSmash": "扣杀",
"strokeTypeChopDefense": "削球防守",
"strokeTypeLobDefense": "高吊防守",
"targetForehandLong": "正手长",
"targetMiddleLong": "中路长",
"targetBackhandLong": "反手长",
"targetForehandHalfLong": "正手半长",
"targetMiddleHalfLong": "中路半长",
"targetBackhandHalfLong": "反手半长",
"targetForehandShort": "正手短",
"targetMiddleShort": "中路短",
"targetBackhandShort": "反手短",
"toTarget": "到"
}
}

View File

@@ -59,7 +59,7 @@
<BaseDialog
:model-value="!!selectedMemberPreview"
title="Mitgliedsdetails"
:title="$t('members.memberDetails')"
size="large"
:width="1080"
max-width="95vw"
@@ -382,7 +382,7 @@
type="button"
class="rating-button"
:disabled="!member.myTischtennisPlayerId && !member.ttr && !member.qttr"
:title="member.myTischtennisHistoryPlayerId || member.myTischtennisPlayerId || member.ttr || member.qttr ? 'TTR-Historie anzeigen' : 'Keine myTischtennis-ID hinterlegt'"
:title="member.myTischtennisHistoryPlayerId || member.myTischtennisPlayerId || member.ttr || member.qttr ? $t('members.showTtrHistory') : $t('members.missingTtrHistoryId')"
@click.stop="openTtrHistoryDialog(member)"
>
<span v-if="member.ttr || member.qttr">