PronounsPage/locale/pl/nouns/neutratywy.vue
Valentyne Stigloher 10180aa6a3 (refactor) use #shared alias instead of ~~/shared
the #shared alias used by Nuxt cannot be easily disabled and to prevent breackage with jiti, we make use of it
2025-08-17 18:56:02 +02:00

425 lines
12 KiB
Vue

<script setup lang="ts">
import { useNuxtApp } from 'nuxt/app';
import NounsNav from './NounsNav.vue';
import { removeSuffix } from '#shared/helpers.ts';
import { numeri, symbolsByNumeri } from '#shared/nouns.ts';
import type { NounDeclension } from '#shared/nouns.ts';
import useSimpleHead from '~/composables/useSimpleHead.ts';
definePageMeta({
translatedPaths: (config) => translatedPathForSingleLocale(config, 'pl', 'neutratywy'),
});
const { $translator: translator } = useNuxtApp();
const config = useConfig();
useSimpleHead({
title: translator.translate('nouns.neuterNouns.header'),
banner: `img/${config.locale}/flags/łoś.jpg`,
description: translator.translate('nouns.neuterNouns.info')[0],
}, translator);
const neuterExtendedDeclension: NounDeclension = {
singular: {
m: ['to kosmiczne twórcze'],
d: ['tego kosmicznego twórcza'],
c: ['temu kosmicznemu twórczu'],
b: ['to kosmiczne twórcze'],
n: ['tym kosmicznym twórczem'],
msc: ['tym kosmicznym twórczu'],
w: ['to kosmiczne twórcze'],
},
plural: {
m: ['te kosmiczne twórcza'],
d: ['tych kosmicznych twórczy'],
c: ['tym kosmicznym twórczom'],
b: ['te kosmiczne twórcza'],
n: ['tymi kosmicznymi twórczami'],
msc: ['tych kosmicznych twórczach'],
w: ['te kosmiczne twórcza'],
},
};
const neuterAltDeclensionTemplates = [
['ono/jego'], // , 'vono/vego', 'ono/jejgo'],
['ono/jej'],
['ono/jeno'],
['ono/jenu'],
];
const neuterAltDeclension: Record<string, NounDeclension[]> = {
księgowe: [
{
singular: {
m: ['owe'],
d: ['owego'],
c: ['owemu'],
b: ['owe'],
msc: ['owem', 'owym'],
w: ['owem', 'owym'],
},
},
{
singular: {
m: ['owe'],
d: ['owej'],
c: ['owej'],
b: ['owe'],
msc: ['ową'],
w: ['owej'],
},
},
{
singular: {
m: ['owe'],
d: ['oweno'],
c: ['owenu'],
b: ['owe', 'oweno'],
msc: ['owem'],
w: ['owem'],
},
},
{
singular: {
m: ['owe'],
d: ['owu'],
c: ['owenu'],
b: ['owe'],
msc: ['owum'],
w: ['owum'],
},
},
],
pracownicze: [
{
singular: {
m: ['cze'],
d: ['cza'],
c: ['czu'],
b: ['cze'],
msc: ['czem'],
w: ['czu'],
},
},
{
singular: {
m: ['cze'],
d: ['czy'],
c: ['czy'],
b: ['czę'],
msc: ['czą'],
w: ['czy'],
},
},
{
singular: {
m: ['cze'],
d: ['cza'],
c: ['czu'],
b: ['cze'],
msc: ['czem'],
w: ['czu'],
},
},
{
singular: {
m: ['cze'],
d: ['ku'],
c: ['ku'],
b: ['cze'],
msc: ['kum'],
w: ['kum'],
},
},
],
kochanie: [
{
singular: {
m: ['nie'],
d: ['nia'],
c: ['niu'],
b: ['nie'],
msc: ['niem'],
w: ['niu'],
},
},
{
singular: {
m: ['nie'],
d: ['ni'],
c: ['ni'],
b: ['nię'],
msc: ['nią'],
w: ['ni'],
},
},
{
singular: {
m: ['nie'],
d: ['nia'],
c: ['niu'],
b: ['nie'],
msc: ['niem'],
w: ['niu'],
},
},
{
singular: {
m: ['nie'],
d: ['niu'],
c: ['niu'],
b: ['nie'],
msc: ['nium'],
w: ['nium'],
},
},
],
wnuczę: [
{
singular: {
m: ['czę'],
d: ['częcia'],
c: ['częciu'],
b: ['czę'],
msc: ['częciem'],
w: ['częciu'],
},
},
{
singular: {
m: ['czę'],
d: ['częty'],
c: ['częcie'],
b: ['czętę'],
msc: ['czętą'],
w: ['częcie'],
},
},
{
singular: {
m: ['czę'],
d: ['częcia'],
c: ['częciu'],
b: ['czę'],
msc: ['częciem'],
w: ['częciu'],
},
},
{
singular: {
m: ['czę'],
d: ['czu'],
c: ['czu'],
b: ['czę'],
msc: ['czum'],
w: ['czum'],
},
},
],
Polko: [
{
singular: {
m: ['ko'],
d: ['ka'],
c: ['ku'],
b: ['ko'],
msc: ['kiem'],
w: ['ku'],
},
},
{
singular: {
m: ['ko'],
d: ['ki'],
c: ['ce'],
b: ['ko'],
msc: ['ką'],
w: ['ce'],
},
},
{
singular: {
m: ['ko'],
d: ['ka'],
c: ['ku'],
b: ['ko'],
msc: ['kiem'],
w: ['ku'],
},
},
{
singular: {
m: ['ko'],
d: ['ku'],
c: ['ku'],
b: ['ko'],
msc: ['kum'],
w: ['kum'],
},
},
],
kociaro: [
{
singular: {
m: ['ro'],
d: ['ra'],
c: ['rzu'],
b: ['ro'],
msc: ['rem'],
w: ['rzu'],
},
},
{
singular: {
m: ['ro'],
d: ['ry'],
c: ['rze'],
b: ['rę'],
msc: ['rą'],
w: ['rze'],
},
},
{
singular: {
m: ['ro'],
d: ['ra'],
c: ['rzu'],
b: ['ro'],
msc: ['rem'],
w: ['rzu'],
},
},
{
singular: {
m: ['ro'],
d: ['ru'],
c: ['ru'],
b: ['ro'],
msc: ['rum'],
w: ['rum'],
},
},
],
};
</script>
<template>
<Page>
<NounsNav />
<h2>
<Icon v="deer" />
<T>nouns.neuterNouns.header</T>
</h2>
<div class="d-flex flex-column flex-md-row">
<div>
<T>nouns.neuterNouns.info</T>
<CensusStat type="nouns" item="neutratywy" colour="info" />
<Share :title="$t('nouns.neuterNouns.header')" />
</div>
<figure>
<img src="/img/pl/flags/neutratywy.svg" :alt="$t('nouns.neuterNouns.flag.alt')">
<figcaption><T>nouns.neuterNouns.flag.caption</T></figcaption>
<details class="small mt-3">
<summary>
<Icon v="user-friends" />
Autorstwo
</summary>
<ul>
<li>Oryginalny projekt: <nuxt-link to="/@ausir">@ausir</nuxt-link></li>
<li>Pomysł redesignu: <nuxt-link to="/@Śreżoga">@Śreżoga</nuxt-link></li>
<li>Realizacja redesignu: <nuxt-link to="/@andrea">@andrea</nuxt-link></li>
<li>Flaga osób niebinarych <a href="https://commons.wikimedia.org/wiki/File:Nonbinary_flag.svg" target="_blank" rel="noopener">Kye Rowan</a> (public domain)</li>
<li>Wektor łosia: <a href="https://commons.wikimedia.org/wiki/File:Coat_of_arms_of_Ontario,_Canada.svg" target="_blank" rel="noopener">Herb Ontario</a> (public domain)</li>
<li>Wektor łoma: <a href="https://www.vecteezy.com/free-vector/crowbar" target="_blank" rel="noopener">Vecteezy</a></li>
</ul>
</details>
</figure>
</div>
<section>
<BlogEntriesList :posts="['etymologia-odmiana-neutratywów', 'neutratywy-zdrobnienia']" />
</section>
<details class="border mb-3">
<summary class="bg-light p-3">
<h4 class="h5 d-inline">
<T>nouns.neuterNouns.extended.header</T>
</h4>
</summary>
<div class="border-top">
<div class="d-flex flex-column flex-md-row">
<div v-for="numerus of numeri" :key="numerus" class="p-3">
<h5>{{ symbolsByNumeri[numerus] }} <T>nouns.{{ numerus }}</T></h5>
<NounsDeclension :word="{ spelling: '', declension: neuterExtendedDeclension }" :numerus />
</div>
</div>
</div>
</details>
<details class="border mb-3">
<summary class="bg-light p-3">
<h4 class="h5 d-inline">
<T>nouns.neuterNouns.alt.header</T>
</h4>
</summary>
<div class="border-top">
<div class="p-4 pb-0">
<T>nouns.neuterNouns.alt.info</T>
</div>
<div class="table-responsive">
<table class="table table-striped table-hover table-fixed-3">
<thead>
<tr>
<th v-for="templates in neuterAltDeclensionTemplates" class="text-nowrap">
<ul class="list-inline mb-0">
<li v-for="template in templates" class="list-inline-item">
<nuxt-link :to="`/${template}`">
{{ template }}
</nuxt-link>
</li>
</ul>
</th>
</tr>
</thead>
<tbody>
<tr v-for="(declensions, spelling) in neuterAltDeclension" :key="spelling">
<td v-for="declension in declensions">
<NounsDeclension :word="{ spelling: removeSuffix(spelling, declension.singular!.m[0]), declension }" condense />
</td>
</tr>
</tbody>
</table>
</div>
</div>
</details>
<Separator icon="atom-alt" />
<NounsDictionary load />
</Page>
</template>
<style lang="scss" scoped>
@import "../../../app/assets/variables";
figure {
width: 100%;
max-width: 24rem;
padding: $spacer;
img {
width: 100%;
}
figcaption {
font-size: $small-font-size;
}
}
@include media-breakpoint-up('md') {
figure {
min-width: 20rem;
}
}
</style>