Jei mėgstate miestų statymo strategines simuliacijas, tai siūlau išbandyti mūsų šviežiai išleistą „King of the Dwarves“ demo Steam'e 👑⛏️ Gausite kastis kalne ir padėti nykštukams vystyti karalystę.

Demo pražaisti galima per kokias porą valandų. Šiandien išleidome atnaujinimą su lietuvių kalba, tai manau, kad gera proga parodyti ir čia. Ką jūs manote, ar žaistumėte pilną versiją? O žaistumėte lietuviškai, ar angliškai? 😀
Demo galite rasti čia: https://store.steampowered.com/app/4164710/King_of_the_Dwarves_Demo/

@zledas

> Vieta, kur verdamas 🍺alus.

🤦‍♂️ Mano OCD neleistų man žaist

@karmalakas Gal gali papasakoti, kas konkrečiai čia kliūna?

@zledas eilutės gale taškas. Visiškai nereikalingas jis ten. Skamba, lyg niekas kitas tiesiog neįmanoma

Bet svarbiausia tai emoji alaus. Turėtų arba visai nebūti, arba būti be "alus", arba po "alus", bet jokiu būdu ne prieš

@karmalakas Labai ačiū už paaiškinimus!

Hm. Sakinio gale taškas kaip ir turėtų būti. Ten baigiasi sakinys, tai be taško mano OCD kaip tik rėkia :) Ypač kai kiti statiniai gali turėti daugiau nei vieną sakinį, tai pastraipos gale neturėti taško – uuh :D
(1 iš 2)

@karmalakas O dėl piktogramos (tai ne emoji, na, bet šiais laikais tai turbūt galima kaip ir sinonimais laikyti), tai interfeisuose dažniausiai piktograma būna prieš terminą. Bet gal irgi subjektyvu. O kodėl analogiška piktograma prieš "Darbininkai" neužkliuvo? Arba kairėje lange esanti prieš "sostą"?
(2 iš 2)
@zledas jei tai būtų tiesiog "🍺 Alus", tada taip, bet dabar tai vidury sakinio 🤷‍♂️
@karmalakas @zledas, kaip suprantu, piktogramomis esminiai žaidimo terminai žymimi, ties/su kuriais dirbi. Makes sense. Taškas irgi, jei statinio aprašymas gali būti iš vieno arba daugiau sakinių.
Vat Darbininkai iš didžiosios vidury sakinio tai jau negerai, negerai. 😀
@rq @karmalakas Aha, ta vieta, kur darbininkai iš didžiosios, tai "komponuojami" stringai, tai beversdamas ne apie visas vietas pagalvojau :(
@rq @karmalakas Problema, kad kai kur tas žodis/terminas vidury sakinio, o kai kur - pradžioj. O vykdymo metu uppercase'inti pirmis raidės - nenorėjau....
@zledas, o linksniai vykdymo metu visur sudera? Komponuojamų stringų problema dažnai neapsiriboja vien pirmosios raidės dydžiu. @karmalakas
@rq @karmalakas Kol kas, atrodo, dera. Ir net prancūzų kalbai giminės dera (bent jau taip atrodė iš to, kad vertėjai paklausinėjo, bet buvo patenkinti visais atsakymais) :) nemažai kur specialiai nedariau kombinuojamų stringų, bet su dwarfų profesijom neišeina, nes jau būtų smaaaarkiai per daug :( ai, kartais užtenka ir pakankamai gerai...
@zledas, yra tam sprendimų šiais laikais. Pvz., Fluent. @karmalakas
Project Fluent

@rq @zledas ant PHP pamenu jau ~10-15 metų atgal Symfony turėjo linksnius lietuviškai lokalizacijai
@karmalakas, manau painioji su daugiskaitos formomis. @zledas
@rq @zledas ne ne.. Buvo atskiras package'as linksniams. Skaičiams tai ten viena eilutė kodo su trim ar keturiom sąlygom ir tiek
@karmalakas, geras, negirdėjau apie tokį. Ar tikrai tai oficialus Symfony paketas? Dirbu su Symfony ir nepamenu, kad būčiau tokį stebuklą matęs. Gal tai buvo third-party to paties Fluent bundlas?
@zledas
GitHub - JokubasR/lithuanianNamesDeclensionBundle: Lithuanian names declension Symfony2 bundle

Lithuanian names declension Symfony2 bundle. Contribute to JokubasR/lithuanianNamesDeclensionBundle development by creating an account on GitHub.

GitHub

@karmalakas @zledas, ai, šitą... Šitą aš labiau laikau workaroundu, nes jis vienai konkrečiai kalbai skirtas – vadinas, arba produktas turi būti vienkalbis, arba kiši viską po if'ais.

Fluent šaunumas yra tame, kad linksniavimą ir kitką konkrečioje lokalėje valdo lokalizuotojas, o ne programuotojas. Programuotojui nereikia žinoti, kiek lietuvių ar kokioje nors kitoje kalboje yra linksnių ir kokie jie yra.

@rq @karmalakas @zledas
O galima paklausti, kaip įsivaizduojat universalesnę alternatyvą? Man tai pirmiausia sukelia asociacijas su database-agnostic query builder’iais 😒
@dcoderlt, tai jau dalinausi Fluent nuoroda aukščiau. Jei labai glaustai tai programuotojas verčia eilutę ne tik pagal identifikatorių, bet su kontekstu, o vertėjas gali aprašyti, kaip, priklausomai nuo konteksto, kinta rodomas pranešimas. Principe tai labai panašu į daugiskaitos formas, tik neapribota jomis. Pažiūrėk patį pirmą pavyzdį Fluent svetainėje – jau ten parodytas pavyzdys, kaip eilutė mutuoja priklausomai nuo kontekste pateiktos subjekto lyties.
@karmalakas @zledas
Project Fluent

@rq @dcoderlt @zledas tai ta lytis - tiesiog if/else 🤷‍♂️ O visa kita - tavo aukščiau minėta daugiskaita... Mane domina būtent linksniai

Tarkim `userName` yra `Onutė` ir noriu išverst sakinį
> {{userName}} reikėjo {{count}} nuotraukų

T.y.
> Onutei reikėjo 3-jų nuotraukų

Gali tokį link'ą sugeneruot į playground'ą?

@karmalakas, kitam subthreade apie šitą atvejį atsakiau. Vat kaip tik jojo Fluent nerealizuoja, kiek žinau. Yra dar kur tobulėti. Įsivaizduoju, kad idealiu atveju defaultinę linksniavimo implementaciją galėtų turėti ir pati vertimo biblioteka, o vertėjai, prireikus, galėtų ją override'inti konkretiems pranešimams.
@dcoderlt @zledas
@rq @karmalakas
Aha, paprastai “šito dalyko nerealizuoja” būna todėl, kad a) kiekvienas mano, kad jo case yra arčiausiai default, b) normaliai realizuoti yra bjauriai daug darbo. Kokias kalbas bandytum palaikyti defaulte? Aš paskaičiau https://en.wikipedia.org/wiki/Grammatical_case#Declension_paradigms ir sakykim nenorėčiau palaikyti slovakų 🫠 Nors lietuvių kalboje su 106 formomis kiekvienam būdvardžiui irgi yra ką veikti 😅
Grammatical case - Wikipedia

@dcoderlt, aš manau tai turėtų būti per-language moduliukas, kurį arba kažkas pakontributina, ir vertimo sistema jį naudoja, arba nepacontributina niekas, ir tada vertėjas kažkaip bando situaciją apžaisti.
Kitas dalykas – kad nemažai daliai vertimų pakaktų ir to dabar Fluent turimo varianto, kai pats vertėjas nurodo, kokios frazės kaip linksniuojamos. Nes tikrai ne visų verčiamų eilučių reikia linksniuotų, tikrai ne visas ir galima išlinksniuoti (realiai tai aktualu tik terminams („langas“, „failas“, „kortelė“, „darbininkas“), bet ne pranešimams, sakiniams, klausimams ir t.t.).
@karmalakas

@rq @zledas aš tk sakau, kad jau tada buvo sprendimų

Beje, nerandu kaip tame fluent'e veikia linksniai. Galima gal nuorodą į dokumentaciją? Noriu playground'e pabandyt

@karmalakas, paskutinis pavyzdys jų svetainėje yra su linksniais.
Jokūbo paketo privalumas – kad linksniavimu užsiima pati programa – vadinas, vertėjui nereikia sukti galvos. Trūkumas – kad linksniavimu užsiima pati programa, tad galvą reikia sukti programuotojui.
Fluent atveju tas eilutes, kurių reikės keliais linksniais, išlinksniuoja pats vertėjas. Tai gerai, nes programuotojui nereikia apie tai galvoti. Bet trūkumas – kad nėra kaip automatiškai išlinksniuoti, pavyzdžiui, prisijungusio naudotojo vardo.
@zledas

@rq @zledas jei kalbi apie

```
-sync-brand-name = {$case ->

*[nominative] Konto Firefox

[genitive] Konta Firefox

[accusative] Kontem Firefox

}
```

Nu tai vėl tas pats if/else
Ir taip reiktų aprašinėt kiekvieną sakinį? Ačiū ne 😀

Jau geriau Jokūbo variantas LT kalbai, o kitkas kitoms

@karmalakas, pakankamai atitolus, viskas yra if/else. Tu nupastinai tik dalį pavyzdžio, kuris mažai ką parodo. Žiūrėk:

-sync-brand-name = {$case ->
*[nominative] Konto Firefox
[genitive] Konta Firefox
[accusative] Kontem Firefox
}
sync-signedout-title =
Zaloguj do {-sync-brand-name(case: "genitive")}

Vat antrąją dalį (nurodymą vertimo eilutėje, jog čia turi būti naudojamas kilmininkas) šiuo metu realizuoja labai mažai bibliotekų.

Jokūbo paketas yra osom, jei visa sistema veikia tik lietuvių kalba. Bet jei ji veikia penkiomis kalbomis – tu kaip programuotojas turėsi Twige dėlioti if'us, nusakančius, kad jei lokalė lietuvių – čia daryk kilmininką, o jei kažkokia kita – galbūt galininką. Tai nėra scalable tiesiog. Visiškai. Tie patys if'ai, tik netinkamoje vietoje.

@zledas

@rq @zledas nu ne visai. Jei LT, tai naudoji Jokūbo paketą, jei ne - bele ką kitką (kad ir tą patį fluent). Ir šitaip jau viena kalba mažiau rūpintis visiems. Nu jei taip grubiai kalbant
@karmalakas, gal ir aš taip daryčiau, bet nemanau, kad tai optimalu, ir tiek.
@rq @karmalakas Yeah, idealiu atveju būtų osom kažką tokio susiintegruoti, bet projekte per daug dar kitų svarbesnių dalykų trūksta -_- Bet šiaip smagu tokie, man patinka su tokiais techniniais dalykais integruoti ir knistis.