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 %szastępczy mówi ludzkiemu tłumaczowi, że tam jest łańcuch. Użyj %ddla 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