Update interface text to be displayed in German

Translate Slovenian text to German across various components, pages, and API error messages, including video cards, modals, live page error handling, and AI service responses.

Replit-Commit-Author: Agent
Replit-Commit-Session-Id: 401e2ec0-e00d-4f10-9d0e-60f3d479f9a5
Replit-Commit-Checkpoint-Type: full_checkpoint
Replit-Commit-Event-Id: 1f3f88aa-7796-4167-865f-faff8fe770e1
Replit-Commit-Screenshot-Url: https://storage.googleapis.com/screenshot-production-us-central1/60d372ff-2c10-46c7-b01b-10c3435136b0/401e2ec0-e00d-4f10-9d0e-60f3d479f9a5/g0TFDck
This commit is contained in:
sebastjanartic 2026-01-12 10:50:01 +00:00
parent b1eeb2b9fb
commit bd01ca5e3c
9 changed files with 36 additions and 36 deletions

Binary file not shown.

After

Width:  |  Height:  |  Size: 192 KiB

View File

@ -446,7 +446,7 @@ export default function VideoCard({ video, onClick, className = "", hideOverlay
}} }}
className="ml-1 text-blue-400 hover:text-blue-300 text-sm transition-colors duration-200 flex-shrink-0" className="ml-1 text-blue-400 hover:text-blue-300 text-sm transition-colors duration-200 flex-shrink-0"
> >
preberi več mehr anzeigen
</button> </button>
)} )}
</div> </div>
@ -459,7 +459,7 @@ export default function VideoCard({ video, onClick, className = "", hideOverlay
}} }}
className="mt-2 text-blue-400 hover:text-blue-300 text-sm transition-colors duration-200" className="mt-2 text-blue-400 hover:text-blue-300 text-sm transition-colors duration-200"
> >
pokaži manj weniger anzeigen
</button> </button>
)} )}
</div> </div>

View File

@ -38,16 +38,16 @@ export default function VideoEditModal({ video, isOpen, onClose }: VideoEditModa
}, },
onSuccess: () => { onSuccess: () => {
toast({ toast({
title: "Thumbnail uspešno shranjen!", title: "Thumbnail erfolgreich gespeichert!",
description: "Spremembe so shranjene lokalno" description: "Änderungen wurden lokal gespeichert"
}); });
queryClient.invalidateQueries({ queryKey: ["/api/videos"] }); queryClient.invalidateQueries({ queryKey: ["/api/videos"] });
onClose(); onClose();
}, },
onError: () => { onError: () => {
toast({ toast({
title: "Napaka pri shranjevanju", title: "Fehler beim Speichern",
description: "Poskusite znova", description: "Bitte erneut versuchen",
variant: "destructive" variant: "destructive"
}); });
} }
@ -67,7 +67,7 @@ export default function VideoEditModal({ video, isOpen, onClose }: VideoEditModa
setThumbnailPreview(thumbnailDataUrl); setThumbnailPreview(thumbnailDataUrl);
setCustomThumbnail(null); // Clear file input since we're using generated thumbnail setCustomThumbnail(null); // Clear file input since we're using generated thumbnail
setShowThumbnailGenerator(false); setShowThumbnailGenerator(false);
toast({ title: "Thumbnail ustvarjen iz videoposnetka!" }); toast({ title: "Thumbnail aus Video erstellt!" });
}; };
const handleSave = () => { const handleSave = () => {

View File

@ -174,8 +174,8 @@ export default function VideoModal({ video, isOpen, onClose, enableAds = true }:
// Quality level monitoring with detailed stats // Quality level monitoring with detailed stats
hls.on(Hls.Events.LEVEL_SWITCHED, (event, data) => { hls.on(Hls.Events.LEVEL_SWITCHED, (event, data) => {
const level = hls.levels[data.level]; const level = hls.levels[data.level];
console.log(`PREKLOPIL KAKOVOST: ${level.height}p @ ${Math.round(level.bitrate/1000)}kbps`); console.log(`Quality switched: ${level.height}p @ ${Math.round(level.bitrate/1000)}kbps`);
console.log('Razlog preklopa: adaptivni algoritem na podlagi omrežne hitrosti'); console.log('Switch reason: adaptive algorithm based on network speed');
}); });
// Fragment loading stats - fixed error handling // Fragment loading stats - fixed error handling
@ -185,7 +185,7 @@ export default function VideoModal({ video, isOpen, onClose, enableAds = true }:
const stats = data.frag.stats; const stats = data.frag.stats;
const loadTime = stats.loading.end - stats.loading.start; const loadTime = stats.loading.end - stats.loading.start;
const speed = (stats.total * 8) / loadTime; // bits per ms = kbps const speed = (stats.total * 8) / loadTime; // bits per ms = kbps
console.log(`Fragment naložen v ${loadTime}ms, hitrost: ${Math.round(speed)} kbps`); console.log(`Fragment loaded in ${loadTime}ms, speed: ${Math.round(speed)} kbps`);
} }
} catch (error) { } catch (error) {
// Ignore stats errors, they don't affect playback // Ignore stats errors, they don't affect playback
@ -198,31 +198,31 @@ export default function VideoModal({ video, isOpen, onClose, enableAds = true }:
if (buffered.length > 0) { if (buffered.length > 0) {
const bufferLevel = buffered.end(buffered.length - 1) - videoElement.currentTime; const bufferLevel = buffered.end(buffered.length - 1) - videoElement.currentTime;
if (bufferLevel < 2) { if (bufferLevel < 2) {
console.log('Nizek buffer zaznan, lahko zmanjšam kakovost'); console.log('Low buffer detected, may reduce quality');
} }
} }
}); });
// Network error handling with retries // Network error handling with retries
hls.on(Hls.Events.ERROR, (event, data) => { hls.on(Hls.Events.ERROR, (event, data) => {
console.error('HLS napaka:', data); console.error('HLS error:', data);
if (data.fatal) { if (data.fatal) {
switch (data.type) { switch (data.type) {
case Hls.ErrorTypes.NETWORK_ERROR: case Hls.ErrorTypes.NETWORK_ERROR:
console.log('Omrežna napaka, poskušam obnoviti...'); console.log('Network error, attempting recovery...');
// Try to downgrade quality first // Try to downgrade quality first
if (hls.currentLevel > 0) { if (hls.currentLevel > 0) {
hls.currentLevel = hls.currentLevel - 1; hls.currentLevel = hls.currentLevel - 1;
console.log('Zmanjšujem kakovost zaradi omrežnih težav'); console.log('Reducing quality due to network issues');
} }
hls.startLoad(); hls.startLoad();
break; break;
case Hls.ErrorTypes.MEDIA_ERROR: case Hls.ErrorTypes.MEDIA_ERROR:
console.log('Medijska napaka, poskušam obnoviti...'); console.log('Media error, attempting recovery...');
hls.recoverMediaError(); hls.recoverMediaError();
break; break;
default: default:
console.log('Kritična napaka, uničujem HLS instanco...'); console.log('Critical error, destroying HLS instance...');
hls.destroy(); hls.destroy();
break; break;
} }

View File

@ -142,7 +142,7 @@ export default function LivePage() {
console.log('✅ Auto-play started successfully'); console.log('✅ Auto-play started successfully');
}).catch((e) => { }).catch((e) => {
console.log('⚠️ Auto-play blocked, user interaction required:', e); console.log('⚠️ Auto-play blocked, user interaction required:', e);
setError('Kliknite play za zagon streama'); setError('Klicken Sie auf Play, um den Stream zu starten');
}); });
}); });
@ -168,17 +168,17 @@ export default function LivePage() {
switch (data.type) { switch (data.type) {
case window.Hls.ErrorTypes.NETWORK_ERROR: case window.Hls.ErrorTypes.NETWORK_ERROR:
console.log('🔄 Network error, attempting recovery...'); console.log('🔄 Network error, attempting recovery...');
setError('Napaka pri povezavi s streamom - poskušam znova...'); setError('Verbindungsfehler - Erneuter Versuch...');
hls.startLoad(); hls.startLoad();
break; break;
case window.Hls.ErrorTypes.MEDIA_ERROR: case window.Hls.ErrorTypes.MEDIA_ERROR:
console.log('🔄 Media error, attempting recovery...'); console.log('🔄 Media error, attempting recovery...');
setError('Napaka pri predvajanju - poskušam znova...'); setError('Wiedergabefehler - Erneuter Versuch...');
hls.recoverMediaError(); hls.recoverMediaError();
break; break;
default: default:
console.error('💥 Fatal error, cannot recover:', data); console.error('💥 Fatal error, cannot recover:', data);
setError(`Napaka pri streamingu: ${data.details}`); setError(`Streaming-Fehler: ${data.details}`);
break; break;
} }
} }
@ -198,12 +198,12 @@ export default function LivePage() {
video.addEventListener('error', (e) => { video.addEventListener('error', (e) => {
console.error('❌ Native video error:', e); console.error('❌ Native video error:', e);
setError('Napaka pri nalaganju streama'); setError('Fehler beim Laden des Streams');
}); });
} else { } else {
console.error('❌ HLS not supported in this browser'); console.error('❌ HLS not supported in this browser');
setError('HLS ni podprt v tem brskalniku'); setError('HLS wird in diesem Browser nicht unterstützt');
setIsLoading(false); setIsLoading(false);
} }
@ -237,12 +237,12 @@ export default function LivePage() {
video.addEventListener('error', (e) => { video.addEventListener('error', (e) => {
console.error('❌ Video element error:', e); console.error('❌ Video element error:', e);
setError('Napaka video elementa'); setError('Video-Element-Fehler');
}); });
} catch (error) { } catch (error) {
console.error('💥 Failed to initialize live stream player:', error); console.error('💥 Failed to initialize live stream player:', error);
setError('Napaka pri inicializaciji playerja'); setError('Fehler bei der Player-Initialisierung');
setIsLoading(false); setIsLoading(false);
} }
}; };
@ -254,7 +254,7 @@ export default function LivePage() {
} else { } else {
videoRef.current.play().catch((e) => { videoRef.current.play().catch((e) => {
console.log('Play failed:', e); console.log('Play failed:', e);
setError('Napaka pri predvajanju'); setError('Wiedergabefehler');
}); });
} }
} }
@ -440,7 +440,7 @@ export default function LivePage() {
className="mt-4 bg-red-600 hover:bg-red-700" className="mt-4 bg-red-600 hover:bg-red-700"
data-testid="button-retry" data-testid="button-retry"
> >
Poskusite znova Erneut versuchen
</Button> </Button>
</div> </div>
</div> </div>

View File

@ -353,14 +353,14 @@ function EditVideoDialog({
} }
toast({ toast({
title: "Uspeh!", title: "Erfolg!",
description: `AI opis je bil ustvarjen in shranjen (${data.characterCount || data.description.length}/500 znakov)`, description: `KI-Beschreibung wurde erstellt und gespeichert (${data.characterCount || data.description.length}/500 Zeichen)`,
}); });
} else { } else {
console.error("No description in response:", data); console.error("No description in response:", data);
toast({ toast({
title: "Napaka", title: "Fehler",
description: "AI ni vrnil opisa", description: "KI hat keine Beschreibung zurückgegeben",
variant: "destructive", variant: "destructive",
}); });
} }

View File

@ -133,7 +133,7 @@ Schreibe nur die Beschreibung, keine zusätzlichen Erklärungen.${avoidRepetitio
} catch (error: any) { } catch (error: any) {
console.error("Error generating video description:", error); console.error("Error generating video description:", error);
console.error("Error details:", error?.message || error); // More detailed error logging console.error("Error details:", error?.message || error); // More detailed error logging
throw new Error("Napaka pri generiranju opisa s strani AI"); throw new Error("Fehler bei der KI-Beschreibungsgenerierung");
} }
} }

View File

@ -195,7 +195,7 @@ app.use((req, res, next) => {
<meta name="twitter:player:height" content="630"> <meta name="twitter:player:height" content="630">
<meta name="twitter:creator" content="@go4video"> <meta name="twitter:creator" content="@go4video">
<!-- Strukturirani podatki za Google --> <!-- Structured data for Google -->
<script type="application/ld+json"> <script type="application/ld+json">
{ {
"@context": "https://schema.org", "@context": "https://schema.org",
@ -223,12 +223,12 @@ app.use((req, res, next) => {
} catch (error) { } catch (error) {
console.error('Error rendering video page for social bot:', error); console.error('Error rendering video page for social bot:', error);
// Če se zgodi napaka, nadaljujemo z običajno SPA // If an error occurs, continue with normal SPA
return next(); return next();
} }
} }
// Za običajne uporabnike nadaljujemo z SPA // For regular users, continue with SPA
next(); next();
}); });

View File

@ -1483,8 +1483,8 @@ export async function registerRoutes(app: Express): Promise<Server> {
</head> </head>
<body> <body>
<div class="container"> <div class="container">
<h1>Preusmerjanje...</h1> <h1>Weiterleitung...</h1>
<p>Če se ne preusmeri avtomatično, <a href="${videoUrl}">kliknite tukaj</a>.</p> <p>Falls keine automatische Weiterleitung erfolgt, <a href="${videoUrl}">hier klicken</a>.</p>
</div> </div>
<script>window.location.href = "${videoUrl}";</script> <script>window.location.href = "${videoUrl}";</script>
</body> </body>