diff --git a/components/Literature.vue b/components/Literature.vue index d70eea6e..d5b8631c 100644 --- a/components/Literature.vue +++ b/components/Literature.vue @@ -9,7 +9,7 @@ diff --git a/components/Source.vue b/components/Source.vue index 0838ab53..816b49a0 100644 --- a/components/Source.vue +++ b/components/Source.vue @@ -1,6 +1,6 @@ diff --git a/data/examples.tsv b/data/examples.tsv new file mode 100644 index 00000000..f55b5407 --- /dev/null +++ b/data/examples.tsv @@ -0,0 +1,15 @@ +singular plural isHonorific +Myślę, że {pronoun_n} jest bardzo mił{adjective_n}. Myślę, że {pronoun_n} są bardzo mi{adjective_ll}{adjective_n} FALSE +Tęsknię za {pronoun_g} śmiechem. FALSE +Napiszę do {pronoun_g_acc} później FALSE +Powiedział{verb_middle}m {pronoun_d}, że {pronoun_a} lubię. Powiedzi{verb_middle}śmy {pronoun_d}, że {pronoun_a} lubimy. FALSE +Chciał{verb_end_inter}bym pójść do kina. Chci{verb_middle}byśmy pójść do kina. FALSE +Czy będziesz grał{verb_end_about} z nami? Czy będziecie gra{verb_end_about} z nami? FALSE +Kiedy będziesz m{verb_o}gł{verb_end_about} się z nami spotkać? Kiedy będziecie m{verb_o}g{verb_end_about} się z nami spotkać? FALSE +Gdy był{verb_middle}m w domu, zacz{verb_nasal}ł{verb_middle}m gotować. Gdy by{verb_end_inter}śmy w domu, zacz{verb_nasal}śmy gotować. FALSE +Dostał{verb_middle}m wyniki egzaminu i jestem z nich zadowolon{adjective_n}. Dosta{verb_end_inter}śmy wyniki egzaminu i jesteśmy z nich zadowol{adjective_middle}n{adjective_n}. FALSE +Po{verb_go}{verb_middle}m z {pronoun_i} do szkoły. Po{verb_go}śmy z {pronoun_i} do szkoły. FALSE +Rozmawialiśmy o {pronoun_l} ostatnio. FALSE +Każd{adjective_n} z nich chciał{verb_end_about} czego innego. Wszys{pronoun_all} z nich chci{verb_middle} czego innego. FALSE +To miło, że nas {honorific} odwiedza. To miło, że nas {honorific} odwiedzają. TRUE +Czy będzie {honorific} kontynuować subskrypcję? Czy będą {honorific} kontynuować subskrypcję? TRUE \ No newline at end of file diff --git a/data/sources.tsv b/data/sources.tsv new file mode 100644 index 00000000..cf76578a --- /dev/null +++ b/data/sources.tsv @@ -0,0 +1,37 @@ +key type author title extra year fragments comment link +zapachKosmosu Book Ginny Nawrocka Cierpki zapach kosmosu w: „Tęczowe i fantastyczne” 2020 Ja, Gosia, Ewa i Jacek. Gosia była najmłodsza... Jest najmłodsza. Jacek jest z tego samego roku, co ja, ale onu urodziłu się na początku, a ja pod koniec. A Ewa jest pięć lat starszy ode mnie. oprócz tego także postaci niebinarne używające męskich i żeńskich form +confirmatio Book Bartek Biedrzycki Confirmatio Vir Llamki, albo o wizycie Nieziemca Macka Simma na Starej Ziemi w: „Dzieje się” 2018 Usiedli. Vir wskoczyło na łóżko i zainstalowało się tam po turecku, Simm przysiadł na obrotowym krześle przy biurku.|– Jak dorosnę, to chcę polecieć na Marsa.|– Przecież już byłoś u mnie dwa razy.|– Ale ja chcę na stałe +perfekcyjna Book Jacek Dukaj Perfekcyjna niedoskonałość 2003 – Do Creytona powinniśmy dotrzeć w ciągu trzydziestu ośmiu k-godzin. Nawet zważywszy na utratę krwi pana i stahs McPherson– |– Chciałuś powiedzieć – przerwał nu Zamoyski – powinniśmy byli tam dotrzeć. Samu twierdzisz, że po odcięciu od Plateau nie wiesz nawet, w którą stronę lecimy. Swoją drogą, zastanawiam się, jak to możliwe. Przecież chyba pamiętasz, gdzie celowałuś. +silaNizsza Book Marta Kisiel Siła niższa 2016 – Ja co prawda słabo znam gościa - odparł po kilku chwilach - ale tak sobie myślę, że on to nie lubi nikogo. |– Nawet swojego człowieka? Przecież jest aniołem stróżem. Ja swoich zawsze lubiłom. Jak miałobym im stróżować bez lubienia? +smoczaPerla Book Yoon Ha Lee Smocza perła tłumaczenie: Agnieszka Fulińska i Aleksandra Klęczar 2019 – Idzie ci lepiej niż zwykle – oznajmiło w końcu Sujin. Nie zauważyłam, że pogrążone w lekturze książki dotyczącej chemii zwracało na nas w ogóle uwagę. +lewaReka Book Ursula K. Le Guin Lewa ręka ciemności tłum. Lech Jęczmyk 1987 postać niebinarna używająca form męskich +zabSpraw Book Ann Leckie Zabójcza sprawiedliwość tłum. Danuta Górska 2015 postać niebinarna używająca form żeńskich +zabMiecz Book Ann Leckie Zabójczy miecz tłum. Danuta Górska 2016 postać niebinarna używająca form żeńskich +krolowaZimy Book Ursula K. Le Guin Królowa Zimy w: „Wszystkie strony świata”, tłum. Lech Jęczmyk 1980 postać niebinarna używająca form żeńskich +milo Article Małgorzata Goślińska Zrobimy z ciebie mężczyznę w: „Magazyn TVN24” 2019 Milo nie miało myśli erotycznych. Tak boleśnie myślało o własnym ciele, że nie potrafiło myśleć o nim w towarzystwie innych ciał. Ale żeby zmienić ciało, musiało odpowiedzieć u psychologa na pytania: Od kiedy się masturbujesz? Jak to robisz? O czym wtedy myślisz? W jakiej pozycji uprawiasz seks? Jak się całujesz? Milo było rozdarte, nie lubiło kłamać.@Przez jeden dzień Milo się cieszyło. Ale to był krok w bok. Milo nie posunęło się do przodu w kierunku tranzycji prawnej ani medycznej. Uznali imię, nie tożsamość. W dowodzie pozostała literka M. Milo było osobą niebinarną, ale z dwojga złego wolałoby literkę K. Było rozdarte. Nie lubiło swojego męskiego ciała, dlatego postanowiło przejść tranzycję. Ale nie po to wyrwało się z klatki chłopca, żeby wejść w kolejną klatkę. Chciało być sobą. Milo - historia życia i śmierci https://tvn24.pl/magazyn-tvn24/zrobimy-z-ciebie-mezczyzne,242,4189 +starTrek Series Star Trek: Następne Pokolenie, sezon 5 odcinek 17 „Wyklęci”/„Presja społeczna” tłumaczenie: Kamil Borek 2016 – Radzisz sobie, jakbyś dorastało w wahadłowcu.|– Dorastałom. Moi rodzice to piloci. Latałom z nimi, zanim umiałom chodzić. https://www.netflix.com/watch/70177979 +niepelnia Book Anna Kańtoch Niepełnia 2917 Ale Sło­neczko oczy­wi­ście chciało, i to bar­dzo. Chciało i bało się jed­no­cze­śnie, ponie­waż wie­rzyło matce. Świat na zewnątrz był piękny, ale też okrutny – zwłasz­cza dla takich jak ono. Bo Sło­neczko, choć nikt ni­gdy nie powie­dział mu tego wyraź­nie, wie­działo, że różni się od zwy­czaj­nych dzieci, a ludzie nie lubią tego, co inne. +dozywocie Book Marta Kisiel Dożywocie 2010 Starało się zrobić wrażenie bardzo zasmuconego i stanowczego jednocześnie, aczkolwiek nie wzięło pod uwagę faktu, że wygląd trochę wchodzi mu w paradę. Owszem, peleryna świetnie maskowała skrzydła, ale poza tym była zdecydowanie zbyt wielka na jedno małe Licho. +lichoNiebozatko Book Marta Kisiel Małe Licho i tajemnica Niebożątka 2018 +lichoAniol Book Marta Kisiel Małe Licho i anioł z kamienia 2019 +siewca Book Maja Lidia Kossakowska Siewca wiatru 2004 +maska Book Stanisław Lem Maska w zbiorze „Maska” 1976 +ekonomiaNiesam Book Anna Łagan Ekonomia to dolina niesamowitości w: „Skafander i melonik” 2018 – Oczywiście – zgodziło się Manu. – Właśnie przeprowadziłom analizę skutków obniżenia moich cen i mimo że widzę wiele niedogodności i nieprzyjemnych konsekwencji, rozumiem, że jak p. powiedział, jest to na ten moment najlepsze rozwiązanie problemu. Zgadzam się na zmianę umowy i obniżenie kosztów… Oto cena, którą p. proponuję.' +rzekaBogow Book Ian McDonald Rzeka bogów tłumaczenie: Wojciech Próchniewicz 2010 Poznali się, ślub, sześć miesięcy później - ja. I zanim zapytasz: nie. Byłom jedynakiem. Moi rodzice byli atrakcją na Chowpatty Beatch. Brali mnie na wszystkie imprezy, byłom prawdziwą ozdobą. +doBlyskPod Book Ada Palmer Do błyskawicy podobne tłumaczenie: Michał Jakuszewski 2019 +siedemKapit Book Ada Palmer Siedem kapitulacji tłumaczenie: Michał Jakuszewski 2019 +listopadBez Book Joanna Krystyna Radosz Listopad bez snów w: „Tęczowe i fantastyczne” 2020 Gdy je otwieram, rozlega się zgrzyt zamka w drzwiach, przedpokój zalewa fala światła, a z głębi mieszkania dobiega lekko bełkotliwy głos Mady:|– ...a ja byłom jak: kupiliśmy trzyosobowy materac, a ty gardzisz! +ofiara Book Aleksandra Stanisz Ofiara w: „Umieranie to parszywa robota” 2019 +uratowacKotka Book A. Szydlik Jak uratować kotka z nawiedzonego domu w: „Tęczowe i fantastyczne” 2020 Znalazłom ten portfel na przystanku, wciśnięty między krzesełka. Podniosłom go, trochę bezmyślnie, trochę dla zabicia czasu. Autobus miał przyjechać za kwadrans. Mogłom co prawda iść piechota ̨, ale było ciemno, zimno i lało, a ja byłom bardzo zmęczone. Usiadłom więc na plastikowym krzesełku i otworzyłom portfel. +loe Article Rozmowa Ewy Tomaszewicz z Loë Fjorsigviss i Magdaleną Stonawską Tęcza w fandomie w: „Replika” #83 2020 [Loë Fjorsigviss] Od kiedy pamiętam, uwierało mnie mówienie o sobie jako o dziewczynie czy kobiecie. Nie utożsamiałum się z tym. Zorientowałum się, że mogę nie być kobietą, nie ze względu na dysforię płciową, tylko ze względu na euforię. Kiedy dopuściłum do siebie myśl, że są inne opcje, zaczęłum esksperymentować i poprosiłum parę znajomych osób, żeby spróbowały tak się do mnie zwracać. Gdy zaczęły tak do mnie mówić, poczułum ogromną ulgę. Kiedy mówię o sobie, ta inna forma przychodzi mi z trudem, ciągle samu mam z nią problem, ale to uczucie, kiedy inni mówią o mnie w ten sposób, powiedziało mi, że to może być faktycznie dobry kierunek, że nie jestem dziewczyną ani chłopakiem, ale kimś poza tym. I to było naprawdę wspaniałe i wyzwalające uczucie. https://replika-online.pl/spis-tresci-83/ +smoczeDzieko Book Artur Nowrot Smocze dziecko w: „Tęczowe i fantastyczne” 2020 Yare robiłu jednak, co w jenu mocy, by zadowolić rodziców i starszyznę, wykonywać bez zwłoki polecenia, nie zaniedbywać obowiązków i za bardzo nie narzekać. przymiotniki w formie nijakiej +interwencja Book Kelly Robson Interwencja "w: „Nowa Fantastyka” 5/2020; tłumaczenie: Paweł Dembowski" 2020 Émeraude odpięłu się i pokazału palec lekarce. Przełączału się między dwoma trybami – wszystko albo nic. Kilka miesięcy temu doznału kontuzji, naciągając mocno ścięgno zginacza. +skrzydla Book Karolina Fedyk Skrzydła 2019 +obcaByla Book Weronika Mamuna Obca, która była w: „Tęczowe i fantastyczne” 2020 +cyborgizacja Book Agnieszka Żak Dorastanie w czasach cyborgizacji w: „Tęczowe i fantastyczne” 2020 +angielskieImie Book R.S. Benedict Moje angielskie imię w: „Nowa Fantastyka” 3/2019 2019 +stanWyczerpania Book Greg Egan Stan wyczerpania tłum. Paweł Wieczorek 2003 Kuwale było tylko pół pokolenia młodsze ode mnie i prawdopodobnie mieliśmy wiele podobnych poglądów na świat, vono jednak nieco ekstremalniej wierzyło we wszystko to, w co wierzyliśmy my. Nauka i technologia zdawały się dawać vu wszystko, czego chciało. +diaspora Book Greg Egan Diaspora tłumaczenie: Michał Jakuszewski 2015 Yatima przyjrzało się otaczającym polis gwiazdom. Wszystkie emitowały światło o widmie przesuniętym w wyniku efektu Dopplera, tworząc na niebie nieruchome koncentryczne fale koloru - od ekspansji po konwergencję. Ve zastanawiało się, jak powinni się zachować, gdy wreszcie dościgną uciekających. rodzaj nijaki z neozaimkami ve/vir +mlotThora Book Rick Riordan Młot Thora 2016 postać genderfluid o zmiennych zaimkach +statekUmarlych Book Rick Riordan Statek umarłych 2017 postać genderfluid o zmiennych zaimkach +zwierciadlo Book Marta Magdalena Lasik Zwierciadło w dziurce od klucza w: „Skafander i melonik” 2018 diff --git a/data/templates.tsv b/data/templates.tsv new file mode 100644 index 00000000..1102787e --- /dev/null +++ b/data/templates.tsv @@ -0,0 +1,16 @@ +key description pronoun_n pronoun_g pronoun_g_acc pronoun_d pronoun_a pronoun_i pronoun_l pronoun_all adjective_n adjective_ll adjective_middle verb_end_inter verb_end_about verb_middle verb_nasal verb_go verb_o honorific plural pluralHonorific history sources +on,on/jego Rodzaj męski on jego niego mu go nim nim y e ą szedł ó pan FALSE FALSE confirmatio,perfekcyjna,silaNizsza,zapachKosmosu,lewaReka +ona,ona/jej Rodzaj żeński ona jej niej jej ją nią niej a a a a ę szł o pani FALSE FALSE smoczaPerla,zapachKosmosu,zabSpraw,zabMiecz,krolowaZimy +ono/jego,ono Rodzaj nijaki ono jego niego mu je nim nim e o o o ę szł o pań FALSE FALSE milo,starTrek,confirmatio,niepelnia,dozywocie,lichoNiebozatko,lichoAniol,silaNizsza,siewca,smoczaPerla,maska,ekonomiaNiesam,rzekaBogow,doBlyskPod,siedemKapit,listopadBez,ofiara,uratowacKotka +ono/jej Rodzaj nijaki z formami żeńskimi zamiast męskich ono jej niej jej je nią niej e o o o ę szł o pań FALSE FALSE +ono/jejgo Rodzaj nijaki ono jejgo niejgo jejmu jejgo niejnim niejmu e o o o ę szł o pań FALSE FALSE +ono/jeno Neorodzaj gramatyczny, z elementami rodzaju nijakiego i dukaizmów ono jeno nieno nu no niemu niem e o u o ę szł o pań FALSE FALSE +ono/jenu Rodzaj nijaki z dukaizmami zamiast form męskich ono jenu nienu nu nu num num e o o o ę szł o pań FALSE FALSE +onu,onu/jenu Rodzaj postpłciowy, dukaizmy onu jenu nienu nu nu num num u u u u ę szł o panu FALSE FALSE "Formy te zostały stworzone przez Jacka Dukaja do książki „Perfekcyjna niedoskonałość”. Używają jej tam istoty post-ludzkie (phoebe), które nie mają określonej płci. Od nazwiska autora te formy gramatyczne są nazywane „dukaizmami”." loe,perfekcyjna,zapachKosmosu,smoczeDzieko,interwencja +onæ,onæ/jæ Formy z „ae” lub ligaturą „æ” onæ jæ næ jæ jæ næm næm æ æ æ æ ą szł o panæ FALSE FALSE +oni,oni/ich Formy męskoosobowe liczby mnogiej oni ich nich im ich nimi nich cy i l e li li eli ęli szli o państwo TRUE TRUE skrzydla,obcaByla,cyborgizacja +one,one/ich Formy niemęskoosobowe liczby mnogiej one ich nich im je nimi nich tkie e ł o ły ły ały ęły szły o państwo TRUE TRUE smoczeDzieko +onx,onx/jex Formy z iksem onx jex nix jex jex nix nix x x x x ę szł o panx FALSE FALSE +on_,on_/je_ Formy z podkreślnikiem on_ je_ ni_ je_ je_ ni_ ni_ _ _ _ _ ę szł o pan_ FALSE FALSE angielskieImie +onø,onø/jeø Formy z samogłoską nosową onø jenø nienø nø nø nøm nøm ø ø ø ø ę szł o panø FALSE FALSE "Formy te używają samogłoski nosowej „ø”, która występowała w pisowni polszczyzny od XII do XV wieku, i została zastąpiona przez „ą” i „ę”. Miała zatem zastosowanie dosyć zbliżone do obecnego w powyższych formach." +vono,vono/viego Rodzaj nijaki z neozaimkami vono/viego vono viego viego vu vo vim vim e o o o ę szł o pań FALSE FALSE Forma została stworzona przez tłumacza Pawła Wieczorka dla oddania stworzonych przez Grega Egana form ve/vir. stanWyczerpania diff --git a/nuxt.config.js b/nuxt.config.js index eb984847..b57ac0fb 100644 --- a/nuxt.config.js +++ b/nuxt.config.js @@ -52,7 +52,19 @@ export default { lang: 'pl', } }, - build: {}, + build: { + extend (config, ctx) { + config.module.rules.push({ + test: /\.csv|\.tsv$/, + loader: 'csv-loader', + options: { + dynamicTyping: true, + header: true, + skipEmptyLines: true, + } + }) + }, + }, env: { baseUrl: process.env.BASE_URL }, diff --git a/package.json b/package.json index 754ab50b..c25fa178 100644 --- a/package.json +++ b/package.json @@ -21,6 +21,7 @@ "avris-daemonise": "^0.0.2", "bootstrap": "^4.5.0", "clipboard": "^2.0.6", + "csv-loader": "^3.0.3", "sass": "^1.26.10", "sass-loader": "^9.0.2" } diff --git a/pages/_.vue b/pages/_.vue index 88895779..e329f54f 100644 --- a/pages/_.vue +++ b/pages/_.vue @@ -28,13 +28,7 @@ @@ -23,33 +28,42 @@ -
-

+
+

{{ template.description }} ({{ template.name() }})

-

- {{ template.description }} -

  • - +
-

+ + +
+

+ Inne formy +

+ + +
diff --git a/src/classes.js b/src/classes.js index 007bd9e3..ba3f1f8b 100644 --- a/src/classes.js +++ b/src/classes.js @@ -14,22 +14,13 @@ export class ExamplePart { } export class Example { - constructor(singularParts, pluralParts) { - this.parts = { - false: singularParts, - true: pluralParts, - }; + constructor(singularParts, pluralParts, isHonorific = false) { + this.singularParts = singularParts; + this.pluralParts = pluralParts; + this.isHonorific = isHonorific; } static parse(str) { - const versions = str.split('|'); - return new Example( - Example._parse(versions[0]), - Example._parse(versions[versions.length > 1 ? 1 : 0]) - ); - } - - static _parse(str) { const parts = []; let lastPosition = 0; @@ -70,7 +61,15 @@ function clone(mainObject) { } export class Source { - constructor (author, title, extra, year, fragments = [], comment = null, link = null) { + ICONS = { + Book: 'book-open', + Article: 'newspaper', + Movie: 'film', + Series: 'tv', + } + + constructor (type, author, title, extra, year, fragments = [], comment = null, link = null) { + this.type = type; this.author = author; this.title = title; this.extra = extra; @@ -81,35 +80,11 @@ export class Source { } icon() { - return 'circle'; + return this.ICONS[this.type] || 'horizontal-rule'; } } -export class Book extends Source { - icon() { - return 'book-open'; - } -} - -export class Article extends Source { - icon() { - return 'newspaper'; - } -} - -export class Movie extends Source { - icon() { - return 'film'; - } -} - -export class Series extends Source { - icon() { - return 'tv'; - } -} - -export const morphemes = [ +export const MORPHEMES = [ 'pronoun_n', 'pronoun_g', 'pronoun_g_acc', @@ -145,8 +120,8 @@ export class Template { constructor (description, morphemes, plural, pluralHonorific, sources = [], aliases = [], history = null) { this.description = description; this.morphemes = morphemes - this.pluralHonorific = pluralHonorific; this.plural = plural; + this.pluralHonorific = pluralHonorific; this.sources = sources; this.aliases = aliases; this.history = history; @@ -182,25 +157,25 @@ export class Template { } static from(data) { - if (data.length === morphemes.length + 2) { + if (data.length === MORPHEMES.length + 2) { data.push(''); } - if (data.length !== morphemes.length + 3 + if (data.length !== MORPHEMES.length + 3 || data[0].length === 0 || data[data.length - 1].length > 48 - || ![0, 1].includes(parseInt(data[morphemes.length])) - || ![0, 1].includes(parseInt(data[morphemes.length + 1])) + || ![0, 1].includes(parseInt(data[MORPHEMES.length])) + || ![0, 1].includes(parseInt(data[MORPHEMES.length + 1])) || data.slice(1, data.length - 3).filter(s => s.length > 7).length ) { return null; } const m = {} - for (let i in morphemes) { - m[morphemes[parseInt(i)]] = data[parseInt(i)]; + for (let i in MORPHEMES) { + m[MORPHEMES[parseInt(i)]] = data[parseInt(i)]; } - return new Template(data[data.length - 1], m, parseInt(data[morphemes.length]) === 1, parseInt(data[morphemes.length + 1]) === 1) + return new Template(data[data.length - 1], m, parseInt(data[MORPHEMES.length]) === 1, parseInt(data[MORPHEMES.length + 1]) === 1) } } diff --git a/src/data.js b/src/data.js index 317c1e36..33d000cc 100644 --- a/src/data.js +++ b/src/data.js @@ -1,549 +1,56 @@ -import { Article, Book, Movie, Series, Example, Template } from './classes' +import { Source, Example, Template, MORPHEMES } from './classes' +import { buildDict, buildList } from './helpers'; -export const examples = [ - Example.parse('Myślę, że {pronoun_n} jest bardzo mił{adjective_n}.|Myślę, że {pronoun_n} są bardzo mi{adjective_ll}{adjective_n}'), - Example.parse('Tęsknię za {pronoun_g} śmiechem.'), - Example.parse('Napiszę do {pronoun_g_acc} później'), - Example.parse('Powiedział{verb_middle}m {pronoun_d}, że {pronoun_a} lubię.|Powiedzi{verb_middle}śmy {pronoun_d}, że {pronoun_a} lubimy.'), - Example.parse('Chciał{verb_end_inter}bym pójść do kina.|Chci{verb_middle}byśmy pójść do kina.'), - Example.parse('Czy będziesz grał{verb_end_about} z nami?|Czy będziecie gra{verb_end_about} z nami?'), - Example.parse('Kiedy będziesz m{verb_o}gł{verb_end_about} się z nami spotkać?|Kiedy będziecie m{verb_o}g{verb_end_about} się z nami spotkać?'), - Example.parse('Gdy był{verb_middle}m w domu, zacz{verb_nasal}ł{verb_middle}m gotować.|Gdy by{verb_end_inter}śmy w domu, zacz{verb_nasal}śmy gotować.'), - Example.parse('Dostał{verb_middle}m wyniki egzaminu i jestem z nich zadowolon{adjective_n}.|Dosta{verb_end_inter}śmy wyniki egzaminu i jesteśmy z nich zadowol{adjective_middle}n{adjective_n}.'), - Example.parse('Po{verb_go}{verb_middle}m z {pronoun_i} do szkoły.|Po{verb_go}śmy z {pronoun_i} do szkoły.'), - Example.parse('Rozmawialiśmy o {pronoun_l} ostatnio.'), - Example.parse('Każd{adjective_n} z nich chciał{verb_end_about} czego innego.|Wszys{pronoun_all} z nich chci{verb_middle} czego innego.'), -]; +import examplesRaw from '../data/examples.tsv'; +export const examples = buildList(function* () { + for (let e of examplesRaw) { + yield new Example( + Example.parse(e.singular), + Example.parse(e.plural || e.singular), + e.isHonorific, + ); + } +}); -export const examplesHonorific = [ - Example.parse('To miło, że nas {honorific} odwiedza.|To miło, że nas {honorific} odwiedzają.'), - Example.parse('Czy będzie {honorific} kontynuować subskrypcję?|Czy będą {honorific} kontynuować subskrypcję?'), -]; +import sourcesRaw from '../data/sources.tsv'; +export const sources = buildDict(function* () { + for (let s of sourcesRaw) { + yield [ + s.key, + new Source( + s.type, + s.author, + s.title, + s.extra, + s.year, + s.fragments ? s.fragments.replace(/\|/g, '\n').split('@') : [], + s.comment, + s.link, + ) + ]; + } +}); -const zapachKosmosu = new Book( - 'Ginny Nawrocka', - 'Cierpki zapach kosmosu', - 'w: „Tęczowe i fantastyczne”', - 2020, - ['Ja, Gosia, Ewa i Jacek. Gosia była najmłodsza... Jest najmłodsza. Jacek jest z tego samego roku, co ja, ale onu urodziłu się na początku, a ja pod koniec. A Ewa jest pięć lat starszy ode mnie.'], - 'oprócz tego także postaci niebinarne używające męskich i żeńskich form', -); +import templatesRaw from '../data/templates.tsv'; +export const templates = buildDict(function* () { + for (let t of templatesRaw) { + const aliases = t.key.split(',') -const confirmatio = new Book( - 'Bartek Biedrzycki', - 'Confirmatio Vir Llamki, albo o wizycie Nieziemca Macka Simma na Starej Ziemi', - 'w: „Dzieje się”', - 2018, - ['Usiedli. Vir wskoczyło na łóżko i zainstalowało się tam po turecku, Simm przysiadł na obrotowym krześle przy biurku.\n– Jak dorosnę, to chcę polecieć na Marsa.\n– Przecież już byłoś u mnie dwa razy.\n– Ale ja chcę na stałe'], -); - -const perfekcyjna = new Book( - 'Jacek Dukaj', - 'Perfekcyjna niedoskonałość', - '', - 2003, - ['– Do Creytona powinniśmy dotrzeć w ciągu trzydziestu ośmiu k-godzin. Nawet zważywszy na utratę krwi pana i stahs McPherson– \n– Chciałuś powiedzieć – przerwał nu Zamoyski – powinniśmy byli tam dotrzeć. Samu twierdzisz, że po odcięciu od Plateau nie wiesz nawet, w którą stronę lecimy. Swoją drogą, zastanawiam się, jak to możliwe. Przecież chyba pamiętasz, gdzie celowałuś.'], -); - -const silaNizsza = new Book( - 'Marta Kisiel', - 'Siła niższa', - '', - 2016, - ['– Ja co prawda słabo znam gościa - odparł po kilku chwilach - ale tak sobie myślę, że on to nie lubi nikogo. \n– Nawet swojego człowieka? Przecież jest aniołem stróżem. Ja swoich zawsze lubiłom. Jak miałobym im stróżować bez lubienia?'], -); - -const smoczaPerla = new Book( - 'Yoon Ha Lee', - 'Smocza perła', - 'tłumaczenie: Agnieszka Fulińska i Aleksandra Klęczar', - 2019, - ['– Idzie ci lepiej niż zwykle – oznajmiło w końcu Sujin. Nie zauważyłam, że pogrążone w lekturze książki dotyczącej chemii zwracało na nas w ogóle uwagę.'], -); - -export const templates = { - on: new Template('Rodzaj męski', { - 'pronoun_n': 'on', - 'pronoun_g': 'jego', - 'pronoun_g_acc': 'niego', - 'pronoun_d': 'mu', - 'pronoun_a': 'go', - 'pronoun_i': 'nim', - 'pronoun_l': 'nim', - 'pronoun_all': null, - 'adjective_n': 'y', - 'adjective_ll': null, - 'adjective_middle': null, - 'verb_end_inter': '', - 'verb_end_about': '', - 'verb_middle': 'e', - 'verb_nasal': 'ą', - 'verb_go': 'szedł', - 'verb_o': 'ó', - 'honorific': 'pan', - }, false, false, [ - confirmatio, - perfekcyjna, - silaNizsza, - zapachKosmosu, - new Book('Ursula K. Le Guin', 'Lewa ręka ciemności', 'tłum. Lech Jęczmyk', 1987, [], 'postać niebinarna używająca form męskich'), - ], ['on/jego']), - ona: new Template('Rodzaj żeński', { - 'pronoun_n': 'ona', - 'pronoun_g': 'jej', - 'pronoun_g_acc': 'niej', - 'pronoun_d': 'jej', - 'pronoun_a': 'ją', - 'pronoun_i': 'nią', - 'pronoun_l': 'niej', - 'pronoun_all': null, - 'adjective_n': 'a', - 'adjective_ll': null, - 'adjective_middle': null, - 'verb_end_inter': 'a', - 'verb_end_about': 'a', - 'verb_middle': 'a', - 'verb_nasal': 'ę', - 'verb_go': 'szł', - 'verb_o': 'o', - 'honorific': 'pani', - }, false, false, [ - smoczaPerla, - zapachKosmosu, - new Book('Ann Leckie', 'Zabójcza sprawiedliwość', 'tłum. Danuta Górska', 2015, [], 'postać niebinarna używająca form żeńskich'), - new Book('Ann Leckie', 'Zabójczy miecz', 'tłum. Danuta Górska', 2016, [], 'postać niebinarna używająca form żeńskich'), - new Book('Ursula K. Le Guin', 'Królowa Zimy', 'w: „Wszystkie strony świata”', 'tłum. Lech Jęczmyk', 1980, 'postać niebinarna używająca form żeńskich'), - ], ['ona/jej']), - 'ono/jego': new Template('Rodzaj nijaki', { - 'pronoun_n': 'ono', - 'pronoun_g': 'jego', - 'pronoun_g_acc': 'niego', - 'pronoun_d': 'mu', - 'pronoun_a': 'je', - 'pronoun_i': 'nim', - 'pronoun_l': 'nim', - 'pronoun_all': null, - 'adjective_n': 'e', - 'adjective_ll': null, - 'adjective_middle': null, - 'verb_end_inter': 'o', - 'verb_end_about': 'o', - 'verb_middle': 'o', - 'verb_nasal': 'ę', - 'verb_go': 'szł', - 'verb_o': 'o', - 'honorific': 'pań', - }, false, false, [ - new Article( - 'Małgorzata Goślińska', - 'Zrobimy z ciebie mężczyznę', - 'w: „Magazyn TVN24”', - 2019, - [ - 'Milo nie miało myśli erotycznych. Tak boleśnie myślało o własnym ciele, że nie potrafiło myśleć o nim w towarzystwie innych ciał. Ale żeby zmienić ciało, musiało odpowiedzieć u psychologa na pytania: Od kiedy się masturbujesz? Jak to robisz? O czym wtedy myślisz? W jakiej pozycji uprawiasz seks? Jak się całujesz? Milo było rozdarte, nie lubiło kłamać.', - 'Przez jeden dzień Milo się cieszyło. Ale to był krok w bok. Milo nie posunęło się do przodu w kierunku tranzycji prawnej ani medycznej. Uznali imię, nie tożsamość. W dowodzie pozostała literka M. Milo było osobą niebinarną, ale z dwojga złego wolałoby literkę K. Było rozdarte. Nie lubiło swojego męskiego ciała, dlatego postanowiło przejść tranzycję. Ale nie po to wyrwało się z klatki chłopca, żeby wejść w kolejną klatkę. Chciało być sobą.', - ], - 'Milo - historia życia i śmierci', - 'https://tvn24.pl/magazyn-tvn24/zrobimy-z-ciebie-mezczyzne,242,4189' - ), - new Series( - '', - 'Star Trek: Następne Pokolenie, sezon 5 odcinek 17 „Wyklęci”/„Presja społeczna”', - 'tłumaczenie: Kamil Borek', - 1991, - ['– Radzisz sobie, jakbyś dorastało w wahadłowcu.\n' + - '– Dorastałom. Moi rodzice to piloci. Latałom z nimi, zanim umiałom chodzić.'], - '', - 'https://www.netflix.com/watch/70177979', - ), - confirmatio, - new Book( - 'Anna Kańtoch', - 'Niepełnia', - '', - 2017, - ['Ale Sło­neczko oczy­wi­ście chciało, i to bar­dzo. Chciało i bało się jed­no­cze­śnie, ponie­waż wie­rzyło matce. Świat na zewnątrz był piękny, ale też okrutny – zwłasz­cza dla takich jak ono. Bo Sło­neczko, choć nikt ni­gdy nie powie­dział mu tego wyraź­nie, wie­działo, że różni się od zwy­czaj­nych dzieci, a ludzie nie lubią tego, co inne.'], - ), - new Book( - 'Marta Kisiel', - 'Dożywocie', - '', - 2010, - ['Starało się zrobić wrażenie bardzo zasmuconego i stanowczego jednocześnie, aczkolwiek nie wzięło pod uwagę faktu, że wygląd trochę wchodzi mu w paradę. Owszem, peleryna świetnie maskowała skrzydła, ale poza tym była zdecydowanie zbyt wielka na jedno małe Licho.'], - ), - new Book( - 'Marta Kisiel', - 'Małe Licho i tajemnica Niebożątka', - '', - 2018, - ), - new Book( - 'Marta Kisiel', - 'Małe Licho i anioł z kamienia', - '', - 2019, - ), - silaNizsza, - new Book( - 'Maja Lidia Kossakowska', - 'Siewca wiatru', - '', - 2004, - ), - smoczaPerla, - new Book( - 'Stanisław Lem', - 'Maska', - 'w zbiorze „Maska”', - 1976, - ), - new Book( - 'Anna Łagan', - 'Ekonomia to dolina niesamowitości', - 'w: „Skafander i melonik”', - 2018, - ['– Oczywiście – zgodziło się Manu. – Właśnie przeprowadziłom analizę skutków obniżenia moich cen i mimo że widzę wiele niedogodności i nieprzyjemnych konsekwencji, rozumiem, że jak p. powiedział, jest to na ten moment najlepsze rozwiązanie problemu. Zgadzam się na zmianę umowy i obniżenie kosztów… Oto cena, którą p. proponuję.'], - ), - new Book( - 'Ian McDonald', - 'Rzeka bogów', - 'tłumaczenie: Wojciech Próchniewicz', - 2010, - ['Poznali się, ślub, sześć miesięcy później - ja. I zanim zapytasz: nie. Byłom jedynakiem. Moi rodzice byli atrakcją na Chowpatty Beatch. Brali mnie na wszystkie imprezy, byłom prawdziwą ozdobą.'], - ), - new Book( - 'Ada Palmer', - 'Do błyskawicy podobne', - 'tłumaczenie: Michał Jakuszewski', - 2019, - ), - new Book( - 'Ada Palmer', - 'Siedem kapitulacji', - 'tłumaczenie: Michał Jakuszewski', - 2019, - ), - new Book( - 'Joanna Krystyna Radosz', - 'Listopad bez snów', - 'w: „Tęczowe i fantastyczne”', - 2020, - ['Gdy je otwieram, rozlega się zgrzyt zamka w drzwiach, przedpokój zalewa fala światła, a z głębi mieszkania dobiega lekko bełkotliwy głos Mady:\n– ...a ja byłom jak: kupiliśmy trzyosobowy materac, a ty gardzisz!'] - ), - new Book( - 'Aleksandra Stanisz', - 'Ofiara', - 'w: „Umieranie to parszywa robota”', - 2019, - ), - new Book( - 'A. Szydlik', - 'Jak uratować kotka z nawiedzonego domu', - 'w: „Tęczowe i fantastyczne”', - 2020, - ['Znalazłom ten portfel na przystanku, wciśnięty między krzesełka. Podniosłom go, trochę bezmyślnie, trochę dla zabicia czasu. Autobus miał przyjechać za kwadrans. Mogłom co prawda iść piechota ̨, ale było ciemno, zimno i lało, a ja byłom bardzo zmęczone. Usiadłom więc na plastikowym krzesełku i otworzyłom portfel.'], - ), - ], ['ono']), - 'ono/jej': new Template('Rodzaj nijaki z formami żeńskimi zamiast męskich', { - 'pronoun_n': 'ono', - 'pronoun_g': 'jej', - 'pronoun_g_acc': 'niej', - 'pronoun_d': 'jej', - 'pronoun_a': 'je', - 'pronoun_i': 'nią', - 'pronoun_l': 'niej', - 'pronoun_all': null, - 'adjective_n': 'e', - 'adjective_ll': null, - 'adjective_middle': null, - 'verb_end_inter': 'o', - 'verb_end_about': 'o', - 'verb_middle': 'o', - 'verb_nasal': 'ę', - 'verb_go': 'szł', - 'verb_o': 'o', - 'honorific': 'pań', - }, false, false, [], []), - 'ono/jejgo': new Template('Rodzaj nijaki', { - 'pronoun_n': 'ono', - 'pronoun_g': 'jejgo', - 'pronoun_g_acc': 'niejgo', - 'pronoun_d': 'jejmu', - 'pronoun_a': 'jejgo', - 'pronoun_i': 'niejnim', - 'pronoun_l': 'niejmu', - 'pronoun_all': null, - 'adjective_n': 'e', - 'adjective_ll': null, - 'adjective_middle': null, - 'verb_end_inter': 'o', - 'verb_end_about': 'o', - 'verb_middle': 'o', - 'verb_nasal': 'ę', - 'verb_go': 'szł', - 'verb_o': 'o', - 'honorific': 'pań', - }, false, false, [], []), - 'ono/jeno': new Template('Neorodzaj gramatyczny, z elementami rodzaju nijakiego i dukaizmów', { - 'pronoun_n': 'ono', - 'pronoun_g': 'jeno', - 'pronoun_g_acc': 'nieno', - 'pronoun_d': 'nu', - 'pronoun_a': 'no', - 'pronoun_i': 'niemu', - 'pronoun_l': 'niem', - 'pronoun_all': null, - 'adjective_n': 'e', - 'adjective_ll': null, - 'adjective_middle': null, - 'verb_end_inter': 'o', - 'verb_end_about': 'u', - 'verb_middle': 'o', - 'verb_nasal': 'ę', - 'verb_go': 'szł', - 'verb_o': 'o', - 'honorific': 'pań', - }, false, false, [], []), - 'ono/jenu': new Template('Rodzaj nijaki z dukaizmami zamiast form męskich', { - 'pronoun_n': 'ono', - 'pronoun_g': 'jenu', - 'pronoun_g_acc': 'nienu', - 'pronoun_d': 'nu', - 'pronoun_a': 'nu', - 'pronoun_i': 'num', - 'pronoun_l': 'num', - 'pronoun_all': null, - 'adjective_n': 'e', - 'adjective_ll': null, - 'adjective_middle': null, - 'verb_end_inter': 'o', - 'verb_end_about': 'o', - 'verb_middle': 'o', - 'verb_nasal': 'ę', - 'verb_go': 'szł', - 'verb_o': 'o', - 'honorific': 'pań', - }, false, false, [], []), - onu: new Template('Rodzaj postpłciowy, dukaizmy', { - 'pronoun_n': 'onu', - 'pronoun_g': 'jenu', - 'pronoun_g_acc': 'nienu', - 'pronoun_d': 'nu', - 'pronoun_a': 'nu', - 'pronoun_i': 'num', - 'pronoun_l': 'num', - 'pronoun_all': null, - 'adjective_n': 'u', - 'adjective_ll': null, - 'adjective_middle': null, - 'verb_end_inter': 'u', - 'verb_end_about': 'u', - 'verb_middle': 'u', - 'verb_nasal': 'ę', - 'verb_go': 'szł', - 'verb_o': 'o', - 'honorific': 'panu', - }, false, false, [ - new Article( - 'Rozmowa Ewy Tomaszewicz z Loë Fjorsigviss i Magdaleną Stonawską', - 'Tęcza w fandomie', - 'w: „Replika” #83', - 2020, - ['[Loë Fjorsigviss] Od kiedy pamiętam, uwierało mnie mówienie o sobie jako o dziewczynie czy kobiecie. Nie utożsamiałum się z tym. Zorientowałum się, że mogę nie być kobietą, nie ze względu na dysforię płciową, tylko ze względu na euforię. Kiedy dopuściłum do siebie myśl, że są inne opcje, zaczęłum esksperymentować i poprosiłum parę znajomych osób, żeby spróbowały tak się do mnie zwracać. Gdy zaczęły tak do mnie mówić, poczułum ogromną ulgę. Kiedy mówię o sobie, ta inna forma przychodzi mi z trudem, ciągle samu mam z nią problem, ale to uczucie, kiedy inni mówią o mnie w ten sposób, powiedziało mi, że to może być faktycznie dobry kierunek, że nie jestem dziewczyną ani chłopakiem, ale kimś poza tym. I to było naprawdę wspaniałe i wyzwalające uczucie.'], - '', - 'https://replika-online.pl/spis-tresci-83/', - ), - perfekcyjna, - zapachKosmosu, - new Book( - 'Artur Nowrot', - 'Smocze dziecko', - 'w: „Tęczowe i fantastyczne”', - 2020, - ['Yare robiłu jednak, co w jenu mocy, by zadowolić rodziców i starszyznę, wykonywać bez zwłoki polecenia, nie zaniedbywać obowiązków i za bardzo nie narzekać.'], - 'przymiotniki w formie nijakiej', // TODO separate? - ), - new Book( - 'Kelly Robson', - 'Interwencja', - 'w: „Nowa Fantastyka” 5/2020; tłumaczenie: Paweł Dembowski', - 2020, - ['Émeraude odpięłu się i pokazału palec lekarce. Przełączału się między dwoma trybami – wszystko albo nic. Kilka miesięcy temu doznału kontuzji, naciągając mocno ścięgno zginacza.'], - ), - ], ['onu/jenu'], 'Formy te zostały stworzone przez Jacka Dukaja do książki „Perfekcyjna niedoskonałość”. Używają jej tam istoty post-ludzkie (phoebe), które nie mają określonej płci. Od nazwiska autora te formy gramatyczne są nazywane „dukaizmami”.'), - 'onæ': new Template('Formy z „ae” lub ligaturą „æ”', { - 'pronoun_n': 'onæ', - 'pronoun_g': 'jæ', - 'pronoun_g_acc': 'næ', - 'pronoun_d': 'jæ', - 'pronoun_a': 'jæ', - 'pronoun_i': 'næm', - 'pronoun_l': 'næm', - 'pronoun_all': null, - 'adjective_n': 'æ', - 'adjective_ll': null, - 'adjective_middle': null, - 'verb_end_inter': 'æ', - 'verb_end_about': 'æ', - 'verb_middle': 'æ', - 'verb_nasal': 'ą', - 'verb_go': 'szł', - 'verb_o': 'o', - 'honorific': 'panæ', - }, false, false, [], ['onæ/jæ']), - oni: new Template('Formy męskoosobowe liczby mnogiej', { - 'pronoun_n': 'oni', - 'pronoun_g': 'ich', - 'pronoun_g_acc': 'nich', - 'pronoun_d': 'im', - 'pronoun_a': 'ich', - 'pronoun_i': 'nimi', - 'pronoun_l': 'nich', - 'pronoun_all': 'cy', - 'adjective_n': 'i', - 'adjective_ll': 'l', - 'adjective_middle': 'e', - 'verb_end_inter': 'li', - 'verb_end_about': 'li', - 'verb_middle': 'eli', - 'verb_nasal': 'ęli', - 'verb_go': 'szli', - 'verb_o': 'o', - 'honorific': 'państwo', - }, true, true, [ - new Book('Karolina Fedyk', 'Skrzydła', '', 2019), - new Book('Weronika Mamuna', 'Obca, która była', 'w: „Tęczowe i fantastyczne”', 2020), - new Book('Agnieszka Żak', 'Dorastanie w czasach cyborgizacji', 'w: „Tęczowe i fantastyczne”', 2020), - ], ['oni/ich']), - one: new Template('Formy niemęskoosobowe liczby mnogiej', { - 'pronoun_n': 'one', - 'pronoun_g': 'ich', - 'pronoun_g_acc': 'nich', - 'pronoun_d': 'im', - 'pronoun_a': 'je', - 'pronoun_i': 'nimi', - 'pronoun_l': 'nich', - 'pronoun_all': 'tkie', - 'adjective_n': 'e', - 'adjective_ll': 'ł', - 'adjective_middle': 'o', - 'verb_end_inter': 'ły', - 'verb_end_about': 'ły', - 'verb_middle': 'ały', - 'verb_nasal': 'ęły', - 'verb_go': 'szły', - 'verb_o': 'o', - 'honorific': 'państwo', - }, true, true, [ - new Book('Artur Nowrot', 'Smocze dziecko', 'w: „Tęczowe i fantastyczne”', 2020), - ], ['one/ich']), - onx: new Template('Formy z iksem', { - 'pronoun_n': 'onx', - 'pronoun_g': 'jex', - 'pronoun_g_acc': 'nix', - 'pronoun_d': 'jex', - 'pronoun_a': 'jex', - 'pronoun_i': 'nix', - 'pronoun_l': 'nix', - 'pronoun_all': null, - 'adjective_n': 'x', - 'adjective_ll': null, - 'adjective_middle': null, - 'verb_end_inter': 'x', - 'verb_end_about': 'x', - 'verb_middle': 'x', - 'verb_nasal': 'ę', - 'verb_go': 'szł', - 'verb_o': 'o', - 'honorific': 'panx', - }, false, false, [], ['onx/jex']), - on_: new Template('Formy z podkreślnikiem', { - 'pronoun_n': 'on_', - 'pronoun_g': 'je_', - 'pronoun_g_acc': 'ni_', - 'pronoun_d': 'je_', - 'pronoun_a': 'je_', - 'pronoun_i': 'ni_', - 'pronoun_l': 'ni_', - 'pronoun_all': null, - 'adjective_n': '_', - 'adjective_ll': null, - 'adjective_middle': null, - 'verb_end_inter': '_', - 'verb_end_about': '_', - 'verb_middle': '_', - 'verb_nasal': 'ę', - 'verb_go': 'szł', - 'verb_o': 'o', - 'honorific': 'pan_', - }, false, false, [ - new Book('R.S. Benedict', 'Moje angielskie imię', 'w: „Nowa Fantastyka” 3/2019', 2019), - ], ['on_/je_']), - onø: new Template('Formy z samogłoską nosową', { - 'pronoun_n': 'onø', - 'pronoun_g': 'jenø', - 'pronoun_g_acc': 'nienø', - 'pronoun_d': 'nø', - 'pronoun_a': 'nø', - 'pronoun_i': 'nøm', - 'pronoun_l': 'nøm', - 'pronoun_all': null, - 'adjective_n': 'ø', - 'adjective_ll': null, - 'adjective_middle': null, - 'verb_end_inter': 'ø', - 'verb_end_about': 'ø', - 'verb_middle': 'ø', - 'verb_nasal': 'ę', - 'verb_go': 'szł', - 'verb_o': 'o', - 'honorific': 'panø', - }, false, false, [], ['onø/jeø'], 'Formy te używają samogłoski nosowej „ø”, która występowała w pisowni polszczyzny od XII do XV wieku, i została zastąpiona przez „ą” i „ę”. Miała zatem zastosowanie dosyć zbliżone do obecnego w powyższych formach. '), - vono: new Template('Rodzaj nijaki z neozaimkami vono/viego', { - 'pronoun_n': 'vono', - 'pronoun_g': 'viego', - 'pronoun_g_acc': 'viego', - 'pronoun_d': 'vu', - 'pronoun_a': 'vo', - 'pronoun_i': 'vim', - 'pronoun_l': 'vim', - 'pronoun_all': null, - 'adjective_n': 'e', - 'adjective_ll': null, - 'adjective_middle': null, - 'verb_end_inter': 'o', - 'verb_end_about': 'o', - 'verb_middle': 'o', - 'verb_nasal': 'ę', - 'verb_go': 'szł', - 'verb_o': 'o', - 'honorific': 'pań', - }, false, false, [ - new Book( - 'Greg Egan', - 'Stan wyczerpania', - 'tłum. Paweł Wieczorek', - 2003, - ['Kuwale było tylko pół pokolenia młodsze ode mnie i prawdopodobnie mieliśmy wiele podobnych poglądów na świat, vono jednak nieco ekstremalniej wierzyło we wszystko to, w co wierzyliśmy my. Nauka i technologia zdawały się dawać vu wszystko, czego chciało.'], - ), - ], ['vono/viego'], 'Forma została stworzona przez tłumacza Pawła Wieczorka dla oddania stworzonych przez Grega Egana form ve/vir.'), -}; - -export const otherSources = [ - // neozaimki - new Book( - 'Greg Egan', - 'Diaspora', - 'tłumaczenie: Michał Jakuszewski', - 2015, - ['Yatima przyjrzało się otaczającym polis gwiazdom. Wszystkie emitowały światło o widmie przesuniętym w wyniku efektu Dopplera, tworząc na niebie nieruchome koncentryczne fale koloru - od ekspansji po konwergencję. Ve zastanawiało się, jak powinni się zachować, gdy wreszcie dościgną uciekających.'], - 'rodzaj nijaki z neozaimkami ve/vir', - ), - - // genderfluid - new Book('Rick Riordan', 'Młot Thora', '', 2016, [], 'postać genderfluid o zmiennych zaimkach'), - new Book('Rick Riordan', 'Statek umarłych', '', 2017, [], 'postać genderfluid o zmiennych zaimkach'), - - // inne - new Book('Marta Magdalena Lasik', 'Zwierciadło w dziurce od klucza', 'w: „Skafander i melonik”', 2018), -]; + yield [ + aliases[0], + new Template( + t.description, + buildDict(function* () { + for (let morpheme of MORPHEMES) { + yield [morpheme, t[morpheme]]; + } + }), + t.plural, + t.pluralHonorific, + t.sources ? t.sources.split(',') : [], + aliases.slice(1), + t.history, + ) + ]; + } +}) diff --git a/src/helpers.js b/src/helpers.js new file mode 100644 index 00000000..6a4f6771 --- /dev/null +++ b/src/helpers.js @@ -0,0 +1,15 @@ +export const buildDict = (fn, ...args) => { + const dict = {}; + for (let [key, value] of fn(...args)) { + dict[key] = value; + } + return dict; +} + +export const buildList = (fn, ...args) => { + const list = []; + for (let value of fn(...args)) { + list.push(value); + } + return list; +} diff --git a/yarn.lock b/yarn.lock index d17a3999..a823e093 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2837,6 +2837,14 @@ csso@^4.0.2: dependencies: css-tree "1.0.0-alpha.39" +csv-loader@^3.0.3: + version "3.0.3" + resolved "https://registry.yarnpkg.com/csv-loader/-/csv-loader-3.0.3.tgz#eba02221a6f3ceb1447140d3bae26f4032b4af52" + integrity sha512-JMr83kH2sOFKbRO95fAQV1fLEc1Chx1osJpU7Gd5ZQhmXrsQN479P08sDuyZoO5LMiJ8IsR72Xtl/nSA7rh4Lw== + dependencies: + loader-utils "^2.0.0" + papaparse "^5.2.0" + cuint@^0.2.2: version "0.2.2" resolved "https://registry.yarnpkg.com/cuint/-/cuint-0.2.2.tgz#408086d409550c2631155619e9fa7bcadc3b991b" @@ -5585,6 +5593,11 @@ pako@~1.0.5: resolved "https://registry.yarnpkg.com/pako/-/pako-1.0.11.tgz#6c9599d340d54dfd3946380252a35705a6b992bf" integrity sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw== +papaparse@^5.2.0: + version "5.2.0" + resolved "https://registry.yarnpkg.com/papaparse/-/papaparse-5.2.0.tgz#97976a1b135c46612773029153dc64995caa3b7b" + integrity sha512-ylq1wgUSnagU+MKQtNeVqrPhZuMYBvOSL00DHycFTCxownF95gpLAk1HiHdUW77N8yxRq1qHXLdlIPyBSG9NSA== + parallel-transform@^1.1.0: version "1.2.0" resolved "https://registry.yarnpkg.com/parallel-transform/-/parallel-transform-1.2.0.tgz#9049ca37d6cb2182c3b1d2c720be94d14a5814fc"