diff --git a/components/Avoiding.vue b/components/Avoiding.vue new file mode 100644 index 00000000..40b3dc12 --- /dev/null +++ b/components/Avoiding.vue @@ -0,0 +1,40 @@ + + + diff --git a/components/Header.vue b/components/Header.vue index ef4c6714..e8552031 100644 --- a/components/Header.vue +++ b/components/Header.vue @@ -137,12 +137,18 @@ }); if (this.config.pronouns.enabled) { + const extra = ['all', '/' + this.config.pronouns.any] + if (this.config.pronouns.null && this.config.pronouns.null.routes) { + for (let route of this.config.pronouns.null.routes) { + extra.push('/' + route); + } + } links.push({ link: '/' + this.config.pronouns.route, icon: 'tags', text: this.$t('pronouns.header'), textLong: this.$t('pronouns.headerLong').replace( /(<([^>]+)>)/ig, ''), - extra: ['all', '/' + this.config.pronouns.any, this.config.pronouns.avoiding ? '/' + this.config.pronouns.avoiding : null], + extra: extra, }); } diff --git a/components/LinkedText.vue b/components/LinkedText.vue index 24737f7b..f8605a19 100644 --- a/components/LinkedText.vue +++ b/components/LinkedText.vue @@ -7,8 +7,13 @@ props: { text: { required: true }, noicons: { type: Boolean }, + escape: { type: Boolean }, }, render(h) { + let text = this.text; + if (this.escape) { + text = text.replace(/[&<>"]/g, tag => escapeChars[tag] || tag); + } if (!this.text) { return h('span'); } diff --git a/components/Profile.vue b/components/Profile.vue index 894ffd3a..6b71bc5a 100644 --- a/components/Profile.vue +++ b/components/Profile.vue @@ -138,7 +138,9 @@ link = link.toLowerCase(); } - if (link === this.config.pronouns.any || link === this.config.pronouns.avoiding) { + if (link === this.config.pronouns.any + || (this.config.pronouns.null && this.config.pronouns.null.routes && this.config.pronouns.null.routes.includes(link)) + ) { pronounOpinions.push({ link, pronoun: link, diff --git a/locale/de/config.suml b/locale/de/config.suml index eae7ee5c..5cb84775 100644 --- a/locale/de/config.suml +++ b/locale/de/config.suml @@ -16,7 +16,6 @@ pronouns: null: false emoji: false slashes: ['pronoun_n', 'possessive', 'pronoun_d', 'pronoun_a'] - avoiding: false others: 'Andere Pronomen' pronunciation: diff --git a/locale/en/config.suml b/locale/en/config.suml index 3b79c41e..3fd02e80 100644 --- a/locale/en/config.suml +++ b/locale/en/config.suml @@ -17,12 +17,14 @@ pronouns: Some like when others alternate between those forms when talking about them. examples: ['he&she', 'he&they', 'she&they'] null: - description: 'No pronouns / null pronouns / pronounless / nameself' + description: > + {/avoiding=Avoiding gendered forms} / {/no-pronouns=no pronouns} / {/null=null pronouns} / + {/pronounless=pronounless} / {/nullpronominal=nullpronominal} / {/nameself=nameself} history: > Some people prefer not using any pronouns, instead being referred by name, initial, - omitting pronouns with passive voice, or restructuring the sentence. See: - {/avoiding=Avoiding gendered forms} & - {https://lgbta.wikia.org/wiki/Nullpronominal=Nullpronominal}. + omitting pronouns with passive voice, or restructuring the sentence. + See: {https://twitter.com/lypomania/status/1290274971642544128=lypomania's guide}, + {https://lgbta.wikia.org/wiki/Nullpronominal=Nullpronominal on LGBTA Wiki} morphemes: pronoun_subject: '#' pronoun_object: '#' @@ -31,6 +33,39 @@ pronouns: reflexive: '#self' examples: [':Andrea', ':S'] template: 'Open one of the examples and simply replace the name/initial in the URL with your own.' + routes: ['avoiding', 'no-pronouns', 'null', 'pronounless', 'nullpronominal', 'nameself'] + ideas: + - + header: 'Use names or initials instead of pronouns' + examples: + - ['I talked to him yesterday', 'I talked to {/:Sky=Sky} yesterday'] + - ['She is really beautiful', '{/:Soph=Soph} is really beautiful'] + - + - 'Her graduation starts soon' + - '{/:J=J}''s graduation starts soon' + - + header: 'Passive voice' + examples: + - ['He answered the phone', 'The phone was answered'] + - + - 'Wen takes good care of her cat' + - 'Wen''s cat is well cared for' + - + header: 'Rephrasing the sentence (circumlocution)' + examples: + - ['Lior did it all by himself', 'Lior did it all without any help'] + - ['Gael talks in his sleep', 'Gael talks while sleeping'] + - + header: 'Replacing a pronoun with a descriptive noun or phrase' + examples: + - ['She landed the plane safely', 'The pilot landed the plane safely'] + - ['This is Lea, she is into painting', 'This is Lea. My friend is into painting'] + - ['She argues that…', 'The person who started this discussion argues that…'] + - + header: 'Dropping pronouns' + examples: + - ['Did you buy Tex her gift?', 'Did you buy Tex a gift?'] + - ['Yes, I bought it for her. I will give it to her tomorrow.', 'Yes, I bought it. I will give it tomorrow.'] emoji: description: 'Emojiself pronouns' history: '{https://lgbta.wikia.org/wiki/Emojiself_Pronouns=Emojiself} pronouns are intended for online communication and not supposed to be pronounced.' @@ -43,7 +78,6 @@ pronouns: examples: ['💫', '💙'] template: 'Open one of the examples and simply replace the emoji in the URL with your own.' slashes: true - avoiding: 'avoiding' others: 'Other pronouns' pronunciation: diff --git a/locale/en/translations.suml b/locale/en/translations.suml index 50ce5656..6cca147c 100644 --- a/locale/en/translations.suml +++ b/locale/en/translations.suml @@ -82,45 +82,6 @@ pronouns: othersRaw: 'other' or: 'or' grammarTable: 'Table' - avoiding: - header: 'Avoiding gendered forms' - description: > - Some people prefer not using any pronouns, instead being referred by name, initial, - omitting pronouns with passive voice, or restructuring the sentence. - See: {https://twitter.com/lypomania/status/1290274971642544128=@lypomania's guide}, - {https://lgbta.wikia.org/wiki/Nullpronominal=Nullpronominal} - ideas: - - - header: 'Use names or initials instead of pronouns' - examples: - - ['I talked to him yesterday', 'I talked to {/:Sky=Sky} yesterday'] - - ['She is really beautiful', '{/:Soph=Soph} is really beautiful'] - - - - 'Her graduation starts soon' - - '{/:J=J}''s graduation starts soon' - - - header: 'Passive voice' - examples: - - ['He answered the phone', 'The phone was answered'] - - - - 'Wen takes good care of her cat' - - 'Wen''s cat is well cared for' - - - header: 'Rephrasing the sentence (circumlocution)' - examples: - - ['Lior did it all by himself', 'Lior did it all without any help'] - - ['Gael talks in his sleep', 'Gael talks while sleeping'] - - - header: 'Replacing a pronoun with a descriptive noun or phrase' - examples: - - ['She landed the plane safely', 'The pilot landed the plane safely'] - - ['This is Lea, she is into painting', 'This is Lea. My friend is into painting'] - - ['She argues that…', 'The person who started this discussion argues that…'] - - - header: 'Dropping pronouns' - examples: - - ['Did you buy Tex her gift?', 'Did you buy Tex a gift?'] - - ['Yes, I bought it for her. I will give it to her tomorrow.', 'Yes, I bought it. I will give it tomorrow.'] sources: header: 'Sources' diff --git a/locale/es/config.suml b/locale/es/config.suml index 3a0c840d..adf63bff 100644 --- a/locale/es/config.suml +++ b/locale/es/config.suml @@ -16,7 +16,6 @@ pronouns: null: false emoji: false slashes: false - avoiding: false others: 'Otros pronombres' pronunciation: diff --git a/locale/fr/config.suml b/locale/fr/config.suml index c18a4dee..444d921d 100644 --- a/locale/fr/config.suml +++ b/locale/fr/config.suml @@ -19,7 +19,6 @@ pronouns: null: false emoji: false slashes: true - avoiding: false others: 'Autres pronoms' pronunciation: diff --git a/locale/nl/config.suml b/locale/nl/config.suml index 6121555b..1fe712f3 100644 --- a/locale/nl/config.suml +++ b/locale/nl/config.suml @@ -36,7 +36,6 @@ pronouns: examples: ['💫', '💙'] template: 'Open een van de voorbeelden en vervang de emoji in de URL met jouw eigen emoji.' slashes: true - avoiding: false others: 'Andere voornaamwoorden' threeForms: true diff --git a/locale/no/config.suml b/locale/no/config.suml index 5bb08da0..579c7dff 100644 --- a/locale/no/config.suml +++ b/locale/no/config.suml @@ -18,7 +18,6 @@ pronouns: null: false emoji: false slashes: true - avoiding: false others: 'Andre pronomen' pronunciation: diff --git a/locale/no/translations.suml b/locale/no/translations.suml index d3b9e9ae..ce19e62f 100644 --- a/locale/no/translations.suml +++ b/locale/no/translations.suml @@ -79,7 +79,6 @@ pronouns: othersRaw: 'andre' or: 'eller' grammarTable: 'Tabell' - avoiding: false sources: header: 'Kilder' diff --git a/locale/pl/config.suml b/locale/pl/config.suml index 05410fae..fadabd95 100644 --- a/locale/pl/config.suml +++ b/locale/pl/config.suml @@ -46,8 +46,100 @@ pronouns: honorific: '#' examples: ['💫', '💙', '🐿'] template: 'Otwórz dowolny z przykładów i podmień emoji w URLu na swoje.' - null: false - avoiding: 'unikanie' + null: + description: '{/unikanie=Unikanie form nacechowanych płciowo}' + history: > + Niektóre osoby niebinarne preferują używanie form unikających precyzowania płci + zamiast tych nacechowanych czy to binarnie czy niebinarnie. + Warto też używać ich mówiąc o osobach, których płci nie znamy. + Choć w silnie zgenderyzowanym języku polskim jest to względnie trudne do zrobienia + i może lekko zmieniać znaczenie zdania, + to jednak wcale nie jest niemożliwe. + routes: ['unikanie'] + ideas: + - + header: 'Zmiana podmiotu zdania' + examples: + - [ 'usłyszałam dzwonek telefonu', 'zadzwonił telefon' ] + - [ 'przestraszyłem się nagłego hałasu', 'jakiś nagły hałas mnie przestraszył' ] + - [ 'powinieneś skoczyć do sklepu', 'trzeba by skoczyć do sklepu' ] + - + header: 'Strona bierna' + examples: + - [ 'zgubił telefon', 'telefon został zgubiony' ] + - [ 'znalazłam telefon', 'telefon został znaleziony' ] + - + header: 'Forma bezosobowa' + examples: + - [ 'pani w urzędzie powiedziała mi', 'w urzędzie powiedziano mi' ] + - [ 'znalazłam telefon', 'znaleziono telefon' ] + - [ 'jak jesteś zalogowany, to możesz edytować wpisy', 'jak się jest zalogowanym, można edytować wpisy' ] + - + header: 'Bezosobowe użycie 3. os. mnogiej' + examples: + - [ 'pani w urzędzie powiedziała mi', 'w urzędzie powiedzieli mi' ] + - + header: 'Podmiot logiczny w celowniku' + examples: + - [ 'przypomniałem sobie', 'przypomniało mi się' ] + - [ 'zmarzłam', 'zrobiło mi się zimno' ] + - [ 'zrobiłem', 'udało mi się zrobić' ] + - + header: 'Bezokolicznikowy czas przyszły' + examples: + - [ 'będę robiła', 'będę robić' ] + - [ 'będę jadł', 'będę jeść' ] + - + header: 'Czas teraźniejszy i przyszły zamiast przeszłego' + examples: + - [ 'gdy robiłem wczoraj obiad, skaleczyłem się nożem', 'robię wczoraj obiad i jak się nie skaleczę' ] + - + header: 'Imiesłowy' + examples: + - [ 'usiadłem na kanapie', 'usiadłszy na kanapie' ] + - [ 'wypiłam herbatę', 'wypiwszy herbatę' ] + - [ 'posprzątałem mieszkanie', 'mieszkanie posprzątane' ] + - + header: 'Unikanie trybu przypuszczającego' + examples: + - [ 'czy mógłbyś mi pomóc?', 'czy możesz mi pomóc?' ] + - [ 'może bym tak pojechała na wakacje?', 'może pojadę na wakacje?' ] + - + header: 'Osobatywy i inne normatywne neutralne rzeczowniki' + examples: + - [ 'zarządca', 'osoba zarządzająca' ] + - [ 'kandydaci i kandydatki', 'osoby kandydujące' ] + - [ 'proszę przyjść do szkoły z mamą lub tatą', 'proszę przyjść do szkoły z opiekunem' ] + - [ 'mama i tata Ani są bardzo mili', 'rodzice Ani są bardzo mili' ] + - [ 'dziennikarze oko.press', 'redakcja oko.press' ] + - [ 'fani Mariny', 'fandom Mariny' ] + - + header: 'Skrócone zaimki' + description: 'Choć historycznie formy te są męskie, to współcześnie są na tyle rzadko używanie, że warto próbować je reinterpretować.' + examples: + - [ 'to dla niego', 'to dlań' ] + - [ 'mieszkam u niej', 'mieszkam uń' ] + - + header: 'Skrócone zaimki + strona bierna' + description: 'Choć historycznie formy te są męskie, to współcześnie są na tyle rzadko używanie, że warto próbować je reinterpretować.' + examples: + - [ 'zrobiła', 'było przezeń zrobione' ] + - + header: 'Staropolska, rzeczownikowa odmiana przymiotników' + description: 'Choć historycznie formy te są męskie, to współcześnie są na tyle rzadko używanie, że warto próbować je reinterpretować.' + examples: + - [ 'jestem szczęśliwa!', 'jestem szczęśliw!' ] + - [ 'czemu jesteś taki zmartwiony?', 'czemu jesteś tak zmartwion?' ] + - + header: 'Skróty' + examples: + - [ 'Katarzyna Nowak', 'K. Nowak' ] + - [ 'Szanowny Pan Białek', 'Sz. P. Białek' ] + - [ 'Towarzyszka Q', 'Tow. Q' ] + - + header: 'Liczebniki zbiorowe' + examples: + - [ 'dziesięciu pracowników', 'dziesięcioro pracujących' ] others: 'Pozostałe formy' pronunciation: diff --git a/locale/pl/translations.suml b/locale/pl/translations.suml index 53d8ba87..2a627b04 100644 --- a/locale/pl/translations.suml +++ b/locale/pl/translations.suml @@ -90,100 +90,6 @@ pronouns: Choć dla wielu osób niezmiernie ważne jest, by używać wobec nich konkretnych zaimków, innym nie przeszkadza zwracanie się w dowolny sposób – o ile wiadomo z kontekstu, że to o nich mowa. options: 'przejrzyj listę możliwości [share]{/zaimki=tutaj}.' - avoiding: - header: 'Unikanie form nacechowanych płciowo' - description: > - Niektóre osoby niebinarne preferują używanie form unikających precyzowania płci - zamiast tych nacechowanych czy to binarnie czy niebinarnie. - Warto też używać ich mówiąc o osobach, których płci nie znamy. - Choć w silnie zgenderyzowanym języku polskim jest to względnie trudne do zrobienia - i może lekko zmieniać znaczenie zdania, - to jednak wcale nie jest niemożliwe. - ideas: - - - header: 'Zmiana podmiotu zdania' - examples: - - ['usłyszałam dzwonek telefonu', 'zadzwonił telefon'] - - ['przestraszyłem się nagłego hałasu', 'jakiś nagły hałas mnie przestraszył'] - - ['powinieneś skoczyć do sklepu', 'trzeba by skoczyć do sklepu'] - - - header: 'Strona bierna' - examples: - - ['zgubił telefon', 'telefon został zgubiony'] - - ['znalazłam telefon', 'telefon został znaleziony'] - - - header: 'Forma bezosobowa' - examples: - - ['pani w urzędzie powiedziała mi', 'w urzędzie powiedziano mi'] - - ['znalazłam telefon', 'znaleziono telefon'] - - ['jak jesteś zalogowany, to możesz edytować wpisy', 'jak się jest zalogowanym, można edytować wpisy'] - - - header: 'Bezosobowe użycie 3. os. mnogiej' - examples: - - ['pani w urzędzie powiedziała mi', 'w urzędzie powiedzieli mi'] - - - header: 'Podmiot logiczny w celowniku' - examples: - - ['przypomniałem sobie', 'przypomniało mi się'] - - ['zmarzłam', 'zrobiło mi się zimno'] - - ['zrobiłem', 'udało mi się zrobić'] - - - header: 'Bezokolicznikowy czas przyszły' - examples: - - ['będę robiła', 'będę robić'] - - ['będę jadł', 'będę jeść'] - - - header: 'Czas teraźniejszy i przyszły zamiast przeszłego' - examples: - - ['gdy robiłem wczoraj obiad, skaleczyłem się nożem', 'robię wczoraj obiad i jak się nie skaleczę'] - - - header: 'Imiesłowy' - examples: - - ['usiadłem na kanapie', 'usiadłszy na kanapie'] - - ['wypiłam herbatę', 'wypiwszy herbatę'] - - ['posprzątałem mieszkanie', 'mieszkanie posprzątane'] - - - header: 'Unikanie trybu przypuszczającego' - examples: - - ['czy mógłbyś mi pomóc?', 'czy możesz mi pomóc?'] - - ['może bym tak pojechała na wakacje?', 'może pojadę na wakacje?'] - - - header: 'Osobatywy i inne normatywne neutralne rzeczowniki' - examples: - - ['zarządca', 'osoba zarządzająca'] - - ['kandydaci i kandydatki', 'osoby kandydujące'] - - ['proszę przyjść do szkoły z mamą lub tatą', 'proszę przyjść do szkoły z opiekunem'] - - ['mama i tata Ani są bardzo mili', 'rodzice Ani są bardzo mili'] - - ['dziennikarze oko.press', 'redakcja oko.press'] - - ['fani Mariny', 'fandom Mariny'] - - - header: 'Skrócone zaimki' - description: 'Choć historycznie formy te są męskie, to współcześnie są na tyle rzadko używanie, że warto próbować je reinterpretować.' - examples: - - ['to dla niego', 'to dlań'] - - ['mieszkam u niej', 'mieszkam uń'] - - - header: 'Skrócone zaimki + strona bierna' - description: 'Choć historycznie formy te są męskie, to współcześnie są na tyle rzadko używanie, że warto próbować je reinterpretować.' - examples: - - ['zrobiła', 'było przezeń zrobione'] - - - header: 'Staropolska, rzeczownikowa odmiana przymiotników' - description: 'Choć historycznie formy te są męskie, to współcześnie są na tyle rzadko używanie, że warto próbować je reinterpretować.' - examples: - - ['jestem szczęśliwa!', 'jestem szczęśliw!'] - - ['czemu jesteś taki zmartwiony?', 'czemu jesteś tak zmartwion?'] - - - header: 'Skróty' - examples: - - ['Katarzyna Nowak', 'K. Nowak'] - - ['Szanowny Pan Białek', 'Sz. P. Białek'] - - ['Towarzyszka Q', 'Tow. Q'] - - - header: 'Liczebniki zbiorowe' - examples: - - ['dziesięciu pracowników', 'dziesięcioro pracujących'] - others: 'Inne formy' othersRaw: 'inne' or: 'lub' diff --git a/locale/pt/config.suml b/locale/pt/config.suml index 6d75f3a3..a47d2457 100644 --- a/locale/pt/config.suml +++ b/locale/pt/config.suml @@ -16,7 +16,6 @@ pronouns: null: false emoji: false slashes: false - avoiding: false others: 'Outros pronomes' threeForms: true diff --git a/locale/yi/config.suml b/locale/yi/config.suml index e254506c..50786b9b 100644 --- a/locale/yi/config.suml +++ b/locale/yi/config.suml @@ -27,7 +27,6 @@ pronouns: template: 'Open one of the examples and simply replace the name/initial in the URL with your own.' emoji: false slashes: true - avoiding: false others: 'Other pronouns' pronunciation: diff --git a/locale/zh/config.suml b/locale/zh/config.suml index 40c7b48a..b6f5fa63 100644 --- a/locale/zh/config.suml +++ b/locale/zh/config.suml @@ -23,7 +23,6 @@ pronouns: examples: ['💫', '💙'] template: '打開一個例句,用自己的表情符號代替位址裏面的表情符號。' slashes: false - avoiding: false others: 'Other pronouns' pronunciation: diff --git a/nuxt.config.js b/nuxt.config.js index b2028db4..8e339fd2 100644 --- a/nuxt.config.js +++ b/nuxt.config.js @@ -266,8 +266,10 @@ export default { if (config.pronouns.enabled) { routes.push({ path: '/' + config.pronouns.any, component: resolve(__dirname, 'routes/any.vue') }); - if (config.pronouns.avoiding) { - routes.push({ path: '/' + config.pronouns.avoiding, component: resolve(__dirname, 'routes/avoiding.vue') }); + if (config.pronouns.null && config.pronouns.null.routes) { + for (let route of config.pronouns.null.routes) { + routes.push({ path: '/' + route, component: resolve(__dirname, 'routes/avoiding.vue') }); + } } } diff --git a/routes/avoiding.vue b/routes/avoiding.vue index 86d1addf..708cb87f 100644 --- a/routes/avoiding.vue +++ b/routes/avoiding.vue @@ -1,49 +1,30 @@