#44 [pl] zaimki znanych osób - wip

This commit is contained in:
Andrea Vos 2020-09-29 19:11:46 +02:00
parent 1b015a40b2
commit 9432ae78af
12 changed files with 151 additions and 6 deletions

View File

@ -39,8 +39,6 @@
</template> </template>
<script> <script>
import { locales } from '../src/data';
export default { export default {
data() { data() {
const links = []; const links = [];
@ -62,6 +60,10 @@
links.push({ link: '/' + this.config.links.route, icon: 'bookmark', text: this.$t('links.header'), textLong: this.$t('links.headerLong') }); links.push({ link: '/' + this.config.links.route, icon: 'bookmark', text: this.$t('links.header'), textLong: this.$t('links.headerLong') });
} }
if (this.config.people.enabled) {
links.push({ link: '/' + this.config.people.route, icon: 'user-friends', text: this.$t('people.header'), textLong: this.$t('people.headerLong') });
}
if (this.config.english.enabled) { if (this.config.english.enabled) {
links.push({ link: '/' + this.config.english.route, icon: 'globe-americas', text: this.$t('english.header'), textLong: this.$t('english.headerLong') }); links.push({ link: '/' + this.config.english.route, icon: 'globe-americas', text: this.$t('english.header'), textLong: this.$t('english.headerLong') });
} }
@ -72,7 +74,6 @@
return { return {
links, links,
locales,
}; };
}, },
methods: { methods: {

View File

@ -16,6 +16,9 @@ nouns:
names: names:
enabled: false enabled: false
people:
enabled: false
english: english:
enabled: false enabled: false

1
locale/en/people.tsv Normal file
View File

@ -0,0 +1 @@
name description pronouns sources
1 name description pronouns sources

View File

@ -91,6 +91,10 @@ links:
url: 'https://facebook.com/neutratywy' url: 'https://facebook.com/neutratywy'
headline: '<strong>fb.com/neutratywy</strong> „Słownik Neutratywów Języka Polskiego”' headline: '<strong>fb.com/neutratywy</strong> „Słownik Neutratywów Języka Polskiego”'
people:
enabled: false
route: 'znane'
english: english:
enabled: false enabled: false
route: 'english' route: 'english'

4
locale/pl/people.tsv Normal file
View File

@ -0,0 +1,4 @@
name description pronouns sources
R.B. Lemberg autorzy, poeci, redaktorzy en:they/them:they,pl:oni/ich:oni
Margot Szutowicz polska aktywistka LGBTQ+ pl:ona/jej:ona margotWywiad,margot
Bogi Takács węgiersku poetu, pisarzu, psycholingwistu, redaktoru, tłumaczu en:e/em:e,en:they/them:they,pl:onu/jenu:onu bogiperson,oTryptyku
Can't render this file because it has a wrong number of fields in line 2.

View File

@ -174,6 +174,40 @@ links:
social: 'Social media' social: 'Social media'
people:
header: 'Znane osoby'
headerLong: 'Zaimki znanych osób'
headerLonger: 'Zaimki znanych osób ściąga dla prasy'
description: 'Polska prasa często idzie na łatwiznę i opisuje osoby używające they/them jako po prostu „on” lub „ona”, wymazując tym samym ich niebinarną tożsamość. Stworzyłośmy zatem małą ściągawkę, kto używa jakich zaimków.'
intro:
- >
Wiele osób dziennikarskich, stojąc przed wyzwaniem stworzenia materiału o osobie z zagranicy,
która w innym języku używa form neutralnych (jak np. angielskie <em>they/them</em>),
poddaje się i idzie na łatwiznę zwyczajnie używając normatywnych form męskich lub żeńskich.
Niestety, wymazuje to niebinarną część tożsamości tej osoby
i przyczynia się do utrwalania szkodliwego błędnego mniemania,
jakoby osoby niebinarne były tylko „kobietami-light” czy „mężczyznami-light”.
- >
Śpieszymy zatem z pomocą!
{/ona/ich=Przygotowałośmy} {/english=anglojęzyczny przegląd polskich form neutralnych},
w którym tłumaczymy różne opcje osobom nieznającym polskiego.
{/ona/ich=Rozesłałośmy} go do paru znanych osób z pytaniem, czy mają preferencje,
jak chciałyby być opisywane przez polskie media i polskie fandomy.
Liczymy, że lista będzie się z czasem wydłużała.
- >
Póki co, {/ona/ich=zebrałośmy} tu raptem parę znanych osób niebinarnych.
Co więc robić, jeśli danej osoby tutaj nie ma?
Przede wszystkim, nie idź na łatwiznę i nie opisuj jej zaimkami, które <em>wydaje ci się</em>,
że <em>„powinna”</em> używać ze względu na „męskie” czy „żeńskie” ciało.
Niektórzy używają zamiennie na przykład „they” i „she”, wtedy żeńskie zaimki w polszczyźnie są na miejscu.
W przciwnym wypadku zajrzyj na naszą [home] {/=stronę główną},
gdzie opisujemy neutralne możliwości. Zapoznaj się z nimi i na tej podstawie dokonaj wyboru.
Możesz też spróbować spytać bezpośrednio osobę zainteresowaną o jej preferencje
posiłkując się naszymi {/english=anglojęzycznymi materiałami}.
languages:
pl: 'Polskie zaimki'
en: 'Angielskie zaimki'
english: english:
header: 'English' header: 'English'
headerLong: 'An overview in English' headerLong: 'An overview in English'

View File

@ -108,6 +108,10 @@ export default {
routes.push({ path: '/' + config.links.route, component: resolve(__dirname, 'routes/links.vue') }); routes.push({ path: '/' + config.links.route, component: resolve(__dirname, 'routes/links.vue') });
} }
if (config.people.enabled) {
routes.push({ path: '/' + config.people.route, component: resolve(__dirname, 'routes/people.vue') });
}
if (config.english.enabled) { if (config.english.enabled) {
routes.push({ path: '/' + config.english.route, component: resolve(__dirname, 'routes/english.vue') }); routes.push({ path: '/' + config.english.route, component: resolve(__dirname, 'routes/english.vue') });
} }

View File

@ -1,8 +1,10 @@
import Vue from 'vue' import Vue from 'vue'
import t from '../src/translator'; import t from '../src/translator';
import config from '../data/config.suml'; import config from '../data/config.suml';
import { locales } from '../src/data';
export default ({ app }) => { export default ({ app }) => {
Vue.prototype.$t = t; Vue.prototype.$t = t;
Vue.prototype.config = config; Vue.prototype.config = config;
Vue.prototype.locales = locales;
} }

View File

@ -35,8 +35,8 @@
components: { EnglishTable }, components: { EnglishTable },
head() { head() {
return head({ return head({
title: this.$t('english.headerLonger'), title: this.$t('people.headerLonger'),
description: this.$t('english.description'), description: this.$t('people.description'),
}); });
}, },
} }

63
routes/people.vue Normal file
View File

@ -0,0 +1,63 @@
<template>
<div class="container">
<h2>
<Icon v="user-friends"/>
<T>people.headerLonger</T>
</h2>
<section>
<T>people.intro</T>
</section>
<ul class="list-group">
<li v-for="person in people" class="list-group-item">
<h3 class="h4">
<strong>
{{person.name}}
</strong>
</h3>
<p>
{{person.description}}
</p>
<ul class="mb-2">
<li v-for="(pronouns, locale) in person.pronouns">
<T>people.languages.{{locale}}</T>:
<ul class="list-inline d-inline">
<li v-for="pronoun in pronouns" class="list-inline-item">
<a :href="`${locales[locale].url}/${pronoun.link}`" target="_blank" rel="noopener">
<strong>{{pronoun.display}}</strong>
</a>
</li>
</ul>
</li>
</ul>
<ul v-if="person.sources.length" class="list-unstyled mt-3">
<li v-for="source in person.sources">
<Source :name="source"/>
</li>
</ul>
</li>
</ul>
<ScrollButton/>
</div>
</template>
<script>
import { people } from "~/src/data";
import { head } from "../src/helpers";
export default {
data() {
return {
people,
}
},
head() {
return head({
title: this.$t('english.headerLonger'),
description: this.$t('english.description'),
});
},
}
</script>

View File

@ -347,3 +347,20 @@ export class Name {
return false; return false;
} }
} }
export class Person {
constructor(name, description, pronouns, sources = []) {
this.name = name;
this.description = description;
this.pronouns = {};
for (let p of pronouns) {
const [language, display, link] = p.split(':');
if (this.pronouns[language] === undefined) {
this.pronouns[language] = [];
}
this.pronouns[language].push({display: display, link: link});
}
this.sources = sources;
}
}

View File

@ -1,4 +1,4 @@
import { Source, Example, NounTemplate, TemplateGroup, TemplateLibrary, Name } from './classes' import { Source, Example, NounTemplate, TemplateGroup, TemplateLibrary, Name, Person } from './classes'
import { buildDict, buildList } from './helpers'; import { buildDict, buildList } from './helpers';
import { parseTemplates, getTemplate } from './buildTemplate'; import { parseTemplates, getTemplate } from './buildTemplate';
@ -115,3 +115,15 @@ export const names = buildDict(function* () {
)]; )];
} }
}); });
import peopleRaw from '../data/people.tsv';
export const people = buildList(function* () {
for (let p of peopleRaw) {
yield new Person(
p.name,
p.description,
p.pronouns.split(','),
p.sources ? p.sources.split(',') : [],
);
}
});