Fluent - příklady použití v překladech projektů Mozilla

Obsah

Nejdříve si prosím přečtěte základy Fluentu.

Sloňování a názvy vývojových verzí Firefoxu

V době psaní této stránky (duben 2023) Mozilla z technických důvodů neumožňuje ve všech případech překládat názvy vývojových verzí Firefoxu (Firefox Beta, Firefox Nightly, atd.). To ale znamená, že některé přeložené řetězce nemusí znít v nefinálních verzích Firefoxu přirozeně.

Toto se ale týká jen a pouze překladů Firefoxu (potažmo Thunderbirdu a dalších aplikací). Při překladu webů jako je Mozilla.org tento problém nenastává, protože tam k dynamickému zaměňování názvů nedochází.

Ve finální verzi Firefoxu sice máme k dispozici kompletní skloňování

-brand-full-name =
    { $case ->
       *[nom] Mozilla Firefox
        [gen] Mozilly Firefoxu
        [dat] Mozille Firefoxu
        [acc] Mozillu Firefox
        [voc] Mozillo Firefoxe
        [loc] Mozille Firefoxu
        [ins] Mozillou Firefoxem
    }

Ale v betaverzi bude tento termín dostupný jen jako

-brand-full-name = Firefox Beta

Námi překládaný řetězec, aby zněl opravdu přirozeně, může záviset jak na pádu, tak na rodu názvu dané verze. Proto při překladech názvu produktu ve Firefoxu přidáváme ještě dva atributy gender a case-status. Celý termín pak vypadá následovně:

-brand-full-name =
    { $case ->
       *[nom] Mozilla Firefox
        [gen] Mozilly Firefoxu
        [dat] Mozille Firefoxu
        [acc] Mozillu Firefox
        [voc] Mozillo Firefoxe
        [loc] Mozille Firefoxu
        [ins] Mozillou Firefoxem
    }
    .gender = masculine
    .case-status = with-cases

Atribut gender

Atribut gender označuje gramatický rod a slouží např. pro správné ohýbání přídavných jmen nebo sloves v příčestí minulém.

third-party-warning-icon =
    .title =
        { -brand-short-name.gender ->
            [masculine] { -brand-short-name } spadl při vykonávání kódu tohoto modulu
            [feminine] { -brand-short-name } spadla při vykonávání kódu tohoto modulu
            [neuter] { -brand-short-name } spadlo při vykonávání kódu tohoto modulu
           *[other] Aplikace { -brand-short-name } spadla při vykonávání kódu tohoto modulu
        }

V případě finální verze Firefoxu tedy dostaneme

Firefox spadl při vykonávání kódu tohoto modulu

kdežto u betaverze, kde Fluent nezná rod, se elegantně využije výchozí varianta řetězce s pomocným slovem aplikace.

Aplikace Firefox Beta spadla při vykonávání kódu tohoto modulu

Atribut case-status

Podobně nám poslouží atribut case-status pro rozeznání, jestli Fluent dokáže název produktu sloňovat.

aboutDialog-title =
    .title =
        { -brand-full-name.case-status ->
            [with-cases] O { -brand-full-name(case: "loc") }
           *[no-cases] O aplikaci { -brand-full-name }
        }

Ve finální verzi bude výsledný řetězec krásně včetně skloňování

O Firefoxu

kdežto u betaverze, skloňování chybí, se elegantně využije výchozí varianta řetězce s pomocným slovem aplikace.

O aplikaci Firefox Beta