Theme update (#553)

* Start to update the theme

- Ligther colors
- No more border radius
- Buttons are now always colored
- Start to redesign the post page (according to the Figma mockups)

* Fix build script: it now recompiles everytime a scss file changed

* Make sure the article illustrations are not too big

* Make articles wider (70 characters)

* Better contrast between gray shades

* Various improvements

* Better mobile style

* New style for the footer

* Improve comment style

* Better responsiveness again

* Limit the size of the article cover

* Last details?

- Improve buttons on the media page
- Improve lists

* Pin the stdweb version that we use

It changed because I removed Cargo.lock to handle a merge conflict

I could have updated cargo web too, but it mean I should have re-built
the CI docker image and it was taking forever.

* Better contrast for links in the header of the article

* Add a basic privacy policy

* Remove "also"

* Fix a few issues

- Don't watch static/css in build.rs
- Another shade of white
- Remove useless margin rule for error messages
This commit is contained in:
Baptiste Gelez 2019-05-18 13:09:51 +01:00 committed by GitHub
parent c67f65e684
commit ad3a8b92d1
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
49 changed files with 1989 additions and 1174 deletions

872
Cargo.lock generated

File diff suppressed because it is too large Load Diff

View File

@ -41,7 +41,12 @@ fn main() {
let in_dir = PathBuf::from(env::var("CARGO_MANIFEST_DIR").unwrap()).join("templates");
compile_templates(&in_dir, &out_dir).expect("compile templates");
println!("cargo:rerun-if-changed=static/css");
println!("cargo:rerun-if-changed=static/css/_article.scss");
println!("cargo:rerun-if-changed=static/css/_forms.scss");
println!("cargo:rerun-if-changed=static/css/_global.scss");
println!("cargo:rerun-if-changed=static/css/_header.scss");
println!("cargo:rerun-if-changed=static/css/_variables.scss");
println!("cargo:rerun-if-changed=static/css/main.scss");
let mut out = File::create("static/css/main.css").expect("Couldn't create main.css");
out.write_all(
&rsass::compile_scss_file(

View File

@ -4,7 +4,8 @@ version = "0.3.0"
authors = ["Plume contributors"]
[dependencies]
stdweb = "0.4"
stdweb = "=0.4.14"
stdweb-internal-runtime = "=0.1.3"
gettext = { git = "https://github.com/Plume-org/gettext/", rev = "294c54d74c699fbc66502b480a37cc66c1daa7f3" }
gettext-macros = { git = "https://github.com/Plume-org/gettext-macros/", rev = "a7c605f7edd6bfbfbfe7778026bfefd88d82db10" }
gettext-utils = { git = "https://github.com/Plume-org/gettext-macros/", rev = "a7c605f7edd6bfbfbfe7778026bfefd88d82db10" }

View File

@ -281,15 +281,21 @@ msgstr "إنشاء حساب"
msgid "About this instance"
msgstr "عن مثيل الخادوم هذا"
msgid "Privacy policy"
msgstr ""
msgid "Administration"
msgstr "الإدارة"
msgid "Documentation"
msgstr ""
msgid "Source code"
msgstr "الشيفرة المصدرية"
msgid "Matrix room"
msgstr "غرفة المحادثة على ماتريكس"
msgid "Administration"
msgstr "الإدارة"
msgid "Welcome to {}"
msgstr "مرحبا بكم في {0}"
@ -365,6 +371,9 @@ msgstr "احفظ هذه الإعدادات"
msgid "About {0}"
msgstr "عن {0}"
msgid "Runs Plume {0}"
msgstr "مدعوم بـ Plume {0}"
msgid "Home to <em>{0}</em> people"
msgstr "يستضيف <em>{0}</em> أشخاص"
@ -377,8 +386,22 @@ msgstr ""
msgid "Administred by"
msgstr "يديره"
msgid "Runs Plume {0}"
msgstr "مدعوم بـ Plume {0}"
msgid ""
"If you are browsing this site as a visitor, no data about you is collected."
msgstr ""
msgid ""
"As a registered user, you also have to provide your username (which does not "
"have to be your real name), your functional email address and a password, in "
"order to be able to log in, write articles and comment. The content you "
"submit is stored until you delete it."
msgstr ""
msgid ""
"When you log in, we store two cookies, one to keep your session open, the "
"second to prevent other people to act on your behalf. We don't store any "
"other cookies."
msgstr ""
#, fuzzy
msgid "Follow {}"
@ -607,8 +630,7 @@ msgstr "اسم نطاق مثيل الخادم"
msgid "Posted by one of these authors"
msgstr ""
#, fuzzy
msgid "Author(s)"
msgid "Authors"
msgstr "المؤلفون"
# src/template_utils.rs:305
@ -632,17 +654,14 @@ msgstr ""
msgid "Article license"
msgstr "رخصة المقال"
#, fuzzy
msgid "Search result(s) for \"{0}\""
msgid "Search result for \"{0}\""
msgstr ""
msgid "Search result"
msgstr "نتائج البحث"
#, fuzzy
msgid "Search result(s)"
msgstr "نتائج البحث"
#, fuzzy
msgid "No results for your query"
msgstr "الانتقال إلى معرضك"
msgid "No result for your query"
msgstr ""
msgid "No more results for your query"
msgstr ""
@ -744,12 +763,6 @@ msgstr "انشر منشورك"
msgid "Written by {0}"
msgstr "كتبه {0}"
msgid "Edit"
msgstr "تعديل"
msgid "Delete this article"
msgstr "احذف هذا المقال"
msgid "All rights reserved."
msgstr "جميع الحقوق محفوظة."
@ -807,6 +820,18 @@ msgstr "ارسال التعليق"
msgid "No comments yet. Be the first to react!"
msgstr "لا توجد هناك تعليقات بعد. كن أول مَن يتفاعل معه!"
msgid "Delete"
msgstr "حذف"
msgid "This article is still a draft. Only you and other authors can see it."
msgstr ""
msgid "Only you and other authors can edit this article."
msgstr ""
msgid "Edit"
msgstr "تعديل"
msgid "Invalid CSRF token"
msgstr ""
@ -928,9 +953,6 @@ msgstr "ليس لديك أية وسائط بعد."
msgid "Content warning: {0}"
msgstr "تحذير عن المحتوى: {0}"
msgid "Delete"
msgstr "حذف"
msgid "Details"
msgstr "التفاصيل"
@ -963,3 +985,6 @@ msgstr ""
msgid "Use as an avatar"
msgstr "استخدمها كصورة رمزية"
#~ msgid "Delete this article"
#~ msgstr "احذف هذا المقال"

View File

@ -279,15 +279,21 @@ msgstr "Регистрация"
msgid "About this instance"
msgstr "За тази инстанция"
msgid "Privacy policy"
msgstr ""
msgid "Administration"
msgstr "Aдминистрация"
msgid "Documentation"
msgstr ""
msgid "Source code"
msgstr "Изходен код"
msgid "Matrix room"
msgstr ""
msgid "Administration"
msgstr "Aдминистрация"
msgid "Welcome to {}"
msgstr ""
@ -363,6 +369,9 @@ msgstr "Запаметете тези настройките"
msgid "About {0}"
msgstr ""
msgid "Runs Plume {0}"
msgstr "Писти Pluma {0}"
msgid "Home to <em>{0}</em> people"
msgstr ""
@ -375,8 +384,22 @@ msgstr ""
msgid "Administred by"
msgstr ""
msgid "Runs Plume {0}"
msgstr "Писти Pluma {0}"
msgid ""
"If you are browsing this site as a visitor, no data about you is collected."
msgstr ""
msgid ""
"As a registered user, you also have to provide your username (which does not "
"have to be your real name), your functional email address and a password, in "
"order to be able to log in, write articles and comment. The content you "
"submit is stored until you delete it."
msgstr ""
msgid ""
"When you log in, we store two cookies, one to keep your session open, the "
"second to prevent other people to act on your behalf. We don't store any "
"other cookies."
msgstr ""
msgid "Follow {}"
msgstr ""
@ -605,7 +628,7 @@ msgstr ""
msgid "Posted by one of these authors"
msgstr ""
msgid "Author(s)"
msgid "Authors"
msgstr ""
# src/template_utils.rs:305
@ -629,13 +652,13 @@ msgstr ""
msgid "Article license"
msgstr ""
msgid "Search result(s) for \"{0}\""
msgid "Search result for \"{0}\""
msgstr ""
msgid "Search result(s)"
msgid "Search result"
msgstr ""
msgid "No results for your query"
msgid "No result for your query"
msgstr ""
msgid "No more results for your query"
@ -737,12 +760,6 @@ msgstr ""
msgid "Written by {0}"
msgstr "Написано от {0}"
msgid "Edit"
msgstr ""
msgid "Delete this article"
msgstr ""
msgid "All rights reserved."
msgstr ""
@ -794,6 +811,18 @@ msgstr "Публикувайте коментар"
msgid "No comments yet. Be the first to react!"
msgstr "Все още няма коментари. Бъдете първите!"
msgid "Delete"
msgstr ""
msgid "This article is still a draft. Only you and other authors can see it."
msgstr ""
msgid "Only you and other authors can edit this article."
msgstr ""
msgid "Edit"
msgstr ""
msgid "Invalid CSRF token"
msgstr ""
@ -910,9 +939,6 @@ msgstr ""
msgid "Content warning: {0}"
msgstr ""
msgid "Delete"
msgstr ""
msgid "Details"
msgstr ""

View File

@ -275,15 +275,21 @@ msgstr "Registre"
msgid "About this instance"
msgstr "Quant a aquesta instància"
msgid "Privacy policy"
msgstr ""
msgid "Administration"
msgstr "Administració"
msgid "Documentation"
msgstr ""
msgid "Source code"
msgstr "Codi font"
msgid "Matrix room"
msgstr ""
msgid "Administration"
msgstr "Administració"
msgid "Welcome to {}"
msgstr "Us donem la benvinguda a {}"
@ -359,6 +365,9 @@ msgstr ""
msgid "About {0}"
msgstr "Quant a {0}"
msgid "Runs Plume {0}"
msgstr ""
msgid "Home to <em>{0}</em> people"
msgstr ""
@ -371,7 +380,21 @@ msgstr ""
msgid "Administred by"
msgstr ""
msgid "Runs Plume {0}"
msgid ""
"If you are browsing this site as a visitor, no data about you is collected."
msgstr ""
msgid ""
"As a registered user, you also have to provide your username (which does not "
"have to be your real name), your functional email address and a password, in "
"order to be able to log in, write articles and comment. The content you "
"submit is stored until you delete it."
msgstr ""
msgid ""
"When you log in, we store two cookies, one to keep your session open, the "
"second to prevent other people to act on your behalf. We don't store any "
"other cookies."
msgstr ""
msgid "Follow {}"
@ -599,8 +622,7 @@ msgstr ""
msgid "Posted by one of these authors"
msgstr ""
#, fuzzy
msgid "Author(s)"
msgid "Authors"
msgstr "Autors"
# src/template_utils.rs:305
@ -624,16 +646,13 @@ msgstr "Publicat segons aquesta llicència"
msgid "Article license"
msgstr ""
#, fuzzy
msgid "Search result(s) for \"{0}\""
msgid "Search result for \"{0}\""
msgstr "Resultats de la cerca «{0}»"
#, fuzzy
msgid "Search result(s)"
msgid "Search result"
msgstr "Resultats de la cerca"
#, fuzzy
msgid "No results for your query"
msgid "No result for your query"
msgstr "La vostra consulta no ha produït cap resultat"
msgid "No more results for your query"
@ -735,12 +754,6 @@ msgstr ""
msgid "Written by {0}"
msgstr "Escrit per {0}"
msgid "Edit"
msgstr "Edita"
msgid "Delete this article"
msgstr "Suprimeix aquest article"
msgid "All rights reserved."
msgstr "Tots els drets reservats."
@ -790,6 +803,18 @@ msgstr "Envia el comentari"
msgid "No comments yet. Be the first to react!"
msgstr ""
msgid "Delete"
msgstr "Suprimeix"
msgid "This article is still a draft. Only you and other authors can see it."
msgstr ""
msgid "Only you and other authors can edit this article."
msgstr ""
msgid "Edit"
msgstr "Edita"
msgid "Invalid CSRF token"
msgstr ""
@ -906,9 +931,6 @@ msgstr ""
msgid "Content warning: {0}"
msgstr ""
msgid "Delete"
msgstr "Suprimeix"
msgid "Details"
msgstr "Detalls"
@ -941,3 +963,6 @@ msgstr ""
msgid "Use as an avatar"
msgstr ""
#~ msgid "Delete this article"
#~ msgstr "Suprimeix aquest article"

View File

@ -282,15 +282,21 @@ msgstr "Vytvořit účet"
msgid "About this instance"
msgstr "O této instanci"
msgid "Privacy policy"
msgstr ""
msgid "Administration"
msgstr "Správa"
msgid "Documentation"
msgstr ""
msgid "Source code"
msgstr "Zdrojový kód"
msgid "Matrix room"
msgstr "Matrix místnost"
msgid "Administration"
msgstr "Správa"
msgid "Welcome to {}"
msgstr "Vítejte na {}"
@ -366,6 +372,9 @@ msgstr "Uložit tyhle nastavení"
msgid "About {0}"
msgstr "O {0}"
msgid "Runs Plume {0}"
msgstr "Beží na Plume {0}"
msgid "Home to <em>{0}</em> people"
msgstr "Domov pro <em>{0}</em> lidí"
@ -378,8 +387,22 @@ msgstr "A jsou napojeni na <em>{0}</em> dalších instancí"
msgid "Administred by"
msgstr "Správcem je"
msgid "Runs Plume {0}"
msgstr "Beží na Plume {0}"
msgid ""
"If you are browsing this site as a visitor, no data about you is collected."
msgstr ""
msgid ""
"As a registered user, you also have to provide your username (which does not "
"have to be your real name), your functional email address and a password, in "
"order to be able to log in, write articles and comment. The content you "
"submit is stored until you delete it."
msgstr ""
msgid ""
"When you log in, we store two cookies, one to keep your session open, the "
"second to prevent other people to act on your behalf. We don't store any "
"other cookies."
msgstr ""
msgid "Follow {}"
msgstr "Následovat {}"
@ -618,8 +641,7 @@ msgstr "Doména instance"
msgid "Posted by one of these authors"
msgstr "Zveřejněno na jedném z těchto autorů"
#, fuzzy
msgid "Author(s)"
msgid "Authors"
msgstr "Autoři"
# src/template_utils.rs:305
@ -643,16 +665,13 @@ msgstr "Publikováno pod touto licenci"
msgid "Article license"
msgstr "Licence článku"
#, fuzzy
msgid "Search result(s) for \"{0}\""
msgid "Search result for \"{0}\""
msgstr "Výsledky hledání pro \"{0}\""
#, fuzzy
msgid "Search result(s)"
msgid "Search result"
msgstr "Výsledek hledání"
#, fuzzy
msgid "No results for your query"
msgid "No result for your query"
msgstr "Žádný výsledek nenalzen pro váš dotaz"
msgid "No more results for your query"
@ -758,12 +777,6 @@ msgstr "Publikovat svůj příspěvek"
msgid "Written by {0}"
msgstr "Napsal/a {0}"
msgid "Edit"
msgstr "Upravit"
msgid "Delete this article"
msgstr "Vymazat tento článek"
msgid "All rights reserved."
msgstr "Všechna práva vyhrazena."
@ -819,6 +832,18 @@ msgstr "Odeslat komentář"
msgid "No comments yet. Be the first to react!"
msgstr "Zatím bez komentáře. Buďte první, kdo zareaguje!"
msgid "Delete"
msgstr "Smazat"
msgid "This article is still a draft. Only you and other authors can see it."
msgstr ""
msgid "Only you and other authors can edit this article."
msgstr ""
msgid "Edit"
msgstr "Upravit"
msgid "Invalid CSRF token"
msgstr "Neplatný CSRF token"
@ -942,9 +967,6 @@ msgstr "Zatím nemáte nahrané žádné média."
msgid "Content warning: {0}"
msgstr "Upozornení na obsah: {0}"
msgid "Delete"
msgstr "Smazat"
msgid "Details"
msgstr "Podrobnosti"
@ -977,3 +999,6 @@ msgstr "Pro vložení tohoto média zkopírujte tento kód do vašich článků:
msgid "Use as an avatar"
msgstr "Použít jak avatar"
#~ msgid "Delete this article"
#~ msgstr "Vymazat tento článek"

View File

@ -280,15 +280,21 @@ msgstr "Registrieren"
msgid "About this instance"
msgstr "Über diese Instanz"
msgid "Privacy policy"
msgstr ""
msgid "Administration"
msgstr "Administration"
msgid "Documentation"
msgstr ""
msgid "Source code"
msgstr "Quelltext"
msgid "Matrix room"
msgstr "Matrix-Raum"
msgid "Administration"
msgstr "Administration"
msgid "Welcome to {}"
msgstr "Willkommen bei {}"
@ -364,6 +370,9 @@ msgstr "Diese Einstellungen speichern"
msgid "About {0}"
msgstr "Über {0}"
msgid "Runs Plume {0}"
msgstr "Verwendet Plume {0}"
msgid "Home to <em>{0}</em> people"
msgstr "Heimat von <em>{0}</em> Personen"
@ -376,8 +385,22 @@ msgstr "Und mit <em>{0}</em> anderen Instanzen verbunden sind"
msgid "Administred by"
msgstr "Administriert von"
msgid "Runs Plume {0}"
msgstr "Verwendet Plume {0}"
msgid ""
"If you are browsing this site as a visitor, no data about you is collected."
msgstr ""
msgid ""
"As a registered user, you also have to provide your username (which does not "
"have to be your real name), your functional email address and a password, in "
"order to be able to log in, write articles and comment. The content you "
"submit is stored until you delete it."
msgstr ""
msgid ""
"When you log in, we store two cookies, one to keep your session open, the "
"second to prevent other people to act on your behalf. We don't store any "
"other cookies."
msgstr ""
#, fuzzy
msgid "Follow {}"
@ -616,8 +639,7 @@ msgstr "Instanz-Domain"
msgid "Posted by one of these authors"
msgstr "Von eine*r dieser Autor*innen veröffentlicht"
#, fuzzy
msgid "Author(s)"
msgid "Authors"
msgstr "Autoren"
# src/template_utils.rs:305
@ -641,16 +663,13 @@ msgstr "Unter dieser Lizenz veröffentlicht"
msgid "Article license"
msgstr "Artikel-Lizenz"
#, fuzzy
msgid "Search result(s) for \"{0}\""
msgid "Search result for \"{0}\""
msgstr "Suchergebnis für {0}"
#, fuzzy
msgid "Search result(s)"
msgid "Search result"
msgstr "Suchergebnis"
#, fuzzy
msgid "No results for your query"
msgid "No result for your query"
msgstr "Keine Ergebnisse für deine Anfrage"
msgid "No more results for your query"
@ -757,12 +776,6 @@ msgstr "Veröffentliche deinen Beitrag"
msgid "Written by {0}"
msgstr "Geschrieben von {0}"
msgid "Edit"
msgstr "Bearbeiten"
msgid "Delete this article"
msgstr "Diesen Artikel löschen"
msgid "All rights reserved."
msgstr "Alle Rechte vorbehalten."
@ -812,6 +825,18 @@ msgstr "Kommentar abschicken"
msgid "No comments yet. Be the first to react!"
msgstr "Noch keine Kommentare. Sei der erste, der reagiert!"
msgid "Delete"
msgstr "Löschen"
msgid "This article is still a draft. Only you and other authors can see it."
msgstr ""
msgid "Only you and other authors can edit this article."
msgstr ""
msgid "Edit"
msgstr "Bearbeiten"
msgid "Invalid CSRF token"
msgstr "Ungültiges CSRF-Token"
@ -937,9 +962,6 @@ msgstr "Du hast noch keine Medien."
msgid "Content warning: {0}"
msgstr "Warnhinweis zum Inhalt: {0}"
msgid "Delete"
msgstr "Löschen"
msgid "Details"
msgstr "Details"
@ -972,3 +994,6 @@ msgstr "Kopiere das in deine Artikel, um dieses Medium einzufügen:"
msgid "Use as an avatar"
msgstr "Als Profilbild nutzen"
#~ msgid "Delete this article"
#~ msgstr "Diesen Artikel löschen"

View File

@ -275,15 +275,21 @@ msgstr ""
msgid "About this instance"
msgstr ""
msgid "Privacy policy"
msgstr ""
msgid "Administration"
msgstr ""
msgid "Documentation"
msgstr ""
msgid "Source code"
msgstr ""
msgid "Matrix room"
msgstr ""
msgid "Administration"
msgstr ""
msgid "Welcome to {}"
msgstr ""
@ -359,6 +365,9 @@ msgstr ""
msgid "About {0}"
msgstr ""
msgid "Runs Plume {0}"
msgstr ""
msgid "Home to <em>{0}</em> people"
msgstr ""
@ -371,7 +380,21 @@ msgstr ""
msgid "Administred by"
msgstr ""
msgid "Runs Plume {0}"
msgid ""
"If you are browsing this site as a visitor, no data about you is collected."
msgstr ""
msgid ""
"As a registered user, you also have to provide your username (which does not "
"have to be your real name), your functional email address and a password, in "
"order to be able to log in, write articles and comment. The content you "
"submit is stored until you delete it."
msgstr ""
msgid ""
"When you log in, we store two cookies, one to keep your session open, the "
"second to prevent other people to act on your behalf. We don't store any "
"other cookies."
msgstr ""
msgid "Follow {}"
@ -599,7 +622,7 @@ msgstr ""
msgid "Posted by one of these authors"
msgstr ""
msgid "Author(s)"
msgid "Authors"
msgstr ""
# src/template_utils.rs:305
@ -623,13 +646,13 @@ msgstr ""
msgid "Article license"
msgstr ""
msgid "Search result(s) for \"{0}\""
msgid "Search result for \"{0}\""
msgstr ""
msgid "Search result(s)"
msgid "Search result"
msgstr ""
msgid "No results for your query"
msgid "No result for your query"
msgstr ""
msgid "No more results for your query"
@ -731,12 +754,6 @@ msgstr ""
msgid "Written by {0}"
msgstr ""
msgid "Edit"
msgstr ""
msgid "Delete this article"
msgstr ""
msgid "All rights reserved."
msgstr ""
@ -786,6 +803,18 @@ msgstr ""
msgid "No comments yet. Be the first to react!"
msgstr ""
msgid "Delete"
msgstr ""
msgid "This article is still a draft. Only you and other authors can see it."
msgstr ""
msgid "Only you and other authors can edit this article."
msgstr ""
msgid "Edit"
msgstr ""
msgid "Invalid CSRF token"
msgstr ""
@ -901,9 +930,6 @@ msgstr ""
msgid "Content warning: {0}"
msgstr ""
msgid "Delete"
msgstr ""
msgid "Details"
msgstr ""

View File

@ -279,15 +279,21 @@ msgstr ""
msgid "About this instance"
msgstr ""
msgid "Privacy policy"
msgstr ""
msgid "Administration"
msgstr ""
msgid "Documentation"
msgstr ""
msgid "Source code"
msgstr ""
msgid "Matrix room"
msgstr ""
msgid "Administration"
msgstr ""
msgid "Welcome to {}"
msgstr ""
@ -363,6 +369,9 @@ msgstr ""
msgid "About {0}"
msgstr ""
msgid "Runs Plume {0}"
msgstr ""
msgid "Home to <em>{0}</em> people"
msgstr ""
@ -375,7 +384,21 @@ msgstr ""
msgid "Administred by"
msgstr ""
msgid "Runs Plume {0}"
msgid ""
"If you are browsing this site as a visitor, no data about you is collected."
msgstr ""
msgid ""
"As a registered user, you also have to provide your username (which does not "
"have to be your real name), your functional email address and a password, in "
"order to be able to log in, write articles and comment. The content you "
"submit is stored until you delete it."
msgstr ""
msgid ""
"When you log in, we store two cookies, one to keep your session open, the "
"second to prevent other people to act on your behalf. We don't store any "
"other cookies."
msgstr ""
msgid "Follow {}"
@ -603,8 +626,7 @@ msgstr ""
msgid "Posted by one of these authors"
msgstr ""
#, fuzzy
msgid "Author(s)"
msgid "Authors"
msgstr "Verkistoj"
# src/template_utils.rs:305
@ -628,13 +650,13 @@ msgstr "Eldonita sub ĉi tiu permesilo"
msgid "Article license"
msgstr "Artikola permesilo"
msgid "Search result(s) for \"{0}\""
msgid "Search result for \"{0}\""
msgstr ""
msgid "Search result(s)"
msgid "Search result"
msgstr ""
msgid "No results for your query"
msgid "No result for your query"
msgstr ""
msgid "No more results for your query"
@ -736,12 +758,6 @@ msgstr ""
msgid "Written by {0}"
msgstr ""
msgid "Edit"
msgstr "Redakti"
msgid "Delete this article"
msgstr ""
msgid "All rights reserved."
msgstr ""
@ -791,6 +807,18 @@ msgstr ""
msgid "No comments yet. Be the first to react!"
msgstr ""
msgid "Delete"
msgstr ""
msgid "This article is still a draft. Only you and other authors can see it."
msgstr ""
msgid "Only you and other authors can edit this article."
msgstr ""
msgid "Edit"
msgstr "Redakti"
msgid "Invalid CSRF token"
msgstr ""
@ -906,9 +934,6 @@ msgstr ""
msgid "Content warning: {0}"
msgstr ""
msgid "Delete"
msgstr ""
msgid "Details"
msgstr ""

View File

@ -280,15 +280,21 @@ msgstr "Registrarse"
msgid "About this instance"
msgstr "Acerca de esta instancia"
msgid "Privacy policy"
msgstr ""
msgid "Administration"
msgstr "Administración"
msgid "Documentation"
msgstr ""
msgid "Source code"
msgstr "Código fuente"
msgid "Matrix room"
msgstr "Sala de matriz"
msgid "Administration"
msgstr "Administración"
msgid "Welcome to {}"
msgstr "Bienvenido a {}"
@ -364,6 +370,9 @@ msgstr "Guardar estos ajustes"
msgid "About {0}"
msgstr "Acerca de {0}"
msgid "Runs Plume {0}"
msgstr "Ejecuta Pluma {0}"
msgid "Home to <em>{0}</em> people"
msgstr "Hogar de <em>{0}</em> usuarios"
@ -376,8 +385,22 @@ msgstr "Y están conectados a <em>{0}</em> otras instancias"
msgid "Administred by"
msgstr "Administrado por"
msgid "Runs Plume {0}"
msgstr "Ejecuta Pluma {0}"
msgid ""
"If you are browsing this site as a visitor, no data about you is collected."
msgstr ""
msgid ""
"As a registered user, you also have to provide your username (which does not "
"have to be your real name), your functional email address and a password, in "
"order to be able to log in, write articles and comment. The content you "
"submit is stored until you delete it."
msgstr ""
msgid ""
"When you log in, we store two cookies, one to keep your session open, the "
"second to prevent other people to act on your behalf. We don't store any "
"other cookies."
msgstr ""
#, fuzzy
msgid "Follow {}"
@ -611,8 +634,7 @@ msgstr "Dominio de instancia"
msgid "Posted by one of these authors"
msgstr "Publicado por uno de estos autores"
#, fuzzy
msgid "Author(s)"
msgid "Authors"
msgstr "Autores"
# src/template_utils.rs:305
@ -636,16 +658,13 @@ msgstr "Publicado bajo esta licencia"
msgid "Article license"
msgstr "Licencia de artículo"
#, fuzzy
msgid "Search result(s) for \"{0}\""
msgid "Search result for \"{0}\""
msgstr "Resultado de búsqueda para \"{0}\""
#, fuzzy
msgid "Search result(s)"
msgid "Search result"
msgstr "Resultado de búsqueda"
#, fuzzy
msgid "No results for your query"
msgid "No result for your query"
msgstr "No hay resultado para su consulta"
msgid "No more results for your query"
@ -751,12 +770,6 @@ msgstr "Publique su artículo"
msgid "Written by {0}"
msgstr "Escrito por {0}"
msgid "Edit"
msgstr "Editar"
msgid "Delete this article"
msgstr "Eliminar este artículo"
msgid "All rights reserved."
msgstr "Todos los derechos reservados."
@ -806,6 +819,18 @@ msgstr "Enviar comentario"
msgid "No comments yet. Be the first to react!"
msgstr "No hay comentarios todavía. ¡Sea el primero en reaccionar!"
msgid "Delete"
msgstr "Eliminar"
msgid "This article is still a draft. Only you and other authors can see it."
msgstr ""
msgid "Only you and other authors can edit this article."
msgstr ""
msgid "Edit"
msgstr "Editar"
msgid "Invalid CSRF token"
msgstr "Token CSRF inválido"
@ -930,9 +955,6 @@ msgstr "Todavía no tiene ningún medio."
msgid "Content warning: {0}"
msgstr "Aviso de contenido: {0}"
msgid "Delete"
msgstr "Eliminar"
msgid "Details"
msgstr "Detalles"
@ -967,3 +989,6 @@ msgstr "Cópielo en sus artículos, para insertar este medio:"
msgid "Use as an avatar"
msgstr "Usar como avatar"
#~ msgid "Delete this article"
#~ msgstr "Eliminar este artículo"

View File

@ -280,15 +280,21 @@ msgstr "Sinscrire"
msgid "About this instance"
msgstr "À propos de cette instance"
msgid "Privacy policy"
msgstr ""
msgid "Administration"
msgstr "Administration"
msgid "Documentation"
msgstr ""
msgid "Source code"
msgstr "Code source"
msgid "Matrix room"
msgstr "Salon Matrix"
msgid "Administration"
msgstr "Administration"
msgid "Welcome to {}"
msgstr "Bienvenue sur {0}"
@ -365,6 +371,9 @@ msgstr "Sauvegarder ces paramètres"
msgid "About {0}"
msgstr "À propos de {0}"
msgid "Runs Plume {0}"
msgstr "Propulsé par Plume {0}"
msgid "Home to <em>{0}</em> people"
msgstr "Refuge de <em>{0}</em> personnes"
@ -377,8 +386,22 @@ msgstr "Et sont connecté⋅es à <em>{0}</em> autres instances"
msgid "Administred by"
msgstr "Administré par"
msgid "Runs Plume {0}"
msgstr "Propulsé par Plume {0}"
msgid ""
"If you are browsing this site as a visitor, no data about you is collected."
msgstr ""
msgid ""
"As a registered user, you also have to provide your username (which does not "
"have to be your real name), your functional email address and a password, in "
"order to be able to log in, write articles and comment. The content you "
"submit is stored until you delete it."
msgstr ""
msgid ""
"When you log in, we store two cookies, one to keep your session open, the "
"second to prevent other people to act on your behalf. We don't store any "
"other cookies."
msgstr ""
#, fuzzy
msgid "Follow {}"
@ -620,8 +643,7 @@ msgstr "Domaine d'une instance"
msgid "Posted by one of these authors"
msgstr "Écrit par un de ces auteur⋅ices"
#, fuzzy
msgid "Author(s)"
msgid "Authors"
msgstr "Auteurs"
# src/template_utils.rs:305
@ -645,16 +667,13 @@ msgstr "Placé sous cette licence"
msgid "Article license"
msgstr "Licence de l'article"
#, fuzzy
msgid "Search result(s) for \"{0}\""
msgid "Search result for \"{0}\""
msgstr "Résultats de la recherche pour \"{0}\""
#, fuzzy
msgid "Search result(s)"
msgid "Search result"
msgstr "Résultats de la recherche"
#, fuzzy
msgid "No results for your query"
msgid "No result for your query"
msgstr "Aucun résultat pour votre recherche"
msgid "No more results for your query"
@ -761,12 +780,6 @@ msgstr "Publiez votre message"
msgid "Written by {0}"
msgstr "Écrit par {0}"
msgid "Edit"
msgstr "Modifier"
msgid "Delete this article"
msgstr "Supprimer cet article"
msgid "All rights reserved."
msgstr "Tous droits réservés."
@ -819,6 +832,18 @@ msgstr "Soumettre le commentaire"
msgid "No comments yet. Be the first to react!"
msgstr "Pas encore de commentaires. Soyez le premier à réagir !"
msgid "Delete"
msgstr "Supprimer"
msgid "This article is still a draft. Only you and other authors can see it."
msgstr ""
msgid "Only you and other authors can edit this article."
msgstr ""
msgid "Edit"
msgstr "Modifier"
msgid "Invalid CSRF token"
msgstr "Jeton CSRF invalide"
@ -943,9 +968,6 @@ msgstr "Vous n'avez pas encore de média."
msgid "Content warning: {0}"
msgstr "Avertissement du contenu : {0}"
msgid "Delete"
msgstr "Supprimer"
msgid "Details"
msgstr "Détails"
@ -980,3 +1002,6 @@ msgstr "Copiez-le dans vos articles, à insérer ce média :"
msgid "Use as an avatar"
msgstr "Utiliser comme avatar"
#~ msgid "Delete this article"
#~ msgstr "Supprimer cet article"

View File

@ -280,15 +280,21 @@ msgstr "Rexistrar"
msgid "About this instance"
msgstr "Sobre esta instancia"
msgid "Privacy policy"
msgstr ""
msgid "Administration"
msgstr "Administración"
msgid "Documentation"
msgstr ""
msgid "Source code"
msgstr "Código fonte"
msgid "Matrix room"
msgstr "Sala Matrix"
msgid "Administration"
msgstr "Administración"
msgid "Welcome to {}"
msgstr "Benvida a {}"
@ -365,6 +371,9 @@ msgstr "Gardar estas preferencias"
msgid "About {0}"
msgstr "Acerca de {0}"
msgid "Runs Plume {0}"
msgstr "Versión Plume {0}"
msgid "Home to <em>{0}</em> people"
msgstr "Lar de <em>{0}</em> persoas"
@ -377,8 +386,22 @@ msgstr "E están conectadas a outras <em>{0}</em> instancias"
msgid "Administred by"
msgstr "Administrada por"
msgid "Runs Plume {0}"
msgstr "Versión Plume {0}"
msgid ""
"If you are browsing this site as a visitor, no data about you is collected."
msgstr ""
msgid ""
"As a registered user, you also have to provide your username (which does not "
"have to be your real name), your functional email address and a password, in "
"order to be able to log in, write articles and comment. The content you "
"submit is stored until you delete it."
msgstr ""
msgid ""
"When you log in, we store two cookies, one to keep your session open, the "
"second to prevent other people to act on your behalf. We don't store any "
"other cookies."
msgstr ""
#, fuzzy
msgid "Follow {}"
@ -615,8 +638,7 @@ msgstr "Dominio da instancia"
msgid "Posted by one of these authors"
msgstr "Publicado por unha de estas autoras"
#, fuzzy
msgid "Author(s)"
msgid "Authors"
msgstr "Autoras"
# src/template_utils.rs:305
@ -640,16 +662,13 @@ msgstr "Publicado baixo esta licenza"
msgid "Article license"
msgstr "Licenza do artigo"
#, fuzzy
msgid "Search result(s) for \"{0}\""
msgid "Search result for \"{0}\""
msgstr "Resultado da busca por \"{0}\""
#, fuzzy
msgid "Search result(s)"
msgid "Search result"
msgstr "Resultado da busca"
#, fuzzy
msgid "No results for your query"
msgid "No result for your query"
msgstr "Sen resultados para a busca"
msgid "No more results for your query"
@ -756,12 +775,6 @@ msgstr "Publicar o artigo"
msgid "Written by {0}"
msgstr "Escrito por {0}"
msgid "Edit"
msgstr "Editar"
msgid "Delete this article"
msgstr "Eliminar este artigo"
msgid "All rights reserved."
msgstr "Todos os dereitos reservados."
@ -811,6 +824,18 @@ msgstr "Enviar comentario"
msgid "No comments yet. Be the first to react!"
msgstr "Sen comentarios. Sexa a primeira persoa en facelo!"
msgid "Delete"
msgstr "Eliminar"
msgid "This article is still a draft. Only you and other authors can see it."
msgstr ""
msgid "Only you and other authors can edit this article."
msgstr ""
msgid "Edit"
msgstr "Editar"
msgid "Invalid CSRF token"
msgstr "Testemuño CSRF non válido"
@ -932,9 +957,6 @@ msgstr "Aínda non subeu ficheiros de medios."
msgid "Content warning: {0}"
msgstr "Aviso de contido: {0}"
msgid "Delete"
msgstr "Eliminar"
msgid "Details"
msgstr "Detalles"
@ -968,3 +990,6 @@ msgstr "Copie e pegue este código para incrustar no artigo:"
msgid "Use as an avatar"
msgstr "Utilizar como avatar"
#~ msgid "Delete this article"
#~ msgstr "Eliminar este artigo"

View File

@ -282,15 +282,21 @@ msgstr "अकाउंट रजिस्टर करें"
msgid "About this instance"
msgstr "इंस्टैंस के बारे में जानकारी"
msgid "Privacy policy"
msgstr ""
msgid "Administration"
msgstr "संचालन"
msgid "Documentation"
msgstr ""
msgid "Source code"
msgstr "सोर्स कोड"
msgid "Matrix room"
msgstr "मैट्रिक्स रूम"
msgid "Administration"
msgstr "संचालन"
msgid "Welcome to {}"
msgstr "{} में स्वागत"
@ -366,6 +372,9 @@ msgstr "इन सेटिंग्स को सेव करें"
msgid "About {0}"
msgstr "{0} के बारे में"
msgid "Runs Plume {0}"
msgstr "Plume {0} का इस्तेमाल कर रहे हैं"
msgid "Home to <em>{0}</em> people"
msgstr "यहाँ <em>{0}</em> यूज़र्स हैं"
@ -378,8 +387,22 @@ msgstr "और <em>{0}</em> इन्सटेंसेस से जुड़े
msgid "Administred by"
msgstr "द्वारा संचालित"
msgid "Runs Plume {0}"
msgstr "Plume {0} का इस्तेमाल कर रहे हैं"
msgid ""
"If you are browsing this site as a visitor, no data about you is collected."
msgstr ""
msgid ""
"As a registered user, you also have to provide your username (which does not "
"have to be your real name), your functional email address and a password, in "
"order to be able to log in, write articles and comment. The content you "
"submit is stored until you delete it."
msgstr ""
msgid ""
"When you log in, we store two cookies, one to keep your session open, the "
"second to prevent other people to act on your behalf. We don't store any "
"other cookies."
msgstr ""
msgid "Follow {}"
msgstr ""
@ -606,8 +629,7 @@ msgstr "इंस्टैंस डोमेन"
msgid "Posted by one of these authors"
msgstr "इन लेखकों द्वारा पोस्ट किये गए आर्टिकल्स"
#, fuzzy
msgid "Author(s)"
msgid "Authors"
msgstr "लेखक"
# src/template_utils.rs:305
@ -631,16 +653,13 @@ msgstr "इस लिसेंसे के साथ पब्लिश कि
msgid "Article license"
msgstr "आर्टिकल लाइसेंस"
#, fuzzy
msgid "Search result(s) for \"{0}\""
msgid "Search result for \"{0}\""
msgstr "{0} के लिए सर्च रिजल्ट"
#, fuzzy
msgid "Search result(s)"
msgid "Search result"
msgstr "सर्च रिजल्ट"
#, fuzzy
msgid "No results for your query"
msgid "No result for your query"
msgstr "आपकी जांच के लिए रिजल्ट"
msgid "No more results for your query"
@ -742,12 +761,6 @@ msgstr ""
msgid "Written by {0}"
msgstr ""
msgid "Edit"
msgstr ""
msgid "Delete this article"
msgstr ""
msgid "All rights reserved."
msgstr ""
@ -797,6 +810,18 @@ msgstr ""
msgid "No comments yet. Be the first to react!"
msgstr ""
msgid "Delete"
msgstr ""
msgid "This article is still a draft. Only you and other authors can see it."
msgstr ""
msgid "Only you and other authors can edit this article."
msgstr ""
msgid "Edit"
msgstr ""
msgid "Invalid CSRF token"
msgstr ""
@ -913,9 +938,6 @@ msgstr ""
msgid "Content warning: {0}"
msgstr ""
msgid "Delete"
msgstr ""
msgid "Details"
msgstr ""

View File

@ -280,15 +280,21 @@ msgstr "Registrirajte se"
msgid "About this instance"
msgstr ""
msgid "Privacy policy"
msgstr ""
msgid "Administration"
msgstr "Administracija"
msgid "Documentation"
msgstr ""
msgid "Source code"
msgstr "Izvorni kod"
msgid "Matrix room"
msgstr ""
msgid "Administration"
msgstr "Administracija"
msgid "Welcome to {}"
msgstr "Dobrodošli u {0}"
@ -364,6 +370,9 @@ msgstr ""
msgid "About {0}"
msgstr "O {0}"
msgid "Runs Plume {0}"
msgstr ""
msgid "Home to <em>{0}</em> people"
msgstr ""
@ -376,7 +385,21 @@ msgstr ""
msgid "Administred by"
msgstr ""
msgid "Runs Plume {0}"
msgid ""
"If you are browsing this site as a visitor, no data about you is collected."
msgstr ""
msgid ""
"As a registered user, you also have to provide your username (which does not "
"have to be your real name), your functional email address and a password, in "
"order to be able to log in, write articles and comment. The content you "
"submit is stored until you delete it."
msgstr ""
msgid ""
"When you log in, we store two cookies, one to keep your session open, the "
"second to prevent other people to act on your behalf. We don't store any "
"other cookies."
msgstr ""
msgid "Follow {}"
@ -604,7 +627,7 @@ msgstr ""
msgid "Posted by one of these authors"
msgstr ""
msgid "Author(s)"
msgid "Authors"
msgstr ""
# src/template_utils.rs:305
@ -628,13 +651,13 @@ msgstr ""
msgid "Article license"
msgstr ""
msgid "Search result(s) for \"{0}\""
msgid "Search result for \"{0}\""
msgstr ""
msgid "Search result(s)"
msgid "Search result"
msgstr ""
msgid "No results for your query"
msgid "No result for your query"
msgstr ""
msgid "No more results for your query"
@ -736,12 +759,6 @@ msgstr ""
msgid "Written by {0}"
msgstr ""
msgid "Edit"
msgstr ""
msgid "Delete this article"
msgstr ""
msgid "All rights reserved."
msgstr ""
@ -793,6 +810,18 @@ msgstr ""
msgid "No comments yet. Be the first to react!"
msgstr ""
msgid "Delete"
msgstr ""
msgid "This article is still a draft. Only you and other authors can see it."
msgstr ""
msgid "Only you and other authors can edit this article."
msgstr ""
msgid "Edit"
msgstr ""
msgid "Invalid CSRF token"
msgstr ""
@ -909,9 +938,6 @@ msgstr ""
msgid "Content warning: {0}"
msgstr ""
msgid "Delete"
msgstr ""
msgid "Details"
msgstr ""

View File

@ -280,15 +280,21 @@ msgstr "Registrati"
msgid "About this instance"
msgstr "A proposito di questa istanza"
msgid "Privacy policy"
msgstr ""
msgid "Administration"
msgstr "Amministrazione"
msgid "Documentation"
msgstr ""
msgid "Source code"
msgstr "Codice sorgente"
msgid "Matrix room"
msgstr "Stanza Matrix"
msgid "Administration"
msgstr "Amministrazione"
msgid "Welcome to {}"
msgstr "Benvenuto su {}"
@ -364,6 +370,9 @@ msgstr "Salva queste impostazioni"
msgid "About {0}"
msgstr "A proposito di {0}"
msgid "Runs Plume {0}"
msgstr "Utilizza Plume {0}"
msgid "Home to <em>{0}</em> people"
msgstr "Casa di <em>{0}</em> persone"
@ -376,8 +385,22 @@ msgstr "E sono connessi ad altre <em>{0}</em> istanze"
msgid "Administred by"
msgstr "Amministrata da"
msgid "Runs Plume {0}"
msgstr "Utilizza Plume {0}"
msgid ""
"If you are browsing this site as a visitor, no data about you is collected."
msgstr ""
msgid ""
"As a registered user, you also have to provide your username (which does not "
"have to be your real name), your functional email address and a password, in "
"order to be able to log in, write articles and comment. The content you "
"submit is stored until you delete it."
msgstr ""
msgid ""
"When you log in, we store two cookies, one to keep your session open, the "
"second to prevent other people to act on your behalf. We don't store any "
"other cookies."
msgstr ""
#, fuzzy
msgid "Follow {}"
@ -617,8 +640,7 @@ msgstr "Dominio dell'istanza"
msgid "Posted by one of these authors"
msgstr "Pubblicato da uno di questi autori"
#, fuzzy
msgid "Author(s)"
msgid "Authors"
msgstr "Autori"
# src/template_utils.rs:305
@ -642,16 +664,13 @@ msgstr "Pubblicato sotto questa licenza"
msgid "Article license"
msgstr "Licenza dell'articolo"
#, fuzzy
msgid "Search result(s) for \"{0}\""
msgid "Search result for \"{0}\""
msgstr "Risultati della ricerca per \"{0}\""
#, fuzzy
msgid "Search result(s)"
msgid "Search result"
msgstr "Risultati della ricerca"
#, fuzzy
msgid "No results for your query"
msgid "No result for your query"
msgstr "Nessun risultato per la tua ricerca"
msgid "No more results for your query"
@ -758,12 +777,6 @@ msgstr "Pubblica il tuo post"
msgid "Written by {0}"
msgstr "Scritto da {0}"
msgid "Edit"
msgstr "Modifica"
msgid "Delete this article"
msgstr "Elimina questo articolo"
msgid "All rights reserved."
msgstr "Tutti i diritti riservati."
@ -816,6 +829,18 @@ msgstr "Invia commento"
msgid "No comments yet. Be the first to react!"
msgstr "Ancora nessun commento. Sii il primo ad aggiungere la tua reazione!"
msgid "Delete"
msgstr "Elimina"
msgid "This article is still a draft. Only you and other authors can see it."
msgstr ""
msgid "Only you and other authors can edit this article."
msgstr ""
msgid "Edit"
msgstr "Modifica"
msgid "Invalid CSRF token"
msgstr "Token CSRF non valido"
@ -939,9 +964,6 @@ msgstr "Non hai ancora nessun media."
msgid "Content warning: {0}"
msgstr "Avviso di contenuto sensibile: {0}"
msgid "Delete"
msgstr "Elimina"
msgid "Details"
msgstr "Dettagli"
@ -974,3 +996,6 @@ msgstr "Copialo nei tuoi articoli, per inserire questo media:"
msgid "Use as an avatar"
msgstr "Usa come immagine di profilo"
#~ msgid "Delete this article"
#~ msgstr "Elimina questo articolo"

View File

@ -281,15 +281,21 @@ msgstr "登録"
msgid "About this instance"
msgstr "このインスタンスについて"
msgid "Privacy policy"
msgstr ""
msgid "Administration"
msgstr "管理"
msgid "Documentation"
msgstr ""
msgid "Source code"
msgstr "ソースコード"
msgid "Matrix room"
msgstr "Matrix ルーム"
msgid "Administration"
msgstr "管理"
msgid "Welcome to {}"
msgstr "{} へようこそ"
@ -367,6 +373,9 @@ msgstr "設定を保存"
msgid "About {0}"
msgstr "{0} について"
msgid "Runs Plume {0}"
msgstr "Plume {0} を実行中"
msgid "Home to <em>{0}</em> people"
msgstr "ユーザー登録者数 <em>{0}</em> 人"
@ -379,8 +388,22 @@ msgstr "他のインスタンスからの接続数 <em>{0}</em>"
msgid "Administred by"
msgstr "管理者"
msgid "Runs Plume {0}"
msgstr "Plume {0} を実行中"
msgid ""
"If you are browsing this site as a visitor, no data about you is collected."
msgstr ""
msgid ""
"As a registered user, you also have to provide your username (which does not "
"have to be your real name), your functional email address and a password, in "
"order to be able to log in, write articles and comment. The content you "
"submit is stored until you delete it."
msgstr ""
msgid ""
"When you log in, we store two cookies, one to keep your session open, the "
"second to prevent other people to act on your behalf. We don't store any "
"other cookies."
msgstr ""
#, fuzzy
msgid "Follow {}"
@ -615,8 +638,7 @@ msgstr "インスタンスのドメイン"
msgid "Posted by one of these authors"
msgstr "以下のいずれかの投稿者が投稿"
#, fuzzy
msgid "Author(s)"
msgid "Authors"
msgstr "投稿者"
# src/template_utils.rs:305
@ -640,16 +662,13 @@ msgstr "適用されているライセンス"
msgid "Article license"
msgstr "投稿のライセンス"
#, fuzzy
msgid "Search result(s) for \"{0}\""
msgid "Search result for \"{0}\""
msgstr "\"{0}\" の検索結果"
#, fuzzy
msgid "Search result(s)"
msgid "Search result"
msgstr "検索結果"
#, fuzzy
msgid "No results for your query"
msgid "No result for your query"
msgstr "検索結果はありません"
msgid "No more results for your query"
@ -756,12 +775,6 @@ msgstr "投稿を公開"
msgid "Written by {0}"
msgstr "投稿者 {0}"
msgid "Edit"
msgstr "編集"
msgid "Delete this article"
msgstr "この投稿を削除"
msgid "All rights reserved."
msgstr "著作権は投稿者が保有しています。"
@ -809,6 +822,18 @@ msgstr "コメントを保存"
msgid "No comments yet. Be the first to react!"
msgstr "コメントがまだありません。最初のコメントを書きましょう!"
msgid "Delete"
msgstr "削除"
msgid "This article is still a draft. Only you and other authors can see it."
msgstr ""
msgid "Only you and other authors can edit this article."
msgstr ""
msgid "Edit"
msgstr "編集"
msgid "Invalid CSRF token"
msgstr "無効な CSRF トークンです"
@ -931,9 +956,6 @@ msgstr "メディアがまだありません。"
msgid "Content warning: {0}"
msgstr "コンテンツの警告: {0}"
msgid "Delete"
msgstr "削除"
msgid "Details"
msgstr "詳細"
@ -966,3 +988,6 @@ msgstr "このメディアを挿入するには、これを投稿にコピーし
msgid "Use as an avatar"
msgstr "アバターとして使う"
#~ msgid "Delete this article"
#~ msgstr "この投稿を削除"

View File

@ -274,15 +274,21 @@ msgstr "Registrér deg"
msgid "About this instance"
msgstr "Om denne instansen"
msgid "Privacy policy"
msgstr ""
msgid "Administration"
msgstr "Administrasjon"
msgid "Documentation"
msgstr ""
msgid "Source code"
msgstr "Kildekode"
msgid "Matrix room"
msgstr "Snakkerom"
msgid "Administration"
msgstr "Administrasjon"
msgid "Welcome to {}"
msgstr ""
@ -368,6 +374,9 @@ msgstr "Lagre innstillingene"
msgid "About {0}"
msgstr ""
msgid "Runs Plume {0}"
msgstr ""
msgid "Home to <em>{0}</em> people"
msgstr ""
@ -381,7 +390,21 @@ msgstr ""
msgid "Administred by"
msgstr "Administrasjon"
msgid "Runs Plume {0}"
msgid ""
"If you are browsing this site as a visitor, no data about you is collected."
msgstr ""
msgid ""
"As a registered user, you also have to provide your username (which does not "
"have to be your real name), your functional email address and a password, in "
"order to be able to log in, write articles and comment. The content you "
"submit is stored until you delete it."
msgstr ""
msgid ""
"When you log in, we store two cookies, one to keep your session open, the "
"second to prevent other people to act on your behalf. We don't store any "
"other cookies."
msgstr ""
#, fuzzy
@ -642,7 +665,7 @@ msgstr "Instillinger for instansen"
msgid "Posted by one of these authors"
msgstr ""
msgid "Author(s)"
msgid "Authors"
msgstr ""
# #-#-#-#-# nb.po (plume) #-#-#-#-#
@ -673,13 +696,13 @@ msgstr "Denne artikkelen er publisert med lisensen {0}"
msgid "Article license"
msgstr "Standardlisens"
msgid "Search result(s) for \"{0}\""
msgid "Search result for \"{0}\""
msgstr ""
msgid "Search result(s)"
msgid "Search result"
msgstr ""
msgid "No results for your query"
msgid "No result for your query"
msgstr ""
msgid "No more results for your query"
@ -787,13 +810,6 @@ msgstr ""
msgid "Written by {0}"
msgstr ""
msgid "Edit"
msgstr ""
#, fuzzy
msgid "Delete this article"
msgstr "Siste artikler"
msgid "All rights reserved."
msgstr ""
@ -850,6 +866,18 @@ msgstr "Send kommentar"
msgid "No comments yet. Be the first to react!"
msgstr "Ingen kommentarer enda. Vær den første!"
msgid "Delete"
msgstr ""
msgid "This article is still a draft. Only you and other authors can see it."
msgstr ""
msgid "Only you and other authors can edit this article."
msgstr ""
msgid "Edit"
msgstr ""
#, fuzzy
msgid "Invalid CSRF token"
msgstr "Ugyldig navn"
@ -978,9 +1006,6 @@ msgstr ""
msgid "Content warning: {0}"
msgstr "Innhold"
msgid "Delete"
msgstr ""
msgid "Details"
msgstr ""
@ -1015,6 +1040,10 @@ msgstr ""
msgid "Use as an avatar"
msgstr ""
#, fuzzy
#~ msgid "Delete this article"
#~ msgstr "Siste artikler"
#, fuzzy
#~ msgid "Short description - byline"
#~ msgstr "Kort beskrivelse"

View File

@ -282,15 +282,21 @@ msgstr "Zarejestruj się"
msgid "About this instance"
msgstr "O tej instancji"
msgid "Privacy policy"
msgstr ""
msgid "Administration"
msgstr "Administracja"
msgid "Documentation"
msgstr ""
msgid "Source code"
msgstr "Kod źródłowy"
msgid "Matrix room"
msgstr "Pokój Matrix.org"
msgid "Administration"
msgstr "Administracja"
msgid "Welcome to {}"
msgstr "Witamy na {}"
@ -366,6 +372,9 @@ msgstr "Zapisz te ustawienia"
msgid "About {0}"
msgstr "O {0}"
msgid "Runs Plume {0}"
msgstr "Działa na Plume {0}"
msgid "Home to <em>{0}</em> people"
msgstr "Używana przez <em>{0}</em> użytkowników"
@ -378,8 +387,22 @@ msgstr "Sa połączone z <em>{0}</em> innymi instancjami"
msgid "Administred by"
msgstr "Administrowany przez"
msgid "Runs Plume {0}"
msgstr "Działa na Plume {0}"
msgid ""
"If you are browsing this site as a visitor, no data about you is collected."
msgstr ""
msgid ""
"As a registered user, you also have to provide your username (which does not "
"have to be your real name), your functional email address and a password, in "
"order to be able to log in, write articles and comment. The content you "
"submit is stored until you delete it."
msgstr ""
msgid ""
"When you log in, we store two cookies, one to keep your session open, the "
"second to prevent other people to act on your behalf. We don't store any "
"other cookies."
msgstr ""
msgid "Follow {}"
msgstr "Obserwuj {}"
@ -616,8 +639,7 @@ msgstr "Domena instancji"
msgid "Posted by one of these authors"
msgstr "Opublikowany przez jednego z tych autorów"
#, fuzzy
msgid "Author(s)"
msgid "Authors"
msgstr "Autorzy"
# src/template_utils.rs:305
@ -641,16 +663,13 @@ msgstr "Opublikowany na tej licencji"
msgid "Article license"
msgstr "Licencja artykułu"
#, fuzzy
msgid "Search result(s) for \"{0}\""
msgid "Search result for \"{0}\""
msgstr "Wyniki wyszukiwania dla „{0}”"
#, fuzzy
msgid "Search result(s)"
msgid "Search result"
msgstr "Wyniki wyszukiwania"
#, fuzzy
msgid "No results for your query"
msgid "No result for your query"
msgstr "Brak wyników dla tego kryterium"
msgid "No more results for your query"
@ -756,12 +775,6 @@ msgstr "Opublikuj wpis"
msgid "Written by {0}"
msgstr "Napisany przez {0}"
msgid "Edit"
msgstr "Edytuj"
msgid "Delete this article"
msgstr "Usuń ten artykuł"
msgid "All rights reserved."
msgstr "Wszelkie prawa zastrzeżone."
@ -817,6 +830,18 @@ msgstr "Wyślij komentarz"
msgid "No comments yet. Be the first to react!"
msgstr "Brak komentarzy. Bądź pierwszy(-a)!"
msgid "Delete"
msgstr "Usuń"
msgid "This article is still a draft. Only you and other authors can see it."
msgstr ""
msgid "Only you and other authors can edit this article."
msgstr ""
msgid "Edit"
msgstr "Edytuj"
msgid "Invalid CSRF token"
msgstr "Nieprawidłowy token CSRF"
@ -940,9 +965,6 @@ msgstr "Nie masz żadnej zawartości multimedialnej."
msgid "Content warning: {0}"
msgstr "Ostrzeżenie o zawartości: {0}"
msgid "Delete"
msgstr "Usuń"
msgid "Details"
msgstr "Bliższe szczegóły"
@ -977,3 +999,6 @@ msgstr "Skopiuj do swoich artykułów, aby wstawić tę zawartość multimedialn
msgid "Use as an avatar"
msgstr "Użyj jako awataru"
#~ msgid "Delete this article"
#~ msgstr "Usuń ten artykuł"

View File

@ -266,15 +266,21 @@ msgstr ""
msgid "About this instance"
msgstr ""
msgid "Privacy policy"
msgstr ""
msgid "Administration"
msgstr ""
msgid "Documentation"
msgstr ""
msgid "Source code"
msgstr ""
msgid "Matrix room"
msgstr ""
msgid "Administration"
msgstr ""
msgid "Welcome to {}"
msgstr ""
@ -350,6 +356,9 @@ msgstr ""
msgid "About {0}"
msgstr ""
msgid "Runs Plume {0}"
msgstr ""
msgid "Home to <em>{0}</em> people"
msgstr ""
@ -362,7 +371,13 @@ msgstr ""
msgid "Administred by"
msgstr ""
msgid "Runs Plume {0}"
msgid "If you are browsing this site as a visitor, no data about you is collected."
msgstr ""
msgid "As a registered user, you also have to provide your username (which does not have to be your real name), your functional email address and a password, in order to be able to log in, write articles and comment. The content you submit is stored until you delete it."
msgstr ""
msgid "When you log in, we store two cookies, one to keep your session open, the second to prevent other people to act on your behalf. We don't store any other cookies."
msgstr ""
msgid "Follow {}"
@ -585,7 +600,7 @@ msgstr ""
msgid "Posted by one of these authors"
msgstr ""
msgid "Author(s)"
msgid "Authors"
msgstr ""
# src/template_utils.rs:339
@ -609,13 +624,13 @@ msgstr ""
msgid "Article license"
msgstr ""
msgid "Search result(s) for \"{0}\""
msgid "Search result for \"{0}\""
msgstr ""
msgid "Search result(s)"
msgid "Search result"
msgstr ""
msgid "No results for your query"
msgid "No result for your query"
msgstr ""
msgid "No more results for your query"
@ -713,12 +728,6 @@ msgstr ""
msgid "Written by {0}"
msgstr ""
msgid "Edit"
msgstr ""
msgid "Delete this article"
msgstr ""
msgid "All rights reserved."
msgstr ""
@ -764,6 +773,18 @@ msgstr ""
msgid "No comments yet. Be the first to react!"
msgstr ""
msgid "Delete"
msgstr ""
msgid "This article is still a draft. Only you and other authors can see it."
msgstr ""
msgid "Only you and other authors can edit this article."
msgstr ""
msgid "Edit"
msgstr ""
msgid "Invalid CSRF token"
msgstr ""
@ -874,9 +895,6 @@ msgstr ""
msgid "Content warning: {0}"
msgstr ""
msgid "Delete"
msgstr ""
msgid "Details"
msgstr ""

View File

@ -282,15 +282,21 @@ msgstr "Registrar"
msgid "About this instance"
msgstr "Sobre esta instância"
msgid "Privacy policy"
msgstr ""
msgid "Administration"
msgstr "Administração"
msgid "Documentation"
msgstr ""
msgid "Source code"
msgstr "Código fonte"
msgid "Matrix room"
msgstr "Sala Matrix"
msgid "Administration"
msgstr "Administração"
msgid "Welcome to {}"
msgstr "Bem-vindo a {}"
@ -366,6 +372,9 @@ msgstr "Salvar estas configurações"
msgid "About {0}"
msgstr "Sobre {0}"
msgid "Runs Plume {0}"
msgstr "Roda Plume {0}"
msgid "Home to <em>{0}</em> people"
msgstr "Lar de <em>{0}</em> pessoas"
@ -378,8 +387,22 @@ msgstr "E esta conectados a <em>{0}</em> outras instâncias"
msgid "Administred by"
msgstr "Administrado por"
msgid "Runs Plume {0}"
msgstr "Roda Plume {0}"
msgid ""
"If you are browsing this site as a visitor, no data about you is collected."
msgstr ""
msgid ""
"As a registered user, you also have to provide your username (which does not "
"have to be your real name), your functional email address and a password, in "
"order to be able to log in, write articles and comment. The content you "
"submit is stored until you delete it."
msgstr ""
msgid ""
"When you log in, we store two cookies, one to keep your session open, the "
"second to prevent other people to act on your behalf. We don't store any "
"other cookies."
msgstr ""
#, fuzzy
msgid "Follow {}"
@ -616,7 +639,7 @@ msgstr ""
msgid "Posted by one of these authors"
msgstr ""
msgid "Author(s)"
msgid "Authors"
msgstr ""
# src/template_utils.rs:305
@ -640,15 +663,14 @@ msgstr ""
msgid "Article license"
msgstr ""
msgid "Search result(s) for \"{0}\""
msgid "Search result for \"{0}\""
msgstr ""
msgid "Search result(s)"
msgid "Search result"
msgstr ""
#, fuzzy
msgid "No results for your query"
msgstr "Ir para a sua galeria"
msgid "No result for your query"
msgstr ""
msgid "No more results for your query"
msgstr ""
@ -751,12 +773,6 @@ msgstr ""
msgid "Written by {0}"
msgstr "Escrito por {0}"
msgid "Edit"
msgstr "Mudar"
msgid "Delete this article"
msgstr "Suprimir este artigo"
msgid "All rights reserved."
msgstr ""
@ -806,6 +822,18 @@ msgstr "Submeter comentário"
msgid "No comments yet. Be the first to react!"
msgstr "Nenhum comentário ainda. Seja o primeiro a reagir!"
msgid "Delete"
msgstr "Suprimir"
msgid "This article is still a draft. Only you and other authors can see it."
msgstr ""
msgid "Only you and other authors can edit this article."
msgstr ""
msgid "Edit"
msgstr "Mudar"
msgid "Invalid CSRF token"
msgstr ""
@ -926,9 +954,6 @@ msgstr "Você ainda não tem nenhuma mídia."
msgid "Content warning: {0}"
msgstr ""
msgid "Delete"
msgstr "Suprimir"
msgid "Details"
msgstr ""
@ -961,3 +986,6 @@ msgstr ""
msgid "Use as an avatar"
msgstr ""
#~ msgid "Delete this article"
#~ msgstr "Suprimir este artigo"

View File

@ -281,15 +281,21 @@ msgstr "Înregistrare"
msgid "About this instance"
msgstr "Despre această instanță"
msgid "Privacy policy"
msgstr ""
msgid "Administration"
msgstr "Administrație"
msgid "Documentation"
msgstr ""
msgid "Source code"
msgstr "Cod sursă"
msgid "Matrix room"
msgstr ""
msgid "Administration"
msgstr "Administrație"
msgid "Welcome to {}"
msgstr ""
@ -365,6 +371,9 @@ msgstr ""
msgid "About {0}"
msgstr ""
msgid "Runs Plume {0}"
msgstr ""
msgid "Home to <em>{0}</em> people"
msgstr ""
@ -377,7 +386,21 @@ msgstr ""
msgid "Administred by"
msgstr ""
msgid "Runs Plume {0}"
msgid ""
"If you are browsing this site as a visitor, no data about you is collected."
msgstr ""
msgid ""
"As a registered user, you also have to provide your username (which does not "
"have to be your real name), your functional email address and a password, in "
"order to be able to log in, write articles and comment. The content you "
"submit is stored until you delete it."
msgstr ""
msgid ""
"When you log in, we store two cookies, one to keep your session open, the "
"second to prevent other people to act on your behalf. We don't store any "
"other cookies."
msgstr ""
msgid "Follow {}"
@ -605,8 +628,7 @@ msgstr ""
msgid "Posted by one of these authors"
msgstr ""
#, fuzzy
msgid "Author(s)"
msgid "Authors"
msgstr "Autori"
# src/template_utils.rs:305
@ -630,13 +652,13 @@ msgstr ""
msgid "Article license"
msgstr ""
msgid "Search result(s) for \"{0}\""
msgid "Search result for \"{0}\""
msgstr ""
msgid "Search result(s)"
msgid "Search result"
msgstr ""
msgid "No results for your query"
msgid "No result for your query"
msgstr ""
msgid "No more results for your query"
@ -738,12 +760,6 @@ msgstr ""
msgid "Written by {0}"
msgstr ""
msgid "Edit"
msgstr "Editare"
msgid "Delete this article"
msgstr ""
msgid "All rights reserved."
msgstr ""
@ -795,6 +811,18 @@ msgstr ""
msgid "No comments yet. Be the first to react!"
msgstr ""
msgid "Delete"
msgstr ""
msgid "This article is still a draft. Only you and other authors can see it."
msgstr ""
msgid "Only you and other authors can edit this article."
msgstr ""
msgid "Edit"
msgstr "Editare"
msgid "Invalid CSRF token"
msgstr ""
@ -912,9 +940,6 @@ msgstr ""
msgid "Content warning: {0}"
msgstr ""
msgid "Delete"
msgstr ""
msgid "Details"
msgstr ""

View File

@ -277,15 +277,21 @@ msgstr "Зарегистрироваться"
msgid "About this instance"
msgstr "Об этом узле"
msgid "Privacy policy"
msgstr ""
msgid "Administration"
msgstr "Администрирование"
msgid "Documentation"
msgstr ""
msgid "Source code"
msgstr "Исходный код"
msgid "Matrix room"
msgstr "Комната в Matrix"
msgid "Administration"
msgstr "Администрирование"
msgid "Welcome to {}"
msgstr ""
@ -361,6 +367,9 @@ msgstr ""
msgid "About {0}"
msgstr ""
msgid "Runs Plume {0}"
msgstr "Работает на Plume {0}"
msgid "Home to <em>{0}</em> people"
msgstr ""
@ -373,8 +382,22 @@ msgstr ""
msgid "Administred by"
msgstr "Администрируется"
msgid "Runs Plume {0}"
msgstr "Работает на Plume {0}"
msgid ""
"If you are browsing this site as a visitor, no data about you is collected."
msgstr ""
msgid ""
"As a registered user, you also have to provide your username (which does not "
"have to be your real name), your functional email address and a password, in "
"order to be able to log in, write articles and comment. The content you "
"submit is stored until you delete it."
msgstr ""
msgid ""
"When you log in, we store two cookies, one to keep your session open, the "
"second to prevent other people to act on your behalf. We don't store any "
"other cookies."
msgstr ""
#, fuzzy
msgid "Follow {}"
@ -603,7 +626,7 @@ msgstr ""
msgid "Posted by one of these authors"
msgstr ""
msgid "Author(s)"
msgid "Authors"
msgstr ""
# src/template_utils.rs:305
@ -627,15 +650,14 @@ msgstr ""
msgid "Article license"
msgstr ""
msgid "Search result(s) for \"{0}\""
msgid "Search result for \"{0}\""
msgstr ""
msgid "Search result(s)"
msgid "Search result"
msgstr ""
#, fuzzy
msgid "No results for your query"
msgstr "Перейти в вашу галерею"
msgid "No result for your query"
msgstr ""
msgid "No more results for your query"
msgstr ""
@ -737,12 +759,6 @@ msgstr ""
msgid "Written by {0}"
msgstr ""
msgid "Edit"
msgstr "Редактировать"
msgid "Delete this article"
msgstr "Удалить эту статью"
msgid "All rights reserved."
msgstr ""
@ -796,6 +812,18 @@ msgstr ""
msgid "No comments yet. Be the first to react!"
msgstr ""
msgid "Delete"
msgstr "Удалить"
msgid "This article is still a draft. Only you and other authors can see it."
msgstr ""
msgid "Only you and other authors can edit this article."
msgstr ""
msgid "Edit"
msgstr "Редактировать"
msgid "Invalid CSRF token"
msgstr ""
@ -920,9 +948,6 @@ msgstr ""
msgid "Content warning: {0}"
msgstr ""
msgid "Delete"
msgstr "Удалить"
msgid "Details"
msgstr ""
@ -955,3 +980,6 @@ msgstr ""
msgid "Use as an avatar"
msgstr ""
#~ msgid "Delete this article"
#~ msgstr "Удалить эту статью"

View File

@ -282,15 +282,21 @@ msgstr "Registrácia"
msgid "About this instance"
msgstr "O tejto instancii"
msgid "Privacy policy"
msgstr ""
msgid "Administration"
msgstr "Administrácia"
msgid "Documentation"
msgstr ""
msgid "Source code"
msgstr "Zdrojový kód"
msgid "Matrix room"
msgstr "Matrix miestnosť"
msgid "Administration"
msgstr "Administrácia"
msgid "Welcome to {}"
msgstr "Vitaj na {}"
@ -366,6 +372,9 @@ msgstr "Ulož tieto nastavenia"
msgid "About {0}"
msgstr "O {0}"
msgid "Runs Plume {0}"
msgstr "Beží na Plume {0}"
msgid "Home to <em>{0}</em> people"
msgstr "Domov pre <em>{0}</em> ľudí"
@ -378,8 +387,22 @@ msgstr "A sú pripojení k <em>{0}</em> ďalším instanciám"
msgid "Administred by"
msgstr "Správcom je"
msgid "Runs Plume {0}"
msgstr "Beží na Plume {0}"
msgid ""
"If you are browsing this site as a visitor, no data about you is collected."
msgstr ""
msgid ""
"As a registered user, you also have to provide your username (which does not "
"have to be your real name), your functional email address and a password, in "
"order to be able to log in, write articles and comment. The content you "
"submit is stored until you delete it."
msgstr ""
msgid ""
"When you log in, we store two cookies, one to keep your session open, the "
"second to prevent other people to act on your behalf. We don't store any "
"other cookies."
msgstr ""
msgid "Follow {}"
msgstr "Následuj {}"
@ -619,8 +642,7 @@ msgstr "Doména instancie"
msgid "Posted by one of these authors"
msgstr "Uverejnené jedným z týchto autorov"
#, fuzzy
msgid "Author(s)"
msgid "Authors"
msgstr "Autori"
# src/template_utils.rs:305
@ -644,16 +666,13 @@ msgstr "Uverejnené pod touto licenciou"
msgid "Article license"
msgstr "Článok je pod licenciou"
#, fuzzy
msgid "Search result(s) for \"{0}\""
msgid "Search result for \"{0}\""
msgstr "Výsledok hľadania pre \"{0}\""
#, fuzzy
msgid "Search result(s)"
msgid "Search result"
msgstr "Výsledok hľadania"
#, fuzzy
msgid "No results for your query"
msgid "No result for your query"
msgstr "Žiadny výsledok pre tvoje zadanie"
msgid "No more results for your query"
@ -759,12 +778,6 @@ msgstr "Zverejni svoj príspevok"
msgid "Written by {0}"
msgstr "Napísal/a {0}"
msgid "Edit"
msgstr "Uprav"
msgid "Delete this article"
msgstr "Vymaž tento článok"
msgid "All rights reserved."
msgstr "Všetky práva vyhradné."
@ -821,6 +834,18 @@ msgstr "Pošli komentár"
msgid "No comments yet. Be the first to react!"
msgstr "Zatiaľ žiadne komentáre. Buď prvý kto zareaguje!"
msgid "Delete"
msgstr "Zmazať"
msgid "This article is still a draft. Only you and other authors can see it."
msgstr ""
msgid "Only you and other authors can edit this article."
msgstr ""
msgid "Edit"
msgstr "Uprav"
msgid "Invalid CSRF token"
msgstr "Neplatný CSRF token"
@ -945,9 +970,6 @@ msgstr "Ešte nemáš nahrané žiadne multimédiá."
msgid "Content warning: {0}"
msgstr "Upozornenie o obsahu: {0}"
msgid "Delete"
msgstr "Zmazať"
msgid "Details"
msgstr "Podrobnosti"
@ -981,3 +1003,6 @@ msgstr "Kód skopíruj do tvojho článku, pre vloženie tohto mediálneho súbo
msgid "Use as an avatar"
msgstr "Použi ako avatar"
#~ msgid "Delete this article"
#~ msgstr "Vymaž tento článok"

View File

@ -276,15 +276,21 @@ msgstr "Registracija"
msgid "About this instance"
msgstr ""
msgid "Privacy policy"
msgstr ""
msgid "Administration"
msgstr "Administracija"
msgid "Documentation"
msgstr ""
msgid "Source code"
msgstr "Izvorni kod"
msgid "Matrix room"
msgstr ""
msgid "Administration"
msgstr "Administracija"
msgid "Welcome to {}"
msgstr "Dobrodošli u {0}"
@ -360,6 +366,9 @@ msgstr ""
msgid "About {0}"
msgstr ""
msgid "Runs Plume {0}"
msgstr ""
msgid "Home to <em>{0}</em> people"
msgstr ""
@ -372,7 +381,21 @@ msgstr ""
msgid "Administred by"
msgstr ""
msgid "Runs Plume {0}"
msgid ""
"If you are browsing this site as a visitor, no data about you is collected."
msgstr ""
msgid ""
"As a registered user, you also have to provide your username (which does not "
"have to be your real name), your functional email address and a password, in "
"order to be able to log in, write articles and comment. The content you "
"submit is stored until you delete it."
msgstr ""
msgid ""
"When you log in, we store two cookies, one to keep your session open, the "
"second to prevent other people to act on your behalf. We don't store any "
"other cookies."
msgstr ""
msgid "Follow {}"
@ -600,7 +623,7 @@ msgstr ""
msgid "Posted by one of these authors"
msgstr ""
msgid "Author(s)"
msgid "Authors"
msgstr ""
# src/template_utils.rs:305
@ -624,13 +647,13 @@ msgstr ""
msgid "Article license"
msgstr ""
msgid "Search result(s) for \"{0}\""
msgid "Search result for \"{0}\""
msgstr ""
msgid "Search result(s)"
msgid "Search result"
msgstr ""
msgid "No results for your query"
msgid "No result for your query"
msgstr ""
msgid "No more results for your query"
@ -732,12 +755,6 @@ msgstr ""
msgid "Written by {0}"
msgstr ""
msgid "Edit"
msgstr ""
msgid "Delete this article"
msgstr ""
msgid "All rights reserved."
msgstr ""
@ -789,6 +806,18 @@ msgstr ""
msgid "No comments yet. Be the first to react!"
msgstr ""
msgid "Delete"
msgstr ""
msgid "This article is still a draft. Only you and other authors can see it."
msgstr ""
msgid "Only you and other authors can edit this article."
msgstr ""
msgid "Edit"
msgstr ""
msgid "Invalid CSRF token"
msgstr ""
@ -905,9 +934,6 @@ msgstr ""
msgid "Content warning: {0}"
msgstr ""
msgid "Delete"
msgstr ""
msgid "Details"
msgstr ""

View File

@ -279,15 +279,21 @@ msgstr ""
msgid "About this instance"
msgstr ""
msgid "Privacy policy"
msgstr ""
msgid "Administration"
msgstr ""
msgid "Documentation"
msgstr ""
msgid "Source code"
msgstr ""
msgid "Matrix room"
msgstr ""
msgid "Administration"
msgstr ""
msgid "Welcome to {}"
msgstr ""
@ -363,6 +369,9 @@ msgstr ""
msgid "About {0}"
msgstr ""
msgid "Runs Plume {0}"
msgstr ""
msgid "Home to <em>{0}</em> people"
msgstr ""
@ -375,7 +384,21 @@ msgstr ""
msgid "Administred by"
msgstr ""
msgid "Runs Plume {0}"
msgid ""
"If you are browsing this site as a visitor, no data about you is collected."
msgstr ""
msgid ""
"As a registered user, you also have to provide your username (which does not "
"have to be your real name), your functional email address and a password, in "
"order to be able to log in, write articles and comment. The content you "
"submit is stored until you delete it."
msgstr ""
msgid ""
"When you log in, we store two cookies, one to keep your session open, the "
"second to prevent other people to act on your behalf. We don't store any "
"other cookies."
msgstr ""
msgid "Follow {}"
@ -603,7 +626,7 @@ msgstr ""
msgid "Posted by one of these authors"
msgstr ""
msgid "Author(s)"
msgid "Authors"
msgstr ""
# src/template_utils.rs:305
@ -627,13 +650,13 @@ msgstr ""
msgid "Article license"
msgstr ""
msgid "Search result(s) for \"{0}\""
msgid "Search result for \"{0}\""
msgstr ""
msgid "Search result(s)"
msgid "Search result"
msgstr ""
msgid "No results for your query"
msgid "No result for your query"
msgstr ""
msgid "No more results for your query"
@ -735,12 +758,6 @@ msgstr ""
msgid "Written by {0}"
msgstr ""
msgid "Edit"
msgstr ""
msgid "Delete this article"
msgstr ""
msgid "All rights reserved."
msgstr ""
@ -790,6 +807,18 @@ msgstr ""
msgid "No comments yet. Be the first to react!"
msgstr ""
msgid "Delete"
msgstr ""
msgid "This article is still a draft. Only you and other authors can see it."
msgstr ""
msgid "Only you and other authors can edit this article."
msgstr ""
msgid "Edit"
msgstr ""
msgid "Invalid CSRF token"
msgstr ""
@ -905,9 +934,6 @@ msgstr ""
msgid "Content warning: {0}"
msgstr ""
msgid "Delete"
msgstr ""
msgid "Details"
msgstr ""

View File

@ -185,6 +185,7 @@ Then try to restart Plume
routes::instance::interact,
routes::instance::nodeinfo,
routes::instance::about,
routes::instance::privacy,
routes::instance::web_manifest,
routes::likes::create,
routes::likes::create_auth,

View File

@ -313,6 +313,11 @@ pub fn about(rockets: PlumeRocket) -> Result<Ructe, ErrorPage> {
)))
}
#[get("/privacy")]
pub fn privacy(rockets: PlumeRocket) -> Ructe {
render!(instance::privacy(&rockets.to_context()))
}
#[get("/manifest.json")]
pub fn web_manifest() -> Result<Json<serde_json::Value>, ErrorPage> {
let instance = Instance::get_local()?;

View File

@ -1,6 +1,69 @@
// Heading
main header.article {
overflow: hidden;
background: $white;
color: $black;
display: grid;
background-size: cover;
background-position: center;
&.illustrated {
min-height: 75vh;
color: $white;
a, a:visited {
color: $white;
border-bottom: 1px solid transparent;
transition: border-bottom-color 0.1s ease-in;
&:hover {
border-bottom-color: $white;
}
}
}
& > * {
grid-row: 1;
grid-column: 1;
}
& > div:not(.shadow) {
z-index: 3;
font-family: $lora;
font-size: 1.2em;
bottom: 0;
left: 0;
right: 0;
max-width: $article-width;
margin: 2em auto;
display: flex;
flex-direction: column;
justify-content: end;
h1, .article-info {
text-align: center;
}
}
& > div.shadow {
z-index: 2;
height: 100%;
width: 100%;
background: linear-gradient(180deg, transparent 20vh, black 80vh);
}
& > img {
z-index: 1;
min-width: 100%;
min-height: 100%;
background: $purple;
}
}
main .article-info {
max-width: 40rem;
margin: 0 auto 3em;
font-size: 0.95em;
font-weight: 400;
@ -12,7 +75,7 @@ main .article-info {
// The article itself
main article {
max-width: 40rem;
max-width: $article-width;
margin: 2.5em auto;
font-family: $lora;
font-size: 1.2em;
@ -30,9 +93,14 @@ main article {
pre {
padding: 1em;
background: $lightgray;
background: $gray;
overflow: auto;
border-radius: 5px;
}
blockquote {
border-left: 5px solid $gray;
margin: 1em auto;
padding: 0em 2em;
}
}
@ -46,37 +114,42 @@ main .article-meta, main .article-meta button {
main .article-meta {
> * {
margin: 0 20%;
margin: $margin;
}
> .banner {
margin: 3em 0;
& > * {
margin: $margin;
}
}
> p {
margin: 2em 20%;
margin: 2em $horizontal-margin;
font-size: 0.9em;
}
// Article Tags
.tags {
list-style: none;
display: inline-block;
padding: 0px;
margin-bottom: 2em;
max-width: none;
flex: 20;
li {
display: inline-block;
background: $lightgray;
padding: 0px;
margin: 0px 10px 10px 0px;
border-radius: 3px;
transition: all 0.2s ease-in;
border: 1px solid $purple;
a {
display: inline-block;
padding: 10px 20px;
color: $black;
}
&:hover {
background: mix($black, $lightgray, 10%);
background: transparentize($purple, 0.9);
}
}
}
@ -111,6 +184,7 @@ main .article-meta {
color: $black;
border: none;
font-size: 1.1em;
cursor: pointer;
svg.feather {
transition: background 0.1s ease-in;
@ -185,11 +259,7 @@ main .article-meta {
// Comments
.comments {
margin: 0;
> * {
margin-left: 20%;
margin-right: 20%;
}
margin: 0 $horizontal-margin;
h2 {
color: $purple;
@ -208,13 +278,12 @@ main .article-meta {
// Respond & delete comment buttons
a.button, form.inline, form.inline input {
display: inline-block;
padding: 0;
background: none;
color: $black;
border: none;
margin-right: 2em;
font-family: $route159;
font-weight: normal;
&::before {
color: $purple;
@ -224,18 +293,40 @@ main .article-meta {
&:hover { color: $purple; }
}
.list {
display: grid;
margin: 0 0 -5em;
padding: 0 20%;
background: $lightgray;
}
.comment {
padding: 2em;
margin: 1em 0;
font-size: 1em;
border: none;
.content {
background: $gray;
margin-top: 2.5em;
padding: 1em;
&::before {
display: block;
content: ' ';
border: 1em solid $gray;
border-top-color: transparent;
border-right-color: transparent;
position: relative;
top: -2.4em;
left: -1em;
width: 0;
height: 0;
}
}
header {
display: flex;
flex-direction: row;
justify-content: space-between;
}
.dt-published a {
color: transparentize($black, 0.6);
}
.author {
display: flex;
flex-direction: row;
@ -256,6 +347,10 @@ main .article-meta {
}
}
& > .comment {
padding-left: 2em;
}
.text {
padding: 1.25em 0;
font-family: $lora;
@ -303,7 +398,7 @@ main .article-meta {
bottom: 20vh;
left: 20vw;
right: 20vw;
background: $lightgray;
background: $gray;
border: 1px solid $purple;
z-index: 2;
padding: 2em;
@ -329,6 +424,11 @@ main .article-meta {
.cw-container {
position: relative;
display: inline-block;
cursor: pointer;
img {
margin: auto;
}
}
.cw-text {
@ -357,3 +457,26 @@ input:checked ~ .cw-container > .cw-text {
top: 50%;
transform: translateY(-50%);
}
// Bottom action bar
.bottom-bar {
z-index: 10;
position: fixed;
bottom: 0;
left: 0;
right: 0;
background: $gray;
margin: 0;
display: flex;
& > div {
margin: 1em;
}
& > div:nth-child(2) {
flex: 1;
display: flex;
margin: auto $horizontal-margin;
}
}

View File

@ -14,8 +14,7 @@ input, textarea, select {
background: $form-input-background;
color: $black;
border: none;
border: solid $lightgray thin;
border: solid $black thin;
font-size: 1.2em;
font-weight: 400;
@ -55,7 +54,6 @@ form.inline {
input[type="submit"] {
display: inline-block;
color: $purple;
cursor: pointer;
font-size: 1em;
width: auto;
@ -67,39 +65,46 @@ form.inline {
border: none;
background: transparent;
color: $purple;
font-weight: normal;
}
}
}
.button, input[type="submit"], button {
.button, .button:visited, input[type="submit"], input[type="submit"].button {
transition: all 0.1s ease-in;
display: inline-block;
-webkit-appearance: none;
border-radius: 0.5em;
margin: 0.5em auto;
padding: 0.75em 1em;
background: transparent;
color: $purple;
border: 1px solid $purple;
background: $purple;
color: $white;
font-weight: bold;
border: none;
cursor: pointer;
&:hover {
background: transparentize($purple, 0.6);
color: white;
background: transparentize($purple, 0.1);
}
&.destructive {
color: $red;
border-color: $red;
background: $red;
&:hover {
background: transparentize($red, 0.6);
color: $white;
background: transparentize($red, 0.1);
}
}
&.secondary {
background: $gray;
color: $black;
&:hover {
background: transparentize($black, 0.9);
}
}
}
input[type="submit"] {
display: block;
@ -126,18 +131,6 @@ form.new-post {
resize: none;
-webkit-appearance: textarea;
}
input[type="submit"] {
background: $lightgray;
color: $black;
border: none;
-webkit-appearance: none;
font-family: $playfair;
font-size: 1.5em;
}
input[type="submit"]:hover {
background: $lightgray;}
-webkit-appearance: none;
}
.button + .button {
@ -147,6 +140,7 @@ form.new-post {
.split {
display: flex;
justify-content: space-between;
flex-wrap: wrap;
& > * {
flex-grow: 1;

View File

@ -4,11 +4,12 @@ html, body {
background: $background;
color: $black;
font-family: $route159;
::selection {
background: $lightpurple;
}
::selection {
background: transparentize($purple, 0.7);
}
::-moz-selection {
background: $lightpurple;
background: transparentize($purple, 0.7);
}
}
@ -37,12 +38,15 @@ small {
padding: 5em;
}
.spaced {
margin: 4rem 0;
.right {
text-align: right;
display: flex;
justify-content: end;
align-items: center;
}
.cards.spaced {
margin: 1rem 0 5rem;
.spaced {
margin: 4rem 0;
}
.banner {
@ -59,21 +63,26 @@ small {
/// Main
body > main > *, .h-feed > * {
margin: 0 20%;
margin: 1em $horizontal-margin;
}
body > main > .h-entry, .h-feed {
margin: 0;
}
body > main {
min-height: 70vh;
}
main {
h1, h2, h3, h4, h5, h6 {
font-family: $route159;
line-height: 1.15;
font-weight: 300;
&.article {
max-width: 40rem;
max-width: $article-width;
}
}
h1 {
@ -94,7 +103,6 @@ main {
font-weight: 300;
&.article {
margin: auto;
font-size: 1.25em;
margin-bottom: 0.5em;
}
@ -126,8 +134,6 @@ main {
p.error {
color: $red;
font-weight: bold;
max-width: 40rem;
margin: 1em auto;
}
/// User page
@ -149,7 +155,6 @@ p.error {
background: $white;
color: $purple;
border: 1px solid $purple;
border-radius: 1em;
font-size: 1rem;
}
@ -164,6 +169,7 @@ p.error {
flex-direction: row;
flex-wrap: wrap;
padding: 0 5%;
margin: 1rem 0 5rem;
}
.card {
flex: 1;
@ -213,24 +219,44 @@ p.error {
overflow: hidden;
}
}
.list .card {
/* TODO */
background: 0;
margin: 2em 0;
padding: 0;
min-height: 0;
.list > .card {
background: transparent;
margin: 2em 0;
min-height: 3em;
padding: 1em;
transition: background 0.1s ease-in;
&:hover {
background-color: $gray;
}
&.compact {
margin: 0;
padding: 0 1em;
}
h3 {
margin: 0;
}
}
/// Instance presentation
.presentation > h2, .presentation > a {
text-align: center;
}
.presentation > a {
font-size: 1.2em;
margin: 1em;
.presentation {
max-width: none;
& > h2, & > a {
text-align: center;
}
& > a {
font-size: 1.2em;
margin: 1em;
}
}
// Stats
// Stats
.stats {
display: flex;
justify-content: space-around;
@ -282,13 +308,14 @@ p.error {
.grow {
flex: 1;
margin: 0 1em;
}
}
.left-icon {
align-self: center;
padding: 1em;
background: $lightgray;
background: $gray;
border-radius: 50px;
margin: 1em;
margin-right: 2em;
@ -298,13 +325,37 @@ p.error {
body > footer {
display: flex;
align-content: center;
justify-content: space-between;
background: $lightgray;
padding: 0 20%;
justify-content: space-around;
background: $purple;
color: $white;
margin-top: 5em;
* {
margin: 5em 0;
margin: 0;
}
hr {
transform: skew(-15deg);
background: $white;
border: none;
width: .2em;
}
a, a:visited {
color: $white;
}
div {
display: flex;
flex-direction: column;
flex-basis: 20%;
margin: 2em 0;
transition: all 0.1s ease-in;
& > * {
display: block;
margin: 1em 0;
}
}
}
@ -386,9 +437,9 @@ figure {
/// Tabs
.tabs {
border-bottom: 1px solid $lightgray;
border-bottom: 1px solid $gray;
padding: 0px;
margin: auto 20% 2em;
margin: auto $horizontal-margin 2em;
overflow: auto;
display: flex;

View File

@ -1,5 +1,5 @@
header {
background: $lightgray;
body > header {
background: $gray;
#content {
display: flex;
@ -27,7 +27,7 @@ header {
height: 1.4em;
margin: 0;
padding: 0;
color: $lightgray;
color: $gray;
font-size: 1.33em;
}
}

View File

@ -1,16 +1,22 @@
// Color Scheme
$background: #F4F4F4;
$form-input-background: #FFFFFF;
$gray: #E3E3E3;
$lightgray: #ECECEC;
$gray: #F3F3F3;
$black: #242424;
$white: #F4F4F4;
$white: #F8F8F8;
$purple: #7765E3;
$lightpurple: #c2bbee;
$red: #E92F2F;
$yellow: #ffe347;
$green: #23f0c7;
$background: $white;
$form-input-background: white;
// Dimensions
$article-width: 70ch;
$horizontal-margin: 20%;
$margin: 0 $horizontal-margin;
// Fonts
$route159: "Route159", serif;

View File

@ -32,21 +32,23 @@ html {
}
}
header {
body > header {
flex-direction: column;
nav#menu {
display: inline-flex;
z-index: 21;
}
#content {
display: none;
appearance: none;
text-align: center;
z-index: 20;
}
}
header:focus-within #content, #content.show {
body > header:focus-within #content, #content.show {
position: fixed;
display: flex;
flex-direction: column;
@ -104,11 +106,8 @@ html {
}
}
body > main > * {
padding: 0 5%;
}
main .article-meta {
> * {
> *, .comments {
margin: 0 5%;
}
> p {
@ -136,11 +135,41 @@ html {
flex-direction: column;
align-items: center;
}
body > footer * { margin: 1em auto; }
body > footer * {
margin: 1em auto;
text-align: center;
}
.flex.wrap { flex-direction: column; }
.cards {
.cards, .list {
margin: 1rem 0 5rem;
}
.split {
flex-direction: column;
margin: 0;
& > * {
max-width: 100%;
}
}
.bottom-bar {
flex-direction: column;
align-items: center;
& > div {
margin: 0;
}
}
main .article-meta .comments .comment {
header {
flex-direction: column;
}
.content {
margin-top: 0.5em;
}
}
}

View File

@ -1,4 +1,5 @@
@use plume_models::CONFIG;
@use plume_models::instance::Instance;
@use template_utils::*;
@use routes::*;
@(ctx: BaseContext, title: String, head: Content, header: Content, content: Content)
@ -78,13 +79,21 @@
@:content()
</main>
<footer>
<span>@concat!("Plume ", env!("CARGO_PKG_VERSION"))</span>
<a href="@uri!(instance::about)">@i18n!(ctx.1, "About this instance")</a>
<a href="https://github.com/Plume-org/Plume">@i18n!(ctx.1, "Source code")</a>
<a href="https://riot.im/app/#/room/#plume:disroot.org">@i18n!(ctx.1, "Matrix room")</a>
@if ctx.2.clone().map(|a| a.is_admin).unwrap_or(false) {
<a href="@uri!(instance::admin)">@i18n!(ctx.1, "Administration")</a>
}
<hr/>
<div>
<h3>@Instance::get_local().map(|i| i.name).unwrap_or_default()</h3>
<a href="@uri!(instance::about)">@i18n!(ctx.1, "About this instance")</a>
<a href="@uri!(instance::privacy)">@i18n!(ctx.1, "Privacy policy")</a>
@if ctx.2.clone().map(|a| a.is_admin).unwrap_or(false) {
<a href="@uri!(instance::admin)">@i18n!(ctx.1, "Administration")</a>
}
</div>
<div>
<h3>@concat!("Plume ", env!("CARGO_PKG_VERSION"))</h3>
<a href="https://docs.joinplu.me">@i18n!(ctx.1, "Documentation")</a>
<a href="https://github.com/Plume-org/Plume">@i18n!(ctx.1, "Source code")</a>
<a href="https://riot.im/app/#/room/#plume:disroot.org">@i18n!(ctx.1, "Matrix room")</a>
</div>
</footer>
<script src="@uri!(plume_static_files: file = "plume-front.js", _build_id = CACHE_NAME)"></script>
</body>

View File

@ -74,7 +74,7 @@
@if posts.is_empty() {
<p>@i18n!(ctx.1, "No posts to see here yet.")</p>
}
<div class="cards spaced">
<div class="cards">
@for article in posts {
@:post_card(ctx, article)
}

View File

@ -9,6 +9,8 @@
<h1>@i18n!(ctx.1, "About {0}"; instance.name)</h1>
<section>
@Html(instance.short_description_html)
<p>@i18n!(ctx.1, "Runs Plume {0}"; env!("CARGO_PKG_VERSION"))</p>
</section>
<div class="banner">
<section class="stats">
@ -27,7 +29,6 @@
<p><a href="@uri!(user::details: name = &admin.fqn)">@admin.name()</a><small>@@@admin.fqn</small></p>
</div>
</section>
<p>@i18n!(ctx.1, "Runs Plume {0}"; env!("CARGO_PKG_VERSION"))</p>
</div>
<section>
@Html(instance.long_description_html)

View File

@ -24,7 +24,7 @@
])
}
<div class="cards spaced">
<div class="cards">
@for article in articles {
@:post_card(ctx, article)
}

View File

@ -16,7 +16,7 @@
])
@if !articles.is_empty() {
<div class="cards spaced">
<div class="cards">
@for article in articles {
@:post_card(ctx, article)
}

View File

@ -16,7 +16,7 @@
<div class="list">
@for instance in instances {
<div class="flex">
<div class="card flex compact">
<p class="grow">
<a href="https://@instance.public_domain">@instance.name</a>
<small>@instance.public_domain</small>

View File

@ -25,7 +25,7 @@
])
}
<div class="cards spaced">
<div class="cards">
@for article in articles {
@:post_card(ctx, article)
}

View File

@ -0,0 +1,13 @@
@use templates::base;
@use template_utils::*;
@(ctx: BaseContext)
@:base(ctx, i18n!(ctx.1, "Privacy policy"), {}, {}, {
<h1>@i18n!(ctx.1, "Privacy policy")</h1>
<section>
<p>@i18n!(ctx.1, "If you are browsing this site as a visitor, no data about you is collected.")</p>
<p>@i18n!(ctx.1, "As a registered user, you have to provide your username (which does not have to be your real name), your functional email address and a password, in order to be able to log in, write articles and comment. The content you submit is stored until you delete it.")</p>
<p>@i18n!(ctx.1, "When you log in, we store two cookies, one to keep your session open, the second to prevent other people to act on your behalf. We don't store any other cookies.")</p>
</section>
})

View File

@ -16,7 +16,7 @@
<div class="list">
@for user in users {
<div class="flex">
<div class="card flex compact">
@avatar(ctx.0, &user, Size::Small, false, ctx.1)
<p class="grow">
<a href="@uri!(user::details: name = &user.fqn)">@user.name()</a>

View File

@ -24,15 +24,17 @@
</p>
<code>@media.markdown().unwrap_or_else(|_| SafeString::new(""))</code>
</div>
<div>
@if media.category() == MediaCategory::Image {
<form class="inline" method="post" action="@uri!(medias::set_avatar: id = media.id)">
<input class="button" type="submit" value="@i18n!(ctx.1, "Use as an avatar")">
</form>
}
<form class="inline" method="post" action="@uri!(medias::delete: id = media.id)">
<input class="button" type="submit" value="@i18n!(ctx.1, "Delete")">
</section>
<section>
@if media.category() == MediaCategory::Image {
<form method="post" action="@uri!(medias::set_avatar: id = media.id)">
<input class="button" type="submit" value="@i18n!(ctx.1, "Use as an avatar")">
</form>
</div>
}
<form method="post" action="@uri!(medias::delete: id = media.id)">
<input class="button destructive" type="submit" value="@i18n!(ctx.1, "Delete")">
</form>
</section>
})

View File

@ -15,7 +15,7 @@
<p>@i18n!(ctx.1, "You don't have any media yet.")</p>
}
<div class="cards spaced">
<div class="cards">
@for media in medias {
<div class="card">
<div class="cover media-preview @media.category().to_string()"

View File

@ -7,33 +7,40 @@
@if let Some(ref comm) = Some(&comment_tree.comment) {
@if let Ok(author) = comm.get_author(ctx.0) {
<div class="comment u-comment h-cite" id="comment-@comm.id">
<a class="author u-author h-card" href="@uri!(user::details: name = &author.fqn)">
@avatar(ctx.0, &author, Size::Small, true, ctx.1)
<span class="display-name p-name">@author.name()</span>
<small>@author.fqn</small>
</a>
@if let Some(ref ap_url) = comm.ap_url {
<a class="u-url" href="@ap_url"></a>
}
@if let Some(ref in_reply_to) = in_reply_to {
<a class="u-in-reply-to" href="@in_reply_to"></a>
}
<div class="text p-content">
@if comm.sensitive {
<details>
<summary>@comm.spoiler_text</summary>
<main class="content">
<header>
<a class="author u-author h-card" href="@uri!(user::details: name = &author.fqn)">
@avatar(ctx.0, &author, Size::Small, true, ctx.1)
<span class="display-name p-name">@author.name()</span>
<small>@author.fqn</small>
</a>
<p class="dt-published" datetime="@comm.creation_date.format("%F %T")">
@if let Some(ref ap_url) = comm.ap_url {
<a class="u-url" href="@ap_url">@comm.creation_date.format("%B %e, %Y %H:%M")</a>
}
</p>
@if let Some(ref in_reply_to) = in_reply_to {
<a class="u-in-reply-to hidden" href="@in_reply_to"></a>
}
</header>
<div class="text p-content">
@if comm.sensitive {
<details>
<summary>@comm.spoiler_text</summary>
}
@Html(&comm.content)
@if comm.sensitive {
</details>
}
</div>
<a class="button icon icon-message-circle" href="?responding_to=@comm.id">@i18n!(ctx.1, "Respond")</a>
@if ctx.2.clone().map(|u| u.id == author.id).unwrap_or(false) {
<form class="inline icon icon-trash" method="post" action="@uri!(comments::delete: blog = blog, slug = slug, id = comm.id)">
<input onclick="return confirm('@i18n!(ctx.1, "Are you sure?")')" type="submit" value="@i18n!(ctx.1, "Delete this comment")">
</form>
}
@Html(&comm.content)
@if comm.sensitive {
</details>
}
</div>
<a class="button icon icon-message-circle" href="?responding_to=@comm.id">@i18n!(ctx.1, "Respond")</a>
@if ctx.2.clone().map(|u| u.id == author.id).unwrap_or(false) {
<form class="inline icon icon-trash" method="post" action="@uri!(comments::delete: blog = blog, slug = slug, id = comm.id)">
<input onclick="return confirm('@i18n!(ctx.1, "Are you sure?")')" type="submit" value="@i18n!(ctx.1, "Delete this comment")">
</form>
}
</main>
@for res in &comment_tree.responses {
@:comment(ctx, res, comm.ap_url.as_ref().map(|u| &**u), blog, slug)
}

View File

@ -7,7 +7,7 @@
@if !articles.is_empty() {
<div class="h-feed">
<h2><span class="p-name">@title</span> &mdash; <a href="@link">@i18n!(ctx.1, "View all")</a></h2>
<div class="cards spaced">
<div class="cards">
@for article in articles {
@:post_card(ctx, article)
}

View File

@ -4,31 +4,29 @@
@(ctx: BaseContext, instance: Instance, n_users: i64, n_articles: i64)
<section class="spaced">
<div class="cards">
<div class="presentation card">
<h2>@i18n!(ctx.1, "What is Plume?")</h2>
<main>
<p>@i18n!(ctx.1, "Plume is a decentralized blogging engine.")</p>
<p>@i18n!(ctx.1, "Authors can manage multiple blogs, each as its own website.")</p>
<p>@i18n!(ctx.1, "Articles are also visible on other Plume instances, and you can interact with them directly from other platforms like Mastodon.")</p>
</main>
<a href="@uri!(user::new)">@i18n!(ctx.1, "Create your account")</a>
</div>
<div class="presentation card">
<h2>@i18n!(ctx.1, "About {0}"; instance.name)</h2>
<main>
@Html(instance.short_description_html)
<section class="stats">
<div>
<p>@Html(i18n!(ctx.1, "Home to <em>{0}</em> people"; n_users))</p>
</div>
<div>
<p>@Html(i18n!(ctx.1, "Who wrote <em>{0}</em> articles"; n_articles))</p>
</div>
</section>
</main>
<a href="@uri!(instance::about)">@i18n!(ctx.1, "Read the detailed rules")</a>
</div>
<section class="split">
<div class="presentation card">
<h2>@i18n!(ctx.1, "What is Plume?")</h2>
<main>
<p>@i18n!(ctx.1, "Plume is a decentralized blogging engine.")</p>
<p>@i18n!(ctx.1, "Authors can manage multiple blogs, each as its own website.")</p>
<p>@i18n!(ctx.1, "Articles are also visible on other Plume instances, and you can interact with them directly from other platforms like Mastodon.")</p>
</main>
<a href="@uri!(user::new)">@i18n!(ctx.1, "Create your account")</a>
</div>
<div class="presentation card">
<h2>@i18n!(ctx.1, "About {0}"; instance.name)</h2>
<main>
@Html(instance.short_description_html)
<section class="stats">
<div>
<p>@Html(i18n!(ctx.1, "Home to <em>{0}</em> people"; n_users))</p>
</div>
<div>
<p>@Html(i18n!(ctx.1, "Who wrote <em>{0}</em> articles"; n_articles))</p>
</div>
</section>
</main>
<a href="@uri!(instance::about)">@i18n!(ctx.1, "Read the detailed rules")</a>
</div>
</section>

View File

@ -23,69 +23,53 @@
<a href="@uri!(blogs::details: name = &blog.fqn, page = _)">@blog.title</a>
}, {
<div class="h-entry">
<h1 class="article p-name">@article.title</h1>
<h2 class="article p-summary">@article.subtitle</h2>
<div class="article-info">
<span class="author">
@Html(i18n!(ctx.1, "Written by {0}"; format!("<a href=\"{}\">{}</a>",
uri!(user::details: name = &author.fqn),
escape(&author.name()))))
</span>
&mdash;
<span class="date dt-published" datetime="@article.creation_date.format("%F %T")">@article.creation_date.format("%B %e, %Y")</span><a class="u-url" href="@article.ap_url"></a>
@if ctx.2.clone().map(|u| u.id == author.id).unwrap_or(false) {
&mdash;
<a href="@uri!(posts::edit: blog = &blog.fqn, slug = &article.slug)">@i18n!(ctx.1, "Edit")</a>
&mdash;
<form class="inline" method="post" action="@uri!(posts::delete: blog_name = &blog.fqn, slug = &article.slug)">
<input onclick="return confirm('@i18n!(ctx.1, "Are you sure?")')" type="submit" value="@i18n!(ctx.1, "Delete this article")">
</form>
<header
class="article @if article.cover_id.is_some() { illustrated }"
@if article.cover_id.is_some() { style="background-image: url('@article.cover_url(ctx.0).unwrap_or_default()'" }
>
<div>
<h1 class="article p-name">@article.title</h1>
<div class="article-info">
<span class="author">
@Html(i18n!(ctx.1, "Written by {0}"; format!("<a href=\"{}\">{}</a>",
uri!(user::details: name = &author.fqn),
escape(&author.name()))))
</span>
&mdash;
<span class="date dt-published" datetime="@article.creation_date.format("%F %T")">@article.creation_date.format("%B %e, %Y")</span><a class="u-url" href="@article.ap_url"></a>
</div>
<h2 class="article p-summary">@article.subtitle</h2>
</div>
@if article.cover_id.is_some() {
<div class="shadow"></div>
<img class="u-photo hidden" src="@article.cover_url(ctx.0).unwrap_or_default()"/>
}
@if !article.published {
<span class="badge">@i18n!(ctx.1, "Draft")</span>
}
</div>
@if article.cover_id.is_some() {
<div class="cover" style="background-image: url('@Html(article.cover_url(ctx.0).unwrap_or_default())')"></div>
<img class="hidden u-photo" src="@article.cover_url(ctx.0).unwrap_or_default()"/>
}
</header>
<article class="e-content">
@Html(&article.content)
</article>
<div class="article-meta">
<p>
@if article.license.is_empty() {
@i18n!(ctx.1, "All rights reserved."; &article.license)
} else {
@i18n!(ctx.1, "This article is under the {0} license."; &article.license)
}
</p>
<ul class="tags">
@for tag in tags {
@if !tag.is_hashtag {
<li><a class="p-category" href="@uri!(tags::tag: name = &tag.tag, page = _)">@tag.tag</a></li>
} else {
<span class="hidden p-category">@tag.tag</span>
<section class="split">
<ul class="tags">
@for tag in tags {
@if !tag.is_hashtag {
<li><a class="p-category" href="@uri!(tags::tag: name = &tag.tag, page = _)">@tag.tag</a></li>
} else {
<span class="hidden p-category">@tag.tag</span>
}
}
}
</ul>
<div class="flex p-author h-card">
@avatar(ctx.0, &author, Size::Medium, true, ctx.1)
<div class="grow">
<h2 class="p-name">
<a href="@uri!(user::details: name = &author.fqn)">@author.name()</a>
<a rel="author" class="u-url" href="@author.ap_url"></a>
</h2>
<p>@Html(&author.summary_html)</h2>
</div>
@if !ctx.2.as_ref().map(|u| u.id == author.id).unwrap_or(false) {
<form action="@uri!(user::follow: name = &author.fqn)" method="POST">
<input type="submit" class="button" value="@if is_following {@i18n!(ctx.1, "Unsubscribe")} else {@i18n!(ctx.1, "Subscribe")}">
</form>
}
</div>
</ul>
<p class="right">
@if article.license.is_empty() {
@i18n!(ctx.1, "All rights reserved."; &article.license)
} else {
@i18n!(ctx.1, "This article is under the {0} license."; &article.license)
}
</p>
</section>
@if ctx.2.is_some() {
<div class="actions">
<section class="actions">
<form class="likes" action="@uri!(likes::create: blog = &blog.fqn, slug = &article.slug)" method="POST">
<p aria-label="@i18n!(ctx.1, "One like", "{0} likes"; n_likes)" title="@i18n!(ctx.1, "One like", "{0} likes"; n_likes)">
@n_likes
@ -93,7 +77,7 @@
@if has_liked {
<button type="submit" class="action liked">@icon!("heart") @i18n!(ctx.1, "I don't like this anymore")</button>
} else {
} else {
<button type="submit" class="action">@icon!("heart") @i18n!(ctx.1, "Add yours")</button>
}
</form>
@ -108,18 +92,19 @@
<button type="submit" class="action">@icon!("repeat") @i18n!(ctx.1, "Boost")</button>
}
</form>
</div>
</section>
} else {
<p class="center">@Html(i18n!(ctx.1, "{0}Log in{1}, or {2}use your Fediverse account{3} to interact with this article";
format!("<a href='{}'>", uri!(session::new: m = _)), "</a>",
format!("<a href='{}'>", uri!(posts::remote_interact: blog_name = &blog.fqn, slug = &article.slug)), "</a>"
))</p>
<div class="actions">
<p class="center">@Html(i18n!(ctx.1, "{0}Log in{1}, or {2}use your Fediverse account{3} to interact with this article";
format!("<a href='{}'>", uri!(session::new: m = _)), "</a>",
format!("<a href='{}'>", uri!(posts::remote_interact: blog_name = &blog.fqn, slug = &article.slug)), "</a>"
))
</p>
<section class="actions">
<div class="likes">
<p aria-label="@i18n!(ctx.1, "One like", "{0} likes"; n_likes)" title="@i18n!(ctx.1, "One like", "{0} likes"; n_likes)">
@n_likes
</p>
<a href="@uri!(posts::remote_interact: blog_name = &blog.fqn, slug = &article.slug)" class="action">@icon!("heart") @i18n!(ctx.1, "Add yours")</a>
<a href="@uri!(posts::remote_interact: blog_name = &blog.fqn, slug = &article.slug)" class="action">@icon!("heart") @i18n!(ctx.1, "Add yours")</a>
</div>
<div class="reshares">
@ -128,9 +113,26 @@
</p>
<a href="@uri!(posts::remote_interact: blog_name = &blog.fqn, slug = &article.slug)" class="action">@icon!("repeat") @i18n!(ctx.1, "Boost")</a>
</div>
</div>
</section>
}
<div class="comments">
<section class="banner">
<div class="flex p-author h-card user">
@avatar(ctx.0, &author, Size::Medium, true, ctx.1)
<div class="grow">
<h2 class="p-name">
<a href="@uri!(user::details: name = &author.fqn)">@author.name()</a>
<a rel="author" class="u-url" href="@author.ap_url"></a>
</h2>
<p>@Html(&author.summary_html)</p>
</div>
@if !ctx.2.as_ref().map(|u| u.id == author.id).unwrap_or(false) {
<form action="@uri!(user::follow: name = &author.fqn)" method="POST">
<input type="submit" class="button" value="@if is_following {@i18n!(ctx.1, "Unsubscribe")} else {@i18n!(ctx.1, "Subscribe")}">
</form>
}
</div>
</section>
<section class="comments">
<h2>@i18n!(ctx.1, "Comments")</h2>
@if ctx.2.is_some() {
@ -147,15 +149,35 @@
}
@if !comments.is_empty() {
<div class="list">
@for comm in comments {
@:comment(ctx, &comm, Some(&article.ap_url), &blog.fqn, &article.slug)
}
</div>
@for comm in comments {
@:comment(ctx, &comm, Some(&article.ap_url), &blog.fqn, &article.slug)
}
} else {
<p class="center">@i18n!(ctx.1, "No comments yet. Be the first to react!")</p>
}
</div>
</section>
</div>
</div>
@if ctx.2.clone().and_then(|u| article.is_author(ctx.0, u.id).ok()).unwrap_or(false) {
<aside class="bottom-bar">
<div>
<form class="inline" method="post" action="@uri!(posts::delete: blog_name = &blog.fqn, slug = &article.slug)">
<input class="button destructive" onclick="return confirm('@i18n!(ctx.1, "Are you sure?")')" type="submit" value="@i18n!(ctx.1, "Delete")">
</form>
</div>
<div>
@if !article.published {
<p>@i18n!(ctx.1, "This article is still a draft. Only you and other authors can see it.")</p>
} else {
<p>@i18n!(ctx.1, "Only you and other authors can edit this article.")</p>
}
</div>
<div>
@if !article.published {
<a class="button secondary" href="@uri!(posts::edit: blog = &blog.fqn, slug = &article.slug)">@i18n!(ctx.1, "Publish")</a>
}
<a class="button" href="@uri!(posts::edit: blog = &blog.fqn, slug = &article.slug)">@i18n!(ctx.1, "Edit")</a>
</div>
</aside>
}
})