Fluent

Obsah

Fluent je celý lokalizační systém navržený Mozillou, který umožňuje překlady přizpůsobit podle cílového jazyka. Vychází z dřívějšího projektu L20n rovněž od Mozilly. Soubory používají příponu .ftl.

Syntaxe

Úplně nejzákladnější podoba .ftl souboru není nepodobná Properties (IDENTIFIKATOR = RETEZEC). Navíc ale umožňuje reference na další řetězce nebo dodatečné atributy.

menu-settings = Settings
help-menu-settings = Click { menu-settings } to save the file.
login-button =
    .label = Login
    .accesskey = L

Základní syntaxe IDENTIFIKATOR = RETEZEC je velmi jednoduchá, ale pro plné využití možností Fluentu se předpokládá použití nějakého editoru. Jelikož jde o poměrně nový formát, který se pomalu prosazuje v překladech Mozilly, nejdále je podpora zřejmě v jejím webovém editoru Pontoon.

emails = { $unreadEmails ->
        [one] You have one unread email.
        [42] You have { $unreadEmails } unread emails. So Long, and Thanks for All the Fish.
       *[other] You have { $unreadEmails } unread emails.
    }

Toto je příklad selektorů pro množná čísla. Fluent podporuje kromě standardních CLDR kategorií, také konkrétní čísla, takže je možné překlad libovolně vyladit pro konkrétní situaci. Hvězdička označuje výchozí variantu řetězce (v příkladu tedy jakékoliv číslo kromě jedničky a čtyřicet dvojky). Selektory je možné používat i v kombinaci s některými vestavěnými funkcemi.

Skloňování

Pokročilejší syntax Fluentu lze použít k podpoře skloňování podstatných jmen definovaných v samostatných entitách. Typicky jde o názvy produktů nebo služeb.

-vendor-short-name =
    { $case ->
       *[nom] Mozilla
        [gen] Mozilly
        [dat] Mozille
        [acc] Mozillu
        [voc] Mozillo
        [loc] Mozille
        [ins] Mozillou
    }

Tady vidíme překlad slova Mozilla v entitě s názvem -vendor-short-name. Hvězdička označuje výchozí pád, pokud by žádný nebyl explicitně vybraný. Všimněte si také speciálního typu entity začínající pomlčkou. Označuje se jako termín. Jejich použití se pak rovněž trochu liší (nepoužívá se znak dolaru).

learn-more-blog = Podrobnosti najdete na blogu { -vendor-short-name(case: "gen") }.

Výsledný text bude

Podrobnosti najdete na blogu Mozilly

Používání brandů (názvů produktů) obsahujících obecné názvy

Výše uvedené skloňování se využívá hlavně pro názvy produktů, funkcí a služeb. V některých případech ale tyto v češtině obsahují obecná podstatná jména a v tu chvíli nastává oříšek s psaním velkých a malých písmen.

-brand-name-firefox-account =
    { $case ->
        [gen]
            { $capitalization ->
                [lower] účtu Firefoxu
               *[upper] Účtu Firefoxu
            }
        [dat]
            { $capitalization ->
                [lower] účtu Firefoxu
               *[upper] Účtu Firefoxu
            }
        [acc]
            { $capitalization ->
                [lower] účet Firefoxu
               *[upper] Účet Firefoxu
            }
        [voc]
            { $capitalization ->
                [lower] účte Firefoxu
               *[upper] Účte Firefoxu
            }
        [loc]
            { $capitalization ->
                [lower] účtu Firefoxu
               *[upper] Účtu Firefoxu
            }
        [ins]
            { $capitalization ->
                [lower] účtem Firefoxu
               *[upper] Účtem Firefoxu
            }
       *[nom]
            { $capitalization ->
                [lower] účet Firefoxu
               *[upper] Účet Firefoxu
            }
    }

Jako příklad zde vidíme -brand-name-firefox-account, který kromě skloňování přidává ještě parametr $capitalization s možnými hodnotami lower a upper pro v tomto případě počáteční malé nebo velké písmeno.

firefox-accounts-already = { -brand-name-firefox-account(case: "acc") } už máte. Gratulujeme!

features-index-get-an-account = Vytvořit { -brand-name-firefox-account(case: "acc", capitalization: "lower") }

V případě řetězce firefox-accounts-already, kde jsme $capitalization vůbec neuvedli, se použije výchozí varianta s velkým písmenem (označena *).

Účet Firefoxu už máte. Gratulujeme!

V druhém řetězci features-index-get-an-account jsme už ale uvedli capitalization: "lower", což nám umožňuje použít ve slově účet uprostřed věty malé písmeno.

Vytvořit účet Firefoxu

Další

Překlady projektů Mozilly mají některá další specifika, která přímo nesouvisí s Fluentem, byť jeho syntaxi využívají. Najdete je popsané na samostatné stránce.

Editory a nástroje

Knihovny

Fluent poskytuje knihovny pro internacionalizaci softwaru v jazycích Rust, JavaScript, Python a Mozilla ho používá i pro lokalizaci Firefoxu v C/C++ a výhledově i aplikací v Javě pro Android.

Externí odkazy