feat(i18n): update Cebuano localization for minigames and enhance UI text
All checks were successful
Deploy to production / deploy (push) Successful in 1m56s

- Added new localized strings for minigames in Cebuano, including loading hints, objectives, and play focus descriptions to improve user experience.
- Updated existing translations for clarity and consistency across various game elements.
- Enhanced the Match3Game component to utilize localized strings, ensuring dynamic text rendering based on user language preferences.
- Included a new entry in .gitignore for the locale audit report to maintain a clean repository.
This commit is contained in:
Torsten Schulz (local)
2026-04-17 16:20:20 +02:00
parent 71d5922409
commit 9c121d2dc2
9 changed files with 316 additions and 47 deletions

View File

@@ -2,28 +2,33 @@
<div class="match3-view">
<!-- Spiel-Titel -->
<section class="game-title surface-card">
<span class="game-title__eyebrow">Minispiele</span>
<span class="game-title__eyebrow">{{ $t('minigames.match3.badgeMinigames') }}</span>
<h1>{{ $t('minigames.match3.title') }}</h1>
<p>{{ $t('minigames.match3.campaignDescription') }}</p>
</section>
<section class="play-focus surface-card">
<div class="play-focus__main">
<span class="play-focus__eyebrow">Nächster Schritt</span>
<span class="play-focus__eyebrow">{{ $t('minigames.match3.nextStep') }}</span>
<h2>{{ playFocusTitle }}</h2>
<p>{{ playFocusDescription }}</p>
</div>
<div class="play-focus__stats">
<span class="play-focus__pill">Level {{ currentLevel }}</span>
<span class="play-focus__pill">{{ completedObjectivesCount }}/{{ totalObjectivesCount || 0 }} Ziele</span>
<span class="play-focus__pill">{{ safeMovesLeft }} Züge übrig</span>
<span class="play-focus__pill">{{ $t('minigames.match3.level') }} {{ currentLevel }}</span>
<span class="play-focus__pill">{{
$t('minigames.match3.objectivesProgress', {
completed: completedObjectivesCount,
total: totalObjectivesCount || 0
})
}}</span>
<span class="play-focus__pill">{{ $t('minigames.match3.movesLeftBadge', { count: safeMovesLeft }) }}</span>
</div>
<div class="play-focus__actions">
<button class="btn btn-primary" @click="isPaused ? resumeGame() : pauseGame()">
{{ isPaused ? $t('minigames.match3.resume') : $t('minigames.match3.pause') }}
</button>
<button class="btn btn-secondary" @click="toggleLevelDescription">
{{ levelDescriptionExpanded ? 'Ziele einklappen' : 'Ziele anzeigen' }}
{{ levelDescriptionExpanded ? $t('minigames.match3.objectivesCollapse') : $t('minigames.match3.objectivesShow') }}
</button>
<button class="btn btn-secondary" @click="restartLevel">
{{ $t('minigames.match3.restartLevel') }}
@@ -140,8 +145,8 @@
<!-- Loading State -->
<div v-else class="game-board-loading">
<p>Spielbrett wird vorbereitet...</p>
<p class="game-board-loading__hint">Leveldaten, Ziele und Feldlayout werden gerade synchronisiert.</p>
<p>{{ $t('minigames.match3.loadingBoard') }}</p>
<p class="game-board-loading__hint">{{ $t('minigames.match3.loadingHint') }}</p>
</div>
<!-- Power-Up Animationen (relativ zum Game-Board) -->
@@ -6062,27 +6067,33 @@ export default {
},
playFocusTitle() {
if (this.isPaused) {
return 'Spiel ist pausiert';
return this.$t('minigames.match3.playFocus.pausedTitle');
}
if (!this.currentLevelData) {
return 'Level wird vorbereitet';
return this.$t('minigames.match3.playFocus.preparingTitle');
}
if (this.nextPendingObjective) {
return this.nextPendingObjective.description || 'Aktuelles Ziel abschließen';
return (
this.nextPendingObjective.description ||
this.$t('minigames.match3.playFocus.defaultObjectiveTitle')
);
}
return 'Level sauber zu Ende spielen';
return this.$t('minigames.match3.playFocus.finishLevelTitle');
},
playFocusDescription() {
if (this.isPaused) {
return 'Setze das Level fort oder starte es kontrolliert neu, ohne den aktuellen Kontext zu verlieren.';
return this.$t('minigames.match3.playFocus.pausedDescription');
}
if (!this.currentLevelData) {
return 'Sobald das Level geladen ist, erscheinen hier das nächste Ziel und die passende Hauptaktion.';
return this.$t('minigames.match3.playFocus.preparingDescription');
}
if (this.nextPendingObjective) {
return `Konzentriere dich zuerst auf dieses Ziel. Bereits erledigt: ${this.completedObjectivesCount} von ${this.totalObjectivesCount}.`;
return this.$t('minigames.match3.playFocus.focusDescription', {
completed: this.completedObjectivesCount,
total: this.totalObjectivesCount
});
}
return 'Alle sichtbaren Ziele sind erledigt. Jetzt zählt nur noch der saubere Abschluss des Levels.';
return this.$t('minigames.match3.playFocus.allObjectivesDoneDescription');
}
}
}