Překládání

Můžete přispět k překladu tohoto pluginu. Překlady jsou zpracovávány pomocí softwaru Weblate s použitím Framasoft Weblate instance.

Varování

Nikdy neupravujte přímo soubory ve složce languages, mohlo by to vést ke konfliktům.

Jak na to

Varování

Mohou tam být nějaké “velmi technické” řetězce. Pokud si nejste stoprocentně jisti jejich významem nebo překladem, raději je nepřekládejte, aby se zobrazily v angličtině.

Překlady ConverseJS

Tento zásuvný modul se spoléhá na ConverseJS pro front-end chatu. ConverseJS má vlastní překlady na vlastní instanci weblate. Překládat můžete také přímo v úložišti kódu. Další informace naleznete v dokumentaci ConverseJS translations.

Přidání nového jazyka

Pokud si myslíte, že chybí nějaký jazyk, zkontrolujte prosím nejprve, zda je v Peertube zpracován. Pokud ano, můžete otevřít problém a požádat o něj.

Přidání nových řetězců / použití překladů v kódu

Pokud pracujete na nových funkcích a potřebujete nové řetězce, můžete je vytvořit přímo ve Weblate. Anglická verze je povinná. Začněte s ní.

Každý řetězec je spojen s klíčem (například use_chat). Zvolte explicitní klíč v angličtině, malá písmena.

Pokud potřebujete otestovat nové řetězce, aniž byste čekali na sloučení Weblate, můžete upravit soubory languages/*.yml, ale tyto změny neodevzdávejte (abyste minimalizovali riziko konfliktu).

Použití překladů ve front-end kódu

Před použitím řetězce ve front-endu je třeba deklarovat novou konstantu v client/@types/global.d.ts. Název konstanty musí:

  • začít předponou “LOC_”
  • použít řetězcový klíč, psaný velkými písmeny
  • stačí deklarovat jeho typ, nikoliv hodnotu

Chcete-li například použít příkaz “use_chat”, musíte deklarovat:

declare const LOC_USE_CHAT: string

Skript build-client.js přečte soubor client/@types/global.d.ts, vyhledá takové konstanty a načte jejich hodnoty ze souborů jazyků.

Nyní můžete ve svém kódu jednoduše zavolat peertubeHelpers.translate(LOC_USE_CHAT).

Použití překladů v kódu back-endu

Teoreticky jediné části backendového kódu, kde je potřeba lokalizace, jsou deklarace nastavení a standardizovaná data (ActivityPub, RSS, …). Zde potřebujeme získat anglické řetězce z překladového klíče.

Poznámka: Nikdy byste neměli potřebovat další jazykový překlad z backendového kódu. Lokalizace musí být provedena na front-endu.

Existuje modul lib/loc.ts, který poskytuje funkci loc(). Stačí jí předat klíč, abyste získali český řetězec: loc('diagnostic')'.

Překlad dokumentace

Překlad dokumentace se provádí pomocí příslušné komponenty Weblate.

K zobrazení aplikačního řetězce můžete použít specifické “zkratky Hugo”. Řekněme, že chcete zobrazit název tlačítka “open_chat_new_window”, můžete jej použít v dokumentačním souboru markdown:

{{% livechat_label open_chat_new_window %}}

Můžete také zabránit překladu celé stránky přidáním livechatnotranslation: true do sekce Yaml Font Matter:

  ---
  title: "Third party"
  description: "Displaying the livechat with 3rd party software."
  weight: 20
  chapter: false
  livechatnotranslation: true
  ---

Nikdy nepřekládejte řetězec v souboru livechat.en.pot, byl by ignorován. Místo toho upravujte přímo soubory markdown.

Pokud řetězec obsahuje odkaz, můžete jej změnit na správný odkaz v přeloženém jazyce. Například pro odkaz na tuto dokumentaci můžete do url přidat kód jazyka.

Některé řetězce jsou bloky kódu. Nepřekládejte kód. Můžete však přeložit komentáře nebo parametry, pokud je to relevantní.

Pokud si nejste jisti, nepřekládejte a zeptejte se, co máte dělat.

Nástroj, který používám ke zpracování překladů dokumentace, se může chovat podivně. Když přidám věty, které vypadají jako jiné existující věty, někdy zkopíruje existující překlady. Takže když máte překlady označené jako “ke kontrole”, ujistěte se prosím, že před validací nezkopíruje řetězec, který nemá s tím anglickým nic společného.

Pokud jste si nyní jisti kontextem řetězce, můžete zkontrolovat umístění řetězce v pravém podokně weblate a otevřít příslušnou stránku dokumentace. Například pro řetězec umístěný v souboru support/documentation/content/en/documentation/user/streamers.md je odpovídající url adresa https://livingston.frama.io/peertube-plugin-livechat/documentation/user/streamers/.

Obecná doporučení

Prosím, buďte ve svých formulacích vstřícní a respektujte kodex chování.