Tłumaczenie treści
Zaznacz treść, którą chcesz przetłumaczyć Magic Translate. Oryginalna zawartość jest wyświetlana do momentu załadowania tłumaczenia.
Element <t>
Umieść tekst w elemencie <t>, aby go przetłumaczyć. Może zawierać HTML:
<t>This content will be translated</t><t>Click <a href="/sale">here</a> to see <b>today's</b> deals.</t>
<mt-translate> działa również, jeśli wolisz niestandardową nazwę elementu.
Atrybut data-t
Jeśli nie możesz dodać elementu opakowania, dodaj data-t do istniejącego elementu, aby przetłumaczyć jego zawartość:
<title data-t>My online shop</title><select><option data-t>Small</option><option data-t>Large</option></select>
atrybuty
Wymień atrybuty do przetłumaczenia w data-t-attrs, oddzielone spacjami:
<input placeholder="Search products" data-t-attrs="placeholder" /><img src="team.jpg" alt="Our team" title="Say hi" data-t-attrs="alt title" />
Zmienne
Umieść wartości, które się zmieniają, takie jak nazwa lub liczba, w data-v jako obiekt JSON i odwołaj je jako $name:
<t data-v='{"name": "Bob", "count": 7}'>Hi $name, you have $count new messages</t><input placeholder="Search $count products" data-t-attrs="placeholder" data-v='{"count": 3}' />
Magic Translate tłumaczy tekst wokół wartości raz, jako Hi {0}, you have {1} new messages, i umieszcza wartości z powrotem na stronie. Tłumaczenie jest przechowywane w pamięci podręcznej i działa dla każdego imienia i każdej liczby, a same wartości nigdy nie są wysyłane do Magic Translate.
Aby wyświetlić nowe wartości, zmień data-v. Tłumaczenie zapisane w pamięci podręcznej jest ponownie używane i nie jest składane żadne żądanie:
element.dataset.v = JSON.stringify({ name: 'Bob', count: 8 });
Wartości są ponumerowane w kolejności, w jakiej pojawiają się po raz pierwszy. Tłumaczenie może przenosić je wszędzie tam, gdzie ich potrzebuje język, na przykład {1} neue Nachrichten für {0}.
Kilka zasad:
- Zastępowane są tylko klawisze
data-v, więc tekst taki jak$5pozostaje taki, jaki jest. Jeśli dwa klawisze zaczynają się w ten sam sposób, takie jakcounticounts, wygrywa najdłuższy. - Ta sama nazwa może pojawić się więcej niż raz.
- Wartości są wstawiane jako tekst, nigdy jako HTML. Zamiast tego umieść znaczniki w tekście wokół nich:
Hi <b>$name</b>. - W treści zmienne są zastępowane tylko tekstem, a nie w atrybutach takich jak
hreflubtitle. - Jeśli
data-vnie jest prawidłowym obiektem JSON, tekst pozostaje nietłumaczony, a ostrzeżenie jest rejestrowane. Klucz, który nie pojawia się w tekście, również rejestruje ostrzeżenie. $namejest widoczny do momentu załadowania skryptu. Załaduj skrypt na początku strony lub ukryj te elementy do tego czasu.
Opcje
Użyj tych atrybutów, aby ustawić opcje dla pojedynczego elementu:
| atrybut | Wartość | Opis |
|---|---|---|
data-formality | informal lub formal | Ustawia formalność tłumaczenia. |
data-lang | kod językowy | Zastępuje język strony. |
data-t-id | Identyfikator | Umożli wia samodzielną edycję tego użycia tekstu. Dotyczy to zawartości elementu, a nie do jego data-t-attrs. |
<t data-lang="fr" data-formality="formal">How are you?</t>
Zawartość, która się zmienia
Treści dodane do strony później lub zmienione przez skrypty są również tłumaczone. Działa to w przypadku treści renderowanych przez JavaScript, na przykład w htmx lub jQuery.
Wszystkie tłumaczenia żądane w tym samym czasie są wysyłane do interfejsu API w jednym żądaniu, a tłumaczenia są buforowane. Możesz zaznaczyć tyle elementów, ile chcesz.
Ograniczenia
Zawartość pojedynczego elementu nie może przekraczać 10 KB, czyli około 5000 znaków. Elementy zagnieżdżone są tłumaczone jako część nadrzędnego elementu <t>.