Compare commits

..

107 commits

Author SHA1 Message Date
hynet-mel
8ab3d34614 Squashed commit of the following:
commit 7cc6c35654
Merge: e7a558a5 228679e4
Author: FloatingGhost <hannah@coffee-and-dreams.uk>
Date:   Sat Feb 24 13:55:57 2024 +0000

    Merge branch 'develop' into stable

commit 228679e49e
Author: FloatingGhost <hannah@coffee-and-dreams.uk>
Date:   Sat Feb 24 13:55:10 2024 +0000

    2024.02 release

commit d610a46c32
Merge: ed0b403c 09257632
Author: Weblate <noreply@weblate.org>
Date:   Tue Feb 20 16:24:40 2024 +0000

    Merge branch 'origin/develop' into Weblate.

commit ed0b403c33
Merge: 0f842b30 a77a9e04
Author: floatingghost <hannah@coffee-and-dreams.uk>
Date:   Tue Feb 20 16:24:37 2024 +0000

    Merge pull request 'Auto-approve followbacks (frontend part)' (#365) from Oneric/akkoma-fe:followbacks-fe into develop

    Reviewed-on: #365

commit 0925763267
Merge: 0f842b30 e292af42
Author: Weblate <noreply@weblate.org>
Date:   Tue Feb 20 16:20:18 2024 +0000

    Merge branch 'origin/develop' into Weblate.

commit 0f842b300b
Merge: 865cb6f9 050c7df2
Author: floatingghost <hannah@coffee-and-dreams.uk>
Date:   Tue Feb 20 16:20:14 2024 +0000

    Merge pull request 'Display profile background of other users' (#371) from Oneric/akkoma-fe:profile-backgrounds into develop

    Reviewed-on: #371

commit e292af4211
Merge: 865cb6f9 4e7d5d3a
Author: Weblate <noreply@weblate.org>
Date:   Mon Feb 19 14:04:37 2024 +0000

    Merge branch 'origin/develop' into Weblate.

commit 865cb6f96a
Merge: 8dce31d0 a5733499
Author: floatingghost <hannah@coffee-and-dreams.uk>
Date:   Mon Feb 19 14:04:34 2024 +0000

    Merge pull request 'Add Indonesian translation' (#366) from leap123/akkoma-fe:leap123-patch-1 into develop

    Reviewed-on: #366

commit 4e7d5d3a08
Author: Weblate <noreply@weblate.org>
Date:   Thu Feb 15 17:32:33 2024 +0000

    Translated using Weblate (Vietnamese)

    Currently translated at 92.2% (965 of 1046 strings)

    Translated using Weblate (Vietnamese)

    Currently translated at 92.2% (965 of 1046 strings)

    Translated using Weblate (Vietnamese)

    Currently translated at 84.3% (882 of 1046 strings)

    Translated using Weblate (Vietnamese)

    Currently translated at 84.3% (882 of 1046 strings)

    Translated using Weblate (Vietnamese)

    Currently translated at 79.8% (835 of 1046 strings)

    Translated using Weblate (Vietnamese)

    Currently translated at 79.8% (835 of 1046 strings)

    Co-authored-by: Nguyễn Gia Phong <cnx@loang.net>
    Co-authored-by: Weblate <noreply@weblate.org>
    Co-authored-by: xarvos <huyngo@disroot.org>
    Translate-URL: http://translate.akkoma.dev/projects/akkoma/pleroma-fe/vi/
    Translation: Pleroma fe/pleroma-fe

commit f2d0c4c7d5
Author: Weblate <noreply@weblate.org>
Date:   Thu Feb 15 17:32:33 2024 +0000

    Translated using Weblate (Japanese)

    Currently translated at 0.2% (3 of 1046 strings)

    Added translation using Weblate (Japanese)

    Co-authored-by: Nakaya <s_fpfb_sub-second@yahoo.co.jp>
    Co-authored-by: Weblate <noreply@weblate.org>
    Translate-URL: http://translate.akkoma.dev/projects/akkoma/pleroma-fe/ja/
    Translation: Pleroma fe/pleroma-fe

commit 02a6591f20
Author: Weblate <noreply@weblate.org>
Date:   Thu Feb 15 17:32:33 2024 +0000

    Translated using Weblate (Greek)

    Currently translated at 15.9% (167 of 1046 strings)

    Co-authored-by: Weblate <noreply@weblate.org>
    Co-authored-by: getimiskon <getimiskon@disroot.org>
    Translate-URL: http://translate.akkoma.dev/projects/akkoma/pleroma-fe/el/
    Translation: Pleroma fe/pleroma-fe

commit 94c70f8914
Author: Weblate <noreply@weblate.org>
Date:   Thu Feb 15 17:32:33 2024 +0000

    Merge branch 'origin/develop' into Weblate.

    Translated using Weblate (Chinese (Simplified))

    Currently translated at 100.0% (1046 of 1046 strings)

    Co-authored-by: Poesty Li <poesty7450@gmail.com>
    Co-authored-by: Weblate <noreply@weblate.org>
    Translate-URL: http://translate.akkoma.dev/projects/akkoma/pleroma-fe/zh_Hans/
    Translation: Pleroma fe/pleroma-fe

commit 3ba8c90e1e
Author: Weblate <noreply@weblate.org>
Date:   Thu Feb 15 17:32:33 2024 +0000

    Translated using Weblate (Russian)

    Currently translated at 68.7% (719 of 1046 strings)

    Co-authored-by: Mel <hi@mel.gg>
    Co-authored-by: Weblate <noreply@weblate.org>
    Translate-URL: http://translate.akkoma.dev/projects/akkoma/pleroma-fe/ru/
    Translation: Pleroma fe/pleroma-fe

commit 83db80f88c
Author: Weblate <noreply@weblate.org>
Date:   Thu Feb 15 17:32:32 2024 +0000

    Translated using Weblate (Polish)

    Currently translated at 100.0% (1046 of 1046 strings)

    Translated using Weblate (Polish)

    Currently translated at 100.0% (1046 of 1046 strings)

    Co-authored-by: Weblate <noreply@weblate.org>
    Co-authored-by: subtype <subtype@hollow.capital>
    Translate-URL: http://translate.akkoma.dev/projects/akkoma/pleroma-fe/pl/
    Translation: Pleroma fe/pleroma-fe

commit 1489d92997
Author: Weblate <noreply@weblate.org>
Date:   Thu Feb 15 17:32:32 2024 +0000

    Translated using Weblate (Japanese (ja_EASY))

    Currently translated at 72.3% (757 of 1046 strings)

    Co-authored-by: Weblate <noreply@weblate.org>
    Co-authored-by: kazari <6c577a54-aac9-482a-955e-745c858445e3@simplelogin.com>
    Translate-URL: http://translate.akkoma.dev/projects/akkoma/pleroma-fe/ja_EASY/
    Translation: Pleroma fe/pleroma-fe

commit db5c9572dc
Author: Weblate <noreply@weblate.org>
Date:   Thu Feb 15 17:32:32 2024 +0000

    Translated using Weblate (Italian)

    Currently translated at 80.4% (841 of 1045 strings)

    Translated using Weblate (Italian)

    Currently translated at 65.3% (683 of 1045 strings)

    Co-authored-by: Cuche <cuche@mailbox.org>
    Co-authored-by: Weblate <noreply@weblate.org>
    Translate-URL: http://translate.akkoma.dev/projects/akkoma/pleroma-fe/it/
    Translation: Pleroma fe/pleroma-fe

commit 5bb53c8b0d
Author: Weblate <noreply@weblate.org>
Date:   Thu Feb 15 17:32:32 2024 +0000

    Translated using Weblate (Spanish)

    Currently translated at 93.9% (983 of 1046 strings)

    Translated using Weblate (Spanish)

    Currently translated at 92.5% (967 of 1045 strings)

    Co-authored-by: Weblate <noreply@weblate.org>
    Co-authored-by: taretka <info@tarteka.net>
    Translate-URL: http://translate.akkoma.dev/projects/akkoma/pleroma-fe/es/
    Translation: Pleroma fe/pleroma-fe

commit 665f88f5c7
Author: Weblate <noreply@weblate.org>
Date:   Thu Feb 15 17:32:32 2024 +0000

    Translated using Weblate (Indonesian)

    Currently translated at 71.9% (753 of 1046 strings)

    Co-authored-by: Aldiantoro Nugroho <kriwil@gmail.com>
    Co-authored-by: Weblate <noreply@weblate.org>
    Translate-URL: http://translate.akkoma.dev/projects/akkoma/pleroma-fe/id/
    Translation: Pleroma fe/pleroma-fe

commit 050c7df2e6
Author: Oneric <oneric@oneric.stub>
Date:   Wed Feb 14 17:44:57 2024 +0000

    Display profile background of other users

    And add a new frontend setting to hide other people's background.

commit a77a9e04d9
Author: Oneric <oneric@oneric.stub>
Date:   Wed Jan 17 19:50:47 2024 +0000

    Expose new server-side permit_followback setting

    Added to backend in AkkomaGang/akkoma#674

commit a57334991e
Author: leap123 <leapofazzam@protonmail.com>
Date:   Fri Jan 19 04:27:26 2024 +0000

    Add Indonesian translation

    The Indonesian translation is technically almost complete, just not added to messages.js

commit 8dce31d0ad
Merge: d304be65 ea9ad4d6
Author: floatingghost <hannah@coffee-and-dreams.uk>
Date:   Wed Dec 20 18:49:40 2023 +0000

    Merge pull request 'Improve UX of subject / Content Warning field' (#362) from hazelnoot/akkoma-fe:develop into develop

    Reviewed-on: #362

commit ea9ad4d600
Author: Hazel Koehler <acomputerdog@gmail.com>
Date:   Wed Dec 20 12:39:31 2023 -0500

    fix "always show content warning" setting

commit 34e2800f59
Author: Hazel Koehler <acomputerdog@gmail.com>
Date:   Sat Dec 16 14:44:26 2023 -0500

    add button to toggle the spoiler / CW field

commit 3d65eccf04
Author: Hazel Koehler <acomputerdog@gmail.com>
Date:   Sat Dec 16 13:37:59 2023 -0500

    use main emoji button for spoiler / CW field

commit d304be654f
Merge: aee97fa9 1de62fff
Author: floatingghost <hannah@coffee-and-dreams.uk>
Date:   Fri Dec 15 12:24:33 2023 +0000

    Merge pull request 'Update build setup instructions' (#343) from norm/pleroma-fe:update-build-setup into develop

    Reviewed-on: #343

commit aee97fa948
Merge: 7da1687f d9e1bc4d
Author: floatingghost <hannah@coffee-and-dreams.uk>
Date:   Fri Dec 15 12:24:07 2023 +0000

    Merge pull request 'Re-added extension checking for still-image' (#346) from Mergan/pleroma-fe:still-image-ultimate into develop

    Reviewed-on: #346

commit 7da1687f31
Merge: a8f193d4 235c734d
Author: floatingghost <hannah@coffee-and-dreams.uk>
Date:   Fri Dec 15 12:12:28 2023 +0000

    Merge pull request 'Use relative font size and set appropriate overflow behavior' (#355) from xarvos/pleroma-fe:update-css into develop

    Reviewed-on: #355

commit a8f193d4bd
Merge: 81c82e11 beee99e7
Author: floatingghost <hannah@coffee-and-dreams.uk>
Date:   Fri Dec 15 11:57:47 2023 +0000

    Merge pull request 'Stop constant movement of notifications due to changing timestamps' (#353) from Oneric/akkoma-fe:notification-writhing into develop

    Reviewed-on: #353

commit 81c82e11bc
Merge: 00cadce5 ab250c2f
Author: floatingghost <hannah@coffee-and-dreams.uk>
Date:   Fri Dec 15 11:54:15 2023 +0000

    Merge pull request 'Explicitly set SameSite attribute for cookies' (#352) from Oneric/akkoma-fe:cookie-samesite into develop

    Reviewed-on: #352

commit 00cadce5b4
Merge: 40a08f27 1b28ec3b
Author: floatingghost <hannah@coffee-and-dreams.uk>
Date:   Fri Dec 15 11:52:59 2023 +0000

    Merge pull request 'Format dates, times with window.navigator.language instead of UI i18n locale' (#354) from smitten/akkoma-fe:date-locale-fix-cherrypick into develop

    Reviewed-on: #354

commit 40a08f279b
Merge: 52b0b6f0 c524a47e
Author: floatingghost <hannah@coffee-and-dreams.uk>
Date:   Thu Nov 16 10:41:17 2023 +0000

    Merge pull request 'Drop broken "@ symbol as icon" setting' (#359) from Oneric/akkoma-fe:at-icon into develop

    Reviewed-on: #359

commit c524a47e6f
Author: Oneric <oneric@oneric.stub>
Date:   Wed Nov 15 23:36:19 2023 +0100

    Drop broken "@ symbol as icon" setting

    It was merged into pleroma-fe on 2022-02-03 in
    76547fe66d and imported
    into akkoma-fe on 2022-06-08 with the merge commit
    f6cf509a04.

    However, something went wrong in the merge and while the setting
    and its infrastructure exist, it is never used anywhere and @ is
    always displayed as text.

    Given it existed in this broken state for nearly one and a half years,
    never worked on akkoma-fe and no bugs were filed about this, it appears
    nobody cares, so let’s just remove it.

commit 235c734d37
Author: Ngô Ngọc Đức Huy <huyngo@disroot.org>
Date:   Sun Nov 5 09:21:49 2023 +0700

    Use overflow: auto for description

    Previously it sets overflow: scroll, so there's an unnecessary
    horizontal scroll.
    overflow: auto only shows scrollbar when it overflows

commit deaef1d0b9
Author: Ngô Ngọc Đức Huy <huyngo@disroot.org>
Date:   Sun Nov 5 09:21:01 2023 +0700

    Use relative unit for font size

commit 1b28ec3b72
Author: smitten <everything-cozy@pm.me>
Date:   Wed Nov 1 23:10:57 2023 -0400

    Match UI i18n configuration to browser locales

commit c9dc8f00f9
Author: smitten <everything-cozy@pm.me>
Date:   Mon Oct 30 18:54:07 2023 -0400

    Use window.navigator.language before interface i18n language

commit beee99e733
Author: Oneric <oneric@oneric.stub>
Date:   Wed Oct 18 22:51:24 2023 +0200

    Stop notifications boxes from change size over time

    Notifications about favourites and follows use .notification-right,
    notifications about replies instead use .heading-right.

    Previously only the former set a min-width, however the
    chosen value of 3em was too small to fit the worst case.
    As a consequence, when the timestamp text changes over time,
    its element width changes, which may result in neighbouring text
    (no longer) needing to wrap to a new line in turn changing the size
    of the whole notification box pushing older notification boxes down/up.

    These constant movements at the side of the screen can be quite
    annoying and confusing when the cause cannot be immediately discerned.

    Avoid this, by reserving enough space for any timestamp.

    For English, the worst case is the five-character 'XXmin', since the
    short identifier for minutes is the longest with three letters.
    With two exceptions, all other current localisation also do not exceed
    three letters in any short unit identifier up to days.
    However, some localisations (e.g. Polish) additionally insert a space
    between numerical value and unit. This matches SI recommendations
    pushing the worst case to 6 characters.

    6 characters will be sufficient for timestamps up to 3 weeks in all
    languages (minus prev exceptions), which seems reasonable enough
    as beyond this timestamps rarely change anyway.

    The aforementioned exceptions being Vietnamese and Occitan,
    but in the current localisation all or the relevant short unit
    identifiers are identical to the long forms indicating this is
    just due to incomplete translation.
    Indeed, Vietnamese Wikipedia (read through machine translation) suggests
    “ph” is commonly used as unit identifiers for minutes, but the current
    localisation fully spells it out as “phút”.

commit ccb0ffdc8a
Author: Oneric <oneric@oneric.stub>
Date:   Tue Oct 24 18:23:47 2023 +0200

    Don't show direction in notification timestamps

    Currently all notifications except follow-related once include
    and explicit direction text. (It missing in follow notifs is due to an
    omission in 804ba0cdb6 which only added
    the newly introduced with-direction to status-related notifs. Before,
    presumably all notifs included direction text.)

    But in the notification tray horizontal space is scarce
    and notifs can already be assumed to only come from the past.
    While it might not be too bad for the English localisation’s 4-letter
    ' ago' suffix, e.g. the Indonesian localisation’s ' yang lalu' needs
    10 letters.

    Thus instead of fixing the omission for follow-related notifs,
    drop direction text from all notification timestamps.

commit ab250c2f3a
Author: Oneric <oneric@oneric.stub>
Date:   Thu Oct 19 00:45:11 2023 +0200

    Explicitly set SameSite attribute for cookies

    Modern browsers start to tighten down on third-party access to cookies.
    E.g. in current Firefox, a warning about the userLanguage cookie was
    shown since it did not yet explicitly set the SameSite attribute and the
    default is about to change.

    The cookie name being referred to as BACKEND_LANGUAGE_COOKIE_NAME
    suggests it should be readable by the actual Akkoma backend, which can
    live at a different domain than akkoma-fe. Thus explicitly enable
    sharing with third-party sites.

    No warnings were shown for other cookies, so I assume
    this was the only one not yet setting SameSite.

commit 1de62fffcd
Author: Norm <normandy@biribiri.dev>
Date:   Sat Sep 23 20:34:30 2023 -0400

    Update config.example.json link and example domain

commit 306cea04a1
Author: Norm <normandy@biribiri.dev>
Date:   Sat Sep 23 20:33:46 2023 -0400

    Use corepack in build instructions

commit d9e1bc4d99
Author: Mergan <mergan@viridianpatriots.com>
Date:   Mon Oct 2 15:29:54 2023 -0700

    Re-added extension checking for still-image

    - Bonus refactoring

commit 52b0b6f008
Author: FloatingGhost <hannah@coffee-and-dreams.uk>
Date:   Mon Oct 2 13:28:23 2023 +0100

    add VI to messages.js

commit 8afbe5e3bc
Merge: 58be48d1 1056b89f
Author: floatingghost <hannah@coffee-and-dreams.uk>
Date:   Mon Sep 25 13:29:29 2023 +0000

    Merge pull request 'Making still-image better' (#341) from Mergan/pleroma-fe:still-image-ultimate into develop

    Reviewed-on: #341

commit 58be48d164
Merge: 174f98b1 6a1409e0
Author: floatingghost <hannah@coffee-and-dreams.uk>
Date:   Mon Sep 25 13:24:12 2023 +0000

    Merge pull request 'Do not copy all emojis in recentEmoji getter' (#340) from sn0w/akkoma-fe:feature/optimize-recent-emojis into develop

    Reviewed-on: #340

commit 1056b89fd1
Author: Mergan <mergan@viridianpatriots.com>
Date:   Tue Sep 12 04:19:08 2023 -0700

    Disabled aggressive matching for reduced motion (we search for gif now)

commit 3e64d78d05
Author: Mergan <mergan@viridianpatriots.com>
Date:   Tue Sep 12 04:17:28 2023 -0700

    An oopsie

commit 3947aafeba
Author: Mergan <mergan@viridianpatriots.com>
Date:   Tue Sep 12 04:08:47 2023 -0700

    Aligning canvas to image

commit 345934c2f3
Author: Mergan <mergan@viridianpatriots.com>
Date:   Tue Sep 12 03:36:14 2023 -0700

    Make label visible on avatar

commit 42a13b0f1b
Author: Mergan <mergan@viridianpatriots.com>
Date:   Tue Sep 12 03:05:42 2023 -0700

    Modify label

commit e13c4b6b85
Author: Mergan <mergan@viridianpatriots.com>
Date:   Tue Sep 12 02:48:53 2023 -0700

    Revamped still-image

commit 6a1409e09b
Author: sn0w <me@sn0w.cx>
Date:   Sun Sep 3 16:05:56 2023 +0200

    Do not copy all emojis in recentEmoji getter

commit e7a558a533
Merge: 5106fced 174f98b1
Author: FloatingGhost <hannah@coffee-and-dreams.uk>
Date:   Sat Aug 5 14:17:53 2023 +0100

    Merge branch 'develop' into stable

commit 174f98b1cb
Author: FloatingGhost <hannah@coffee-and-dreams.uk>
Date:   Sat Aug 5 14:17:42 2023 +0100

    don't die on my arm box please

commit 5106fcedd6
Merge: 1db322ba ab146b67
Author: FloatingGhost <hannah@coffee-and-dreams.uk>
Date:   Sat Aug 5 13:29:55 2023 +0100

    Merge branch 'develop' into stable

commit ab146b67ec
Author: FloatingGhost <hannah@coffee-and-dreams.uk>
Date:   Sat Aug 5 13:29:44 2023 +0100

    version

commit 1db322bae6
Merge: e530c2b4 3b4208ea
Author: FloatingGhost <hannah@coffee-and-dreams.uk>
Date:   Sat Aug 5 13:29:26 2023 +0100

    Merge branch 'develop' into stable

commit 3b4208ea41
Author: FloatingGhost <hannah@coffee-and-dreams.uk>
Date:   Fri Aug 4 16:48:13 2023 +0100

    debounce emoji searching

commit 856324fa26
Merge: 5a9322d2 0da0e2c8
Author: floatingghost <hannah@coffee-and-dreams.uk>
Date:   Fri Aug 4 15:09:56 2023 +0000

    Merge pull request 'Make favicon next to post username use Still-Image functionality' (#327) from Mergan/pleroma-fe:still-image-instance-favicon into develop

    Reviewed-on: #327

commit 5a9322d2c7
Merge: b52bfbcb 43d0a245
Author: floatingghost <hannah@coffee-and-dreams.uk>
Date:   Fri Aug 4 15:09:32 2023 +0000

    Merge pull request 'StillImage: Improved animated image detection' (#335) from yukijoou/akkoma-fe:still-image-better-gif-detection into develop

    Reviewed-on: #335

commit b52bfbcba0
Merge: 2b05a738 fa5d31b7
Author: Weblate <noreply@weblate.org>
Date:   Fri Aug 4 14:56:22 2023 +0000

    Merge branch 'origin/develop' into Weblate.

commit 2b05a738c9
Merge: 29cfdcbb 7c14e1a5
Author: floatingghost <hannah@coffee-and-dreams.uk>
Date:   Fri Aug 4 14:56:20 2023 +0000

    Merge pull request 'Add replying info for redraft' (#332) from xarvos/pleroma-fe:fix-reply-redraft into develop

    Reviewed-on: #332

commit fa5d31b793
Merge: 29cfdcbb 5174b959
Author: Weblate <noreply@weblate.org>
Date:   Fri Aug 4 14:54:38 2023 +0000

    Merge branch 'origin/develop' into Weblate.

commit 29cfdcbbcd
Author: tusooa <tusooa@kazv.moe>
Date:   Fri Aug 4 15:54:04 2023 +0100

    Add load more to blocks/mutes

commit 5174b95918
Author: Weblate <noreply@weblate.org>
Date:   Fri Aug 4 13:34:26 2023 +0000

    Translated using Weblate (Greek)

    Currently translated at 15.4% (162 of 1046 strings)

    Added translation using Weblate (Greek)

    Co-authored-by: Weblate <noreply@weblate.org>
    Co-authored-by: getimiskon <getimiskon@disroot.org>
    Translate-URL: http://translate.akkoma.dev/projects/akkoma/pleroma-fe/el/
    Translation: Pleroma fe/pleroma-fe

commit 56528206b8
Author: Weblate <noreply@weblate.org>
Date:   Fri Aug 4 13:34:26 2023 +0000

    Translated using Weblate (Portuguese)

    Currently translated at 62.7% (656 of 1046 strings)

    Co-authored-by: Jonathan Soares <jontix@murena.io>
    Co-authored-by: Weblate <noreply@weblate.org>
    Translate-URL: http://translate.akkoma.dev/projects/akkoma/pleroma-fe/pt/
    Translation: Pleroma fe/pleroma-fe

commit 590380c084
Author: Weblate <noreply@weblate.org>
Date:   Fri Aug 4 13:34:26 2023 +0000

    Translated using Weblate (Thai)

    Currently translated at 1.7% (18 of 1046 strings)

    Added translation using Weblate (Thai)

    Co-authored-by: Chanakan Mungtin <chanakan5591@chanakancloud.net>
    Co-authored-by: Pongsatorn Paewsoongnern <akkoma@miraiverse.me>
    Co-authored-by: Weblate <noreply@weblate.org>
    Translate-URL: http://translate.akkoma.dev/projects/akkoma/pleroma-fe/th/
    Translation: Pleroma fe/pleroma-fe

commit dfcbb3c1ec
Author: Weblate <noreply@weblate.org>
Date:   Fri Aug 4 13:34:26 2023 +0000

    Translated using Weblate (Ukrainian)

    Currently translated at 100.0% (1046 of 1046 strings)

    Co-authored-by: Denys Nykula <vegan@libre.net.ua>
    Co-authored-by: Weblate <noreply@weblate.org>
    Translate-URL: http://translate.akkoma.dev/projects/akkoma/pleroma-fe/uk/
    Translation: Pleroma fe/pleroma-fe

commit 9b01c31283
Author: Weblate <noreply@weblate.org>
Date:   Fri Aug 4 13:34:26 2023 +0000

    Translated using Weblate (Chinese (Simplified))

    Currently translated at 100.0% (1046 of 1046 strings)

    Co-authored-by: Poesty Li <poesty7450@gmail.com>
    Co-authored-by: Weblate <noreply@weblate.org>
    Translate-URL: http://translate.akkoma.dev/projects/akkoma/pleroma-fe/zh_Hans/
    Translation: Pleroma fe/pleroma-fe

commit 6be003b2f8
Author: Weblate <noreply@weblate.org>
Date:   Fri Aug 4 13:34:26 2023 +0000

    Translated using Weblate (French)

    Currently translated at 98.3% (1029 of 1046 strings)

    Co-authored-by: Thomate <thomas@burdick.fr>
    Co-authored-by: Weblate <noreply@weblate.org>
    Translate-URL: http://translate.akkoma.dev/projects/akkoma/pleroma-fe/fr/
    Translation: Pleroma fe/pleroma-fe

commit cc302fb0e2
Author: Weblate <noreply@weblate.org>
Date:   Fri Aug 4 13:34:26 2023 +0000

    Translated using Weblate (Japanese (ja_EASY))

    Currently translated at 72.3% (757 of 1046 strings)

    Translated using Weblate (Japanese (ja_EASY))

    Currently translated at 71.9% (753 of 1046 strings)

    Co-authored-by: Hikaru Shinagawa <hikali.47041@gmail.com>
    Co-authored-by: Weblate <noreply@weblate.org>
    Co-authored-by: kazari <6c577a54-aac9-482a-955e-745c858445e3@simplelogin.com>
    Translate-URL: http://translate.akkoma.dev/projects/akkoma/pleroma-fe/ja_EASY/
    Translation: Pleroma fe/pleroma-fe

commit c4e768f977
Author: Weblate <noreply@weblate.org>
Date:   Fri Aug 4 13:34:26 2023 +0000

    Translated using Weblate (Indonesian)

    Currently translated at 67.8% (710 of 1046 strings)

    Co-authored-by: Weblate <noreply@weblate.org>
    Co-authored-by: Yonle <yonle@lecturify.net>
    Translate-URL: http://translate.akkoma.dev/projects/akkoma/pleroma-fe/id/
    Translation: Pleroma fe/pleroma-fe

commit d8a7217335
Author: Weblate <noreply@weblate.org>
Date:   Fri Aug 4 13:34:26 2023 +0000

    Translated using Weblate (Turkish)

    Currently translated at 9.7% (102 of 1046 strings)

    Co-authored-by: Hasan Yıldız <hasanyildiz0@yaani.com>
    Co-authored-by: Weblate <noreply@weblate.org>
    Translate-URL: http://translate.akkoma.dev/projects/akkoma/pleroma-fe/tr/
    Translation: Pleroma fe/pleroma-fe

commit 35d10ab9ff
Merge: af97dd74 51ebe643
Author: floatingghost <hannah@coffee-and-dreams.uk>
Date:   Fri Aug 4 13:34:23 2023 +0000

    Merge pull request 'components: Honour 'prefers reduced motion' setting in many components' (#333) from yukijoou/akkoma-fe:fix-reduced-motion into develop

    Reviewed-on: #333

commit 43d0a24547
Author: Yuki Joou <yukijoou@laposte.net>
Date:   Thu Aug 3 16:03:12 2023 +0200

    StillImage: Improved animated image detection

    This patch makes StillImage's animation detection return early in cases
    where we can't detect the mimetype of the image. It also sets the image
    as animated in those cases if the user agent wants reduced motion.

    As reduced motion is an accessibility setting, I think it's best to use
    a "better safe than sorry" approach, it's better to accidentally mark
    something as animated that isn't than to have unblocked animations.

commit 51ebe643d5
Author: Yuki Joou <yukijoou@laposte.net>
Date:   Wed Aug 2 12:45:18 2023 +0200

    components: Honour 'prefers reduced motion' setting in many components

    This helps accessibility for motion-sensitive people such as myself, and
    can improve battery life in "battery saving" mode on most devices

commit 7c14e1a5bd
Author: Ngô Ngọc Đức Huy <huyngo@disroot.org>
Date:   Wed Aug 2 08:40:19 2023 +0700

    Add replying info for redraft

commit 0da0e2c814
Author: David <dmgf2008@hotmail.com>
Date:   Mon Jul 24 01:08:11 2023 -0700

    Make favicon next to post username use Still-Image functionality

commit af97dd7484
Merge: 28bf5974 2d387e2e
Author: floatingghost <hannah@coffee-and-dreams.uk>
Date:   Fri Jul 21 19:44:25 2023 +0000

    Merge pull request 'docs: Update Pleroma references to Akkoma' (#318) from norm/pleroma-fe:update-docs into develop

    Reviewed-on: #318

commit 28bf597443
Merge: a249baea 14ed359c
Author: floatingghost <hannah@coffee-and-dreams.uk>
Date:   Fri Jul 21 19:43:14 2023 +0000

    Merge pull request '[workaround] fix: emoji picker not scrollable on ios' (#323) from SukinoVerse/akkoma-fe:fix/emoji-picker-not-scrollable-ios into develop

    Reviewed-on: #323

commit a249baea8c
Merge: a4e82f78 32dc55b0
Author: floatingghost <hannah@coffee-and-dreams.uk>
Date:   Fri Jul 21 19:42:41 2023 +0000

    Merge pull request 'Make emoji reactions use Still-Image functionality' (#326) from Mergan/pleroma-fe:still-image-emoji-reactions into develop

    Reviewed-on: #326

commit a4e82f7886
Merge: 42ffce97 91eab22d
Author: floatingghost <hannah@coffee-and-dreams.uk>
Date:   Fri Jul 21 19:37:43 2023 +0000

    Merge pull request '[feat] Support prefers-reduced-motion disabling auto-play of animated images (#324)' (#325) from Mergan/pleroma-fe:support-prefers-reduced-motion into develop

    Reviewed-on: #325

commit 32dc55b07c
Author: David <dmgf2008@hotmail.com>
Date:   Thu Jul 20 17:20:54 2023 -0700

    Make emoji reactions use Still-Image functionality

commit 91eab22d77
Author: David <dmgf2008@hotmail.com>
Date:   Thu Jul 20 17:18:59 2023 -0700

    Simplified and fixed and/or oopsie

commit e2125c57d6
Author: David <dmgf2008@hotmail.com>
Date:   Thu Jul 20 16:26:52 2023 -0700

    Turn on by default

commit e0a6418e91
Author: David <dmgf2008@hotmail.com>
Date:   Thu Jul 20 16:14:36 2023 -0700

    Add prefers-reduced-motion support

commit 14ed359c33
Author: SukinoVERSΞ <github@miraiverse.me>
Date:   Tue Jul 11 22:16:37 2023 +0700

    fix: emoji picker not scrollable on ios

commit 2d387e2eb4
Author: Francis Dinh <normandy@biribiri.dev>
Date:   Fri May 26 23:02:38 2023 -0400

    update more images

commit 57f70371a9
Author: Francis Dinh <normandy@biribiri.dev>
Date:   Fri May 26 22:59:55 2023 -0400

    use better example emoji

commit 8feffbcdf6
Author: Francis Dinh <normandy@biribiri.dev>
Date:   Fri May 26 22:49:29 2023 -0400

    docs: Update Pleroma references to Akkoma

commit e530c2b462
Merge: 9aa64d82 42ffce97
Author: FloatingGhost <hannah@coffee-and-dreams.uk>
Date:   Tue May 23 14:10:31 2023 +0100

    Merge branch 'develop' into stable

commit 42ffce97d6
Merge: 2f479c67 ee6e7026
Author: FloatingGhost <hannah@coffee-and-dreams.uk>
Date:   Tue May 23 13:47:14 2023 +0100

    Merge remote-tracking branch 'origin/translations' into dm-privacy

commit 2f479c670f
Author: FloatingGhost <hannah@coffee-and-dreams.uk>
Date:   Tue May 23 13:46:59 2023 +0100

    Add DM settings

commit ee6e7026ab
Merge: 17c05a5c 42896c2a
Author: Weblate <noreply@weblate.org>
Date:   Tue May 23 11:38:58 2023 +0000

    Merge branch 'origin/develop' into Weblate.

commit 17c05a5ca2
Merge: ecb6be21 6b3b5545
Author: floatingghost <hannah@coffee-and-dreams.uk>
Date:   Tue May 23 11:38:57 2023 +0000

    Merge pull request 'paper theme: more contrast and fix setting tab hover' (#314) from denys/akkoma-fe:cool-paper-theme into develop

    Reviewed-on: #314

commit 42896c2abf
Merge: ecb6be21 6c92983a
Author: Weblate <noreply@weblate.org>
Date:   Tue May 23 11:38:30 2023 +0000

    Merge branch 'origin/develop' into Weblate.

commit ecb6be2152
Merge: 9e4985e2 8c6ccc32
Author: floatingghost <hannah@coffee-and-dreams.uk>
Date:   Tue May 23 11:38:28 2023 +0000

    Merge pull request 'fix unfinished post being sent when scrolling' (#312) from denys/akkoma-fe:accidental-mobile-posts into develop

    Reviewed-on: #312

commit 6c92983af6
Merge: 9e4985e2 60ff715a
Author: Weblate <noreply@weblate.org>
Date:   Tue May 23 11:37:26 2023 +0000

    Merge branch 'origin/develop' into Weblate.

commit 9e4985e225
Merge: 596ae7e3 2a76be56
Author: floatingghost <hannah@coffee-and-dreams.uk>
Date:   Tue May 23 11:37:24 2023 +0000

    Merge pull request 'fix apply theme button without page refresh' (#309) from denys/akkoma-fe:fix-apply-theme into develop

    Reviewed-on: #309

commit 60ff715aff
Author: Weblate <noreply@weblate.org>
Date:   Sun May 21 20:58:06 2023 +0000

    Translated using Weblate (Chinese (Simplified))

    Currently translated at 100.0% (1042 of 1042 strings)

    Co-authored-by: Poesty Li <poesty7450@gmail.com>
    Co-authored-by: Weblate <noreply@weblate.org>
    Translate-URL: http://translate.akkoma.dev/projects/akkoma/pleroma-fe/zh_Hans/
    Translation: Pleroma fe/pleroma-fe

commit 04bcf7d804
Author: Weblate <noreply@weblate.org>
Date:   Sun May 21 20:58:06 2023 +0000

    Translated using Weblate (Polish)

    Currently translated at 66.1% (689 of 1042 strings)

    Co-authored-by: Jeder <jeder@jeder.pl>
    Co-authored-by: Weblate <noreply@weblate.org>
    Translate-URL: http://translate.akkoma.dev/projects/akkoma/pleroma-fe/pl/
    Translation: Pleroma fe/pleroma-fe

commit 5fa305c58c
Author: Weblate <noreply@weblate.org>
Date:   Sun May 21 20:58:06 2023 +0000

    Translated using Weblate (Japanese (ja_EASY))

    Currently translated at 72.0% (751 of 1042 strings)

    Co-authored-by: Weblate <noreply@weblate.org>
    Co-authored-by: kazari <6c577a54-aac9-482a-955e-745c858445e3@simplelogin.com>
    Translate-URL: http://translate.akkoma.dev/projects/akkoma/pleroma-fe/ja_EASY/
    Translation: Pleroma fe/pleroma-fe

commit a2ceb89d5e
Author: Weblate <noreply@weblate.org>
Date:   Sun May 21 20:58:06 2023 +0000

    Translated using Weblate (Turkish)

    Currently translated at 4.0% (42 of 1042 strings)

    Added translation using Weblate (Turkish)

    Co-authored-by: Hasan Yıldız <hasanyildiz0@yaani.com>
    Co-authored-by: Weblate <noreply@weblate.org>
    Translate-URL: http://translate.akkoma.dev/projects/akkoma/pleroma-fe/tr/
    Translation: Pleroma fe/pleroma-fe

commit 6b3b55455d
Author: Denys Nykula <vegan@libre.net.ua>
Date:   Thu May 18 23:05:19 2023 +0300

    paper theme: more contrast and fix setting tab hover

commit 8c6ccc321d
Author: Denys Nykula <vegan@libre.net.ua>
Date:   Mon May 15 03:11:07 2023 +0300

    fix unfinished post being sent when scrolling

commit 596ae7e377
Merge: 0d22a22a 94d640f9
Author: floatingghost <hannah@coffee-and-dreams.uk>
Date:   Mon May 8 15:29:58 2023 +0000

    Merge pull request 'fix dropdown-item-icon and form controls using missing variables' (#307) from denys/akkoma-fe:missing-sass-vars into develop

    Reviewed-on: #307

commit 0d22a22a10
Merge: 1f943ce8 661a98d3
Author: floatingghost <hannah@coffee-and-dreams.uk>
Date:   Mon May 8 15:28:54 2023 +0000

    Merge pull request 'order bubble after public in sidebar like in other two menus' (#306) from denys/akkoma-fe:consistent-bubble-order into develop

    Reviewed-on: #306

commit 2a76be56e7
Author: Denys Nykula <vegan@libre.net.ua>
Date:   Mon May 1 20:54:18 2023 +0300

    fix apply theme button without page refresh

commit 661a98d38d
Author: Denys Nykula <vegan@libre.net.ua>
Date:   Mon May 1 20:53:29 2023 +0300

    order bubble after public in sidebar like in other two menus

commit 94d640f9f1
Author: Denys Nykula <vegan@libre.net.ua>
Date:   Mon May 1 20:50:31 2023 +0300

    fix dropdown-item-icon and form controls using missing variables

commit 9aa64d82c9
Merge: 85abc622 1f943ce8
Author: FloatingGhost <hannah@coffee-and-dreams.uk>
Date:   Fri Apr 14 18:10:41 2023 +0100

    Merge branch 'develop' into stable

commit 1f943ce8a5
Merge: c5407644 a4dfdc08
Author: Weblate <noreply@weblate.org>
Date:   Fri Apr 14 16:43:42 2023 +0000

    Merge branch 'origin/develop' into Weblate.

commit c540764408
Author: FloatingGhost <hannah@coffee-and-dreams.uk>
Date:   Fri Apr 14 17:43:05 2023 +0100

    ensure we only fetch reports when we're an admin

    Ref #288

commit a4dfdc0853
Merge: ddea499a f1bf2243
Author: Weblate <noreply@weblate.org>
Date:   Fri Apr 14 16:30:56 2023 +0000

    Merge branch 'origin/develop' into Weblate.

commit ddea499a36
Merge: 14cedc5e db33fe8e
Author: floatingghost <hannah@coffee-and-dreams.uk>
Date:   Fri Apr 14 16:30:55 2023 +0000

    Merge pull request 'Fix edits and redrafts being erased by drafts' (#297) from solidsanek/pleroma-fe:drafts-edit-redraft-fix into develop

    Reviewed-on: #297

commit db33fe8ee2
Author: solidsanek <solidsanek@outerheaven.club>
Date:   Sun Apr 9 11:02:13 2023 +0200

    Drafts: Fix drafts erasing edits and redrafts

commit f1bf22436d
Author: Weblate <noreply@weblate.org>
Date:   Wed Apr 5 18:57:45 2023 +0000

    Translated using Weblate (Portuguese)

    Currently translated at 62.8% (655 of 1042 strings)

    Co-authored-by: cel <8cbv6di5@duck.com>
    Translate-URL: http://translate.akkoma.dev/projects/akkoma/pleroma-fe/pt/
    Translation: Pleroma fe/pleroma-fe

commit 459c73ec02
Author: Weblate <noreply@weblate.org>
Date:   Wed Apr 5 18:57:45 2023 +0000

    Translated using Weblate (Chinese (Simplified))

    Currently translated at 100.0% (1041 of 1041 strings)

    Translated using Weblate (Chinese (Simplified))

    Currently translated at 99.9% (1040 of 1041 strings)

    Translated using Weblate (Chinese (Simplified))

    Currently translated at 99.9% (1040 of 1041 strings)

    Translated using Weblate (Chinese (Simplified))

    Currently translated at 99.9% (1039 of 1040 strings)

    Co-authored-by: Poesty Li <poesty7450@gmail.com>
    Co-authored-by: SevicheCC <sevicheee@outlook.com>
    Co-authored-by: Weblate <noreply@weblate.org>
    Translate-URL: http://translate.akkoma.dev/projects/akkoma/pleroma-fe/zh_Hans/
    Translation: Pleroma fe/pleroma-fe

commit 2acf1e5c59
Author: Weblate <noreply@weblate.org>
Date:   Wed Apr 5 18:57:45 2023 +0000

    Translated using Weblate (Ukrainian)

    Currently translated at 87.2% (908 of 1041 strings)

    Co-authored-by: Denys Nykula <vegan@libre.net.ua>
    Co-authored-by: Weblate <noreply@weblate.org>
    Translate-URL: http://translate.akkoma.dev/projects/akkoma/pleroma-fe/uk/
    Translation: Pleroma fe/pleroma-fe

commit 33c4459744
Author: Weblate <noreply@weblate.org>
Date:   Wed Apr 5 18:57:45 2023 +0000

    Translated using Weblate (French)

    Currently translated at 98.5% (1027 of 1042 strings)

    Translated using Weblate (French)

    Currently translated at 98.3% (1024 of 1041 strings)

    Translated using Weblate (French)

    Currently translated at 96.9% (1002 of 1033 strings)

    Co-authored-by: Thomate <thomas@burdick.fr>
    Co-authored-by: Weblate <noreply@weblate.org>
    Translate-URL: http://translate.akkoma.dev/projects/akkoma/pleroma-fe/fr/
    Translation: Pleroma fe/pleroma-fe

commit b00487e51f
Author: Weblate <noreply@weblate.org>
Date:   Wed Apr 5 18:57:45 2023 +0000

    Translated using Weblate (Japanese (ja_EASY))

    Currently translated at 71.6% (747 of 1042 strings)

    Translated using Weblate (Japanese (ja_EASY))

    Currently translated at 71.6% (747 of 1042 strings)

    Translated using Weblate (Japanese (ja_EASY))

    Currently translated at 54.1% (564 of 1042 strings)

    Co-authored-by: Hikaru Shinagawa <hikali.47041@gmail.com>
    Co-authored-by: Weblate <noreply@weblate.org>
    Co-authored-by: kazari <6c577a54-aac9-482a-955e-745c858445e3@simplelogin.com>
    Translate-URL: http://translate.akkoma.dev/projects/akkoma/pleroma-fe/ja_EASY/
    Translation: Pleroma fe/pleroma-fe

commit 1e1cab643c
Author: Weblate <noreply@weblate.org>
Date:   Wed Apr 5 18:57:45 2023 +0000

    Translated using Weblate (Dutch)

    Currently translated at 99.7% (1038 of 1041 strings)

    Co-authored-by: Fristi <fristi@subcon.town>
    Co-authored-by: Weblate <noreply@weblate.org>
    Translate-URL: http://translate.akkoma.dev/projects/akkoma/pleroma-fe/nl/
    Translation: Pleroma fe/pleroma-fe

commit 8d3219a6d2
Author: Weblate <noreply@weblate.org>
Date:   Wed Apr 5 18:57:45 2023 +0000

    Translated using Weblate (Indonesian)

    Currently translated at 65.4% (676 of 1033 strings)

    Translated using Weblate (Indonesian)

    Currently translated at 65.4% (676 of 1033 strings)

    Co-authored-by: Weblate <noreply@weblate.org>
    Co-authored-by: t1 <taaa@fedora.email>
    Translate-URL: http://translate.akkoma.dev/projects/akkoma/pleroma-fe/id/
    Translation: Pleroma fe/pleroma-fe

commit ec9753758f
Author: Weblate <noreply@weblate.org>
Date:   Wed Apr 5 18:57:45 2023 +0000

    Translated using Weblate (Spanish)

    Currently translated at 90.8% (938 of 1033 strings)

    Co-authored-by: Weblate <noreply@weblate.org>
    Co-authored-by: taretka <info@tarteka.net>
    Translate-URL: http://translate.akkoma.dev/projects/akkoma/pleroma-fe/es/
    Translation: Pleroma fe/pleroma-fe

commit 97ff4a7241
Author: Weblate <noreply@weblate.org>
Date:   Wed Apr 5 18:57:45 2023 +0000

    Translated using Weblate (German)

    Currently translated at 99.5% (1036 of 1041 strings)

    Co-authored-by: Johann <johann@qwertqwefsday.eu>
    Co-authored-by: Weblate <noreply@weblate.org>
    Translate-URL: http://translate.akkoma.dev/projects/akkoma/pleroma-fe/de/
    Translation: Pleroma fe/pleroma-fe

commit 14cedc5ed1
Author: FloatingGhost <hannah@coffee-and-dreams.uk>
Date:   Sat Apr 1 07:55:47 2023 +0100

    don't crash if `class` isn't a list

commit 5911777aa2
Merge: 7e1b1e79 47fc082f
Author: floatingghost <hannah@coffee-and-dreams.uk>
Date:   Thu Mar 30 09:49:38 2023 +0000

    Merge pull request 'Fix floating point error for poll expiry' (#294) from xarvos/pleroma-fe:fix-poll-expire into develop

    Reviewed-on: #294

commit 47fc082fb9
Author: Ngô Ngọc Đức Huy <huyngo@disroot.org>
Date:   Fri Mar 24 20:44:29 2023 +0700

    Fix floating point error for poll expiry

    Previous code multiply with 0.001 before multiplication which leads to a
    floating point error.  By changing it to division by 1000 after
    multiplication this is avoided.

commit 7e1b1e79f4
Author: FloatingGhost <hannah@coffee-and-dreams.uk>
Date:   Sat Mar 18 20:22:47 2023 +0000

    simplify timeline vibility checks

commit b92b2f74a4
Author: FloatingGhost <hannah@coffee-and-dreams.uk>
Date:   Sat Mar 18 20:01:05 2023 +0000

    add timeline visibility setting parsing

commit 7361f4e77e
Author: FloatingGhost <hannah@coffee-and-dreams.uk>
Date:   Thu Mar 16 16:41:37 2023 +0000

    Add checks for currentUser on sidebar

commit 9f7f9e2798
Author: FloatingGhost <hannah@coffee-and-dreams.uk>
Date:   Wed Mar 15 23:00:31 2023 +0000

    Remove unused bits and bobs

commit 42ab3eada4
Author: FloatingGhost <hannah@coffee-and-dreams.uk>
Date:   Wed Mar 15 22:20:54 2023 +0000

    Remove links from navs if we can't see the timeline

commit 85abc62213
Merge: 8569b594 6fdef479
Author: FloatingGhost <hannah@coffee-and-dreams.uk>
Date:   Sat Mar 11 17:27:22 2023 +0000

    Merge branch 'develop' into stable

commit 6fdef479d0
Author: flisk <akkomadev.mvch71fq@flisk.xyz>
Date:   Fri Mar 10 19:10:42 2023 +0000

    add recently used emojis panel to emoji picker (#283)

    ~~(not intended for merging yet, just submitting this for preliminary review and discussion)~~

    this patch adds a tab with recently used emojis to the emoji picker: https://akko.lain.gay/notice/ASoGCtyoiXbYPJjqpk

    there's a couple of things i'm ~~still trying to work out~~ not totally happy with and i'd appreciate any feedback on them:

    * the recentEmojis getter is called very frequently and has to do a possibly somewhat expensive lookup of emoji objects by their `displayName` each time, which i'm not sure is ideal
    * ~~emoji reactions on posts added through the picker are picked up by the recentEmojis module, but clicks on existing emoji reactions are not, because `addReaction` in `react_button.js` only currently receives the replacement and not the full emoji object (if there even is one wherever that method is called from)~~ this works now and does the same stupid full search of all emojis by their name which i guess is less bad because this only happens when you hit a reaction emoji button that already existed

    Reviewed-on: #283
    Co-authored-by: flisk <akkomadev.mvch71fq@flisk.xyz>
    Co-committed-by: flisk <akkomadev.mvch71fq@flisk.xyz>

commit fe08691f05
Merge: 6a976495 626c8800
Author: floatingghost <hannah@coffee-and-dreams.uk>
Date:   Fri Mar 10 18:57:38 2023 +0000

    Merge pull request 'support Misskey's oblong reactions' (#284) from yheuhtozr/pleroma-fe:oblong-reactions into develop

    Reviewed-on: #284

commit 6a9764951f
Merge: 0f33b1cd 999c3859
Author: floatingghost <hannah@coffee-and-dreams.uk>
Date:   Fri Mar 10 18:56:31 2023 +0000

    Merge pull request 'fix realtime updates in 'following' replies filter' (#285) from flisk/akkoma-fe:fix-realtime-reply-filter into develop

    Reviewed-on: #285

commit 0f33b1cd79
Merge: 6a9d169e 2c007f06
Author: floatingghost <hannah@coffee-and-dreams.uk>
Date:   Fri Mar 10 18:55:03 2023 +0000

    Merge pull request 'Post drafting' (#282) from solidsanek/pleroma-fe:drafts into develop

    Reviewed-on: #282

commit 999c38594e
Author: flisk <akkomadev.mvch71fq@flisk.xyz>
Date:   Fri Feb 24 00:23:53 2023 +0100

    fix realtime updates in 'following' replies filter

    i'm not sure how this code was supposed to work, but the way it was
    written would only add statuses to the timeline if they were in reply to
    someone the user is following and erroneously filter out posts that
    aren't replies.

commit 626c880038
Author: Yhëhtozr <conlang2012@outlook.com>
Date:   Wed Feb 22 10:20:25 2023 +0900

    oblong emoji in status

commit 6d7761c7e5
Author: Yhëhtozr <conlang2012@outlook.com>
Date:   Mon Feb 20 23:27:41 2023 +0900

    perhaps more graceful cqw

commit 996ce3dde3
Author: Yhëhtozr <conlang2012@outlook.com>
Date:   Mon Feb 20 23:18:04 2023 +0900

    support oblong reactions

commit 2c007f06e3
Author: solidsanek <solidsanek@outerheaven.club>
Date:   Sun Feb 19 18:58:53 2023 +0100

    Post: remove debug logs

commit 00704bd88c
Author: solidsanek <solidsanek@outerheaven.club>
Date:   Fri Feb 17 13:56:01 2023 +0100

    Post: Add drafting feature

commit 8569b5946e
Merge: 9c9b4cc0 6a9d169e
Author: FloatingGhost <hannah@coffee-and-dreams.uk>
Date:   Sat Feb 11 10:50:04 2023 +0000

    Merge branch 'develop' into stable

commit 6a9d169e24
Merge: 9e04e4fd 581c53a1
Author: floatingghost <hannah@coffee-and-dreams.uk>
Date:   Sat Feb 11 10:41:00 2023 +0000

    Merge pull request 'components: emoji_reactions: force custom emoji reaction height' (#280) from a1batross/akkoma-fe:a1batross-patch-1 into develop

    Reviewed-on: #280

commit 581c53a15e
Author: a1batross <a1ba.omarov@gmail.com>
Date:   Fri Feb 10 23:28:46 2023 +0000

    components: emoji_reactions: force custom emoji reaction height

    Prevents the usage of too long emoji reactions

commit 9e04e4fd80
Author: yanchan09 <yan@omg.lol>
Date:   Sat Feb 4 21:10:06 2023 +0000

    Improve emoji picker performance (#275)

    A simple virtual scroller is now used for the emoji grid. This avoids loading all emoji images at once, saving network bandwidth and reducing load on the server, while also putting less work on the browser's DOM and layout engine.

    Co-authored-by: yan <yan@omg.lol>
    Reviewed-on: #275
    Co-authored-by: yanchan09 <yan@omg.lol>
    Co-committed-by: yanchan09 <yan@omg.lol>

commit 88d5149db5
Author: floatingghost <hannah@coffee-and-dreams.uk>
Date:   Sat Feb 4 21:09:09 2023 +0000

    paginate-follow-requests (#277)

    Co-authored-by: FloatingGhost <hannah@coffee-and-dreams.uk>
    Reviewed-on: #277

commit b4b13d777f
Merge: 56fd2e77 7f4dd9ff
Author: floatingghost <hannah@coffee-and-dreams.uk>
Date:   Fri Jan 27 10:08:17 2023 +0000

    Merge pull request 'Add indicator to user card if user blocks you' (#274) from eris/pleroma-fe:block-indicator into develop

    Reviewed-on: #274

commit 7f4dd9ff03
Author: eris <femmediscord@gmail.com>
Date:   Fri Jan 27 00:26:50 2023 +0000

    Disable follow button if blocked by user

commit a9a95e9120
Author: eris <femmediscord@gmail.com>
Date:   Thu Jan 26 20:49:07 2023 +0000

    Add indicator if user blocks you

commit 56fd2e773b
Merge: 236bc2c7 42dc1a02
Author: FloatingGhost <hannah@coffee-and-dreams.uk>
Date:   Sun Jan 15 17:59:50 2023 +0000

    Merge branch 'languages' into develop

commit 42dc1a027a
Author: FloatingGhost <hannah@coffee-and-dreams.uk>
Date:   Sun Jan 15 17:59:32 2023 +0000

    add language input

commit 236bc2c762
Merge: f288d0c2 e9f47509
Author: floatingghost <hannah@coffee-and-dreams.uk>
Date:   Mon Jan 9 22:20:31 2023 +0000

    Merge pull request 'Only show "keep open" emoji checkbox on post form' (#269) from sfr/pleroma-fe:fix/keepopen into develop

    Reviewed-on: #269

commit e9f47509ae
Author: Sol Fisher Romanoff <sol@solfisher.com>
Date:   Tue Jan 3 16:04:26 2023 +0200

    Only show "keep open" emoji checkbox on post form

commit f288d0c219
Author: FloatingGhost <hannah@coffee-and-dreams.uk>
Date:   Mon Jan 2 15:16:42 2023 +0000

    Make everything work with a strict CSP

commit d973396c96
Author: FloatingGhost <hannah@coffee-and-dreams.uk>
Date:   Sun Jan 1 21:06:02 2023 +0000

    Remove console.log

commit 62287fffae
Author: FloatingGhost <hannah@coffee-and-dreams.uk>
Date:   Sun Jan 1 21:05:25 2023 +0000

    add follow/unfollow to followed tags list

commit e9f16af82d
Author: FloatingGhost <hannah@coffee-and-dreams.uk>
Date:   Sun Jan 1 20:11:07 2023 +0000

    Add list of followed hashtags to profile

commit dfba8be134
Author: floatingghost <hannah@coffee-and-dreams.uk>
Date:   Fri Dec 30 05:03:25 2022 +0000

    Fall back to nsfw image if no blurhash

commit 313ddcebcb
Author: FloatingGhost <hannah@coffee-and-dreams.uk>
Date:   Fri Dec 30 04:57:23 2022 +0000

    Add blurhash support

commit 236b19e854
Merge: ea941d7c 2e5001e5
Author: FloatingGhost <hannah@coffee-and-dreams.uk>
Date:   Fri Dec 30 03:20:30 2022 +0000

    Merge branch 'develop' of akkoma.dev:AkkomaGang/akkoma-fe into develop

commit ea941d7cfa
Author: FloatingGhost <hannah@coffee-and-dreams.uk>
Date:   Fri Dec 30 03:20:12 2022 +0000

    remove IHBA assets

commit 2e5001e5de
Author: Beefox <bee@beefox.xyz>
Date:   Fri Dec 30 03:04:15 2022 +0000

    Allow follow(er) lists to be acessible by account owner even if follower counts are disabled (#246)

    Currently, if a user has their follower/follow counts hidden, they cannot access their own list of followers/follows. This makes no real sense and means that they cannot modify those lists without disabling their privacy options.

    This fix simply allows those tabs to be accessed no matter if the counts are hidden or not.

    Reviewed-on: #246
    Co-authored-by: Beefox <bee@beefox.xyz>
    Co-committed-by: Beefox <bee@beefox.xyz>

commit 014f8b0dd2
Author: Norm <normandy@biribiri.dev>
Date:   Fri Dec 30 03:01:17 2022 +0000

    Make minimum width for 3-column layout 1280px (#255) (#256)

    1280px is a pretty common screen width for several resolutions
    (1280x720, 1280x800, 1280x1024, etc.). Since it is only 20px less than
    the current 1300px minimum, this shouldn't be a big issue to lower the
    minimum screen width for the 3-column layout to 1280px.

    Closes: AkkomaGang/pleroma-fe#255

    Co-authored-by: Francis Dinh <normandy@biribiri.dev>
    Reviewed-on: #256
    Co-authored-by: Norm <normandy@biribiri.dev>
    Co-committed-by: Norm <normandy@biribiri.dev>

commit dd403b295f
Merge: f668455d 9cd62fe0
Author: floatingghost <hannah@coffee-and-dreams.uk>
Date:   Fri Dec 30 03:00:49 2022 +0000

    Merge pull request 'Remove stray debug log' (#265) from sfr/pleroma-fe:del-log into develop

    Reviewed-on: #265

commit 9cd62fe08d
Author: Sol Fisher Romanoff <sol@solfisher.com>
Date:   Fri Dec 30 01:03:31 2022 +0200

    Remove stray debug log

commit f668455dff
Merge: 5a431538 da491f32
Author: FloatingGhost <hannah@coffee-and-dreams.uk>
Date:   Thu Dec 29 20:56:22 2022 +0000

    Merge branch 'link-verification' into develop

commit 5a4315384e
Author: FloatingGhost <hannah@coffee-and-dreams.uk>
Date:   Thu Dec 29 15:25:03 2022 +0000

    force CI build

commit 401dfa8fa6
Author: FloatingGhost <hannah@coffee-and-dreams.uk>
Date:   Thu Dec 29 15:22:06 2022 +0000

    update readme

commit bb243168b3
Author: FloatingGhost <hannah@coffee-and-dreams.uk>
Date:   Thu Dec 29 15:18:13 2022 +0000

    Revert "Merge pull request 'Don't show timeline links if disabled and logged out' (#250) from sfr/pleroma-fe:fix/hide-timelines into develop"

    This reverts commit 0b5793c1e0, reversing
    changes made to 72ef2e7454.

commit da491f3278
Author: FloatingGhost <hannah@coffee-and-dreams.uk>
Date:   Thu Dec 29 15:17:35 2022 +0000

    add verification of links

commit d00e28d5e9
Author: FloatingGhost <hannah@coffee-and-dreams.uk>
Date:   Thu Dec 22 05:43:01 2022 +0000

    fix emoji picker in replies in notifications

commit 7ff17ab722
Author: FloatingGhost <hannah@coffee-and-dreams.uk>
Date:   Tue Dec 20 13:20:13 2022 +0000

    don't crash out if notification status is null

commit b009428814
Merge: 7bec96a1 c39332c1
Author: floatingghost <hannah@coffee-and-dreams.uk>
Date:   Wed Dec 14 12:09:03 2022 +0000

    Merge pull request 'Revert "Revert "use v1 urls""' (#254) from v1-urls into develop

    Reviewed-on: AkkomaGang/pleroma-fe#254

commit 7bec96a1bf
Merge: 0b5793c1 830e8fdb
Author: floatingghost <hannah@coffee-and-dreams.uk>
Date:   Wed Dec 14 12:08:27 2022 +0000

    Merge pull request 'Fix user moderation dropdown clipping' (#249) from sfr/pleroma-fe:fix/dropdown into develop

    Reviewed-on: AkkomaGang/pleroma-fe#249

commit 0b5793c1e0
Merge: 72ef2e74 6e1ba218
Author: floatingghost <hannah@coffee-and-dreams.uk>
Date:   Wed Dec 14 12:08:08 2022 +0000

    Merge pull request 'Don't show timeline links if disabled and logged out' (#250) from sfr/pleroma-fe:fix/hide-timelines into develop

    Reviewed-on: AkkomaGang/pleroma-fe#250

commit 72ef2e7454
Merge: 8c6cf86d 413acbc7
Author: floatingghost <hannah@coffee-and-dreams.uk>
Date:   Wed Dec 14 12:07:27 2022 +0000

    Merge pull request 'Fix 404 when reacting with Keycap Number Sign' (#252) from fef/pleroma-fe:develop into develop

    Reviewed-on: AkkomaGang/pleroma-fe#252

commit c39332c1bf
Author: FloatingGhost <hannah@coffee-and-dreams.uk>
Date:   Wed Dec 14 09:39:01 2022 +0000

    Revert "Revert "use v1 urls""

    This reverts commit 8c6cf86de3.

commit 8c6cf86de3
Author: FloatingGhost <hannah@coffee-and-dreams.uk>
Date:   Wed Dec 14 09:38:46 2022 +0000

    Revert "use v1 urls"

    This reverts commit 909271c764.

commit 909271c764
Author: FloatingGhost <hannah@coffee-and-dreams.uk>
Date:   Wed Dec 14 09:38:07 2022 +0000

    use v1 urls

commit 413acbc7dd
Author: fef <owo@fef.moe>
Date:   Mon Dec 12 18:59:57 2022 +0100

    fix 404 when reacting with Keycap Number Sign

    The Unicode sequence for the Keycap Number Sign
    emoji starts with an ASCII "#" character, which
    the browser's URL parser will interpret as a URI
    fragment and truncate it before sending the
    request to the backend.

commit 6e1ba218df
Author: Sol Fisher Romanoff <sol@solfisher.com>
Date:   Sat Dec 10 21:17:41 2022 +0200

    Don't show timeline links if disabled and logged out

commit 830e8fdb45
Author: Sol Fisher Romanoff <sol@solfisher.com>
Date:   Sat Dec 10 21:03:12 2022 +0200

    Fix user moderation dropdown clipping

commit 9c9b4cc07c
Merge: 2c9b7364 9bf310d5
Author: FloatingGhost <hannah@coffee-and-dreams.uk>
Date:   Sat Dec 10 14:52:00 2022 +0000

    Merge branch 'develop' into stable

commit 9bf310d509
Author: FloatingGhost <hannah@coffee-and-dreams.uk>
Date:   Sat Dec 10 14:51:08 2022 +0000

    bump version

commit e3e8b19df3
Author: FloatingGhost <hannah@coffee-and-dreams.uk>
Date:   Sat Dec 10 00:17:33 2022 +0000

    fix ES translation having weird o in a key

commit e86c7abb39
Merge: 8a0da886 b33d15a7
Author: Weblate <noreply@weblate.org>
Date:   Thu Dec 8 18:41:37 2022 +0000

    Merge branch 'origin/develop' into Weblate.

commit 8a0da8861d
Merge: 40e86998 6c7e691a
Author: floatingghost <hannah@coffee-and-dreams.uk>
Date:   Thu Dec 8 18:41:36 2022 +0000

    Merge pull request 'Add YAML bug and feat templates' (#247) from sfr/pleroma-fe:issue-template into develop

    Reviewed-on: AkkomaGang/pleroma-fe#247

commit 6c7e691aea
Author: Sol Fisher Romanoff <sol@solfisher.com>
Date:   Thu Dec 8 20:24:21 2022 +0200

    Add YAML bug and feat templates

commit b33d15a739
Merge: 40e86998 177f3440
Author: Weblate <noreply@weblate.org>
Date:   Wed Dec 7 22:37:54 2022 +0000

    Merge branch 'origin/develop' into Weblate.

commit 40e86998e6
Author: floatingghost <hannah@coffee-and-dreams.uk>
Date:   Wed Dec 7 22:37:52 2022 +0000

    Update 'ISSUE_TEMPLATE.md'

commit 177f344033
Merge: 9079ac4a dfc4e0a0
Author: Weblate <noreply@weblate.org>
Date:   Wed Dec 7 22:32:07 2022 +0000

    Merge branch 'origin/develop' into Weblate.

commit 9079ac4afa
Author: floatingghost <hannah@coffee-and-dreams.uk>
Date:   Wed Dec 7 22:31:49 2022 +0000

    Update 'ISSUE_TEMPLATE.md'

commit dfc4e0a026
Author: Weblate <noreply@weblate.org>
Date:   Wed Dec 7 22:31:39 2022 +0000

    Translated using Weblate (Japanese (ja_PEDANTIC))

    Currently translated at 99.8% (1031 of 1033 strings)

    Co-authored-by: Weblate Admin <hannah.ward9001@gmail.com>
    Translate-URL: http://translate.akkoma.dev/projects/akkoma/pleroma-fe/ja_PEDANTIC/
    Translation: Pleroma fe/pleroma-fe

commit 3d732d1d28
Author: Weblate <noreply@weblate.org>
Date:   Wed Dec 7 22:31:39 2022 +0000

    Translated using Weblate (Indonesian)

    Currently translated at 59.4% (614 of 1033 strings)

    Translated using Weblate (Indonesian)

    Currently translated at 53.0% (548 of 1033 strings)

    Co-authored-by: Weblate <noreply@weblate.org>
    Co-authored-by: t1 <taaa@fedora.email>
    Translate-URL: http://translate.akkoma.dev/projects/akkoma/pleroma-fe/id/
    Translation: Pleroma fe/pleroma-fe

commit e8ee31afed
Author: Weblate <noreply@weblate.org>
Date:   Wed Dec 7 22:31:39 2022 +0000

    Translated using Weblate (English)

    Currently translated at 100.0% (1033 of 1033 strings)

    Co-authored-by: Weblate Admin <hannah.ward9001@gmail.com>
    Translate-URL: http://translate.akkoma.dev/projects/akkoma/pleroma-fe/en/
    Translation: Pleroma fe/pleroma-fe

commit d9d6b1e80b
Author: Weblate <noreply@weblate.org>
Date:   Wed Dec 7 22:31:39 2022 +0000

    Translated using Weblate (Spanish)

    Currently translated at 89.2% (918 of 1029 strings)

    Co-authored-by: Weblate <noreply@weblate.org>
    Co-authored-by: taretka <info@tarteka.net>
    Translate-URL: http://translate.akkoma.dev/projects/akkoma/pleroma-fe/es/
    Translation: Pleroma fe/pleroma-fe

commit 1dd7a89544
Author: Weblate <noreply@weblate.org>
Date:   Wed Dec 7 22:31:38 2022 +0000

    Translated using Weblate (German)

    Currently translated at 93.9% (967 of 1029 strings)

    Co-authored-by: Johann <johann@qwertqwefsday.eu>
    Co-authored-by: Weblate <noreply@weblate.org>
    Translate-URL: http://translate.akkoma.dev/projects/akkoma/pleroma-fe/de/
    Translation: Pleroma fe/pleroma-fe

commit d3280c4ab3
Author: floatingghost <hannah@coffee-and-dreams.uk>
Date:   Wed Dec 7 22:31:29 2022 +0000

    Add issue template

commit abc75c360b
Author: FloatingGhost <hannah@coffee-and-dreams.uk>
Date:   Wed Dec 7 11:01:58 2022 +0000

    Ensure only content gets clipped

commit a8e119b0f1
Merge: 17e574b1 71d2e0b0
Author: FloatingGhost <hannah@coffee-and-dreams.uk>
Date:   Tue Dec 6 15:56:06 2022 +0000

    Merge branch 'develop' of akkoma.dev:AkkomaGang/pleroma-fe into develop

commit 17e574b173
Author: FloatingGhost <hannah@coffee-and-dreams.uk>
Date:   Tue Dec 6 15:55:39 2022 +0000

    Move theme apply/reset to new row

    Fixes #225

commit 71d2e0b0ce
Merge: b68e968b 337a30fe
Author: floatingghost <hannah@coffee-and-dreams.uk>
Date:   Tue Dec 6 15:32:40 2022 +0000

    Merge pull request 'fix scope selector icon spacing' (#243) from nocebo/crt-fe:shared/fix-scope-spacing into develop

    Reviewed-on: AkkomaGang/pleroma-fe#243

commit b68e968bf9
Author: FloatingGhost <hannah@coffee-and-dreams.uk>
Date:   Tue Dec 6 15:26:16 2022 +0000

    Add ability to include custom CSS

commit eb49295422
Author: floatingghost <hannah@coffee-and-dreams.uk>
Date:   Sun Dec 4 17:31:41 2022 +0000

    Add hashtag following button (#244)

    Co-authored-by: FloatingGhost <hannah@coffee-and-dreams.uk>
    Reviewed-on: AkkomaGang/pleroma-fe#244

commit 337a30fe01
Author: astra akari <nocebo@noreply.akkoma>
Date:   Sat Dec 3 07:12:55 2022 +0000

    remove whitespace between scope selector icons

    when i originally wrote this, for reasons unclear to the present me, i used literal whitespaces to space out the icons on the scope selector
    this causes strange inconsistencies in spacing depending on the font being used
    akkoma also did not include the whitespace when adding the local-only scope, resulting in even weirder spacing
    this corrects all of that by removing the whitespaces and using css instead

commit 105ecd3836
Merge: b86f12ce a3e490ed
Author: floatingghost <hannah@coffee-and-dreams.uk>
Date:   Fri Dec 2 12:01:43 2022 +0000

    Merge pull request 'pwa config' (#242) from pwa into develop

    Reviewed-on: AkkomaGang/pleroma-fe#242

commit a3e490edcd
Author: FloatingGhost <hannah@coffee-and-dreams.uk>
Date:   Fri Dec 2 12:00:30 2022 +0000

    use cutout of 512 logo

commit f8f5e1c89b
Author: FloatingGhost <hannah@coffee-and-dreams.uk>
Date:   Fri Dec 2 11:57:45 2022 +0000

    fix SW path

commit e132814478
Author: FloatingGhost <hannah@coffee-and-dreams.uk>
Date:   Fri Dec 2 11:56:15 2022 +0000

    Register serviceworker

commit 6af1df8bef
Author: FloatingGhost <hannah@coffee-and-dreams.uk>
Date:   Fri Dec 2 11:27:24 2022 +0000

    Add logo files

commit b86f12cede
Merge: 0900a9d8 c6697017
Author: floatingghost <hannah@coffee-and-dreams.uk>
Date:   Fri Dec 2 10:21:32 2022 +0000

    Merge pull request 'Add a small margin to search bar' (#240) from karl/pleroma-fe:search-bar-margin into develop

    Reviewed-on: AkkomaGang/pleroma-fe#240

commit c669701762
Author: Karl Prieb <karl@prieb.me>
Date:   Tue Nov 29 18:04:33 2022 -0300

    add a left margin on search bar

commit 0900a9d87b
Merge: 7860c885 0a01a2bd
Author: floatingghost <hannah@coffee-and-dreams.uk>
Date:   Mon Nov 28 13:35:08 2022 +0000

    Merge pull request 'Add post expiry inputs' (#239) from default-post-expiry into develop

    Reviewed-on: AkkomaGang/pleroma-fe#239

commit 0a01a2bdf0
Author: FloatingGhost <hannah@coffee-and-dreams.uk>
Date:   Mon Nov 28 12:08:18 2022 +0000

    Add post expiry inputs

commit 7860c885c4
Author: darkkirb <lotte@chir.rs>
Date:   Sat Nov 26 20:57:04 2022 +0000

    Add link to RSS feed to the profile (#234)

    Today I learned that akkoma and mastodon (and potentially other activitypub services) offer RSS/Atom feeds for user profiles at `[user profile url].rss`. This PR adds a direct link to the feed because I haven’t seen anything link to the feed on either mastodon-fe or pleroma-fe

    Co-authored-by: Charlotte 🦝 Delenk <lotte@chir.rs>
    Reviewed-on: AkkomaGang/pleroma-fe#234
    Co-authored-by: darkkirb <lotte@chir.rs>
    Co-committed-by: darkkirb <lotte@chir.rs>

commit 1c3bd60af2
Merge: c01c62f1 b8faee5d
Author: floatingghost <hannah@coffee-and-dreams.uk>
Date:   Sat Nov 26 18:32:35 2022 +0000

    Merge pull request 'fix formatting for large number of favorites/interactions' (#236) from drudge/pleroma-fe:develop into develop

    Reviewed-on: AkkomaGang/pleroma-fe#236

commit b8faee5d6d
Author: Sean Meininger <sean.meininger@pm.me>
Date:   Sat Nov 26 00:15:12 2022 -0800

    added maintainer code

commit c01c62f149
Author: floatingghost <hannah@coffee-and-dreams.uk>
Date:   Tue Nov 22 14:44:44 2022 +0000

    Redirect users to "awaiting approval" message on register (#231)

    Ref #81 - this implements a "your request has been sent" message

     ![image](/attachments/61dc3f5e-2706-46f9-a1ca-4efe3f526ff3)

    Co-authored-by: FloatingGhost <hannah@coffee-and-dreams.uk>
    Reviewed-on: AkkomaGang/pleroma-fe#231

commit 105b934f90
Author: floatingghost <hannah@coffee-and-dreams.uk>
Date:   Tue Nov 22 14:40:25 2022 +0000

    Only reload user if it _is_ a user (#232)

    Ref #181

    Co-authored-by: FloatingGhost <hannah@coffee-and-dreams.uk>
    Reviewed-on: AkkomaGang/pleroma-fe#232

commit b1f41add0e
Author: FloatingGhost <hannah@coffee-and-dreams.uk>
Date:   Mon Nov 21 17:08:53 2022 +0000

    Don't error out if we can't fetch reports

commit e4e8ed812b
Merge: 684894ae e06348ee
Author: floatingghost <hannah@coffee-and-dreams.uk>
Date:   Mon Nov 21 16:51:30 2022 +0000

    Merge pull request 'Allow using mouse wheel to navigate through the emoji tabs (#179)' (#222) from Mergan/pleroma-fe:emoji-picker-allow-scroll into develop

    Reviewed-on: AkkomaGang/pleroma-fe#222

commit 684894aee3
Author: Beefox <bee@beefox.xyz>
Date:   Mon Nov 21 16:49:18 2022 +0000

    mobile-newline (#226)

    Allows the handle of users to drop down onto the next line if there isn't enough room in order to improve useability on mobile

    Reviewed-on: AkkomaGang/pleroma-fe#226
    Co-authored-by: Beefox <bee@beefox.xyz>
    Co-committed-by: Beefox <bee@beefox.xyz>

commit f8a796b234
Merge: 70ea9e77 862c9370
Author: floatingghost <hannah@coffee-and-dreams.uk>
Date:   Mon Nov 21 16:46:29 2022 +0000

    Merge pull request 'move domain block to drop down menu (#223)' (#224) from nocebo/crt-fe:shared/move-domain-mute into develop

    Reviewed-on: AkkomaGang/pleroma-fe#224

commit 70ea9e772c
Merge: efe0f537 fcbbbad8
Author: floatingghost <hannah@coffee-and-dreams.uk>
Date:   Mon Nov 21 10:11:19 2022 +0000

    Merge pull request 'Allow for searching unicode emoji via inputting emoji (#163 & #227)' (#230) from Mergan/pleroma-fe:beefox-emoji-search into develop

    Reviewed-on: AkkomaGang/pleroma-fe#230

commit efe0f53736
Author: Mergan <mergan@noreply.akkoma>
Date:   Mon Nov 21 10:10:50 2022 +0000

    Constrain content to status content (#218) (#220)

    MFM No longer overflows
    ![image](/attachments/7bbf519a-9fd2-492d-aba0-9a0e1ded6373)

    Co-authored-by: David <dmgf2008@hotmail.com>
    Reviewed-on: AkkomaGang/pleroma-fe#220
    Co-authored-by: Mergan <mergan@noreply.akkoma>
    Co-committed-by: Mergan <mergan@noreply.akkoma>

commit fcbbbad8d4
Author: Beefox <bee@beefox.xyz>
Date:   Sat Sep 10 16:36:12 2022 +1000

    Allow for searching unicode emoji via inputting emoji
    (This is needed for the react menu)

commit 39b6b0b49f
Merge: 867a86d8 2d4b2f2e
Author: FloatingGhost <hannah@coffee-and-dreams.uk>
Date:   Sun Nov 20 22:26:32 2022 +0000

    Merge remote-tracking branch 'origin/translations' into develop

commit 867a86d887
Author: FloatingGhost <hannah@coffee-and-dreams.uk>
Date:   Sun Nov 20 22:26:16 2022 +0000

    Fix build

commit 7538369fa1
Author: FloatingGhost <hannah@coffee-and-dreams.uk>
Date:   Sun Nov 20 22:18:34 2022 +0000

    Copy conversation display style from instance

    Fixes #210

commit 2d4b2f2e20
Author: Weblate <noreply@weblate.org>
Date:   Sat Nov 19 21:22:45 2022 +0000

    Translated using Weblate (Spanish)

    Currently translated at 87.1% (893 of 1025 strings)

    Co-authored-by: taretka <info@tarteka.net>
    Translate-URL: http://translate.akkoma.dev/projects/akkoma/pleroma-fe/es/
    Translation: Pleroma fe/pleroma-fe

commit 862c93706c
Author: astra <nocebo@cathoderay.tube>
Date:   Fri Nov 18 08:49:57 2022 -0500

    move domain block to drop down menu

commit e06348ee33
Author: David <dmgf2008@hotmail.com>
Date:   Thu Nov 17 14:45:32 2022 -0800

    Allow using mouse wheel to navigate through the emoji tabs
2024-05-16 00:35:53 +02:00
hynet-mel
4f4aa6f75e Bruh I forgot the custom.css elements 2023-05-09 19:41:36 +02:00
Weblate
de7561ddde Translated using Weblate (Portuguese)
Currently translated at 62.8% (655 of 1042 strings)

Co-authored-by: cel <8cbv6di5@duck.com>
Translate-URL: http://translate.akkoma.dev/projects/akkoma/pleroma-fe/pt/
Translation: Pleroma fe/pleroma-fe
2023-05-09 19:11:12 +02:00
Weblate
4f26a90106 Translated using Weblate (Chinese (Simplified))
Currently translated at 100.0% (1041 of 1041 strings)

Translated using Weblate (Chinese (Simplified))

Currently translated at 99.9% (1040 of 1041 strings)

Translated using Weblate (Chinese (Simplified))

Currently translated at 99.9% (1040 of 1041 strings)

Translated using Weblate (Chinese (Simplified))

Currently translated at 99.9% (1039 of 1040 strings)

Co-authored-by: Poesty Li <poesty7450@gmail.com>
Co-authored-by: SevicheCC <sevicheee@outlook.com>
Co-authored-by: Weblate <noreply@weblate.org>
Translate-URL: http://translate.akkoma.dev/projects/akkoma/pleroma-fe/zh_Hans/
Translation: Pleroma fe/pleroma-fe
2023-05-09 19:11:12 +02:00
Weblate
3640526ab7 Translated using Weblate (Ukrainian)
Currently translated at 87.2% (908 of 1041 strings)

Co-authored-by: Denys Nykula <vegan@libre.net.ua>
Co-authored-by: Weblate <noreply@weblate.org>
Translate-URL: http://translate.akkoma.dev/projects/akkoma/pleroma-fe/uk/
Translation: Pleroma fe/pleroma-fe
2023-05-09 19:11:12 +02:00
Weblate
191589283f Translated using Weblate (French)
Currently translated at 98.5% (1027 of 1042 strings)

Translated using Weblate (French)

Currently translated at 98.3% (1024 of 1041 strings)

Translated using Weblate (French)

Currently translated at 96.9% (1002 of 1033 strings)

Co-authored-by: Thomate <thomas@burdick.fr>
Co-authored-by: Weblate <noreply@weblate.org>
Translate-URL: http://translate.akkoma.dev/projects/akkoma/pleroma-fe/fr/
Translation: Pleroma fe/pleroma-fe
2023-05-09 19:11:12 +02:00
Weblate
7c59aac3d5 Translated using Weblate (Japanese (ja_EASY))
Currently translated at 71.6% (747 of 1042 strings)

Translated using Weblate (Japanese (ja_EASY))

Currently translated at 71.6% (747 of 1042 strings)

Translated using Weblate (Japanese (ja_EASY))

Currently translated at 54.1% (564 of 1042 strings)

Co-authored-by: Hikaru Shinagawa <hikali.47041@gmail.com>
Co-authored-by: Weblate <noreply@weblate.org>
Co-authored-by: kazari <6c577a54-aac9-482a-955e-745c858445e3@simplelogin.com>
Translate-URL: http://translate.akkoma.dev/projects/akkoma/pleroma-fe/ja_EASY/
Translation: Pleroma fe/pleroma-fe
2023-05-09 19:11:12 +02:00
Weblate
5eb4e8a58b Translated using Weblate (Dutch)
Currently translated at 99.7% (1038 of 1041 strings)

Co-authored-by: Fristi <fristi@subcon.town>
Co-authored-by: Weblate <noreply@weblate.org>
Translate-URL: http://translate.akkoma.dev/projects/akkoma/pleroma-fe/nl/
Translation: Pleroma fe/pleroma-fe
2023-05-09 19:11:12 +02:00
Weblate
8ed3826ee4 Translated using Weblate (Indonesian)
Currently translated at 65.4% (676 of 1033 strings)

Translated using Weblate (Indonesian)

Currently translated at 65.4% (676 of 1033 strings)

Co-authored-by: Weblate <noreply@weblate.org>
Co-authored-by: t1 <taaa@fedora.email>
Translate-URL: http://translate.akkoma.dev/projects/akkoma/pleroma-fe/id/
Translation: Pleroma fe/pleroma-fe
2023-05-09 19:11:12 +02:00
Weblate
b333542a77 Translated using Weblate (Spanish)
Currently translated at 90.8% (938 of 1033 strings)

Co-authored-by: Weblate <noreply@weblate.org>
Co-authored-by: taretka <info@tarteka.net>
Translate-URL: http://translate.akkoma.dev/projects/akkoma/pleroma-fe/es/
Translation: Pleroma fe/pleroma-fe
2023-05-09 19:11:12 +02:00
Weblate
10163831ac Translated using Weblate (German)
Currently translated at 99.5% (1036 of 1041 strings)

Co-authored-by: Johann <johann@qwertqwefsday.eu>
Co-authored-by: Weblate <noreply@weblate.org>
Translate-URL: http://translate.akkoma.dev/projects/akkoma/pleroma-fe/de/
Translation: Pleroma fe/pleroma-fe
2023-05-09 19:11:12 +02:00
25c205fe4c ensure we only fetch reports when we're an admin
Ref #288
2023-05-09 19:11:12 +02:00
solidsanek
9056321750 Drafts: Fix drafts erasing edits and redrafts 2023-05-09 19:11:12 +02:00
e5b226799d don't crash if class isn't a list 2023-05-09 19:11:12 +02:00
86d2553acf Fix floating point error for poll expiry
Previous code multiply with 0.001 before multiplication which leads to a
floating point error.  By changing it to division by 1000 after
multiplication this is avoided.
2023-05-09 19:11:12 +02:00
c3208db28d simplify timeline vibility checks 2023-05-09 19:11:12 +02:00
b552d8116a add timeline visibility setting parsing 2023-05-09 19:11:12 +02:00
0f4cdcda48 Add checks for currentUser on sidebar 2023-05-09 19:11:12 +02:00
6b4680bf37 Remove unused bits and bobs 2023-05-09 19:11:12 +02:00
3a8354abb4 Remove links from navs if we can't see the timeline 2023-05-09 19:11:12 +02:00
1e66217c16 add recently used emojis panel to emoji picker (#283)
~~(not intended for merging yet, just submitting this for preliminary review and discussion)~~

this patch adds a tab with recently used emojis to the emoji picker: https://akko.lain.gay/notice/ASoGCtyoiXbYPJjqpk

there's a couple of things i'm ~~still trying to work out~~ not totally happy with and i'd appreciate any feedback on them:

* the recentEmojis getter is called very frequently and has to do a possibly somewhat expensive lookup of emoji objects by their `displayName` each time, which i'm not sure is ideal
* ~~emoji reactions on posts added through the picker are picked up by the recentEmojis module, but clicks on existing emoji reactions are not, because `addReaction` in `react_button.js` only currently receives the replacement and not the full emoji object (if there even is one wherever that method is called from)~~ this works now and does the same stupid full search of all emojis by their name which i guess is less bad because this only happens when you hit a reaction emoji button that already existed

Reviewed-on: #283
Co-authored-by: flisk <akkomadev.mvch71fq@flisk.xyz>
Co-committed-by: flisk <akkomadev.mvch71fq@flisk.xyz>
2023-05-09 19:11:12 +02:00
9d450953b6 oblong emoji in status 2023-05-09 19:10:45 +02:00
e8e4b4fc96 perhaps more graceful cqw 2023-05-09 19:10:45 +02:00
417f7a3ac1 support oblong reactions 2023-05-09 19:10:45 +02:00
1b038d3fdc fix realtime updates in 'following' replies filter
i'm not sure how this code was supposed to work, but the way it was
written would only add statuses to the timeline if they were in reply to
someone the user is following and erroneously filter out posts that
aren't replies.
2023-05-09 19:10:45 +02:00
solidsanek
93e1b750cf Post: remove debug logs 2023-05-09 19:10:45 +02:00
solidsanek
7463cbca53 Post: Add drafting feature 2023-05-09 19:10:45 +02:00
f7ea95cd0e components: emoji_reactions: force custom emoji reaction height
Prevents the usage of too long emoji reactions
2023-05-09 19:10:45 +02:00
3dbbc2519f Improve emoji picker performance (#275)
A simple virtual scroller is now used for the emoji grid. This avoids loading all emoji images at once, saving network bandwidth and reducing load on the server, while also putting less work on the browser's DOM and layout engine.

Co-authored-by: yan <yan@omg.lol>
Reviewed-on: #275
Co-authored-by: yanchan09 <yan@omg.lol>
Co-committed-by: yanchan09 <yan@omg.lol>
2023-05-09 19:10:45 +02:00
5164f595bd paginate-follow-requests (#277)
Co-authored-by: FloatingGhost <hannah@coffee-and-dreams.uk>
Reviewed-on: #277
2023-05-09 19:10:45 +02:00
5f19c25fa5 Disable follow button if blocked by user 2023-05-09 19:10:45 +02:00
74026fc562 Add indicator if user blocks you 2023-05-09 19:10:45 +02:00
f7301dab5a add language input 2023-05-09 19:10:45 +02:00
Sol Fisher Romanoff
dca56dd40f Only show "keep open" emoji checkbox on post form 2023-05-09 19:10:45 +02:00
5bbac1fa61 Make everything work with a strict CSP 2023-05-09 19:10:45 +02:00
48700ea8d5 Remove console.log 2023-05-09 19:10:45 +02:00
e095e22f2c add follow/unfollow to followed tags list 2023-05-09 19:10:45 +02:00
79d506e331 Add list of followed hashtags to profile 2023-05-09 19:10:45 +02:00
0e71597e56 Fall back to nsfw image if no blurhash 2023-05-09 19:10:45 +02:00
e834656dc6 Add blurhash support 2023-05-09 19:10:45 +02:00
7ac8c9122c Allow follow(er) lists to be acessible by account owner even if follower counts are disabled (#246)
Currently, if a user has their follower/follow counts hidden, they cannot access their own list of followers/follows. This makes no real sense and means that they cannot modify those lists without disabling their privacy options.

This fix simply allows those tabs to be accessed no matter if the counts are hidden or not.

Reviewed-on: #246
Co-authored-by: Beefox <bee@beefox.xyz>
Co-committed-by: Beefox <bee@beefox.xyz>
2023-05-09 19:10:45 +02:00
c9a76f6224 Make minimum width for 3-column layout 1280px (#255) (#256)
1280px is a pretty common screen width for several resolutions
(1280x720, 1280x800, 1280x1024, etc.). Since it is only 20px less than
the current 1300px minimum, this shouldn't be a big issue to lower the
minimum screen width for the 3-column layout to 1280px.

Closes: AkkomaGang/pleroma-fe#255

Co-authored-by: Francis Dinh <normandy@biribiri.dev>
Reviewed-on: #256
Co-authored-by: Norm <normandy@biribiri.dev>
Co-committed-by: Norm <normandy@biribiri.dev>
2023-05-09 19:10:45 +02:00
Sol Fisher Romanoff
ca775554d3 Remove stray debug log 2023-05-09 19:10:45 +02:00
d16182547a remove IHBA assets 2023-05-09 19:10:45 +02:00
d9fa3d8251 add verification of links 2023-05-09 19:10:31 +02:00
47b7017256 force CI build 2023-05-09 19:09:52 +02:00
d2ac971f7f update readme 2023-05-09 19:09:52 +02:00
4b45a96c77 Revert "Merge pull request 'Don't show timeline links if disabled and logged out' (#250) from sfr/pleroma-fe:fix/hide-timelines into develop"
This reverts commit 0b5793c1e0, reversing
changes made to 72ef2e7454.
2023-05-09 19:09:38 +02:00
af3d4f8065 fix emoji picker in replies in notifications 2023-05-09 19:09:38 +02:00
ee2568d21a don't crash out if notification status is null 2023-05-09 19:09:38 +02:00
109bb1fa8a Revert "Revert "use v1 urls""
This reverts commit 8c6cf86de3.
2023-05-09 19:09:38 +02:00
Sol Fisher Romanoff
9dc8c6ea9f Fix user moderation dropdown clipping 2023-05-09 19:09:38 +02:00
Sol Fisher Romanoff
b7411c85f4 Don't show timeline links if disabled and logged out 2023-05-09 19:09:38 +02:00
fef
8c664a1396 fix 404 when reacting with Keycap Number Sign
The Unicode sequence for the Keycap Number Sign
emoji starts with an ASCII "#" character, which
the browser's URL parser will interpret as a URI
fragment and truncate it before sending the
request to the backend.
2023-05-09 19:09:38 +02:00
c53faaf284 Revert "use v1 urls"
This reverts commit 909271c764.
2023-05-09 19:09:38 +02:00
29865caf9a use v1 urls 2023-05-09 19:09:38 +02:00
ae75bb598b bump version 2023-05-09 19:09:38 +02:00
03e2912598 fix ES translation having weird o in a key 2023-05-09 19:09:38 +02:00
Weblate
d6ab4f85d3 Translated using Weblate (Japanese (ja_PEDANTIC))
Currently translated at 99.8% (1031 of 1033 strings)

Co-authored-by: Weblate Admin <hannah.ward9001@gmail.com>
Translate-URL: http://translate.akkoma.dev/projects/akkoma/pleroma-fe/ja_PEDANTIC/
Translation: Pleroma fe/pleroma-fe
2023-05-09 19:09:38 +02:00
Weblate
59a09bb60d Translated using Weblate (Indonesian)
Currently translated at 59.4% (614 of 1033 strings)

Translated using Weblate (Indonesian)

Currently translated at 53.0% (548 of 1033 strings)

Co-authored-by: Weblate <noreply@weblate.org>
Co-authored-by: t1 <taaa@fedora.email>
Translate-URL: http://translate.akkoma.dev/projects/akkoma/pleroma-fe/id/
Translation: Pleroma fe/pleroma-fe
2023-05-09 19:09:38 +02:00
Weblate
0d81a1fcb3 Translated using Weblate (English)
Currently translated at 100.0% (1033 of 1033 strings)

Co-authored-by: Weblate Admin <hannah.ward9001@gmail.com>
Translate-URL: http://translate.akkoma.dev/projects/akkoma/pleroma-fe/en/
Translation: Pleroma fe/pleroma-fe
2023-05-09 19:09:38 +02:00
Weblate
1bc98ce722 Translated using Weblate (Spanish)
Currently translated at 89.2% (918 of 1029 strings)

Co-authored-by: Weblate <noreply@weblate.org>
Co-authored-by: taretka <info@tarteka.net>
Translate-URL: http://translate.akkoma.dev/projects/akkoma/pleroma-fe/es/
Translation: Pleroma fe/pleroma-fe
2023-05-09 19:08:31 +02:00
Weblate
7ba8c31adf Translated using Weblate (German)
Currently translated at 93.9% (967 of 1029 strings)

Co-authored-by: Johann <johann@qwertqwefsday.eu>
Co-authored-by: Weblate <noreply@weblate.org>
Translate-URL: http://translate.akkoma.dev/projects/akkoma/pleroma-fe/de/
Translation: Pleroma fe/pleroma-fe
2023-05-09 19:08:31 +02:00
Sol Fisher Romanoff
24bc2c29ad Add YAML bug and feat templates 2023-05-09 19:08:31 +02:00
a339e03a8a Update 'ISSUE_TEMPLATE.md' 2023-05-09 19:08:31 +02:00
77e67f40ff Update 'ISSUE_TEMPLATE.md' 2023-05-09 19:08:31 +02:00
28a4c70516 Add issue template 2023-05-09 19:08:31 +02:00
3cdb990ea2 Ensure only content gets clipped 2023-05-09 19:08:31 +02:00
be4b1a8a5a remove whitespace between scope selector icons
when i originally wrote this, for reasons unclear to the present me, i used literal whitespaces to space out the icons on the scope selector 
this causes strange inconsistencies in spacing depending on the font being used 
akkoma also did not include the whitespace when adding the local-only scope, resulting in even weirder spacing 
this corrects all of that by removing the whitespaces and using css instead
2023-05-09 19:08:31 +02:00
19681d0c90 Move theme apply/reset to new row
Fixes #225
2023-05-09 19:08:31 +02:00
6b9c787bb8 Add ability to include custom CSS 2023-05-09 19:08:31 +02:00
11d374a3a1 Add hashtag following button (#244)
Co-authored-by: FloatingGhost <hannah@coffee-and-dreams.uk>
Reviewed-on: AkkomaGang/pleroma-fe#244
2023-05-09 19:08:31 +02:00
1f875844aa use cutout of 512 logo 2023-05-09 19:08:31 +02:00
4510d3d130 fix SW path 2023-05-09 19:08:31 +02:00
ec0164452c Register serviceworker 2023-05-09 19:08:31 +02:00
3da3e09dc5 Add logo files 2023-05-09 19:08:31 +02:00
Karl Prieb
fdaef74109 add a left margin on search bar 2023-05-09 19:08:00 +02:00
2e9a36557d Add post expiry inputs 2023-05-09 19:08:00 +02:00
613e8584de Add link to RSS feed to the profile (#234)
Today I learned that akkoma and mastodon (and potentially other activitypub services) offer RSS/Atom feeds for user profiles at `[user profile url].rss`. This PR adds a direct link to the feed because I haven’t seen anything link to the feed on either mastodon-fe or pleroma-fe

Co-authored-by: Charlotte 🦝 Delenk <lotte@chir.rs>
Reviewed-on: AkkomaGang/pleroma-fe#234
Co-authored-by: darkkirb <lotte@chir.rs>
Co-committed-by: darkkirb <lotte@chir.rs>
2023-05-09 19:08:00 +02:00
Sean Meininger
359886928e added maintainer code 2023-05-09 19:08:00 +02:00
d2f704c6f5 Redirect users to "awaiting approval" message on register (#231)
Ref #81 - this implements a "your request has been sent" message

 ![image](/attachments/61dc3f5e-2706-46f9-a1ca-4efe3f526ff3)

Co-authored-by: FloatingGhost <hannah@coffee-and-dreams.uk>
Reviewed-on: AkkomaGang/pleroma-fe#231
2023-05-09 19:08:00 +02:00
cba4a23379 Only reload user if it _is_ a user (#232)
Ref #181

Co-authored-by: FloatingGhost <hannah@coffee-and-dreams.uk>
Reviewed-on: AkkomaGang/pleroma-fe#232
2023-05-09 19:08:00 +02:00
64cb7443a8 Don't error out if we can't fetch reports 2023-05-09 19:08:00 +02:00
David
c3f829eb68 Allow using mouse wheel to navigate through the emoji tabs 2023-05-09 19:08:00 +02:00
46520dadfd mobile-newline (#226)
Allows the handle of users to drop down onto the next line if there isn't enough room in order to improve useability on mobile

Reviewed-on: AkkomaGang/pleroma-fe#226
Co-authored-by: Beefox <bee@beefox.xyz>
Co-committed-by: Beefox <bee@beefox.xyz>
2023-05-09 19:08:00 +02:00
f75571edd0 move domain block to drop down menu 2023-05-09 19:08:00 +02:00
240389a83f Allow for searching unicode emoji via inputting emoji
(This is needed for the react menu)
2023-05-09 19:08:00 +02:00
d03969eb03 Constrain content to status content (#218) (#220)
MFM No longer overflows
![image](/attachments/7bbf519a-9fd2-492d-aba0-9a0e1ded6373)

Co-authored-by: David <dmgf2008@hotmail.com>
Reviewed-on: AkkomaGang/pleroma-fe#220
Co-authored-by: Mergan <mergan@noreply.akkoma>
Co-committed-by: Mergan <mergan@noreply.akkoma>
2023-05-09 19:08:00 +02:00
Weblate
7ea89a8b44 Translated using Weblate (Spanish)
Currently translated at 87.1% (893 of 1025 strings)

Co-authored-by: taretka <info@tarteka.net>
Translate-URL: http://translate.akkoma.dev/projects/akkoma/pleroma-fe/es/
Translation: Pleroma fe/pleroma-fe
2023-05-09 19:08:00 +02:00
84950b9671 Fix build 2023-05-09 19:08:00 +02:00
4379c67180 Copy conversation display style from instance
Fixes #210
2023-05-09 19:08:00 +02:00
hynet-mel
a6d842b0b9 Customize the theme 2022-11-17 16:09:43 +01:00
hynet-mel
1547c34a6a Funky string customizing 2022-11-17 16:09:43 +01:00
hynet-mel
e651134249 Change NSFW image 2022-11-17 16:03:10 +01:00
hynet-mel
e27f020e2e Add custom fonts to css + misc tweaks like logo 2022-11-17 16:03:10 +01:00
hynet-mel
9660a57be1 Add fonts 2022-11-17 16:03:10 +01:00
hynet-mel
c02148c41c Replace background + base user prefs 2022-11-17 16:03:10 +01:00
hynet-mel
a87ddccaa6 Replace logos 2022-11-17 16:03:10 +01:00
hynet-mel
da958beb7b Add HyNET themes 2022-11-17 16:03:10 +01:00
hynet-mel
0090240e7d initial commit 2022-11-17 16:03:10 +01:00
2c9b73646c Merge pull request 'hotfix: mfm mysteries' (#215) from develop into stable
All checks were successful
ci/woodpecker/push/woodpecker Pipeline was successful
Reviewed-on: AkkomaGang/pleroma-fe#215
2022-11-15 16:01:07 +00:00
80a519d7e4 Merge pull request 'hotfix: translation' (#207) from develop into stable
All checks were successful
ci/woodpecker/push/woodpecker Pipeline was successful
Reviewed-on: AkkomaGang/pleroma-fe#207
2022-11-12 19:08:20 +00:00
975f04bf5a Merge pull request '2022.11 stable release' (#202) from develop into stable
All checks were successful
ci/woodpecker/push/woodpecker Pipeline was successful
Reviewed-on: AkkomaGang/pleroma-fe#202
2022-11-12 15:33:57 +00:00
c8c8d40827 Merge pull request '2022.10 stable' (#177) from develop into stable
All checks were successful
ci/woodpecker/push/woodpecker Pipeline was successful
Reviewed-on: AkkomaGang/pleroma-fe#177
2022-10-08 11:13:01 +00:00
d7499a1f91 Merge pull request '2022.09 stable' (#160) from develop into stable
All checks were successful
ci/woodpecker/push/woodpecker Pipeline was successful
Reviewed-on: AkkomaGang/pleroma-fe#160
2022-09-10 14:39:13 +00:00
5972d89117 Merge pull request 'stable release' (#130) from develop into stable
All checks were successful
ci/woodpecker/push/woodpecker Pipeline was successful
Reviewed-on: AkkomaGang/pleroma-fe#130
2022-08-12 15:26:51 +00:00
d03872d598 Merge pull request 'port MFM link into stable docs' (#38) from develop into stable
All checks were successful
ci/woodpecker/push/woodpecker Pipeline was successful
Reviewed-on: AkkomaGang/pleroma-fe#38
2022-07-15 13:02:06 +00:00
138 changed files with 6574 additions and 7026 deletions

2
.eslintignore Normal file
View file

@ -0,0 +1,2 @@
build/*.js
config/*.js

30
.eslintrc.js Normal file
View file

@ -0,0 +1,30 @@
module.exports = {
root: true,
parserOptions: {
parser: '@babel/eslint-parser',
sourceType: 'module'
},
// https://github.com/feross/standard/blob/master/RULES.md#javascript-standard-style
extends: [
'plugin:vue/recommended'
],
// required to lint *.vue files
plugins: [
'vue',
'import'
],
// add your custom rules here
rules: {
// allow paren-less arrow functions
'arrow-parens': 0,
// allow async-await
'generator-star-spacing': 0,
// allow debugger during development
'no-debugger': process.env.NODE_ENV === 'production' ? 2 : 0,
'vue/require-prop-types': 0,
'vue/no-unused-vars': 0,
'no-tabs': 0,
'vue/multi-word-component-names': 0,
'vue/no-reserved-component-names': 0
}
}

1
.node-version Normal file
View file

@ -0,0 +1 @@
7.2.1

View file

@ -1 +0,0 @@
nodejs 20.12.2

View file

@ -1,21 +1,20 @@
labels:
platform: linux/amd64
steps:
pipeline:
lint:
when:
event:
- pull_request
image: node:20
image: node:18
commands:
- yarn
- yarn lint
#- yarn stylelint
test:
when:
event:
- pull_request
image: node:20
image: node:18
commands:
- apt update
- apt install firefox-esr -y --no-install-recommends
@ -29,7 +28,7 @@ steps:
branch:
- develop
- stable
image: node:20
image: node:18
commands:
- yarn
- yarn build
@ -41,15 +40,15 @@ steps:
branch:
- develop
- stable
image: node:20
image: node:18
secrets:
- SCW_ACCESS_KEY
- SCW_SECRET_KEY
- SCW_DEFAULT_ORGANIZATION_ID
commands:
- apt-get update && apt-get install -y rclone wget zip
- wget https://github.com/scaleway/scaleway-cli/releases/download/v2.30.0/scaleway-cli_2.30.0_linux_amd64
- mv scaleway-cli_2.30.0_linux_amd64 scaleway-cli
- wget https://github.com/scaleway/scaleway-cli/releases/download/v2.5.1/scaleway-cli_2.5.1_linux_amd64
- mv scaleway-cli_2.5.1_linux_amd64 scaleway-cli
- chmod +x scaleway-cli
- ./scaleway-cli object config install type=rclone
- zip akkoma-fe.zip -r dist
@ -71,8 +70,8 @@ steps:
- SCW_DEFAULT_ORGANIZATION_ID
commands:
- apt-get update && apt-get install -y rclone wget git zip
- wget https://github.com/scaleway/scaleway-cli/releases/download/v2.30.0/scaleway-cli_2.30.0_linux_amd64
- mv scaleway-cli_2.30.0_linux_amd64 scaleway-cli
- wget https://github.com/scaleway/scaleway-cli/releases/download/v2.5.1/scaleway-cli_2.5.1_linux_amd64
- mv scaleway-cli_2.5.1_linux_amd64 scaleway-cli
- chmod +x scaleway-cli
- ./scaleway-cli object config install type=rclone
- cd docs

View file

@ -6,6 +6,8 @@ This is a fork of Akkoma-FE from the Pleroma project, with support for new Akkom
- MFM support via [marked-mfm](https://akkoma.dev/sfr/marked-mfm)
- Custom emoji reactions
And specificly, this is a tweaked version with all the hyena.network themes and tweaks in place
# For Translators
The [Weblate UI](https://translate.akkoma.dev/projects/akkoma/pleroma-fe/) is recommended for adding or modifying translations for Akkoma-FE.
@ -20,8 +22,6 @@ To use Akkoma-FE in Akkoma, use the [frontend](https://docs.akkoma.dev/stable/ad
## Build Setup
Make sure you have [Node.js](https://nodejs.org/) installed. You can check `/.woodpecker.yml` for which node version the Akkoma CI currently uses.
``` bash
# install dependencies
corepack enable

View file

@ -1,36 +1,36 @@
// https://github.com/shelljs/shelljs
require("./check-versions")();
require("shelljs/global");
env.NODE_ENV = "production";
require('./check-versions')()
require('shelljs/global')
env.NODE_ENV = 'production'
var path = require("path");
var config = require("../config");
var webpack = require("webpack");
var webpackConfig = require("./webpack.prod.conf");
var path = require('path')
var config = require('../config')
var ora = require('ora')
var webpack = require('webpack')
var webpackConfig = require('./webpack.prod.conf')
console.log(
" Tip:\n" +
" Built files are meant to be served over an HTTP server.\n" +
" Opening index.html over file:// won't work.\n",
);
' Tip:\n' +
' Built files are meant to be served over an HTTP server.\n' +
' Opening index.html over file:// won\'t work.\n'
)
var assetsPath = path.join(
config.build.assetsRoot,
config.build.assetsSubDirectory,
);
rm("-rf", assetsPath);
mkdir("-p", assetsPath);
cp("-R", "static/*", assetsPath);
var spinner = ora('building for production...')
spinner.start()
var assetsPath = path.join(config.build.assetsRoot, config.build.assetsSubDirectory)
rm('-rf', assetsPath)
mkdir('-p', assetsPath)
cp('-R', 'static/*', assetsPath)
webpack(webpackConfig, function (err, stats) {
if (err) throw err;
process.stdout.write(
stats.toString({
spinner.stop()
if (err) throw err
process.stdout.write(stats.toString({
colors: true,
modules: false,
children: false,
chunks: false,
chunkModules: false,
}) + "\n",
);
});
chunkModules: false
}) + '\n')
})

View file

@ -5,7 +5,7 @@ var path = require('path')
var express = require('express')
var webpack = require('webpack')
var opn = require('opn')
const { createProxyMiddleware } = require('http-proxy-middleware');
var proxyMiddleware = require('http-proxy-middleware')
var webpackConfig = process.env.NODE_ENV === 'testing'
? require('./webpack.prod.conf')
: require('./webpack.dev.conf')
@ -36,13 +36,7 @@ Object.keys(proxyTable).forEach(function (context) {
if (typeof options === 'string') {
options = { target: options }
}
const targetUrl = new URL(options.target);
// add path
targetUrl.pathname = context;
options.target = targetUrl.toString();
console.log("Proxying", context, "to", options.target);
app.use(context, createProxyMiddleware(options))
app.use(proxyMiddleware(context, options))
})
// handle fallback for HTML5 history API

View file

@ -3,7 +3,6 @@ var config = require('../config')
var utils = require('./utils')
var projectRoot = path.resolve(__dirname, '../')
var { VueLoaderPlugin } = require('vue-loader')
const ESLintPlugin = require('eslint-webpack-plugin');
var env = process.env.NODE_ENV
// check env & config/index.js to decide weither to enable CSS Sourcemaps for the
@ -36,7 +35,6 @@ module.exports = {
],
fallback: {
"url": require.resolve("url/"),
querystring: require.resolve("querystring-es3")
},
alias: {
'static': path.resolve(__dirname, '../static'),
@ -49,6 +47,20 @@ module.exports = {
module: {
noParse: /node_modules\/localforage\/dist\/localforage.js/,
rules: [
{
enforce: 'pre',
test: /\.(js|vue)$/,
include: projectRoot,
exclude: /node_modules/,
use: {
loader: 'eslint-loader',
options: {
formatter: require('eslint-friendly-formatter'),
sourceMap: config.build.productionSourceMap,
extract: true
}
}
},
{
enforce: 'post',
test: /\.(json5?|ya?ml)$/, // target json, json5, yaml and yml files
@ -106,9 +118,6 @@ module.exports = {
]
},
plugins: [
new VueLoaderPlugin(),
new ESLintPlugin({
configType: 'flat'
})
new VueLoaderPlugin()
]
}

View file

@ -2,4 +2,5 @@ var { merge } = require('webpack-merge')
var devEnv = require('./dev.env')
module.exports = merge(devEnv, {
NODE_ENV: '"testing"'
})

View file

@ -12,6 +12,13 @@ code,
--md-accent-fg-color: #455a63;
}
#app { background-repeat: repeat !important; }
@media all and (min-width: 800px) { .tab-icon { display: none !important; } }
.tab-switcher .tab-icon { color: #fff !important; }
.site-name { font-family: BLACKOUT; font-size: 3rem !important; line-height: 4rem;}
.site-name::before { content: "%"; }
.dropdown-item { color: #fff !important; }
@font-face {
font-family: 'Tiresias PCFont';
font-style: normal;
@ -26,3 +33,42 @@ code,
src: local('Tiresias Infofont'), local('Tiresias Infofont'),
url('./fonts/Tiresias_Infofont.ttf') format('truetype')
}
@font-face{
font-family:'blockzone';
src:url('./fonts/blockzone-webfont.woff2') format("woff2"),
url('./fonts/blockzone-webfont.woff') format("woff");
font-style:normal;
font-weight:400
}
@font-face{
font-family:'PeanutMoney';
src:url('./fonts/PeanutMoney.ttf') format("opentype");
font-style:normal;
font-weight:400
}
@font-face{
font-family:'Heading';
src:url('./fonts/heading.woff');
font-style:normal;
font-weight:400
}
@font-face{
font-family:'MonoMMM_5';
src:url('./fonts/monoMMM_5.woff');
font-style:normal;
font-weight:400
}
@font-face{
font-family:'Tiny';
src:url('./fonts/tiny.woff');
font-style:normal;
font-weight:400
}
@font-face{
font-family:'BLACKOUT';
src:url('./fonts/BLACKOUT.woff');
font-style:normal;
font-weight:400
}

View file

@ -1,31 +0,0 @@
const pluginVue = require('eslint-plugin-vue')
const pluginImport = require('eslint-plugin-import')
module.exports = [
...pluginVue.configs['flat/recommended'],
{
languageOptions: {
parserOptions: {
parser: '@babel/eslint-parser',
sourceType: 'module'
}
},
rules: {
// allow paren-less arrow functions
'arrow-parens': 0,
// allow async-await
'generator-star-spacing': 0,
// allow debugger during development
'no-debugger': process.env.NODE_ENV === 'production' ? 2 : 0,
'vue/require-prop-types': 0,
'vue/no-unused-vars': 0,
'no-tabs': 0,
'vue/multi-word-component-names': 0,
'vue/no-reserved-component-names': 0
},
ignores: [
'build/*.js',
'config/*.js'
]
}
]

View file

@ -1,6 +1,6 @@
{
"name": "pleroma_fe",
"version": "3.10.0",
"version": "3.11.0",
"description": "A frontend for Akkoma instances",
"author": "Roger Braun <roger@rogerbraun.net>",
"private": true,
@ -12,118 +12,120 @@
"e2e": "node test/e2e/runner.js",
"test": "npm run unit && npm run e2e",
"stylelint": "stylelint src/**/*.scss",
"lint": "eslint src test/unit/specs test/e2e/specs",
"lint-fix": "eslint --fix src test/unit/specs test/e2e/specs"
"lint": "eslint --ext .js,.vue src test/unit/specs test/e2e/specs",
"lint-fix": "eslint --fix --ext .js,.vue src test/unit/specs test/e2e/specs"
},
"dependencies": {
"@babel/runtime": "7.17.8",
"@chenfengyuan/vue-qrcode": "^2.0.0",
"@chenfengyuan/vue-qrcode": "2.0.0",
"@floatingghost/pinch-zoom-element": "^1.3.1",
"@fortawesome/fontawesome-svg-core": "^6.5.2",
"@fortawesome/free-regular-svg-icons": "^6.5.2",
"@fortawesome/free-solid-svg-icons": "^6.5.2",
"@fortawesome/vue-fontawesome": "^3.0.8",
"@vuelidate/core": "^2.0.3",
"@vuelidate/validators": "^2.0.4",
"blurhash": "^2.0.5",
"body-scroll-lock": "^3.1.5",
"chromatism": "^3.0.0",
"click-outside-vue3": "^4.0.1",
"cropperjs": "^1.6.2",
"diff": "^5.2.0",
"escape-html": "^1.0.3",
"@fortawesome/fontawesome-svg-core": "1.3.0",
"@fortawesome/free-regular-svg-icons": "^6.1.2",
"@fortawesome/free-solid-svg-icons": "^6.2.0",
"@fortawesome/vue-fontawesome": "3.0.1",
"@vuelidate/core": "^2.0.0",
"@vuelidate/validators": "^2.0.0",
"blurhash": "^2.0.4",
"body-scroll-lock": "2.7.1",
"chromatism": "3.0.0",
"click-outside-vue3": "4.0.1",
"cropperjs": "1.5.12",
"diff": "3.5.0",
"escape-html": "1.0.3",
"iso-639-1": "^2.1.15",
"js-cookie": "^3.0.1",
"localforage": "^1.10.0",
"localforage": "1.10.0",
"parse-link-header": "^2.0.0",
"phoenix": "^1.7.12",
"punycode.js": "^2.3.1",
"qrcode": "^1.5.3",
"querystring-es3": "^0.2.1",
"url": "^0.11.3",
"vue": "^3.4.38",
"vue-i18n": "^9.14.0",
"vue-router": "^4.4.3",
"vue-template-compiler": "^2.7.16",
"vuex": "^4.1.0"
"phoenix": "1.6.2",
"punycode.js": "2.1.0",
"qrcode": "1",
"url": "^0.11.0",
"vue": "^3.2.31",
"vue-i18n": "^9.2.2",
"vue-router": "4.0.14",
"vue-template-compiler": "2.6.11",
"vuex": "4.0.2"
},
"devDependencies": {
"@babel/core": "^7.24.6",
"@babel/core": "7.17.8",
"@babel/eslint-parser": "^7.19.1",
"@babel/plugin-transform-runtime": "^7.24.6",
"@babel/preset-env": "^7.24.6",
"@babel/register": "^7.24.6",
"@babel/plugin-transform-runtime": "7.17.0",
"@babel/preset-env": "7.16.11",
"@babel/register": "7.17.7",
"@intlify/vue-i18n-loader": "^5.0.0",
"@ungap/event-target": "^0.2.4",
"@vue/babel-helper-vue-jsx-merge-props": "^1.4.0",
"@vue/babel-plugin-jsx": "^1.2.2",
"@ungap/event-target": "0.2.3",
"@vue/babel-helper-vue-jsx-merge-props": "1.2.1",
"@vue/babel-plugin-jsx": "1.1.1",
"@vue/compiler-sfc": "^3.1.0",
"@vue/test-utils": "^2.0.2",
"autoprefixer": "^10.4.19",
"autoprefixer": "6.7.7",
"babel-loader": "^9.1.0",
"babel-plugin-lodash": "^3.3.4",
"babel-plugin-lodash": "3.3.4",
"chai": "^4.3.7",
"chalk": "^1.1.3",
"chromedriver": "^119.0.1",
"chalk": "1.1.3",
"chromedriver": "^107.0.3",
"connect-history-api-fallback": "^2.0.0",
"cross-spawn": "^7.0.3",
"css-loader": "^7.1.2",
"css-loader": "^6.7.2",
"custom-event-polyfill": "^1.0.7",
"eslint": "^9.3.0",
"eslint-config-standard": "^17.1.0",
"eslint": "^7.32.0",
"eslint-config-standard": "^17.0.0",
"eslint-friendly-formatter": "^4.0.1",
"eslint-plugin-import": "^2.29.1",
"eslint-loader": "^4.0.2",
"eslint-plugin-import": "^2.26.0",
"eslint-plugin-node": "^11.1.0",
"eslint-plugin-promise": "^6.2.0",
"eslint-plugin-promise": "^6.1.1",
"eslint-plugin-standard": "^5.0.0",
"eslint-plugin-vue": "^9.26.0",
"eslint-webpack-plugin": "^4.2.0",
"eventsource-polyfill": "^0.9.6",
"express": "^4.19.2",
"eslint-plugin-vue": "^9.7.0",
"eventsource-polyfill": "0.9.6",
"express": "4.17.3",
"file-loader": "^6.2.0",
"function-bind": "^1.1.2",
"function-bind": "1.1.1",
"html-webpack-plugin": "^5.5.0",
"http-proxy-middleware": "^3.0.0",
"json-loader": "^0.5.7",
"karma": "^6.4.3",
"karma-coverage": "^2.2.1",
"karma-firefox-launcher": "^2.1.3",
"karma-mocha": "^2.0.1",
"karma-mocha-reporter": "^2.2.5",
"karma-sinon-chai": "^2.0.2",
"karma-sourcemap-loader": "^0.4.0",
"karma-spec-reporter": "^0.0.36",
"http-proxy-middleware": "0.21.0",
"inject-loader": "2.0.1",
"isparta-loader": "2.0.0",
"json-loader": "0.5.7",
"karma": "6.3.17",
"karma-coverage": "1.1.2",
"karma-firefox-launcher": "1.3.0",
"karma-mocha": "2.0.1",
"karma-mocha-reporter": "2.2.5",
"karma-sinon-chai": "2.0.2",
"karma-sourcemap-loader": "0.3.8",
"karma-spec-reporter": "0.0.33",
"karma-webpack": "^5.0.0",
"lodash": "^4.17.21",
"lolex": "^6.0.0",
"mini-css-extract-plugin": "^2.9.0",
"mocha": "^10.4.0",
"nightwatch": "^3.6.3",
"opn": "^6.0.0",
"lodash": "4.17.21",
"lolex": "1.6.0",
"mini-css-extract-plugin": "0.12.0",
"mocha": "3.5.3",
"nightwatch": "0.9.21",
"opn": "4.0.2",
"ora": "0.4.1",
"postcss-html": "^1.5.0",
"postcss-loader": "^8.1.1",
"postcss-loader": "3.0.0",
"postcss-sass": "^0.5.0",
"raw-loader": "^4.0.2",
"sass": "^1.77.2",
"sass-loader": "^14.2.1",
"selenium-server": "^3.141.59",
"semver": "^7.6.2",
"shelljs": "^0.8.5",
"sinon": "^18.0.0",
"sinon-chai": "^3.7.0",
"raw-loader": "0.5.1",
"sass": "^1.56.0",
"sass-loader": "^13.2.0",
"selenium-server": "2.53.1",
"semver": "5.7.1",
"shelljs": "0.8.5",
"sinon": "2.4.1",
"sinon-chai": "2.14.0",
"stylelint": "^14.15.0",
"stylelint-config-recommended-vue": "^1.4.0",
"stylelint-config-standard": "^29.0.0",
"stylelint-config-standard-scss": "^6.1.0",
"stylelint-rscss": "^0.4.0",
"url-loader": "^4.1.1",
"vue-loader": "^17.4.2",
"vue-style-loader": "^4.1.3",
"webpack": "^5.91.0",
"webpack-dev-middleware": "^7.2.1",
"webpack-hot-middleware": "^2.26.1",
"webpack-merge": "^5.10.0",
"workbox-webpack-plugin": "^7.1.0"
"vue-loader": "^17.0.0",
"vue-style-loader": "^4.1.2",
"webpack": "^5.75.0",
"webpack-dev-middleware": "^5.3.3",
"webpack-hot-middleware": "^2.25.1",
"webpack-merge": "^5.8.0",
"workbox-webpack-plugin": "^6.5.4"
},
"engines": {
"node": ">= 16.0.0",

Binary file not shown.

Before

Width:  |  Height:  |  Size: 17 KiB

After

Width:  |  Height:  |  Size: 5 KiB

View file

@ -6,7 +6,7 @@
:bound-to="{ x: 'container' }"
remove-padding
>
<template #content>
<template v-slot:content>
<div class="dropdown-menu">
<template v-if="relationship.following">
<button
@ -71,7 +71,7 @@
</button>
</div>
</template>
<template #trigger>
<template v-slot:trigger>
<button class="button-unstyled ellipsis-button">
<FAIcon
class="icon"
@ -93,7 +93,7 @@
keypath="user_card.block_confirm"
tag="span"
>
<template #user>
<template v-slot:user>
<span
v-text="user.screen_name_ui"
/>

View file

@ -246,8 +246,8 @@
ref="flash"
class="flash"
:src="attachment.large_thumb_url || attachment.url"
@player-opened="setFlashLoaded(true)"
@player-closed="setFlashLoaded(false)"
@playerOpened="setFlashLoaded(true)"
@playerClosed="setFlashLoaded(false)"
/>
</span>
</div>

View file

@ -22,12 +22,12 @@
<script>
export default {
emits: ['update:modelValue'],
props: [
'modelValue',
'indeterminate',
'disabled'
],
emits: ['update:modelValue']
]
}
</script>

View file

@ -14,7 +14,7 @@
:model-value="present"
:disabled="disabled"
class="opt"
@update:model-value="$emit('update:modelValue', typeof modelValue === 'undefined' ? fallback : undefined)"
@update:modelValue="$emit('update:modelValue', typeof modelValue === 'undefined' ? fallback : undefined)"
/>
<div class="input color-input-field">
<input
@ -46,6 +46,7 @@
</div>
</div>
</template>
<style lang="scss" src="./color_input.scss"></style>
<script>
import Checkbox from '../checkbox/checkbox.vue'
import { hex2rgb } from '../../services/color_convert/color_convert.js'
@ -107,7 +108,6 @@ export default {
}
}
</script>
<style lang="scss" src="./color_input.scss"></style>
<style lang="scss">
.color-control {

View file

@ -25,8 +25,6 @@
</dialog-modal>
</template>
<script src="./confirm_modal.js"></script>
<style lang="scss" scoped>
@import '../../_variables';
@ -37,3 +35,5 @@
}
}
</style>
<script src="./confirm_modal.js"></script>

View file

@ -267,11 +267,11 @@ const conversation = {
},
replies () {
let i = 1
// eslint-disable-next-line camelcase
return reduce(this.conversation, (result, { id, in_reply_to_status_id }) => {
/* eslint-disable camelcase */
const irid = in_reply_to_status_id
/* eslint-enable camelcase */
if (irid) {
result[irid] = result[irid] || []
result[irid].push({

View file

@ -91,7 +91,7 @@
:controlled-set-media-playing="(newVal) => toggleStatusContentProperty(status.id, 'mediaPlaying', newVal)"
@goto="setHighlight"
@toggle-expanded="toggleExpanded"
@toggleExpanded="toggleExpanded"
/>
<div
v-if="showOtherRepliesButtonBelowStatus && getReplies(status.id).length > 1"
@ -184,7 +184,7 @@
:toggle-status-content-property="toggleStatusContentProperty"
@goto="setHighlight"
@toggle-expanded="toggleExpanded"
@toggleExpanded="toggleExpanded"
/>
</div>
</div>

View file

@ -44,9 +44,9 @@
/>
</router-link>
<router-link
v-if="publicTimelineVisible"
:to="{ name: 'public-timeline' }"
class="nav-icon"
v-if="publicTimelineVisible"
>
<FAIcon
fixed-width
@ -68,9 +68,9 @@
/>
</router-link>
<router-link
v-if="federatedTimelineVisible"
:to="{ name: 'public-external-timeline' }"
class="nav-icon"
v-if="federatedTimelineVisible"
>
<FAIcon
fixed-width

View file

@ -9,7 +9,7 @@
class="btn button-default"
>
{{ $t('domain_mute_card.unmute') }}
<template #progress>
<template v-slot:progress>
{{ $t('domain_mute_card.unmute_progress') }}
</template>
</ProgressButton>
@ -19,7 +19,7 @@
class="btn button-default"
>
{{ $t('domain_mute_card.mute') }}
<template #progress>
<template v-slot:progress>
{{ $t('domain_mute_card.mute_progress') }}
</template>
</ProgressButton>

View file

@ -2,7 +2,7 @@
<Modal
v-if="isFormVisible"
class="edit-form-modal-view"
@backdrop-clicked="closeModal"
@backdropClicked="closeModal"
>
<div class="edit-form-modal-panel panel">
<div class="panel-heading">
@ -11,10 +11,10 @@
<PostStatusForm
class="panel-body"
v-bind="params"
:disable-polls="true"
:disable-visibility-selector="true"
:post-handler="doEditStatus"
@posted="closeModal"
:disablePolls="true"
:disableVisibilitySelector="true"
:post-handler="doEditStatus"
/>
</div>
</Modal>

View file

@ -43,10 +43,7 @@
:class="{ highlighted: index === highlighted }"
@click.stop.prevent="onClick($event, suggestion)"
>
<span
v-if="!suggestion.mfm"
class="image"
>
<span v-if="!suggestion.mfm" class="image">
<img
v-if="suggestion.img"
:src="suggestion.img"

View file

@ -122,14 +122,14 @@ export const suggestUsers = ({ dispatch, state }) => {
const screenNameAlphabetically = a.screen_name > b.screen_name ? 1 : -1
return diff + nameAlphabetically + screenNameAlphabetically
/* eslint-disable camelcase */
}).map(({ screen_name, screen_name_ui, name, profile_image_url_original }) => ({
displayText: screen_name_ui,
detailText: name,
imageUrl: profile_image_url_original,
replacement: '@' + screen_name + ' '
}))
/* eslint-enable camelcase */
suggestions = newSuggestions || []
return suggestions

View file

@ -7,7 +7,7 @@
:bound-to="{ x: 'container' }"
remove-padding
>
<template #content="{close}">
<template v-slot:content="{close}">
<div class="dropdown-menu">
<button
v-if="canMute && !status.thread_muted"
@ -172,7 +172,7 @@
</button>
</div>
</template>
<template #trigger>
<template v-slot:trigger>
<button class="button-unstyled popover-trigger">
<FAIcon
class="fa-scale-110 fa-old-padding"

View file

@ -1,8 +1,5 @@
<template>
<basic-user-card
v-if="show"
:user="user"
>
<basic-user-card :user="user" v-if="show">
<div class="follow-request-card-content-container">
<button
class="btn button-default"

View file

@ -31,8 +31,8 @@
:description="descriptions && descriptions[attachment.id]"
:hide-description="size === 'small' || tooManyAttachments && hidingLong"
:style="itemStyle(attachment.id, row.items)"
@set-media="onMedia"
@natural-size-load="onNaturalSizeLoad"
@setMedia="onMedia"
@naturalSizeLoad="onNaturalSizeLoad"
/>
</div>
</div>

View file

@ -42,7 +42,6 @@ export default {
@import '../../_variables.scss';
.list {
min-height: 1em;
&-item:not(:last-child) {
border-bottom: 1px solid;
border-bottom-color: $fallback--border;

View file

@ -2,7 +2,7 @@
<Modal
v-if="showing"
class="media-modal-view"
@backdrop-clicked="hideIfNotSwiped"
@backdropClicked="hideIfNotSwiped"
>
<SwipeClick
v-if="type === 'image'"

View file

@ -42,7 +42,7 @@ const mediaUpload = {
.then((fileData) => {
self.$emit('uploaded', fileData)
self.decreaseUploadCount()
}, (error) => {
}, (error) => { // eslint-disable-line handle-callback-err
self.$emit('upload-failed', 'default')
self.decreaseUploadCount()
})

View file

@ -18,7 +18,6 @@
<input
id="code"
v-model="code"
autocomplete="one-time-code"
class="form-control"
>
</div>

View file

@ -4,7 +4,7 @@
class="panel-heading"
@click="toggleHidden"
>
<h4>{{ $t('moderation.reports.report') + ' ' + account.screen_name }}</h4>
<h4>{{ $t('moderation.reports.report') + ' ' + this.account.screen_name }}</h4>
<button
v-if="isOpen"
class="button-default"
@ -35,10 +35,7 @@
<div v-if="content">
{{ decode(content) }}
</div>
<i
v-else
class="faint"
>
<i v-else class="faint">
{{ $t('moderation.reports.no_content') }}
</i>
<div class="report-author">
@ -46,12 +43,12 @@
class="small-avatar"
:user="actor"
/>
{{ actor.screen_name }}
{{ this.actor.screen_name }}
</div>
</div>
<div
v-if="!hidden && statuses.length > 0"
class="dropdown"
v-if="!hidden && this.statuses.length > 0"
>
<button
class="button button-unstyled dropdown-header"
@ -77,8 +74,8 @@
</div>
</div>
<div
v-if="!hidden && notes.length > 0"
class="dropdown"
v-if="!hidden && this.notes.length > 0"
>
<button
class="button button-unstyled dropdown-header"
@ -102,9 +99,9 @@
</div>
<div class="report-add-note">
<textarea
v-model.trim="note"
rows="1"
cols="1"
v-model.trim="note"
:placeholder="$t('moderation.reports.note_placeholder')"
/>
<button
@ -137,7 +134,7 @@
:offset="{ y: 5 }"
remove-padding
>
<template #trigger>
<template v-slot:trigger>
<button
class="btn button-default"
:disabled="!tagPolicyEnabled"
@ -150,7 +147,7 @@
/>
</button>
</template>
<template #content="{close}">
<template v-slot:content="{close}">
<div
class="dropdown-menu"
:disabled="!tagPolicyEnabled"

View file

@ -6,7 +6,7 @@
class="small-avatar"
:user="user"
/>
{{ user.screen_name }}
{{ this.user.screen_name }}
</div>
<div class="header-right">
<Timeago

View file

@ -22,9 +22,6 @@ export default {
default: false
}
},
emits: [
'backdropClicked',
],
computed: {
classes () {
return {

View file

@ -8,7 +8,7 @@
@show="setToggled(true)"
@close="setToggled(false)"
>
<template #content>
<template v-slot:content>
<div class="dropdown-menu">
<span v-if="user.is_local">
<button
@ -122,7 +122,7 @@
</span>
</div>
</template>
<template #trigger>
<template v-slot:trigger>
<button
class="btn button-default btn-block moderation-tools-button"
:class="{ toggled }"
@ -137,11 +137,11 @@
v-if="showDeleteUserDialog"
:on-cancel="deleteUserDialog.bind(this, false)"
>
<template #header>
<template v-slot:header>
{{ $t('user_card.admin_menu.delete_user') }}
</template>
<p>{{ $t('user_card.admin_menu.delete_user_confirmation') }}</p>
<template #footer>
<template v-slot:footer>
<button
class="btn button-default"
@click="deleteUserDialog(false)"

View file

@ -6,7 +6,6 @@ import UserCard from '../user_card/user_card.vue'
import Timeago from '../timeago/timeago.vue'
import RichContent from 'src/components/rich_content/rich_content.jsx'
import ConfirmModal from '../confirm_modal/confirm_modal.vue'
import StillImage from '../still-image/still-image.vue'
import { isStatusNotification } from '../../services/notification_utils/notification_utils.js'
import { highlightClass, highlightStyle } from '../../services/user_highlighter/user_highlighter.js'
import generateProfileLink from 'src/services/user_profile_link_generator/user_profile_link_generator'
@ -51,8 +50,7 @@ const Notification = {
Timeago,
Status,
RichContent,
ConfirmModal,
StillImage
ConfirmModal
},
methods: {
toggleUserExpanded () {

View file

@ -116,13 +116,12 @@
scope="global"
keypath="notifications.reacted_with"
>
<still-image
<img
v-if="notification.emoji_url !== null"
class="notification-reaction-emoji"
:src="notification.emoji_url"
:title="notification.emoji"
:alt="notification.emoji"
/>
:name="notification.emoji"
>
<span
v-else
class="emoji-reaction-emoji"

View file

@ -5,7 +5,7 @@
placement="bottom"
:bound-to="{ x: 'container' }"
>
<template #content>
<template v-slot:content>
<div class="dropdown-menu">
<button
class="button-default dropdown-item"
@ -72,7 +72,7 @@
</button>
</div>
</template>
<template #trigger>
<template v-slot:trigger>
<button class="filter-trigger-button button-unstyled">
<FAIcon icon="filter" />
</button>

View file

@ -14,7 +14,7 @@
:model-value="present"
:disabled="disabled"
class="opt"
@update:model-value="$emit('update:modelValue', !present ? fallback : undefined)"
@update:modelValue="$emit('update:modelValue', !present ? fallback : undefined)"
/>
<input
:id="name"

View file

@ -2,6 +2,7 @@
<pinch-zoom
class="pinch-zoom-parent"
v-bind="$attrs"
v-on="$listeners"
>
<slot />
</pinch-zoom>

View file

@ -9,12 +9,11 @@ import StatusContent from '../status_content/status_content.vue'
import fileTypeService from '../../services/file_type/file_type.service.js'
import { findOffset } from '../../services/offset_finder/offset_finder.service.js'
import { reject, map, uniqBy, debounce } from 'lodash'
import { usePostLanguageOptions } from 'src/lib/post_language'
import suggestor from '../emoji_input/suggestor.js'
import { mapGetters, mapState } from 'vuex'
import Checkbox from '../checkbox/checkbox.vue'
import Select from '../select/select.vue'
import iso6391 from 'iso-639-1'
import { library } from '@fortawesome/fontawesome-svg-core'
import {
@ -63,13 +62,6 @@ const deleteDraft = (draftKey) => {
localStorage.setItem('drafts', JSON.stringify(draftData));
}
const interfaceToISOLanguage = (ilang) => {
const sep = ilang.indexOf("_");
return sep < 0 ?
ilang :
ilang.substr(0, sep);
}
const PostStatusForm = {
props: [
'statusId',
@ -137,13 +129,6 @@ const PostStatusForm = {
this.$refs.textarea.focus()
}
},
setup() {
const {postLanguageOptions} = usePostLanguageOptions()
return {
postLanguageOptions,
}
},
data () {
const preset = this.$route.query.message
let statusText = preset || ''
@ -153,8 +138,7 @@ const PostStatusForm = {
statusText = buildMentionsString({ user: this.repliedUser, attentions: this.attentions }, currentUser)
}
const { postContentType: contentType, postLanguage: defaultPostLanguage, sensitiveByDefault, sensitiveIfSubject, interfaceLanguage, alwaysShowSubjectInput } = this.$store.getters.mergedConfig
const postLanguage = defaultPostLanguage || interfaceToISOLanguage(interfaceLanguage)
const { postContentType: contentType, sensitiveByDefault, sensitiveIfSubject, interfaceLanguage, alwaysShowSubjectInput } = this.$store.getters.mergedConfig
let statusParams = {
spoilerText: this.subject || '',
@ -165,7 +149,7 @@ const PostStatusForm = {
poll: {},
mediaDescriptions: {},
visibility: this.suggestedVisibility(),
language: postLanguage,
language: interfaceLanguage,
contentType
}
@ -180,7 +164,7 @@ const PostStatusForm = {
poll: this.statusPoll || {},
mediaDescriptions: this.statusMediaDescriptions || {},
visibility: this.statusScope || this.suggestedVisibility(),
language: this.statusLanguage || postLanguage,
language: this.statusLanguage || interfaceLanguage,
contentType: statusContentType
}
}
@ -325,6 +309,9 @@ const PostStatusForm = {
...mapState({
mobileLayout: state => state.interface.mobileLayout
}),
isoLanguages () {
return iso6391.getAllCodes();
}
},
watch: {
'newStatus': {

View file

@ -118,8 +118,8 @@
/>
</div>
<EmojiInput
v-if="subjectVisible"
ref="subject-emoji-input"
v-if="subjectVisible"
v-model="newStatus.spoilerText"
enable-emoji-picker
hide-emoji-button
@ -170,7 +170,7 @@
cols="1"
:disabled="posting && !optimisticPosting"
class="form-post-body"
:class="{ 'scrollable-form': !!maxHeight, '-has-subject': subjectVisible }"
:class="{ 'scrollable-form': !!maxHeight }"
@keydown.exact.enter="submitOnEnter && postStatus($event, newStatus)"
@keydown.meta.enter="postStatus($event, newStatus)"
@keydown.ctrl.enter="!submitOnEnter && postStatus($event, newStatus)"
@ -190,7 +190,6 @@
<div
v-if="!disableScopeSelector"
class="visibility-tray"
:class="{ 'visibility-tray-edit': isEdit }"
>
<scope-selector
v-if="!disableVisibilitySelector"
@ -201,9 +200,7 @@
/>
<div
class="format-selector-container">
<div
class="format-selector"
class="language-selector"
>
<Select
id="post-language"
@ -211,17 +208,17 @@
class="form-control"
>
<option
v-for="language in postLanguageOptions"
:key="language.key"
:value="language.value"
v-for="language in isoLanguages"
:key="language"
:value="language"
>
{{ language.label }}
{{ language }}
</option>
</Select>
</div>
<div
v-if="postFormats.length > 1"
class="text-format format-selector"
class="text-format"
>
<Select
id="post-content-type"
@ -239,7 +236,7 @@
</div>
<div
v-if="postFormats.length === 1 && postFormats[0] !== 'text/plain'"
class="text-format format-selector"
class="text-format"
>
<span class="only-format">
{{ $t(`post_status.content_type["${postFormats[0]}"]`) }}
@ -247,7 +244,6 @@
</div>
</div>
</div>
</div>
<poll-form
v-if="pollsAvailable"
ref="pollForm"
@ -464,10 +460,6 @@
align-items: baseline;
}
.visibility-tray-edit {
justify-content: right;
}
.visibility-notice.edit-warning {
> :first-child {
margin-top: 0;
@ -478,12 +470,6 @@
}
}
.format-selector-container {
.format-selector {
display: inline-block;
}
}
.media-upload-icon, .poll-icon, .emoji-icon, .spoiler-icon {
font-size: 1.85em;
line-height: 1.1;
@ -584,11 +570,6 @@
line-height: 1.85;
}
.form-post-subject {
border-bottom-left-radius: 0;
border-bottom-right-radius: 0;
}
.form-post-body {
// TODO: make a resizable textarea component?
box-sizing: content-box; // needed for easier computation of dynamic size
@ -601,11 +582,6 @@
min-height: calc(var(--post-line-height) * 1em);
resize: none;
&.-has-subject {
border-top-left-radius: 0;
border-top-right-radius: 0;
}
&.scrollable-form {
overflow-y: auto;
}

View file

@ -3,7 +3,7 @@
v-if="isLoggedIn && !resettingForm"
:is-open="modalActivated"
class="post-form-modal-view"
@backdrop-clicked="closeModal"
@backdropClicked="closeModal"
>
<div class="post-form-modal-panel panel">
<div class="panel-heading">

View file

@ -8,13 +8,13 @@
remove-padding
@show="focusInput"
>
<template #content="{close}">
<template v-slot:content="{close}">
<EmojiPicker
:enable-sticker-picker="false"
@emoji="addReaction($event, close)"
/>
</template>
<template #trigger>
<template v-slot:trigger>
<button
class="button-unstyled popover-trigger"
:title="$t('tool_tip.add_reaction')"

View file

@ -2,7 +2,7 @@ export default {
props: [ 'user' ],
computed: {
subscribeUrl () {
// eslint-disable-next-line no-undef
const serverUrl = new URL(this.user.statusnet_profile_url)
return `${serverUrl.protocol}//${serverUrl.host}/main/ostatus`
}

View file

@ -24,7 +24,7 @@
:items="items"
:get-key="getKey"
>
<template #item="{item}">
<template v-slot:item="{item}">
<div
class="selectable-list-item-inner"
:class="{ 'selectable-list-item-selected-inner': isSelected(item) }"
@ -41,7 +41,7 @@
/>
</div>
</template>
<template #empty>
<template v-slot:empty>
<slot name="empty" />
</template>
</List>

View file

@ -6,7 +6,7 @@
<Checkbox
:model-value="state"
:disabled="disabled"
@update:model-value="update"
@update:modelValue="update"
>
<span
v-if="!!$slots.default"

View file

@ -8,7 +8,7 @@
<Select
:model-value="state"
:disabled="disabled"
@update:model-value="update"
@update:modelValue="update"
>
<option
v-for="option in options"

View file

@ -6,14 +6,14 @@
<Popover
trigger="hover"
>
<template #trigger>
<template v-slot:trigger>
&nbsp;
<FAIcon
icon="wrench"
:aria-label="$t('settings.setting_changed')"
/>
</template>
<template #content>
<template v-slot:content>
<div class="modified-tooltip">
{{ $t('settings.setting_changed') }}
</div>

View file

@ -6,14 +6,14 @@
<Popover
trigger="hover"
>
<template #trigger>
<template v-slot:trigger>
&nbsp;
<FAIcon
icon="server"
:aria-label="$t('settings.setting_server_side')"
/>
</template>
<template #content>
<template v-slot:content>
<div class="serverside-tooltip">
{{ $t('settings.setting_server_side') }}
</div>

View file

@ -69,7 +69,7 @@ const SettingsModal = {
this.$store.dispatch('closeSettingsModal')
},
logout () {
this.$router.replace(this.$store.state.instance.redirectRootNoLogin || '/main/all')
this.$router.replace('/main/public')
this.$store.dispatch('closeSettingsModal')
this.$store.dispatch('logout')
},

View file

@ -108,7 +108,7 @@
<Checkbox
:model-value="!!expertLevel"
class="expertMode"
@update:model-value="expertLevel = Number($event)"
@update:modelValue="expertLevel = Number($event)"
>
{{ $t("settings.expert_mode") }}
</Checkbox>

View file

@ -72,7 +72,7 @@ const DataImportExportTab = {
// check is it's a local user
if (user && user.is_local) {
// append the instance address
// eslint-disable-next-line no-undef
return user.screen_name + '@' + location.hostname
}
return user.screen_name

View file

@ -4,7 +4,6 @@ import ScopeSelector from 'src/components/scope_selector/scope_selector.vue'
import IntegerSetting from '../helpers/integer_setting.vue'
import InterfaceLanguageSwitcher from 'src/components/interface_language_switcher/interface_language_switcher.vue'
import { usePostLanguageOptions } from 'src/lib/post_language'
import SharedComputedObject from '../helpers/shared_computed_object.js'
import ServerSideIndicator from '../helpers/server_side_indicator.vue'
import { library } from '@fortawesome/fontawesome-svg-core'
@ -18,11 +17,6 @@ library.add(
)
const GeneralTab = {
setup() {
const {postLanguageOptions} = usePostLanguageOptions()
return {postLanguageOptions}
},
data () {
return {
subjectLineOptions: ['email', 'noop', 'masto'].map(mode => ({
@ -124,12 +118,6 @@ const GeneralTab = {
this.$store.dispatch('setOption', { name: 'translationLanguage', value: val })
}
},
postLanguage: {
get: function () { return this.$store.getters.mergedConfig.postLanguage },
set: function (val) {
this.$store.dispatch('setOption', { name: 'postLanguage', value: val })
}
},
...SharedComputedObject()
},
methods: {

View file

@ -44,6 +44,7 @@
<template
v-if="profilesExpanded"
>
<div
v-for="profile in settingsProfiles"
:key="profile.id"
@ -72,24 +73,15 @@
</button>
</template>
</div>
<button
class="btn button-default"
@click="refreshProfiles()"
>
<button class="btn button-default" @click="refreshProfiles()">
{{ $t('settings.settings_profiles_refresh') }}
<FAIcon
icon="sync"
@click="refreshProfiles()"
/>
<FAIcon icon="sync" @click="refreshProfiles()" />
</button>
<h3>{{ $t('settings.settings_profile_creation') }}</h3>
<label for="settings-profile-new-name">
{{ $t('settings.settings_profile_creation_new_name_label') }}
</label>
<input
id="settings-profile-new-name"
v-model="newProfileName"
>
<input v-model="newProfileName" id="settings-profile-new-name">
<button
class="btn button-default"
@click="createSettingsProfile"
@ -593,15 +585,6 @@
{{ $t('settings.post_status_content_type') }}
</ChoiceSetting>
</li>
<li>
<ChoiceSetting
id="postLanguage"
path="postLanguage"
:options="postLanguageOptions"
>
{{ $t('settings.post_language') }}
</ChoiceSetting>
</li>
<li>
<BooleanSetting
path="alwaysShowNewPostButton"

View file

@ -85,7 +85,7 @@ const MutesAndBlocks = {
// check is it's a local user
if (user && user.is_local) {
// append the instance address
// eslint-disable-next-line no-undef
return user.screen_name + '@' + location.hostname
}
return user.screen_name

View file

@ -10,7 +10,7 @@
:query="queryUserIds"
:placeholder="$t('settings.search_user_to_block')"
>
<template #default="row">
<template v-slot="row">
<BlockCard
:user-id="row.item"
/>
@ -21,7 +21,7 @@
:refresh="true"
:get-key="i => i"
>
<template #header="{selected}">
<template v-slot:header="{selected}">
<div class="bulk-actions">
<ProgressButton
v-if="selected.length > 0"
@ -29,7 +29,7 @@
:click="() => blockUsers(selected)"
>
{{ $t('user_card.block') }}
<template #progress>
<template v-slot:progress>
{{ $t('user_card.block_progress') }}
</template>
</ProgressButton>
@ -39,16 +39,16 @@
:click="() => unblockUsers(selected)"
>
{{ $t('user_card.unblock') }}
<template #progress>
<template v-slot:progress>
{{ $t('user_card.unblock_progress') }}
</template>
</ProgressButton>
</div>
</template>
<template #item="{item}">
<template v-slot:item="{item}">
<BlockCard :user-id="item" />
</template>
<template #empty>
<template v-slot:empty>
{{ $t('settings.no_blocks') }}
</template>
</BlockList>
@ -63,7 +63,7 @@
:query="queryUserIds"
:placeholder="$t('settings.search_user_to_mute')"
>
<template #default="row">
<template v-slot="row">
<MuteCard
:user-id="row.item"
/>
@ -74,7 +74,7 @@
:refresh="true"
:get-key="i => i"
>
<template #header="{selected}">
<template v-slot:header="{selected}">
<div class="bulk-actions">
<ProgressButton
v-if="selected.length > 0"
@ -82,7 +82,7 @@
:click="() => muteUsers(selected)"
>
{{ $t('user_card.mute') }}
<template #progress>
<template v-slot:progress>
{{ $t('user_card.mute_progress') }}
</template>
</ProgressButton>
@ -92,16 +92,16 @@
:click="() => unmuteUsers(selected)"
>
{{ $t('user_card.unmute') }}
<template #progress>
<template v-slot:progress>
{{ $t('user_card.unmute_progress') }}
</template>
</ProgressButton>
</div>
</template>
<template #item="{item}">
<template v-slot:item="{item}">
<MuteCard :user-id="item" />
</template>
<template #empty>
<template v-slot:empty>
{{ $t('settings.no_mutes') }}
</template>
</MuteList>
@ -114,7 +114,7 @@
:query="queryKnownDomains"
:placeholder="$t('settings.type_domains_to_mute')"
>
<template #default="row">
<template v-slot="row">
<DomainMuteCard
:domain="row.item"
/>
@ -125,7 +125,7 @@
:refresh="true"
:get-key="i => i"
>
<template #header="{selected}">
<template v-slot:header="{selected}">
<div class="bulk-actions">
<ProgressButton
v-if="selected.length > 0"
@ -133,16 +133,16 @@
:click="() => unmuteDomains(selected)"
>
{{ $t('domain_mute_card.unmute') }}
<template #progress>
<template v-slot:progress>
{{ $t('domain_mute_card.unmute_progress') }}
</template>
</ProgressButton>
</div>
</template>
<template #item="{item}">
<template v-slot:item="{item}">
<DomainMuteCard :domain="item" />
</template>
<template #empty>
<template v-slot:empty>
{{ $t('settings.no_mutes') }}
</template>
</DomainMuteList>

View file

@ -130,7 +130,7 @@ const ProfileTab = {
note: this.newBio,
locked: this.newLocked,
// Backend notation.
/* eslint-disable camelcase */
display_name: this.newName,
fields_attributes: this.newFields.filter(el => el != null),
bot: this.bot,
@ -138,7 +138,7 @@ const ProfileTab = {
status_ttl_days: this.expirePosts ? this.newPostTTLDays : -1,
permit_followback: this.permit_followback,
accepts_direct_messages_from: this.userAcceptsDirectMessagesFrom
/* eslint-enable camelcase */
}
if (this.emailLanguage) {
@ -187,7 +187,7 @@ const ProfileTab = {
})
return
}
// eslint-disable-next-line no-undef
const reader = new FileReader()
reader.onload = ({ target }) => {
const img = target.result

View file

@ -110,9 +110,11 @@
max="730"
class="expire-posts-days"
:placeholder="$t('settings.expire_posts_input_placeholder')"
>
/>
</p>
<p>
</p>
<p />
<p>
<interface-language-switcher
:prompt-text="$t('settings.email_language')"

View file

@ -266,16 +266,6 @@
color: $fallback--cGreen;
color: var(--cGreen, $fallback--cGreen);
}
.right-side {
display: flex;
align-items: center;
gap: 0.3em;
}
.repeat-tooltip {
flex-shrink: 0;
}
}
.repeater-avatar {

View file

@ -83,7 +83,7 @@
:user="statusoid.user"
/>
<div class="right-side faint">
<div
<span
class="status-username repeater-name"
:title="retweeter"
>
@ -100,12 +100,8 @@
v-else
:to="retweeterProfileLink"
>{{ retweeter }}</router-link>
</div>
</span>
{{ ' ' }}
<div
class="repeat-tooltip"
>
<FAIcon
icon="retweet"
class="repeat-icon"
@ -114,7 +110,6 @@
{{ $t('timeline.repeated') }}
</div>
</div>
</div>
<div
v-if="!deleted"
@ -373,7 +368,7 @@
:controlled-toggle-showing-long-subject="controlledToggleShowingLongSubject"
@mediaplay="addMediaPlaying($event)"
@mediapause="removeMediaPlaying($event)"
@parse-ready="setHeadTailLinks"
@parseReady="setHeadTailLinks"
/>
</div>
@ -481,8 +476,8 @@
/>
<extra-buttons
:status="status"
@on-error="showError"
@on-success="clearError"
@onError="showError"
@onSuccess="clearError"
/>
</div>
</div>

View file

@ -54,7 +54,7 @@
:mfm="renderMisskeyMarkdown && (status.media_type === 'text/x.misskeymarkdown')"
:greentext="mergedConfig.greentext"
:attentions="status.attentions"
@parse-ready="onParseReady"
@parseReady="onParseReady"
/>
<div
v-if="status.translation"
@ -70,7 +70,7 @@
:mfm="renderMisskeyMarkdown && (status.media_type === 'text/x.misskeymarkdown')"
:greentext="mergedConfig.greentext"
:attentions="status.attentions"
@parse-ready="onParseReady"
@parseReady="onParseReady"
/>
<div>
<label class="label">{{ $t('status.override_translation_source_language') }}</label>
@ -89,10 +89,7 @@
</option>
</Select>
{{ ' ' }}
<button
class="btn button-default"
@click="translateStatus"
>
<button @click="translateStatus" class="btn button-default">
{{ $t('status.translate') }}
</button>
</div>

View file

@ -14,7 +14,7 @@
:toggle-showing-tall="toggleShowingTall"
:toggle-expanding-subject="toggleExpandingSubject"
:toggle-showing-long-subject="toggleShowingLongSubject"
@parse-ready="$emit('parseReady', $event)"
@parseReady="$emit('parseReady', $event)"
>
<div v-if="status.poll && status.poll.options && !compact">
<Poll

View file

@ -2,7 +2,7 @@
<Modal
v-if="modalActivated"
class="status-history-modal-view"
@backdrop-clicked="closeModal"
@backdropClicked="closeModal"
>
<div class="status-history-modal-panel panel">
<div class="panel-heading">
@ -17,7 +17,7 @@
v-for="status in history"
:key="status.id"
:statusoid="status"
:is-preview="true"
:isPreview="true"
class="conversation-status status-fadein panel-body"
/>
</div>

View file

@ -5,10 +5,10 @@
:bound-to="{ x: 'container' }"
@show="enter"
>
<template #trigger>
<template v-slot:trigger>
<slot />
</template>
<template #content>
<template v-slot:content>
<Status
v-if="status"
:is-preview="true"

View file

@ -7,8 +7,7 @@
>
<div
v-if="animated && imageTypeLabel"
class="image-type-label"
>
class="image-type-label">
{{ imageTypeLabel }}
</div>
<canvas

View file

@ -32,7 +32,7 @@
:dive="dive ? () => dive(status.id) : undefined"
@goto="setHighlight"
@toggle-expanded="toggleExpanded"
@toggleExpanded="toggleExpanded"
/>
<div
v-if="currentReplies.length && threadShowing"

View file

@ -28,7 +28,4 @@
}
}
}
.timeline {
min-height: 1em;
}
}

View file

@ -4,7 +4,7 @@
class="TimelineQuickSettings"
:bound-to="{ x: 'container' }"
>
<template #content>
<template v-slot:content>
<div class="dropdown-menu">
<div v-if="loggedIn">
<button
@ -80,7 +80,7 @@
</button>
</div>
</template>
<template #trigger>
<template v-slot:trigger>
<button class="button-unstyled">
<FAIcon icon="filter" />
</button>

View file

@ -9,12 +9,12 @@
@show="openMenu"
@close="() => isOpen = false"
>
<template #content>
<template v-slot:content>
<div class="timeline-menu-popover popover-default">
<TimelineMenuContent />
</div>
</template>
<template #trigger>
<template v-slot:trigger>
<button class="button-unstyled title timeline-menu-title">
<span class="timeline-title">{{ timelineName() }}</span>
<span>

View file

@ -62,6 +62,7 @@
:title="$t('nav.twkn_timeline_description')"
:aria-label="$t('nav.twkn_timeline_description')"
>{{ $t("nav.twkn") }}</span>
</router-link>
</li>
<li v-if="currentUser">

View file

@ -16,9 +16,9 @@
/>
</router-link>
<router-link
v-if="publicTimelineVisible"
:to="{ name: 'public-timeline' }"
class="nav-icon"
v-if="publicTimelineVisible"
>
<FAIcon
fixed-width
@ -40,9 +40,9 @@
/>
</router-link>
<router-link
v-if="federatedTimelineVisible"
:to="{ name: 'public-external-timeline' }"
class="nav-icon"
v-if="federatedTimelineVisible"
>
<FAIcon
fixed-width

View file

@ -66,7 +66,7 @@ export default {
return this.user.id !== this.$store.state.users.currentUser.id
},
subscribeUrl () {
// eslint-disable-next-line no-undef
const serverUrl = new URL(this.user.statusnet_profile_url)
return `${serverUrl.protocol}//${serverUrl.host}/main/ostatus`
},

View file

@ -4,10 +4,10 @@
placement="top"
:offset="{ y: 5 }"
>
<template #trigger>
<template v-slot:trigger>
<slot />
</template>
<template #content>
<template v-slot:content>
<div class="user-list-popover">
<template v-if="users.length">
<div

View file

@ -121,8 +121,8 @@
</FriendList>
</div>
<div
v-if="isUs"
key="tags"
v-if="isUs"
:label="$t('user_card.followed_tags')"
>
<FollowedTagList

View file

@ -1,7 +1,7 @@
<template>
<Modal
v-if="isOpen"
@backdrop-clicked="closeModal"
@backdropClicked="closeModal"
>
<div class="user-reporting-panel panel">
<div class="panel-heading">
@ -45,7 +45,7 @@
</div>
<div class="user-reporting-panel-right">
<List :items="statuses">
<template #item="{item}">
<template v-slot:item="{item}">
<div class="status-fadein user-reporting-panel-sitem">
<Status
:in-conversation="false"

View file

@ -84,7 +84,6 @@
"keep_open": "Mantindre el selector obert",
"load_all": "Carregant tots els {emojiAmount} emoji",
"load_all_hint": "Carregat el primer {saneAmount} emoji, carregar tots els emoji pot causar problemes de rendiment.",
"recent": "Recents",
"search_emoji": "Buscar un emoji",
"stickers": "Adhesius",
"unicode": "Emojis unicode"
@ -255,10 +254,6 @@
"hint": "Entra per a participar en la conversa",
"login": "Inicia sessió",
"logout": "Tanca la sessió",
"logout_confirm": "Segur que vols tancar la sessió?",
"logout_confirm_accept_button": "Surt",
"logout_confirm_cancel_button": "Canceŀla",
"logout_confirm_title": "Tanca la sessió",
"password": "Contrasenya",
"placeholder": "el meu nom d'usuari",
"recovery_code": "Codi de recuperació",
@ -271,32 +266,6 @@
"next": "Següent",
"previous": "Anterior"
},
"moderation": {
"moderation": "Moderació",
"reports": {
"add_note": "Afegeix una nota",
"close": "Tanca",
"delete_note": "Esborra la nota",
"delete_note_accept": "Sí, esborra-la",
"delete_note_cancel": "No, conserva-la",
"delete_note_confirm": "Segur que vols esborrar aquesta nota?",
"delete_note_title": "Cal confirmació",
"no_content": "Sense descripció",
"no_reports": "No hi ha informes per mostrar",
"note_placeholder": "Deixa una nota",
"notes": "{ count } nota | { count } notes",
"reopen": "Reobre",
"report": "Denuncia-ho",
"reports": "Denúncies",
"resolve": "Resol",
"show_closed": "Mostra les tancades",
"statuses": "{ count } post| { count } posts",
"tag_policy_notice": "Activa la restricció de publicacions segons la TagPolicy MRF",
"tags": "Estableix restriccions a les publicacions"
},
"statuses": "Publicacions",
"users": "Usuàries"
},
"nav": {
"about": "Quant a",
"administration": "Administració",
@ -313,7 +282,6 @@
"interactions": "Interaccions",
"lists": "Llistes",
"mentions": "Mencions",
"moderation": "Moderació",
"preferences": "Preferències",
"public_timeline_description": "Apunts públics des d'aquesta instància",
"public_tl": "Línia de temps Pública",
@ -407,12 +375,9 @@
"private": "Aquest apunt serà visible només per els teus seguidors",
"public": "Aquest apunt serà visible per a tothom",
"unlisted": "Aquest apunt no es veurà ni a la Línia de temps Pública ni a Tota la Xarxa Coneguda"
},
"toggle_content_warning": "Des/activa l'avís de contingut"
}
},
"registration": {
"awaiting_email_confirmation": "S'ha registrat el teu compte i s'ha enviat un correu a la teva adreça. Consulta el correu per completar el registre.",
"awaiting_email_confirmation_title": "Pendent de confirmar l'adreça de correu",
"bio": "Bio",
"bio_placeholder": "p.e.\nHola! Benvingut a la meva bio.\nM'encanta veure anime i jugar a jocs. Espero que podrem ser amics!",
"captcha": "CAPTCHA",
@ -426,8 +391,6 @@
"reason_placeholder": "Aquesta instància aprova els registres manualment.\nExplica a l'administració per què vols registrar-te.",
"register": "Registre",
"registration": "Registre",
"request_sent": "La teva soŀlicitud de registre s'ha enviat. Rebràs un correu quan sigui aprovada.",
"request_sent_title": "Soŀlicitud de registre",
"token": "Codi d'invitació",
"username_placeholder": "p. ex. akko",
"validations": {
@ -537,8 +500,6 @@
"enable_web_push_notifications": "Habilitar notificacions del navegador",
"enter_current_password_to_confirm": "Posa la teva contrasenya actual per a confirmar la teva identitat",
"expert_mode": "Mostra avançat",
"expire_posts_enabled": "Esborra les publicacions després d'un cert nombre de dies",
"expire_posts_input_placeholder": "Nombre de dies",
"export_theme": "Desa el tema",
"file_export_import": {
"backup_restore": "Còpia de seguretat de la configuració",
@ -680,7 +641,6 @@
"pad_emoji": "Acompanya els emojis amb espais al afegir-los des del selector",
"panelRadius": "Panells",
"pause_on_unfocused": "Pausa quan la pestanya perdi el focus",
"permit_followback_description": "Aprova automàticament les soŀlicituds de seguiment que vinguin d'usuàries que ja segueixes",
"play_videos_in_modal": "Reproduir vídeos en un marc emergent",
"post_look_feel": "Aspecte i Sensació dels apunts",
"post_status_content_type": "Tipus de contingut d'apunt predeterminat",
@ -749,7 +709,6 @@
"show_admin_badge": "Mostra l'insígnia \"Administrador\" en el meu perfil",
"show_moderator_badge": "Mostra l'insígnia \"Moderador\" en el meu perfil",
"show_nav_shortcuts": "Mostra els accessos directes addicionals en el panell superior",
"show_page_backgrounds": "Mostra fons de pantalla específics de pàgines, com en les pàgines de perfil d'usuari",
"show_panel_nav_shortcuts": "Mostra els accessos directes de navegació de la línia de temps en el panell superior",
"show_scrollbars": "Mostra les barres de desplaçament de la columna lateral",
"show_wider_shortcuts": "Mostra més separats els accessos directes del panell superior",
@ -925,13 +884,8 @@
"upload_a_photo": "Pujar una foto",
"useStreamingApi": "Rebre apunts i notificacions en temps real",
"useStreamingApiWarning": "És genial emprar-lo. Si es trenca, refresca, suposo?",
"use_blurhash": "Fes borroses les miniatures d'imatges NSFW",
"use_contain_fit": "No retallar els adjunts en miniatures",
"use_one_click_nsfw": "Obre els adjunts NSFW amb només un clic",
"user_accepts_direct_messages_from": "Accepta missatges directes de",
"user_accepts_direct_messages_from_everybody": "Qualsevol",
"user_accepts_direct_messages_from_nobody": "Ningú",
"user_accepts_direct_messages_from_people_i_follow": "Comptes que segueixo",
"user_mutes": "Usuaris",
"user_profile_default_tab": "Pestanya per defecte en el Perfil d'Usuari",
"user_profiles": "Perfils d'usuari",
@ -1054,7 +1008,6 @@
"collapse": "Replega",
"conversation": "Conversa",
"error": "Error carregant la línia de temps: {0}",
"follow_tag": "Segueix l'etiqueta",
"load_older": "Carrega apunts anteriors",
"no_more_statuses": "No hi ha més apunts",
"no_retweet_hint": "L'apunt és només per a seguidors o és \"directe\" i no es pot repetir o citar",
@ -1064,7 +1017,6 @@
"show_new": "Mostra els nous",
"socket_broke": "Connexió a temps real perduda: codi CloseEvent {0}",
"socket_reconnected": "Connexió a temps real establerta",
"unfollow_tag": "Deixa de seguir l'etiqueta",
"up_to_date": "Actualitzat"
},
"toast": {
@ -1129,7 +1081,6 @@
"block_confirm_title": "Bloqueja l'usuari",
"block_progress": "Bloquejant…",
"blocked": "Bloquejat!",
"blocks_you": "Et té bloquejadi!",
"bot": "Bot",
"deactivated": "Desactivat",
"deny": "Denega",
@ -1144,10 +1095,7 @@
"follow_cancel": "Cancel·la la sol·licitud",
"follow_progress": "Sol·licitant…",
"follow_sent": "Petició enviada!",
"follow_tag": "Segueix l'etiqueta",
"follow_unfollow": "Deixa de seguir",
"followed_tags": "Etiquetes que segueixes",
"followed_users": "Usuaris que segueixes",
"followees": "Seguint",
"followers": "Seguidors",
"following": "Seguint!",
@ -1172,14 +1120,12 @@
"mute_domain": "Bloqueja el domini",
"mute_progress": "Silenciant…",
"muted": "Silenciat",
"not_following_any_hashtags": "No estàs seguint cap etiqueta",
"note": "Nota privada",
"per_day": "per dia",
"remote_follow": "Seguiment remot",
"remove_follower": "Esborra seguidor",
"replies": "Amb respostes",
"report": "Informa",
"requested_by": "Et vol seguir",
"show_repeats": "Mostra les repeticions",
"statuses": "Apunts",
"subscribe": "Subscriu-te",
@ -1189,13 +1135,11 @@
"unfollow_confirm_accept_button": "Sí, deixa'l de seguir",
"unfollow_confirm_cancel_button": "No, no el deixis de seguir",
"unfollow_confirm_title": "Deixa de seguir l'usuari",
"unfollow_tag": "Deixa de seguir l'etiqueta",
"unmute": "Deixa de silenciar",
"unmute_progress": "Deixant de silenciar…",
"unsubscribe": "Anul·la la subscripció"
},
"user_profile": {
"field_validated": "Enllaç verificat",
"profile_does_not_exist": "Disculpes, aquest perfil no existeix.",
"profile_loading_error": "Disculpes, hi ha hagut un error carregant aquest perfil.",
"timeline_title": "Línia de temps del usuari"

View file

@ -16,23 +16,23 @@
"simple": {
"accept": "Accept",
"accept_desc": "This instance only accepts messages from the following instances:",
"ftl_removal": "Removal from \"Known Network\" Timeline",
"ftl_removal": "Hidden from \"Known Network\" timeline",
"ftl_removal_desc": "This instance removes these instances from \"Known Network\" timeline:",
"instance": "Instance",
"media_nsfw": "Media force-set as sensitive",
"media_nsfw_desc": "This instance forces media to be set sensitive in posts on the following instances:",
"media_removal": "Media Removal",
"media_removal": "No images/videos for these instances!",
"media_removal_desc": "This instance removes media from posts on the following instances:",
"not_applicable": "N/A",
"quarantine": "Quarantine",
"quarantine": "Sussy instances",
"quarantine_desc": "This instance will not send posts to the following instances:",
"reason": "Reason",
"reject": "Reject",
"reject": "Naughty list",
"reject_desc": "This instance will not accept messages from the following instances:",
"simple_policies": "Instance-specific policies"
}
},
"staff": "Staff"
"staff": "Nerds runnin' this place"
},
"announcements": {
"all_day_prompt": "This is an all-day event",
@ -46,7 +46,7 @@
"mark_as_read_action": "Mark as read",
"page_header": "Announcements",
"post_action": "Post",
"post_error": "Error: {error}",
"post_error": "Oopsie-whoopsie: {error}",
"post_form_header": "Post announcement",
"post_placeholder": "Announcement content",
"published_time_display": "Published at {time}",
@ -60,9 +60,9 @@
"delete": "Delete",
"delete_confirm": "Do you really want to delete this message?",
"empty_chat_list_placeholder": "You don't have any chats yet. Start a new chat!",
"empty_message_error": "Cannot post empty message",
"error_loading_chat": "Something went wrong when loading the chat.",
"error_sending_message": "Something went wrong when sending the message.",
"empty_message_error": "You... have to type a message, you know that right?",
"error_loading_chat": "Something went crazy wrong when loading the chat!",
"error_sending_message": "Something went crazy wrong when sending the message!",
"message_user": "Message {nickname}",
"more": "More",
"new": "New Chat",
@ -72,25 +72,25 @@
"today": "Today"
},
"domain_mute_card": {
"mute": "Mute",
"mute_progress": "Muting…",
"unmute": "Unmute",
"unmute_progress": "Unmuting…"
"mute": "Shut them up (Mute)",
"mute_progress": "SHUT YO' MOUTH!",
"unmute": "Allow them to talk (Unmute)",
"unmute_progress": "Taking tape off their mouth…"
},
"emoji": {
"add_emoji": "Insert emoji",
"custom": "Custom emoji",
"emoji": "Emoji",
"add_emoji": "Insert emojo",
"custom": "Custom emojo",
"emoji": "Emojo",
"keep_open": "Keep picker open",
"load_all": "Loading all {emojiAmount} emoji",
"load_all_hint": "Loaded first {saneAmount} emoji, loading all emoji may cause performance issues.",
"search_emoji": "Search for an emoji",
"load_all": "Loading all {emojiAmount} emojo",
"load_all_hint": "Loaded first {saneAmount} emojo, loading all emojo may cause performance issues.",
"search_emoji": "Search for an emojo",
"stickers": "Stickers",
"unicode": "Unicode emoji",
"unicode": "Unicode emojo",
"recent": "Recently used"
},
"errors": {
"storage_unavailable": "Pleroma could not access browser storage. Your login or your local settings won't be saved and you might encounter unexpected issues. Try enabling cookies."
"storage_unavailable": "Akkoma could not access browser storage. Your login or your local settings won't be saved and you might encounter unexpected issues. Try enabling cookies."
},
"exporter": {
"export": "Export",
@ -102,7 +102,7 @@
"text_limit": "Text limit",
"title": "Features",
"upload_limit": "Upload limit",
"who_to_follow": "Who to follow"
"who_to_follow": "Looking for nerds to follow?"
},
"file_type": {
"audio": "Audio",
@ -111,14 +111,14 @@
"video": "Video"
},
"finder": {
"error_fetching_user": "Error fetching user",
"error_fetching_user": "Uhhh, does this person even exist? Can't find them!",
"find_user": "Find user"
},
"general": {
"apply": "Apply",
"cancel": "Cancel",
"apply": "Save",
"cancel": "Uh. No?",
"close": "Close",
"confirm": "Confirm",
"confirm": "Aye!",
"disable": "Disable",
"dismiss": "Dismiss",
"enable": "Enable",
@ -127,14 +127,14 @@
"flash_fail": "Failed to load flash content, see console for details.",
"flash_security": "Note that this can be potentially dangerous since Flash content is still arbitrary code.",
"generic_error": "An error occured",
"loading": "Loading…",
"loading": "L O A D I N G!!!",
"more": "More",
"optional": "optional",
"peek": "Peek",
"retry": "Try again",
"role": {
"admin": "Admin",
"moderator": "Moderator"
"admin": "Head-nerd",
"moderator": "Lil' Nerd"
},
"scope_in_timeline": {
"direct": "Direct",
@ -145,7 +145,7 @@
},
"show_less": "Show less",
"show_more": "Show more",
"submit": "Submit",
"submit": "Post this!",
"verify": "Verify"
},
"image_cropper": {
@ -160,8 +160,8 @@
"success": "Imported successfully."
},
"interactions": {
"favs_repeats": "Repeats and favorites",
"follows": "New follows",
"favs_repeats": "Retoots and favorites",
"follows": "New nerds following you",
"load_older": "Load older interactions",
"moves": "User migrates"
},
@ -298,7 +298,7 @@
"users": "Users"
},
"nav": {
"about": "About",
"about": "What is this place?",
"administration": "Administration",
"announcements": "Announcements",
"back": "Back",
@ -309,7 +309,7 @@
"dms": "Direct messages",
"friend_requests": "Follow requests",
"home_timeline": "Home timeline",
"home_timeline_description": "Posts from people you follow",
"home_timeline_description": "Posts from the nerds you follow",
"interactions": "Interactions",
"lists": "Lists",
"mentions": "Mentions",
@ -321,24 +321,24 @@
"timeline": "Timeline",
"timelines": "Timelines",
"twkn": "Known Network",
"twkn_timeline_description": "Posts from the entire network",
"twkn_timeline_description": "Posts from all over the entire fediverse",
"user_search": "User Search",
"who_to_follow": "Who to follow"
"who_to_follow": "Looking for nerds to follow?"
},
"notifications": {
"broken_favorite": "Unknown post, searching for it…",
"error": "Error fetching notifications: {0}",
"favorited_you": "favorited your post",
"error": "Oopsie-whoopsie happened while fetching notifications: {0}",
"favorited_you": "liked your post",
"follow_request": "wants to follow you",
"followed_you": "followed you",
"followed_you": "now follows you!",
"load_older": "Load older notifications",
"migrated_to": "migrated to",
"migrated_to": "took their stuff and left to",
"no_more_notifications": "No more notifications",
"notifications": "Notifications",
"poll_ended": "poll has ended",
"reacted_with": "reacted with {0}",
"read": "Read!",
"repeated_you": "repeated your post"
"repeated_you": "retooted your post"
},
"password_reset": {
"check_email": "Check your email for a link to reset your password.",
@ -361,7 +361,7 @@
"multiple_choices": "Multiple choices",
"not_enough_options": "Too few unique options in poll",
"option": "Option",
"people_voted_count": "{count} person voted | {count} people voted",
"people_voted_count": "{count} person voted | {count} nerds voted",
"single_choice": "Single choice",
"type": "Poll type",
"vote": "Vote",
@ -379,9 +379,9 @@
"text/plain": "Plain text",
"text/x.misskeymarkdown": "MFM"
},
"content_warning": "Content Warning (optional)",
"content_warning": "CW: content warning (optional)",
"toggle_content_warning": "Toggle content warning",
"default": "Just arrived at Luna Nova Academy",
"default": "Postin' from the den! Yeehaw!",
"direct_warning_to_all": "This post will be visible to all the mentioned users.",
"direct_warning_to_first_only": "This post will only be visible to the mentioned users at the beginning of the message.",
"edit_remote_warning": "Changes made to the post may not be visible on some instances!",
@ -414,42 +414,42 @@
"awaiting_email_confirmation": "Your account has been registered and an email has been sent to your address. Please check the email to complete registration.",
"awaiting_email_confirmation_title": "Awaiting email confirmation",
"bio": "Bio",
"bio_placeholder": "e.g.\nHi! Welcome to my bio.\nI love watching anime and playing games. I hope we can be friends!",
"bio_placeholder": "e.g.\nAYO! Welcome to MTV Cribs\nAND WELCOME to my crib!",
"captcha": "CAPTCHA",
"email": "Email",
"email_language": "In which language do you want to receive emails from the server?",
"fullname": "Display name",
"fullname_placeholder": "e.g. Atsuko Kagari",
"fullname_placeholder": "e.g. Lebron James",
"new_captcha": "Click the image to get a new captcha",
"password_confirm": "Password confirmation",
"reason": "Reason to register",
"reason_placeholder": "This instance approves registrations manually.\nLet the administration know why you want to register.",
"reason_placeholder": "You will first need to pass the vibe check!\nLet the nerds running this place why you want to join!",
"register": "Register",
"registration": "Registration",
"request_sent": "Your registration request has been sent for approval. You will receive an email when your account is approved.",
"request_sent_title": "Registration request sent",
"token": "Invite token",
"username_placeholder": "e.g. akko",
"username_placeholder": "e.g. xXx_st1nky_BuTT_69_xXx",
"validations": {
"email_required": "cannot be left blank",
"fullname_required": "cannot be left blank",
"password_confirmation_match": "should be the same as password",
"password_confirmation_required": "cannot be left blank",
"password_required": "cannot be left blank",
"username_required": "cannot be left blank"
"email_required": "Please give us something to contact you by!",
"fullname_required": "I also would prefer to not be addressed, but here we are!",
"password_confirmation_match": "Dummy! These passwords should be the same!",
"password_confirmation_required": "You... need to repeat your password!",
"password_required": "right, you know how unsafe it is to not have a password?",
"username_required": "original! A blank username..."
}
},
"remote_user_resolver": {
"error": "Not found.",
"remote_user_resolver": "Remote user resolver",
"searching_for": "Searching for"
"error": "Nerd not found.",
"remote_user_resolver": "Remote nerd resolver",
"searching_for": "Searching for nerd"
},
"search": {
"hashtags": "Hashtags",
"hashtags": "Tashhags",
"no_results": "No results",
"people": "People",
"people_talking": "{count} people talking",
"person_talking": "{count} person talking"
"people": "Nerds",
"people_talking": "{count} nerds talking",
"person_talking": "{count} nerds talking"
},
"selectable_list": {
"select_all": "Select all"
@ -459,7 +459,7 @@
"account_alias": "Account aliases",
"account_alias_table_head": "Alias",
"account_backup": "Account backup",
"account_backup_description": "This allows you to download an archive of your account information and your posts, but they cannot yet be imported into a Pleroma account.",
"account_backup_description": "This allows you to download an archive of your account information and your posts, but they cannot yet be imported into a Akkoma account.",
"account_backup_table_head": "Backup",
"account_privacy": "Privacy",
"add_alias_error": "Error adding alias: {error}",
@ -533,7 +533,7 @@
"domain_mutes": "Domains",
"download_backup": "Download",
"email_language": "Language for receiving emails from the server",
"emoji_reactions_on_timeline": "Show emoji reactions on timeline",
"emoji_reactions_on_timeline": "Show emojo reactions on timeline",
"enable_web_push_notifications": "Enable web push notifications",
"enter_current_password_to_confirm": "Enter your current password to confirm your identity",
"expert_mode": "Show advanced",
@ -562,7 +562,7 @@
"foreground": "Foreground",
"fun": "Fun",
"general": "General",
"greentext": "Meme arrows",
"greentext": "Imageboard arrows (>this)",
"hide_all_muted_posts": "Hide muted posts",
"hide_attachments_in_convo": "Hide attachments in conversations",
"hide_attachments_in_tl": "Hide attachments in timeline",
@ -595,7 +595,7 @@
"instance_default_simple": "(default)",
"interface": "Interface",
"interfaceLanguage": "Interface language",
"invalid_theme_imported": "The selected file is not a supported Pleroma theme. No changes to your theme were made.",
"invalid_theme_imported": "The selected file is not a supported Akkoma/Pleroma theme. No changes to your theme were made.",
"limited_availability": "Unavailable in your browser",
"links": "Links",
"list_aliases_error": "Error fetching aliases: {error}",
@ -649,7 +649,7 @@
"mute_export_button": "Export your mutes to a csv file",
"mute_import": "Mute import",
"mute_import_error": "Error importing mutes",
"mutes_and_blocks": "Mutes and Blocks",
"mutes_and_blocks": "Mutes and blocks",
"mutes_imported": "Mutes imported! Processing them will take a while.",
"mutes_tab": "Mutes",
"name": "Name",
@ -674,17 +674,16 @@
"notification_visibility_mentions": "Mentions",
"notification_visibility_moves": "User Migrates",
"notification_visibility_polls": "Ends of polls you voted in",
"notification_visibility_repeats": "Repeats",
"notification_visibility_repeats": "Retoots",
"notifications": "Notifications",
"nsfw_clickthrough": "Hide sensitive/NSFW media",
"oauth_tokens": "OAuth tokens",
"pad_emoji": "Pad emoji with spaces when adding from picker",
"pad_emoji": "Pad emojo with spaces when adding from picker",
"panelRadius": "Panels",
"pause_on_unfocused": "Pause when tab is not focused",
"play_videos_in_modal": "Play videos in a popup frame",
"post_look_feel": "Posts Look & Feel",
"post_status_content_type": "Default post content type",
"post_language": "Default post language",
"posts": "Posts",
"preload_images": "Preload images",
"presets": "Presets",
@ -878,8 +877,8 @@
"clear_all": "Clear all",
"clear_opacity": "Clear opacity",
"help": {
"fe_downgraded": "PleromaFE's version rolled back.",
"fe_upgraded": "PleromaFE's theme engine upgraded after version update.",
"fe_downgraded": "HyNETSocFE's version rolled back.",
"fe_upgraded": "HyNETSocFE's theme engine upgraded after version update.",
"future_version_imported": "File you imported was made in newer version of FE.",
"migration_napshot_gone": "For whatever reason snapshot was missing, some stuff could look different than you remember.",
"migration_snapshot_ok": "Just to be safe, theme snapshot loaded. You can try loading theme data.",
@ -887,7 +886,7 @@
"snapshot_missing": "No theme snapshot was in the file so it could look different than originally envisioned.",
"snapshot_present": "Theme snapshot is loaded, so all values are overriden. You can load theme's actual data instead.",
"snapshot_source_mismatch": "Versions conflict: most likely FE was rolled back and updated again, if you changed theme using older version of FE you most likely want to use old version, otherwise use new version.",
"upgraded_from_v2": "PleromaFE has been upgraded, theme could look a little bit different than you remember.",
"upgraded_from_v2": "HyNETSocFE has been upgraded, theme could look a little bit different than you remember.",
"v2_imported": "File you imported was made for older FE. We try to maximize compatibility but there still could be inconsistencies."
},
"keep_as_is": "Keep as is",
@ -996,11 +995,11 @@
"redraft_confirm_cancel_button": "No, keep the original",
"redraft_confirm_title": "Confirm delete & redraft",
"remove_attachment": "Remove attachment",
"repeat_confirm": "Do you really want to repeat this post?",
"repeat_confirm_accept_button": "Yes, repeat it",
"repeat_confirm_cancel_button": "No, don't repeat",
"repeat_confirm_title": "Confirm repeat",
"repeats": "Repeats",
"repeat_confirm": "Do you really want to retoot this post?",
"repeat_confirm_accept_button": "Yes, retoot it",
"repeat_confirm_cancel_button": "No, don't retoot",
"repeat_confirm_title": "Confirm retoot",
"repeats": "Retoots",
"replies_list": "Replies:",
"replies_list_with_others": "View {numReplies} more reply | View {numReplies} more replies",
"reply_to": "Reply to",
@ -1032,7 +1031,7 @@
"time": {
"in_future": "in {0}",
"in_past": "{0} ago",
"now": "just now",
"now": "literally rn.",
"now_short": "now",
"unit": {
"days": "{0} day | {0} days",
@ -1058,10 +1057,10 @@
"follow_tag": "Follow hashtag",
"load_older": "Load older posts",
"no_more_statuses": "No more posts",
"no_retweet_hint": "Post is marked as followers-only or direct and cannot be repeated or quoted",
"no_retweet_hint": "Post is marked as followers-only or direct and cannot be retooted or quoted",
"no_statuses": "No posts",
"reload": "Reload",
"repeated": "repeated",
"repeated": "retooted",
"show_new": "Show new",
"socket_broke": "Realtime connection lost: CloseEvent code {0}",
"socket_reconnected": "Realtime connection established",
@ -1080,13 +1079,13 @@
"media_upload": "Upload media",
"quote": "Quote",
"reject_follow_request": "Reject follow request",
"repeat": "Repeat",
"repeat": "Retoot",
"reply": "Reply",
"user_settings": "User Settings"
},
"upload": {
"error": {
"base": "Upload failed.",
"base": "Upload failed. :(",
"default": "Try again later",
"file_too_big": "File too big [{filesize}{filesizeunit} / {allowedsize}{allowedsizeunit}]",
"message": "Upload failed: {0}"
@ -1096,7 +1095,7 @@
"GiB": "GiB",
"KiB": "KiB",
"MiB": "MiB",
"TiB": "TiB"
"TiB": "TIB (ok why.)"
}
},
"user_card": {
@ -1142,11 +1141,11 @@
"domain_muted": "Unblock domain",
"edit_profile": "Edit profile",
"favorites": "Favorites",
"follow": "Follow",
"follow": "Follow this nerd",
"follow_cancel": "Cancel request",
"follow_progress": "Requesting…",
"follow_sent": "Request sent!",
"follow_unfollow": "Unfollow",
"follow_unfollow": "Unfollow this jerk",
"followees": "Following",
"followers": "Followers",
"followed_tags": "Followed hashtags",
@ -1154,14 +1153,14 @@
"following": "Following!",
"follows_you": "Follows you!",
"hidden": "Hidden",
"hide_repeats": "Hide repeats",
"hide_repeats": "Hide retoots",
"highlight": {
"disabled": "No highlight",
"side": "Side stripe",
"solid": "Solid bg",
"striped": "Striped bg"
},
"its_you": "It's you!",
"its_you": "Despite everything, it's still you!",
"media": "Media",
"mention": "Mention",
"message": "Message",
@ -1175,12 +1174,12 @@
"muted": "Muted",
"note": "Private note",
"per_day": "per day",
"remote_follow": "Remote follow",
"remove_follower": "Remove follower",
"remote_follow": "Remote follow this nerd",
"remove_follower": "Remove this nerd",
"replies": "With Replies",
"report": "Report",
"report": "Report this jerk",
"requested_by": "Has requested to follow you",
"show_repeats": "Show repeats",
"show_repeats": "Show retoots",
"statuses": "Posts",
"subscribe": "Subscribe",
"unblock": "Unblock",
@ -1197,22 +1196,22 @@
"unsubscribe": "Unsubscribe"
},
"user_profile": {
"profile_does_not_exist": "Sorry, this profile does not exist.",
"profile_loading_error": "Sorry, there was an error loading this profile.",
"profile_does_not_exist": "Uhhh... The hell? This goes nowhere!",
"profile_loading_error": "This profile... Doesn't load? Alright???",
"timeline_title": "User timeline",
"field_validated": "Link Verified"
"field_validated": "Link-o Verified-o"
},
"user_reporting": {
"add_comment_description": "The report will be sent to your instance moderators. You can provide an explanation of why you are reporting this account below:",
"additional_comments": "Additional comments",
"forward_description": "The account is from another server. Send a copy of the report there as well?",
"forward_to": "Forward to {0}",
"generic_error": "An error occurred while processing your request.",
"submit": "Submit",
"generic_error": "An oopsie-whoopsie occurred while processing your request.",
"submit": "Send!",
"title": "Reporting {0}"
},
"who_to_follow": {
"more": "More",
"who_to_follow": "Who to follow"
"who_to_follow": "Looking for nerds to follow?"
}
}

View file

@ -303,7 +303,7 @@
"announcements": "Anuncios",
"back": "Volver",
"bookmarks": "Marcadores",
"bubble_timeline": "Línea temporal burbuja",
"bubble_timeline": "Linea temporal burbuja",
"bubble_timeline_description": "Publicaciones de instancias cercanas a la tuya, recomendadas por los/las administradores/as",
"chats": "Chats",
"dms": "Mensajes directos",

View file

@ -1174,7 +1174,7 @@
"note": "Prywatna notatka",
"per_day": "dziennie",
"remote_follow": "Zdalna obserwacja",
"remove_follower": "Usuń śledzenie",
"remove_follower": "Zdalny śledzący",
"replies": "Z odpowiedziami",
"report": "Zgłoś",
"requested_by": "Chce cię śledzić",

View file

@ -1,7 +1,5 @@
{
"about": {
"bubble_instances": "Instâncias Bubble Locais",
"bubble_instances_description": "Instâncias escolhidas pelos administradores para representar a área local dessa instância",
"mrf": {
"federation": "Federação",
"keyword": {
@ -25,7 +23,7 @@
"media_removal_desc": "Este domínio remove multimédia das publicações dos seguintes domínios:",
"not_applicable": "N/A",
"quarantine": "Quarentena",
"quarantine_desc": "Esta instância não irá enviar posts para as seguintes instâncias:",
"quarantine_desc": "Este domínio apenas irá publicar nos seguintes domínios:",
"reason": "Razão",
"reject": "Rejeitar",
"reject_desc": "Este domínio não aceitará mensagens dos seguintes domínios:",
@ -41,7 +39,26 @@
"delete_action": "Apagar",
"edit_action": "Editar",
"end_time_display": "Termina às {time}",
"end_time_prompt": "Tempo final: ",
"inactive_message": "Este anúncio está inativo",
"mark_as_read_action": "Marcar como lido",
"page_header": "Anúncios",
"post_action": "Publicar",
"post_error": "Erro: {error}",
"post_form_header": "Publicar anúncio",
"post_placeholder": "Conteúdo do anúncio",
"published_time_display": "Publicado às {time}",
"start_time_display": "Começa às {time}",
"start_time_prompt": "Hora de início: ",
"submit_edit_action": "Enviar",
"title": "Anúncio"
},
"announcements": {
"all_day_prompt": "Este evento dura o dia inteiro",
"cancel_edit_action": "Cancelar",
"close_error": "Fechar",
"delete_action": "Apagar",
"edit_action": "Editar",
"end_time_display": "Termina às {time}",
"inactive_message": "Este anúncio está inativo",
"mark_as_read_action": "Marcar como lido",
"page_header": "Anúncios",
@ -123,9 +140,6 @@
"dismiss": "Ignorar",
"enable": "Ativar",
"error_retry": "Por favor, tenta novamente",
"flash_content": "Clique para mostrar o conteúdo Flash usando Ruffle (Experimental, talvez não funcione).",
"flash_fail": "Falha ao carregar conteúdo flash, veja o console para detalhes.",
"flash_security": "Note que isso pode ser potencialmente perigoso dado que conteúdos Flash ainda são código arbitrário.",
"generic_error": "Ocorreu um erro",
"loading": "A carregar…",
"more": "Mais",
@ -136,13 +150,6 @@
"admin": "Admin",
"moderator": "Moderador"
},
"scope_in_timeline": {
"direct": "Direto",
"local": "Local - apenas a sua instância pode ver esse post",
"private": "Apenas para seguidores",
"public": "Público",
"unlisted": "Não-listado"
},
"show_less": "Mostrar menos",
"show_more": "Mostrar mais",
"submit": "Enviar",
@ -165,84 +172,6 @@
"load_older": "Carregar interações mais antigas",
"moves": "O utilizador migra"
},
"languages": {
"ar": "Árabe",
"az": "Azerbaijano",
"bg": "Búlgaro",
"cs": "Checo",
"da": "Dinamarquês",
"de": "Alemão",
"el": "Grego",
"en": "Inglês",
"eo": "Esperanto",
"es": "Espanhol",
"fa": "Persa",
"fi": "Finlandês",
"fr": "Francês",
"ga": "Irlandês",
"he": "Hebreu",
"hi": "Hindu",
"hu": "Húngaro",
"id": "Indonésio",
"it": "Italiano",
"ja": "Japonês",
"ko": "Coreano",
"lt": "Lituano",
"lv": "Letão",
"nl": "Holandês",
"pl": "Polonês",
"pt": "Português",
"ru": "Russo",
"sk": "Eslovaco",
"sv": "Sueco",
"tr": "Turco",
"translated_from": {
"ar": "Traduzido de @:languages.ar",
"az": "Traduzido de @:languages.az",
"bg": "Traduzido de @:languages.bg",
"cs": "Traduzido de @:languages.cs",
"da": "Traduzido de @:languages.da",
"de": "Traduzido de @:languages.de",
"el": "Traduzido de @:languages.el",
"en": "Traduzido de @:languages.en",
"eo": "Traduzido de @:languages.eo",
"es": "Traduzido de @:languages.es",
"fa": "Traduzido de @:languages.fa",
"fi": "Traduzido de @:languages.fi",
"fr": "Traduzido de @:languages.fr",
"ga": "Traduzido de @:languages.ga",
"he": "Traduzido de @:languages.he",
"hi": "Traduzido de @:languages.hi",
"hu": "Traduzido de @:languages.hu",
"id": "Traduzido de @:languages.id",
"it": "Traduzido de @:languages.it",
"ja": "Traduzido de @:languages.ja",
"ko": "Traduzido de @:languages.ko",
"lt": "Traduzido de @:languages.lt",
"lv": "Traduzido de @:languages.lv",
"nl": "Traduzido de @:languages.nl",
"pl": "Traduzido de @:languages.pl",
"pt": "Traduzido de @:languages.pt",
"ru": "Traduzido de @:languages.ru",
"sk": "Traduzido de @:languages.sk",
"sv": "Traduzido de @:languages.sv",
"tr": "Traduzido de @:languages.tr",
"uk": "Traduzido de @:languages.uk",
"zh": "Traduzido de @:languages.zh"
},
"uk": "Ucraniano",
"zh": "Chinês"
},
"lists": {
"create": "Criar",
"delete": "Apagar lista",
"following_only": "Limitar aos seguidores",
"lists": "Listas",
"new": "Nova Lista",
"save": "Salvar mudanças",
"search": "Procurar usuários",
"title": "Título da lista"
},
"login": {
"authentication_code": "Código de autenticação",
"description": "Iniciar sessão com OAuth",
@ -255,90 +184,48 @@
"hint": "Entra para participar na discussão",
"login": "Iniciar Sessão",
"logout": "Terminar sessão",
"logout_confirm": "Você tem certeza que deseja sair?",
"logout_confirm_accept_button": "Sair",
"logout_confirm_cancel_button": "Cancelar",
"logout_confirm_title": "Sair",
"password": "Palavra-passe",
"placeholder": "meunomedeusuario",
"placeholder": "ex. lain",
"recovery_code": "Código de recuperação",
"register": "Registrar",
"username": "Nome de Utilizador"
},
"media_modal": {
"counter": "{current} / {total}",
"hide": "Fechar visualizador de mídia",
"next": "Próximo",
"previous": "Anterior"
},
"moderation": {
"moderation": "Moderação",
"reports": {
"add_note": "Adicionar nota",
"close": "Fechar",
"delete_note": "Apagar",
"delete_note_accept": "Sim, apague isso",
"delete_note_cancel": "Não, mantenha isso",
"delete_note_confirm": "Você tem certeza que deseja apagar essa nota?",
"delete_note_title": "Confirmar exclusão",
"no_content": "Nenhuma descrição dada",
"no_reports": "Nenhum relatório a ser mostrado",
"note_placeholder": "Deixar uma nota",
"notes": "{ count } nota | {count } notas",
"reopen": "Reabrir",
"report": "Reportar",
"reports": "Relatórios",
"resolve": "Resolver",
"show_closed": "Mostrar fechadas",
"statuses": "{ count } publicação | { count } publicações",
"tag_policy_notice": "Ativar a TagPolicy MRF para ativar as restrições de publicação",
"tags": "Definir restrições de publicação"
},
"statuses": "Publicações",
"users": "Usuários"
},
"nav": {
"about": "Sobre",
"administration": "Administração",
"announcements": "Anúncios",
"back": "Voltar",
"bookmarks": "Itens Guardados",
"bubble_timeline": "Linha de tempo Bubble",
"bubble_timeline_description": "Publicações de instâncias perto da sua, como recomendado pelos administradores",
"chats": "Salas de Chat",
"dms": "Mensagens Diretas",
"friend_requests": "Pedidos de seguidores",
"home_timeline": "Linha de tempo pessoal",
"home_timeline_description": "Publicações de pessoas que você segue",
"interactions": "Interações",
"lists": "Listas",
"mentions": "Menções",
"moderation": "Moderação",
"preferences": "Preferências",
"public_timeline_description": "Publicações públicas dessa instância",
"public_tl": "Cronologia Pública",
"search": "Pesquisar",
"timeline": "Cronologia",
"timelines": "Cronologias",
"twkn": "Rede conhecida",
"twkn_timeline_description": "Publicações de toda a rede",
"user_search": "Pesquisa por Utilizadores",
"who_to_follow": "Quem seguir"
},
"notifications": {
"broken_favorite": "Publicação desconhecida, procurando por isso…",
"broken_favorite": "Publicação desconhecida, a procurar…",
"error": "Erro ao obter notificações: {0}",
"favorited_you": "favoritou sua publicação",
"favorited_you": "gostou do teu post",
"follow_request": "quer seguir-te",
"followed_you": "seguiu-te",
"load_older": "Carregar notificações antigas",
"migrated_to": "migrou para",
"no_more_notifications": "Sem mais notificações",
"notifications": "Notificações",
"poll_ended": "enquete foi finalizada",
"reacted_with": "reagiu com {0}",
"read": "Lido!",
"repeated_you": "repostou a sua publicação"
"repeated_you": "partilhou o teu post"
},
"password_reset": {
"check_email": "Verifica o teu endereço de e-mail para obter um link para repor a tua palavra-passe.",
@ -361,12 +248,10 @@
"multiple_choices": "Escolha múltipla",
"not_enough_options": "Demasiado poucas opções únicas na sondagem",
"option": "Opção",
"people_voted_count": "{count} pessoa votou | {count} pessoas votaram",
"single_choice": "Escolha única",
"type": "Tipo de sondagem",
"vote": "Vota",
"votes": "votos",
"votes_count": "{count} voto | {count} votos"
"votes": "votos"
},
"post_status": {
"account_not_locked_warning": "A sua conta não é {0}. Qualquer pessoa pode seguir-te e ver os seus posts privados (só para seguidores).",
@ -376,60 +261,43 @@
"text/bbcode": "BBCode",
"text/html": "HTML",
"text/markdown": "Remarcação",
"text/plain": "Texto puro",
"text/x.misskeymarkdown": "MFM"
"text/plain": "Texto puro"
},
"content_warning": "Aviso de Conteúdo (opcional)",
"content_warning": "Assunto (opcional)",
"default": "Acabei de chegar em",
"direct_warning_to_all": "Esta publicação será visível para todos os utilizadores mencionados.",
"direct_warning_to_first_only": "Esta publicação só será visível para os utilizadores mencionados no início da mensagem.",
"edit_remote_warning": "Mudanças feitas na publicação talvez não sejam visíveis em algumas instâncias!",
"edit_status": "Editar Status",
"edit_unsupported_warning": "Enquetes e menções não mudarão ao editar.",
"empty_status_error": "Não pode enviar uma publicação sem conteúdo ou arquivos",
"empty_status_error": "Não consegues publicar um post vazio e sem ficheiros",
"media_description": "Descrição da multimédia",
"media_description_error": "Falha ao atualizar ficheiro, tente novamente",
"media_not_sensitive_warning": "Você tem um Aviso de Conteúdo, mas os anexos não estão marcados como sensíveis!",
"new_status": "Nova publicação",
"post": "Publicação",
"new_status": "Publicar nova publicação",
"posting": "A publicar",
"preview": "Pré-visualização",
"preview_empty": "Vazio",
"scope": {
"direct": "Direto - Enviar somente aos usuários mencionados",
"local": "Local - não federar essa publicação",
"private": "Apenas para seguidores - Enviar apenas para seguidores",
"public": "Público - Publicar em cronologias públicas",
"unlisted": "Não listado - Não exibir em cronologias públicas"
},
"scope_notice": {
"local": "Essa publicação não estará visível em outras instâncias",
"private": "Esta publicação será apenas visível para os teus seguidores",
"public": "Esta publicação será visível para todos",
"unlisted": "Esta publicação não será visível na Cronologia pública e na Rede conhecida por todos"
},
"toggle_content_warning": "Alternar aviso de conteúdo"
}
},
"registration": {
"awaiting_email_confirmation": "Sua conta foi registrada e um email foi enviado para o seu endereço. Por favor, verifique o email para completar o registro.",
"awaiting_email_confirmation_title": "Aguardando confirmação de email",
"bio": "Biografia",
"bio_placeholder": "Ex.:\nBem-vindo a minha bio.\nEu amo assistir anime e jogar. Eu espero que possamos ser amigos!",
"captcha": "CAPTCHA",
"email": "Endereço de e-mail",
"email_language": "Em qual linguagem você quer receber os emails do servidor?",
"fullname": "Nome para exibição",
"fullname_placeholder": "ex. Atsuko Kagari",
"fullname_placeholder": "ex. Lain Iwakura",
"new_captcha": "Clique na imagem para carregar um novo captcha",
"password_confirm": "Confirmação de palavra-passe",
"reason": "Razão do registro",
"reason_placeholder": "Essa instância aprova os registros manualmente\nPermita ao administrador saber porque você deseja se registrar.",
"register": "Registrar",
"registration": "Registo",
"request_sent": "Seu pedido de registro foi enviado para aprovação. Você irá receber um email quando a sua conta for aprovada.",
"request_sent_title": "Pedido de registro enviado",
"token": "Código do convite",
"username_placeholder": "ex. akko",
"username_placeholder": "ex. lain",
"validations": {
"email_required": "não pode ser deixado em branco",
"fullname_required": "não pode ser deixado em branco",
@ -456,19 +324,7 @@
},
"settings": {
"accent": "Destaque",
"account_alias": "Apelidos de conta",
"account_alias_table_head": "Apelido",
"account_backup": "Backup de conta",
"account_backup_description": "Isso permite a você baixar um arquivo das informações da sua conta e as suas publicações, mas eles ainda não podem ser importados para uma conta do Akkoma.",
"account_backup_table_head": "Backup",
"account_privacy": "Privacidade",
"add_alias_error": "Erro ao adicionar apelido: {error}",
"add_backup": "Criar novo backup",
"add_backup_error": "Erro ao adicionar um novo backup: {error}",
"added_alias": "Apelido foi adicionado.",
"added_backup": "Adicionou um novo backup.",
"allow_following_move": "Permitir seguimento automático quando a conta for migrada para outra instância",
"always_show_post_button": "Sempre mostrar o botão flutuante de Nova Publicação",
"app_name": "Nome da aplicação",
"attachmentRadius": "Anexos",
"attachments": "Anexos",
@ -478,7 +334,6 @@
"avatarRadius": "Avatares",
"avatar_size_instruction": "O tamanho mínimo recomendado para imagens de avatar é 150x150 pixels.",
"background": "Imagem de Fundo",
"backup_not_ready": "Esse backup não está pronto ainda.",
"bio": "Biografia",
"block_export": "Exportar utilizadores bloqueados",
"block_export_button": "Exporta a tua lista de utilizadores bloqueados para um ficheiro csv",
@ -500,27 +355,10 @@
"changed_password": "Palavra-passe modificada com sucesso!",
"chatMessageRadius": "Mensagem de texto",
"checkboxRadius": "Caixas de seleção",
"collapse_subject": "Colapsar publicações com aviso de conteúdo",
"columns": "Colunas",
"collapse_subject": "Esconder posts com assunto",
"composing": "Escrita",
"confirm_dialogs": "Necessita de confirmação para:",
"confirm_dialogs_approve_follow": "Aceitar um pedido para seguir",
"confirm_dialogs_block": "Bloqueando alguém",
"confirm_dialogs_delete": "Apagar um post",
"confirm_dialogs_deny_follow": "Rejeitando um pedido de seguir",
"confirm_dialogs_mute": "Silenciando alguém",
"confirm_dialogs_repeat": "Repetindo um post",
"confirm_dialogs_unfollow": "Deixando de seguir alguém",
"confirm_new_password": "Confirmar nova palavra-passe",
"confirmation_dialogs": "Opções de confirmação",
"conversation_display": "Estilo de mostrador de conversa",
"conversation_display_linear": "Estilo-linear",
"conversation_display_tree": "Estilo em árvore",
"conversation_other_replies_button": "Mostrar o botão de \"outras respostas\"",
"conversation_other_replies_button_below": "Abaixo das publicações",
"conversation_other_replies_button_inside": "Dentro das publicações",
"current_avatar": "Seu avatar atual",
"current_mascot": "Seu mascote atual",
"current_password": "Palavra-passe atual",
"data_import_export_tab": "Importação/exportação de dados",
"default_vis": "Opção de privacidade padrão",
@ -528,32 +366,14 @@
"delete_account_description": "Apagar os seus dados permanentemente e desativar a sua conta.",
"delete_account_error": "Ocorreu um erro ao remover a sua conta. Se este persistir, por favor entre em contato com o/a administrador/a da instância.",
"delete_account_instructions": "Escreva a sua palavra-passe no campo abaixo para confirmar a remoção da conta.",
"disable_sticky_headers": "Não fixe o cabeçalho das colunas no topo da tela",
"discoverable": "Permitir a descoberta desta conta em resultados de busca e outros serviços",
"domain_mutes": "Domínios",
"download_backup": "Baixar",
"email_language": "Idioma para receber emails do servidor",
"emoji_reactions_on_timeline": "Mostrar reações de emoji na timeline",
"enable_web_push_notifications": "Habilitar notificações web push",
"enter_current_password_to_confirm": "Introduza a sua palavra-passe atual para confirmar a sua identidade",
"expert_mode": "Mostrar avançado",
"expire_posts_enabled": "Apagar publicações depois de certos dias",
"expire_posts_input_placeholder": "Número de dias",
"export_theme": "Guardar predefinições",
"file_export_import": {
"backup_restore": "Backup de configurações",
"backup_settings": "Fazer backup das configurações para um arquivo",
"backup_settings_theme": "Fazer backup das configurações e do tema em um arquivo",
"errors": {
"file_slightly_new": "A versão secundária do arquivo é diferente, algumas configurações podem não carregar",
"file_too_new": "Versão principal incompatível: {fileMajor}, esse PleromaFE (versão {feMajor}) é muito antigo para manipulá-lo",
"file_too_old": "Versão principal incompatível: {fileMajor}, a versão do arquivo é muito antiga e não é suportada (versão mínima {feMajor})",
"invalid_file": "O arquivo selecionado não é um arquivo de backup de configurações suportado pelo Pleroma. Nenhuma mudança foi feita."
},
"restore_settings": "Restaurar configurações de um arquivo"
},
"filtering": "Filtragem",
"filtering_explanation": "Todas as publicações que contenham estas palavras serão silenciadas, uma por linha",
"filtering_explanation": "Todas as publicações que contenham estas palavras serão silenciadas; uma palavra por linha",
"follow_export": "Exportar quem você segue",
"follow_export_button": "Exportar quem você segue para um arquivo CSV",
"follow_import": "Importar quem você segue",
@ -563,29 +383,18 @@
"fun": "Divertido",
"general": "Geral",
"greentext": "Texto verde (meme arrows)",
"hide_all_muted_posts": "Ocultar publicações silenciadas",
"hide_attachments_in_convo": "Ocultar anexos em conversas",
"hide_attachments_in_tl": "Ocultar anexos na cronologia",
"hide_bot_indication": "Ocultar indicador de bots na publicação",
"hide_favorites_description": "Não mostrar a lista dos meus favoritos (as pessoas ainda serão notificadas)",
"hide_filtered_statuses": "Esconder posts filtrados",
"hide_followers_count_description": "Não mostrar o número de seguidores",
"hide_followers_description": "Não mostrar quem me segue",
"hide_follows_count_description": "Não mostrar o número de contas seguidas",
"hide_follows_description": "Não mostrar quem estou seguindo",
"hide_isp": "Esconder painel específico da instância",
"hide_list_aliases_error_action": "Fechar",
"hide_media_previews": "Ocultar pré-visualização de mídia",
"hide_muted_posts": "Esconder posts de utilizadores silenciados",
"hide_muted_threads": "Ocultar fios silenciados",
"hide_post_stats": "Esconder estatísticas de posts (p. ex. número de favoritos)",
"hide_shoutbox": "Ocultar instâncias do shoutbox",
"hide_site_favicon": "Ocultar o favicon da instância no painel de topo",
"hide_site_name": "Ocultar nome da instância no painel de topo",
"hide_threads_with_blocked_users": "Ocultar fios mencionando usuários bloqueados",
"hide_user_stats": "Esconder estatísticas do usuário (p. ex. número de seguidores)",
"hide_wallpaper": "Esconder papel de parede da instância",
"hide_wordfiltered_statuses": "Ocultar publicações com palavras-filtradas",
"import_blocks_from_a_csv_file": "Importar bloqueados a partir de um arquivo CSV",
"import_followers_from_a_csv_file": "Importe seguidores a partir de um arquivo CSV",
"import_mutes_from_a_csv_file": "Importar silenciados de um ficheiro csv",
@ -598,23 +407,10 @@
"invalid_theme_imported": "O arquivo selecionado não é um tema compatível com o Pleroma. Nenhuma mudança no tema foi feita.",
"limited_availability": "Indisponível para seu navegador",
"links": "Links",
"list_aliases_error": "Erro ao buscar por apelido: {error}",
"list_backups_error": "Erro ao buscar por lista de backup: {error}",
"lock_account_description": "Restringir sua conta a seguidores aprovados",
"loop_video": "Repetir vídeos",
"loop_video_silent_only": "Repetir apenas vídeos sem som (como os \"gifs\" do Mastodon)",
"mascot": "Mascote do Mastodon FE",
"max_depth_in_thread": "Número máximo de níveis de um fio a serem mostrados por padrão",
"max_thumbnails": "Número máximo de miniaturas por post",
"mention_link_bolden_you": "Destaque suas menções quando você for mencionado",
"mention_link_display": "Mostre o link das menções",
"mention_link_display_full": "sempre como nomes completos (ex: {'@'}foo{'@'}example.org)",
"mention_link_display_full_for_remote": "como nomes completos para usuários remotos (ex: {'@'}foo{'@'}example.org)",
"mention_link_display_short": "sempre como nomes curtos (ex: {'@'}foo)",
"mention_link_fade_domain": "Renomear domínios (ex: {'@'}example.org em {'@'}foo{'@'}example.org)",
"mention_link_show_avatar": "Mostrar o avatar do usuário ao lado do link",
"mention_link_show_tooltip": "Mostrar o nome completo dos usuários como dica aos usuários remotos",
"mention_links": "Links de menções",
"mfa": {
"authentication_methods": "Métodos de autenticação",
"confirm_and_enable": "Confirmar e ativar a palavra-passe de utilização única",
@ -637,13 +433,6 @@
"warning_of_generate_new_codes": "Quando gera novos códigos de recuperação, os antigos deixam de funcionar."
},
"minimal_scopes_mode": "Minimizar as opções de publicação",
"more_settings": "Mais configurações",
"move_account": "Mover conta",
"move_account_error": "Erro ao mover conta: {error}",
"move_account_notes": "Se você deseja mover a sua conta para outro lugar, você deve ir à sua conta alvo e adicionar um apelido apontando para cá.",
"move_account_target": "Conta alvo (ex:. {example})",
"moved_account": "Conta foi movida.",
"mute_bot_posts": "Silenciar publicações de bots",
"mute_export": "Exportar silenciados",
"mute_export_button": "Exporta os silenciados para um ficheiro csv",
"mute_import": "Importar silenciados",
@ -653,7 +442,6 @@
"mutes_tab": "Silenciados",
"name": "Nome",
"name_bio": "Nome & Biografia",
"new_alias_target": "Adicionar um novo apelido (ex: {example})",
"new_email": "Novo endereço de e-mail",
"new_password": "Nova palavra-passe",
"no_blocks": "Sem bloqueios",
@ -663,7 +451,6 @@
"notification_mutes": "Para deixar de receber notificações de um utilizador específico, silencia-o.",
"notification_setting_block_from_strangers": "Bloqueia as notificações de utilizadores que não segues",
"notification_setting_filters": "Filtros",
"notification_setting_hide_if_cw": "Ocultar o conteúdo de uma notificação de push se estiver sob um Aviso de Conteúdo",
"notification_setting_hide_notification_contents": "Ocultar o remetente e o conteúdo das notificações push",
"notification_setting_privacy": "Privacidade",
"notification_visibility": "Tipos de notificação para mostrar",
@ -672,7 +459,6 @@
"notification_visibility_likes": "Favoritos",
"notification_visibility_mentions": "Menções",
"notification_visibility_moves": "Utilizador Migrado",
"notification_visibility_polls": "Finais de enquetes nas quais você votou",
"notification_visibility_repeats": "Partilhas",
"notifications": "Notificações",
"nsfw_clickthrough": "Ativar clique em anexos e pré-visualizações de links para ocultar anexos NSFW",
@ -680,11 +466,8 @@
"pad_emoji": "Preencher espaços ao adicionar emojis do seletor",
"panelRadius": "Paineis",
"pause_on_unfocused": "Parar transmissão quando a aba não estiver em primeiro plano",
"permit_followback_description": "Automaticamente aprove pedidos de usuários já seguidos",
"play_videos_in_modal": "Reproduzir vídeos diretamente no visualizador de multimédia",
"post_look_feel": "Aspecto das publicações",
"post_status_content_type": "Formato padrão da publicações",
"posts": "Publicações",
"post_status_content_type": "Tipo de conteúdo do status",
"preload_images": "Pré-carregar imagens",
"presets": "Predefinições",
"profile_background": "Pano de fundo de perfil",
@ -698,16 +481,10 @@
"profile_tab": "Perfil",
"radii_help": "Arredondar arestas da interface (em pixel)",
"refresh_token": "Atualizar Token",
"remove_alias": "Remover esse apelido",
"remove_backup": "Remover",
"render_mfm": "Renderizar Misskey do Markdown",
"render_mfm_on_hover": "Pausar animações MFM enquanto se rola a publicação",
"replies_in_timeline": "Respostas na cronologia",
"reply_visibility_all": "Mostrar todas as respostas",
"reply_visibility_following": "Só mostrar respostas direcionadas a mim ou a usuários que sigo",
"reply_visibility_following_short": "Mostrar respostas aos meus seguidores",
"reply_visibility_self": "Só mostrar respostas direcionadas a mim",
"reply_visibility_self_short": "Mostrar respostas apenas pra mim",
"reset_avatar": "Redefinir avatar",
"reset_avatar_confirm": "Tens a certeza que desejas redefinir o avatar?",
"reset_background_confirm": "Tens a certeza que desejas redefinir o fundo?",
@ -715,8 +492,6 @@
"reset_profile_background": "Redefinir fundo de perfil",
"reset_profile_banner": "Redefinir imagem do cabeçalho do perfil",
"revoke_token": "Revogar",
"right_sidebar": "Reverter a ordem das colunas",
"save": "Salvas mudanças",
"saving_err": "Erro ao salvar configurações",
"saving_ok": "Configurações salvas",
"scope_copy": "Copiar opções de privacidade ao responder (Mensagens diretas sempre copiam)",
@ -724,36 +499,12 @@
"search_user_to_mute": "Pesquisar utilizadores que pretende silenciar",
"security": "Segurança",
"security_tab": "Segurança",
"sensitive_by_default": "Marcas as publicações como sensíveis por padrão",
"sensitive_if_subject": "Automaticamente marque as imagens como sensíveis se um aviso de conteúdo é especificado",
"set_new_avatar": "Alterar avatar",
"set_new_mascot": "Definir novo mascote",
"set_new_profile_background": "Alterar o pano de fundo de perfil",
"set_new_profile_banner": "Alterar capa de perfil",
"setting_changed": "As configurações estão diferentes do padrão",
"setting_server_side": "Essas configurações estão vinculadas ao seu perfil e afetarão todas as sessões e clientes",
"settings": "Configurações",
"settings_profile": "Perfis de Configurações",
"settings_profile_creation": "Criar novo perfil",
"settings_profile_creation_new_name_label": "Nome",
"settings_profile_creation_submit": "Criar",
"settings_profile_currently": "Atualmente usando {name} (versão: {version})",
"settings_profile_delete": "Apagar",
"settings_profile_delete_confirm": "Você realmente quer apagar esse perfil?",
"settings_profile_force_sync": "Sincronizar",
"settings_profile_in_use": "Em uso",
"settings_profile_use": "Usar",
"settings_profiles_refresh": "Recarregar perfis de configuração",
"settings_profiles_show": "Mostrar todos os perfis de configuração",
"settings_profiles_unshow": "Esconder todos os perfis de configuração",
"show_admin_badge": "Mostrar título de Administrador em meu perfil",
"show_moderator_badge": "Mostrar título de Moderador em meu perfil",
"show_nav_shortcuts": "Mostrar atalhos de navegação extras no painel de topo",
"show_page_backgrounds": "Mostrar imagens de fundo específicas por página, por exemplo: para perfis de usuários",
"show_panel_nav_shortcuts": "Mostrar atalhos de navegação da linha do tempo no painel de topo",
"show_scrollbars": "Mostrar barras de rolamento na coluna lateral",
"show_wider_shortcuts": "Mostrar espaçamento mais largo entre atalhos no painel de topo",
"show_yous": "Mostrar (seu)s",
"stop_gifs": "Reproduzir GIFs ao passar o cursor",
"streaming": "Habilitar o fluxo automático de postagens no topo da página",
"style": {
@ -902,9 +653,9 @@
"use_source": "Nova versão"
}
},
"subject_input_always_show": "Sempre mostrar o campo de alerta de conteúdo",
"subject_line_behavior": "Copiar o aviso de conteúdo ao responder",
"subject_line_email": "Como email: \"re: aviso\"",
"subject_input_always_show": "Sempre mostrar campo de assunto",
"subject_line_behavior": "Copiar assunto ao responder",
"subject_line_email": "Como num e-mail: \"re: assunto\"",
"subject_line_mastodon": "Como o Mastodon: copiar como está",
"subject_line_noop": "Não copiar",
"text": "Texto",
@ -912,29 +663,15 @@
"theme_help": "Use cores em código hexadecimal (#rrggbb) para personalizar seu esquema de cores.",
"theme_help_v2_1": "Você também pode sobrescrever as cores e opacidade de alguns componentes ao modificar o checkbox, use \"Limpar todos\" para limpar todas as modificações.",
"theme_help_v2_2": "Alguns ícones em registo são indicadores de fundo/contraste de textos, passe por cima para obter informações detalhadas. Tenha em atenção que os indicadores de contraste não funcionam muito bem com transparência.",
"third_column_mode": "Quando há espaço suficiente, mostrar a terceira coluna",
"third_column_mode_none": "Não mostre a terceira coluna de forma alguma",
"third_column_mode_notifications": "Coluna de notificações",
"third_column_mode_postform": "Formulário principal para publicações e navegação",
"token": "Token",
"tooltipRadius": "Dicas/alertas",
"translation_language": "Linguagem Automática para Tradução",
"tree_advanced": "Mostrar botões extras para abrir e fechar cadeias de respostas em fios",
"tree_fade_ancestors": "Mostrar ancestrais da publicação atual em texto fraco",
"type_domains_to_mute": "Pesquisar domínios para silenciar",
"upload_a_photo": "Enviar uma foto",
"useStreamingApi": "Receber publicações e notificações em tempo real",
"useStreamingApiWarning": "É legal usar isso. Se der algum problema, atualize, eu acho?",
"use_blurhash": "Usar miniaturas borradas para imagens NSFW",
"use_contain_fit": "Não cortar o anexo na miniatura",
"use_one_click_nsfw": "Abrir anexos sensíveis com um clique",
"user_accepts_direct_messages_from": "Aceitar DMs De",
"user_accepts_direct_messages_from_everybody": "Todos",
"user_accepts_direct_messages_from_nobody": "Ninguém",
"user_accepts_direct_messages_from_people_i_follow": "Pessoas que eu sigo",
"user_mutes": "Utilizadores",
"user_profile_default_tab": "Aba Padrão no Perfil de Usuário",
"user_profiles": "Perfis de Usuários",
"user_settings": "Configurações de Usuário",
"valid_until": "Válido até",
"values": {
@ -946,87 +683,34 @@
"frontend_version": "Versão do Frontend",
"title": "Versão"
},
"virtual_scrolling": "Otimizar a apresentação da cronologia",
"word_filter": "Filtro de palavras",
"wordfilter": "Filtro de palavras"
},
"settings_profile": {
"creating": "Criando novo perfil de configurações \"{profile}\"...",
"synchronization_error": "Não foi possível sincronizar as configurações : {err}",
"synchronized": "Configurações sincronizadas!",
"synchronizing": "Sincronizando perfil de configurações \"{profile}\"..."
"virtual_scrolling": "Otimizar a apresentação da cronologia"
},
"status": {
"ancestor_follow": "Veja mais {numReplies} outra resposta abaixo dessa publicação | Veja mais {numReplies} outras respostas abaixo dessa publicação",
"ancestor_follow_with_icon": "{icon} {text}",
"attachment_stop_flash": "Parar Flash Player",
"bookmark": "Guardar",
"collapse_attachments": "Colapsar anexos",
"copy_link": "Copiar link para publicação",
"delete": "Apagar publicação",
"delete_confirm": "Você realmente deseja apagar essa publicação?",
"delete_confirm_accept_button": "Sim, apague-a",
"delete_confirm_cancel_button": "Não, mantenha-a",
"delete_confirm_title": "Confirmar exclusão",
"edit": "Editar",
"edit_history": "Editar Histórico",
"edit_history_modal_title": "Editado {historyCount} vez | Editado {historyCount} vezes",
"edited_at": "Editado {time}",
"copy_link": "Copiar o link do post",
"delete": "Eliminar publicação",
"delete_confirm": "Tens a certeza que desejas apagar a publicação?",
"expand": "Expandir",
"external_source": "Fonte externa",
"favorites": "Favoritos",
"hide_attachment": "Esconder anexo",
"hide_content": "Ocultar o conteúdo",
"hide_full_subject": "Ocultar todo o aviso de conteúdo",
"many_attachments": "A publicação tem {number} anexo | A publicação tem {number} anexos",
"mentions": "Menções",
"move_down": "Deslocar anexo à direita",
"move_up": "Deslocar anexo à esquerda",
"hide_full_subject": "Ocultar o assunto completo",
"mute_conversation": "Silenciar a conversação",
"nsfw": "NSFW (Não apropriado para trabalho)",
"open_gallery": "Abrir galeria",
"override_translation_source_language": "Sobrepor a língua de origem",
"pin": "Fixar no perfil",
"pinned": "Afixado",
"plus_more": "+{number} mais",
"redraft": "Apagar & Reformar",
"redraft_confirm": "Você realmente deseja apagar e refazer essa publicação? Interações com a publicação original não serão preservadas.",
"redraft_confirm_accept_button": "Sim, apague e reformule",
"redraft_confirm_cancel_button": "Não, mantenha o original",
"redraft_confirm_title": "Confirmar exclusão & refatoração",
"remove_attachment": "Remover anexo",
"repeat_confirm": "Você realmente deseja repetir essa publicação?",
"repeat_confirm_accept_button": "Sim, repita-a",
"repeat_confirm_cancel_button": "Não, não repita",
"repeat_confirm_title": "Confirmar repetição",
"repeats": "Partilhados",
"replies_list": "Respostas:",
"replies_list_with_others": "Ver mais {numReplies} resposta | Veja mais {numReplies} respostas",
"reply_to": "Responder a",
"show_all_attachments": "Mostrar todos os anexos",
"show_all_conversation": "Mostrar toda a conversa ({numStatus} outra publicação) | Mostrar toda a conversa ({numStatus} outras publicações)",
"show_all_conversation_with_icon": "{icon} {text}",
"show_attachment_description": "Prever a descrição (abra o anexo para a descrição completa)",
"show_attachment_in_modal": "Mostrar anexos em uma janela",
"show_content": "Mostrar o conteúdo",
"show_full_subject": "Mostra todo o aviso de conteúdo",
"show_only_conversation_under_this": "Mostrar apenas as respostas para essa publicação",
"show_full_subject": "Mostrar o assunto completo",
"status_deleted": "Esta publicação foi apagada",
"status_unavailable": "Publicação indisponível",
"thread_follow": "Ver mais {numStatus} resposta | Ver mais {numStatus} respostas",
"thread_follow_with_icon": "{icon} {text}",
"thread_hide": "Esconder esse fio",
"thread_muted": "Conversação silenciada",
"thread_muted_and_words": ", contém:",
"thread_show": "Mostrar esse fio",
"thread_show_full": "Mostrar {numStatus} resposta | Mostrar todas as {numStatus} respostas",
"thread_show_full_with_icon": "{icon} {text}",
"translate": "Traduzir",
"translated_from": "Traduzir de {language}",
"unbookmark": "Remover post dos Items Guardados",
"unmute_conversation": "Mostrar a conversação",
"unpin": "Desafixar do perfil",
"you": "(Você)"
"unpin": "Desafixar do perfil"
},
"time": {
"in_future": "em {0}",
@ -1054,29 +738,21 @@
"collapse": "Esconder",
"conversation": "Conversa",
"error": "Erro a obter a cronologia: {0}",
"follow_tag": "Seguir hashtag",
"load_older": "Carregar publicações antigas",
"load_older": "Carregar postagens antigas",
"no_more_statuses": "Sem mais posts",
"no_retweet_hint": "Posts apenas para seguidores ou diretos não podem ser partilhados",
"no_statuses": "Sem publicações",
"no_statuses": "Sem posts",
"reload": "Recarregar",
"repeated": "partilhado",
"show_new": "Mostrar novas",
"socket_broke": "Conexão em tempo real perdida : CloseEvent código {0}",
"socket_reconnected": "Conexão em tempo-real estabelecida",
"unfollow_tag": "Deixar de seguir hashtag",
"up_to_date": "Atualizado"
},
"toast": {
"no_translation_target_set": "Linguagem alvo para tradução não definida - isso pode falhar. Por favor, defina uma linguagem alvo nas suas configurações."
},
"tool_tip": {
"accept_follow_request": "Aceitar o pedido de seguimento",
"add_reaction": "Adicionar Reação",
"bookmark": "Guardar",
"favorite": "Favoritar",
"media_upload": "Envio de multimédia",
"quote": "Citação",
"reject_follow_request": "Rejeitar o pedido de seguimento",
"repeat": "Partilhar",
"reply": "Responder",
@ -1103,7 +779,6 @@
"deactivate_account": "Desativar conta",
"delete_account": "Eliminar Conta",
"delete_user": "Eliminar utilizador",
"delete_user_data_and_deactivate_confirmation": "Isso irá permanentemente apagar os dados dessa conta e a desativar. Você tem certeza disso?",
"disable_any_subscription": "Não permitir que nenhum utilizador te siga",
"disable_remote_subscription": "Não permitir seguidores de instâncias remotas",
"force_nsfw": "Marcar todas as publicações como NSFW (não apropriado para o trabalho)",
@ -1118,84 +793,41 @@
"strip_media": "Eliminar ficheiros multimédia das publicações"
},
"approve": "Aprovar",
"approve_confirm": "Você tem certeza que deseja permitir que esse usuário lhe siga?",
"approve_confirm_accept_button": "Sim, aceitar",
"approve_confirm_cancel_button": "No, cancelar",
"approve_confirm_title": "Aprovar pedido para seguir",
"block": "Bloquear",
"block_confirm": "Você tem certeza que deseja bloquear {user}?",
"block_confirm_accept_button": "Sim, bloquear",
"block_confirm_cancel_button": "Não, não bloqueie",
"block_confirm_title": "Bloquear usuário",
"block_progress": "A bloquear…",
"blocked": "Bloqueado!",
"blocks_you": "Bloqueia você!",
"bot": "Bot",
"deactivated": "Desativado",
"deny": "Negar",
"deny_confirm": "Você tem certeza que deseja negar o pedido de te seguir desse usuário?",
"deny_confirm_accept_button": "Sim, negar",
"deny_confirm_cancel_button": "Não, cancelar",
"deny_confirm_title": "Negar pedido para seguir",
"domain_muted": "Desbloquear domínio",
"edit_profile": "Editar perfil",
"favorites": "Favoritos",
"follow": "Seguir",
"follow_cancel": "Cancelar pedido",
"follow_progress": "Enviando…",
"follow_sent": "Pedido enviado!",
"follow_tag": "Seguir hashtag",
"follow_unfollow": "Deixar de seguir",
"followed_tags": "Hashtags seguidas",
"followed_users": "Usuários seguidos",
"followees": "Seguindo",
"followers": "Seguidores",
"following": "Seguindo!",
"follows_you": "Segue você!",
"hidden": "Ocultar",
"hide_repeats": "Ocultar partilhas",
"highlight": {
"disabled": "Sem destaques",
"side": "Faixa lateral",
"solid": "Fundo sólido",
"striped": "Fundo listrado"
},
"its_you": "É você!",
"media": "Multimédia",
"mention": "Mencionar",
"message": "Mensagem",
"mute": "Silenciar",
"mute_confirm": "Você tem certeza que deseja silenciar {user}?",
"mute_confirm_accept_button": "Sim, silenciar",
"mute_confirm_cancel_button": "Não, não silenciar",
"mute_confirm_title": "Silenciar usuário",
"mute_domain": "Bloquear domínio",
"mute_progress": "A silenciar…",
"muted": "Silenciado",
"not_following_any_hashtags": "Você não está seguindo nenhuma hashtag",
"note": "Nota privada",
"per_day": "por dia",
"remote_follow": "Seguir remotamente",
"remove_follower": "Remover seguidor",
"replies": "Com Respostas",
"report": "Denunciar",
"requested_by": "Pediu para te seguir",
"show_repeats": "Mostrar partilhas",
"statuses": "Publicações",
"statuses": "Postagens",
"subscribe": "Subscrever",
"unblock": "Desbloquear",
"unblock_progress": "A desbloquear…",
"unfollow_confirm": "Você tem certeza que deseja deixar de seguir {user}?",
"unfollow_confirm_accept_button": "Sim, deixar de seguir",
"unfollow_confirm_cancel_button": "Não, não deixe de seguir",
"unfollow_confirm_title": "Deixar de seguir usuário",
"unfollow_tag": "Deixar de seguir hashtag",
"unmute": "Retirar silêncio",
"unmute_progress": "A retirar silêncio…",
"unsubscribe": "Retirar subscrição"
},
"user_profile": {
"field_validated": "Link Verificado",
"profile_does_not_exist": "Desculpe, este perfil não existe.",
"profile_loading_error": "Desculpe, houve um erro ao carregar este perfil.",
"timeline_title": "Cronologia do Utilizador"

View file

@ -1,3 +1,4 @@
/* eslint-disable import/no-webpack-loader-syntax */
// This module exports only the notification part of the i18n,
// which is useful for the service worker

View file

@ -55,6 +55,27 @@
"submit_edit_action": "Надіслати",
"title": "Оголошення"
},
"announcements": {
"all_day_prompt": "Триває весь день",
"cancel_edit_action": "Скасувати",
"close_error": "Закрити",
"delete_action": "Видалити",
"edit_action": "Редагувати",
"end_time_display": "Закінчується {time}",
"end_time_prompt": "Закінчується: ",
"inactive_message": "Це оголошення вимкнено",
"mark_as_read_action": "Прочитано",
"page_header": "Оголошення",
"post_action": "Розмістити",
"post_error": "Помилка: {error}",
"post_form_header": "Розмістити оголошення",
"post_placeholder": "Вміст оголошення",
"published_time_display": "Оприлюднено {time}",
"start_time_display": "Починається {time}",
"start_time_prompt": "Починається: ",
"submit_edit_action": "Надіслати",
"title": "Оголошення"
},
"chats": {
"chats": "Чати",
"delete": "Видалити",

View file

@ -872,8 +872,8 @@
"subject_input_always_show": "Luôn hiện hộp nhập cảnh báo nội dung",
"subject_line_behavior": "Chép cảnh báo về nội dung khi trả lời",
"subject_line_email": "Như email: \"re: cảnh báo\"",
"subject_line_mastodon": "Giống Mastodon: giữ nguyên",
"subject_line_noop": "Không chép",
"subject_line_mastodon": "Giống Mastodon: copy as is",
"subject_line_noop": "Đừng chép",
"text": "Văn bản",
"theme": "Theme",
"theme_help": "Dùng mã màu hex (#rrggbb) để tự chế theme.",

View file

@ -407,8 +407,7 @@
"private": "此帖文仅对你的关注者可见",
"public": "此帖文对所有人可见",
"unlisted": "此帖文在公共时间线和所有已知网络上均不可见"
},
"toggle_content_warning": "切换内容警告"
}
},
"registration": {
"awaiting_email_confirmation": "你的账号已被注册,一封电子邮件已发到你的地址。请检查电子邮件以完成注册。",
@ -680,7 +679,6 @@
"pad_emoji": "从表情符号选择器插入表情符号时,在表情两侧插入空格",
"panelRadius": "面板",
"pause_on_unfocused": "在离开页面时暂停时间线推送",
"permit_followback_description": "自动批准已关注用户的关注请求",
"play_videos_in_modal": "在弹出框内播放视频",
"post_look_feel": "文章的样子跟感受",
"post_status_content_type": "默认发布的内容类型",
@ -749,7 +747,6 @@
"show_admin_badge": "在我的个人资料中显示“管理员”徽章",
"show_moderator_badge": "在我的个人资料中显示“监察员”徽章",
"show_nav_shortcuts": "在顶部面板中显示额外的导航快捷键",
"show_page_backgrounds": "显示特定页面的背景,例如用户个人资料页",
"show_panel_nav_shortcuts": "在面板顶部显示时间线导航快捷键",
"show_scrollbars": "显示侧栏的滚动条",
"show_wider_shortcuts": "在顶部面板快捷键之间显示更宽的间隙",

View file

@ -1,7 +1,5 @@
{
"about": {
"bubble_instances": "本地局域實例",
"bubble_instances_description": "管理員推薦的實例",
"mrf": {
"federation": "聯邦",
"keyword": {
@ -18,15 +16,12 @@
"accept_desc": "本實例只接收來自下列實例的消息:",
"ftl_removal": "從所有已知網路中移除",
"ftl_removal_desc": "這個實例在所有已知網絡中移除下列實例:",
"instance": "實例",
"media_nsfw": "媒體強制設定為敏感",
"media_nsfw_desc": "這個實例把以下實例的貼文媒體強制設定為敏感:",
"media_nsfw_desc": "這個實例強迫以下實例的帖子媒體設定為敏感:",
"media_removal": "移除媒體",
"media_removal_desc": "這個實例移除以下實例的貼文媒體:",
"not_applicable": "無",
"media_removal_desc": "這個實例移除以下實例的帖子媒體:",
"quarantine": "隔離",
"quarantine_desc": "本實例不會向下列實例發佈貼文:",
"reason": "理由",
"quarantine_desc": "本實例只會把公開發文發送到下列實例:",
"reject": "拒絕",
"reject_desc": "本實例不會接收來自下列實例的消息:",
"simple_policies": "站規"
@ -34,27 +29,6 @@
},
"staff": "職員"
},
"announcements": {
"all_day_prompt": "這是一個全天事件",
"cancel_edit_action": "取消",
"close_error": "關閉",
"delete_action": "刪除",
"edit_action": "編輯",
"end_time_display": "結束於 {time}",
"end_time_prompt": "結束時間: ",
"inactive_message": "此公告處於非活躍狀態",
"mark_as_read_action": "標爲已讀",
"page_header": "公告",
"post_action": "發佈",
"post_error": "錯誤:{error}",
"post_form_header": "發佈公告",
"post_placeholder": "公告內容",
"published_time_display": "發表於 {time}",
"start_time_display": "開始於 {time}",
"start_time_prompt": "開始時間: ",
"submit_edit_action": "提交",
"title": "公告"
},
"chats": {
"chats": "聊天",
"delete": "刪除",
@ -84,7 +58,6 @@
"keep_open": "選擇器保持打開",
"load_all": "加載所有繪文字(共 {emojiAmount} 個)",
"load_all_hint": "最先加載的 {saneAmount} ,加載全部繪文字可能會帶來性能問題。",
"recent": "最近使用",
"search_emoji": "搜索繪文字",
"stickers": "貼紙",
"unicode": "統一碼繪文字"
@ -98,10 +71,10 @@
},
"features_panel": {
"media_proxy": "媒體代理",
"scope_options": "貼文可見範圍設置",
"scope_options": "可見範圍設置",
"text_limit": "文字數量限制",
"title": "功能",
"upload_limit": "上傳大小限制",
"title": "特色",
"upload_limit": "上傳限制",
"who_to_follow": "推薦關注"
},
"file_type": {
@ -136,13 +109,6 @@
"admin": "管理員",
"moderator": "主持人"
},
"scope_in_timeline": {
"direct": "私信",
"local": "本地 - 僅你所在的實例能看到此貼文",
"private": "僅關注者",
"public": "公開",
"unlisted": "不公開"
},
"show_less": "收起",
"show_more": "展開",
"submit": "提交",
@ -165,84 +131,6 @@
"load_older": "載入更早的互動",
"moves": "用戶遷移"
},
"languages": {
"ar": "阿拉伯文",
"az": "阿塞拜疆語",
"bg": "保加利亞語",
"cs": "捷克語",
"da": "丹麥語",
"de": "德語",
"el": "希臘語",
"en": "英語",
"eo": "世界語",
"es": "西班牙語",
"fa": "波斯語",
"fi": "芬蘭語",
"fr": "法語",
"ga": "愛爾蘭語",
"he": "希伯來語",
"hi": "印地語",
"hu": "匈牙利語",
"id": "印度尼西亞語",
"it": "義大利語",
"ja": "日語",
"ko": "韓語",
"lt": "立陶宛語",
"lv": "拉脫維亞語",
"nl": "荷蘭語",
"pl": "波蘭語",
"pt": "葡萄牙語",
"ru": "俄語",
"sk": "斯洛伐克語",
"sv": "瑞典語",
"tr": "土耳其語",
"translated_from": {
"ar": "翻譯自 @:languages.ar",
"az": "翻譯自 @:languages.az",
"bg": "翻譯自 @:languages.bg",
"cs": "翻譯自 @:languages.cs",
"da": "翻譯自 @:languages.da",
"de": "翻譯自 @:languages.de",
"el": "翻譯自 @:languages.el",
"en": "翻譯自 @:languages.en",
"eo": "翻譯自 @:languages.eo",
"es": "翻譯自 @:languages.es",
"fa": "翻譯自 @:languages.fa",
"fi": "翻譯自 @:languages.fi",
"fr": "翻譯自 @:languages.fr",
"ga": "翻譯自 @:languages.ga",
"he": "翻譯自 @:languages.he",
"hi": "翻譯自 @:languages.hi",
"hu": "翻譯自 @:languages.hu",
"id": "翻譯自 @:languages.id",
"it": "翻譯自 @:languages.it",
"ja": "翻譯自 @:languages.ja",
"ko": "翻譯自 @:languages.ko",
"lt": "翻譯自 @:languages.lt",
"lv": "翻譯自 @:languages.lv",
"nl": "翻譯自 @:languages.nl",
"pl": "翻譯自 @:languages.pl",
"pt": "翻譯自 @:languages.pt",
"ru": "翻譯自 @:languages.ru",
"sk": "翻譯自 @:languages.sk",
"sv": "翻譯自 @:languages.sv",
"tr": "翻譯自 @:languages.tr",
"uk": "翻譯自 @:languages.uk",
"zh": "翻譯自 @:languages.zh"
},
"uk": "烏克蘭語",
"zh": "中文"
},
"lists": {
"create": "創建",
"delete": "刪除列表",
"following_only": "只限於關注中的用戶",
"lists": "列表",
"new": "新建列表",
"save": "保存更改",
"search": "搜索用戶",
"title": "列表標題"
},
"login": {
"authentication_code": "驗證碼",
"description": "用 OAuth 登入",
@ -255,95 +143,54 @@
"hint": "登錄後加入討論",
"login": "登入",
"logout": "登出",
"logout_confirm": "你確定要登出嗎?",
"logout_confirm_accept_button": "登出",
"logout_confirm_cancel_button": "取消",
"logout_confirm_title": "登出",
"password": "密碼",
"placeholder": "我的用户名",
"placeholder": "例:鈴音",
"recovery_code": "恢復碼",
"register": "註冊",
"username": "用戶名"
},
"media_modal": {
"counter": "{current} / {total}",
"hide": "關閉媒體閱讀器",
"next": "往後",
"previous": "往前"
},
"moderation": {
"moderation": "審核",
"reports": {
"add_note": "添加備註",
"close": "關閉",
"delete_note": "删除",
"delete_note_accept": "是,確認刪除",
"delete_note_cancel": "否,保留它",
"delete_note_confirm": "你確定要刪除此備註嗎?",
"delete_note_title": "確認刪除",
"no_content": "沒有給出描述",
"no_reports": "沒有舉報可顯示",
"note_placeholder": "留下備註",
"notes": "{ count } 條備註",
"reopen": "重新處理",
"report": "舉報於",
"reports": "舉報",
"resolve": "解決",
"show_closed": "顯示已解決的舉報",
"statuses": "{ count } 則貼文",
"tag_policy_notice": "啟用 TagPolicy MRF 來設置貼文限制",
"tags": "設置貼文限制"
},
"statuses": "貼文",
"users": "用户"
},
"nav": {
"about": "關於",
"administration": "管理員",
"announcements": "公告",
"back": "後退",
"bookmarks": "書籤",
"bubble_timeline": "局域時間線",
"bubble_timeline_description": "由管理員推薦,來自你所在實例相近的實例的貼文",
"chats": "聊天",
"dms": "私信",
"friend_requests": "關注請求",
"home_timeline": "家時間線",
"home_timeline_description": "來自你所關注的人的貼文",
"interactions": "互動",
"lists": "列表",
"mentions": "提及",
"moderation": "審核",
"preferences": "偏好設置",
"public_timeline_description": "來自此實例的公開貼文",
"public_tl": "公共時間線",
"search": "搜索",
"timeline": "時間線",
"timelines": "時間線",
"twkn": "已知網絡",
"twkn_timeline_description": "來自整個網絡的貼文",
"user_search": "用戶搜索",
"who_to_follow": "推薦關注"
},
"notifications": {
"broken_favorite": "未知帖文,搜索中…",
"broken_favorite": "未知的狀態,正在搜索中…",
"error": "獲取通知錯誤:{0}",
"favorited_you": "喜歡了你的文",
"favorited_you": "喜歡了你的發文",
"follow_request": "想要關注你",
"followed_you": "關注了你",
"load_older": "載入更早的通知",
"migrated_to": "遷移到",
"no_more_notifications": "沒有更多的通知",
"notifications": "通知",
"poll_ended": "投票已結束",
"reacted_with": "作出了 {0} 的反應",
"read": "已閱!",
"repeated_you": "轉發了你的文"
"repeated_you": "轉發了你的文"
},
"password_reset": {
"check_email": "請檢查你的郵箱,將會發送用於重置密碼的鏈結。",
"check_email": "檢查你的郵箱,會有一個鏈接用於重置密碼。",
"forgot_password": "忘記密碼了?",
"instruction": "輸入你的電郵地址或者用戶名,我們將發送一個鏈到你的郵箱,用於重置密碼。",
"instruction": "輸入你的電郵地址或者用戶名,我們將發送一個鏈到你的郵箱,用於重置密碼。",
"password_reset": "重置密碼",
"password_reset_disabled": "密碼重置已經被禁用。請聯繫你的實例管理員。",
"password_reset_required": "您必須重置密碼才能登陸。",
@ -376,60 +223,47 @@
"text/bbcode": "BBCode",
"text/html": "HTML",
"text/markdown": "Markdown",
"text/plain": "純文本",
"text/x.misskeymarkdown": "MFM"
"text/plain": "純文本"
},
"content_warning": "內容警告(可選)",
"content_warning": "主題(可選)",
"default": "剛剛抵達洛杉磯。",
"direct_warning_to_all": "本條內容只有被提及的用戶能夠看到。",
"direct_warning_to_first_only": "本條內容只有被在消息開始處提及的用戶能夠看到。",
"edit_remote_warning": "對帖文所做的更改在某些實例上可能不可見!",
"edit_status": "編輯狀態",
"edit_unsupported_warning": "投票和提及不會因編輯而更改。",
"empty_status_error": "不能發佈沒有內容或附件的帖文",
"empty_status_error": "不能發布沒有內容,沒有附件的發文",
"media_description": "媒體描述",
"media_description_error": "無法更新媒體,請重試",
"media_not_sensitive_warning": "你有標記內容警告,但附件沒有被標記爲敏感內容!",
"new_status": "發佈新帖文",
"new_status": "發佈新發文",
"post": "發送",
"posting": "正在發送",
"preview": "預覽",
"preview_empty": "空的",
"scope": {
"direct": "私信 - 只發送給被提及的用戶",
"local": "本地 - 不會向其它實例發佈此帖文",
"private": "僅關注者 - 只有關注了你的人能看到",
"public": "公共 - 發送到公共時間軸",
"unlisted": "不公開 - 不會發送到公共時間軸"
},
"scope_notice": {
"local": "此帖文在其它實例中不可見",
"private": "關注你的人才能看到本條內容",
"public": "本貼文可以被所有人看到",
"public": "本條帖子可以被所有人看到",
"unlisted": "本條內容既不在公共時間線,也不會在所有已知網絡上可見"
},
"toggle_content_warning": "切換內容警告"
}
},
"registration": {
"awaiting_email_confirmation": "你的帳號已成功申請註冊,一封註冊用的電子郵件已發到你的地址。請檢查電子郵件以完成註冊。",
"awaiting_email_confirmation_title": "等待確認郵箱中",
"bio": "簡介",
"bio_placeholder": "例如:\n嗨!歡迎來查看我的簡介。\n我喜歡看動畫片和玩遊戲。希望我們能成爲朋友",
"bio_placeholder": "例如:\n你好我是玲音。\n我是一個住在日本郊區的動畫少女。你可能在 Wired 見過我。",
"captcha": "CAPTCHA",
"email": "電子郵箱",
"email_language": "你想從服務器接收到什麼語言的郵件?",
"fullname": "顯示名稱",
"fullname_placeholder": "例如:亞可·卡嘉莉",
"fullname_placeholder": "例如:岩倉玲音",
"new_captcha": "點擊圖片獲取新的驗證碼",
"password_confirm": "確認密碼",
"reason": "註冊理由",
"reason_placeholder": "此實例的註冊需要手動批准。\n請讓管理知道您為什麼想要註冊。",
"register": "註冊",
"registration": "註冊",
"request_sent": "你的註冊請求已被送去審核。當你的帳號被批准時,你會收到一封電子郵件。",
"request_sent_title": "註冊請求已發送",
"token": "邀請碼",
"username_placeholder": "例如:akko",
"username_placeholder": "例如lain",
"validations": {
"email_required": "不能留空",
"fullname_required": "不能留空",
@ -456,29 +290,16 @@
},
"settings": {
"accent": "強調色",
"account_alias": "帳號別名",
"account_alias_table_head": "別名",
"account_backup": "帳號備份",
"account_backup_description": "這個允許你下載一份帳號信息和文章的存檔,但是現在還不能導入到 Akkoma 帳號裏。",
"account_backup_table_head": "備份",
"account_privacy": "隱私",
"add_alias_error": "添加別名時出錯:{error}",
"add_backup": "創建一個新備份",
"add_backup_error": "添加新備份時出錯:{error}",
"added_alias": "别名已添加。",
"added_backup": "已創建一個新備份。",
"allow_following_move": "正在關注的帳號遷移時自動重新關注",
"always_show_post_button": "始終顯示浮動的“發佈新帖文”按鈕",
"allow_following_move": "正在關注的賬號遷移時自動重新關注",
"app_name": "App 名稱",
"attachmentRadius": "附件",
"attachments": "附件",
"autohide_floating_post_button": "自動隱藏新貼文的按鈕(移動設備)",
"autohide_floating_post_button": "自動隱藏新帖子的按鈕(移動設備)",
"avatar": "頭像",
"avatarAltRadius": "頭像(通知)",
"avatarRadius": "頭像",
"avatar_size_instruction": "推薦的頭像圖片最小的尺寸是 150x150 像素。",
"background": "背景",
"backup_not_ready": "備份還沒準備好。",
"bio": "簡介",
"block_export": "封鎖黑名單導出",
"block_export_button": "導出你的封鎖黑名單到一個 csv 文件",
@ -486,7 +307,7 @@
"block_import_error": "導入封鎖黑名單出錯",
"blocks_imported": "封鎖黑名單導入成功!需要一點時間來處理。",
"blocks_tab": "封鎖",
"bot": "這是一個機器人號",
"bot": "這是一個機器人號",
"btnRadius": "按鈕",
"cBlue": "藍色(回覆,關注)",
"cGreen": "綠色(轉發)",
@ -500,27 +321,9 @@
"changed_password": "成功修改了密碼!",
"chatMessageRadius": "聊天訊息",
"checkboxRadius": "複選框",
"collapse_subject": "摺疊帶內容警告的帖文",
"columns": "側欄",
"collapse_subject": "摺疊帶標題的內容",
"composing": "寫作設置",
"confirm_dialogs": "需要確認當:",
"confirm_dialogs_approve_follow": "接受關注請求",
"confirm_dialogs_block": "封鎖某人",
"confirm_dialogs_delete": "删除帖文",
"confirm_dialogs_deny_follow": "拒絕關注請求",
"confirm_dialogs_mute": "靜音某人",
"confirm_dialogs_repeat": "轉發帖文",
"confirm_dialogs_unfollow": "取消關注某人",
"confirm_new_password": "確認新密碼",
"confirmation_dialogs": "確認選項",
"conversation_display": "對話顯示樣式",
"conversation_display_linear": "線性樣式",
"conversation_display_tree": "樹狀樣式",
"conversation_other_replies_button": "顯示 “其它回覆” 按鈕",
"conversation_other_replies_button_below": "在貼文下方",
"conversation_other_replies_button_inside": "在貼文中",
"current_avatar": "當前頭像",
"current_mascot": "你當前的吉祥物",
"current_password": "當前密碼",
"data_import_export_tab": "數據導入/導出",
"default_vis": "默認可見性範圍",
@ -528,17 +331,11 @@
"delete_account_description": "永久刪除你的帳號和所有數據。",
"delete_account_error": "刪除賬戶時發生錯誤,如果一直刪除不了,請聯繫實例管理員。",
"delete_account_instructions": "在下面輸入密碼,以確認刪除帳戶。",
"disable_sticky_headers": "不要把側欄的頂欄固定在屏幕的頂部",
"discoverable": "允許通過搜索檢索等服務找到此帳號",
"discoverable": "允許通過搜索檢索等服務找到此賬號",
"domain_mutes": "域名",
"download_backup": "下載",
"email_language": "從服務器收取郵件的語言",
"emoji_reactions_on_timeline": "在時間線上顯示繪文字互動",
"enable_web_push_notifications": "啟用 web 推送通知",
"enter_current_password_to_confirm": "輸入你當前密碼來確認你的身份",
"expert_mode": "顯示進階設定",
"expire_posts_enabled": "在設定的天數後刪除帖文",
"expire_posts_input_placeholder": "天數",
"export_theme": "導出預置主題",
"file_export_import": {
"backup_restore": "設定備份",
@ -547,13 +344,13 @@
"errors": {
"file_slightly_new": "檔案的小版本不同,有些設置可能無法載入",
"file_too_new": "不兼容的主版本:{fileMajor},此 PleromaFE設置版本 {feMajor})過舊,無法處理",
"file_too_old": "主版本不兼容:設置文件 v{fileMajor} 版本過舊Pleroma-fe v{feMajor} 無法導入",
"file_too_old": "不兼容的主版本:{fileMajor},文件版本過舊,不受支持(最小設置版本 {feMajor}",
"invalid_file": "所選文件不是受支持的Pleroma設置備份。 沒有進行任何更改。"
},
"restore_settings": "從文件還原設置"
},
"filtering": "過濾",
"filtering_explanation": "所有包含以下詞彙的內容都會被隱藏。一行一個詞彙",
"filtering_explanation": "所有包含以下詞彙的內容都會被隱藏,一行一個",
"follow_export": "導出關注",
"follow_export_button": "將關注導出成 csv 文件",
"follow_import": "導入關注",
@ -563,29 +360,21 @@
"fun": "有趣",
"general": "通用",
"greentext": "前文箭頭",
"hide_all_muted_posts": "不顯示已隱藏的貼文",
"hide_all_muted_posts": "不顯示已隱藏的帖子",
"hide_attachments_in_convo": "在對話中隱藏附件",
"hide_attachments_in_tl": "在時間線上隱藏附件",
"hide_bot_indication": "隱藏帖文中的機器人標示",
"hide_favorites_description": "隱藏我的喜歡列表(對方仍然會收到通知)",
"hide_filtered_statuses": "隱藏過濾了的貼文",
"hide_filtered_statuses": "隱藏過濾的發文",
"hide_followers_count_description": "不顯示關注者數量",
"hide_followers_description": "不要顯示關注我的人",
"hide_follows_count_description": "不顯示關注數",
"hide_follows_description": "不要顯示我所關注的人",
"hide_isp": "隱藏指定實例的面板",
"hide_list_aliases_error_action": "關閉",
"hide_media_previews": "隱藏媒體預覽",
"hide_muted_posts": "不顯示被靜音的用戶的貼文",
"hide_muted_threads": "隱藏已靜音的對話",
"hide_post_stats": "隱藏貼文的統計數據(例如:收藏的次數)",
"hide_muted_posts": "不顯示被靜音的用戶的帖子",
"hide_post_stats": "隱藏帖子的統計數據(例如:收藏的次數)",
"hide_shoutbox": "隱藏實例留言框",
"hide_site_favicon": "隱藏頂部面板中的實例圖標",
"hide_site_name": "隱藏頂部面板中的實例圖標",
"hide_threads_with_blocked_users": "隱藏提及到被封鎖用戶的貼文",
"hide_user_stats": "隱藏用戶的統計數據(例如:關注者的數量)",
"hide_wallpaper": "隱藏實例桌布",
"hide_wordfiltered_statuses": "隱藏經過詞語過濾的封鎖",
"import_blocks_from_a_csv_file": "從 csv 文件中導入封鎖黑名單名單",
"import_followers_from_a_csv_file": "從 csv 文件中導入關注",
"import_mutes_from_a_csv_file": "從CSV文件導入靜音",
@ -597,31 +386,18 @@
"interfaceLanguage": "界面語言",
"invalid_theme_imported": "您所選擇的主題文件不被 Pleroma 支持,因此主題未被修改。",
"limited_availability": "在您的瀏覽器中無法使用",
"links": "鏈結",
"list_aliases_error": "獲取別名時出錯:{error}",
"list_backups_error": "獲取備份列表出錯:{error}",
"links": "鏈接",
"lock_account_description": "你需要手動審核關注請求",
"loop_video": "循環視頻",
"loop_video_silent_only": "只循環沒有聲音的視頻例如Mastodon 裡的“GIF”",
"mascot": "Mastodon FE 吉祥物",
"max_depth_in_thread": "默認顯示對話中的最大層數",
"max_thumbnails": "最多每個貼文所能顯示的縮略圖數量",
"mention_link_bolden_you": "當你被提及時,突出顯示該提及",
"mention_link_display": "顯示提及鏈結",
"mention_link_display_full": "始終以全名的形式出現(例如:{'@'}foo{'@'}example.org",
"mention_link_display_full_for_remote": "僅遠程實例用戶以全名的形式出現(例如:{'@'}foo{'@'}example.org",
"mention_link_display_short": "始終以簡稱的形式出現(例如:{'@'}foo",
"mention_link_fade_domain": "淡化顯示域名(例如:{'@'}example.org 中的 {'@'}foo{'@'}example.org",
"mention_link_show_avatar": "在鏈結旁邊顯示用戶頭像",
"mention_link_show_tooltip": "為遠程實例用戶顯示完整的用戶名(用戶名和網域)作爲 tooltip",
"mention_links": "提及鏈結",
"max_thumbnails": "最多每個帖子所能顯示的縮略圖數量",
"mfa": {
"authentication_methods": "身份驗證方法",
"confirm_and_enable": "確認並啟用OTP",
"generate_new_recovery_codes": "生成新的恢復碼",
"otp": "OTP",
"recovery_codes": "恢復碼。",
"recovery_codes_warning": "抄寫這些號碼,或者保存在安全的地方。這些號碼不會再次顯示。如果你無法訪問你的 2FA app也丟失了你的恢復碼你的號就再也無法登錄了。",
"recovery_codes_warning": "抄寫這些號碼,或者保存在安全的地方。這些號碼不會再次顯示。如果你無法訪問你的 2FA app也丟失了你的恢復碼你的賬號就再也無法登錄了。",
"scan": {
"desc": "使用你的雙因素驗證 app掃瞄這個二維碼或者輸入這些文字密鑰",
"secret_code": "密鑰",
@ -636,14 +412,8 @@
"waiting_a_recovery_codes": "正在接收備份碼…",
"warning_of_generate_new_codes": "當你生成新的恢復碼時,你的舊恢復碼就失效了。"
},
"minimal_scopes_mode": "使發佈可見範圍的選項最少化",
"minimal_scopes_mode": "最小發文範圍",
"more_settings": "更多設置",
"move_account": "遷移帳號",
"move_account_error": "遷移帳號時出錯:{error}",
"move_account_notes": "如果你想把帳號遷移到別的地方,你必須前去你的目標帳號然後添加一個指向此處的別名。",
"move_account_target": "目標帳號(例如 {example}",
"moved_account": "帳號已遷移。",
"mute_bot_posts": "靜音機器人的帖文",
"mute_export": "靜音導出",
"mute_export_button": "將靜音導出到csv文件",
"mute_import": "靜音導入",
@ -653,7 +423,6 @@
"mutes_tab": "靜音",
"name": "名字",
"name_bio": "名字及簡介",
"new_alias_target": "添加一個新別名(例如 {example}",
"new_email": "新電郵",
"new_password": "新密碼",
"no_blocks": "沒有封鎖",
@ -661,9 +430,8 @@
"no_rich_text_description": "不顯示富文本格式",
"notification_blocks": "封鎖一個用戶會停掉所有他的通知,等同於取消關注。",
"notification_mutes": "要停止收到某個指定的用戶的通知,請使用靜音功能。",
"notification_setting_block_from_strangers": "封鎖來自你沒有關注的用戶的通知",
"notification_setting_block_from_strangers": "屏蔽來自你沒有關注的用戶的通知",
"notification_setting_filters": "過濾器",
"notification_setting_hide_if_cw": "如果帖文包含內容警告,隱藏推送通知",
"notification_setting_hide_notification_contents": "隱藏推送通知中的發送者與內容信息",
"notification_setting_privacy": "隱私",
"notification_visibility": "要顯示的通知類型",
@ -672,19 +440,15 @@
"notification_visibility_likes": "喜歡",
"notification_visibility_mentions": "提及",
"notification_visibility_moves": "用戶遷移",
"notification_visibility_polls": "你所投的投票的結束於",
"notification_visibility_repeats": "轉發",
"notifications": "通知",
"nsfw_clickthrough": "將敏感附件和鏈隱藏,點擊才能打開",
"nsfw_clickthrough": "將敏感附件和鏈隱藏,點擊才能打開",
"oauth_tokens": "OAuth代幣",
"pad_emoji": "從繪文字選擇器插入繪文字時,在繪文字兩側插入空格",
"panelRadius": "面板",
"pause_on_unfocused": "在離開頁面時暫停時間線推送",
"permit_followback_description": "自動批准已關注用戶的關注請求",
"play_videos_in_modal": "在彈出框內播放視頻",
"post_look_feel": "貼文的外觀",
"post_status_content_type": "默認貼文內容類型",
"posts": "貼文",
"post_status_content_type": "發文內容類型",
"preload_images": "預載圖片",
"presets": "預置",
"profile_background": "配置文件背景圖",
@ -698,10 +462,6 @@
"profile_tab": "個人資料",
"radii_help": "設置界面邊緣的圓角 (單位:像素)",
"refresh_token": "刷新token",
"remove_alias": "移除此别名",
"remove_backup": "移除",
"render_mfm": "渲染 Misskey Markdown",
"render_mfm_on_hover": "停止播放 MFM 動畫,除了在滑鼠懸停於帖文時",
"replies_in_timeline": "時間線中的回覆",
"reply_visibility_all": "顯示所有回覆",
"reply_visibility_following": "只顯示發送給我的回覆/發送給我關注的用戶的回覆",
@ -715,45 +475,23 @@
"reset_profile_background": "重置個人資料背景圖",
"reset_profile_banner": "重置橫幅圖片",
"revoke_token": "撤消",
"right_sidebar": "在右側顯示側欄",
"right_sidebar": "在右側顯示側欄",
"save": "保存更改",
"saving_err": "保存設置時發生錯誤",
"saving_ok": "設置已保存",
"scope_copy": "回覆時的複製範圍(私信是總是複製的)",
"search_user_to_block": "搜索你想封鎖的用戶",
"search_user_to_block": "搜索你想屏蔽的用戶",
"search_user_to_mute": "搜索你想要隱藏的用戶",
"security": "安全",
"security_tab": "安全",
"sensitive_by_default": "默認標記貼文為敏感內容",
"sensitive_if_subject": "如果內容警告已指定,自動將圖像標記爲敏感內容",
"sensitive_by_default": "默認標記發文為敏感內容",
"set_new_avatar": "設置新頭像",
"set_new_mascot": "設置新吉祥物",
"set_new_profile_background": "設置新的個人背景",
"set_new_profile_banner": "設置新的個人橫幅",
"setting_changed": "與默認設置不同",
"setting_server_side": "這個設置是捆綁到你的個人資料的,會反映於所有會話和用戶端",
"settings": "設置",
"settings_profile": "設置配置文件",
"settings_profile_creation": "創建新的配置文件",
"settings_profile_creation_new_name_label": "名稱",
"settings_profile_creation_submit": "創建",
"settings_profile_currently": "目前使用 {name}(版本:{version}",
"settings_profile_delete": "删除",
"settings_profile_delete_confirm": "你確定要刪除此配置文件嗎?",
"settings_profile_force_sync": "同步",
"settings_profile_in_use": "使用中",
"settings_profile_use": "使用",
"settings_profiles_refresh": "重新載入設置配置文件",
"settings_profiles_show": "顯示所有設置配置文件",
"settings_profiles_unshow": "隱藏所有設置配置文件",
"show_admin_badge": "顯示管理徽章",
"show_moderator_badge": "顯示主持人徽章",
"show_nav_shortcuts": "在頂部面板中顯示額外的導航快捷鍵",
"show_page_backgrounds": "顯示特定頁面專用的背景,例如用戶自定義的背景",
"show_panel_nav_shortcuts": "在面板頂部顯示時間線導航快捷鍵",
"show_scrollbars": "顯示側欄的捲軸",
"show_wider_shortcuts": "在頂部面板快捷鍵之間顯示更寬的間隙",
"show_yous": "被提及時在貼文顯示「(你)」",
"stop_gifs": "鼠標懸停時播放GIF",
"streaming": "開啟滾動到頂部時的自動推送",
"style": {
@ -780,10 +518,10 @@
"panel_header": "面板標題",
"poll": "投票統計圖",
"popover": "提示框,菜單,彈出框",
"post": "貼文/用戶簡介",
"post": "帖子/用戶簡介",
"pressed": "按下",
"selectedMenu": "選中的菜單項",
"selectedPost": "選中的貼文",
"selectedPost": "選中的帖子",
"tabs": "標籤",
"toggled": "切換",
"top_bar": "頂欄",
@ -817,8 +555,8 @@
"components": {
"input": "輸入框",
"interface": "界面",
"post": "貼文文字",
"postCode": "貼文中使用等間距文字(富文本)"
"post": "發帖文字",
"postCode": "帖子中使用等間距文字(富文本)"
},
"custom": "自選",
"family": "字體名稱",
@ -836,7 +574,7 @@
"header": "預覽",
"header_faint": "這很正常",
"input": "剛剛抵達洛杉磯.",
"link": "一個很好的小鏈",
"link": "一個很好的小鏈",
"mono": "內容",
"text": "有堆 {0} 和 {1}"
},
@ -849,7 +587,7 @@
"component": "組件",
"components": {
"avatar": "用戶頭像(在個人資料欄)",
"avatarStatus": "用戶頭像(在貼文顯示欄)",
"avatarStatus": "用戶頭像(在帖子顯示欄)",
"button": "按鈕",
"buttonHover": "按鈕(懸停)",
"buttonPressed": "按鈕(按下)",
@ -902,9 +640,9 @@
"use_source": "新版本"
}
},
"subject_input_always_show": "總是顯示內容警告框",
"subject_line_behavior": "回覆時複製內容警告",
"subject_line_email": "類似電子郵件:\"re: 警告\"",
"subject_input_always_show": "總是顯示主題框",
"subject_line_behavior": "回覆時複製主題",
"subject_line_email": "比如電郵: \"re: 主題\"",
"subject_line_mastodon": "比如mastodon: copy as is",
"subject_line_noop": "不要複製",
"text": "文本",
@ -912,29 +650,15 @@
"theme_help": "使用十六進制代碼(#rrggbb來設置主題顏色。",
"theme_help_v2_1": "你也可以通過切換複選框來覆蓋某些組件的顏色和透明。使用“清除所有”來清楚所有覆蓋設置。",
"theme_help_v2_2": "某些條目下的圖標是背景或文本對比指示器,鼠標懸停可以獲取詳細信息。請記住,使用透明度來顯示最差的情況。",
"third_column_mode": "當有足夠的空間時,顯示第三欄包含",
"third_column_mode_none": "不要顯示第三欄",
"third_column_mode_notifications": "通知欄",
"third_column_mode_postform": "主要投稿窗口和導覽",
"token": "代幣",
"tooltipRadius": "提醒",
"translation_language": "自動翻譯語言",
"tree_advanced": "顯示用來打開和關閉對話中的回覆鏈的按鈕",
"tree_fade_ancestors": "以淡色文字顯示當前貼文的上文",
"type_domains_to_mute": "搜索需要隱藏的域名",
"upload_a_photo": "上傳照片",
"useStreamingApi": "實時接收發佈以及通知",
"useStreamingApiWarning": "(不推薦使用,實驗性的,已知跳過文章)",
"use_blurhash": "對 NSFW 的縮略圖使用模糊處理",
"use_contain_fit": "生成縮略圖時不要裁剪附件",
"use_one_click_nsfw": "點擊一次以打開工作場所不適宜的附件",
"user_accepts_direct_messages_from": "允許私信自",
"user_accepts_direct_messages_from_everybody": "所有人",
"user_accepts_direct_messages_from_nobody": "沒有人",
"user_accepts_direct_messages_from_people_i_follow": "我關注的人",
"user_mutes": "用户",
"user_profile_default_tab": "用戶資料中的默認頁面",
"user_profiles": "用戶資料",
"user_settings": "用戶設置",
"valid_until": "有效期至",
"values": {
@ -947,90 +671,38 @@
"title": "版本"
},
"virtual_scrolling": "優化時間線渲染",
"word_filter": "詞過濾",
"wordfilter": "詞語過濾器"
},
"settings_profile": {
"creating": "正在創建新的設置配置文件 \"{profile}\" 中...",
"synchronization_error": "無法同步設置:{err}",
"synchronized": "設置已同步!",
"synchronizing": "正在同步新的設置配置文件 \"{profile}\" 中..."
"word_filter": "詞過濾"
},
"status": {
"ancestor_follow": "查看此貼文下其它 {numReplies} 條回覆",
"ancestor_follow_with_icon": "{icon} {text}",
"attachment_stop_flash": "停止 Flash 播放器",
"bookmark": "書籤",
"collapse_attachments": "折起附件",
"copy_link": "複製貼文鏈結",
"delete": "刪除貼文",
"delete_confirm": "你真的想要刪除這則貼文嗎?",
"delete_confirm_accept_button": "是,删除它",
"delete_confirm_cancel_button": "否,保留它",
"delete_confirm_title": "確認刪除",
"edit": "編輯",
"edit_history": "編輯歷史",
"edit_history_modal_title": "已編輯 {historyCount} 次",
"edited_at": "編輯於 {time}",
"copy_link": "複製發文鏈接",
"delete": "刪除發文",
"delete_confirm": "你真的想要刪除這條發文嗎?",
"expand": "展开",
"external_source": "外部來源",
"favorites": "喜歡",
"hide_attachment": "隱藏附件",
"hide_content": "隱藏內容",
"hide_full_subject": "隱藏全部內容警告",
"many_attachments": "貼文有 {number} 個附件",
"mentions": "提及",
"move_down": "把附件右移",
"move_up": "把附件左移",
"hide_full_subject": "隱藏完整標題",
"mute_conversation": "靜音對話",
"nsfw": "工作不安全",
"open_gallery": "打開圖庫",
"override_translation_source_language": "覆蓋源語言",
"pin": "在個人資料置頂",
"pinned": "置頂",
"plus_more": "還有 {number} 個",
"redraft": "刪除並編緝",
"redraft_confirm": "你確定要刪除並編緝此帖文嗎?與原帖文的互動將不會被保留。",
"redraft_confirm_accept_button": "是,刪除並編緝",
"redraft_confirm_cancel_button": "否,保持原樣",
"redraft_confirm_title": "確認刪除並編緝",
"remove_attachment": "移除附件",
"repeat_confirm": "你確定要轉發此貼文嗎?",
"repeat_confirm_accept_button": "是,轉發它",
"repeat_confirm_cancel_button": "否,不要轉發",
"repeat_confirm_title": "確認轉發",
"repeats": "轉發",
"replies_list": "回覆:",
"replies_list_with_others": "查看 {numReplies} 條回復",
"reply_to": "回覆",
"show_all_attachments": "顯示所有附件",
"show_all_conversation": "顯示全部對話(還有其它 {numStatus} 條貼文)",
"show_all_conversation_with_icon": "{icon} {text}",
"show_attachment_description": "預覽描述(打開附件能看完整描述)",
"show_attachment_in_modal": "在窗口中顯示附件",
"show_content": "顯示內容",
"show_full_subject": "顯示完整内容警告",
"show_only_conversation_under_this": "僅顯示此帖文的回覆",
"show_full_subject": "顯示完整標題",
"status_deleted": "該帖已被刪除",
"status_unavailable": "貼文已不可用",
"thread_follow": "查看 {numStatus} 條更多回復",
"thread_follow_with_icon": "{icon} {text}",
"thread_hide": "隱藏此對話",
"status_unavailable": "發文不可取得",
"thread_muted": "静音線程",
"thread_muted_and_words": ",有这些字:",
"thread_show": "顯示這個對話",
"thread_show_full": "顯示 {numStatus} 條回覆 | 顯示全部 {numStatus} 條回覆",
"thread_show_full_with_icon": "{icon} {text}",
"translate": "翻譯",
"translated_from": "翻譯自 {language}",
"unbookmark": "取消書籤",
"unmute_conversation": "對話取消靜音",
"unpin": "取消在個人資料置頂",
"you": "(你)"
"unpin": "取消在個人資料置頂"
},
"time": {
"in_future": "還有 {0}",
"in_past": "{0}前",
"in_past": "{0}前",
"now": "剛剛",
"now_short": "剛剛",
"unit": {
@ -1054,29 +726,23 @@
"collapse": "摺疊",
"conversation": "對話",
"error": "取得時間線時發生錯誤:{0}",
"follow_tag": "關注話題標籤",
"load_older": "載入更早的貼文",
"no_more_statuses": "没有更多貼文",
"load_older": "載入更早的發文",
"no_more_statuses": "没有更多發文",
"no_retweet_hint": "這條內容僅關注者可見,或者是私信,因此不能轉發",
"no_statuses": "没有文",
"no_statuses": "没有文",
"reload": "重新載入",
"repeated": "已轉發",
"show_new": "顯示新內容",
"socket_broke": "丟失實時連接CloseEvent代碼{0}",
"socket_reconnected": "已建立實時連接",
"unfollow_tag": "取消關注話題標籤",
"up_to_date": "已是最新"
},
"toast": {
"no_translation_target_set": "沒有設置翻譯目標語言 - 這可能會失敗。請在你的設置中設置目標語言。"
},
"tool_tip": {
"accept_follow_request": "接受關注請求",
"add_reaction": "添加互動",
"bookmark": "書籤",
"favorite": "喜歡",
"media_upload": "上傳多媒體",
"quote": "引用",
"reject_follow_request": "拒絕關注請求",
"repeat": "轉發",
"reply": "回覆",
@ -1099,55 +765,35 @@
},
"user_card": {
"admin_menu": {
"activate_account": "啟用號",
"deactivate_account": "停用帳號",
"delete_account": "刪除號",
"activate_account": "啟用號",
"deactivate_account": "關閉賬號",
"delete_account": "刪除號",
"delete_user": "刪除用戶",
"delete_user_data_and_deactivate_confirmation": "這將永久刪除該帳號的數據並停用該帳號。你完全確定嗎?",
"disable_any_subscription": "完全禁止關注用戶",
"disable_remote_subscription": "禁止從遠程實例關注用戶",
"force_nsfw": "標記所有的貼文為工作場合不適NSFW",
"force_unlisted": "強制使貼文為不公開",
"force_nsfw": "標記所有的帖子都是工作場合不適",
"force_unlisted": "強制帖子為不公開",
"grant_admin": "賦予管理權限",
"grant_moderator": "賦予主持人權限",
"moderation": "調停",
"quarantine": "從聯合實例中禁止用戶貼文",
"quarantine": "從聯合實例中禁止用戶帖子",
"revoke_admin": "撤銷管理權限",
"revoke_moderator": "撤銷主持人權限",
"sandbox": "強制貼文為只有關注者可看",
"strip_media": "從貼文裡刪除媒體文件"
"sandbox": "強制帖子為只有關注者可看",
"strip_media": "從帖子裡刪除媒體文件"
},
"approve": "批准",
"approve_confirm": "你確定要讓此用戶關注你嗎?",
"approve_confirm_accept_button": "是,接受",
"approve_confirm_cancel_button": "否,取消",
"approve_confirm_title": "通過關注請求",
"block": "封鎖",
"block_confirm": "你確定要封鎖 {user} 嗎?",
"block_confirm_accept_button": "是,封鎖",
"block_confirm_cancel_button": "否,不要封鎖",
"block_confirm_title": "封鎖用戶",
"block_progress": "封鎖中…",
"blocked": "已封鎖!",
"blocks_you": "封鎖了你!",
"bot": "機器人",
"deactivated": "已停用",
"deny": "拒絕",
"deny_confirm": "你確定要拒絕此用戶的關注請求嗎?",
"deny_confirm_accept_button": "是,拒絕",
"deny_confirm_cancel_button": "否,取消",
"deny_confirm_title": "拒絕關注請求",
"domain_muted": "取消封鎖域名",
"edit_profile": "編輯個人資料",
"favorites": "喜歡",
"follow": "關注",
"follow_cancel": "取消請求",
"follow_progress": "請求中…",
"follow_sent": "請求已發送!",
"follow_tag": "關注話題標籤",
"follow_unfollow": "取消關注",
"followed_tags": "已關注的話題標籤",
"followed_users": "已關注用戶",
"followees": "正在關注",
"followers": "關注者",
"following": "正在關注!",
@ -1165,37 +811,21 @@
"mention": "提及",
"message": "消息",
"mute": "靜音",
"mute_confirm": "你確定要靜音 {user} 嗎?",
"mute_confirm_accept_button": "是,靜音",
"mute_confirm_cancel_button": "否,不要靜音",
"mute_confirm_title": "靜音用戶",
"mute_domain": "封鎖域名",
"mute_progress": "靜音中…",
"muted": "已靜音",
"not_following_any_hashtags": "你沒有關注任何話題標籤",
"note": "私人備注",
"per_day": "每天",
"remote_follow": "跨站關注",
"remove_follower": "移除關注者",
"replies": "貼文和回覆",
"report": "報告",
"requested_by": "已請求關注你",
"show_repeats": "顯示轉發",
"statuses": "文",
"statuses": "文",
"subscribe": "訂閱",
"unblock": "取消封鎖",
"unblock_progress": "取消封鎖中…",
"unfollow_confirm": "你確定要取消關注 {user} 嗎?",
"unfollow_confirm_accept_button": "是,取消關注",
"unfollow_confirm_cancel_button": "否,不要取消關注",
"unfollow_confirm_title": "取消關注用戶",
"unfollow_tag": "取消關注話題標籤",
"unmute": "取消靜音",
"unmute_progress": "取消靜音中…",
"unsubscribe": "退訂"
},
"user_profile": {
"field_validated": "鏈結已驗證",
"profile_does_not_exist": "抱歉,此個人資料不存在。",
"profile_loading_error": "抱歉,載入個人資料時出錯。",
"timeline_title": "用戶時間線"
@ -1203,7 +833,7 @@
"user_reporting": {
"add_comment_description": "此報告會發送給你的實例管理員。你可以在下面提供更多詳細信息解釋報告的緣由:",
"additional_comments": "其它評論",
"forward_description": "這個帳號是來由另外一個伺服器。需要同時發送一個報告到那裡嗎",
"forward_description": "這個賬號是從另外一個服務器。同時發送一個報告到那裡",
"forward_to": "轉發 {0}",
"generic_error": "當處理你的請求時,發生了一個錯誤。",
"submit": "提交",

View file

@ -1,9 +1,9 @@
import EventTargetPolyfill from '@ungap/event-target'
try {
/* eslint-disable no-new */
new EventTarget()
/* eslint-enable no-new */
} catch (e) {
window.EventTarget = EventTargetPolyfill
}

View file

@ -1,16 +0,0 @@
import iso6391 from 'iso-639-1'
import { computed } from 'vue'
export const usePostLanguageOptions = () => {
const postLanguageOptions = computed(() => {
return iso6391.getAllCodes().map(lang => ({
key: lang,
value: lang,
label: lang,
}));
})
return {
postLanguageOptions,
}
}

View file

@ -114,7 +114,7 @@ const persistedStateOptions = {
})()
// These are inlined by webpack's DefinePlugin
/* eslint-disable */
window.___pleromafe_mode = process.env
window.___pleromafe_commit_hash = COMMIT_HASH
window.___pleromafe_dev_overrides = DEV_OVERRIDES

View file

@ -1,28 +1,28 @@
import backendInteractorService from "../services/backend_interactor_service/backend_interactor_service.js";
import { WSConnectionStatus } from "../services/api/api.service.js";
import { map } from "lodash";
import backendInteractorService from '../services/backend_interactor_service/backend_interactor_service.js'
import { WSConnectionStatus } from '../services/api/api.service.js'
import { map } from 'lodash'
const retryTimeout = (multiplier) => 1000 * multiplier;
const retryTimeout = (multiplier) => 1000 * multiplier
const isVisible = (store, message, visibility) => {
if (visibility == "all") {
return true;
if (visibility == 'all') {
return true
}
if (visibility == "following") {
if (visibility == 'following') {
if (message.in_reply_to_user_id === null) {
return true;
return true
} else {
return store.getters.relationship(message.in_reply_to_user_id).following;
return store.getters.relationship(message.in_reply_to_user_id).following
}
}
if (visibility == "self") {
return message.in_reply_to_user_id === store.rootState.users.currentUser.id;
if (visibility == 'self') {
return message.in_reply_to_user_id === store.rootState.users.currentUser.id
}
return false;
};
return false
}
const api = {
state: {
@ -32,43 +32,43 @@ const api = {
socket: null,
mastoUserSocket: null,
mastoUserSocketStatus: null,
followRequests: [],
followRequests: []
},
mutations: {
setBackendInteractor (state, backendInteractor) {
state.backendInteractor = backendInteractor;
state.backendInteractor = backendInteractor
},
addFetcher (state, { fetcherName, fetcher }) {
state.fetchers[fetcherName] = fetcher;
state.fetchers[fetcherName] = fetcher
},
removeFetcher (state, { fetcherName, fetcher }) {
state.fetchers[fetcherName].stop();
delete state.fetchers[fetcherName];
state.fetchers[fetcherName].stop()
delete state.fetchers[fetcherName]
},
setWsToken (state, token) {
state.wsToken = token;
state.wsToken = token
},
setSocket (state, socket) {
state.socket = socket;
state.socket = socket
},
setMastoUserSocketStatus (state, value) {
state.mastoUserSocketStatus = value;
state.mastoUserSocketStatus = value
},
incrementRetryMultiplier (state) {
state.retryMultiplier = Math.max(++state.retryMultiplier, 3);
state.retryMultiplier = Math.max(++state.retryMultiplier, 3)
},
resetRetryMultiplier (state) {
state.retryMultiplier = 1;
state.retryMultiplier = 1
},
setFollowRequests (state, value) {
state.followRequests = [...value];
state.followRequests = [...value]
},
saveFollowRequests (state, requests) {
state.followRequests = [...state.followRequests, ...requests];
state.followRequests = [...state.followRequests, ...requests]
},
saveFollowRequestPagination (state, pagination) {
state.followRequestsPagination = pagination;
},
state.followRequestsPagination = pagination
}
},
actions: {
/**
@ -77,305 +77,259 @@ const api = {
* @param {Boolean} [initial] - whether this enabling happened at boot time or not
*/
enableMastoSockets (store, initial) {
const { state, dispatch, commit } = store;
const { state, dispatch, commit } = store
// Do not initialize unless nonexistent or closed
if (
state.mastoUserSocket &&
![WebSocket.CLOSED, WebSocket.CLOSING].includes(
state.mastoUserSocket.getState(),
)
![
WebSocket.CLOSED,
WebSocket.CLOSING
].includes(state.mastoUserSocket.getState())
) {
return;
return
}
if (initial) {
commit("setMastoUserSocketStatus", WSConnectionStatus.STARTING_INITIAL);
commit('setMastoUserSocketStatus', WSConnectionStatus.STARTING_INITIAL)
} else {
commit("setMastoUserSocketStatus", WSConnectionStatus.STARTING);
commit('setMastoUserSocketStatus', WSConnectionStatus.STARTING)
}
return dispatch("startMastoUserSocket");
return dispatch('startMastoUserSocket')
},
disableMastoSockets (store) {
const { state, dispatch, commit } = store;
if (!state.mastoUserSocket) return;
commit("setMastoUserSocketStatus", WSConnectionStatus.DISABLED);
return dispatch("stopMastoUserSocket");
const { state, dispatch, commit } = store
if (!state.mastoUserSocket) return
commit('setMastoUserSocketStatus', WSConnectionStatus.DISABLED)
return dispatch('stopMastoUserSocket')
},
// MastoAPI 'User' sockets
startMastoUserSocket (store) {
return new Promise((resolve, reject) => {
try {
const { state, commit, dispatch, rootState } = store;
const timelineData = rootState.statuses.timelines.friends;
state.mastoUserSocket = state.backendInteractor.startUserSocket({
store,
});
const { state, commit, dispatch, rootState } = store
const timelineData = rootState.statuses.timelines.friends
state.mastoUserSocket = state.backendInteractor.startUserSocket({ store })
state.mastoUserSocket.addEventListener(
"message",
'message',
({ detail: message }) => {
const replyVisibility = rootState.config.replyVisibility;
if (!message) return; // pings
if (message.event === "notification") {
dispatch("addNewNotifications", {
const replyVisibility = rootState.config.replyVisibility
if (!message) return // pings
if (message.event === 'notification') {
dispatch('addNewNotifications', {
notifications: [message.notification],
older: false,
});
} else if (
message.event === "update" &&
isVisible(store, message.status, replyVisibility)
) {
dispatch("addNewStatuses", {
older: false
})
} else if (message.event === 'update' && isVisible(store, message.status, replyVisibility)) {
dispatch('addNewStatuses', {
statuses: [message.status],
userId: false,
showImmediately: timelineData.visibleStatuses.length === 0,
timeline: "friends",
});
} else if (
message.event === "status.update" &&
isVisible(store, message.status, replyVisibility)
) {
dispatch("addNewStatuses", {
timeline: 'friends'
})
} else if (message.event === 'status.update' && isVisible(store, message.status, replyVisibility)) {
dispatch('addNewStatuses', {
statuses: [message.status],
userId: false,
showImmediately:
message.status.id in timelineData.visibleStatusesObject,
timeline: "friends",
});
} else if (message.event === "delete") {
dispatch("deleteStatusById", message.id);
showImmediately: message.status.id in timelineData.visibleStatusesObject,
timeline: 'friends'
})
} else if (message.event === 'delete') {
dispatch('deleteStatusById', message.id)
}
},
);
state.mastoUserSocket.addEventListener("open", () => {
}
)
state.mastoUserSocket.addEventListener('open', () => {
// Do not show notification when we just opened up the page
if (
state.mastoUserSocketStatus !==
WSConnectionStatus.STARTING_INITIAL
) {
dispatch("pushGlobalNotice", {
level: "success",
messageKey: "timeline.socket_reconnected",
timeout: 5000,
});
if (state.mastoUserSocketStatus !== WSConnectionStatus.STARTING_INITIAL) {
dispatch('pushGlobalNotice', {
level: 'success',
messageKey: 'timeline.socket_reconnected',
timeout: 5000
})
}
// Stop polling if we were errored or disabled
if (
new Set([
if (new Set([
WSConnectionStatus.ERROR,
WSConnectionStatus.DISABLED,
]).has(state.mastoUserSocketStatus)
) {
dispatch("stopFetchingTimeline", { timeline: "friends" });
dispatch("stopFetchingNotifications");
WSConnectionStatus.DISABLED
]).has(state.mastoUserSocketStatus)) {
dispatch('stopFetchingTimeline', { timeline: 'friends' })
dispatch('stopFetchingNotifications')
}
commit("resetRetryMultiplier");
commit("setMastoUserSocketStatus", WSConnectionStatus.JOINED);
});
state.mastoUserSocket.addEventListener(
"error",
({ detail: error }) => {
console.error("Error in MastoAPI websocket:", error);
},
);
state.mastoUserSocket.addEventListener(
"close",
({ detail: closeEvent }) => {
commit('resetRetryMultiplier')
commit('setMastoUserSocketStatus', WSConnectionStatus.JOINED)
})
state.mastoUserSocket.addEventListener('error', ({ detail: error }) => {
console.error('Error in MastoAPI websocket:', error)
})
state.mastoUserSocket.addEventListener('close', ({ detail: closeEvent }) => {
const ignoreCodes = new Set([
1000, // Normal (intended) closure
1001, // Going away
]);
const { code } = closeEvent;
1001 // Going away
])
const { code } = closeEvent
if (ignoreCodes.has(code)) {
console.debug(
`Not restarting socket becasue of closure code ${code} is in ignore list`,
);
commit("setMastoUserSocketStatus", WSConnectionStatus.CLOSED);
console.debug(`Not restarting socket becasue of closure code ${code} is in ignore list`)
commit('setMastoUserSocketStatus', WSConnectionStatus.CLOSED)
} else {
console.warn(
`MastoAPI websocket disconnected, restarting. CloseEvent code: ${code}`,
);
console.warn(`MastoAPI websocket disconnected, restarting. CloseEvent code: ${code}`)
setTimeout(() => {
dispatch("startMastoUserSocket");
}, retryTimeout(state.retryMultiplier));
commit("incrementRetryMultiplier");
dispatch('startMastoUserSocket')
}, retryTimeout(state.retryMultiplier))
commit('incrementRetryMultiplier')
if (state.mastoUserSocketStatus !== WSConnectionStatus.ERROR) {
dispatch("startFetchingTimeline", { timeline: "friends" });
dispatch("startFetchingNotifications");
dispatch("startFetchingAnnouncements");
dispatch("startFetchingReports");
dispatch("pushGlobalNotice", {
level: "error",
messageKey: "timeline.socket_broke",
dispatch('startFetchingTimeline', { timeline: 'friends' })
dispatch('startFetchingNotifications')
dispatch('startFetchingAnnouncements')
dispatch('startFetchingReports')
dispatch('pushGlobalNotice', {
level: 'error',
messageKey: 'timeline.socket_broke',
messageArgs: [code],
timeout: 5000,
});
timeout: 5000
})
}
commit("setMastoUserSocketStatus", WSConnectionStatus.ERROR);
commit('setMastoUserSocketStatus', WSConnectionStatus.ERROR)
}
},
);
resolve();
})
resolve()
} catch (e) {
reject(e);
reject(e)
}
});
})
},
stopMastoUserSocket ({ state, dispatch }) {
dispatch("startFetchingTimeline", { timeline: "friends" });
dispatch("startFetchingNotifications");
state.mastoUserSocket.close();
dispatch('startFetchingTimeline', { timeline: 'friends' })
dispatch('startFetchingNotifications')
state.mastoUserSocket.close()
},
// Timelines
startFetchingTimeline(
store,
{ timeline = "friends", tag = false, userId = false, listId = false },
) {
if (store.state.fetchers[timeline]) return;
startFetchingTimeline (store, {
timeline = 'friends',
tag = false,
userId = false,
listId = false
}) {
if (store.state.fetchers[timeline]) return
const fetcher = store.state.backendInteractor.startFetchingTimeline({
timeline,
store,
userId,
listId,
tag,
});
store.commit("addFetcher", { fetcherName: timeline, fetcher });
timeline, store, userId, listId, tag
})
store.commit('addFetcher', { fetcherName: timeline, fetcher })
},
stopFetchingTimeline (store, timeline) {
const fetcher = store.state.fetchers[timeline];
if (!fetcher) return;
store.commit("removeFetcher", { fetcherName: timeline, fetcher });
const fetcher = store.state.fetchers[timeline]
if (!fetcher) return
store.commit('removeFetcher', { fetcherName: timeline, fetcher })
},
fetchTimeline(store, timeline, opts = {}) {
fetchTimeline (store, timeline, { ...rest }) {
store.state.backendInteractor.fetchTimeline({
store,
timeline,
...opts,
});
...rest
})
},
startFetchingConfig (store) {
if (store.state.fetchers.config) return;
if (store.state.fetchers.config) return
const fetcher = store.state.backendInteractor.startFetchingConfig({
store,
});
store.commit("addFetcher", { fetcherName: "config", fetcher });
const fetcher = store.state.backendInteractor.startFetchingConfig({ store })
store.commit('addFetcher', { fetcherName: 'config', fetcher })
},
stopFetchingConfig (store) {
const fetcher = store.state.fetchers.config;
if (!fetcher) return;
store.commit("removeFetcher", { fetcherName: "config", fetcher });
const fetcher = store.state.fetchers.config
if (!fetcher) return
store.commit('removeFetcher', { fetcherName: 'config', fetcher })
},
// Notifications
startFetchingNotifications (store) {
if (store.state.fetchers.notifications) return;
const fetcher = store.state.backendInteractor.startFetchingNotifications({
store,
});
store.commit("addFetcher", { fetcherName: "notifications", fetcher });
if (store.state.fetchers.notifications) return
const fetcher = store.state.backendInteractor.startFetchingNotifications({ store })
store.commit('addFetcher', { fetcherName: 'notifications', fetcher })
},
stopFetchingNotifications (store) {
const fetcher = store.state.fetchers.notifications;
if (!fetcher) return;
store.commit("removeFetcher", { fetcherName: "notifications", fetcher });
const fetcher = store.state.fetchers.notifications
if (!fetcher) return
store.commit('removeFetcher', { fetcherName: 'notifications', fetcher })
},
fetchNotifications (store, { ...rest }) {
store.state.backendInteractor.fetchNotifications({
store,
...rest,
});
...rest
})
},
removeFollowRequest (store, request) {
let requests = [...store.state.followRequests].filter(
(it) => it.id !== request.id,
);
store.commit("setFollowRequests", requests);
let requests = [...store.state.followRequests].filter((it) => it.id !== request.id)
store.commit('setFollowRequests', requests)
},
fetchFollowRequests ({ rootState, commit }) {
const pagination = rootState.api.followRequestsPagination;
return rootState.api.backendInteractor
.getFollowRequests({ pagination })
const pagination = rootState.api.followRequestsPagination
return rootState.api.backendInteractor.getFollowRequests({ pagination })
.then((requests) => {
if (requests.data.length > 0) {
commit("addNewUsers", requests.data);
commit("saveFollowRequests", requests.data);
commit("saveFollowRequestPagination", requests.pagination);
commit('addNewUsers', requests.data)
commit('saveFollowRequests', requests.data)
commit('saveFollowRequestPagination', requests.pagination)
}
return requests;
});
return requests
})
},
// Lists
startFetchingLists (store) {
if (store.state.fetchers["lists"]) return;
const fetcher = store.state.backendInteractor.startFetchingLists({
store,
});
store.commit("addFetcher", { fetcherName: "lists", fetcher });
if (store.state.fetchers['lists']) return
const fetcher = store.state.backendInteractor.startFetchingLists({ store })
store.commit('addFetcher', { fetcherName: 'lists', fetcher })
},
stopFetchingLists (store) {
const fetcher = store.state.fetchers.lists;
if (!fetcher) return;
store.commit("removeFetcher", { fetcherName: "lists", fetcher });
const fetcher = store.state.fetchers.lists
if (!fetcher) return
store.commit('removeFetcher', { fetcherName: 'lists', fetcher })
},
// Lists
startFetchingAnnouncements (store) {
if (store.state.fetchers["announcements"]) return;
const fetcher = store.state.backendInteractor.startFetchingAnnouncements({
store,
});
store.commit("addFetcher", { fetcherName: "announcements", fetcher });
if (store.state.fetchers['announcements']) return
const fetcher = store.state.backendInteractor.startFetchingAnnouncements({ store })
store.commit('addFetcher', { fetcherName: 'announcements', fetcher })
},
stopFetchingAnnouncements (store) {
const fetcher = store.state.fetchers.announcements;
if (!fetcher) return;
store.commit("removeFetcher", { fetcherName: "announcements", fetcher });
const fetcher = store.state.fetchers.announcements
if (!fetcher) return
store.commit('removeFetcher', { fetcherName: 'announcements', fetcher })
},
// Reports
startFetchingReports (store) {
if (store.state.fetchers["reports"]) return;
const fetcher = store.state.backendInteractor.startFetchingReports({
store,
});
store.commit("addFetcher", { fetcherName: "reports", fetcher });
if (store.state.fetchers['reports']) return
const fetcher = store.state.backendInteractor.startFetchingReports({ store })
store.commit('addFetcher', { fetcherName: 'reports', fetcher })
},
stopFetchingReports (store) {
const fetcher = store.state.fetchers.reports;
if (!fetcher) return;
store.commit("removeFetcher", { fetcherName: "reports", fetcher });
const fetcher = store.state.fetchers.reports
if (!fetcher) return
store.commit('removeFetcher', { fetcherName: 'reports', fetcher })
},
getSupportedTranslationlanguages (store) {
store.state.backendInteractor
.getSupportedTranslationlanguages({ store })
store.state.backendInteractor.getSupportedTranslationlanguages({ store })
.then((data) => {
store.dispatch("setInstanceOption", {
name: "supportedTranslationLanguages",
value: data,
});
});
store.dispatch('setInstanceOption', { name: 'supportedTranslationLanguages', value: data })
})
},
listSettingsProfiles (store) {
store.state.backendInteractor
.listSettingsProfiles({ store })
store.state.backendInteractor.listSettingsProfiles({ store })
.then((data) => {
store.commit("setInstanceOption", {
name: "settingsProfiles",
value: data,
});
});
store.commit('setInstanceOption', { name: 'settingsProfiles', value: data })
})
},
// Pleroma websocket
setWsToken (store, token) {
store.commit("setWsToken", token);
store.commit('setWsToken', token)
},
disconnectFromSocket ({ commit, state }) {
state.socket && state.socket.disconnect();
commit("setSocket", null);
},
},
};
state.socket && state.socket.disconnect()
commit('setSocket', null)
}
}
}
export default api;
export default api

View file

@ -67,7 +67,7 @@ const mutations = {
// actions
const actions = {
// eslint-disable-next-line camelcase
async login ({ state, dispatch, commit }, { access_token }) {
commit('setToken', access_token, { root: true })
await dispatch('loginUser', access_token, { root: true })

View file

@ -22,7 +22,7 @@ export const multiChoiceProperties = [
export const defaultState = {
profile: 'default',
profileVersion: 0, // internal fe copy of server-side version
profileVersion: 0,
expertLevel: 0, // used to track which settings to show and hide
colors: {},
theme: undefined,
@ -116,7 +116,6 @@ export const defaultState = {
conversationTreeFadeAncestors: undefined, // instance default
maxDepthInThread: undefined, // instance default
translationLanguage: undefined, // instance default,
postLanguage: undefined, // instance default,
supportedTranslationLanguages: {}, // instance default
userProfileDefaultTab: 'statuses',
useBlurhash: true,
@ -127,21 +126,6 @@ export const instanceDefaultProperties = Object.entries(defaultState)
.filter(([key, value]) => value === undefined)
.map(([key, value]) => key)
function updateLocalSettings(store, settingEntries, version = null) {
if (version == null)
version = store.state.profileVersion
settingEntries.forEach(([name, value]) => {
if (store.state[name] !== value) {
store.dispatch('setOption', { name, value })
}
})
// Set this at the end to override any potentially stored profileVersion
store.commit('setOption', { name: 'profileVersion', value: version })
}
const config = {
state: { ...defaultState },
getters: {
@ -213,17 +197,19 @@ const config = {
store.dispatch('listSettingsProfiles')
})
},
loadSettings (store, data) {
loadSettings ({ dispatch }, data) {
const knownKeys = new Set(Object.keys(defaultState))
const presentKeys = new Set(Object.keys(data))
const intersection = new Set()
for (let elem of presentKeys) {
if (knownKeys.has(elem)) {
intersection.add(elem)
}
}
// Limit to supported properties
const newSettingEntries =
Object.entries(data)
.filter(([key, value]) => knownKeys.has(key))
// disregard stored profileVersion; sync afterwards increases previous version
updateLocalSettings(store, newSettingEntries, null)
store.dispatch('syncSettings')
intersection.forEach(
name => dispatch('setOption', { name, value: data[name] })
)
},
setHighlight ({ commit, dispatch }, { user, color, type }) {
commit('setHighlight', { user, color, type })
@ -257,7 +243,12 @@ const config = {
.then(({ settings, version }) => {
console.log('found settings version', version)
if (forceUpdate || (version > store.state.profileVersion)) {
updateLocalSettings(store, Object.entries(settings), version)
store.commit('setOption', { name: 'profileVersion', value: version })
Object.entries(settings).forEach(([name, value]) => {
if (store.state[name] !== value) {
store.dispatch('setOption', { name, value })
}
})
} else {
console.log('settings are up to date')
}

View file

@ -314,7 +314,7 @@ const addNewStatuses = (state, { statuses, showImmediately = false, timeline, us
})
// Keep the visible statuses sorted
if (timeline && !(['bookmarks', 'favorites'].includes(timeline))) {
if (timeline && !(timeline === 'bookmarks')) {
sortTimeline(timelineObject)
}
}

View file

@ -18,6 +18,7 @@
bottom: 0;
left: 0;
right: 0;
z-index: 5;
box-shadow: 1px 1px 4px rgba(0, 0, 0, 0.6);
box-shadow: var(--panelShadow);
pointer-events: none;
@ -59,6 +60,7 @@
padding: 0.6em;
height: var(--__panel-heading-height);
line-height: var(--__panel-heading-height-inner);
z-index: 4;
&.-flexible-height {
--__panel-heading-height: auto;
@ -129,7 +131,6 @@
color: var(--panelText);
background-color: $fallback--bg;
background-color: var(--bg, $fallback--bg);
z-index: 4;
&::after {
background-color: $fallback--fg;

View file

@ -29,7 +29,7 @@ export const newImporter = ({
filePicker.addEventListener('change', event => {
if (event.target.files[0]) {
// eslint-disable-next-line no-undef
const reader = new FileReader()
reader.onload = ({ target }) => {
try {

Binary file not shown.

Before

Width:  |  Height:  |  Size: 628 KiB

BIN
static/background.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.5 KiB

View file

@ -1,6 +1,6 @@
{
"alwaysShowSubjectInput": true,
"background": "/static/aurora_borealis.jpg",
"background": "/static/background.png",
"collapseMessageWithSubject": false,
"greentext": false,
"hideFilteredStatuses": false,
@ -18,9 +18,9 @@
"redirectRootLogin": "/main/friends",
"redirectRootNoLogin": "/main/all",
"showFeaturesPanel": true,
"showInstanceSpecificPanel": false,
"sidebarRight": false,
"showInstanceSpecificPanel": true,
"sidebarRight": true,
"subjectLineBehavior": "email",
"theme": "ihatebeingalive",
"theme": "hyenanet_darker",
"webPushNotifications": false
}

Some files were not shown because too many files have changed in this diff Show more