W funkcji jest drugi argument __()
. Powinien być ustawiony na domenę, której używasz dla wtyczki lub motywu. W poniższych przykładach używam 'text_domain'
. Ciąg domeny powinien być unikalny. Nie powinien pasować do żadnego innego ciągu domeny. Nieużywanie argumentu domeny tekstowej domyślnie 'default'
oznacza nazwę domeny WordPress. Zobacz link po więcej szczegółów.
Zawsze używaj string ( 'text_domain'
). Nigdy nie używaj zmiennej, funkcji lub stałej z zawartym w niej łańcuchem. Większość (wszystkich?) Programów tłumaczących nie zobaczy go bez napisu.
Twój kod:
echo __( 'Hello ' . $first . ' you own me money.' );
Nie dołączaj zmiennych do łańcucha.
Lepszy sposób:
echo sprintf( __( 'Hello %s you own me money.', 'text_domain' ), $first );
Lub tylko:
printf( __( 'Hello %s you own me money.', 'text_domain' ), $first );
Symbol %s
zastępczy mówi ludzkiemu tłumaczowi, że tam jest łańcuch. Użyj %d
dla liczb. Istnieją również inne symbole zastępcze .
(To zdanie jest gramatycznie niepoprawne w języku angielskim. Użyj jednego 'Hello %s, you owe me money.'
lub w 'Hello %s, you own my money.'
zależności od zamierzonego znaczenia).
Twój kod:
$html = '<div><p>Top: ' . $t_margin . '</p>' . <p>Bottom: ' . $b_margin . '</p></div>';
Nie tłumacz HTML. Tak samo jest w każdym języku.
Lepszy sposób:
$html = sprintf( '<div><p>%s</p><p>%s</p></div>', __( 'Top: ', 'text_domain' ) . $t_margin, __( 'Bottom: ', 'text_domain' ) . $b_margin );
Lub podziel go na wiele linii:
$html = sprintf(
'<div><p>%s</p><p>%s</p></div>',
__( 'Top: ', 'text_domain' ) . $t_margin,
__( 'Bottom: ', 'text_domain' ) . $b_margin
);
Jeśli nie jest jasne, jakie są Górne i Dolne, możesz użyć _x()
do wyjaśnienia kontekstu tych terminów.
Możesz znaleźć inne przypadki tłumaczeń tutaj: Internacjonalizacja: Prawdopodobnie robisz to źle