Merge branch 'main' into pl-pronouns-new

# Conflicts:
#	locale/tr/translations.suml
This commit is contained in:
Andrea Vos 2023-02-11 12:33:46 +01:00
commit e31c8306f9
46 changed files with 261 additions and 104 deletions

View File

@ -3,7 +3,7 @@
## Installation
```
git clone git@gitlab.com:Avris/Zaimki.git
git clone git@gitlab.com:PronounsPage/PronounsPage.git
```
We're using FontAwesome Pro, so to set up a local copy without having a FA license,

View File

@ -5,6 +5,20 @@
<script>
import {sleep} from "../src/helpers";
const COLOURS = [
'#C71585',
'#dc3545',
'#fd7e14',
'#ffc107',
'#198754',
'#20c997',
'#0dcaf0',
'#0d6efd',
'#6610f2',
'#6f42c1',
'#d63384',
];
export default {
props: {
label: { required: true },
@ -28,6 +42,19 @@
this.drawChart();
},
methods: {
buildDataset(data, label, colour) {
return {
label: label,
data: this.cumulative
? this.accumulate(Object.values(data))
: Object.values(data),
fill: false,
borderColor: colour,
}
},
isMultiDataset(data) {
return Object.values(data).length > 0 && typeof(Object.values(data)[0]) === 'object';
},
async drawChart() {
let tries = 0;
while (window.Chart === undefined) {
@ -36,18 +63,22 @@
return;
}
}
let colourIndex = 0;
new Chart(this.$el.getContext('2d'), {
type: this.type,
data: {
labels: Object.keys(this.data),
datasets: [{
label: this.label,
data: this.cumulative
? this.accumulate(Object.values(this.data))
: Object.values(this.data),
fill: false,
borderColor: '#C71585',
}],
labels: this.isMultiDataset(this.data)
? Array.from(Object.values(this.data).reduce((carry, item) => {
for (let key in item) {
carry.add(key);
}
return carry;
}, new Set()))
: Object.keys(this.data),
datasets: this.isMultiDataset(this.data)
? Object.entries(this.data).map(([key, data]) => this.buildDataset(data, key, COLOURS[colourIndex++ % COLOURS.length]))
: [ this.buildDataset(this.data, this.label, COLOURS[0]) ],
},
options: this.options,
});

View File

@ -1,6 +1,7 @@
<template>
<div class="card">
<div class="card-header">
<p v-if="header" class="h6 d-inline-block me-3"><strong>{{header}}</strong></p>
<div class="form-check form-check-inline"
v-for="(desc, m) in {'': 'Hide chart', 'daily': 'Daily change chart', 'cumulative': 'Cumulative chart'}">
<label class="form-check-label">
@ -22,6 +23,7 @@
name: { required: true },
data: { required: true },
init: { 'default': '' },
header: {},
},
data() {
return {

View File

@ -43,7 +43,7 @@
</a>
</li>
<li class="mb-2">
<a href="https://gitlab.com/Avris/Zaimki/-/boards">
<a href="https://gitlab.com/PronounsPage/PronounsPage/-/boards">
<Icon v="code-merge"/>
<T>contact.contribute.technical.footer</T>
</a>
@ -148,7 +148,7 @@
</LocaleLink>
</li>
<li class="mb-2">
<a href="https://gitlab.com/Avris/Zaimki" target="_blank" rel="noopener">
<a href="https://gitlab.com/PronounsPage/PronounsPage" target="_blank" rel="noopener">
<Icon v="gitlab" set="b"/>
Source code
</a>

View File

@ -86,14 +86,20 @@
<Icon v="exclamation-triangle"/>
This language version is still under construction!
</div>
<div v-show="showCensus" class="container">
<div class="alert alert-info mb-0">
<a href="#" class="float-end" @click.prevent="dismissCensus">
<Icon v="times"/>
</a>
<Icon v="user-chart" size="2" class="d-inline-block float-start me-3 mt-2"/>
<T>census.banner</T>
</div>
<div v-show="showCensus" class="container position-relative">
<nuxt-link :to="`/${config.census.route}`">
<img src="/img-local/census/census-banner-horizontal.png"
alt="Na tle flagi osób niebinarnych (cztery poziome pasy: żółty, biały, fioletowy, czarny) tekst: Trwa trzecia edycja największego badania języka osób niebinarnych! Jakich form używamy? Jak unikamy upłciowionego języka? Jak nasz język rozwija się i zmienia? Wypełnij naszą ankietę, by pomóc nam to zbadać! Niebinarny Spis Powszechny 2023; zaimki.pl/spis"
class="w-100 shadow d-none d-md-block"/>
<img src="/img-local/census/census-banner-horizontal-mobile.png"
alt="Na tle flagi osób niebinarnych (cztery poziome pasy: żółty, biały, fioletowy, czarny) tekst: Trwa trzecia edycja największego badania języka osób niebinarnych! Jakich form używamy? Jak unikamy upłciowionego języka? Jak nasz język rozwija się i zmienia? Wypełnij naszą ankietę, by pomóc nam to zbadać! Niebinarny Spis Powszechny 2023; zaimki.pl/spis"
class="w-100 shadow d-md-none"/>
</nuxt-link>
<a href="#"
class="position-absolute p-2 bg-primary text-white btn-dismiss"
@click.prevent="dismissCensus">
<Icon v="times"/>
</a>
</div>
<div v-if="$user() && $user().bannedReason" class="alert alert-danger mb-0 container">
<p class="h4 mb-2">
@ -308,7 +314,8 @@
const finished = !!parseInt(window.localStorage.getItem(`census-${this.config.census.edition}-finished`) || 0);
const dismissed = !!parseInt(window.localStorage.getItem(`census-${this.config.census.edition}-dismissed`) || 0);
const alreadyIn = this.$route.path === '/' + this.config.census.route;
if (!this.config.census.enabled || finished || dismissed || this.censusDismissed || alreadyIn) {
const isHomepage = this.$route.path === '/';
if (!this.config.census.enabled || (!isHomepage && (finished || dismissed)) || this.censusDismissed || alreadyIn) {
return false;
}
const start = DateTime.fromISO(this.config.census.start).toLocal();
@ -470,4 +477,14 @@
top: -0.1em;
}
}
.btn-dismiss {
top: 0;
right: 0;
opacity: 0.5;
transition: opacity .25s ease-in-out;
&:hover {
opacity: 1;
}
}
</style>

View File

@ -8,7 +8,7 @@
<h2>
@{{user.username}}
</h2>
<p v-if="profile.teamName || profile.footerName" class="mb-2">
<p v-if="user.team || profile.teamName || profile.footerName" class="mb-2">
<nuxt-link :to="`/${config.contact.team.route}`" class="badge bg-primary text-white">
<Icon v="collective-logo.svg" class="inverted"/>
<T>contact.team.member</T>

View File

@ -526,7 +526,7 @@ contact:
technical:
header: 'Submit a pull request'
description: >
Technical tasks are managed on {https://gitlab.com/Avris/Zaimki/-/boards=this kanban board}.
Technical tasks are managed on {https://gitlab.com/PronounsPage/PronounsPage/-/boards=this kanban board}.
Just pick an unassigned task from the “To Do” column, assign it to yourself and start working on it.
Don't hesitate to ask questions.
footer: 'Technical tasks'
@ -798,7 +798,7 @@ crud:
footer:
license: >
{https://gitlab.com/Avris/Zaimki=Source code} and content are licensed under {/license=OQL}.
{https://gitlab.com/PronounsPage/PronounsPage=Source code} and content are licensed under {/license=OQL}.
links: 'Contact, social media'
legal: 'Legal'
financial: 'Financial transparency'

View File

@ -455,7 +455,7 @@ contact:
vorschlagen“ und folgen Sie den Anweisungen.
technical:
description: >
Technische Aufgaben werden auf {https://gitlab.com/Avris/Zaimki/-/boards=diesem kanban board} verwaltet.
Technische Aufgaben werden auf {https://gitlab.com/PronounsPage/PronounsPage/-/boards=diesem kanban board} verwaltet.
Wählen einfach eine nicht zugewiesene Aufgabe aus der Spalte „To Do“ aus, weise sie dir selbst zu und
beginne mit der Arbeit daran. Zögere nicht, Fragen zu stellen.
header: 'Reiche eine Pull-Anfrage ein'
@ -680,7 +680,7 @@ crud:
footer:
license: >
{https://gitlab.com/Avris/Zaimki=Der Quellcode} und der Inhalt sind unter der {/license=OQL} Lizenz veröffentlicht.
{https://gitlab.com/PronounsPage/PronounsPage=Der Quellcode} und der Inhalt sind unter der {/license=OQL} Lizenz veröffentlicht.
links: 'Kontakt & Social Media'
legal: 'Rechtliches'
financial: 'Finanzielle Transparenz'

View File

@ -13,7 +13,7 @@ We'll invite you to our [Teams](https://www.microsoft.com/en-us/microsoft-365/mi
and offer support.
If you know how to work with tools like Git, Yarn, JavaScript etc.,
you can head to [the source code](https://gitlab.com/Avris/Zaimki/),
you can head to [the source code](https://gitlab.com/PronounsPage/PronounsPage/),
clone the repository and set up the project according to the instruction in README.md.
You'll be able to see the changes in real time as you make them.
Push them to a separate branch and submit a pull request.
@ -22,7 +22,7 @@ Otherwise, don't worry. You can still help localise the project without knowing
I'll prepare all the necessary files in a dedicated Teams channel you can just start editing.
Alternatively:
Click [here](https://gitlab.com/Avris/Zaimki/-/archive/main/Zaimki-main.zip) to download a zip file with the code.
Click [here](https://gitlab.com/PronounsPage/PronounsPage/-/archive/main/Zaimki-main.zip) to download a zip file with the code.
Don't mind everything else, just create a copy of the `/locale/_base` directory,
calling the copy according to the new language code.
Instead of `_base` (a version of English modified for this purpose) you can use a different language as a base,
@ -32,7 +32,7 @@ eg. for translating into Slavic languages it might be better to start with `pl`
Inside that directory hides all the config and code related to the specific language.
The most important files are:
## [translation.suml](https://gitlab.com/Avris/Zaimki/-/blob/main/locale/_base/translations.suml)
## [translation.suml](https://gitlab.com/PronounsPage/PronounsPage/-/blob/main/locale/_base/translations.suml)
This file contains translation keys with corresponding values.
Basically, keep everything before the colon as it is, and translate everything after the colon into your language.
@ -44,7 +44,7 @@ Also, remember that not everything in this file will necessarily require a trans
For instance, the Polish locale contains translations for the “names” module,
which a new language will probably not have right away (although might be added later).
## [config.suml](https://gitlab.com/Avris/Zaimki/-/blob/main/locale/_base/config.suml)
## [config.suml](https://gitlab.com/PronounsPage/PronounsPage/-/blob/main/locale/_base/config.suml)
Although this file is very important, I don't expect you to handle it, if you're not a technical person.
Still, some translations are also included there, so please go through it and see if you can do something useful there.
@ -54,16 +54,16 @@ This file contains for example a definition of [links](/link), [authors](/contac
You can either adjust those definitions directly in this file if you can,
or you can just put them in some Word or Excel file for me to handle.
## [pronouns/pronouns.tsv](https://gitlab.com/Avris/Zaimki/-/blob/main/locale/_base/pronouns/pronouns.tsv)
## [pronouns/pronouns.tsv](https://gitlab.com/PronounsPage/PronounsPage/-/blob/main/locale/_base/pronouns/pronouns.tsv)
This file is a table of pronouns. You can edit it in Excel or just a text editor (just keep the tabs where they were).
Columns from `pronoun_subject` to `reflexive` can be removed and replaced with other forms relevant to your language.
## [pronouns/pronounGroups.tsv](https://gitlab.com/Avris/Zaimki/-/blob/main/locale/_base/pronouns/pronounGroups.tsv)
## [pronouns/pronounGroups.tsv](https://gitlab.com/PronounsPage/PronounsPage/-/blob/main/locale/_base/pronouns/pronounGroups.tsv)
This table contains the groups of pronouns.
## [pronouns/examples.tsv](https://gitlab.com/Avris/Zaimki/-/blob/main/locale/_base/pronouns/examples.tsv)
## [pronouns/examples.tsv](https://gitlab.com/PronounsPage/PronounsPage/-/blob/main/locale/_base/pronouns/examples.tsv)
This table contains the example sentences with placeholders for the pronouns to be inserted into.
If plural sentence is the same as singular you can leave the second column empty.

View File

@ -652,7 +652,7 @@ contact:
technical:
header: 'Submit a pull request'
description: >
Technical tasks are managed on {https://gitlab.com/Avris/Zaimki/-/boards=this kanban board}.
Technical tasks are managed on {https://gitlab.com/PronounsPage/PronounsPage/-/boards=this kanban board}.
Just pick an unassigned task from the “To Do” column, assign it to yourself and start working on it.
Don't hesitate to ask questions.
footer: 'Technical tasks'
@ -942,7 +942,7 @@ crud:
footer:
license: >
{https://gitlab.com/Avris/Zaimki=Source code} and content are licensed under {/license=OQL}.
{https://gitlab.com/PronounsPage/PronounsPage=Source code} and content are licensed under {/license=OQL}.
links: 'Contact & social media'
legal: 'Legal'
financial: 'Financial transparency'
@ -1486,3 +1486,31 @@ calendar:
ukraine:
header: 'We stand with Ukraine.'
link: '{https://supportukrainenow.org=Here''s how you can support them.}'
seo:
keywords:
- 'pronouns'
- 'inclusive language'
- 'inclusivity'
- 'diversity'
- 'dei'
- 'queer'
- 'lgbtq'
- 'lgbt'
- 'lgbtq page'
- 'lgbt page'
- 'not binary'
- 'non binary'
- 'nonbinary'
- 'non-binary'
- 'gay rights'
- 'trans rights'
- 'lesbian'
- 'gay'
- 'transgender'
- 'trans'
- 'lgbtq youth'
- 'lgbt youth'
- 'i support lgbt'
- 'i support lgbtq'
- 'i support gay rights'

View File

@ -610,7 +610,7 @@ crud:
footer:
license: >
{https://gitlab.com/Avris/Zaimki=Source code} and content are licensed under {/license=OQL}.
{https://gitlab.com/PronounsPage/PronounsPage=Source code} and content are licensed under {/license=OQL}.
links: 'Contact, social media'
legal: 'Legal'
financial: 'Financial transparency' # TODO

View File

@ -501,7 +501,7 @@ contact:
technical:
header: 'Envía una solicitud de cambio'
description: >
Las tareas técnicas son manejadas en {https://gitlab.com/Avris/Zaimki/-/boards=esta tabla kanban}. Solo
Las tareas técnicas son manejadas en {https://gitlab.com/PronounsPage/PronounsPage/-/boards=esta tabla kanban}. Solo
escoje una tarea no asignada desde la columna “To Do”, asígnatela y empieza a trabajar en ella. No dudes
en hacer preguntas.
footer: 'Tareas técnicas'
@ -669,7 +669,7 @@ crud:
footer:
license: >
{https://gitlab.com/Avris/Zaimki=El código fuente} y el contenido estan publicado bajo la licencia {/license=OQL}.
{https://gitlab.com/PronounsPage/PronounsPage=El código fuente} y el contenido estan publicado bajo la licencia {/license=OQL}.
links: 'Contacto, redes sociales'
legal: 'Asuntos legales'
financial: 'Transparencia financiera'

View File

@ -565,7 +565,7 @@ crud:
footer:
license: >
{https://gitlab.com/Avris/Zaimki=Code source} et le contenu sont sous licence {/license=OQL}.
{https://gitlab.com/PronounsPage/PronounsPage=Code source} et le contenu sont sous licence {/license=OQL}.
links: 'Contact, réseaux sociaux'
legal: 'Légal'
financial: 'Transparence financière'

View File

@ -539,7 +539,7 @@ crud:
footer:
license: >
{https://gitlab.com/Avris/Zaimki=O código-fonte} e o conteúdo são licenciados sob a licença {/license=OQL}.
{https://gitlab.com/PronounsPage/PronounsPage=O código-fonte} e o conteúdo são licenciados sob a licença {/license=OQL}.
links: 'Contato, redes sociais'
legal: 'Legal' # TODO
financial: 'Financial transparency' # TODO

View File

@ -486,7 +486,7 @@ contact:
technical:
header: 'Submit a pull request'
description: >
Technical tasks are managed on {https://gitlab.com/Avris/Zaimki/-/boards=this kanban board}.
Technical tasks are managed on {https://gitlab.com/PronounsPage/PronounsPage/-/boards=this kanban board}.
Just pick an unassigned task from the “To Do” column, assign it to yourself and start working on it.
Don't hesitate to ask questions.
footer: 'Technical tasks'
@ -653,7 +653,7 @@ crud:
footer:
license: >
{https://gitlab.com/Avris/Zaimki=Il codice sorgente} e i contenuti sono rilasciati secondo la licenza {/license=OQL}.
{https://gitlab.com/PronounsPage/PronounsPage=Il codice sorgente} e i contenuti sono rilasciati secondo la licenza {/license=OQL}.
links: 'Contatti, social media'
legal: 'Questioni legali'
financial: 'Trasparenza finanziaria'

View File

@ -398,7 +398,7 @@ contact:
technical:
header: 'プルリクエストを提出'
description: >
テクニカルなタスクは{https://gitlab.com/Avris/Zaimki/-/boards=この「看板」}で管理します。「To
テクニカルなタスクは{https://gitlab.com/PronounsPage/PronounsPage/-/boards=この「看板」}で管理します。「To
Do」の欄から割り当てられていないタスクを選んでください。質問がある場合はお気軽に
footer: 'テクニカルなタスク'
@ -619,7 +619,7 @@ crud:
footer:
license: >
{https://gitlab.com/Avris/Zaimki=ソースコード}と内容は{/license=「定見的クィアライセンス」}の下でライセンスされています。
{https://gitlab.com/PronounsPage/PronounsPage=ソースコード}と内容は{/license=「定見的クィアライセンス」}の下でライセンスされています。
links: '連絡先、ソーシャルメディア'
legal: '法的情報'
financial: '財務報告'

View File

@ -475,7 +475,7 @@ contact:
technical:
header: '풀 요청 제출하기'
description: >
기술 작업은 {https://gitlab.com/Avris/Zaimki/-/boards=이 칸반 보드}에서 관리됩니다. "To Do"열에서 할당이 돼있지 않은 작업들 중 한 직접 자신에게
기술 작업은 {https://gitlab.com/PronounsPage/PronounsPage/-/boards=이 칸반 보드}에서 관리됩니다. "To Do"열에서 할당이 돼있지 않은 작업들 중 한 직접 자신에게
할당하고 작업을 시작하세요. 질문이 있으면 주저하지 말고 물어 주세요.
footer: '기술 작업'
@ -484,7 +484,7 @@ support:
description: >
서버, 도메인, 스티커 등을 추가하는걸 구입하려는 경우,
아래 링크를 사용할 수 있습니다.
bankAccount: 'Bank transfer' # TODO
bankAccount: '은행 송금'
user:
header: '계정'
@ -493,7 +493,7 @@ user:
login:
help: '로그인하거나 계정을 만들려면 소셜 미디어 버튼을 사용하거나 아래 필드에 이메일을 입력한 다음 우편함으로 받을 코드를 확인하세요.'
placeholder: '이메일(또는 이미 등록된 사용자 이름)'
action: '로그인' # TODO: 'Log in / register'
action: '로그인' # TODO: '로그인 또는 등록'
emailSent: '6자리 코드가 포함된 이메일을 보내드렸습니다. 여기에 입력하세요. 코드는 일회용이며 15분 동안 유효합니다.'
userNotFound: '사용자를 찾을 수 없습니다.'
email:
@ -697,7 +697,7 @@ crud:
footer:
license: >
{https://gitlab.com/Avris/Zaimki=소스 코드}의 콘텐츠는 {/license=OQL}의라이센스 됐습니다.
{https://gitlab.com/PronounsPage/PronounsPage=소스 코드}의 콘텐츠는 {/license=OQL}의라이센스 됐습니다.
links: '연락처, SNS'
legal: '합법'
financial: '재무 투명성'
@ -789,13 +789,13 @@ terms:
enbyphobia: '비공포증'
queerphobia: 'queerphobia'
exclusionism: 'queer exclusionism'
sexism: 'sexism'
sexism: '성 차별'
misogyny: '여성 혐오'
harassment: '괴롭힘'
impersonation: '사칭'
selfHarm: 'encouraging self-harm and/or suicide' # TODO
childPornography: 'child pornography'
unlawfulConduct: 'unlawful conduct'
unlawfulConduct: '불법 행위를'
misinformation: '오보'
doxxing: 'sharing of someone else''s personal data'
spam: '스팸'
@ -956,7 +956,7 @@ flags:
Abrosexual: 'Abrosexual'
Achillean: 'Aquilean{inflection}'
Alloromantic_Asexual: 'Alorrománti{inflection_c} asexual'
Agender: 'Agénero'
Agender: '에이젠더'
Ambiamorous: 'Ambiamoros{inflection}'
Anarcha-Queer: 'Anarco-queer'
Androgyne: 'Andrógin{inflection}'
@ -964,29 +964,29 @@ flags:
Aporagender: 'Aporagénero'
Archaeopronouns: 'Arqueopronombres'
Aroace: 'Arro-as'
Aromantic: 'Arrománti{inflection_c}'
Aromantic: '로맨틱 끌림{inflection_c}'
Aromantic_Allosexual: 'Arrománti{inflection_c} alosexual'
Asexual: 'Asexual'
Asexual: '무성애자'
Autigender: 'Autisgénero'
Bear: 'Oso'
Bicurious: 'Bicurios{inflection}'
Bigender: 'Bigénero'
Bigender: '바이젠더'
Biromantic: 'Birrománti{inflection_c}'
Bisexual: 'Bisexual'
Bisexual: '양성애자'
Butch: 'Butch'
Ceteroromantic: 'Ceterorrománti{inflection_c}'
Ceterosexual: 'Ceterosexual'
Cis_Ally: 'Aliad{inflection} cis'
Demiboy: 'Demichico'
Demigender: 'Demigénero'
Demigirl: 'Demichica'
Demiboy: '일부 남성'
Demigender: '일부 성별'
Demigirl: '일부 여성'
Demiromantic: 'Demirrománti{inflection_c}'
Demisexual: 'Demisexual'
Diamoric: 'Diamóri{inflection_c}'
Enbian: 'Nobian{inflection}'
Fa*afafine: 'Fa''afafine'
Femme: 'Afeminad{inflection}'
Gay: 'Gay'
Gay: '게이'
Gender_Questioning: 'Cuestionándose el género'
Genderfae: 'Hadagénero'
Genderfaun: 'Faunogénero'
@ -998,14 +998,14 @@ flags:
Gynesexual: 'Ginosexual'
Heteroflexible: 'Heteroflexible'
Heteroromantic: 'Heterorrománti{inflection_c}'
Heterosexual: 'Heterosexual'
Heterosexual: '이성애자'
Hijra: 'Hijra'
Homoflexible: 'Homoflexible'
Homoromantic: 'Homorrománti{inflection_c}'
Intersex: 'Intersexual'
LGBTQ: 'LGBTQ'
Leather_Pride: 'Orgullo de cuero'
Lesbian: 'Lesbiana'
Lesbian: '레즈비언'
Lesbiromantic: 'Lesbirrománti{inflection_c}'
Maverique: 'Maverique'
Monoamorous: 'Monoamoros{inflection}'
@ -1014,7 +1014,7 @@ flags:
Nebularomantic: 'Nebulosarrománti{inflection_c}'
Neopronouns: 'Neopronombres'
Neutrois: 'Neutrés'
Nonbinary: 'No binari{inflection}'
Nonbinary: '논바이너리{inflection}'
Omnisexual: 'Omnisexual'
Omniromantic: 'Omnirrománti{inflection_c}'
Oriented_Aroace: 'Arro-as orientad{inflection}'
@ -1036,7 +1036,7 @@ flags:
Straight_Ally: 'Aliad{inflection} hetero'
Toric: 'Tóri{inflection_c}'
Transfeminine: 'Transfemenin{inflection}'
Transgender: 'Transgénero'
Transgender: '성전환자'
Transmasculine: 'Transmasculin{inflection}'
Transneutral: 'Transneutr{inflection}'
Trigender: 'Trigénero'

View File

@ -539,7 +539,7 @@ crud:
footer:
license: >
{https://gitlab.com/Avris/Zaimki=El kodiche fuente} i el kontenido estan publikados debasho de la lisensia {/license=OQL}.
{https://gitlab.com/PronounsPage/PronounsPage=El kodiche fuente} i el kontenido estan publikados debasho de la lisensia {/license=OQL}.
links: 'Kontakto, redes sosyalas, apoyo'
legal: 'Kozas legalas'
financial: 'Transparensia pekunaria'

View File

@ -614,7 +614,7 @@ crud:
footer:
license: >
{https://gitlab.com/Avris/Zaimki=De broncode} en inhoud vallen onder de {/license=OQL} licentie.
{https://gitlab.com/PronounsPage/PronounsPage=De broncode} en inhoud vallen onder de {/license=OQL} licentie.
links: 'Contact, sociale media'
legal: 'Juridisch'
financial: 'Financiële transparantie'

View File

@ -410,7 +410,7 @@ contact:
instruksjonene.
technical:
description: >
Tekniske oppgaver er behandlet på {https://gitlab.com/Avris/Zaimki/-/boards=dette kanban brettet}. Bare
Tekniske oppgaver er behandlet på {https://gitlab.com/PronounsPage/PronounsPage/-/boards=dette kanban brettet}. Bare
velg en oppgave som ikke er tilordnet, tildel den til deg selv og begynn å jobb. Ikke nøl med å spørre
spørsmål.
header: 'Send inn en pull forespørsel'
@ -651,7 +651,7 @@ crud:
footer:
license: >
{https://gitlab.com/Avris/Zaimki=Kildekode} og Innholdet er lisensiert under {/license=OQL}-lisensen.
{https://gitlab.com/PronounsPage/PronounsPage=Kildekode} og Innholdet er lisensiert under {/license=OQL}-lisensen.
links: 'Kontakt, sosiale medier'
legal: 'Legal' # TODO
financial: 'Økonomisk gjennomsiktighet'

View File

@ -41,7 +41,7 @@ i sugerować te same końcówki neutratywów dla rzeczowników o tych samych ko
albo o tym samym pochodzeniu (np. -um dla wyrazów zapożyczonych z łaciny).
Możesz przejrzeć nasze schematy końcówek, otwierając formularz zgłaszania propozycji,
a następnie klikając na przycisk „Użyj szablonu”
(albo i bezpośrednio [w kodzie źródłowym](https://gitlab.com/Avris/Zaimki/-/blob/main/locale/pl/nouns/nounTemplates.tsv)).
(albo i bezpośrednio [w kodzie źródłowym](https://gitlab.com/PronounsPage/PronounsPage/-/blob/main/locale/pl/nouns/nounTemplates.tsv)).
Słowotwórstwo oparte o istniejące sufiksy sprawia też, że odmiana neutratywów powinna być względnie intuicyjna.
W razie problemów, zawsze można oczywiście sprawdzić tabelki odmiany w [Słowniku Neutratywów](/neutratywy),

View File

@ -4,7 +4,7 @@
{disable_twemoji}
<img src="/img-local/spis-2022.png" class="hero d-none" alt=""/>
<img src="/img-local/census/spis-2022.png" class="hero d-none" alt=""/>
Wyników drugiej edycji Niebinarnego Spisu Powszechnego jesteśmy ciekawe chyba jeszcze bardziej niż [pierwszej](/blog/spis-2022).
Możemy bowiem nie tylko zastosować zeszłoroczne doświadczenie, by ulepszyć pytania i analizę odpowiedzi,

View File

@ -740,6 +740,11 @@ links:
icon: 'play-circle'
url: 'https://www.youtube.com/watch?v=MYH2qGScEVk'
headline: 'FEMINATYWY. O genderowej nowomowie słów kilka. | Maciej Makselon | TEDxKoszalin'
-
icon: 'newspaper'
url: 'https://ryzykonarracyjne.pl/blog/artykuly/ryzykowne-artykuly-feminatywy-w-rpg-a-na-co-to-komu/'
headline: 'Ryzykowne artykuły: Feminatywy w RPG? A na co to komu?'
extra: ' Ryzyko Narracyjne'
mediaGuests:
-
icon: 'newspaper'
@ -1958,7 +1963,7 @@ census:
- ['ono/eno', '„ono jest fajne”, „lubię eno zwierzątko”']
- ['onu/jenu', '„onu jest fajnu”, „lubię jenu zwierzątko”']
- ['onu/jejo', '„onu jest fajnu”, „lubię jejgo zwierzątko”']
- ['onu/jejo', '„onu jest fajnu”, „lubię jejo zwierzątko”']
- ['ne/nego', '„ne jest fajnu”, „lubię nego zwierzątko”']
- ['oni/ich', '„oni są fajni”, „lubię ich zwierzątko”']

Binary file not shown.

After

Width:  |  Height:  |  Size: 244 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 259 KiB

View File

Before

Width:  |  Height:  |  Size: 113 KiB

After

Width:  |  Height:  |  Size: 113 KiB

View File

Before

Width:  |  Height:  |  Size: 104 KiB

After

Width:  |  Height:  |  Size: 104 KiB

View File

@ -1240,7 +1240,7 @@ contact:
technical:
header: 'Zgłoś pull requesta'
description: >
Technicznymi zadaniami zarządzamy poprzez {https://gitlab.com/Avris/Zaimki/-/boards=ten kanban board}.
Technicznymi zadaniami zarządzamy poprzez {https://gitlab.com/PronounsPage/PronounsPage/-/boards=ten kanban board}.
Wybierz nieprzypisanego do nikogo taska z kolumny „To Do”, przypisz go do siebie i zacznij pracę.
Nie bój się zadawać pytań.
footer: 'Zadania techniczne'
@ -1528,9 +1528,10 @@ census:
Jesteś osobą niebinarną? Też weź udział w Spisie!
subscribe:
encouragement: >
Chcesz otrzymywać przypominajki o przyszłych edycjach Spisu?
Możesz podać poniżej swój adres email wyślemy jedną wiadomość rocznie, zero spamu,
i oczywiście bez powiązania adresu z Twoimi odpowiedziami.
Nie chcesz przegapić kolejnej edycji? Raportu z wnioskami ze Spisu?
Możesz podać tutaj swój adres email wyślemy Ci dwie wiadomości rocznie:
gdy zacznie się nowa edycja, i gdy opublikujemy raport ze Spisu.
Oczywiście bez powiązania adresu z Twoimi odpowiedziami.
action: 'Zapisz się'
unsubscribe: 'Wypisz się'
success: 'Zapisałośmy Twój adres, przypomnimy o następnej edycji!'
@ -1574,7 +1575,7 @@ crud:
footer:
license: >
{https://gitlab.com/Avris/Zaimki=Kod źródłowy} oraz treści są udostępnione na licencji {/license=OQL}.
{https://gitlab.com/PronounsPage/PronounsPage=Kod źródłowy} oraz treści są udostępnione na licencji {/license=OQL}.
links: 'Kontakt, social media'
legal: 'Prawne'
financial: 'Przejrzystość finansowa'

View File

@ -425,7 +425,7 @@ contact:
technical:
footer: 'Tarefas Técnicas'
description: >
Trabalhos mais técnicos são gerenciados {https://gitlab.com/Avris/Zaimki/-/boards= neste painel Kanban}.
Trabalhos mais técnicos são gerenciados {https://gitlab.com/PronounsPage/PronounsPage/-/boards= neste painel Kanban}.
Basta escolher uma tarefa na coluna "To Do", atribuí-la a si mesme e começar a trabalhar nela. Se tiver
alguma dúvida, pergunte-nos.
header: 'Solicite alterações no código '
@ -697,7 +697,7 @@ crud:
footer:
license: >
{https://gitlab.com/Avris/Zaimki=O código-fonte} e o conteúdo são licenciados sob a licença {/license=OQL}.
{https://gitlab.com/PronounsPage/PronounsPage=O código-fonte} e o conteúdo são licenciados sob a licença {/license=OQL}.
links: 'Contato, redes sociais'
legal: 'Assuntos jurídicos'
financial: 'Transparência financeira'

View File

@ -564,7 +564,7 @@ contact:
technical:
header: 'Trimite un pull request'
description: >
Sarcinile tehnice sunt gestionate pe {https://gitlab.com/Avris/Zaimki/-/boards=această tablă kanban}.
Sarcinile tehnice sunt gestionate pe {https://gitlab.com/PronounsPage/PronounsPage/-/boards=această tablă kanban}.
Doar alege o sarcină neasociată din coloana “To Do”, asociază-ți-o și apucă-te să lucrezi la ea.
Să nu-ți fie frică să pui întrebări!
footer: 'Sarcini tehnice'
@ -831,7 +831,7 @@ crud:
footer:
license: >
{https://gitlab.com/Avris/Zaimki=Codul sursă} și conținutul sunt sub licența {/license=OQL}.
{https://gitlab.com/PronounsPage/PronounsPage=Codul sursă} și conținutul sunt sub licența {/license=OQL}.
links: 'Date de contact, rețele de socializare, suportă cauza'
legal: 'Legal'
financial: 'Transparență financiară'

View File

@ -508,7 +508,7 @@ contact:
header: 'Отправить запрос на изменения'
footer: 'Технические задачи '
description: >
Технические задания перечислены {https://gitlab.com/Avris/Zaimki/-/boards=здесь}. Просто выберите
Технические задания перечислены {https://gitlab.com/PronounsPage/PronounsPage/-/boards=здесь}. Просто выберите
невыполненные задания в списке“To Do” и займитесь ими. Не стесняйтесь задавать вопросы!
translationMode:
action: 'Предложить перевод'
@ -772,7 +772,7 @@ crud:
footer:
license: >
{https://gitlab.com/Avris/Zaimki=Исходный код} и содержимое лицензированы {/license=OQL}.
{https://gitlab.com/PronounsPage/PronounsPage=Исходный код} и содержимое лицензированы {/license=OQL}.
links: 'Связаться с нами, социальные сети'
legal: 'Юридические вопросы'
financial: 'Финансовая прозрачность'

View File

@ -478,7 +478,7 @@ contact:
technical:
header: 'Skicka in pull requests'
description: >
Tekniska sysslor hanteras på {https://gitlab.com/Avris/Zaimki/-/boards=denna kanbantavla}.
Tekniska sysslor hanteras på {https://gitlab.com/PronounsPage/PronounsPage/-/boards=denna kanbantavla}.
Välj bara en otilldelad syssla från “To Do”-kolumnen, tilldela dig själv den och börja arbeta med den.
Var inte rädd för att fråga frågor.
footer: 'Tekniska sysslor'
@ -717,7 +717,7 @@ crud:
footer:
license: >
{https://gitlab.com/Avris/Zaimki=Källkod} och innehåll är licensierad under {/license=OQL}.
{https://gitlab.com/PronounsPage/PronounsPage=Källkod} och innehåll är licensierad under {/license=OQL}.
links: 'Kontakt och sociala medier'
legal: 'Rättslig'
financial: 'Finansiell insyn'

View File

@ -503,7 +503,7 @@ contact:
technical:
header: 'Submit a pull request'
description: >
Technical tasks are managed on {https://gitlab.com/Avris/Zaimki/-/boards=this kanban board}.
Technical tasks are managed on {https://gitlab.com/PronounsPage/PronounsPage/-/boards=this kanban board}.
Just pick an unassigned task from the “To Do” column, assign it to yourself and start working on it.
Don't hesitate to ask questions.
footer: 'Technical tasks'
@ -745,7 +745,7 @@ crud:
footer:
license: >
{https://gitlab.com/Avris/Zaimki=Source code} and content are licensed under {/license=OQL}.
{https://gitlab.com/PronounsPage/PronounsPage=Source code} and content are licensed under {/license=OQL}.
links: 'Contact, social media'
legal: 'Legal'
financial: 'Financial transparency'

View File

@ -465,7 +465,7 @@ user:
emailSent: 'Sana 6 haneli bir e-posta gönderdik. Buraya gir. Kod sadece tek kullanımlık ve 15 dakika süre zafında geçerlidir.'
userNotFound: 'Kullanıcı bulunamadı.'
email:
subject: 'Giriş kodun %code%'
subject: 'Giriş kodun {{code}}'
content: |
E-posta hesabını onaylamak için sana verilen tek kullanımlık kodu siteye gir: %code%.
Eğer bu kodu sen istemediysen sadece bu iletiyi görmezden gel.
@ -719,7 +719,7 @@ crud:
footer:
license: >
{https://gitlab.com/Avris/Zaimki=Source code} and content are licensed under {/license=OQL}.
{https://gitlab.com/PronounsPage/PronounsPage=Source code} and content are licensed under {/license=OQL}.
links: 'İletişim, sosyal medya, destek'
legal: 'Legal'
financial: 'Financial transparency'

View File

@ -582,7 +582,7 @@ contact:
працювати.
technical:
description: >
Керування технічними завданнями здійснюється на {https://gitlab.com/Avris/Zaimki/-/boards=цій канбан
Керування технічними завданнями здійснюється на {https://gitlab.com/PronounsPage/PronounsPage/-/boards=цій канбан
дощці}. Просто виберіть непоставлене завдання зі стовпця "To Do", призначте його собі та починайте над
ним працювати. Не соромтеся задавати запитання.
header: 'Надішліть запит на отримання'
@ -843,7 +843,7 @@ crud:
footer:
license: >
{https://gitlab.com/Avris/Zaimki=Вихідний код} та вміст ліцензовані {/license=OQL}.
{https://gitlab.com/PronounsPage/PronounsPage=Вихідний код} та вміст ліцензовані {/license=OQL}.
links: 'Зв''язатися з нами, соціальні мережі'
legal: 'Легально'
financial: 'Фінансова прозорість'

View File

@ -533,7 +533,7 @@ crud:
footer:
license: >
{https://gitlab.com/Avris/Zaimki=Source code} and content are licensed under {/license=OQL}.
{https://gitlab.com/PronounsPage/PronounsPage=Source code} and content are licensed under {/license=OQL}.
links: 'Contact, social media'
legal: 'Legal' # TODO
financial: 'Financial transparency' # TODO

View File

@ -371,7 +371,7 @@ contact:
technical:
header: '提交合併請求'
description: >
技術相關的工作可在{https://gitlab.com/Avris/Zaimki/-/boards=此看板}上找到。
技術相關的工作可在{https://gitlab.com/PronounsPage/PronounsPage/-/boards=此看板}上找到。
您只需在“To-Do”欄上挑選一項任務把您自己指派到該任務即可開始。如有問題請盡管問。
footer: '技術任務'
@ -601,7 +601,7 @@ crud:
footer:
license: >
{https://gitlab.com/Avris/Zaimki=原始碼}及內容採用{/license=OQL}條款授權。
{https://gitlab.com/PronounsPage/PronounsPage=原始碼}及內容採用{/license=OQL}條款授權。
links: '聯絡我們'
legal: '法律相關'
financial: '財務報告' # TODO: could also be 財政透明

View File

@ -13,6 +13,7 @@ const locale = config.locale;
const locales = buildLocaleList(locale);
const title = translations.title;
const description = translations.description;
const keywords = (translations?.seo?.keywords || []).join(', ')
const banner = process.env.BASE_URL + '/api/banner/zaimki.png';
const colour = '#C71585';
const logo = fs.readFileSync(__dirname + '/static/logo/logo.svg').toString('utf-8').replace('/></svg>', 'fill="currentColor"/></svg>');
@ -116,6 +117,8 @@ export default {
{ hid: 'description', name: 'description', content: description },
{ hid: 'keywords', name: 'keywords', content: keywords },
{ name: 'viewport', content: 'width=device-width, initial-scale=1' },
{ hid: 'apple-mobile-web-app-title', name: 'apple-mobile-web-app-title', content: title },
{ hid: 'theme-color', name: 'theme-color', content: colour },
@ -231,6 +234,7 @@ export default {
PLAUSIBLE_API_HOST: process.env.PLAUSIBLE_API_HOST,
HEARTBEAT_LINK: process.env.HEARTBEAT_LINK,
VERSION: version,
KEYWORDS: keywords,
},
serverMiddleware: [
'~/server/no-ssr.js',

View File

@ -18,9 +18,11 @@
<h3>
Year:
<button class="btn btn-sm btn-primary" @click="year--" :disabled="year - 1 < min.year"><Icon v="caret-left"/></button>
{{year}}
<button class="btn btn-sm btn-primary" @click="year++" :disabled="year + 1 > max.year"><Icon v="caret-right"/></button>
<button v-for="y in years" :key="y"
:class="['btn', y === year ? 'btn-primary' : 'btn-outline-primary', 'mx-2']"
@click="year = y">
{{y}}
</button>
</h3>
<div class="table-responsive">
@ -96,11 +98,17 @@
<label for="paypal_email" class="form-label">Email</label>
<input v-model="transferDetails.paypal_email" type="email" class="form-control" id="paypal_email" placeholder="paypal-user@email.com">
</div>
<div v-if="transferMethod === 'charity'" class="mb-3">
<div v-if="transferMethod !== 'skip' && transferMethod !== 'charity'" class="mb-3">
<p><em>There's a legal limit of how much we can send as volunteer allowance, so please also pick a charity in case it's exceeded.</em></p>
</div>
<div v-if="transferMethod !== 'skip'" class="mb-3">
<p><em>You can also leave the charity details empty in that case we'll set aside that share and pick a charity together at the end of year, or whenever need arises.</em></p>
</div>
<div v-if="transferMethod !== 'skip'" class="mb-3">
<label for="charity_name" class="form-label">Charity name</label>
<input v-model="transferDetails.charity_name" type="text" class="form-control" id="charity_name" placeholder="Trevor Project">
</div>
<div v-if="transferMethod === 'charity'" class="mb-3">
<div v-if="transferMethod !== 'skip'" class="mb-3">
<label for="charity_url" class="form-label">Link</label>
<input v-model="transferDetails.charity_url" type="email" class="form-control" id="charity_url" placeholder="https://www.thetrevorproject.org/">
</div>
@ -126,8 +134,14 @@ import {min, max, closed, MONTHS, AREAS, TRANSFER_METHODS} from '../src/timeshee
export default {
data() {
const years = [];
for (let y = min.year; y <= max.year; y++) {
years.push(y);
}
return {
year: max.year,
years,
min,
max,
closed,

View File

@ -20,6 +20,7 @@
<li>{{countResponses.usable}} <T>census.repliesUsable</T></li>
<li><nuxt-link :to="`/${config.census.route}/admin`">{{countResponses.awaiting}} <T>census.repliesAwaiting</T></nuxt-link></li>
</ul>
<ChartSet name="useful responses" :data="countResponses.graphs" init="cumulative" class="mb-3"/>
</div>
</section>
@ -304,7 +305,7 @@
return head({
title: this.$t('census.headerLong'),
description: this.$t('census.description')[0],
banner: 'img-local/census-banner.png',
banner: 'img-local/census/census-banner.png',
});
},
};

View File

@ -15,11 +15,15 @@
</div>
<div v-else>
<div class="alert alert-info">
{{queue.count}} <T>census.repliesAwaiting</T>
<p>{{queue.count}} <T>census.repliesAwaiting</T></p>
<label class="form-check form-switch d-inline-block">
<input class="form-check-input" type="checkbox" role="switch" v-model="hideEmpty">
Hide answers with no write-ins
</label>
</div>
<ol>
<li v-for="(question, i) in config.census.questions">
<li v-for="(question, i) in config.census.questions" :key="i" v-if="!hideEmpty || queue.next.writins[i.toString()] || (queue.next.answers[i.toString()] && question.type === 'textarea')">
<p>{{question.question}}</p>
<p v-if="queue.next.answers[i.toString()]" :class="question.type === 'textarea' ? 'bg-primary text-white p-2 rounded' : ''"><strong>{{queue.next.answers[i.toString()]}}</strong></p>
<p v-if="queue.next.writins[i.toString()]" class="bg-primary text-white p-2 rounded"><strong><em>{{queue.next.writins[i.toString()]}}</em></strong></p>
@ -42,6 +46,7 @@
data() {
return {
queue: undefined,
hideEmpty: false,
}
},
async mounted() {

View File

@ -195,6 +195,8 @@
<script>
import { head } from "../src/helpers";
import opinions from '../src/opinions';
import {buildPronoun} from "../src/buildPronoun";
import {pronouns} from "../src/data";
export default {
data() {
@ -304,11 +306,21 @@
},
},
head() {
const mainPronoun = buildPronoun(pronouns, this.config.profile.flags.defaultPronoun);
return head({
title: `@${this.username}`,
description: this.profile ? this.profile.description : null,
banner: `api/banner/@${this.username}.png`,
noindex: true,
keywords: this.profile ? this.profile.flags.map(flag => {
const flagName = process.env.FLAGS[flag];
return flag.startsWith('-')
? flagName
: mainPronoun.format(
this.$t(`flags.${flagName.replace(/ /g, '_').replace(/'/g, `*`)}`, {}, false) || flagName
);
}) : undefined,
});
},
}

View File

@ -3,8 +3,9 @@ import SQL from 'sql-template-strings';
import sha1 from 'sha1';
import {ulid} from "ulid";
import Papa from 'papaparse';
import {handleErrorAsync} from "../../src/helpers";
import {groupBy, handleErrorAsync, ImmutableArray} from "../../src/helpers";
import {intersection, difference} from "../../src/sets";
import {buildChart} from "../../src/stats";
const getIp = req => {
try {
@ -94,6 +95,17 @@ router.post('/census/submit', handleErrorAsync(async (req, res) => {
return res.json(id);
}));
const normaliseCensusGraph = (graph) => {
const newGraph = {};
Object.entries(graph).forEach(([date, count]) => {
date = date.substring(5); // remove year
if (date.startsWith('02')) { // only accept February (other months might appear because of a timezone bug, dismiss them)
newGraph[date] = count;
}
});
return newGraph;
}
router.get('/census/count', handleErrorAsync(async (req, res) => {
if (!req.isGranted('census')) {
return res.json({
@ -101,6 +113,7 @@ router.get('/census/count', handleErrorAsync(async (req, res) => {
nonbinary: 0,
usable: 0,
awaiting: 0,
graphs: {},
});
}
@ -131,6 +144,22 @@ router.get('/census/count', handleErrorAsync(async (req, res) => {
AND edition = ${global.config.census.edition}
AND troll IS NULL
`)).c,
graphs: Object.fromEntries(
Object.entries(
groupBy(
await req.db.all(SQL`
SELECT edition, id
FROM census
WHERE locale = ${global.config.locale}
AND relevant = 1
AND troll = 0
`),
r => r.edition
)
).map(([edition, rows]) => {
return [edition, normaliseCensusGraph(buildChart(rows, false))];
})
),
});
}));

View File

@ -92,7 +92,7 @@ const fetchProfiles = async (db, username, self) => {
for (let profile of profiles) {
const links = JSON.parse(profile.links).map(l => normaliseUrl(l)).filter(l => !!l);
const linksMetadata = {};
for (let link of await db.all(SQL`SELECT * FROM links WHERE url IN (`.append(links.map(k => `'${k}'`).join(',')).append(SQL`)`))) {
for (let link of await db.all(SQL`SELECT * FROM links WHERE url IN (`.append(links.map(k => `'${k.replace(/'/g, "''")}'`).join(',')).append(SQL`)`))) {
linksMetadata[link.url] = {
favicon: link.favicon,
relMe: JSON.parse(link.relMe),

View File

@ -18,7 +18,7 @@ export const buildList = (fn, ...args) => {
return list;
}
export const head = ({title, description, banner, noindex = false}) => {
export const head = ({title, description, banner, noindex = false, keywords}) => {
const meta = { meta: [] };
if (title) {
@ -48,6 +48,10 @@ export const head = ({title, description, banner, noindex = false}) => {
meta.meta.push({ hid: 'robots', name: 'robots', content: 'noindex'});
}
if (keywords) {
meta.meta.push({ hid: 'keywords', name: 'keywords', content: process.env.KEYWORDS + ', ' + keywords.join(', ')});
}
return meta;
}

View File

@ -51,7 +51,7 @@ const deepGet = (obj, path) => {
const formatDate = d => `${d.getFullYear()}-${(d.getMonth() + 1).toString().padStart(2, '0')}-${d.getDate().toString().padStart(2, '0')}`;
module.exports.buildChart = (rows) => {
module.exports.buildChart = (rows, cumulative = true) => {
const dates = rows.map(row => new Date(decodeTime(row.id)));
const chart = {};
@ -71,6 +71,10 @@ module.exports.buildChart = (rows) => {
chart[formatDate(date)]++;
}
if (!cumulative) {
return chart;
}
const cumChart = {};
let cum = 0;
for (let [date, count] of Object.entries(chart)) {