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:
parent
b1eeb2b9fb
commit
bd01ca5e3c
BIN
attached_assets/image_1768214683798.png
Normal file
BIN
attached_assets/image_1768214683798.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 192 KiB |
@ -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"
|
||||
>
|
||||
preberi več
|
||||
mehr anzeigen
|
||||
</button>
|
||||
)}
|
||||
</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"
|
||||
>
|
||||
pokaži manj
|
||||
weniger anzeigen
|
||||
</button>
|
||||
)}
|
||||
</div>
|
||||
|
||||
@ -38,16 +38,16 @@ export default function VideoEditModal({ video, isOpen, onClose }: VideoEditModa
|
||||
},
|
||||
onSuccess: () => {
|
||||
toast({
|
||||
title: "Thumbnail uspešno shranjen!",
|
||||
description: "Spremembe so shranjene lokalno"
|
||||
title: "Thumbnail erfolgreich gespeichert!",
|
||||
description: "Änderungen wurden lokal gespeichert"
|
||||
});
|
||||
queryClient.invalidateQueries({ queryKey: ["/api/videos"] });
|
||||
onClose();
|
||||
},
|
||||
onError: () => {
|
||||
toast({
|
||||
title: "Napaka pri shranjevanju",
|
||||
description: "Poskusite znova",
|
||||
title: "Fehler beim Speichern",
|
||||
description: "Bitte erneut versuchen",
|
||||
variant: "destructive"
|
||||
});
|
||||
}
|
||||
@ -67,7 +67,7 @@ export default function VideoEditModal({ video, isOpen, onClose }: VideoEditModa
|
||||
setThumbnailPreview(thumbnailDataUrl);
|
||||
setCustomThumbnail(null); // Clear file input since we're using generated thumbnail
|
||||
setShowThumbnailGenerator(false);
|
||||
toast({ title: "Thumbnail ustvarjen iz videoposnetka!" });
|
||||
toast({ title: "Thumbnail aus Video erstellt!" });
|
||||
};
|
||||
|
||||
const handleSave = () => {
|
||||
|
||||
@ -174,8 +174,8 @@ export default function VideoModal({ video, isOpen, onClose, enableAds = true }:
|
||||
// Quality level monitoring with detailed stats
|
||||
hls.on(Hls.Events.LEVEL_SWITCHED, (event, data) => {
|
||||
const level = hls.levels[data.level];
|
||||
console.log(`PREKLOPIL KAKOVOST: ${level.height}p @ ${Math.round(level.bitrate/1000)}kbps`);
|
||||
console.log('Razlog preklopa: adaptivni algoritem na podlagi omrežne hitrosti');
|
||||
console.log(`Quality switched: ${level.height}p @ ${Math.round(level.bitrate/1000)}kbps`);
|
||||
console.log('Switch reason: adaptive algorithm based on network speed');
|
||||
});
|
||||
|
||||
// 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 loadTime = stats.loading.end - stats.loading.start;
|
||||
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) {
|
||||
// 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) {
|
||||
const bufferLevel = buffered.end(buffered.length - 1) - videoElement.currentTime;
|
||||
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
|
||||
hls.on(Hls.Events.ERROR, (event, data) => {
|
||||
console.error('HLS napaka:', data);
|
||||
console.error('HLS error:', data);
|
||||
if (data.fatal) {
|
||||
switch (data.type) {
|
||||
case Hls.ErrorTypes.NETWORK_ERROR:
|
||||
console.log('Omrežna napaka, poskušam obnoviti...');
|
||||
console.log('Network error, attempting recovery...');
|
||||
// Try to downgrade quality first
|
||||
if (hls.currentLevel > 0) {
|
||||
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();
|
||||
break;
|
||||
case Hls.ErrorTypes.MEDIA_ERROR:
|
||||
console.log('Medijska napaka, poskušam obnoviti...');
|
||||
console.log('Media error, attempting recovery...');
|
||||
hls.recoverMediaError();
|
||||
break;
|
||||
default:
|
||||
console.log('Kritična napaka, uničujem HLS instanco...');
|
||||
console.log('Critical error, destroying HLS instance...');
|
||||
hls.destroy();
|
||||
break;
|
||||
}
|
||||
|
||||
@ -142,7 +142,7 @@ export default function LivePage() {
|
||||
console.log('✅ Auto-play started successfully');
|
||||
}).catch((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) {
|
||||
case window.Hls.ErrorTypes.NETWORK_ERROR:
|
||||
console.log('🔄 Network error, attempting recovery...');
|
||||
setError('Napaka pri povezavi s streamom - poskušam znova...');
|
||||
setError('Verbindungsfehler - Erneuter Versuch...');
|
||||
hls.startLoad();
|
||||
break;
|
||||
case window.Hls.ErrorTypes.MEDIA_ERROR:
|
||||
console.log('🔄 Media error, attempting recovery...');
|
||||
setError('Napaka pri predvajanju - poskušam znova...');
|
||||
setError('Wiedergabefehler - Erneuter Versuch...');
|
||||
hls.recoverMediaError();
|
||||
break;
|
||||
default:
|
||||
console.error('💥 Fatal error, cannot recover:', data);
|
||||
setError(`Napaka pri streamingu: ${data.details}`);
|
||||
setError(`Streaming-Fehler: ${data.details}`);
|
||||
break;
|
||||
}
|
||||
}
|
||||
@ -198,12 +198,12 @@ export default function LivePage() {
|
||||
|
||||
video.addEventListener('error', (e) => {
|
||||
console.error('❌ Native video error:', e);
|
||||
setError('Napaka pri nalaganju streama');
|
||||
setError('Fehler beim Laden des Streams');
|
||||
});
|
||||
|
||||
} else {
|
||||
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);
|
||||
}
|
||||
|
||||
@ -237,12 +237,12 @@ export default function LivePage() {
|
||||
|
||||
video.addEventListener('error', (e) => {
|
||||
console.error('❌ Video element error:', e);
|
||||
setError('Napaka video elementa');
|
||||
setError('Video-Element-Fehler');
|
||||
});
|
||||
|
||||
} catch (error) {
|
||||
console.error('💥 Failed to initialize live stream player:', error);
|
||||
setError('Napaka pri inicializaciji playerja');
|
||||
setError('Fehler bei der Player-Initialisierung');
|
||||
setIsLoading(false);
|
||||
}
|
||||
};
|
||||
@ -254,7 +254,7 @@ export default function LivePage() {
|
||||
} else {
|
||||
videoRef.current.play().catch((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"
|
||||
data-testid="button-retry"
|
||||
>
|
||||
Poskusite znova
|
||||
Erneut versuchen
|
||||
</Button>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@ -353,14 +353,14 @@ function EditVideoDialog({
|
||||
}
|
||||
|
||||
toast({
|
||||
title: "Uspeh!",
|
||||
description: `AI opis je bil ustvarjen in shranjen (${data.characterCount || data.description.length}/500 znakov)`,
|
||||
title: "Erfolg!",
|
||||
description: `KI-Beschreibung wurde erstellt und gespeichert (${data.characterCount || data.description.length}/500 Zeichen)`,
|
||||
});
|
||||
} else {
|
||||
console.error("No description in response:", data);
|
||||
toast({
|
||||
title: "Napaka",
|
||||
description: "AI ni vrnil opisa",
|
||||
title: "Fehler",
|
||||
description: "KI hat keine Beschreibung zurückgegeben",
|
||||
variant: "destructive",
|
||||
});
|
||||
}
|
||||
|
||||
@ -133,7 +133,7 @@ Schreibe nur die Beschreibung, keine zusätzlichen Erklärungen.${avoidRepetitio
|
||||
} catch (error: any) {
|
||||
console.error("Error generating video description:", error);
|
||||
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");
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@ -195,7 +195,7 @@ app.use((req, res, next) => {
|
||||
<meta name="twitter:player:height" content="630">
|
||||
<meta name="twitter:creator" content="@go4video">
|
||||
|
||||
<!-- Strukturirani podatki za Google -->
|
||||
<!-- Structured data for Google -->
|
||||
<script type="application/ld+json">
|
||||
{
|
||||
"@context": "https://schema.org",
|
||||
@ -223,12 +223,12 @@ app.use((req, res, next) => {
|
||||
|
||||
} catch (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();
|
||||
}
|
||||
}
|
||||
|
||||
// Za običajne uporabnike nadaljujemo z SPA
|
||||
// For regular users, continue with SPA
|
||||
next();
|
||||
});
|
||||
|
||||
|
||||
@ -1483,8 +1483,8 @@ export async function registerRoutes(app: Express): Promise<Server> {
|
||||
</head>
|
||||
<body>
|
||||
<div class="container">
|
||||
<h1>Preusmerjanje...</h1>
|
||||
<p>Če se ne preusmeri avtomatično, <a href="${videoUrl}">kliknite tukaj</a>.</p>
|
||||
<h1>Weiterleitung...</h1>
|
||||
<p>Falls keine automatische Weiterleitung erfolgt, <a href="${videoUrl}">hier klicken</a>.</p>
|
||||
</div>
|
||||
<script>window.location.href = "${videoUrl}";</script>
|
||||
</body>
|
||||
|
||||
Loading…
Reference in New Issue
Block a user