mirror of
https://gitlab.com/PronounsPage/PronounsPage.git
synced 2025-09-22 12:03:25 -04:00
#2 rozdzielenie liczby dla form grzecznościowych i dla pozostałych form
This commit is contained in:
parent
3a3828a4c2
commit
1601648caf
@ -2,7 +2,7 @@
|
|||||||
<div v-if="sources.length">
|
<div v-if="sources.length">
|
||||||
<h2 class="h4">
|
<h2 class="h4">
|
||||||
<Icon v="books"/>
|
<Icon v="books"/>
|
||||||
Przykłady z literatury i prasy:
|
Przykłady z literatury, prasy, filmów i seriali:
|
||||||
</h2>
|
</h2>
|
||||||
|
|
||||||
<LiteratureMenu/>
|
<LiteratureMenu/>
|
||||||
|
@ -33,6 +33,12 @@
|
|||||||
<span v-else>{{part.str}}</span>
|
<span v-else>{{part.str}}</span>
|
||||||
</span>
|
</span>
|
||||||
</li>
|
</li>
|
||||||
|
<li v-for="example in examplesHonorific" class="my-1">
|
||||||
|
<span v-for="part in example.parts[selectedTemplate.pluralHonorific]">
|
||||||
|
<strong v-if="part.variable">{{selectedTemplate.morphemes[part.str]}}</strong>
|
||||||
|
<span v-else>{{part.str}}</span>
|
||||||
|
</span>
|
||||||
|
</li>
|
||||||
</ul>
|
</ul>
|
||||||
</section>
|
</section>
|
||||||
|
|
||||||
@ -64,13 +70,14 @@
|
|||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
import { examples, templates } from "~/src/data";
|
import { examples, examplesHonorific, templates } from "~/src/data";
|
||||||
import { buildTemplate, getTemplate } from "../src/buildTemplate";
|
import { buildTemplate, getTemplate } from "../src/buildTemplate";
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
data() {
|
data() {
|
||||||
return {
|
return {
|
||||||
examples: examples,
|
examples: examples,
|
||||||
|
examplesHonorific: examplesHonorific,
|
||||||
templates: templates,
|
templates: templates,
|
||||||
getTemplate: getTemplate,
|
getTemplate: getTemplate,
|
||||||
|
|
||||||
|
@ -66,26 +66,32 @@
|
|||||||
<p>
|
<p>
|
||||||
Przykłady użycia w zdaniu:
|
Przykłady użycia w zdaniu:
|
||||||
</p>
|
</p>
|
||||||
<ul>
|
<template v-for="(typeExamples, isHonorific) in {0: examples, 1: examplesHonorific}">
|
||||||
<li v-for="example in examples">
|
<ul>
|
||||||
<span v-for="part in example.parts[selectedTemplate.plural]">
|
<li v-for="example in typeExamples">
|
||||||
<input v-if="part.variable" v-model="selectedTemplate.morphemes[part.str]"
|
<span v-for="part in example.parts[bool(isHonorific) ? selectedTemplate.pluralHonorific : selectedTemplate.plural]">
|
||||||
:class="['form-control form-input p-0', {'active': selectedMorpheme === part.str}]"
|
<input v-if="part.variable" v-model="selectedTemplate.morphemes[part.str]"
|
||||||
:size="selectedTemplate.morphemes[part.str] ? selectedTemplate.morphemes[part.str].length : 0"
|
:class="['form-control form-input p-0', {'active': selectedMorpheme === part.str}]"
|
||||||
maxlength="7"
|
:size="selectedTemplate.morphemes[part.str] ? selectedTemplate.morphemes[part.str].length : 0"
|
||||||
@focus="selectedMorpheme = part.str"
|
maxlength="7"
|
||||||
@blur="selectedMorpheme = ''"
|
@focus="selectedMorpheme = part.str"
|
||||||
/>
|
@blur="selectedMorpheme = ''"
|
||||||
<span v-else>{{part.str}}</span>
|
/>
|
||||||
</span>
|
<span v-else>{{part.str}}</span>
|
||||||
</li>
|
</span>
|
||||||
</ul>
|
</li>
|
||||||
<div class="my-3">
|
</ul>
|
||||||
<div class="custom-control custom-switch">
|
<div class="my-3">
|
||||||
<input type="checkbox" class="custom-control-input" id="plural" v-model="selectedTemplate.plural">
|
<div class="custom-control custom-switch" v-if="bool(isHonorific)">
|
||||||
<label class="custom-control-label" for="plural">Liczba mnoga</label>
|
<input type="checkbox" class="custom-control-input" id="pluralHonorific" v-model="selectedTemplate.pluralHonorific">
|
||||||
|
<label class="custom-control-label" for="pluralHonorific">Liczba mnoga <Icon v="level-up"/></label>
|
||||||
|
</div>
|
||||||
|
<div class="custom-control custom-switch" v-else>
|
||||||
|
<input type="checkbox" class="custom-control-input" id="plural" v-model="selectedTemplate.plural">
|
||||||
|
<label class="custom-control-label" for="plural">Liczba mnoga <Icon v="level-up"/></label>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</template>
|
||||||
</div>
|
</div>
|
||||||
<div class="card-footer" v-if="customise && link">
|
<div class="card-footer" v-if="customise && link">
|
||||||
<div class="input-group my-2">
|
<div class="input-group my-2">
|
||||||
@ -157,7 +163,7 @@
|
|||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
import { examples, templates } from "~/src/data";
|
import { examples, examplesHonorific, templates } from "~/src/data";
|
||||||
import Compressor from "../src/compressor";
|
import Compressor from "../src/compressor";
|
||||||
import ClipboardJS from 'clipboard';
|
import ClipboardJS from 'clipboard';
|
||||||
import { getTemplate } from "../src/buildTemplate";
|
import { getTemplate } from "../src/buildTemplate";
|
||||||
@ -166,6 +172,7 @@
|
|||||||
data() {
|
data() {
|
||||||
return {
|
return {
|
||||||
examples: examples,
|
examples: examples,
|
||||||
|
examplesHonorific: examplesHonorific,
|
||||||
templates: templates,
|
templates: templates,
|
||||||
getTemplate: getTemplate,
|
getTemplate: getTemplate,
|
||||||
|
|
||||||
@ -216,6 +223,9 @@
|
|||||||
methods: {
|
methods: {
|
||||||
focusLink() {
|
focusLink() {
|
||||||
setTimeout(_ => this.$refs.link.select(), 100);
|
setTimeout(_ => this.$refs.link.select(), 100);
|
||||||
|
},
|
||||||
|
bool(v) {
|
||||||
|
return !!parseInt(v);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -142,9 +142,10 @@ const escape = s => {
|
|||||||
}
|
}
|
||||||
|
|
||||||
export class Template {
|
export class Template {
|
||||||
constructor (description, morphemes, plural, sources = [], aliases = [], history = null) {
|
constructor (description, morphemes, plural, pluralHonorific, sources = [], aliases = [], history = null) {
|
||||||
this.description = description;
|
this.description = description;
|
||||||
this.morphemes = morphemes
|
this.morphemes = morphemes
|
||||||
|
this.pluralHonorific = pluralHonorific;
|
||||||
this.plural = plural;
|
this.plural = plural;
|
||||||
this.sources = sources;
|
this.sources = sources;
|
||||||
this.aliases = aliases;
|
this.aliases = aliases;
|
||||||
@ -160,7 +161,7 @@ export class Template {
|
|||||||
}
|
}
|
||||||
|
|
||||||
clone() {
|
clone() {
|
||||||
return new Template(this.description, clone(this.morphemes), this.plural);
|
return new Template(this.description, clone(this.morphemes), this.plural, this.pluralHonorific);
|
||||||
}
|
}
|
||||||
|
|
||||||
equals(other) {
|
equals(other) {
|
||||||
@ -171,6 +172,7 @@ export class Template {
|
|||||||
return [
|
return [
|
||||||
...Object.values(this.morphemes).map(s => escape(s)),
|
...Object.values(this.morphemes).map(s => escape(s)),
|
||||||
this.plural ? 1 : 0,
|
this.plural ? 1 : 0,
|
||||||
|
this.pluralHonorific ? 1 : 0,
|
||||||
escape(this.description),
|
escape(this.description),
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
@ -180,16 +182,16 @@ export class Template {
|
|||||||
}
|
}
|
||||||
|
|
||||||
static from(data) {
|
static from(data) {
|
||||||
if (data.length === morphemes.length + 1) {
|
if (data.length === morphemes.length + 2) {
|
||||||
data.push('');
|
data.push('');
|
||||||
}
|
}
|
||||||
|
|
||||||
if (data.length !== morphemes.length + 2
|
if (data.length !== morphemes.length + 3
|
||||||
|| data[0].length === 0
|
|| data[0].length === 0
|
||||||
|| data[data.length - 1].length > 48
|
|| data[data.length - 1].length > 48
|
||||||
|| data[data.length - 2].length === 0
|
|
||||||
|| ![0, 1].includes(parseInt(data[morphemes.length]))
|
|| ![0, 1].includes(parseInt(data[morphemes.length]))
|
||||||
|| data.slice(1, data.length - 2).filter(s => s.length > 7).length
|
|| ![0, 1].includes(parseInt(data[morphemes.length + 1]))
|
||||||
|
|| data.slice(1, data.length - 3).filter(s => s.length > 7).length
|
||||||
) {
|
) {
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
@ -199,6 +201,6 @@ export class Template {
|
|||||||
m[morphemes[parseInt(i)]] = data[parseInt(i)];
|
m[morphemes[parseInt(i)]] = data[parseInt(i)];
|
||||||
}
|
}
|
||||||
|
|
||||||
return new Template(data[data.length - 1], m, parseInt(data[morphemes.length]) === 1)
|
return new Template(data[data.length - 1], m, parseInt(data[morphemes.length]) === 1, parseInt(data[morphemes.length + 1]) === 1)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
34
src/data.js
34
src/data.js
@ -13,7 +13,11 @@ export const examples = [
|
|||||||
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('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('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.'),
|
Example.parse('Każd{adjective_n} z nich chciał{verb_end_about} czego innego.|Wszys{pronoun_all} z nich chci{verb_middle} czego innego.'),
|
||||||
Example.parse('To miło, że nas {honorific} odwiedził{verb_end_about}.|To miło, że nas {honorific} odwiedzi{verb_end_about}.'),
|
];
|
||||||
|
|
||||||
|
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ę?'),
|
||||||
];
|
];
|
||||||
|
|
||||||
const zapachKosmosu = new Book(
|
const zapachKosmosu = new Book(
|
||||||
@ -77,7 +81,7 @@ export const templates = {
|
|||||||
'verb_go': 'szedł',
|
'verb_go': 'szedł',
|
||||||
'verb_o': 'ó',
|
'verb_o': 'ó',
|
||||||
'honorific': 'pan',
|
'honorific': 'pan',
|
||||||
}, false, [
|
}, false, false, [
|
||||||
confirmatio,
|
confirmatio,
|
||||||
perfekcyjna,
|
perfekcyjna,
|
||||||
silaNizsza,
|
silaNizsza,
|
||||||
@ -103,7 +107,7 @@ export const templates = {
|
|||||||
'verb_go': 'szł',
|
'verb_go': 'szł',
|
||||||
'verb_o': 'o',
|
'verb_o': 'o',
|
||||||
'honorific': 'pani',
|
'honorific': 'pani',
|
||||||
}, false, [
|
}, false, false, [
|
||||||
smoczaPerla,
|
smoczaPerla,
|
||||||
zapachKosmosu,
|
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ójcza sprawiedliwość', 'tłum. Danuta Górska', 2015, [], 'postać niebinarna używająca form żeńskich'),
|
||||||
@ -129,7 +133,7 @@ export const templates = {
|
|||||||
'verb_go': 'szł',
|
'verb_go': 'szł',
|
||||||
'verb_o': 'o',
|
'verb_o': 'o',
|
||||||
'honorific': 'pań',
|
'honorific': 'pań',
|
||||||
}, false, [
|
}, false, false, [
|
||||||
new Article(
|
new Article(
|
||||||
'Małgorzata Goślińska',
|
'Małgorzata Goślińska',
|
||||||
'Zrobimy z ciebie mężczyznę',
|
'Zrobimy z ciebie mężczyznę',
|
||||||
@ -259,7 +263,7 @@ export const templates = {
|
|||||||
'verb_go': 'szł',
|
'verb_go': 'szł',
|
||||||
'verb_o': 'o',
|
'verb_o': 'o',
|
||||||
'honorific': 'pań',
|
'honorific': 'pań',
|
||||||
}, false, [], []),
|
}, false, false, [], []),
|
||||||
'ono/jejgo': new Template('Rodzaj nijaki', {
|
'ono/jejgo': new Template('Rodzaj nijaki', {
|
||||||
'pronoun_n': 'ono',
|
'pronoun_n': 'ono',
|
||||||
'pronoun_g': 'jejgo',
|
'pronoun_g': 'jejgo',
|
||||||
@ -279,7 +283,7 @@ export const templates = {
|
|||||||
'verb_go': 'szł',
|
'verb_go': 'szł',
|
||||||
'verb_o': 'o',
|
'verb_o': 'o',
|
||||||
'honorific': 'pań',
|
'honorific': 'pań',
|
||||||
}, false, [], []),
|
}, false, false, [], []),
|
||||||
'ono/jeno': new Template('Neorodzaj gramatyczny, z elementami rodzaju nijakiego i dukaizmów', {
|
'ono/jeno': new Template('Neorodzaj gramatyczny, z elementami rodzaju nijakiego i dukaizmów', {
|
||||||
'pronoun_n': 'ono',
|
'pronoun_n': 'ono',
|
||||||
'pronoun_g': 'jeno',
|
'pronoun_g': 'jeno',
|
||||||
@ -299,7 +303,7 @@ export const templates = {
|
|||||||
'verb_go': 'szł',
|
'verb_go': 'szł',
|
||||||
'verb_o': 'o',
|
'verb_o': 'o',
|
||||||
'honorific': 'pań',
|
'honorific': 'pań',
|
||||||
}, false, [], []),
|
}, false, false, [], []),
|
||||||
'ono/jenu': new Template('Rodzaj nijaki z dukaizmami zamiast form męskich', {
|
'ono/jenu': new Template('Rodzaj nijaki z dukaizmami zamiast form męskich', {
|
||||||
'pronoun_n': 'ono',
|
'pronoun_n': 'ono',
|
||||||
'pronoun_g': 'jenu',
|
'pronoun_g': 'jenu',
|
||||||
@ -319,7 +323,7 @@ export const templates = {
|
|||||||
'verb_go': 'szł',
|
'verb_go': 'szł',
|
||||||
'verb_o': 'o',
|
'verb_o': 'o',
|
||||||
'honorific': 'pań',
|
'honorific': 'pań',
|
||||||
}, false, [], []),
|
}, false, false, [], []),
|
||||||
onu: new Template('Rodzaj postpłciowy, dukaizmy', {
|
onu: new Template('Rodzaj postpłciowy, dukaizmy', {
|
||||||
'pronoun_n': 'onu',
|
'pronoun_n': 'onu',
|
||||||
'pronoun_g': 'jenu',
|
'pronoun_g': 'jenu',
|
||||||
@ -339,7 +343,7 @@ export const templates = {
|
|||||||
'verb_go': 'szł',
|
'verb_go': 'szł',
|
||||||
'verb_o': 'o',
|
'verb_o': 'o',
|
||||||
'honorific': 'panu',
|
'honorific': 'panu',
|
||||||
}, false, [
|
}, false, false, [
|
||||||
new Article(
|
new Article(
|
||||||
'Rozmowa Ewy Tomaszewicz z Loë Fjorsigviss i Magdaleną Stonawską',
|
'Rozmowa Ewy Tomaszewicz z Loë Fjorsigviss i Magdaleną Stonawską',
|
||||||
'Tęcza w fandomie',
|
'Tęcza w fandomie',
|
||||||
@ -386,7 +390,7 @@ export const templates = {
|
|||||||
'verb_go': 'szł',
|
'verb_go': 'szł',
|
||||||
'verb_o': 'o',
|
'verb_o': 'o',
|
||||||
'honorific': 'panæ',
|
'honorific': 'panæ',
|
||||||
}, false, [], ['onæ/jæ']),
|
}, false, false, [], ['onæ/jæ']),
|
||||||
oni: new Template('Formy męskoosobowe liczby mnogiej', {
|
oni: new Template('Formy męskoosobowe liczby mnogiej', {
|
||||||
'pronoun_n': 'oni',
|
'pronoun_n': 'oni',
|
||||||
'pronoun_g': 'ich',
|
'pronoun_g': 'ich',
|
||||||
@ -406,7 +410,7 @@ export const templates = {
|
|||||||
'verb_go': 'szli',
|
'verb_go': 'szli',
|
||||||
'verb_o': 'o',
|
'verb_o': 'o',
|
||||||
'honorific': 'państwo',
|
'honorific': 'państwo',
|
||||||
}, true, [
|
}, true, true, [
|
||||||
new Book('Karolina Fedyk', 'Skrzydła', '', 2019),
|
new Book('Karolina Fedyk', 'Skrzydła', '', 2019),
|
||||||
new Book('Weronika Mamuna', 'Obca, która była', 'w: „Tęczowe i fantastyczne”', 2020),
|
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),
|
new Book('Agnieszka Żak', 'Dorastanie w czasach cyborgizacji', 'w: „Tęczowe i fantastyczne”', 2020),
|
||||||
@ -430,7 +434,7 @@ export const templates = {
|
|||||||
'verb_go': 'szły',
|
'verb_go': 'szły',
|
||||||
'verb_o': 'o',
|
'verb_o': 'o',
|
||||||
'honorific': 'państwo',
|
'honorific': 'państwo',
|
||||||
}, true, [
|
}, true, true, [
|
||||||
new Book('Artur Nowrot', 'Smocze dziecko', 'w: „Tęczowe i fantastyczne”', 2020),
|
new Book('Artur Nowrot', 'Smocze dziecko', 'w: „Tęczowe i fantastyczne”', 2020),
|
||||||
], ['one/ich']),
|
], ['one/ich']),
|
||||||
onx: new Template('Formy z iksem', {
|
onx: new Template('Formy z iksem', {
|
||||||
@ -452,7 +456,7 @@ export const templates = {
|
|||||||
'verb_go': 'szł',
|
'verb_go': 'szł',
|
||||||
'verb_o': 'o',
|
'verb_o': 'o',
|
||||||
'honorific': 'panx',
|
'honorific': 'panx',
|
||||||
}, false, [], ['onx/jex']),
|
}, false, false, [], ['onx/jex']),
|
||||||
on_: new Template('Formy z podkreślnikiem', {
|
on_: new Template('Formy z podkreślnikiem', {
|
||||||
'pronoun_n': 'on_',
|
'pronoun_n': 'on_',
|
||||||
'pronoun_g': 'je_',
|
'pronoun_g': 'je_',
|
||||||
@ -472,7 +476,7 @@ export const templates = {
|
|||||||
'verb_go': 'szł',
|
'verb_go': 'szł',
|
||||||
'verb_o': 'o',
|
'verb_o': 'o',
|
||||||
'honorific': 'pan_',
|
'honorific': 'pan_',
|
||||||
}, false, [
|
}, false, false, [
|
||||||
new Book('R.S. Benedict', 'Moje angielskie imię', 'w: „Nowa Fantastyka” 3/2019', 2019),
|
new Book('R.S. Benedict', 'Moje angielskie imię', 'w: „Nowa Fantastyka” 3/2019', 2019),
|
||||||
], ['on_/je_']),
|
], ['on_/je_']),
|
||||||
onø: new Template('Formy z samogłoską nosową', {
|
onø: new Template('Formy z samogłoską nosową', {
|
||||||
@ -514,7 +518,7 @@ export const templates = {
|
|||||||
'verb_go': 'szł',
|
'verb_go': 'szł',
|
||||||
'verb_o': 'o',
|
'verb_o': 'o',
|
||||||
'honorific': 'pań',
|
'honorific': 'pań',
|
||||||
}, false, [
|
}, false, false, [
|
||||||
new Book(
|
new Book(
|
||||||
'Greg Egan',
|
'Greg Egan',
|
||||||
'Stan wyczerpania',
|
'Stan wyczerpania',
|
||||||
|
Loading…
x
Reference in New Issue
Block a user