diff --git a/CHECK_SERVER.md b/CHECK_SERVER.md new file mode 100644 index 0000000..47119b2 --- /dev/null +++ b/CHECK_SERVER.md @@ -0,0 +1,86 @@ +# Server-Prüfung: i18n-Fixes + +## Lokale Prüfung (bereits durchgeführt) + +✅ Alle Dateien sind lokal korrekt: +- `TeamManagementView.vue` - Alle `$t()` durch `t()` ersetzt, `t` im return Statement +- `PermissionsView.vue` - Alle `$t()` durch `t()` ersetzt, `t` im return Statement +- `LogsView.vue` - Alle `$t()` durch `t()` ersetzt, `t` im return Statement +- `SeasonSelector.vue` - Bereits korrekt + +## Server-Prüfung + +### 1. Prüfskript auf den Server kopieren + +```bash +# Vom lokalen Rechner aus: +scp check-i18n-fixes.sh rv2756:/var/www/tt-tagebuch.de/ +``` + +### 2. Auf dem Server ausführen + +```bash +# Auf dem Server: +cd /var/www/tt-tagebuch.de +chmod +x check-i18n-fixes.sh +./check-i18n-fixes.sh +``` + +### 3. Falls Dateien nicht aktualisiert sind + +```bash +# Auf dem Server: +cd /var/www/tt-tagebuch.de +git pull origin main +cd backend +npm install # Erstellt automatisch den Frontend-Build (via postinstall script) +``` + +### 4. Backend neu starten (falls nötig) + +```bash +# Falls als systemd-Service: +sudo systemctl restart tt-tagebuch + +# Oder falls als PM2-Prozess: +pm2 restart tt-tagebuch-backend +``` + +## Erwartete Ergebnisse + +Das Prüfskript sollte folgende Ausgabe zeigen: + +``` +1. TeamManagementView.vue: + ✓ Enthält 'const t = (key, params) => i18n.global.t' + ✓ Enthält keine $t() Aufrufe mehr + ✓ 't' ist im return Statement enthalten + +2. PermissionsView.vue: + ✓ Enthält 'const t = (key, params) => i18n.global.t' + ✓ Enthält keine $t() Aufrufe mehr + ✓ 't' ist im return Statement enthalten + +3. LogsView.vue: + ✓ Enthält 'const t = (key, params) => i18n.global.t' + ✓ Enthält keine $t() Aufrufe mehr + ✓ 't' ist im return Statement enthalten + +4. SeasonSelector.vue: + ✓ Enthält 'const t = (key, params) => i18n.global.t' + ✓ Enthält keine $t() Aufrufe mehr +``` + +## Commits, die auf den Server müssen + +Die folgenden Commits müssen auf dem Server sein: + +- `b0e610f` - Fix: Replace all $t() calls with t() in PermissionsView and LogsView templates +- `0285c05` - Fix: Replace all $t() calls with t() in TeamManagementView template +- `5d4f2eb` - Update localization handling in TeamManagementView + +Prüfe mit: +```bash +git log --oneline -5 +``` + diff --git a/check-i18n-fixes.sh b/check-i18n-fixes.sh new file mode 100755 index 0000000..4a9954a --- /dev/null +++ b/check-i18n-fixes.sh @@ -0,0 +1,155 @@ +#!/bin/bash +# Skript zum Prüfen der i18n-Fixes auf dem Server +# Führe dieses Skript auf dem Server aus: /var/www/tt-tagebuch.de/ + +echo "=== Prüfe i18n-Fixes auf dem Server ===" +echo "" + +FRONTEND_DIR="${1:-/var/www/tt-tagebuch.de/frontend}" + +if [ ! -d "$FRONTEND_DIR" ]; then + echo "✗ Frontend-Verzeichnis nicht gefunden: $FRONTEND_DIR" + exit 1 +fi + +echo "Prüfe Dateien in: $FRONTEND_DIR" +echo "" + +# Prüfe TeamManagementView.vue +echo "1. TeamManagementView.vue:" +FILE="$FRONTEND_DIR/src/views/TeamManagementView.vue" +if [ -f "$FILE" ]; then + if grep -q "const t = (key, params) => i18n.global.t" "$FILE"; then + echo " ✓ Enthält 'const t = (key, params) => i18n.global.t'" + else + echo " ✗ Enthält NICHT 'const t = (key, params) => i18n.global.t'" + fi + + if grep -q '\$t(' "$FILE"; then + COUNT=$(grep -c '\$t(' "$FILE") + echo " ✗ Enthält noch $COUNT \$t() Aufrufe" + else + echo " ✓ Enthält keine \$t() Aufrufe mehr" + fi + + if grep -q "return {" "$FILE" && grep -A 30 "return {" "$FILE" | grep -q "^\s*t,"; then + echo " ✓ 't' ist im return Statement enthalten" + else + echo " ✗ 't' ist NICHT im return Statement enthalten" + fi +else + echo " ✗ Datei nicht gefunden: $FILE" +fi + +echo "" + +# Prüfe PermissionsView.vue +echo "2. PermissionsView.vue:" +FILE="$FRONTEND_DIR/src/views/PermissionsView.vue" +if [ -f "$FILE" ]; then + if grep -q "const t = (key, params) => i18n.global.t" "$FILE"; then + echo " ✓ Enthält 'const t = (key, params) => i18n.global.t'" + else + echo " ✗ Enthält NICHT 'const t = (key, params) => i18n.global.t'" + fi + + if grep -q '\$t(' "$FILE"; then + COUNT=$(grep -c '\$t(' "$FILE") + echo " ✗ Enthält noch $COUNT \$t() Aufrufe" + else + echo " ✓ Enthält keine \$t() Aufrufe mehr" + fi + + if grep -q "return {" "$FILE" && grep -A 30 "return {" "$FILE" | grep -q "^\s*t,"; then + echo " ✓ 't' ist im return Statement enthalten" + else + echo " ✗ 't' ist NICHT im return Statement enthalten" + fi +else + echo " ✗ Datei nicht gefunden: $FILE" +fi + +echo "" + +# Prüfe LogsView.vue +echo "3. LogsView.vue:" +FILE="$FRONTEND_DIR/src/views/LogsView.vue" +if [ -f "$FILE" ]; then + if grep -q "const t = (key, params) => i18n.global.t" "$FILE"; then + echo " ✓ Enthält 'const t = (key, params) => i18n.global.t'" + else + echo " ✗ Enthält NICHT 'const t = (key, params) => i18n.global.t'" + fi + + if grep -q '\$t(' "$FILE"; then + COUNT=$(grep -c '\$t(' "$FILE") + echo " ✗ Enthält noch $COUNT \$t() Aufrufe" + else + echo " ✓ Enthält keine \$t() Aufrufe mehr" + fi + + if grep -q "return {" "$FILE" && grep -A 30 "return {" "$FILE" | grep -q "^\s*t,"; then + echo " ✓ 't' ist im return Statement enthalten" + else + echo " ✗ 't' ist NICHT im return Statement enthalten" + fi +else + echo " ✗ Datei nicht gefunden: $FILE" +fi + +echo "" + +# Prüfe SeasonSelector.vue +echo "4. SeasonSelector.vue:" +FILE="$FRONTEND_DIR/src/components/SeasonSelector.vue" +if [ -f "$FILE" ]; then + if grep -q "const t = (key, params) => i18n.global.t" "$FILE"; then + echo " ✓ Enthält 'const t = (key, params) => i18n.global.t'" + else + echo " ✗ Enthält NICHT 'const t = (key, params) => i18n.global.t'" + fi + + if grep -q '\$t(' "$FILE"; then + COUNT=$(grep -c '\$t(' "$FILE") + echo " ✗ Enthält noch $COUNT \$t() Aufrufe" + else + echo " ✓ Enthält keine \$t() Aufrufe mehr" + fi +else + echo " ✗ Datei nicht gefunden: $FILE" +fi + +echo "" + +# Prüfe Build-Dateien +echo "5. Build-Dateien:" +DIST_DIR="$FRONTEND_DIR/dist/assets" +if [ -d "$DIST_DIR" ]; then + BUILD_FILE=$(ls -t "$DIST_DIR"/index-*.js 2>/dev/null | head -1) + if [ -n "$BUILD_FILE" ]; then + echo " Gefundene Build-Datei: $(basename $BUILD_FILE)" + BUILD_TIME=$(stat -c %y "$BUILD_FILE" 2>/dev/null || stat -f %Sm "$BUILD_FILE" 2>/dev/null) + echo " Build-Zeit: $BUILD_TIME" + + # Prüfe, ob der Build die neuen Änderungen enthält + # (minifizierter Code, daher schwer zu prüfen) + if strings "$BUILD_FILE" | grep -q "i18n"; then + echo " ✓ Build enthält i18n-Referenzen" + else + echo " ⚠ Build enthält keine i18n-Referenzen (möglicherweise minifiziert)" + fi + else + echo " ✗ Keine Build-Datei gefunden in $DIST_DIR" + fi +else + echo " ✗ Dist-Verzeichnis nicht gefunden: $DIST_DIR" +fi + +echo "" +echo "=== Prüfung abgeschlossen ===" +echo "" +echo "Hinweis: Falls die Dateien nicht aktualisiert sind, führe auf dem Server aus:" +echo " cd /var/www/tt-tagebuch.de" +echo " git pull origin main" +echo " cd backend && npm install # Erstellt automatisch den Frontend-Build" +