Skip to main content

Lokalizacja: locale, Visual editor i zasoby Guide

Lokalizacja w Mindustry obejmuje system gry do tłumaczenia i prezentowania tekstu, edytory w grze oraz zasoby zależne od lokalizacji. Poprawna lokalizacja zapewnia, że gracze widzą menu, komunikaty i elementy interfejsu w wybranym języku oraz że funkcje zależne od lokalizacji (np. zasoby specyficzne dla regionu lub zachowanie edytora) działają przewidywalnie.

Obsługiwane locale i prezentacja tekstu

  • Mindustry obsługuje wiele locale. Każde locale dostarcza przetłumaczone ciągi dla elementów interfejsu, nazw budynków i przedmiotów, podpowiedzi oraz komunikatów systemowych.
  • Gdy tłumaczenie danego tekstu jest nieobecne w wybranym locale, gra cofa się do domyślnego języka (zwykle angielskiego).
  • Pliki locale kontrolują nie tylko surowe tłumaczenia, ale także formatowanie liczb, dat i innych konwencji wyświetlania tam, gdzie ma to zastosowanie.

Lokalizacja edytora w grze

  • Visual (wbudowany) editor — otwierany przez ikonę ołówka — jest zlokalizowany dla wygody użytkowników na różnych platformach. Zapewnia graficzny interfejs do edycji logic processors i jest polecany dla nowych graczy.
  • Zaletami wbudowanego (graficznego) edytora są:
    • Graficzny, blokowy interfejs odpowiedni dla początkujących.
    • Prosty wybór zmiennych z wyświetleniem wszystkich dostępnych zmiennych.
    • Intuicyjne obsługiwanie przepływu sterowania (np. Jump).
    • Możliwość używania na urządzeniach mobilnych.
  • Visual editor pozwala na import/eksport za pomocą schowka, dzięki czemu gracze mogą przenosić fragmenty logiki między instancjami i locale bez ręcznego przepisywania.

Zasoby specyficzne dla locale i dane regionu

  • Niektóre zasoby gry i ustawienia są oznaczone tagami regionu. Na przykład niektóre definicje mapy lub regionu mogą odwoływać się do nazwanego obszaru shadow do załadowania; użycie wartości null oznacza normalny/domyślny obszar shadow.
  • Dane locale mogą zawierać nazwy regionów (np. Serpulo) oraz inne ciągi specyficzne dla map. Powinny być one tłumaczone konsekwentnie, aby nie mylić graczy zmieniających locale.

Tłumaczenie danych liczbowych i mechaniki rozgrywki

  • Pliki lokalizacyjne nie mogą zmieniać wartości liczbowych ani właściwości mechanicznych gry. Opisy są lokalizowane, ale wartości wyświetlane w interfejsie (obrażenia, prędkość, pojemność) powinny być prezentowane dokładnie tak, jak zdefiniowano w danych gry.
  • Dla elementów o złożonych właściwościach (na przykład atrybuty płynów takie jak palność, eksplodowalność, lepkość, pojemność cieplna i temperatura), warstwa lokalizacyjna wyświetla etykiety i jednostki; nie zmienia ona tych mechanik.

Praca z wartościami null i brakującymi wartościami

  • Niektóre pola konfiguracyjne akceptują null, aby wskazać domyślne zachowanie (na przykład null w polu "shadow" nazwy regionu, aby wskazać normalny shadow). Tłumacze i lokalizatorzy muszą zachować semantykę null i nie zastępować wartości null pustymi łańcuchami ani zlokalizowanym tekstem tam, gdzie silnik oczekuje null.

Najlepsze praktyki dla tłumaczy

  • Zachowuj niezmienione tokeny zastępcze (np. {0}, %s) i utrzymuj ich kolejność, jeśli wymaga tego gramatyka języka docelowego.
  • Nie tłumacz surowych identyfikatorów, kluczy technicznych ani nazw plików.
  • Utrzymuj spójność terminologii dotyczącej rozgrywki (nazwy budynków, przedmiotów, nazwy regionów). Używaj ustalonych kanonicznych tłumaczeń nazw własnych, takich jak Serpulo.
  • Testuj tłumaczenia w Visual editor i w grze, aby upewnić się, że interfejs mieści się w ograniczeniach układu i na ekranach mobilnych.
  • Używaj importu/eksportu schowka, aby weryfikować fragmenty logiki między locale bez wprowadzania problemów z kodowaniem.

Testowanie i utrzymanie

  • Weryfikuj tłumaczenia w grze, sprawdzając menu, podpowiedzi i wizualny edytor logiki.
  • Upewnij się, że wszelkie odwołania do zasobów specyficznych dla locale (np. nazwy obszarów shadow) ładują się poprawnie oraz że zachowania domyślne/null pozostają nienaruszone.
  • Synchronizuj pliki lokalizacyjne z aktualizacjami gry, aby uniknąć brakujących ciągów lub niezgodnych placeholderów.