Widziałem różne sposoby tworzenia tekstu z tłumaczeniem hiperłącza. Nie udało mi się jednak znaleźć jednej najlepszej praktyki.
Oto niektóre z rozwiązań, które znalazłem:
// METHOD 1
sprintf( __( 'Please read %1$sthis%2$s.', 'tacoverdo-example-domain' ), '<a target="_blank" href="' . esc_url( 'https://goo.gl' ) . '">', '</a>' );
// METHOD 2
echo '<a target="_blank" href="' . esc_url( 'https://goo.gl' ) . '">';
_e( 'Please read this.', 'tacoverdo-example-domain' );
echo '</a>';
// METHOD 3
sprintf( __( 'Please read <a href="%s">this</a>.', 'tacoverdo-example-domain' ), esc_url( 'https://goo.gl' ) );
// METHOD 4
sprintf( __( 'Please read %sthis%s.', 'tacoverdo-example-domain' ), '<a target="_blank" href="' . esc_url( 'https://goo.gl' ) . '">', '</a>' );
// METHOD 5
_e( 'Please read <a target="_blank" href="' . esc_url( 'https://goo.gl' ) . '">this</a>', 'tacoverdo-example-domain' );
Moją pierwszą myślą byłoby, że metoda 1 byłaby najlepsza. Nie wymaga od twoich tłumaczy znajomości HTML. Ale nie pozwala też tym, którzy robią z tym bałagan. Jest również dość SUCHY (Don't Repeat Yourself), ponieważ nie musisz tłumaczyć całego fragmentu HTML w kółko.
Jednak zamieszczając to pytanie na Twitterze, ludzie odpowiedzieli, że metoda 3 byłaby najlepsza, jak widać tutaj .
Jak więc utworzyć tekst z hiperłączem do przetłumaczenia w WordPress?
źródło
_x
zamiast__
%s
oznacza,<strong>
czy<a href target="#">
? Czy to wpływa na ich tłumaczenie?Obecnie pracuję z wieloma stronami wielojęzycznymi i muszę powiedzieć:
__()
ale zawszeesc_html__()
/esc_attr__()
. Co oznacza, że ciąg do przetłumaczenia nie może zawierać HTML-a.*_x()
wariantu funkcji tłumaczenia.%1$sthis%2$s
nietechniczny tłumacz nie rozumie, żes
tuż przedthis
jest konieczne do poprawnego renderowania, i może również myśleć, że deweloper chciał pisać,this
ale miał literówkę i pisałsthis
.Z tych wszystkich powodów „prawidłowe” tłumaczenie tekstu zawierającego linki jest trudne. Jedynym realnym rozwiązaniem, które bierze pod uwagę wszystkie wyżej wymienione, jest:
Który jest bezpieczny i łatwy do przetłumaczenia przez osoby nietechniczne, ale także szczegółowe i PITA do wdrożenia, zwłaszcza jeśli trzeba to zrobić dla kilku linków ...
Jednak w przypadku kodu wydanego na wolności z tysiącem (prawdziwych lub potencjalnych) użytkowników mówiących w wielu językach, to jest mój sposób.
Tak właśnie podchodzę do kodu do użytku wewnętrznego, ale to ja.
Uwaga :
Może się wydawać, że słowo „Google” może być przetłumaczone osobno, i to chyba prawda w tym konkretnym przypadku. Ale czasami nawet zakładam, że nazwy marek są nieprawidłowe. Przykładowo we Włoszech mamy markę „Algida” znaną z około 30 różnych nazw na całym świecie .
W takim przypadku zakodowanie adresu URL i / lub nazwy marki spowoduje problemy.
Podaj kontekst tłumaczenia, aby pomóc tłumaczom w podjęciu decyzji o przetłumaczeniu nazwy marki.
źródło
Musisz zachować znaczniki w ciągach do przetłumaczenia, ponieważ tłumacze muszą wiedzieć, że istnieje link. W niektórych językach wynikowy tekst łącza może obejmować wiele słów, wewnątrz może znajdować się przecinek (lub odpowiednik) lub inny znacznik, który musi być poprawnie zagnieżdżony.
Ważne jest również zbudowanie mówionego tekstu linku, nie tego lub tutaj .
2 lub 3 to jedyne opcje do przetłumaczenia, ale powinieneś również umożliwić tłumaczenie adresu URL.
źródło