Skip to content

Commit 65b9b4d

Browse files
committed
feat(license-plate): add Firefox detection and warning message in translations
1 parent 2b03ec4 commit 65b9b4d

2 files changed

Lines changed: 23 additions & 0 deletions

File tree

src/components/PlateGenerator.tsx

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -313,6 +313,9 @@ export default function PlateGenerator() {
313313
setConfig(prev => ({ ...prev, [field]: value }));
314314
}, []);
315315

316+
// Detect Firefox browser
317+
const isFirefox = typeof navigator !== 'undefined' && navigator.userAgent.toLowerCase().includes('firefox');
318+
316319
const exportAsPNG = useCallback(async () => {
317320
if (!plateRef.current) return;
318321

@@ -1248,6 +1251,14 @@ export default function PlateGenerator() {
12481251
<p className="mt-3 text-sm text-white/70">
12491252
Export: 420 × dynamisch px
12501253
</p>
1254+
{isFirefox && (
1255+
<div className="mt-4 p-3 bg-orange-500/20 border border-orange-400/50 rounded-xl max-w-md mx-auto">
1256+
<p className="text-sm text-orange-200 flex items-start gap-2">
1257+
<span className="text-lg">⚠️</span>
1258+
<span>{t.firefoxWarning}</span>
1259+
</p>
1260+
</div>
1261+
)}
12511262
</div>
12521263

12531264
{/* USB Installation Guide */}

src/i18n/translations.ts

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -94,6 +94,7 @@ export interface Translations {
9494

9595
// Messages
9696
exportFailed: string;
97+
firefoxWarning: string;
9798

9899
// Footer
99100
wappenAttribution: string;
@@ -156,6 +157,7 @@ const translations: Record<Language, Translations> = {
156157
personalizedText: 'Personalisierter Text',
157158
exportPNG: 'Als PNG exportieren',
158159
exportFailed: 'Export fehlgeschlagen. Bitte versuche es erneut.',
160+
firefoxWarning: 'Du nutzt Firefox: Einige Bilder (z.B. Wappen) werden möglicherweise nicht exportiert. Für beste Ergebnisse Chrome, Safari oder Edge verwenden.',
159161
wappenAttribution: 'Wappen: Wikimedia Commons (Public Domain / CC)',
160162
usbInstallTitle: 'Wie füge ich es dem Tesla hinzu?',
161163
usbInstallStep1: 'Erstellen Sie auf dem USB-Stick einen Ordner mit dem Namen "LicensePlate".',
@@ -215,6 +217,7 @@ const translations: Record<Language, Translations> = {
215217
personalizedText: 'Personalized Text',
216218
exportPNG: 'Export as PNG',
217219
exportFailed: 'Export failed. Please try again.',
220+
firefoxWarning: 'You are using Firefox: Some images (e.g. coat of arms) may not be exported. For best results, use Chrome, Safari, or Edge.',
218221
wappenAttribution: 'Emblems: Wikimedia Commons (Public Domain / CC)',
219222
usbInstallTitle: 'How do I add it to my Tesla?',
220223
usbInstallStep1: 'Create a folder named "LicensePlate" on the USB drive.',
@@ -274,6 +277,7 @@ const translations: Record<Language, Translations> = {
274277
personalizedText: 'Texte personnalisé',
275278
exportPNG: 'Exporter en PNG',
276279
exportFailed: 'Échec de l\'export. Veuillez réessayer.',
280+
firefoxWarning: 'Vous utilisez Firefox : Certaines images (armoiries) peuvent ne pas être exportées. Pour de meilleurs résultats, utilisez Chrome, Safari ou Edge.',
277281
wappenAttribution: 'Emblèmes: Wikimedia Commons (Domaine public / CC)',
278282
usbInstallTitle: 'Comment l\'ajouter à ma Tesla ?',
279283
usbInstallStep1: 'Créez un dossier nommé "LicensePlate" sur la clé USB.',
@@ -333,6 +337,7 @@ const translations: Record<Language, Translations> = {
333337
personalizedText: 'Texto personalizado',
334338
exportPNG: 'Exportar como PNG',
335339
exportFailed: 'Error al exportar. Por favor, inténtalo de nuevo.',
340+
firefoxWarning: 'Estás usando Firefox: Algunas imágenes (escudos) pueden no exportarse. Para mejores resultados, usa Chrome, Safari o Edge.',
336341
wappenAttribution: 'Emblemas: Wikimedia Commons (Dominio público / CC)',
337342
usbInstallTitle: '¿Cómo lo añado a mi Tesla?',
338343
usbInstallStep1: 'Cree una carpeta llamada "LicensePlate" en la unidad USB.',
@@ -392,6 +397,7 @@ const translations: Record<Language, Translations> = {
392397
personalizedText: 'Testo personalizzato',
393398
exportPNG: 'Esporta come PNG',
394399
exportFailed: 'Esportazione fallita. Riprova.',
400+
firefoxWarning: 'Stai usando Firefox: Alcune immagini (stemmi) potrebbero non essere esportate. Per risultati migliori, usa Chrome, Safari o Edge.',
395401
wappenAttribution: 'Stemmi: Wikimedia Commons (Pubblico dominio / CC)',
396402
usbInstallTitle: 'Come lo aggiungo alla mia Tesla?',
397403
usbInstallStep1: 'Creare una cartella denominata "LicensePlate" sull\'unità USB.',
@@ -451,6 +457,7 @@ const translations: Record<Language, Translations> = {
451457
personalizedText: 'Gepersonaliseerde tekst',
452458
exportPNG: 'Exporteren als PNG',
453459
exportFailed: 'Export mislukt. Probeer het opnieuw.',
460+
firefoxWarning: 'Je gebruikt Firefox: Sommige afbeeldingen (wapens) worden mogelijk niet geëxporteerd. Gebruik Chrome, Safari of Edge voor het beste resultaat.',
454461
wappenAttribution: 'Emblemen: Wikimedia Commons (Publiek domein / CC)',
455462
usbInstallTitle: 'Hoe voeg ik het toe aan mijn Tesla?',
456463
usbInstallStep1: 'Maak een map met de naam "LicensePlate" op de USB-stick.',
@@ -510,6 +517,7 @@ const translations: Record<Language, Translations> = {
510517
personalizedText: 'Spersonalizowany tekst',
511518
exportPNG: 'Eksportuj jako PNG',
512519
exportFailed: 'Eksport nie powiódł się. Spróbuj ponownie.',
520+
firefoxWarning: 'Używasz Firefox: Niektóre obrazy (herby) mogą nie zostać wyeksportowane. Dla najlepszych wyników użyj Chrome, Safari lub Edge.',
513521
wappenAttribution: 'Godła: Wikimedia Commons (Domena publiczna / CC)',
514522
usbInstallTitle: 'Jak dodać to do mojej Tesli?',
515523
usbInstallStep1: 'Utwórz folder o nazwie "LicensePlate" na pendrive USB.',
@@ -569,6 +577,7 @@ const translations: Record<Language, Translations> = {
569577
personalizedText: 'Texto personalizado',
570578
exportPNG: 'Exportar como PNG',
571579
exportFailed: 'Falha na exportação. Tente novamente.',
580+
firefoxWarning: 'Você está usando o Firefox: Algumas imagens (brasões) podem não ser exportadas. Para melhores resultados, use Chrome, Safari ou Edge.',
572581
wappenAttribution: 'Emblemas: Wikimedia Commons (Domínio público / CC)',
573582
usbInstallTitle: 'Como adiciono ao meu Tesla?',
574583
usbInstallStep1: 'Crie uma pasta chamada "LicensePlate" na unidade USB.',
@@ -628,6 +637,7 @@ const translations: Record<Language, Translations> = {
628637
personalizedText: 'Personlig text',
629638
exportPNG: 'Exportera som PNG',
630639
exportFailed: 'Export misslyckades. Försök igen.',
640+
firefoxWarning: 'Du använder Firefox: Vissa bilder (t.ex. vapensköldar) kanske inte exporteras. För bästa resultat, använd Chrome, Safari eller Edge.',
631641
wappenAttribution: 'Emblem: Wikimedia Commons (Public Domain / CC)',
632642
usbInstallTitle: 'Hur lägger jag till den i min Tesla?',
633643
usbInstallStep1: 'Skapa en mapp med namnet "LicensePlate" på USB-enheten.',
@@ -687,6 +697,7 @@ const translations: Record<Language, Translations> = {
687697
personalizedText: 'Osobní text',
688698
exportPNG: 'Exportovat jako PNG',
689699
exportFailed: 'Export selhal. Zkuste to znovu.',
700+
firefoxWarning: 'Používáte Firefox: Některé obrázky (znaky) nemusí být exportovány. Pro nejlepší výsledky použijte Chrome, Safari nebo Edge.',
690701
wappenAttribution: 'Znaky: Wikimedia Commons (Public Domain / CC)',
691702
usbInstallTitle: 'Jak to přidám do své Tesly?',
692703
usbInstallStep1: 'Vytvořte složku s názvem "LicensePlate" na USB disku.',
@@ -746,6 +757,7 @@ const translations: Record<Language, Translations> = {
746757
personalizedText: 'Personalizirani Tekst',
747758
exportPNG: 'Spremi kao PNG',
748759
exportFailed: 'Spremanje neuspješno. Pokušajte ponovo.',
760+
firefoxWarning: 'Koristite Firefox: Neke slike (grbovi) možda se neće izvesti. Za najbolje rezultate koristite Chrome, Safari ili Edge.',
749761
wappenAttribution: 'Grb: Wikimedia Commons (Public Domain / CC)',
750762
usbInstallTitle: 'Kako dodati u Teslu?',
751763
usbInstallStep1: 'Napravite mapu na USB-u pod nazivom "LicensePlate".',

0 commit comments

Comments
 (0)