<?php
/**
 * Internationalization.
 *
 * @package MicropediaAISearchOptimizer
 */

if ( ! defined( 'ABSPATH' ) ) {
	exit;
}

/** I18n handler. */
class Micropedia_AI_I18n {
	/** Init i18n. */
	public static function init() {
		add_action( 'init', array( __CLASS__, 'load_textdomain' ) );
		add_filter( 'gettext', array( __CLASS__, 'runtime_translate' ), 20, 3 );
	}

	/** Load text domain, with optional language override. */
	public static function load_textdomain() {
		$override = micropedia_ai_get_option( 'plugin_language', '' );
		if ( ! empty( $override ) ) {
			$override = sanitize_text_field( $override );
			$mo_file  = MICROPEDIA_AI_SEARCH_OPTIMIZER_PATH . 'languages/micropedia-ai-search-optimizer-' . $override . '.mo';
			if ( file_exists( $mo_file ) ) {
				load_textdomain( 'micropedia-ai-search-optimizer', $mo_file );
				return;
			}
		}

		load_plugin_textdomain( 'micropedia-ai-search-optimizer', false, dirname( plugin_basename( MICROPEDIA_AI_SEARCH_OPTIMIZER_FILE ) ) . '/languages' );
	}

	/** Runtime translations for strings added after the original language files. */
	public static function runtime_translate( $translation, $text, $domain ) {
		if ( 'micropedia-ai-search-optimizer' !== $domain ) {
			return $translation;
		}

		$locale = micropedia_ai_get_option( 'plugin_language', '' );
		if ( empty( $locale ) ) {
			$locale = determine_locale();
		}

		$strings = self::strings();
		if ( isset( $strings[ $locale ][ $text ] ) ) {
			return $strings[ $locale ][ $text ];
		}

		return $translation;
	}

	/** Translation map for critical admin copy. */
	private static function strings() {
		return array(
			'it_IT' => array(
				'This plugin improves AI-readable structure and accessibility. It does not guarantee inclusion, ranking, indexing, visibility, traffic, or citation by AI systems.' => 'Questo plugin migliora la struttura leggibile dalle AI e l\'accessibilità dei contenuti. Non garantisce inclusione, ranking, indicizzazione, visibilità, traffico o citazioni da parte dei sistemi AI.',
				'Dashboard' => 'Dashboard',
				'Settings' => 'Impostazioni',
				'AI Files' => 'File AI',
				'Crawler Control' => 'Controllo crawler',
				'Schema' => 'Schema',
				'AI Score' => 'Punteggio AI',
				'Active' => 'Attivo',
				'Disabled' => 'Disattivato',
				'View' => 'Visualizza',
				'Manage' => 'Gestisci',
				'Upgrade to PRO' => 'Passa a PRO',
				'Unlock PRO features like llms-full.txt, Markdown export and AI Score.' => 'Sblocca funzioni PRO come llms-full.txt, export Markdown e AI Score.',
				'General settings' => 'Impostazioni generali',
				'Plugin language' => 'Lingua plugin',
				'Save changes' => 'Salva modifiche',
				'Enable llms.txt' => 'Abilita llms.txt',
				'Enable llms-full.txt' => 'Abilita llms-full.txt',
				'Enable Markdown exports' => 'Abilita esportazioni Markdown',
				'Enable JSON-LD when no SEO schema provider is detected' => 'Abilita JSON-LD quando non viene rilevato un provider schema SEO',
				'Enable AI crawler preferences in robots.txt' => 'Abilita preferenze crawler AI in robots.txt',
				'Enable AI readiness score column' => 'Abilita colonna punteggio AI',
				'Posts limit' => 'Limite articoli',
				'Neutral' => 'Neutrale',
				'Allow' => 'Consenti',
				'Disallow' => 'Blocca',
				'PRO only' => 'Solo PRO',
				'Optimization for AI Search & LLM' => 'Ottimizzazione per Ricerca AI & LLM',
				'Developed by' => 'Sviluppato da',
				'An AI SEO / GEO layer for WordPress content readability and LLM accessibility.' => 'Un layer AI SEO / GEO per la leggibilità dei contenuti WordPress e l\'accessibilità LLM.',
				'Markdown Export' => 'Export Markdown',
				'JSON-LD Schema' => 'Schema JSON-LD',
				'Overview' => 'Panoramica',
				'Indexed posts' => 'Articoli indicizzati',
				'Indexed pages' => 'Pagine indicizzate',
				'Last update' => 'Ultimo aggiornamento',
				'Cache status' => 'Stato cache',
				'AI-readable endpoints' => 'Endpoint leggibili dalle AI',
				'Markdown and full-content endpoints are available in PRO.' => 'Gli endpoint Markdown e contenuto completo sono disponibili nella versione PRO.',
				'Manage AI crawler preferences through robots.txt' => 'Gestisci le preferenze dei crawler AI tramite robots.txt',
				'AI crawler' => 'Crawler AI',
				'Status' => 'Stato',
				'Action' => 'Azione',
				'A SEO schema provider has been detected. Micropedia will not duplicate schema markup.' => 'È stato rilevato un provider schema SEO. Micropedia non duplicherà il markup schema.',
				'Micropedia can generate basic Article, Organization and Person JSON-LD only when Yoast SEO, Rank Math or SEOPress schema output is not detected.' => 'Micropedia può generare JSON-LD base per Article, Organization e Person solo quando non viene rilevato output schema di Yoast SEO, Rank Math o SEOPress.',
				'Your AI Readiness Score' => 'Il tuo punteggio AI Readiness',
				'Good' => 'Buono',
				'Your content is well-optimized for AI systems.' => 'Il tuo contenuto è ben ottimizzato per i sistemi AI.',
				'Checks' => 'Controlli',
				'H1 Tag' => 'Tag H1',
				'H2 Structure' => 'Struttura H2',
				'Content Length' => 'Lunghezza contenuto',
				'Author Information' => 'Informazioni autore',
				'Last Updated' => 'Ultimo aggiornamento',
				'Schema Markup' => 'Markup schema',
				'Internal Links' => 'Link interni',
				'Found' => 'Trovato',
				'Recent' => 'Recente',
				'Missing' => 'Mancante',
				'PRO analysis' => 'Analisi PRO',
				'Upgrade to unlock per-post issue analysis, advanced AI score checks, content recommendations and Markdown/full endpoint generation.' => 'Passa a PRO per sbloccare analisi problemi per singolo articolo, controlli AI Score avanzati, suggerimenti sui contenuti e generazione degli endpoint Markdown/full.',
				'Use WordPress language' => 'Usa lingua WordPress',

				'Do you like Micropedia AI Search Optimizer?' => 'Ti piace Micropedia AI Search Optimizer?',
				'A short review on WordPress.org helps the project grow and keeps the free version useful.' => 'Una breve recensione su WordPress.org aiuta il progetto a crescere e mantiene utile la versione gratuita.',
				'Leave a review' => 'Lascia una recensione',
				'Maybe later' => 'Più tardi',
				'AI Readiness Score' => 'Punteggio AI Readiness',
			),
			'fr_FR' => array(

				'Do you like Micropedia AI Search Optimizer?' => 'Vous aimez Micropedia AI Search Optimizer ?',
				'A short review on WordPress.org helps the project grow and keeps the free version useful.' => 'Un court avis sur WordPress.org aide le projet à grandir et à garder la version gratuite utile.',
				'Leave a review' => 'Laisser un avis',
				'Maybe later' => 'Plus tard',
				'This plugin improves AI-readable structure and accessibility. It does not guarantee inclusion, ranking, indexing, visibility, traffic, or citation by AI systems.' => 'Ce plugin améliore la structure lisible par l\'IA et l\'accessibilité des contenus. Il ne garantit pas l\'inclusion, le classement, l\'indexation, la visibilité, le trafic ou les citations par les systèmes d\'IA.',
			),
			'es_ES' => array(

				'Do you like Micropedia AI Search Optimizer?' => '¿Te gusta Micropedia AI Search Optimizer?',
				'A short review on WordPress.org helps the project grow and keeps the free version useful.' => 'Una breve reseña en WordPress.org ayuda a que el proyecto crezca y mantiene útil la versión gratuita.',
				'Leave a review' => 'Dejar una reseña',
				'Maybe later' => 'Más tarde',
				'This plugin improves AI-readable structure and accessibility. It does not guarantee inclusion, ranking, indexing, visibility, traffic, or citation by AI systems.' => 'Este plugin mejora la estructura legible por IA y la accesibilidad del contenido. No garantiza inclusión, ranking, indexación, visibilidad, tráfico ni citas por parte de sistemas de IA.',
			),
		);
	}
}
