Dobra praktyka
DLA STRONY INTERNETOWEJ
Użycie wzorców Markdown poprawia czytelność i ułatwia konserwację, zarówno dla tłumacza, jak i dla skryptów Twojej witryny, które będą z nich pobierać treść.
W przypadku nazwanych kotwic na wielojęzycznej stronie internetowej, interesującym podejściem jest „na stałe zakodowanie” (hardcoding) linków z wykorzystaniem formatowania Markdown.
Np.dla znacznika
<h2/> z kotwicąetykieta-w-bieżącym-języku
LLM-y są bardziej efektywne niż ludzie w ochronie linków, a LSDE pozwala wykrywać problemy między różnymi wersjami językowymi.W ten sposób możesz udostępnić link, który będzie działał we wszystkich językach i używać LSDE do zarządzania zastępowaniem przestarzałej kotwicy.
Niejasność kodu
Unikaj niejasności podczas pracy z modelami zorientowanymi na dane.Przykład:
Zła praktyka: Termin 'key' nie jest wystarczająco wyraźny i utrudnia jego wyszukiwanie.
tsconst PRODUCTS: Product[] = [ { id: 'fcf7o', logo: '/icons/fcf7o-icon-40.webp', label: 'FCF7O', key: 'game:fcf7o.words.game_title', }, { id: 'lsde', logo: '/icons/lsde-icon-40.webp', label: '<c1>LSDE</c1>', key: 'software:lsde.name', }, { id: 'lsge', logo: '/icons/lsge.webp', label: 'LSGE', key: 'software:lsge.name', }, ];
Dobra praktyka: Przyjmij jednolitą i spójną konwencję.
Termin i18nKey jest bardzo wyraźny i umożliwia precyzyjne wyszukiwanie tej wartości za pomocą wyrażeń regularnych (Regex).
tsconst PRODUCTS: Product[] = [ { id: 'fcf7o', logo: '/icons/fcf7o-icon-40.webp', label: 'FCF7O', i18nKey: 'game:fcf7o.words.game_title', }, { id: 'lsde', logo: '/icons/lsde-icon-40.webp', label: '<c1>LSDE</c1>', i18nKey: 'software:lsde.name', }, { id: 'lsge', logo: '/icons/lsge.webp', label: 'LSGE', i18nKey: 'software:lsge.name', }, ];
Leniwość
Złe pomysły rodzą się z lenistwa.
Nie próbuj oszczędzać kluczy, wykonując operacje w celu pobrania treści.
Przykład:
javascriptconst [title, subtitle] = t( 'game:game.title' ).split( /[::]/ );
To jest złudnie dobry pomysł, ponieważ w niektórych językach znaki mogą się różnić, a kolejność słów może ulec zmianie.
Format tagów
Zminimalizuj kod przeznaczony do projektowania bezpośrednio w tekście, aby móc nim sterować z poziomu bazy kodu.Na przykład, możesz wskazać lokalizację obrazu, ale nie jego styl ani sposób renderowania.
Jeśli musisz wprowadzić zmiany w projekcie, nie chcesz być zmuszony do ponownego tłumaczenia tekstu na 10 języków tylko po to, aby zmienić styl tagu!
Tagi mogą zawierać identyfikator, ale dodawanie dodatkowych informacji jest zazwyczaj silnie odradzane i stanowi złą praktykę.
Przykład: Nie rób tak:
<img src='url' left />ale raczej:
<img id=1 />Następnie pobierzesz ID tagu obrazu, aby zastosować do niego niezbędne style w bazie kodu.
ID-y powinny być używane dosłownie, a nie za pośrednictwem ich indeksu.
W rzeczywistości, w różnych językach tagi mogą zostać przesunięte i nie odpowiadać już początkowemu indeksowi.
Użycie naturalnych indeksów wprowadza również złożoność dla programisty; próba odgadnięcia, któremu indeksowi odpowiada obraz lub tag, to prawdziwa łamigłówka.
Dlatego używaj tagów z identyfikatorem, jeśli chcesz je personalizować po interpolacji.
CSS
W przypadku tłumaczenia strony internetowej, gdy masz paragrafy, zdecyduj się na minimalną wysokość (`min-height`) po przetłumaczeniu, aby uniknąć wizualnych przesunięć podczas zmian językowych.Np. `mih={'3lh'}`
Pozwala to na ustawienie minimalnej wysokości opartej na języku, który zajmuje najwięcej linii, zapewniając spójne i stonowane doświadczenie użytkownika (UX).
Przestrzeń nazw
Zawsze dołączaj 'przestrzeń nazw' do swoich kluczy tłumaczeniowych, nawet jeśli masz tylko jedną.
To znacznie ułatwia ustawienie wzorca Regex do odnajdywania Twoich kluczy.Np.
game:a.b.c, common:a.b.c