From 20608912b7276ca1c6640cc169a2c8ac5846a1f8 Mon Sep 17 00:00:00 2001 From: Andrea Date: Wed, 29 Dec 2021 15:04:26 +0100 Subject: [PATCH] [links] sibling projects --- components/Footer.vue | 25 +++++++++++++++++-------- components/Icon.vue | 3 +++ components/Siblings.vue | 22 ++++++++++++++++++++++ locale/_base/translations.suml | 1 + locale/de/translations.suml | 1 + locale/en/translations.suml | 1 + locale/eo/translations.suml | 1 + locale/es/translations.suml | 1 + locale/fr/translations.suml | 1 + locale/gl/translations.suml | 1 + locale/ja/translations.suml | 1 + locale/lad/translations.suml | 1 + locale/nl/translations.suml | 3 ++- locale/no/translations.suml | 1 + locale/pl/translations.suml | 1 + locale/pt/translations.suml | 1 + locale/ru/translations.suml | 3 ++- locale/yi/translations.suml | 1 + locale/zh/translations.suml | 1 + routes/links.vue | 7 +++++++ static/img/cake.png | Bin 0 -> 5829 bytes static/img/emojiflags.png | Bin 0 -> 10009 bytes static/img/spectrum.png | Bin 0 -> 1538 bytes 23 files changed, 67 insertions(+), 10 deletions(-) create mode 100644 components/Siblings.vue create mode 100644 static/img/cake.png create mode 100644 static/img/emojiflags.png create mode 100644 static/img/spectrum.png diff --git a/components/Footer.vue b/components/Footer.vue index d1b74419..082fb6a6 100644 --- a/components/Footer.vue +++ b/components/Footer.vue @@ -39,6 +39,19 @@ + +
+ +
+ +
@@ -90,18 +103,14 @@ +

- sharequotation.colon + footer.siblingquotation.colon

-
- -
-
- -
+
- +
diff --git a/components/Icon.vue b/components/Icon.vue index 981cb59a..9e6bc31c 100644 --- a/components/Icon.vue +++ b/components/Icon.vue @@ -25,6 +25,9 @@ if (this.v.endsWith('.svg')) { return `/img/${this.inverse ? this.v.replace('.svg', '-inverse.svg') : this.v}`; } + if (this.v.endsWith('.png')) { + return `/img/${this.inverse ? this.v.replace('.png', '-inverse.png') : this.v}`; + } if (this.v.startsWith('https://')) { return this.v; } diff --git a/components/Siblings.vue b/components/Siblings.vue new file mode 100644 index 00000000..c09025e7 --- /dev/null +++ b/components/Siblings.vue @@ -0,0 +1,22 @@ + diff --git a/locale/_base/translations.suml b/locale/_base/translations.suml index 8f28877c..5db1cb07 100644 --- a/locale/_base/translations.suml +++ b/locale/_base/translations.suml @@ -615,6 +615,7 @@ footer: links: 'Contact, social media' legal: 'Legal' technical: 'Technical' + sibling: 'Sibling projects' notFound: message: 'Page was not found' diff --git a/locale/de/translations.suml b/locale/de/translations.suml index 415ad062..3d6265c5 100644 --- a/locale/de/translations.suml +++ b/locale/de/translations.suml @@ -505,6 +505,7 @@ footer: links: 'Kontakt, Social Media' legal: 'Rechtliches' technical: 'Technisches' + sibling: 'Sibling projects' # TODO notFound: message: 'Seite wurde nicht gefunden' diff --git a/locale/en/translations.suml b/locale/en/translations.suml index f8292e61..cc989a21 100644 --- a/locale/en/translations.suml +++ b/locale/en/translations.suml @@ -612,6 +612,7 @@ footer: links: 'Contact & social media' legal: 'Legal' technical: 'Technical' + sibling: 'Sibling projects' notFound: message: 'Page was not found' diff --git a/locale/eo/translations.suml b/locale/eo/translations.suml index 8482e215..f8852fbb 100644 --- a/locale/eo/translations.suml +++ b/locale/eo/translations.suml @@ -600,6 +600,7 @@ footer: links: 'Contact, social media' legal: 'Legal' technical: 'Technical' + sibling: 'Sibling projects' # TODO notFound: message: 'Page was not found' diff --git a/locale/es/translations.suml b/locale/es/translations.suml index ab5f4fd9..a482d26d 100644 --- a/locale/es/translations.suml +++ b/locale/es/translations.suml @@ -523,6 +523,7 @@ footer: links: 'Contacto, redes sociales' legal: 'Asuntos legales' technical: 'Parte técnica' + sibling: 'Sibling projects' # TODO notFound: message: 'Página no encontrada' diff --git a/locale/fr/translations.suml b/locale/fr/translations.suml index 1c80e0d0..a942131e 100644 --- a/locale/fr/translations.suml +++ b/locale/fr/translations.suml @@ -517,6 +517,7 @@ footer: links: 'Contact, réseaux sociaux' legal: 'Légal' technical: 'Technique' + sibling: 'Sibling projects' # TODO notFound: message: 'La page demandée n’a pas été trouvée' diff --git a/locale/gl/translations.suml b/locale/gl/translations.suml index 0e486888..d3d103bf 100644 --- a/locale/gl/translations.suml +++ b/locale/gl/translations.suml @@ -523,6 +523,7 @@ footer: links: 'Contato, redes sociais' legal: 'Legal' # TODO technical: 'Technical' # TODO + sibling: 'Sibling projects' # TODO notFound: message: 'Página não encontrada' diff --git a/locale/ja/translations.suml b/locale/ja/translations.suml index 418604a2..e8fc9155 100644 --- a/locale/ja/translations.suml +++ b/locale/ja/translations.suml @@ -516,6 +516,7 @@ footer: links: '連絡先、ソーシャルメディア' legal: 'Legal' # TODO technical: 'Technical' # TODO + sibling: 'Sibling projects' # TODO notFound: message: 'このページはありません' diff --git a/locale/lad/translations.suml b/locale/lad/translations.suml index 8815edee..4f3ddc08 100644 --- a/locale/lad/translations.suml +++ b/locale/lad/translations.suml @@ -522,6 +522,7 @@ footer: links: 'Kontakto, redes sosyales, apoyo' legal: 'Kozas legales' technical: 'Kozas teknikas' + sibling: 'Sibling projects' # TODO notFound: message: 'Oja no topada' diff --git a/locale/nl/translations.suml b/locale/nl/translations.suml index da832ed2..90e15c3e 100644 --- a/locale/nl/translations.suml +++ b/locale/nl/translations.suml @@ -425,7 +425,7 @@ user: header: 'Multifactorauthenticatie' init: > Scan de QR code (of voer de code hieronder in) in een app die een tijdelijke eenmalige wachtwoord kan genereren (bijv. {https://authy.com/=Authy}) - en voer de eerste gegenereerde token in op de website. + en voer de eerste gegenereerde token in op de website. recovery: header: 'Herstelcode' save: > @@ -515,6 +515,7 @@ footer: links: 'Contact, sociale media' legal: 'Juridisch' technical: 'Technisch' + sibling: 'Sibling projects' # TODO notFound: message: 'Pagina niet gevonden' diff --git a/locale/no/translations.suml b/locale/no/translations.suml index 8100a7a6..3ff77565 100644 --- a/locale/no/translations.suml +++ b/locale/no/translations.suml @@ -520,6 +520,7 @@ footer: links: 'Kontakt, sosiale medier' legal: 'Legal' # TODO technical: 'Technical' # TODO + sibling: 'Sibling projects' # TODO notFound: message: 'Side var ikke funnet' diff --git a/locale/pl/translations.suml b/locale/pl/translations.suml index 87b46234..051a58b6 100644 --- a/locale/pl/translations.suml +++ b/locale/pl/translations.suml @@ -1348,6 +1348,7 @@ footer: links: 'Kontakt, social media' legal: 'Prawne' technical: 'Techniczne' + sibling: 'Projekty-rodzeństwo' notFound: message: 'Strony nie znaleziono' diff --git a/locale/pt/translations.suml b/locale/pt/translations.suml index d2608c8a..ea02bf55 100644 --- a/locale/pt/translations.suml +++ b/locale/pt/translations.suml @@ -519,6 +519,7 @@ footer: links: 'Contato, redes sociais' legal: 'Assuntos legais' technical: 'Parte técnica' + sibling: 'Sibling projects' # TODO notFound: message: 'Página não encontrada' diff --git a/locale/ru/translations.suml b/locale/ru/translations.suml index bd843b35..097a610b 100644 --- a/locale/ru/translations.suml +++ b/locale/ru/translations.suml @@ -474,7 +474,7 @@ user: enter: 'Введите код восстановления' cancel: 'Отменить вход' enabled: 'Включена' - enable: 'Многофакторная аутентификация включена' + enable: 'Многофакторная аутентификация включена' disable: 'Многофакторная аутентификация отключена' disableConfirm: 'Точно ли ты хочешь отключить многофакторная аутентификацию?' @@ -549,6 +549,7 @@ footer: links: 'Связаться с нами, социальные сети' legal: 'Легально' technical: 'Технически' + sibling: 'Sibling projects' # TODO notFound: message: 'Страница не найдена' diff --git a/locale/yi/translations.suml b/locale/yi/translations.suml index 93758ff7..96faad11 100644 --- a/locale/yi/translations.suml +++ b/locale/yi/translations.suml @@ -518,6 +518,7 @@ footer: links: 'Contact, social media' legal: 'Legal' # TODO technical: 'Technical' # TODO + sibling: 'Sibling projects' # TODO notFound: message: 'Page was not found' diff --git a/locale/zh/translations.suml b/locale/zh/translations.suml index 41413d31..b9e44072 100644 --- a/locale/zh/translations.suml +++ b/locale/zh/translations.suml @@ -499,6 +499,7 @@ footer: links: '通訊錄, 社交媒體' legal: 'Legal' # TODO technical: 'Technical' # TODO + sibling: 'Sibling projects' # TODO notFound: message: '找不到頁面' diff --git a/routes/links.vue b/routes/links.vue index 1c6d34d4..bb0f4fe5 100644 --- a/routes/links.vue +++ b/routes/links.vue @@ -11,6 +11,13 @@ +
+

+ + footer.sibling +

+ +
diff --git a/static/img/cake.png b/static/img/cake.png new file mode 100644 index 0000000000000000000000000000000000000000..71af451fe2a091c7c5589345c0154de188c1828e GIT binary patch literal 5829 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 Ai2wiq literal 0 HcmV?d00001 diff --git a/static/img/spectrum.png b/static/img/spectrum.png new file mode 100644 index 0000000000000000000000000000000000000000..5ecad802c6bc957e01e18e16907639ec7c610998 GIT binary patch literal 1538 zcmV+d2L1VoP)KY zK~#9!?VDX}R7DiWe{drB3bltg?nF@^`D5Pd;s%SVebF(g7n zG(3ojkpgM=w))}+8b1kv<8Px{`yuy{K1^M*uwMeTG73swWmuyzhg6#*TGgxw{;hd>y(V+1xY z03V2_clPCykpLzXMf?b+%w3AZm%u|gnaql9bWRp)($|E(9`G1&bPU6aF8~WXJ7yNGeO&y=kN@)k6LtY+ z0nK@J!|{O&IF!ZLX(*OD$%G@Q2s^<2 z0T$o^2Pg@!05ct+Fu(#7IzW41>08B$*DRPl1pNihF<-V9q2X z-$vs2@2~WNje%c}huy8f`;#p7-73EB_s-MlNB-dk#M66$#z~a+{vy7vF{SFdKN3&BIP~lo znmojrfrH0b6foo#XMhmUIaHZmMrCqF+(lT)_Z0-=SWdaCLEuKDX!tS88fmsOvBx(i|p>i#-dmNMBEuKD* zO?j@$=IN$1%7QfuIRC?i1AUWoh8e2lnVA-+CtLZc_269G~pcohxUe|s*9rv*5e z2lAhbr$fvrx@aD(9kBNQwoHK`rp6P%w?OeIAJv88X)*dxKKkk8h5V9Q#M6g?nZRKZ z72(;3Hj3{lW~LZ@$g60`(?*g%59nPVfK|y|BGZ(*mAHL@KW-e8YgMFwUNd0?=qp6> z_nkl`Fn5s4FO&G#X$OE=UWfczndeYqjA6oV36^J2?B-U9ZU>fEQG6qwp4`P6W?5aj o80(TjRHD7KjwwuG3S)}@02(|HZ2iq8ZvX%Q07*qoM6N<$f;P#!1poj5 literal 0 HcmV?d00001