From ff172e019e7411fd2ae2efa586c94ba9d4868790 Mon Sep 17 00:00:00 2001 From: cyberalby2 Date: Mon, 16 Mar 2026 01:26:13 +0100 Subject: [PATCH] MAL Settings Screen Localization Patch --- src/i18n/locales/en.json | 36 ++++++++++++++++ src/i18n/locales/it.json | 36 ++++++++++++++++ src/screens/MalSettingsScreen.tsx | 68 +++++++++++++++---------------- 3 files changed, 106 insertions(+), 34 deletions(-) diff --git a/src/i18n/locales/en.json b/src/i18n/locales/en.json index 3af92a79..9c720377 100644 --- a/src/i18n/locales/en.json +++ b/src/i18n/locales/en.json @@ -1531,5 +1531,41 @@ "skip":"Skip", "get_started":"Get Started", "swipe_to_continue":"Swipe to continue" + }, + "mal_settings_screen":{ + "connected":"Connected to MyAnimeList", + "failed_to_connect":"Failed to connect to MyAnimeList", + "error_occured":"An error occurred during sign in", + "unknown_error":"Unknown error", + "sign_out":"Sign Out", + "sign_out_confirm":"Are you sure you want to disconnect?", + "settings":"Settings", + "total":"Total", + "days":"Days", + "mean":"Mean", + "watching":"Watching", + "completed":"Completed", + "on_hold":"On Hold", + "dropped":"Dropped", + "sync_complete_title":"Sync Complete", + "sync_complete_title_desc":"MAL data has been refreshed", + "sync_failed_title":"Sync Failed", + "sync_failed_title_desc":"Could not refresh MAL data.", + "sync":"Sync", + "connect":"Connect MyAnimeList", + "connect_desc":"Sync your watch history and manage your anime list.", + "sign_in":"Sign In with MAL", + "sync_settings":"Sync Settings", + "enable_mal_sync":"Enable MAL Sync", + "enable_mal_sync_desc":"Global switch to enable or disable all MyAnimeList features.", + "mal_auto_episode":"Auto Episode Update", + "mal_auto_episode_desc":"Automatically update your progress on MAL when you finish watching an episode", + "completion":"completion", + "auto_add_anime":"Auto Add Anime", + "auto_add_anime_desc":"If an anime is not in your MAL list, it will be added automatically when you start watching.", + "auto_sync":" Auto-Sync to Library", + "auto_sync_desc":"Automatically add items from your MAL 'Watching' list to your Nuvio Library.", + "allow_nsfw":"Include NSFW Content", + "allow_nsfw_desc":"Allow NSFW entries to be returned when fetching your MAL list." } } diff --git a/src/i18n/locales/it.json b/src/i18n/locales/it.json index 5563ecd8..0f9cfcce 100644 --- a/src/i18n/locales/it.json +++ b/src/i18n/locales/it.json @@ -1514,5 +1514,41 @@ "skip":"Salta", "get_started":"Inizia", "swipe_to_continue":"Scorri per continuare" + }, + "mal_settings_screen":{ + "connected":"Connesso su MyAnimeList", + "failed_to_connect":"Errore nel collegamento su MyAnimeList", + "error_occured":"Un errore si è verificato durante l'accesso", + "unknown_error":"Errore sconosciuto", + "sign_out":"Logout", + "sign_out_confirm":"Sei sicuro di volerti disconnettere?", + "settings":"Impostazioni", + "total":"Totali", + "days":"Giorni", + "mean":"Mean", + "watching":"Guardati", + "completed":"Completati", + "on_hold":"Da Parte", + "dropped":"Dropped", + "sync_complete_title":"Sincronizzazione completata", + "sync_complete_title_desc":"I dati di MAL son stati aggiornati", + "sync_failed_title":"Sincronizzazione fallita", + "sync_failed_title_desc":"Non è stato possibile aggiornare i dati di MAL", + "sync":"Sincronizzazione", + "connect":"Connetti MyAnimeList", + "connect_desc":"Sincronizza la tua cronologia di visione e gestisci le tue liste anime.", + "sign_in":"Accedi con MAL", + "sync_settings":"Impostazioni di Sincronizzazione", + "enable_mal_sync":"Abilita Sincronizzazione MAL", + "enable_mal_sync_desc":"Toggle Globale per abilitare e disabilitare tutte le feature di MyAnimeList.", + "mal_auto_episode":"Aggiornamento Episodi Automatico", + "mal_auto_episode_desc":"Aggiorna automaticamente i tuoi progressi su MAL quando hai finito di guardare un episodio", + "completion":"completamento", + "auto_add_anime":"Aggiunta Anime Automatica", + "auto_add_anime_desc":"Se l'anime non è nella tua lista MAL , sarà aggiunto automaticamente quando inizi a guardarlo.", + "auto_sync":"Sincronizzazione Libreria Automatica", + "auto_sync_desc":"Aggiungi elementi dalla tua lista 'Watching' di MAL verso la tua libreria di Nuvio.", + "allow_nsfw":"Includi Contenuti NSFW", + "allow_nsfw_desc":"Consenti contenuti NSFW quando aggiorni i dati dalle tue liste MAL." } } diff --git a/src/screens/MalSettingsScreen.tsx b/src/screens/MalSettingsScreen.tsx index 15f1fa1c..2807b4b8 100644 --- a/src/screens/MalSettingsScreen.tsx +++ b/src/screens/MalSettingsScreen.tsx @@ -98,24 +98,24 @@ const MalSettingsScreen: React.FC = () => { const result = await MalAuth.login(); if (result === true) { await checkAuthStatus(); - openAlert('Success', 'Connected to MyAnimeList'); + openAlert(t('common.success'), t('mal_settings_screen.connected')); } else { - const errorMessage = typeof result === 'string' ? result : 'Failed to connect to MyAnimeList'; - openAlert('Error', errorMessage); + const errorMessage = typeof result === 'string' ? result : t('mal_settings_screen.failed_to_connect'); + openAlert(t('common.error'), errorMessage); } } catch (e: any) { console.error(e); - openAlert('Error', `An error occurred during sign in: ${e.message || 'Unknown error'}`); + openAlert(t('common.error'), `${t('mal_settings_screen.error_occured')}: ${e.message || t('mal_settings_screen.unknown_error')}`); } finally { setIsLoading(false); } }; const handleSignOut = () => { - openAlert('Sign Out', 'Are you sure you want to disconnect?', [ - { label: 'Cancel', onPress: () => setAlertVisible(false) }, + openAlert(t('mal_settings_screen.sign_out'), t('mal_settings_screen.sign_out_confirm'), [ + { label: t('common.cancel'), onPress: () => setAlertVisible(false) }, { - label: 'Sign Out', + label: t('mal_settings_screen.sign_out'), onPress: () => { MalAuth.clearToken(); setIsAuthenticated(false); @@ -168,7 +168,7 @@ const MalSettingsScreen: React.FC = () => { color={currentTheme.colors.highEmphasis} /> - Settings + {t('mal_settings_screen.settings')} @@ -232,47 +232,47 @@ const MalSettingsScreen: React.FC = () => { {userProfile.anime_statistics.num_items} - Total + {t('mal_settings_screen.total')} {userProfile.anime_statistics.num_days_watched.toFixed(1)} - Days + {t('mal_settings_screen.days')} {userProfile.anime_statistics.mean_score.toFixed(1)} - Mean + {t('mal_settings_screen.mean')} - Watching + {t('mal_settings_screen.watching')} {userProfile.anime_statistics.num_items_watching} - Completed + {t('mal_settings_screen.completed')} {userProfile.anime_statistics.num_items_completed} - On Hold + {t('mal_settings_screen.on_hold')} {userProfile.anime_statistics.num_items_on_hold} - Dropped + {t('mal_settings_screen.dropped')} {userProfile.anime_statistics.num_items_dropped} @@ -289,26 +289,26 @@ const MalSettingsScreen: React.FC = () => { try { const synced = await MalSync.syncMalToLibrary(); if (synced) { - openAlert('Sync Complete', 'MAL data has been refreshed.'); + openAlert(t('mal_settings_screen.sync_complete_title'), t('mal_settings_screen.sync_complete_title_desc')); } else { - openAlert('Sync Failed', 'Could not refresh MAL data.'); + openAlert(t('mal_settings_screen.sync_failed_title'), t('mal_settings_screen.sync_failed_title_desc')); } } catch { - openAlert('Sync Failed', 'Could not refresh MAL data.'); + openAlert(t('mal_settings_screen.sync_failed_title'), t('mal_settings_screen.sync_failed_title_desc')); } finally { setIsLoading(false); } }} > - Sync + {t('mal_settings_screen.sync')} - Sign Out + {t('mal_settings_screen.sign_out')} @@ -320,16 +320,16 @@ const MalSettingsScreen: React.FC = () => { resizeMode="contain" /> - Connect MyAnimeList + {t('mal_settings_screen.connect')} - Sync your watch history and manage your anime list. + {t('mal_settings_screen.connect_desc')} - Sign In with MAL + {t('mal_settings_screen.sign_in')} )} @@ -339,17 +339,17 @@ const MalSettingsScreen: React.FC = () => { - Sync Settings + {t('mal_settings_screen.sync_settings')} - Enable MAL Sync + {t('mal_settings_screen.enable_mal_sync')} - Global switch to enable or disable all MyAnimeList features. + {t('mal_settings_screen.enable_mal_sync_desc')} { - Auto Episode Update + {t('mal_settings_screen.mal_auto_episode')} - Automatically update your progress on MAL when you finish watching an episode (>=90% completion). + {t('mal_settings_screen.mal_auto_episode_desc')} (>=90% {t('mal_settings_screen.completion')}). { - Auto Add Anime + {t('mal_settings_screen.auto_add_anime')} - If an anime is not in your MAL list, it will be added automatically when you start watching. + {t('mal_settings_screen.auto_add_anime_desc')} { - Auto-Sync to Library + {t('mal_settings_screen.auto_sync')} - Automatically add items from your MAL 'Watching' list to your Nuvio Library. + {t('mal_settings_screen.auto_sync_desc')} { - Include NSFW Content + {t('mal_settings_screen.allow_nsfw')} - Allow NSFW entries to be returned when fetching your MAL list. + {t('mal_settings_screen.allow_nsfw_desc')}