mirror of
https://github.com/tapframe/NuvioStreaming.git
synced 2026-05-18 07:51:46 +00:00
TMDB Settings Screen Localization Improvements and Support
This commit is contained in:
parent
8a0e7a4d18
commit
97513ab3cc
3 changed files with 71 additions and 56 deletions
|
|
@ -3,6 +3,7 @@
|
||||||
"loading": "Loading...",
|
"loading": "Loading...",
|
||||||
"cancel": "Cancel",
|
"cancel": "Cancel",
|
||||||
"save": "Save",
|
"save": "Save",
|
||||||
|
"clear":"Clear",
|
||||||
"delete": "Delete",
|
"delete": "Delete",
|
||||||
"edit": "Edit",
|
"edit": "Edit",
|
||||||
"search": "Search",
|
"search": "Search",
|
||||||
|
|
@ -624,7 +625,9 @@
|
||||||
"popular": "Popular",
|
"popular": "Popular",
|
||||||
"all_languages": "All Languages",
|
"all_languages": "All Languages",
|
||||||
"search_results": "Search Results",
|
"search_results": "Search Results",
|
||||||
"no_languages_found": "No languages found for \"{{query}}\"",
|
"no_languages_found": "No languages found for ",
|
||||||
|
"search_languages_placeholder":"Search Languages ...",
|
||||||
|
"fallback_to_available":"fallback to available",
|
||||||
"clear_search": "Clear Search",
|
"clear_search": "Clear Search",
|
||||||
"clear_cache_title": "Clear TMDB Cache",
|
"clear_cache_title": "Clear TMDB Cache",
|
||||||
"clear_cache_msg": "This will clear all cached TMDB data ({{size}}). This may temporarily slow down loading until cache rebuilds.",
|
"clear_cache_msg": "This will clear all cached TMDB data ({{size}}). This may temporarily slow down loading until cache rebuilds.",
|
||||||
|
|
@ -640,7 +643,11 @@
|
||||||
"using_builtin_key": "Now using the built-in TMDb API key.",
|
"using_builtin_key": "Now using the built-in TMDb API key.",
|
||||||
"using_custom_key": "Now using your custom TMDb API key.",
|
"using_custom_key": "Now using your custom TMDb API key.",
|
||||||
"enter_custom_key": "Please enter and save your custom TMDb API key.",
|
"enter_custom_key": "Please enter and save your custom TMDb API key.",
|
||||||
"key_verified": "API key verified and saved successfully."
|
"key_verified": "API key verified and saved successfully.",
|
||||||
|
"current":"Current",
|
||||||
|
"disclaimer_part_1":"This product uses the TMDB API but is not",
|
||||||
|
"disclaimer_part_2":"endorsed or certified by TMDB.",
|
||||||
|
"done":"Done"
|
||||||
},
|
},
|
||||||
"settings": {
|
"settings": {
|
||||||
"language": "Language",
|
"language": "Language",
|
||||||
|
|
|
||||||
|
|
@ -3,6 +3,7 @@
|
||||||
"loading": "Caricamento...",
|
"loading": "Caricamento...",
|
||||||
"cancel": "Annulla",
|
"cancel": "Annulla",
|
||||||
"save": "Salva",
|
"save": "Salva",
|
||||||
|
"clear":"Clear",
|
||||||
"delete": "Elimina",
|
"delete": "Elimina",
|
||||||
"edit": "Modifica",
|
"edit": "Modifica",
|
||||||
"search": "Cerca",
|
"search": "Cerca",
|
||||||
|
|
@ -528,7 +529,7 @@
|
||||||
"sync_complete_title": "Sincronizzazione completata",
|
"sync_complete_title": "Sincronizzazione completata",
|
||||||
"sync_success_msg": "Progressi di visione sincronizzati con successo con Trakt.",
|
"sync_success_msg": "Progressi di visione sincronizzati con successo con Trakt.",
|
||||||
"sync_error_msg": "Sincronizzazione fallita. Riprova.",
|
"sync_error_msg": "Sincronizzazione fallita. Riprova.",
|
||||||
"disclaimer":"Questo prodotto usa l'API di Trakt ma non è nè approvato nè certificato da Trakt.",
|
"disclaimer":"Questo prodotto usa l'API di Trakt ma non è né approvato né certificato da Trakt.",
|
||||||
"library_mode":"Modalità Sincronizzazione Libreria"
|
"library_mode":"Modalità Sincronizzazione Libreria"
|
||||||
},
|
},
|
||||||
"simkl": {
|
"simkl": {
|
||||||
|
|
@ -553,13 +554,13 @@
|
||||||
"disclaimer": "Nuvio non è affiliato con Simkl."
|
"disclaimer": "Nuvio non è affiliato con Simkl."
|
||||||
},
|
},
|
||||||
"tmdb_settings": {
|
"tmdb_settings": {
|
||||||
"title": "Impostazioni TMDb",
|
"title": "Impostazioni TMDB",
|
||||||
"metadata_enrichment": "Arricchimento metadati",
|
"metadata_enrichment": "Arricchimento metadati",
|
||||||
"metadata_enrichment_desc": "Migliora i metadati dei contenuti con i dati di TMDb per maggiori dettagli e informazioni.",
|
"metadata_enrichment_desc": "Migliora i metadati dei contenuti con i dati di TMDB per maggiori dettagli e informazioni.",
|
||||||
"enable_enrichment": "Abilita arricchimento",
|
"enable_enrichment": "Abilita arricchimento",
|
||||||
"enable_enrichment_desc": "Integra i metadati degli Addon con TMDb per cast, certificazioni, loghi/poster e info di produzione.",
|
"enable_enrichment_desc": "Integra i metadati degli Addon con TMDB per cast, certificazioni, loghi/poster e info di produzione.",
|
||||||
"localized_text": "Testo localizzato",
|
"localized_text": "Testo localizzato",
|
||||||
"localized_text_desc": "Recupera titoli e descrizioni nella tua lingua preferita da TMDb.",
|
"localized_text_desc": "Recupera titoli e descrizioni nella tua lingua preferita da TMDB.",
|
||||||
"language": "Lingua",
|
"language": "Lingua",
|
||||||
"change": "Cambia",
|
"change": "Cambia",
|
||||||
"logo_preview": "Anteprima Logo",
|
"logo_preview": "Anteprima Logo",
|
||||||
|
|
@ -567,11 +568,11 @@
|
||||||
"example": "Esempio:",
|
"example": "Esempio:",
|
||||||
"no_logo": "Nessun logo disponibile",
|
"no_logo": "Nessun logo disponibile",
|
||||||
"enrichment_options": "Opzioni di arricchimento",
|
"enrichment_options": "Opzioni di arricchimento",
|
||||||
"enrichment_options_desc": "Controlla quali dati recuperare da TMDb. Le opzioni disabilitate useranno i dati dell'Addon, se disponibili.",
|
"enrichment_options_desc": "Controlla quali dati recuperare da TMDB. Le opzioni disabilitate useranno i dati dell'Addon, se disponibili.",
|
||||||
"cast_crew": "Cast e Troupe",
|
"cast_crew": "Cast e Troupe",
|
||||||
"cast_crew_desc": "Attori, registi, sceneggiatori con foto profilo",
|
"cast_crew_desc": "Attori, registi, sceneggiatori con foto profilo",
|
||||||
"title_description": "Titolo e Descrizione",
|
"title_description": "Titolo e Descrizione",
|
||||||
"title_description_desc": "Usa titolo e panoramica localizzati di TMDb",
|
"title_description_desc": "Usa titolo e panoramica localizzati di TMDB",
|
||||||
"title_logos": "Loghi Titolo",
|
"title_logos": "Loghi Titolo",
|
||||||
"title_logos_desc": "Immagini di alta qualità per il titolo",
|
"title_logos_desc": "Immagini di alta qualità per il titolo",
|
||||||
"banners_backdrops": "Banner e Sfondi",
|
"banners_backdrops": "Banner e Sfondi",
|
||||||
|
|
@ -593,23 +594,25 @@
|
||||||
"movie_collections": "Collezioni Film",
|
"movie_collections": "Collezioni Film",
|
||||||
"movie_collections_desc": "Franchise cinematografici (Marvel, Star Wars, ecc.)",
|
"movie_collections_desc": "Franchise cinematografici (Marvel, Star Wars, ecc.)",
|
||||||
"api_configuration": "Configurazione API",
|
"api_configuration": "Configurazione API",
|
||||||
"api_configuration_desc": "Configura il tuo accesso alle API di TMDb per funzionalità avanzate.",
|
"api_configuration_desc": "Configura il tuo accesso alle API di TMDB per funzionalità avanzate.",
|
||||||
"custom_api_key": "Chiave API personalizzata",
|
"custom_api_key": "Chiave API personalizzata",
|
||||||
"custom_api_key_desc": "Usa la tua chiave API TMDb per prestazioni migliori e limiti di frequenza dedicati.",
|
"custom_api_key_desc": "Usa la tua chiave API TMDB per prestazioni migliori e limiti di frequenza dedicati.",
|
||||||
"custom_key_active": "Chiave API personalizzata attiva",
|
"custom_key_active": "Chiave API personalizzata attiva",
|
||||||
"api_key_required": "Chiave API richiesta",
|
"api_key_required": "Chiave API richiesta",
|
||||||
"api_key_placeholder": "Incolla la tua chiave API TMDb (v3)",
|
"api_key_placeholder": "Incolla la tua chiave API TMDB (v3)",
|
||||||
"how_to_get_key": "Come ottenere una chiave API TMDb?",
|
"how_to_get_key": "Come ottenere una chiave API TMDB?",
|
||||||
"built_in_key_msg": "Attualmente in uso la chiave API integrata. Considera l'uso di una chiave tua per prestazioni migliori.",
|
"built_in_key_msg": "La chiave API integrata è attualmente in uso. Considera l'uso di una chiave tua per prestazioni migliori.",
|
||||||
"cache_size": "Dimensione Cache",
|
"cache_size": "Dimensione Cache",
|
||||||
"clear_cache": "Cancella Cache",
|
"clear_cache": "Cancella Cache",
|
||||||
"cache_days": "Le risposte TMDB vengono memorizzate per 7 giorni per migliorare le prestazioni",
|
"cache_days": "Le risposte TMDB vengono memorizzate per 7 giorni per migliorare le prestazioni",
|
||||||
"choose_language": "Scegli Lingua",
|
"choose_language": "Scegli Lingua",
|
||||||
"choose_language_desc": "Seleziona la lingua preferita per i contenuti TMDb",
|
"choose_language_desc": "Seleziona la lingua preferita per i contenuti TMDB",
|
||||||
"popular": "Popolari",
|
"popular": "Popolari",
|
||||||
"all_languages": "Tutte le lingue",
|
"all_languages": "Lingue Disponibili",
|
||||||
"search_results": "Risultati di ricerca",
|
"search_results": "Risultati della ricerca",
|
||||||
"no_languages_found": "Nessuna lingua trovata per \"{{query}}\"",
|
"no_languages_found": "Nessuna lingua trovata per",
|
||||||
|
"search_languages_placeholder":"Ricerca Lingue...",
|
||||||
|
"fallback_to_available":"usa i dati disponibili come ripiego",
|
||||||
"clear_search": "Cancella ricerca",
|
"clear_search": "Cancella ricerca",
|
||||||
"clear_cache_title": "Cancella Cache TMDB",
|
"clear_cache_title": "Cancella Cache TMDB",
|
||||||
"clear_cache_msg": "Questo cancellerà tutti i dati TMDB memorizzati ({{size}}). Il caricamento potrebbe rallentare temporaneamente fino alla ricostruzione della cache.",
|
"clear_cache_msg": "Questo cancellerà tutti i dati TMDB memorizzati ({{size}}). Il caricamento potrebbe rallentare temporaneamente fino alla ricostruzione della cache.",
|
||||||
|
|
@ -622,10 +625,14 @@
|
||||||
"empty_api_key": "La chiave API non può essere vuota.",
|
"empty_api_key": "La chiave API non può essere vuota.",
|
||||||
"invalid_api_key": "Chiave API non valida. Controlla e riprova.",
|
"invalid_api_key": "Chiave API non valida. Controlla e riprova.",
|
||||||
"save_error": "Si è verificato un errore durante il salvataggio. Riprova.",
|
"save_error": "Si è verificato un errore durante il salvataggio. Riprova.",
|
||||||
"using_builtin_key": "Ora in uso la chiave API TMDb integrata.",
|
"using_builtin_key": "Ora in uso la chiave API TMDB integrata.",
|
||||||
"using_custom_key": "Ora in uso la tua chiave API TMDb personalizzata.",
|
"using_custom_key": "Ora in uso la tua chiave API TMDB personalizzata.",
|
||||||
"enter_custom_key": "Inserisci e salva la tua chiave API TMDb personalizzata.",
|
"enter_custom_key": "Inserisci e salva la tua chiave API TMDB personalizzata.",
|
||||||
"key_verified": "Chiave API verificata e salvata con successo."
|
"key_verified": "Chiave API verificata e salvata con successo.",
|
||||||
|
"current":"Attuale",
|
||||||
|
"disclaimer_part_1":"Questo prodotto usa l'API di TMDB ma non è nè approvato",
|
||||||
|
"disclaimer_part_2":"né certificato da TMDB.",
|
||||||
|
"done":"Fatto"
|
||||||
},
|
},
|
||||||
"settings": {
|
"settings": {
|
||||||
"language": "Lingua",
|
"language": "Lingua",
|
||||||
|
|
|
||||||
|
|
@ -591,7 +591,7 @@ const TMDBSettingsScreen = () => {
|
||||||
<View style={styles.settingTextContainer}>
|
<View style={styles.settingTextContainer}>
|
||||||
<Text style={[styles.settingTitle, { color: currentTheme.colors.text }]}>{t('tmdb_settings.language')}</Text>
|
<Text style={[styles.settingTitle, { color: currentTheme.colors.text }]}>{t('tmdb_settings.language')}</Text>
|
||||||
<Text style={[styles.settingDescription, { color: currentTheme.colors.mediumEmphasis }]}>
|
<Text style={[styles.settingDescription, { color: currentTheme.colors.mediumEmphasis }]}>
|
||||||
Current: {(settings.tmdbLanguagePreference || 'en').toUpperCase()}
|
{t('tmdb_settings.current')}: {(settings.tmdbLanguagePreference || 'en').toUpperCase()}
|
||||||
</Text>
|
</Text>
|
||||||
</View>
|
</View>
|
||||||
<TouchableOpacity
|
<TouchableOpacity
|
||||||
|
|
@ -647,7 +647,7 @@ const TMDBSettingsScreen = () => {
|
||||||
{renderLogoExample(tmdbLogo, tmdbBanner, loadingLogos)}
|
{renderLogoExample(tmdbLogo, tmdbBanner, loadingLogos)}
|
||||||
{tmdbLogo && (
|
{tmdbLogo && (
|
||||||
<Text style={[styles.logoSourceLabel, { color: currentTheme.colors.mediumEmphasis }]}>
|
<Text style={[styles.logoSourceLabel, { color: currentTheme.colors.mediumEmphasis }]}>
|
||||||
{`Language: ${(previewLanguage || '').toUpperCase() || 'N/A'}${isPreviewFallback ? ' (fallback to available)' : ''}`}
|
{`${t('tmdb_settings.language')}: ${(previewLanguage || '').toUpperCase() || 'N/A'}${isPreviewFallback ? ` (${t('tmdb_settings.fallback_to_available')})` : ''}`}
|
||||||
</Text>
|
</Text>
|
||||||
)}
|
)}
|
||||||
</View>
|
</View>
|
||||||
|
|
@ -801,9 +801,9 @@ const TMDBSettingsScreen = () => {
|
||||||
{/* Production Info */}
|
{/* Production Info */}
|
||||||
<View style={styles.settingRow}>
|
<View style={styles.settingRow}>
|
||||||
<View style={styles.settingTextContainer}>
|
<View style={styles.settingTextContainer}>
|
||||||
<Text style={[styles.settingTitle, { color: currentTheme.colors.text }]}>Production Info</Text>
|
<Text style={[styles.settingTitle, { color: currentTheme.colors.text }]}>{t('tmdb_settings.production_info')}</Text>
|
||||||
<Text style={[styles.settingDescription, { color: currentTheme.colors.mediumEmphasis }]}>
|
<Text style={[styles.settingDescription, { color: currentTheme.colors.mediumEmphasis }]}>
|
||||||
Networks & production companies with logos
|
{t('tmdb_settings.production_info_desc')}
|
||||||
</Text>
|
</Text>
|
||||||
</View>
|
</View>
|
||||||
<Switch
|
<Switch
|
||||||
|
|
@ -818,9 +818,9 @@ const TMDBSettingsScreen = () => {
|
||||||
{/* Movie Details */}
|
{/* Movie Details */}
|
||||||
<View style={styles.settingRow}>
|
<View style={styles.settingRow}>
|
||||||
<View style={styles.settingTextContainer}>
|
<View style={styles.settingTextContainer}>
|
||||||
<Text style={[styles.settingTitle, { color: currentTheme.colors.text }]}>Movie Details</Text>
|
<Text style={[styles.settingTitle, { color: currentTheme.colors.text }]}>{t('tmdb_settings.movie_details')}</Text>
|
||||||
<Text style={[styles.settingDescription, { color: currentTheme.colors.mediumEmphasis }]}>
|
<Text style={[styles.settingDescription, { color: currentTheme.colors.mediumEmphasis }]}>
|
||||||
Budget, revenue, runtime, tagline
|
{t('tmdb_settings.movie_details_desc')}
|
||||||
</Text>
|
</Text>
|
||||||
</View>
|
</View>
|
||||||
<Switch
|
<Switch
|
||||||
|
|
@ -835,9 +835,9 @@ const TMDBSettingsScreen = () => {
|
||||||
{/* TV Details */}
|
{/* TV Details */}
|
||||||
<View style={styles.settingRow}>
|
<View style={styles.settingRow}>
|
||||||
<View style={styles.settingTextContainer}>
|
<View style={styles.settingTextContainer}>
|
||||||
<Text style={[styles.settingTitle, { color: currentTheme.colors.text }]}>TV Show Details</Text>
|
<Text style={[styles.settingTitle, { color: currentTheme.colors.text }]}>{t('tmdb_settings.tv_details')}</Text>
|
||||||
<Text style={[styles.settingDescription, { color: currentTheme.colors.mediumEmphasis }]}>
|
<Text style={[styles.settingDescription, { color: currentTheme.colors.mediumEmphasis }]}>
|
||||||
Status, seasons count, networks, creators
|
{t('tmdb_settings.tv_details_desc')}
|
||||||
</Text>
|
</Text>
|
||||||
</View>
|
</View>
|
||||||
<Switch
|
<Switch
|
||||||
|
|
@ -852,9 +852,9 @@ const TMDBSettingsScreen = () => {
|
||||||
{/* Collections */}
|
{/* Collections */}
|
||||||
<View style={[styles.settingRow, { marginBottom: 0 }]}>
|
<View style={[styles.settingRow, { marginBottom: 0 }]}>
|
||||||
<View style={styles.settingTextContainer}>
|
<View style={styles.settingTextContainer}>
|
||||||
<Text style={[styles.settingTitle, { color: currentTheme.colors.text }]}>Movie Collections</Text>
|
<Text style={[styles.settingTitle, { color: currentTheme.colors.text }]}>{t('tmdb_settings.movie_collections')}</Text>
|
||||||
<Text style={[styles.settingDescription, { color: currentTheme.colors.mediumEmphasis }]}>
|
<Text style={[styles.settingDescription, { color: currentTheme.colors.mediumEmphasis }]}>
|
||||||
Franchise movies (Marvel, Star Wars, etc.)
|
{t('tmdb_settings.movie_collections_desc')}
|
||||||
</Text>
|
</Text>
|
||||||
</View>
|
</View>
|
||||||
<Switch
|
<Switch
|
||||||
|
|
@ -873,17 +873,17 @@ const TMDBSettingsScreen = () => {
|
||||||
<View style={[styles.sectionCard, { backgroundColor: currentTheme.colors.elevation2 }]}>
|
<View style={[styles.sectionCard, { backgroundColor: currentTheme.colors.elevation2 }]}>
|
||||||
<View style={styles.sectionHeader}>
|
<View style={styles.sectionHeader}>
|
||||||
<MaterialIcons name="api" size={20} color={currentTheme.colors.primary} />
|
<MaterialIcons name="api" size={20} color={currentTheme.colors.primary} />
|
||||||
<Text style={[styles.sectionTitle, { color: currentTheme.colors.text }]}>API Configuration</Text>
|
<Text style={[styles.sectionTitle, { color: currentTheme.colors.text }]}>{t('tmdb_settings.api_configuration')}</Text>
|
||||||
</View>
|
</View>
|
||||||
<Text style={[styles.sectionDescription, { color: currentTheme.colors.mediumEmphasis }]}>
|
<Text style={[styles.sectionDescription, { color: currentTheme.colors.mediumEmphasis }]}>
|
||||||
Configure your TMDb API access for enhanced functionality.
|
{t('tmdb_settings.api_configuration_desc')}
|
||||||
</Text>
|
</Text>
|
||||||
|
|
||||||
<View style={styles.settingRow}>
|
<View style={styles.settingRow}>
|
||||||
<View style={styles.settingTextContainer}>
|
<View style={styles.settingTextContainer}>
|
||||||
<Text style={[styles.settingTitle, { color: currentTheme.colors.text }]}>Custom API Key</Text>
|
<Text style={[styles.settingTitle, { color: currentTheme.colors.text }]}>{t('tmdb_settings.custom_api_key')}</Text>
|
||||||
<Text style={[styles.settingDescription, { color: currentTheme.colors.mediumEmphasis }]}>
|
<Text style={[styles.settingDescription, { color: currentTheme.colors.mediumEmphasis }]}>
|
||||||
Use your own TMDb API key for better performance and dedicated rate limits.
|
{t('tmdb_settings.custom_api_key_desc')}
|
||||||
</Text>
|
</Text>
|
||||||
</View>
|
</View>
|
||||||
<Switch
|
<Switch
|
||||||
|
|
@ -909,7 +909,7 @@ const TMDBSettingsScreen = () => {
|
||||||
<Text style={[styles.statusText, {
|
<Text style={[styles.statusText, {
|
||||||
color: isKeySet ? currentTheme.colors.success : currentTheme.colors.warning
|
color: isKeySet ? currentTheme.colors.success : currentTheme.colors.warning
|
||||||
}]}>
|
}]}>
|
||||||
{isKeySet ? "Custom API key active" : "API key required"}
|
{isKeySet ? t('tmdb_settings.custom_key_active') : t('tmdb_settings.api_key_required')}
|
||||||
</Text>
|
</Text>
|
||||||
</View>
|
</View>
|
||||||
|
|
||||||
|
|
@ -931,7 +931,7 @@ const TMDBSettingsScreen = () => {
|
||||||
setApiKey(text);
|
setApiKey(text);
|
||||||
if (testResult) setTestResult(null);
|
if (testResult) setTestResult(null);
|
||||||
}}
|
}}
|
||||||
placeholder="Paste your TMDb API key (v3)"
|
placeholder={t('tmdb_settings.api_key_placeholder')}
|
||||||
placeholderTextColor={currentTheme.colors.mediumEmphasis}
|
placeholderTextColor={currentTheme.colors.mediumEmphasis}
|
||||||
autoCapitalize="none"
|
autoCapitalize="none"
|
||||||
autoCorrect={false}
|
autoCorrect={false}
|
||||||
|
|
@ -952,7 +952,7 @@ const TMDBSettingsScreen = () => {
|
||||||
style={[styles.button, { backgroundColor: currentTheme.colors.primary }]}
|
style={[styles.button, { backgroundColor: currentTheme.colors.primary }]}
|
||||||
onPress={saveApiKey}
|
onPress={saveApiKey}
|
||||||
>
|
>
|
||||||
<Text style={[styles.buttonText, { color: currentTheme.colors.white }]}>Save</Text>
|
<Text style={[styles.buttonText, { color: currentTheme.colors.white }]}>{t('common.save')}</Text>
|
||||||
</TouchableOpacity>
|
</TouchableOpacity>
|
||||||
|
|
||||||
{isKeySet && (
|
{isKeySet && (
|
||||||
|
|
@ -960,7 +960,7 @@ const TMDBSettingsScreen = () => {
|
||||||
style={[styles.button, styles.clearButton, { borderColor: currentTheme.colors.error }]}
|
style={[styles.button, styles.clearButton, { borderColor: currentTheme.colors.error }]}
|
||||||
onPress={clearApiKey}
|
onPress={clearApiKey}
|
||||||
>
|
>
|
||||||
<Text style={[styles.buttonText, { color: currentTheme.colors.error }]}>Clear</Text>
|
<Text style={[styles.buttonText, { color: currentTheme.colors.error }]}>{t('common.clear')}</Text>
|
||||||
</TouchableOpacity>
|
</TouchableOpacity>
|
||||||
)}
|
)}
|
||||||
</View>
|
</View>
|
||||||
|
|
@ -991,7 +991,7 @@ const TMDBSettingsScreen = () => {
|
||||||
>
|
>
|
||||||
<MaterialIcons name="help" size={16} color={currentTheme.colors.primary} style={styles.helpIcon} />
|
<MaterialIcons name="help" size={16} color={currentTheme.colors.primary} style={styles.helpIcon} />
|
||||||
<Text style={[styles.helpText, { color: currentTheme.colors.primary }]}>
|
<Text style={[styles.helpText, { color: currentTheme.colors.primary }]}>
|
||||||
How to get a TMDb API key?
|
{t('tmdb_settings.how_to_get_key')}
|
||||||
</Text>
|
</Text>
|
||||||
</TouchableOpacity>
|
</TouchableOpacity>
|
||||||
</View>
|
</View>
|
||||||
|
|
@ -1002,7 +1002,7 @@ const TMDBSettingsScreen = () => {
|
||||||
<View style={styles.infoContainer}>
|
<View style={styles.infoContainer}>
|
||||||
<MaterialIcons name="info-outline" size={18} color={currentTheme.colors.primary} />
|
<MaterialIcons name="info-outline" size={18} color={currentTheme.colors.primary} />
|
||||||
<Text style={[styles.infoText, { color: currentTheme.colors.mediumEmphasis }]}>
|
<Text style={[styles.infoText, { color: currentTheme.colors.mediumEmphasis }]}>
|
||||||
Currently using built-in API key. Consider using your own key for better performance.
|
{t('tmdb_settings.built_in_key_msg')}
|
||||||
</Text>
|
</Text>
|
||||||
</View>
|
</View>
|
||||||
)}
|
)}
|
||||||
|
|
@ -1012,7 +1012,7 @@ const TMDBSettingsScreen = () => {
|
||||||
|
|
||||||
<View style={styles.settingRow}>
|
<View style={styles.settingRow}>
|
||||||
<View style={styles.settingTextContainer}>
|
<View style={styles.settingTextContainer}>
|
||||||
<Text style={[styles.settingTitle, { color: currentTheme.colors.text }]}>Cache Size</Text>
|
<Text style={[styles.settingTitle, { color: currentTheme.colors.text }]}>{t('tmdb_settings.cache_size')}</Text>
|
||||||
<Text style={[styles.settingDescription, { color: currentTheme.colors.mediumEmphasis }]}>
|
<Text style={[styles.settingDescription, { color: currentTheme.colors.mediumEmphasis }]}>
|
||||||
{cacheSize}
|
{cacheSize}
|
||||||
</Text>
|
</Text>
|
||||||
|
|
@ -1025,14 +1025,14 @@ const TMDBSettingsScreen = () => {
|
||||||
>
|
>
|
||||||
<View style={{ flexDirection: 'row', alignItems: 'center' }}>
|
<View style={{ flexDirection: 'row', alignItems: 'center' }}>
|
||||||
<MaterialIcons name="delete-outline" size={18} color={currentTheme.colors.white} />
|
<MaterialIcons name="delete-outline" size={18} color={currentTheme.colors.white} />
|
||||||
<Text style={[styles.buttonText, { color: currentTheme.colors.white, marginLeft: 8 }]}>Clear Cache</Text>
|
<Text style={[styles.buttonText, { color: currentTheme.colors.white, marginLeft: 8 }]}>{t('tmdb_settings.clear_cache')}</Text>
|
||||||
</View>
|
</View>
|
||||||
</TouchableOpacity>
|
</TouchableOpacity>
|
||||||
|
|
||||||
<View style={[styles.infoContainer, { marginTop: 12 }]}>
|
<View style={[styles.infoContainer, { marginTop: 12 }]}>
|
||||||
<MaterialIcons name="info-outline" size={18} color={currentTheme.colors.primary} />
|
<MaterialIcons name="info-outline" size={18} color={currentTheme.colors.primary} />
|
||||||
<Text style={[styles.infoText, { color: currentTheme.colors.mediumEmphasis }]}>
|
<Text style={[styles.infoText, { color: currentTheme.colors.mediumEmphasis }]}>
|
||||||
TMDB responses are cached for 7 days to improve performance
|
{t('tmdb_settings.cache_days')}
|
||||||
</Text>
|
</Text>
|
||||||
</View>
|
</View>
|
||||||
</View>
|
</View>
|
||||||
|
|
@ -1046,10 +1046,10 @@ const TMDBSettingsScreen = () => {
|
||||||
/>
|
/>
|
||||||
<View style={{ width: '90%' }}>
|
<View style={{ width: '90%' }}>
|
||||||
<Text style={[styles.attributionText, { color: currentTheme.colors.mediumEmphasis }]}>
|
<Text style={[styles.attributionText, { color: currentTheme.colors.mediumEmphasis }]}>
|
||||||
This product uses the TMDB API but is not
|
{t('tmdb_settings.disclaimer_part_1')}
|
||||||
</Text>
|
</Text>
|
||||||
<Text style={[styles.attributionText, { color: currentTheme.colors.mediumEmphasis }]}>
|
<Text style={[styles.attributionText, { color: currentTheme.colors.mediumEmphasis }]}>
|
||||||
endorsed or certified by TMDB.
|
{t('tmdb_settings.disclaimer_part_2')}
|
||||||
</Text>
|
</Text>
|
||||||
</View>
|
</View>
|
||||||
</View>
|
</View>
|
||||||
|
|
@ -1069,8 +1069,8 @@ const TMDBSettingsScreen = () => {
|
||||||
{/* Header */}
|
{/* Header */}
|
||||||
<View style={styles.modalHeader}>
|
<View style={styles.modalHeader}>
|
||||||
<View style={[styles.dragHandle, { backgroundColor: currentTheme.colors.elevation3 }]} />
|
<View style={[styles.dragHandle, { backgroundColor: currentTheme.colors.elevation3 }]} />
|
||||||
<Text style={[styles.modalTitle, { color: currentTheme.colors.text }]}>Choose Language</Text>
|
<Text style={[styles.modalTitle, { color: currentTheme.colors.text }]}>{t('tmdb_settings.choose_language')}</Text>
|
||||||
<Text style={[styles.modalSubtitle, { color: currentTheme.colors.mediumEmphasis }]}>Select your preferred language for TMDb content</Text>
|
<Text style={[styles.modalSubtitle, { color: currentTheme.colors.mediumEmphasis }]}>{t('tmdb_settings.choose_language_desc')}</Text>
|
||||||
</View>
|
</View>
|
||||||
|
|
||||||
{/* Search Section */}
|
{/* Search Section */}
|
||||||
|
|
@ -1078,7 +1078,7 @@ const TMDBSettingsScreen = () => {
|
||||||
<View style={[styles.searchContainer, { backgroundColor: currentTheme.colors.elevation1 }]}>
|
<View style={[styles.searchContainer, { backgroundColor: currentTheme.colors.elevation1 }]}>
|
||||||
<MaterialIcons name="search" size={20} color={currentTheme.colors.mediumEmphasis} style={styles.searchIcon} />
|
<MaterialIcons name="search" size={20} color={currentTheme.colors.mediumEmphasis} style={styles.searchIcon} />
|
||||||
<TextInput
|
<TextInput
|
||||||
placeholder="Search languages..."
|
placeholder={t('tmdb_settings.search_languages_placeholder')}
|
||||||
placeholderTextColor={currentTheme.colors.mediumEmphasis}
|
placeholderTextColor={currentTheme.colors.mediumEmphasis}
|
||||||
style={[styles.searchInput, { color: currentTheme.colors.text }]}
|
style={[styles.searchInput, { color: currentTheme.colors.text }]}
|
||||||
value={languageSearch}
|
value={languageSearch}
|
||||||
|
|
@ -1097,7 +1097,7 @@ const TMDBSettingsScreen = () => {
|
||||||
{/* Popular Languages */}
|
{/* Popular Languages */}
|
||||||
{languageSearch.length === 0 && (
|
{languageSearch.length === 0 && (
|
||||||
<View style={styles.popularSection}>
|
<View style={styles.popularSection}>
|
||||||
<Text style={[styles.sectionTitle, { color: currentTheme.colors.mediumEmphasis }]}>Popular</Text>
|
<Text style={[styles.sectionTitle, { color: currentTheme.colors.mediumEmphasis }]}>{t('tmdb_settings.popular')}</Text>
|
||||||
<ScrollView
|
<ScrollView
|
||||||
horizontal
|
horizontal
|
||||||
showsHorizontalScrollIndicator={false}
|
showsHorizontalScrollIndicator={false}
|
||||||
|
|
@ -1105,6 +1105,7 @@ const TMDBSettingsScreen = () => {
|
||||||
>
|
>
|
||||||
{[
|
{[
|
||||||
{ code: 'en', label: 'EN' },
|
{ code: 'en', label: 'EN' },
|
||||||
|
{ code: 'it', label: 'IT' },
|
||||||
{ code: 'ar', label: 'AR' },
|
{ code: 'ar', label: 'AR' },
|
||||||
{ code: 'es', label: 'ES' },
|
{ code: 'es', label: 'ES' },
|
||||||
{ code: 'fr', label: 'FR' },
|
{ code: 'fr', label: 'FR' },
|
||||||
|
|
@ -1143,7 +1144,7 @@ const TMDBSettingsScreen = () => {
|
||||||
languageSearch.length > 0 && styles.searchResultsTitle,
|
languageSearch.length > 0 && styles.searchResultsTitle,
|
||||||
{ color: languageSearch.length > 0 ? currentTheme.colors.text : currentTheme.colors.mediumEmphasis }
|
{ color: languageSearch.length > 0 ? currentTheme.colors.text : currentTheme.colors.mediumEmphasis }
|
||||||
]}>
|
]}>
|
||||||
{languageSearch.length > 0 ? 'Search Results' : 'All Languages'}
|
{languageSearch.length > 0 ? t('tmdb_settings.search_results') : t('tmdb_settings.all_languages')}
|
||||||
</Text>
|
</Text>
|
||||||
|
|
||||||
<ScrollView style={styles.languageList} showsVerticalScrollIndicator={false}>
|
<ScrollView style={styles.languageList} showsVerticalScrollIndicator={false}>
|
||||||
|
|
@ -1238,13 +1239,13 @@ const TMDBSettingsScreen = () => {
|
||||||
<View style={styles.noResultsContainer}>
|
<View style={styles.noResultsContainer}>
|
||||||
<MaterialIcons name="search-off" size={48} color={currentTheme.colors.mediumEmphasis} />
|
<MaterialIcons name="search-off" size={48} color={currentTheme.colors.mediumEmphasis} />
|
||||||
<Text style={[styles.noResultsText, { color: currentTheme.colors.mediumEmphasis }]}>
|
<Text style={[styles.noResultsText, { color: currentTheme.colors.mediumEmphasis }]}>
|
||||||
No languages found for "{languageSearch}"
|
{t('tmdb_settings.no_languages_found')} "{languageSearch}"
|
||||||
</Text>
|
</Text>
|
||||||
<TouchableOpacity
|
<TouchableOpacity
|
||||||
onPress={() => setLanguageSearch('')}
|
onPress={() => setLanguageSearch('')}
|
||||||
style={[styles.clearSearchButton, { backgroundColor: currentTheme.colors.elevation1 }]}
|
style={[styles.clearSearchButton, { backgroundColor: currentTheme.colors.elevation1 }]}
|
||||||
>
|
>
|
||||||
<Text style={[styles.clearSearchButtonText, { color: currentTheme.colors.primary }]}>Clear search</Text>
|
<Text style={[styles.clearSearchButtonText, { color: currentTheme.colors.primary }]}>{t('tmdb_settings.clear_search')}</Text>
|
||||||
</TouchableOpacity>
|
</TouchableOpacity>
|
||||||
</View>
|
</View>
|
||||||
)}
|
)}
|
||||||
|
|
@ -1260,13 +1261,13 @@ const TMDBSettingsScreen = () => {
|
||||||
onPress={() => setLanguagePickerVisible(false)}
|
onPress={() => setLanguagePickerVisible(false)}
|
||||||
style={styles.cancelButton}
|
style={styles.cancelButton}
|
||||||
>
|
>
|
||||||
<Text style={[styles.cancelButtonText, { color: currentTheme.colors.text }]}>Cancel</Text>
|
<Text style={[styles.cancelButtonText, { color: currentTheme.colors.text }]}>{t('common.cancel')}</Text>
|
||||||
</TouchableOpacity>
|
</TouchableOpacity>
|
||||||
<TouchableOpacity
|
<TouchableOpacity
|
||||||
onPress={() => setLanguagePickerVisible(false)}
|
onPress={() => setLanguagePickerVisible(false)}
|
||||||
style={[styles.doneButton, { backgroundColor: currentTheme.colors.primary }]}
|
style={[styles.doneButton, { backgroundColor: currentTheme.colors.primary }]}
|
||||||
>
|
>
|
||||||
<Text style={[styles.doneButtonText, { color: currentTheme.colors.white }]}>Done</Text>
|
<Text style={[styles.doneButtonText, { color: currentTheme.colors.white }]}>{t('tmdb_settings.done')}</Text>
|
||||||
</TouchableOpacity>
|
</TouchableOpacity>
|
||||||
</View>
|
</View>
|
||||||
</View>
|
</View>
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue