C'è un secondo argomento nella __()
funzione. Dovrebbe essere impostato sul dominio che stai utilizzando per il tuo plugin o tema. Negli esempi seguenti uso 'text_domain'
. La tua stringa di dominio dovrebbe essere unica. Non deve corrispondere a nessuna altra stringa di dominio. Non utilizzare un argomento del dominio di testo per impostazione predefinita è 'default'
il nome di dominio di WordPress. Vedi il link per ulteriori dettagli.
Usa sempre la stringa ( 'text_domain'
). Non usare mai una variabile, una funzione o una costante con la stringa al suo interno. La maggior parte (tutti?) I programmi di traduzione non lo vedranno senza la stringa lì.
Il tuo codice:
echo __( 'Hello ' . $first . ' you own me money.' );
Non includere variabili nella stringa.
Un modo migliore:
echo sprintf( __( 'Hello %s you own me money.', 'text_domain' ), $first );
O semplicemente:
printf( __( 'Hello %s you own me money.', 'text_domain' ), $first );
Il %s
segnaposto dice al traduttore umano che sta entrando una stringa. Utilizzare %d
per i numeri. Ci sono anche altri segnaposto .
(Questa frase è un inglese grammaticalmente errato. Usa uno 'Hello %s, you owe me money.'
o 'Hello %s, you own my money.'
secondo il significato che stavi cercando.)
Il tuo codice:
$html = '<div><p>Top: ' . $t_margin . '</p>' . <p>Bottom: ' . $b_margin . '</p></div>';
Non tradurre HTML. È lo stesso in qualsiasi lingua.
Un modo migliore:
$html = sprintf( '<div><p>%s</p><p>%s</p></div>', __( 'Top: ', 'text_domain' ) . $t_margin, __( 'Bottom: ', 'text_domain' ) . $b_margin );
O suddividilo in più righe:
$html = sprintf(
'<div><p>%s</p><p>%s</p></div>',
__( 'Top: ', 'text_domain' ) . $t_margin,
__( 'Bottom: ', 'text_domain' ) . $b_margin
);
Se non è chiaro quale sia la parte superiore e inferiore, è possibile utilizzare il _x()
per spiegare il contesto di questi termini.
Puoi trovare altri casi di traduzione qui: Internazionalizzazione: probabilmente stai sbagliando