Merge branch 'header' into main
This commit is contained in:
commit
601a9cf553
|
@ -48,11 +48,25 @@ html {
|
|||
}
|
||||
|
||||
body {
|
||||
margin: 2rem auto;
|
||||
max-width: min(90vw, 920px);
|
||||
margin: 2rem;
|
||||
background-image: linear-gradient(74deg, rgba(236, 236, 236,0.02) 0%, rgba(236, 236, 236,0.02) 13%,transparent 13%, transparent 64%,rgba(55, 55, 55,0.02) 64%, rgba(55, 55, 55,0.02) 71%,rgba(239, 239, 239,0.02) 71%, rgba(239, 239, 239,0.02) 100%),linear-gradient(170deg, rgba(8, 8, 8,0.02) 0%, rgba(8, 8, 8,0.02) 1%,transparent 1%, transparent 60%,rgba(9, 9, 9,0.02) 60%, rgba(9, 9, 9,0.02) 80%,rgba(198, 198, 198,0.02) 80%, rgba(198, 198, 198,0.02) 100%),linear-gradient(118deg, rgba(134, 134, 134,0.02) 0%, rgba(134, 134, 134,0.02) 30%,transparent 30%, transparent 43%,rgba(85, 85, 85,0.02) 43%, rgba(85, 85, 85,0.02) 47%,rgba(103, 103, 103,0.02) 47%, rgba(103, 103, 103,0.02) 100%),linear-gradient(249deg, rgba(178, 178, 178,0.02) 0%, rgba(178, 178, 178,0.02) 8%,transparent 8%, transparent 47%,rgba(161, 161, 161,0.02) 47%, rgba(161, 161, 161,0.02) 61%,rgba(19, 19, 19,0.02) 61%, rgba(19, 19, 19,0.02) 100%),linear-gradient(90deg, rgb(255,255,255),rgb(255,255,255));
|
||||
}
|
||||
|
||||
.container {
|
||||
margin: 0 auto;
|
||||
width: 100%;
|
||||
max-width: min(90vw, 920px);
|
||||
}
|
||||
|
||||
@include media-breakpoint-up('lg', $grid-breakpoints) {
|
||||
body {
|
||||
margin-top: $header-margin;
|
||||
}
|
||||
.sticky-top {
|
||||
top: $header-height - 1px;
|
||||
}
|
||||
}
|
||||
|
||||
section {
|
||||
margin: 2*$spacer 0;
|
||||
}
|
||||
|
|
|
@ -7,6 +7,9 @@ $alert-border-level: -3;
|
|||
$link-decoration: none;
|
||||
$link-hover-decoration: underline;
|
||||
|
||||
$header-height: 80px;
|
||||
$header-margin: $header-height + 36px;
|
||||
|
||||
@import "~bootstrap/scss/functions";
|
||||
@import "~bootstrap/scss/variables";
|
||||
@import "~bootstrap/scss/mixins";
|
||||
|
|
|
@ -0,0 +1,11 @@
|
|||
<template>
|
||||
<section v-if="config.links.links.length">
|
||||
<h2 class="mb-3">
|
||||
<Icon v="vial"/>
|
||||
<T>links.academic</T>
|
||||
</h2>
|
||||
<ul class="list-unstyled">
|
||||
<Link v-for="link in config.links.academic" :link="link" :key="link.url"/>
|
||||
</ul>
|
||||
</section>
|
||||
</template>
|
|
@ -1,11 +1,11 @@
|
|||
<template>
|
||||
<section v-if="Object.keys(config.contact.blog).length">
|
||||
<section v-if="Object.keys(config.links.blog).length">
|
||||
<h2>
|
||||
<Icon v="pen-nib"/>
|
||||
<T>contact.team.blog</T>
|
||||
<T>links.blog</T>
|
||||
</h2>
|
||||
<ul>
|
||||
<li v-for="(title, slug) in config.contact.blog" class="mb-2">
|
||||
<li v-for="(title, slug) in config.links.blog" class="mb-2">
|
||||
<nuxt-link :to="`/blog/${slug}`">
|
||||
{{title}}
|
||||
</nuxt-link>
|
||||
|
|
|
@ -5,7 +5,7 @@
|
|||
>
|
||||
<slot name="toggle">Dropdown</slot>
|
||||
</button>
|
||||
<ul :class="['dropdown-menu', shown ? 'show' : '']" >
|
||||
<ul :class="['dropdown-menu', end ? 'dropdown-menu-end' : '', shown ? 'show' : '']" >
|
||||
<slot name="menu">
|
||||
<li class="dropdown-item">Option</li>
|
||||
</slot>
|
||||
|
@ -17,6 +17,7 @@
|
|||
export default {
|
||||
props: {
|
||||
btnClass: { 'default': 'btn-secondary' },
|
||||
end: { type: Boolean },
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
|
@ -42,3 +43,9 @@
|
|||
},
|
||||
}
|
||||
</script>
|
||||
|
||||
<style lang="scss" scoped>
|
||||
.dropdown-menu-end {
|
||||
right: 0;
|
||||
}
|
||||
</style>
|
||||
|
|
|
@ -1,60 +1,31 @@
|
|||
<template>
|
||||
<header v-if="config.header" class="mb-4">
|
||||
<div class="mb-3 d-flex justify-content-between align-items-center flex-column flex-md-row">
|
||||
<h1 class="text-nowrap">
|
||||
<nuxt-link to="/">
|
||||
<div class="d-none d-lg-flex justify-content-between align-items-center flex-row nav-custom btn-group mb-0">
|
||||
<nuxt-link v-for="link in links" :key="link.link" :to="link.link" :class="`nav-item btn btn-sm ${isActiveRoute(link) ? 'active' : ''} ${link.header ? 'flex-grow-0' : ''}`">
|
||||
<h1 v-if="link.header" class="text-nowrap">
|
||||
<Icon v="tags"/>
|
||||
<span class="higher"><T>title</T></span>
|
||||
</nuxt-link>
|
||||
</h1>
|
||||
<div>
|
||||
<div v-if="config.locale === 'zh'" class="btn-group m-2">
|
||||
<button v-for="(display, code) in {traditional: '繁體', simplified: '简体'}"
|
||||
:class="'btn btn-sm ' + (spelling === code ? 'btn-secondary disabled' : 'btn-outline-secondary')"
|
||||
:disabled="spelling === code"
|
||||
@click="setSpelling(code)"
|
||||
>
|
||||
{{display}}
|
||||
</button>
|
||||
</div>
|
||||
<Dropdown v-if="Object.keys(locales).length > 1" btnClass="btn-outline-secondary btn-sm" class="d-inline-block">
|
||||
<template v-slot:toggle>
|
||||
<Icon v="language"/>
|
||||
{{locales[config.locale].name}}
|
||||
</template>
|
||||
|
||||
<template v-slot:menu>
|
||||
<li v-for="(options, locale) in locales" :key="locale" v-if="locale !== config.locale">
|
||||
<a :href="options.url" class="dropdown-item">
|
||||
{{options.name}}
|
||||
</a>
|
||||
</li>
|
||||
<li class="dropdown-divider"></li>
|
||||
<li>
|
||||
<LocaleLink locale="en" link="/blog/creating-new-language-version" class="dropdown-item small">
|
||||
<Icon v="plus"/>
|
||||
<T>localise.shorter</T>
|
||||
</LocaleLink>
|
||||
</li>
|
||||
</template>
|
||||
</Dropdown>
|
||||
<!--
|
||||
<div class="btn-group">
|
||||
<a v-for="(options, locale) in locales" :key="locale"
|
||||
:href="options.url"
|
||||
:class="'btn btn-sm ' + (locale === config.locale ? 'btn-secondary disabled' : 'btn-outline-secondary')"
|
||||
:disabled="locale === config.locale"
|
||||
>
|
||||
{{options.name}}
|
||||
</a>
|
||||
<LocaleLink locale="en" link="/blog/creating-new-language-version" class="btn btn-sm btn-outline-secondary">
|
||||
<Icon v="plus"/>
|
||||
</LocaleLink>
|
||||
</div>
|
||||
-->
|
||||
</h1>
|
||||
<template v-else>
|
||||
<Icon :v="link.icon" size="1.6"/>
|
||||
<br/>
|
||||
<span class="text-nowrap"><Spelling :text="link.text"/></span>
|
||||
</template>
|
||||
</nuxt-link>
|
||||
<div class="nav-item flex-grow-0">
|
||||
<VersionDropdown end/>
|
||||
</div>
|
||||
</div>
|
||||
<div class="d-block d-md-none">
|
||||
<div class="d-block d-lg-none">
|
||||
<div class="text-center mb-3">
|
||||
<nuxt-link to="/">
|
||||
<h1 class="text-nowrap">
|
||||
<Icon v="tags"/>
|
||||
<span class="higher"><T>title</T></span>
|
||||
</h1>
|
||||
</nuxt-link>
|
||||
<VersionDropdown/>
|
||||
</div>
|
||||
<div class="btn-group-vertical d-flex nav-custom mb-2">
|
||||
<nuxt-link v-for="link in links" :key="link.link" :to="link.link" :class="`btn btn-sm ${isActiveRoute(link) ? 'active' : ''}`">
|
||||
<Icon :v="link.icon"/>
|
||||
|
@ -77,15 +48,6 @@
|
|||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="d-none d-md-block">
|
||||
<div class="btn-group d-flex nav-custom mb-2">
|
||||
<nuxt-link v-for="link in links" :key="link.link" :to="link.link" :class="`btn btn-sm ${isActiveRoute(link) ? 'active' : ''}`">
|
||||
<Icon :v="link.icon" size="1.6"/>
|
||||
<br/>
|
||||
<span class="text-nowrap"><Spelling :text="link.text"/></span>
|
||||
</nuxt-link>
|
||||
</div>
|
||||
</div>
|
||||
<div v-if="locales[config.locale].published === false" class="alert alert-warning mt-3">
|
||||
<Icon v="exclamation-triangle"/>
|
||||
This language version is still under construction!
|
||||
|
@ -94,7 +56,7 @@
|
|||
<a href="#" class="float-end" @click.prevent="dismissCensus">
|
||||
<Icon v="times"/>
|
||||
</a>
|
||||
<Icon v="user-chart" size="2" class="d-inline-block float-start mr-3 mt-2"/>
|
||||
<Icon v="user-chart" size="2" class="d-inline-block float-start me-3 mt-2"/>
|
||||
<T silent>census.banner</T>
|
||||
</div>
|
||||
</header>
|
||||
|
@ -129,6 +91,7 @@
|
|||
const links = [];
|
||||
|
||||
links.push({
|
||||
header: true,
|
||||
link: '/',
|
||||
icon: 'home',
|
||||
text: this.$t('home.header'),
|
||||
|
@ -175,7 +138,7 @@
|
|||
});
|
||||
}
|
||||
|
||||
if (this.config.faq.enabled) {
|
||||
if (this.config.faq.enabled && !this.config.links.enabled) {
|
||||
links.push({
|
||||
link: '/' + this.config.faq.route,
|
||||
icon: 'map-marker-question',
|
||||
|
@ -190,16 +153,14 @@
|
|||
icon: 'bookmark',
|
||||
text: this.$t('links.header'),
|
||||
textLong: this.$t('links.headerLong'),
|
||||
extra: ['blog', 'blogEntry'],
|
||||
});
|
||||
}
|
||||
|
||||
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'),
|
||||
extra: [
|
||||
'/' + this.config.links.academicRoute,
|
||||
'blog',
|
||||
'blogEntry',
|
||||
'/' + this.config.links.mediaRoute,
|
||||
'/' + this.config.faq.route,
|
||||
'/' + this.config.people.route,
|
||||
],
|
||||
});
|
||||
}
|
||||
|
||||
|
@ -301,7 +262,12 @@
|
|||
<style lang="scss" scoped>
|
||||
@import "assets/variables";
|
||||
|
||||
@include media-breakpoint-down('md', $grid-breakpoints) {
|
||||
header {
|
||||
padding: 0;
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
@include media-breakpoint-down('lg', $grid-breakpoints) {
|
||||
h1 {
|
||||
font-size: 2rem;
|
||||
}
|
||||
|
@ -320,6 +286,22 @@
|
|||
text-align: left;
|
||||
}
|
||||
}
|
||||
|
||||
.hamburger-menu {
|
||||
position: fixed;
|
||||
top: $spacer;
|
||||
left: $spacer;
|
||||
z-index: 1030;
|
||||
transition: all .5s ease-in-out;
|
||||
.btn-hamburger {
|
||||
&:not(:active):not(:hover):not(:focus):not(.active) {
|
||||
background-color: $white;
|
||||
}
|
||||
&.active {
|
||||
background-color: $secondary;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.nav-custom-start {
|
||||
|
@ -337,47 +319,52 @@
|
|||
}
|
||||
}
|
||||
|
||||
@include media-breakpoint-up('md', $grid-breakpoints) {
|
||||
@include media-breakpoint-up('lg', $grid-breakpoints) {
|
||||
header {
|
||||
position: fixed;
|
||||
z-index: 9999;
|
||||
top: 0;
|
||||
left: 0;
|
||||
backdrop-filter: blur(12px);
|
||||
@supports not (backdrop-filter: blur(12px)) {
|
||||
background-color: $white;
|
||||
}
|
||||
}
|
||||
|
||||
.nav-custom:not(.nav-custom-start) {
|
||||
.btn {
|
||||
.nav-item {
|
||||
border-bottom: 1px solid $gray-500;
|
||||
border-radius: 0;
|
||||
|
||||
&:hover, &:focus, &.active {
|
||||
border-bottom: 3px solid $primary;
|
||||
padding-bottom: calc(#{$btn-padding-y-sm} - 2px);
|
||||
color: $primary;
|
||||
&.btn {
|
||||
&:hover, &:focus, &.active {
|
||||
border-bottom: 3px solid $primary;
|
||||
padding-bottom: calc(#{$btn-padding-y-sm} - 2px);
|
||||
color: $primary;
|
||||
}
|
||||
}
|
||||
|
||||
height: $header-height;
|
||||
padding-top: 1.2rem;
|
||||
margin-top: 3px;
|
||||
|
||||
&:first-child, &:last-child {
|
||||
padding-left: 1rem;
|
||||
padding-right: 1rem;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.hamburger-menu {
|
||||
display: none;
|
||||
}
|
||||
}
|
||||
|
||||
h1 {
|
||||
a {
|
||||
text-decoration: none;
|
||||
.higher {
|
||||
position: relative;
|
||||
top: -0.1em;
|
||||
}
|
||||
&:hover .higher {
|
||||
text-decoration: underline;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.hamburger-menu {
|
||||
position: fixed;
|
||||
top: $spacer;
|
||||
left: $spacer;
|
||||
z-index: 1030;
|
||||
transition: all .5s ease-in-out;
|
||||
.btn-hamburger {
|
||||
&:not(:active):not(:hover):not(:focus):not(.active) {
|
||||
background-color: $white;
|
||||
}
|
||||
&.active {
|
||||
background-color: $secondary;
|
||||
}
|
||||
text-decoration: none;
|
||||
.higher {
|
||||
position: relative;
|
||||
top: -0.1em;
|
||||
}
|
||||
}
|
||||
</style>
|
||||
|
|
|
@ -23,7 +23,7 @@
|
|||
</div>
|
||||
</section>
|
||||
|
||||
<Table :data="visibleEntries()" :marked="(el) => !el.approved" fixed ref="dictionarytable">
|
||||
<Table :data="visibleEntries()" columns="3" :marked="(el) => !el.approved" fixed ref="dictionarytable">
|
||||
<template v-slot:header>
|
||||
<th class="text-nowrap">
|
||||
<Icon v="comment-times"/>
|
||||
|
|
|
@ -49,7 +49,7 @@
|
|||
<div class="form-group">
|
||||
<label><strong><T>nouns.inclusive.categories</T>:</strong></label>
|
||||
<a v-for="category in config.nouns.inclusive.categories"
|
||||
href="#" :class="['badge border mx-2', form.categories.includes(category) ? 'bg-primary' : 'bg-light']"
|
||||
href="#" :class="['badge border mx-2 text-decoration-none', form.categories.includes(category) ? 'bg-primary text-white' : 'bg-light text-primary']"
|
||||
@click.prevent="form.categories = form.categories.includes(category) ? form.categories.filter(c => c !== category) : [...form.categories, category]"
|
||||
>
|
||||
{{ category }}
|
||||
|
|
|
@ -0,0 +1,55 @@
|
|||
<template>
|
||||
<section v-if="config.links.split" class="mt-4 mt-lg-0">
|
||||
<div class="d-none d-md-inline-flex btn-group btn-block mb-2 w-100">
|
||||
<router-link v-for="{name, icon, route} in links" :to="`/${route}`" :key="name"
|
||||
:class="['btn', isActiveRoute(route) ? 'btn-primary' : 'btn-outline-primary']">
|
||||
<Icon :v="icon"/>
|
||||
<T>{{name}}</T>
|
||||
</router-link>
|
||||
</div>
|
||||
<div class="d-block d-md-none btn-group-vertical btn-block mb-2 w-100">
|
||||
<router-link v-for="{name, icon, route} in links" :key="name"
|
||||
:to="`/${route}`"
|
||||
:class="['btn', isActiveRoute(route) ? 'btn-primary' : 'btn-outline-primary']">
|
||||
<Icon :v="icon"/>
|
||||
<T>{{name}}</T>
|
||||
</router-link>
|
||||
</div>
|
||||
</section>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
export default {
|
||||
data() {
|
||||
const links = [];
|
||||
|
||||
if (this.config.links.links.length) {
|
||||
links.push({name: 'links.links', route: this.config.links.linksRoute, icon: 'bookmark'});
|
||||
}
|
||||
if (this.config.links.academic.length) {
|
||||
links.push({name: 'links.academic', route: this.config.links.academicRoute, icon: 'vial'});
|
||||
}
|
||||
if (Object.keys(this.config.links.blog).length) {
|
||||
links.push({name: 'links.blog', route: this.config.links.blogRoute, icon: 'pen-nib'});
|
||||
}
|
||||
if (this.config.links.mediaGuests.length || this.config.links.mediaMentions.length) {
|
||||
links.push({name: 'links.media', route: this.config.links.mediaRoute, icon: 'tv'});
|
||||
}
|
||||
if (this.config.faq.enabled) {
|
||||
links.push({name: 'faq.header', route: this.config.faq.route, icon: 'map-marker-question'});
|
||||
}
|
||||
if (this.config.people.enabled) {
|
||||
links.push({name: 'people.header', route: this.config.people.route, icon: 'user-friends'});
|
||||
}
|
||||
|
||||
return {
|
||||
links,
|
||||
};
|
||||
},
|
||||
methods: {
|
||||
isActiveRoute(route) {
|
||||
return decodeURIComponent(this.$route.fullPath).replace(/\/$/, '') === '/' + route.replace(/\/$/, '');
|
||||
},
|
||||
},
|
||||
};
|
||||
</script>
|
|
@ -1,17 +1,17 @@
|
|||
<template>
|
||||
<section v-if="config.links.mediaGuests.length || config.links.mediaMentions.length">
|
||||
<h2 class="h3">
|
||||
<h2>
|
||||
<Icon v="tv"/>
|
||||
<T>links.media</T>
|
||||
</h2>
|
||||
<h3 v-if="config.links.mediaGuests.length && config.links.mediaMentions.length" class="h4 mt-3">
|
||||
<h3 v-if="config.links.mediaGuests.length && config.links.mediaMentions.length" class="mt-4 mb-2">
|
||||
<Icon v="microphone-alt"/>
|
||||
<T>links.mediaGuests</T>
|
||||
</h3>
|
||||
<ul class="list-unstyled" v-if="config.links.mediaGuests.length">
|
||||
<Link v-for="link in config.links.mediaGuests" :link="link" :key="link.url"/>
|
||||
</ul>
|
||||
<h3 v-if="config.links.mediaGuests.length && config.links.mediaMentions.length" class="h4 mt-3">
|
||||
<h3 v-if="config.links.mediaGuests.length && config.links.mediaMentions.length" class="mt-4 mb-2">
|
||||
<Icon v="quote-right"/>
|
||||
<T>links.mediaMentions</T>
|
||||
</h3>
|
||||
|
|
|
@ -0,0 +1,42 @@
|
|||
<template>
|
||||
<div class="pt-1">
|
||||
<div v-if="config.locale === 'zh'" class="btn-group m-2">
|
||||
<button v-for="(display, code) in {traditional: '繁體', simplified: '简体'}"
|
||||
:class="'btn btn-sm ' + (spelling === code ? 'btn-secondary disabled' : 'btn-outline-secondary')"
|
||||
:disabled="spelling === code"
|
||||
@click="setSpelling(code)"
|
||||
>
|
||||
{{display}}
|
||||
</button>
|
||||
</div>
|
||||
<Dropdown v-if="Object.keys(locales).length > 1" btnClass="btn-outline-secondary btn-sm" class="d-inline-block" :end="end">
|
||||
<template v-slot:toggle>
|
||||
<Icon v="language"/>
|
||||
{{locales[config.locale].name}}
|
||||
</template>
|
||||
|
||||
<template v-slot:menu>
|
||||
<li v-for="(options, locale) in locales" :key="locale" v-if="locale !== config.locale">
|
||||
<a :href="options.url" class="dropdown-item">
|
||||
{{options.name}}
|
||||
</a>
|
||||
</li>
|
||||
<li class="dropdown-divider"></li>
|
||||
<li>
|
||||
<LocaleLink locale="en" link="/blog/creating-new-language-version" class="dropdown-item small">
|
||||
<Icon v="plus"/>
|
||||
<T>localise.shorter</T>
|
||||
</LocaleLink>
|
||||
</li>
|
||||
</template>
|
||||
</Dropdown>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
export default {
|
||||
props: {
|
||||
end: {type: Boolean},
|
||||
},
|
||||
}
|
||||
</script>
|
|
@ -2,10 +2,12 @@
|
|||
<div class="d-flex flex-column vh-100">
|
||||
<div class="flex-grow-1">
|
||||
<Header/>
|
||||
<Nuxt/>
|
||||
<ScrollButton/>
|
||||
<main class="container">
|
||||
<Nuxt/>
|
||||
<ScrollButton/>
|
||||
</main>
|
||||
</div>
|
||||
<div>
|
||||
<div class="container">
|
||||
<Footer/>
|
||||
</div>
|
||||
<Confirm ref="confirm"/>
|
||||
|
|
|
@ -84,7 +84,7 @@ nouns:
|
|||
- 'dukatywy'
|
||||
- 'osobatywy'
|
||||
inclusive:
|
||||
enabled: false
|
||||
enabled: true
|
||||
categories: ['queer/lgbtq+', 'transpłciowość', 'interpłciowość', 'niepełnosprawność', 'rasa i narodowość']
|
||||
route: 'inkluzywny'
|
||||
terms:
|
||||
|
@ -102,7 +102,7 @@ nouns:
|
|||
route: 'terminologia'
|
||||
|
||||
names:
|
||||
enabled: false
|
||||
enabled: true
|
||||
route: 'imiona'
|
||||
legally: true
|
||||
count: true
|
||||
|
@ -115,15 +115,29 @@ faq:
|
|||
|
||||
links:
|
||||
enabled: true
|
||||
split: true
|
||||
route: 'linki'
|
||||
blogRoute: 'blog'
|
||||
links:
|
||||
-
|
||||
icon: 'globe-europe'
|
||||
url: 'https://pronoun.is/'
|
||||
lang: ['en']
|
||||
headline: 'Pronoun.is'
|
||||
extra: '– anglojęzyczna inspiracja dla tej strony.'
|
||||
academicRoute: 'nauka'
|
||||
linksRoute: 'linki'
|
||||
mediaRoute: 'media'
|
||||
|
||||
blog:
|
||||
manifest: 'Manifest Niebinarnej Polszczyzny'
|
||||
wystarczyło-zapytać: 'Wystarczyło zapytać…'
|
||||
krótka-notka-o-osobatywach: 'Krótka notka o osobatywach'
|
||||
czytanie-ze-zrozumieniem: 'Czytanie ze zrozumieniem'
|
||||
spis-2021: 'Niebinarny Spis Powszechny 2021 – wnioski'
|
||||
czy-wolno-uzywac: 'Zamiast pierdyliarda dyskusji czy wolno używać – zróbmy pierdyliard użyć'
|
||||
inkluzywne-liczebniki: 'Inkluzywne liczebniki'
|
||||
zaimki-postpłciowe: 'Zaimki w rodzaju postpłciowym'
|
||||
zaimki-nie-tylko-osobowe: 'Zaimki nie tylko osobowe'
|
||||
archie-wyborcza: 'Przemówienie Arcziego na konferencji prasowej ws. transfobii w Gazecie Wyborczej'
|
||||
rekomendacja-formularze: 'Rekomendacja Rady w sprawie pytania o płeć w formularzach'
|
||||
podsumowanie-2020: 'Podsumowanie działalności w roku 2020'
|
||||
gwiezdne-wojny: 'Niebinarność w „Gwiezdnych Wojnach”'
|
||||
czas-się-obnosić: 'Nadszedł czas się obnosić! – przemówienie Sybila z Wrocławskiego Marszu Równości'
|
||||
academic:
|
||||
-
|
||||
icon: 'comment-alt-edit'
|
||||
url: 'https://rjp.pan.pl/index.php?option=com_content&view=article&id=317:byom-byo&catid=44&Itemid=208'
|
||||
|
@ -132,6 +146,56 @@ links:
|
|||
Nigdzie nie występuje zastrzeżenie, że nie tworzy się form 1. i 2. osoby rodzaju nijakiego w czasie przeszłym.
|
||||
Tak więc z punktu widzenia gramatycznego formy <em>byłom, byłoś, robiłom, robiłoś, widziałom, widziałoś</em> itd.
|
||||
są poprawne, zgodne z systemem językowym.
|
||||
-
|
||||
icon: 'comment-alt-edit'
|
||||
lang: ['en']
|
||||
url: 'https://anglica-journal.com/resources/html/article/details?id=207730'
|
||||
headline: 'Misgendered in Translation?: Genderqueerness in Polish Translations of English-language Television Series'
|
||||
extra: ' – Szymon Misiek; Uniwersytet Warszawski; ANGLICA. An International Journal of English Studies'
|
||||
quote: >
|
||||
In recent years, the English-speaking world observed growing awareness
|
||||
of the gender non-binary/genderqueer community.
|
||||
Among other things, this involved the issue of inclusive language,
|
||||
e.g. the <em>singular they</em> pronoun has been declared the word of the year
|
||||
by the American Dialect Society in 2015, and by Merriam-Webster in 2019.
|
||||
There is also growing media representation of characters using <em>singular they</em> in popular culture.
|
||||
This, however, poses a challenge to translators, as some languages – like Polish –
|
||||
are much more heavily gendered and lack an obvious equivalent of <em>singular they</em>.
|
||||
This article analyses Polish translations of three English-language television series
|
||||
featuring non-binary characters and discusses good practices one can employ
|
||||
when dealing with similar trans- lation challenges.
|
||||
-
|
||||
icon: 'comment-alt-edit'
|
||||
headline: 'Neutrativa im Polnischen. Theorie – Norm – Usus'
|
||||
extra: ' – Michał Dudas; Johannes Gutenberg Universität Mainz (Hausarbeit zur Erlangung des Akademischen Grades Master of Arts)'
|
||||
lang: ['de']
|
||||
quote: >
|
||||
Äußerst positiv zu bewerten sind folgende Punkte.
|
||||
(a) Die Seite bietet eine optimale Aus- wahl an Informationen und guten Übersichten,
|
||||
wodurch sie auch für Laien sprachlich zugänglich ist.
|
||||
(b) Die Autorys (sowie andere, die zum Projekt beitragen)
|
||||
weisen m. E. ein erhöhtes Sprachbewusstsein auf (z. B. im Bereich der komplexen Morphonologie).
|
||||
(c) Die Sprachexperimente basieren u. a auf den Leistungen der Übersetzer*innen
|
||||
und die Modifikationen versuchen gleichzeitig, die poln. Flexion von der M–F-Binarität los- zulösen,
|
||||
ohne das System zu sprengen.
|
||||
(d) Formularfelder laden die User*innen zur Ko- operation ein.
|
||||
(e) Schließlich verwenden die Autorys auf der Seite konsequent die nicht- binären Formen.
|
||||
-
|
||||
icon: 'book'
|
||||
url: 'https://gufaculty360.georgetown.edu/s/contact/00336000014RaQuAAK/iwona-sadowska'
|
||||
lang: ['en']
|
||||
headline: 'Polish: A Comprehensive Grammar – Iwona Sadowska; Georgetown University (to be published in 2022)'
|
||||
-
|
||||
icon: 'play-circle'
|
||||
url: 'https://www.youtube.com/watch?v=YOEB6Ixp048'
|
||||
headline: 'Nie-binarny język polski – seminarium naukowe (Queer UW)'
|
||||
links:
|
||||
-
|
||||
icon: 'globe-europe'
|
||||
url: 'https://pronoun.is/'
|
||||
lang: ['en']
|
||||
headline: 'Pronoun.is'
|
||||
extra: '– anglojęzyczna inspiracja dla tej strony.'
|
||||
-
|
||||
icon: 'comment-alt-edit'
|
||||
url: 'https://avris.it/blog/genderneutralizacja-polszczyzny'
|
||||
|
@ -148,19 +212,6 @@ links:
|
|||
icon: 'comment-alt-edit'
|
||||
url: 'https://avris.it/blog/czemu-każdy-powinien-mieć-zaimki-w-bio'
|
||||
headline: 'Czemu KAŻDY powinien mieć zaimki w bio'
|
||||
-
|
||||
icon: 'comment-alt-edit'
|
||||
url: '/blog/gwiezdne-wojny'
|
||||
headline: 'Niebinarność w „Gwiezdnych Wojnach”'
|
||||
-
|
||||
icon: 'comment-alt-edit'
|
||||
url: '/blog/czas-się-obnosić'
|
||||
headline: 'Nadszedł czas się obnosić!'
|
||||
extra: '– przemówienie Sybila z Wrocławskiego Marszu Równości'
|
||||
-
|
||||
icon: 'comment-alt-edit'
|
||||
url: '/blog/rekomendacja-formularze'
|
||||
headline: 'Rekomendacja Rady w sprawie pytania o płeć w formularzach'
|
||||
-
|
||||
icon: 'comment-alt-edit'
|
||||
url: 'https://www.przemyslenia-maniaka.pl/2019/11/maniak-marudzi-27-niebinarne-tumaczenia.html'
|
||||
|
@ -171,12 +222,6 @@ links:
|
|||
url: 'https://opowiadania.org/wp-content/uploads/2020/09/opo16_gazeta_rd.pdf'
|
||||
headline: 'Ludzie z komputera, ludzie z internetu'
|
||||
extra: '– Michał Radomił Wiśniewski o „wojnie kulturowej” o zaimki, o naszym projekcie i o dukaizmach.'
|
||||
-
|
||||
icon: 'comment-alt-edit'
|
||||
lang: ['en']
|
||||
url: 'https://anglica-journal.com/resources/html/article/details?id=207730'
|
||||
headline: 'Misgendered in Translation?: Genderqueerness in Polish Translations of English-language Television Series'
|
||||
extra: '– ANGLICA. An International Journal of English Studies'
|
||||
-
|
||||
icon: 'comment-alt-edit'
|
||||
url: 'http://wasowska.net/2020/09/rowni-wobec-jezyka-o-jezyku-neutralnym-plciowo/'
|
||||
|
@ -190,11 +235,6 @@ links:
|
|||
Jeśli chcesz rozbudzić w uczniach zainteresowanie językiem polskim, spróbuj odejść choć na jedną lekcję
|
||||
od sztywnych reguł i z pomocą kategorii Literatura strony zaimki.pl
|
||||
porozmawiać o ewolucji języka i neutratywach. Może uczniowie spróbują wymyślić własne?
|
||||
-
|
||||
icon: 'play-circle'
|
||||
url: 'https://www.youtube.com/watch?v=YOEB6Ixp048'
|
||||
headline: 'Nie-binarny język polski – seminarium naukowe (Queer UW)'
|
||||
extra: ''
|
||||
-
|
||||
icon: 'play-circle'
|
||||
url: 'https://www.youtube.com/watch?v=BX8ld20YeUc'
|
||||
|
@ -298,7 +338,6 @@ links:
|
|||
url: 'https://www.facebook.com/330540866965366/videos/977896432960282'
|
||||
headline: 'Osoby, łosie i dukaty – wstęp do neutralnej płciowo i niebinarnej polszczyzny'
|
||||
extra: '– wykład Sybila, <strong>Nowa Siła Kuratorska</strong>'
|
||||
|
||||
mediaMentions:
|
||||
-
|
||||
icon: 'newspaper'
|
||||
|
@ -477,7 +516,7 @@ links:
|
|||
extra: ' – rozdaje przypinki z zaimkami, również nienormatywnymi.'
|
||||
|
||||
people:
|
||||
enabled: false
|
||||
enabled: true
|
||||
route: 'znane'
|
||||
|
||||
english:
|
||||
|
@ -591,21 +630,6 @@ contact:
|
|||
team:
|
||||
enabled: true
|
||||
route: 'kolektyw-rjn'
|
||||
blog:
|
||||
manifest: 'Manifest Niebinarnej Polszczyzny'
|
||||
wystarczyło-zapytać: 'Wystarczyło zapytać…'
|
||||
krótka-notka-o-osobatywach: 'Krótka notka o osobatywach'
|
||||
czytanie-ze-zrozumieniem: 'Czytanie ze zrozumieniem'
|
||||
spis-2021: 'Niebinarny Spis Powszechny 2021 – wnioski'
|
||||
czy-wolno-uzywac: 'Zamiast pierdyliarda dyskusji czy wolno używać – zróbmy pierdyliard użyć'
|
||||
inkluzywne-liczebniki: 'Inkluzywne liczebniki'
|
||||
zaimki-postpłciowe: 'Zaimki w rodzaju postpłciowym'
|
||||
zaimki-nie-tylko-osobowe: 'Zaimki nie tylko osobowe'
|
||||
archie-wyborcza: 'Przemówienie Arcziego na konferencji prasowej ws. transfobii w Gazecie Wyborczej'
|
||||
rekomendacja-formularze: 'Rekomendacja Rady w sprawie pytania o płeć w formularzach'
|
||||
podsumowanie-2020: 'Podsumowanie działalności w roku 2020'
|
||||
gwiezdne-wojny: 'Niebinarność w „Gwiezdnych Wojnach”'
|
||||
czas-się-obnosić: 'Nadszedł czas się obnosić! – przemówienie Sybila z Wrocławskiego Marszu Równości'
|
||||
|
||||
support:
|
||||
enabled: true
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
<template>
|
||||
<section>
|
||||
<section class="mt-4 mt-lg-0">
|
||||
<div class="d-none d-md-inline-flex btn-group btn-block mb-2 w-100">
|
||||
<router-link v-for="{name, icon, route} in links" :key="name"
|
||||
:to="buildRoute(route)"
|
||||
|
@ -47,6 +47,6 @@
|
|||
isActiveRoute(route) {
|
||||
return decodeURIComponent(this.$route.fullPath).replace(/\/$/, '') === this.buildRoute(route).replace(/\/$/, '');
|
||||
},
|
||||
}
|
||||
},
|
||||
}
|
||||
</script>
|
||||
|
|
|
@ -785,12 +785,17 @@ faq:
|
|||
links:
|
||||
header: 'Materiały'
|
||||
headerLong: 'Dodatkowe materiały'
|
||||
recommended: 'Polecamy'
|
||||
|
||||
blog: 'Blog'
|
||||
academic: 'Prace naukowe'
|
||||
links: 'Dodatkowe materiały'
|
||||
|
||||
media: 'Zaimki.pl w mediach'
|
||||
mediaGuests: 'Zaproszone'
|
||||
mediaMentions: 'Wspomniane'
|
||||
|
||||
recommended: 'Polecamy'
|
||||
|
||||
social: 'Social media'
|
||||
|
||||
languageVersions: 'Inne wersje językowe'
|
||||
|
@ -871,7 +876,6 @@ contact:
|
|||
są tworzone przez kolektyw „Rada Języka Neutralnego”.
|
||||
logo: 'Logo kolektywu to połączenie symbolu transpłciowości z chmurką dialogową symbolizującą język.'
|
||||
members: 'Obecny skład'
|
||||
blog: 'Blog'
|
||||
upcoming: 'Nadchodzące wersje językowe'
|
||||
|
||||
support:
|
||||
|
|
|
@ -187,10 +187,16 @@ export default {
|
|||
|
||||
if (config.links.enabled) {
|
||||
routes.push({ path: '/' + config.links.route, component: resolve(__dirname, 'routes/links.vue') });
|
||||
if (Object.keys(config.contact.blog).length) {
|
||||
if (config.links.academicRoute) {
|
||||
routes.push({ path: '/' + config.links.academicRoute, component: resolve(__dirname, 'routes/academic.vue') });
|
||||
}
|
||||
if (Object.keys(config.links.blog).length) {
|
||||
routes.push({ path: '/' + config.links.blogRoute, component: resolve(__dirname, 'routes/blog.vue'), name: 'blog' });
|
||||
routes.push({ path: '/' + config.links.blogRoute + '/:slug', component: resolve(__dirname, 'routes/blogEntry.vue'), name: 'blogEntry' });
|
||||
}
|
||||
if (config.links.mediaRoute) {
|
||||
routes.push({ path: '/' + config.links.mediaRoute, component: resolve(__dirname, 'routes/media.vue') });
|
||||
}
|
||||
}
|
||||
|
||||
if (config.people.enabled) {
|
||||
|
|
|
@ -0,0 +1,24 @@
|
|||
<template>
|
||||
<div>
|
||||
<LinksNav/>
|
||||
|
||||
<AcademicLinks/>
|
||||
|
||||
<Support/>
|
||||
<section>
|
||||
<Share :title="$t('links.headerLong')"/>
|
||||
</section>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import { head } from "../src/helpers";
|
||||
|
||||
export default {
|
||||
head() {
|
||||
return head({
|
||||
title: this.$t('links.academic'),
|
||||
});
|
||||
},
|
||||
};
|
||||
</script>
|
|
@ -1,6 +1,11 @@
|
|||
<template>
|
||||
<div class="main">
|
||||
<div>
|
||||
<LinksNav/>
|
||||
<Blog/>
|
||||
<Support/>
|
||||
<section>
|
||||
<Share :title="$t('links.blog')"/>
|
||||
</section>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
|
@ -10,7 +15,7 @@
|
|||
export default {
|
||||
head() {
|
||||
return head({
|
||||
title: this.$t('contact.team.blog'),
|
||||
title: this.$t('links.blog'),
|
||||
});
|
||||
},
|
||||
};
|
||||
|
|
|
@ -3,7 +3,7 @@
|
|||
<div v-else class="blog-post">
|
||||
<router-link :to="'/' + config.links.blogRoute" v-if="Object.keys(config.contact.blog).length">
|
||||
<Icon v="pen-nib"/>
|
||||
<T>contact.team.blog</T>
|
||||
<T>links.blog</T>
|
||||
</router-link>
|
||||
|
||||
<div v-html="content"></div>
|
||||
|
|
|
@ -1,5 +1,7 @@
|
|||
<template>
|
||||
<div>
|
||||
<LinksNav v-if="config.links.enabled"/>
|
||||
|
||||
<h2>
|
||||
<Icon v="map-marker-question"/>
|
||||
<T>faq.headerLong</T>
|
||||
|
|
|
@ -1,8 +1,8 @@
|
|||
<template>
|
||||
<div class="main">
|
||||
<Blog/>
|
||||
<div>
|
||||
<LinksNav/>
|
||||
|
||||
<Links/>
|
||||
<Media/>
|
||||
<Recommended/>
|
||||
<Socials/>
|
||||
<LanguageVersions/>
|
||||
|
|
|
@ -0,0 +1,25 @@
|
|||
<template>
|
||||
<div>
|
||||
<LinksNav/>
|
||||
|
||||
<Media/>
|
||||
|
||||
<Socials/>
|
||||
<Support/>
|
||||
<section>
|
||||
<Share :title="$t('links.social')"/>
|
||||
</section>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import { head } from "../src/helpers";
|
||||
|
||||
export default {
|
||||
head() {
|
||||
return head({
|
||||
title: this.$t('links.media'),
|
||||
});
|
||||
},
|
||||
};
|
||||
</script>
|
|
@ -1,5 +1,7 @@
|
|||
<template>
|
||||
<div>
|
||||
<LinksNav/>
|
||||
|
||||
<h2>
|
||||
<Icon v="user-friends"/>
|
||||
<T>people.headerLonger</T>
|
||||
|
|
|
@ -26,7 +26,7 @@
|
|||
<router-link :to="'/' + config.links.blogRoute" v-if="Object.keys(config.contact.blog).length"
|
||||
class="btn btn-outline-primary btn-lg">
|
||||
<Icon v="pen-nib"/>
|
||||
<T>contact.team.blog</T>
|
||||
<T>links.blog</T>
|
||||
</router-link>
|
||||
|
||||
<section>
|
||||
|
|
Reference in New Issue