lingua 100% correta

This commit is contained in:
2026-05-05 16:14:14 +01:00
parent 771f4dd1da
commit fc030aef60
2 changed files with 44 additions and 9 deletions

View File

@@ -1037,10 +1037,10 @@ export default function App() {
<Badge variant="warning">{weatherData ? weatherData.name : t('todayIn')}</Badge>
</div>
<h3 className="text-5xl font-black tracking-tighter mb-4" style={{ color: 'white' }}>
{weatherData ? `${weatherData.currentTemp}°C Atual • Média ${weatherData.avgTemp}°C` : t('weatherUpdate')}
{weatherData ? t('weatherCurrentAvg').replace('{current}', weatherData.currentTemp).replace('{avg}', weatherData.avgTemp) : t('weatherUpdate')}
</h3>
<p className="text-lg font-medium max-w-lg leading-relaxed" style={{ color: 'rgba(255,255,255,0.8)' }}>
{weatherData ? `O dia de hoje tem máximas de ${weatherData.maxTemp}°C e mínimas de ${weatherData.minTemp}°C. ${t('weatherMsg')}` : t('weatherMsg')}
{weatherData ? `${t('weatherForecastDesc').replace('{max}', weatherData.maxTemp).replace('{min}', weatherData.minTemp)} ${t('weatherMsg')}` : t('weatherMsg')}
</p>
</div>
<div className="mt-10 flex gap-4 items-center">
@@ -1071,7 +1071,7 @@ export default function App() {
</div>
</div>
)) : (
<p className="text-xs opacity-50 italic">Adicione cores aos seus itens.</p>
<p className="text-xs opacity-50 italic">{t('addColorsToItems')}</p>
)}
</div>
</Card>
@@ -1638,7 +1638,7 @@ export default function App() {
))}
</div>
<input type="hidden" name="color" value={itemColors.join(', ')} />
{itemColors.length === 0 && <p className="text-[10px] text-red-500 uppercase tracking-widest font-black mt-2">Selecione pelo menos uma cor</p>}
{itemColors.length === 0 && <p className="text-[10px] text-red-500 uppercase tracking-widest font-black mt-2">{t('selectOneColor')}</p>}
</div>
<div className="space-y-4">
<label className="text-[10px] font-black uppercase opacity-40 tracking-widest ml-1 text-inherit flex items-center gap-2"><ImageIcon size={12}/> {t('imageUrl')} ou Upload</label>
@@ -1653,12 +1653,12 @@ export default function App() {
/>
<div className="flex items-center gap-4">
<div className="h-px bg-gray-200 dark:bg-gray-700 flex-1"></div>
<span className="text-[10px] font-black uppercase tracking-widest opacity-30">OU</span>
<span className="text-[10px] font-black uppercase tracking-widest opacity-30">{t('or')}</span>
<div className="h-px bg-gray-200 dark:bg-gray-700 flex-1"></div>
</div>
<label className={`flex items-center justify-center gap-3 p-5 rounded-2xl cursor-pointer transition-all font-black text-[10px] uppercase tracking-widest border-2 border-dashed ${darkMode ? 'bg-gray-800 border-gray-700 hover:border-primary-500 hover:text-primary-400' : 'bg-gray-50 border-gray-200 hover:border-primary-400 hover:text-primary-600'}`}>
<ImageIcon size={16} />
<span>Upload da Galeria / Ficheiros</span>
<span>{t('uploadGallery')}</span>
<input type="file" accept="image/*" className="hidden" onChange={handleItemImageUpload} />
</label>
</div>
@@ -1889,16 +1889,16 @@ export default function App() {
<div className="grid grid-cols-2 gap-4">
<label className="flex items-center gap-3 p-4 rounded-xl border border-gray-100 dark:border-gray-800 cursor-pointer hover:bg-gray-50 dark:hover:bg-gray-800 transition-colors">
<input type="radio" name="type" value="Ideia/Sugestão" defaultChecked className="text-primary-600 focus:ring-primary-500" />
<span className="font-bold text-sm text-inherit">Ideia / Sugestão</span>
<span className="font-bold text-sm text-inherit">{t('ideaSuggestion')}</span>
</label>
<label className="flex items-center gap-3 p-4 rounded-xl border border-gray-100 dark:border-gray-800 cursor-pointer hover:bg-gray-50 dark:hover:bg-gray-800 transition-colors">
<input type="radio" name="type" value="Bug/Erro" className="text-primary-600 focus:ring-primary-500" />
<span className="font-bold text-sm text-inherit">Bug / Erro</span>
<span className="font-bold text-sm text-inherit">{t('bugError')}</span>
</label>
</div>
<textarea name="message" required placeholder={t('writeMessage')} rows={4} className={`w-full p-4 rounded-xl border-none outline-none focus:ring-2 focus:ring-primary-500 font-bold resize-none ${darkMode ? 'bg-gray-800 text-white' : 'bg-gray-50'}`}></textarea>
<button type="submit" className="w-full py-4 bg-primary-600 text-white rounded-xl font-black uppercase text-[10px] tracking-widest shadow-xl shadow-primary-600/30 hover:scale-[1.01] transition-all">
Enviar Mensagem
{t('sendMessage')}
</button>
</form>
</Card>

View File

@@ -24,6 +24,8 @@ export const translations = {
favorites: "Favoritos",
todayIn: "Hoje em Portugal",
weatherUpdate: "22°C - Ensolarado",
weatherCurrentAvg: "{current}°C Atual • Média {avg}°C",
weatherForecastDesc: "O dia de hoje tem máximas de {max}°C e mínimas de {min}°C.",
weatherMsg: "Está um dia fantástico! Recomendamos as tuas peças leves. Que tal um visual casual com as tuas sapatilhas favoritas?",
exploreSuggestions: "Explorar Sugestões",
topColors: "Top Cores",
@@ -181,6 +183,11 @@ export const translations = {
removeOutfitDay: "Remover Outfit deste Dia",
noOutfitCreated: "Nenhum outfit criado",
piecesShort: "peças",
editLook: "Editar Outfit",
uploadGallery: "Upload da Galeria / Ficheiros",
selectOneColor: "Selecione pelo menos uma cor",
addColorsToItems: "Adicione cores aos seus itens.",
or: "OU",
},
EN: {
loginModeIntro: "The Future of Your Style",
@@ -207,6 +214,8 @@ export const translations = {
favorites: "Favorites",
todayIn: "Today in Portugal",
weatherUpdate: "22°C - Sunny",
weatherCurrentAvg: "{current}°C Current • Average {avg}°C",
weatherForecastDesc: "Today has highs of {max}°C and lows of {min}°C.",
weatherMsg: "It's a fantastic day! We recommend your light pieces. How about a casual look with your favorite sneakers?",
exploreSuggestions: "Explore Suggestions",
topColors: "Top Colors",
@@ -364,6 +373,11 @@ export const translations = {
removeOutfitDay: "Remove Outfit from this Day",
noOutfitCreated: "No outfit created",
piecesShort: "pieces",
editLook: "Edit Outfit",
uploadGallery: "Upload from Gallery / Files",
selectOneColor: "Select at least one color",
addColorsToItems: "Add colors to your items.",
or: "OR",
},
ES: {
loginModeIntro: "El Futuro de Tu Estilo",
@@ -390,6 +404,8 @@ export const translations = {
favorites: "Favoritos",
todayIn: "Hoy en Portugal",
weatherUpdate: "22°C - Soleado",
weatherCurrentAvg: "{current}°C Actual • Media {avg}°C",
weatherForecastDesc: "El día de hoy tiene máximas de {max}°C y mínimas de {min}°C.",
weatherMsg: "¡Es un día fantástico! Recomendamos tus piezas ligeras. ¿Qué tal un look casual con tus zapatillas favoritas?",
exploreSuggestions: "Explorar Sugerencias",
topColors: "Colores Principales",
@@ -547,6 +563,11 @@ export const translations = {
removeOutfitDay: "Quitar Outfit de este Día",
noOutfitCreated: "Ningún outfit creado",
piecesShort: "piezas",
editLook: "Editar Outfit",
uploadGallery: "Subir desde la Galería / Archivos",
selectOneColor: "Selecciona al menos un color",
addColorsToItems: "Añade colores a tus artículos.",
or: "O",
},
FR: {
loginModeIntro: "Le Futur de Ton Style",
@@ -573,6 +594,8 @@ export const translations = {
favorites: "Favoris",
todayIn: "Aujourd'hui au Portugal",
weatherUpdate: "22°C - Ensoleillé",
weatherCurrentAvg: "{current}°C Actuel • Moyenne {avg}°C",
weatherForecastDesc: "Aujourd'hui a des maximales de {max}°C et des minimales de {min}°C.",
weatherMsg: "C'est une journée fantastique ! Nous recommandons vos pièces légères. Que diriez-vous d'un look décontracté avec vos baskets préférées ?",
exploreSuggestions: "Explorer les Suggestions",
topColors: "Couleurs Principales",
@@ -730,6 +753,11 @@ export const translations = {
removeOutfitDay: "Retirer l'Outfit de ce Jour",
noOutfitCreated: "Aucun outfit créé",
piecesShort: "pièces",
editLook: "Modifier l'Outfit",
uploadGallery: "Télécharger depuis la Galerie / Fichiers",
selectOneColor: "Sélectionnez au moins une couleur",
addColorsToItems: "Ajoutez des couleurs à vos articles.",
or: "OU",
},
DE: {
loginModeIntro: "Die Zukunft deines Stils",
@@ -756,6 +784,8 @@ export const translations = {
favorites: "Favoriten",
todayIn: "Heute in Portugal",
weatherUpdate: "22°C - Sonnig",
weatherCurrentAvg: "{current}°C Aktuell • Durchschnitt {avg}°C",
weatherForecastDesc: "Der heutige Tag hat Höchstwerte von {max}°C und Tiefstwerte von {min}°C.",
weatherMsg: "Es ist ein fantastischer Tag! Wir empfehlen leichte Stücke. Wie wäre es mit einem lässigen Look mit deinen Lieblings-Sneakern?",
exploreSuggestions: "Vorschläge entdecken",
topColors: "Top Farben",
@@ -913,5 +943,10 @@ export const translations = {
removeOutfitDay: "Outfit von diesem Tag entfernen",
noOutfitCreated: "Kein Outfit erstellt",
piecesShort: "Stücke",
editLook: "Outfit bearbeiten",
uploadGallery: "Aus Galerie / Dateien hochladen",
selectOneColor: "Wähle mindestens eine Farbe",
addColorsToItems: "Füge deinen Artikeln Farben hinzu.",
or: "ODER",
}
};