Soapbox FE --> Soapbox
This commit is contained in:
parent
c29bf4040a
commit
5fec9c580b
51 changed files with 83 additions and 94 deletions
29
README.md
29
README.md
|
@ -1,9 +1,8 @@
|
|||
# Soapbox FE
|
||||
# Soapbox
|
||||
|
||||
![Soapbox FE Screenshot](soapbox-screenshot.png)
|
||||
![Soapbox Screenshot](soapbox-screenshot.png)
|
||||
|
||||
**Soapbox FE** is a frontend for Mastodon and Pleroma with a focus on custom branding and ease of use.
|
||||
It's part of the [Soapbox](https://soapbox.pub) project.
|
||||
**Soapbox** is a frontend for Mastodon and Pleroma with a focus on custom branding and ease of use.
|
||||
|
||||
## Try it out
|
||||
|
||||
|
@ -11,11 +10,11 @@ Visit https://fe.soapbox.pub/ and point it to your favorite instance.
|
|||
|
||||
## :rocket: Deploy on Pleroma
|
||||
|
||||
Installing Soapbox FE on an existing Pleroma server is extremely easy.
|
||||
Installing Soapbox on an existing Pleroma server is extremely easy.
|
||||
Just ssh into the server and download a .zip of the latest build:
|
||||
|
||||
```sh
|
||||
curl -L https://gitlab.com/soapbox-pub/soapbox-fe/-/jobs/artifacts/v2.0.0/download?job=build-production -o soapbox-fe.zip
|
||||
curl -L https://gitlab.com/soapbox-pub/soapbox-fe/-/jobs/artifacts/develop/download?job=build-production -o soapbox-fe.zip
|
||||
```
|
||||
|
||||
Then unpack it into Pleroma's `instance` directory:
|
||||
|
@ -25,11 +24,11 @@ busybox unzip soapbox-fe.zip -o -d /opt/pleroma/instance
|
|||
```
|
||||
|
||||
**That's it!** :tada:
|
||||
**Soapbox FE is installed.**
|
||||
**Soapbox is installed.**
|
||||
The change will take effect immediately, just refresh your browser tab.
|
||||
It's not necessary to restart the Pleroma service.
|
||||
|
||||
To remove Soapbox FE and revert to the default pleroma-fe, simply `rm /opt/pleroma/instance/static/index.html` (you can delete other stuff in there too, but be careful not to delete your own HTML files).
|
||||
To remove Soapbox and revert to the default pleroma-fe, simply `rm /opt/pleroma/instance/static/index.html` (you can delete other stuff in there too, but be careful not to delete your own HTML files).
|
||||
|
||||
## :elephant: Deploy on Mastodon
|
||||
|
||||
|
@ -37,7 +36,7 @@ See [Installing Soapbox over Mastodon](https://docs.soapbox.pub/frontend/adminis
|
|||
|
||||
## How does it work?
|
||||
|
||||
Soapbox FE is a [single-page application (SPA)](https://en.wikipedia.org/wiki/Single-page_application) that runs entirely in the browser with JavaScript.
|
||||
Soapbox is a [single-page application (SPA)](https://en.wikipedia.org/wiki/Single-page_application) that runs entirely in the browser with JavaScript.
|
||||
|
||||
It has a single HTML file, `index.html`, responsible only for loading the required JavaScript and CSS.
|
||||
It interacts with the backend through [XMLHttpRequest (XHR)](https://developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequest).
|
||||
|
@ -115,9 +114,9 @@ All configuration is optional, except `NODE_ENV`.
|
|||
#### `NODE_ENV`
|
||||
|
||||
The Node environment.
|
||||
Soapbox FE checks for the following options:
|
||||
Soapbox checks for the following options:
|
||||
|
||||
- `development` - What you should use while developing Soapbox FE.
|
||||
- `development` - What you should use while developing Soapbox.
|
||||
- `production` - Use when compiling to deploy to a live server.
|
||||
- `test` - Use when running automated tests.
|
||||
|
||||
|
@ -193,19 +192,19 @@ More details can be found in [Customizing Soapbox](docs/customization.md).
|
|||
|
||||
# License & Credits
|
||||
|
||||
Soapbox FE is based on [Gab Social](https://code.gab.com/gab/social/gab-social)'s frontend which is in turn based on [Mastodon](https://github.com/tootsuite/mastodon/)'s frontend.
|
||||
Soapbox is based on [Gab Social](https://code.gab.com/gab/social/gab-social)'s frontend which is in turn based on [Mastodon](https://github.com/tootsuite/mastodon/)'s frontend.
|
||||
|
||||
- `static/sounds/chat.mp3` and `static/sounds/chat.oga` are from [notificationsounds.com](https://notificationsounds.com/notification-sounds/intuition-561) licensed under CC BY 4.0.
|
||||
|
||||
Soapbox FE is free software: you can redistribute it and/or modify
|
||||
Soapbox is free software: you can redistribute it and/or modify
|
||||
it under the terms of the GNU Affero General Public License as published by
|
||||
the Free Software Foundation, either version 3 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
Soapbox FE is distributed in the hope that it will be useful,
|
||||
Soapbox is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU Affero General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU Affero General Public License
|
||||
along with Soapbox FE. If not, see <https://www.gnu.org/licenses/>.
|
||||
along with Soapbox. If not, see <https://www.gnu.org/licenses/>.
|
||||
|
|
|
@ -1044,7 +1044,7 @@
|
|||
"time_remaining.seconds": "{number, plural, one {# second} other {# seconds}} left",
|
||||
"trends.count_by_accounts": "{count} {rawCount, plural, one {person} other {people}} talking",
|
||||
"trends.title": "Trends",
|
||||
"ui.beforeunload": "El borrador va perdese si coles de Soapbox FE.",
|
||||
"ui.beforeunload": "El borrador va perdese si coles de Soapbox.",
|
||||
"unauthorized_modal.text": "You need to be logged in to do that.",
|
||||
"unauthorized_modal.title": "Sign up for {site_title}",
|
||||
"upload_area.title": "Drag & drop to upload",
|
||||
|
|
|
@ -1044,7 +1044,7 @@
|
|||
"time_remaining.seconds": "{number, plural, one {# second} other {# seconds}} বাকি আছে",
|
||||
"trends.count_by_accounts": "{count} {rawCount, plural, one {person} other {people}} কথা বলছে",
|
||||
"trends.title": "Trends",
|
||||
"ui.beforeunload": "যে পর্যন্ত এটা লেখা হয়েছে, Soapbox FE থেকে চলে গেলে এটা মুছে যাবে।",
|
||||
"ui.beforeunload": "যে পর্যন্ত এটা লেখা হয়েছে, Soapbox থেকে চলে গেলে এটা মুছে যাবে।",
|
||||
"unauthorized_modal.text": "You need to be logged in to do that.",
|
||||
"unauthorized_modal.title": "Sign up for {site_title}",
|
||||
"upload_area.title": "টেনে এখানে ছেড়ে দিলে এখানে যুক্ত করা যাবে",
|
||||
|
|
|
@ -1042,7 +1042,7 @@
|
|||
"time_remaining.seconds": "{number, plural, one {# segon} other {# segons}} restants",
|
||||
"trends.count_by_accounts": "{count} {rawCount, plural, one {persona} other {persones}} parlant-hi",
|
||||
"trends.title": "Tendències",
|
||||
"ui.beforeunload": "El teu esborrany es perdrà si surts de Soapbox FE.",
|
||||
"ui.beforeunload": "El teu esborrany es perdrà si surts de Soapbox.",
|
||||
"unauthorized_modal.text": "Heu d'iniciar sessió per fer això.",
|
||||
"unauthorized_modal.title": "Registrar-se a {site_title}",
|
||||
"upload_area.title": "Arrossega i deixa anar per a carregar",
|
||||
|
|
|
@ -1044,7 +1044,7 @@
|
|||
"time_remaining.seconds": "{number, plural, one {# siconda ferma} other {# siconde fermanu}}",
|
||||
"trends.count_by_accounts": "{count} {rawCount, plural, one {person} other {people}} parlanu",
|
||||
"trends.title": "Trends",
|
||||
"ui.beforeunload": "A bruttacopia sarà persa s'ellu hè chjosu Soapbox FE.",
|
||||
"ui.beforeunload": "A bruttacopia sarà persa s'ellu hè chjosu Soapbox.",
|
||||
"unauthorized_modal.text": "You need to be logged in to do that.",
|
||||
"unauthorized_modal.title": "Sign up for {site_title}",
|
||||
"upload_area.title": "Drag & drop per caricà un fugliale",
|
||||
|
|
|
@ -1042,7 +1042,7 @@
|
|||
"time_remaining.seconds": "{number, plural, one {Zbývá # sekunda} few {Zbývají # sekundy} many {Zbývá # sekundy} other {Zbývá # sekund}}",
|
||||
"trends.count_by_accounts": "{count} {rawCount, plural, one {člověk} few {lidé} many {lidí} other {lidí}} hovoří",
|
||||
"trends.title": "Trendy",
|
||||
"ui.beforeunload": "Váš koncept se ztratí, pokud Soapbox FE opustíte.",
|
||||
"ui.beforeunload": "Váš koncept se ztratí, pokud Soapbox opustíte.",
|
||||
"unauthorized_modal.text": "Pro toto musíte být přihlášen/a.",
|
||||
"unauthorized_modal.title": "Registrovat se na {site_title}",
|
||||
"upload_area.title": "Přetažením nahrajete",
|
||||
|
|
|
@ -1044,7 +1044,7 @@
|
|||
"time_remaining.seconds": "{number, plural, one {# eiliad} other {# o eiliadau}} ar ôl",
|
||||
"trends.count_by_accounts": "{count} {rawCount, plural, one {person} other {people}} yn siarad",
|
||||
"trends.title": "Trends",
|
||||
"ui.beforeunload": "Mi fyddwch yn colli eich drafft os gadewch Soapbox FE.",
|
||||
"ui.beforeunload": "Mi fyddwch yn colli eich drafft os gadewch Soapbox.",
|
||||
"unauthorized_modal.text": "You need to be logged in to do that.",
|
||||
"unauthorized_modal.title": "Sign up for {site_title}",
|
||||
"upload_area.title": "Llusgwch & gollwing i uwchlwytho",
|
||||
|
|
|
@ -1044,7 +1044,7 @@
|
|||
"time_remaining.seconds": "{number, plural, one {# sekund} other {# sekunder}} tilbage",
|
||||
"trends.count_by_accounts": "{count} {rawCount, plural, one {person} other {personer}} snakker",
|
||||
"trends.title": "Trends",
|
||||
"ui.beforeunload": "Din kladde vil gå tabt hvis du forlader Soapbox FE.",
|
||||
"ui.beforeunload": "Din kladde vil gå tabt hvis du forlader Soapbox.",
|
||||
"unauthorized_modal.text": "You need to be logged in to do that.",
|
||||
"unauthorized_modal.title": "Sign up for {site_title}",
|
||||
"upload_area.title": "Træk og slip for at uploade",
|
||||
|
|
|
@ -1044,7 +1044,7 @@
|
|||
"time_remaining.seconds": "{number, plural, one {# Sekunde} other {# Sekunden}} verbleibend",
|
||||
"trends.count_by_accounts": "{count} {rawCount, plural, eine {Person} other {Personen}} reden darüber",
|
||||
"trends.title": "Trends",
|
||||
"ui.beforeunload": "Dein Entwurf geht verloren, wenn du Soapbox FE verlässt.",
|
||||
"ui.beforeunload": "Dein Entwurf geht verloren, wenn du Soapbox verlässt.",
|
||||
"unauthorized_modal.text": "Für diese Aktion musst Du angemeldet sein.",
|
||||
"unauthorized_modal.title": "Sign up for {site_title}",
|
||||
"upload_area.title": "Zum Hochladen hereinziehen",
|
||||
|
|
|
@ -1044,7 +1044,7 @@
|
|||
"time_remaining.seconds": "απομένουν {number, plural, one {# δευτερόλεπτο} other {# δευτερόλεπτα}}",
|
||||
"trends.count_by_accounts": "{count} {rawCount, plural, one {person} other {people}} μιλάνε",
|
||||
"trends.title": "Trends",
|
||||
"ui.beforeunload": "Το προσχέδιό σου θα χαθεί αν φύγεις από το Soapbox FE.",
|
||||
"ui.beforeunload": "Το προσχέδιό σου θα χαθεί αν φύγεις από το Soapbox.",
|
||||
"unauthorized_modal.text": "You need to be logged in to do that.",
|
||||
"unauthorized_modal.title": "Sign up for {site_title}",
|
||||
"upload_area.title": "Drag & drop για να ανεβάσεις",
|
||||
|
|
|
@ -1044,7 +1044,7 @@
|
|||
"time_remaining.seconds": "{number, plural, one {# sekundo} other {# sekundoj}} restas",
|
||||
"trends.count_by_accounts": "{count} {rawCount, plural, one {persono} other {personoj}} parolas",
|
||||
"trends.title": "Trends",
|
||||
"ui.beforeunload": "Via malneto perdiĝos se vi eliras de Soapbox FE.",
|
||||
"ui.beforeunload": "Via malneto perdiĝos se vi eliras de Soapbox.",
|
||||
"unauthorized_modal.text": "You need to be logged in to do that.",
|
||||
"unauthorized_modal.title": "Sign up for {site_title}",
|
||||
"upload_area.title": "Altreni kaj lasi por alŝuti",
|
||||
|
|
|
@ -1044,7 +1044,7 @@
|
|||
"time_remaining.seconds": "{number, plural,one {queda # segundo} other {quedan # segundos}}",
|
||||
"trends.count_by_accounts": "{count} {rawCount, plural, one {persona} other {personas}} hablando",
|
||||
"trends.title": "Trends",
|
||||
"ui.beforeunload": "Tu borrador se perderá si abandonás Soapbox FE.",
|
||||
"ui.beforeunload": "Tu borrador se perderá si abandonás Soapbox.",
|
||||
"unauthorized_modal.text": "You need to be logged in to do that.",
|
||||
"unauthorized_modal.title": "Sign up for {site_title}",
|
||||
"upload_area.title": "Para subir, arrastrá y soltá",
|
||||
|
|
|
@ -1044,7 +1044,7 @@
|
|||
"time_remaining.seconds": "{number, plural, one {# segundo restante} other {# segundos restantes}}",
|
||||
"trends.count_by_accounts": "{count} {rawCount, plural, one {persona} other {personas}} hablando",
|
||||
"trends.title": "Trends",
|
||||
"ui.beforeunload": "Tu borrador se perderá si sales de Soapbox FE.",
|
||||
"ui.beforeunload": "Tu borrador se perderá si sales de Soapbox.",
|
||||
"unauthorized_modal.text": "You need to be logged in to do that.",
|
||||
"unauthorized_modal.title": "Sign up for {site_title}",
|
||||
"upload_area.title": "Arrastra y suelta para subir",
|
||||
|
|
|
@ -1044,7 +1044,7 @@
|
|||
"time_remaining.seconds": "{number, plural, one {# sekund} other {# sekundit}} left",
|
||||
"trends.count_by_accounts": "{count} {rawCount, plural, one {inimene} other {inimesed}} talking",
|
||||
"trends.title": "Trends",
|
||||
"ui.beforeunload": "Sinu mustand läheb kaotsi, kui lahkud Soapbox FE.",
|
||||
"ui.beforeunload": "Sinu mustand läheb kaotsi, kui lahkud Soapbox.",
|
||||
"unauthorized_modal.text": "You need to be logged in to do that.",
|
||||
"unauthorized_modal.title": "Sign up for {site_title}",
|
||||
"upload_area.title": "Lohista & aseta üleslaadimiseks",
|
||||
|
|
|
@ -1044,7 +1044,7 @@
|
|||
"time_remaining.seconds": "{number, plural, one {segundo #} other {# segundo}} amaitzeko",
|
||||
"trends.count_by_accounts": "{count} {rawCount, plural, one {person} other {people}} hitz egiten",
|
||||
"trends.title": "Trends",
|
||||
"ui.beforeunload": "Zure zirriborroa galduko da Soapbox FE uzten baduzu.",
|
||||
"ui.beforeunload": "Zure zirriborroa galduko da Soapbox uzten baduzu.",
|
||||
"unauthorized_modal.text": "You need to be logged in to do that.",
|
||||
"unauthorized_modal.title": "Sign up for {site_title}",
|
||||
"upload_area.title": "Arrastatu eta jaregin igotzeko",
|
||||
|
|
|
@ -1044,7 +1044,7 @@
|
|||
"time_remaining.seconds": "{number, plural, one {# second} other {# seconds}} restantes",
|
||||
"trends.count_by_accounts": "{count} {rawCount, plural, one {personne} other {personnes}} discutent",
|
||||
"trends.title": "Trends",
|
||||
"ui.beforeunload": "Votre brouillon sera perdu si vous quittez Soapbox FE.",
|
||||
"ui.beforeunload": "Votre brouillon sera perdu si vous quittez Soapbox.",
|
||||
"unauthorized_modal.text": "You need to be logged in to do that.",
|
||||
"unauthorized_modal.title": "Sign up for {site_title}",
|
||||
"upload_area.title": "Glissez et déposez pour envoyer",
|
||||
|
|
|
@ -1044,7 +1044,7 @@
|
|||
"time_remaining.seconds": "{number, plural, one {# segundo} other {# segundos}} restantes",
|
||||
"trends.count_by_accounts": "{count} {rawCount, plural, one {person} outras {people}} conversando",
|
||||
"trends.title": "Trends",
|
||||
"ui.beforeunload": "O borrador perderase se sae de Soapbox FE.",
|
||||
"ui.beforeunload": "O borrador perderase se sae de Soapbox.",
|
||||
"unauthorized_modal.text": "You need to be logged in to do that.",
|
||||
"unauthorized_modal.title": "Sign up for {site_title}",
|
||||
"upload_area.title": "Arrastre e solte para subir",
|
||||
|
|
|
@ -1044,7 +1044,7 @@
|
|||
"time_remaining.seconds": "{number, plural, one {# másodperc} other {# másodperc}} van hátra",
|
||||
"trends.count_by_accounts": "{count} {rawCount, plural, one {résztvevő} other {résztvevő}} beszélget",
|
||||
"trends.title": "Trends",
|
||||
"ui.beforeunload": "A piszkozatod el fog veszni, ha elhagyod a Soapbox FE-t.",
|
||||
"ui.beforeunload": "A piszkozatod el fog veszni, ha elhagyod a Soapbox-t.",
|
||||
"unauthorized_modal.text": "You need to be logged in to do that.",
|
||||
"unauthorized_modal.title": "Sign up for {site_title}",
|
||||
"upload_area.title": "Húzd ide a feltöltéshez",
|
||||
|
|
|
@ -1044,7 +1044,7 @@
|
|||
"time_remaining.seconds": "{number, plural, one {# second} other {# seconds}} left",
|
||||
"trends.count_by_accounts": "{count} {rawCount, plural, one {person} other {people}} talking",
|
||||
"trends.title": "Trends",
|
||||
"ui.beforeunload": "Naskah anda akan hilang jika anda keluar dari Soapbox FE.",
|
||||
"ui.beforeunload": "Naskah anda akan hilang jika anda keluar dari Soapbox.",
|
||||
"unauthorized_modal.text": "You need to be logged in to do that.",
|
||||
"unauthorized_modal.title": "Sign up for {site_title}",
|
||||
"upload_area.title": "Seret & lepaskan untuk mengunggah",
|
||||
|
|
|
@ -1044,7 +1044,7 @@
|
|||
"time_remaining.seconds": "{number, plural, one {# secondo} other {# secondi}} rimasti",
|
||||
"trends.count_by_accounts": "{count} {rawCount, plural, one {persona ne sta} other {persone ne stanno}} parlando",
|
||||
"trends.title": "Trends",
|
||||
"ui.beforeunload": "La bozza andrà persa se esci da Soapbox FE.",
|
||||
"ui.beforeunload": "La bozza andrà persa se esci da Soapbox.",
|
||||
"unauthorized_modal.text": "Devi eseguire l'autenticazione per fare questo",
|
||||
"unauthorized_modal.title": "Iscriviti su {site_title}",
|
||||
"upload_area.title": "Trascina per caricare",
|
||||
|
|
|
@ -1042,7 +1042,7 @@
|
|||
"time_remaining.seconds": "残り{number}秒",
|
||||
"trends.count_by_accounts": "{count}人が投稿",
|
||||
"trends.title": "Trends",
|
||||
"ui.beforeunload": "Soapbox FEから離れると送信前の投稿は失われます。",
|
||||
"ui.beforeunload": "Soapboxから離れると送信前の投稿は失われます。",
|
||||
"unauthorized_modal.text": "ログインする必要があります。",
|
||||
"unauthorized_modal.title": "{site_title}へ新規登録",
|
||||
"upload_area.title": "ドラッグ&ドロップでアップロード",
|
||||
|
|
|
@ -1044,7 +1044,7 @@
|
|||
"time_remaining.seconds": "{number, plural, one {# секунд} other {# секунд}}",
|
||||
"trends.count_by_accounts": "{count} {rawCount, plural, one {person} other {people}} жазған екен",
|
||||
"trends.title": "Trends",
|
||||
"ui.beforeunload": "Soapbox FE желісінен шықсаңыз, нобайыңыз сақталмайды.",
|
||||
"ui.beforeunload": "Soapbox желісінен шықсаңыз, нобайыңыз сақталмайды.",
|
||||
"unauthorized_modal.text": "You need to be logged in to do that.",
|
||||
"unauthorized_modal.title": "Sign up for {site_title}",
|
||||
"upload_area.title": "Жүктеу үшін сүйреп әкеліңіз",
|
||||
|
|
|
@ -1044,7 +1044,7 @@
|
|||
"time_remaining.seconds": "{number, plural, one {# seconde} other {# seconden}} te gaan",
|
||||
"trends.count_by_accounts": "{count} {rawCount, plural, one {persoon praat} other {mensen praten}} hierover",
|
||||
"trends.title": "Trends",
|
||||
"ui.beforeunload": "Je concept zal verloren gaan als je Soapbox FE verlaat.",
|
||||
"ui.beforeunload": "Je concept zal verloren gaan als je Soapbox verlaat.",
|
||||
"unauthorized_modal.text": "You need to be logged in to do that.",
|
||||
"unauthorized_modal.title": "Sign up for {site_title}",
|
||||
"upload_area.title": "Hiernaar toe slepen om te uploaden",
|
||||
|
|
|
@ -1044,7 +1044,7 @@
|
|||
"time_remaining.seconds": "{number, plural, one {# second} other {# seconds}} left",
|
||||
"trends.count_by_accounts": "{count} {rawCount, plural, one {person} other {people}} talking",
|
||||
"trends.title": "Trends",
|
||||
"ui.beforeunload": "Din kladd vil bli forkastet om du forlater Soapbox FE.",
|
||||
"ui.beforeunload": "Din kladd vil bli forkastet om du forlater Soapbox.",
|
||||
"unauthorized_modal.text": "You need to be logged in to do that.",
|
||||
"unauthorized_modal.title": "Sign up for {site_title}",
|
||||
"upload_area.title": "Dra og slipp for å laste opp",
|
||||
|
|
|
@ -1044,7 +1044,7 @@
|
|||
"time_remaining.seconds": "demòra{number, plural, one { # segonda} other {n # segondas}}",
|
||||
"trends.count_by_accounts": "{count} {rawCount, plural, one {person} other {people}} talking",
|
||||
"trends.title": "Trends",
|
||||
"ui.beforeunload": "Vòstre brolhon serà perdut se quitatz Soapbox FE.",
|
||||
"ui.beforeunload": "Vòstre brolhon serà perdut se quitatz Soapbox.",
|
||||
"unauthorized_modal.text": "You need to be logged in to do that.",
|
||||
"unauthorized_modal.title": "Sign up for {site_title}",
|
||||
"upload_area.title": "Lisatz e depausatz per mandar",
|
||||
|
|
|
@ -1218,7 +1218,7 @@
|
|||
"time_remaining.seconds": "{number, plural, one {Pozostała # sekunda} few {Pozostały # sekundy} many {Pozostało # sekund} other {Pozostało # sekund}}",
|
||||
"trends.count_by_accounts": "{count} {rawCount, plural, one {osoba rozmawia} few {osoby rozmawiają} other {osób rozmawia}} o tym",
|
||||
"trends.title": "Trendy",
|
||||
"ui.beforeunload": "Utracisz tworzony wpis, jeżeli opuścisz Soapbox FE.",
|
||||
"ui.beforeunload": "Utracisz tworzony wpis, jeżeli opuścisz Soapbox.",
|
||||
"unauthorized_modal.footer": "Masz już konto? {login}.",
|
||||
"unauthorized_modal.text": "Musisz się zalogować, aby to zrobić.",
|
||||
"unauthorized_modal.title": "Zarejestruj się na {site_title}",
|
||||
|
@ -1244,4 +1244,4 @@
|
|||
"video.play": "Odtwórz",
|
||||
"video.unmute": "Cofnij wyciszenie",
|
||||
"who_to_follow.title": "Kogo obserwować"
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1044,7 +1044,7 @@
|
|||
"time_remaining.seconds": "{number, plural, one {# segundo restante} other {# segundos restantes}}",
|
||||
"trends.count_by_accounts": "{count} {rawCount, plural, one {pessoa} other {pessoas}} falando sobre",
|
||||
"trends.title": "Trends",
|
||||
"ui.beforeunload": "Seu rascunho será perdido se você sair do Soapbox FE.",
|
||||
"ui.beforeunload": "Seu rascunho será perdido se você sair do Soapbox.",
|
||||
"unauthorized_modal.text": "You need to be logged in to do that.",
|
||||
"unauthorized_modal.title": "Sign up for {site_title}",
|
||||
"upload_area.title": "Arraste e solte para enviar",
|
||||
|
|
|
@ -1042,7 +1042,7 @@
|
|||
"time_remaining.seconds": "{number, plural, one {# segundo restante} other {# segundos restantes}}",
|
||||
"trends.count_by_accounts": "{count} {rawCount, plural, one {pessoa} other {pessoas}} estão a falar sobre",
|
||||
"trends.title": "Atualidade",
|
||||
"ui.beforeunload": "O teu rascunho será perdido se abandonares o Soapbox FE.",
|
||||
"ui.beforeunload": "O teu rascunho será perdido se abandonares o Soapbox.",
|
||||
"unauthorized_modal.text": "Deves ter a sessão iniciada para realizares essa ação.",
|
||||
"unauthorized_modal.title": "Registar no {site_title}",
|
||||
"upload_area.title": "Arrasta e larga para enviar",
|
||||
|
|
|
@ -1044,7 +1044,7 @@
|
|||
"time_remaining.seconds": "{number, plural, one {осталась # секунду} few {осталось # секунды} many {осталось # секунд} other {осталось # секунд}}",
|
||||
"trends.count_by_accounts": "{count} {rawCount, plural, one {человек говорит} few {человека говорят} other {человек говорят}} про это",
|
||||
"trends.title": "Trends",
|
||||
"ui.beforeunload": "Ваш черновик будет утерян, если вы покинете Soapbox FE.",
|
||||
"ui.beforeunload": "Ваш черновик будет утерян, если вы покинете Soapbox.",
|
||||
"unauthorized_modal.text": "You need to be logged in to do that.",
|
||||
"unauthorized_modal.title": "Sign up for {site_title}",
|
||||
"upload_area.title": "Перетащите сюда, чтобы загрузить",
|
||||
|
|
|
@ -1044,7 +1044,7 @@
|
|||
"time_remaining.seconds": "Ostáva {number, plural, one {# sekunda} few {# sekúnd} many {# sekúnd} other {# sekúnd}}",
|
||||
"trends.count_by_accounts": "{count} {rawCount, plural, one {človek vraví} other {ľudia vravia}}",
|
||||
"trends.title": "Trends",
|
||||
"ui.beforeunload": "Čo máš rozpísané sa stratí, ak opustíš Soapbox FE.",
|
||||
"ui.beforeunload": "Čo máš rozpísané sa stratí, ak opustíš Soapbox.",
|
||||
"unauthorized_modal.text": "You need to be logged in to do that.",
|
||||
"unauthorized_modal.title": "Sign up for {site_title}",
|
||||
"upload_area.title": "Pretiahni a pusť pre nahratie",
|
||||
|
|
|
@ -1044,7 +1044,7 @@
|
|||
"time_remaining.seconds": "{number, plural, one {# sekunda} other {# sekund}} je ostalo",
|
||||
"trends.count_by_accounts": "{count} {rawCount, plural, one {oseba} other {ljudi}} govori",
|
||||
"trends.title": "Trends",
|
||||
"ui.beforeunload": "Vaš osnutek bo izgubljen, če zapustite Soapbox FEa.",
|
||||
"ui.beforeunload": "Vaš osnutek bo izgubljen, če zapustite Soapboxa.",
|
||||
"unauthorized_modal.text": "You need to be logged in to do that.",
|
||||
"unauthorized_modal.title": "Sign up for {site_title}",
|
||||
"upload_area.title": "Za pošiljanje povlecite in spustite",
|
||||
|
|
|
@ -1044,7 +1044,7 @@
|
|||
"time_remaining.seconds": "{number, plural, one {# second} other {# seconds}} left",
|
||||
"trends.count_by_accounts": "{count} {rawCount, plural, one {person duke folur} other {persona që flasin}}",
|
||||
"trends.title": "Trends",
|
||||
"ui.beforeunload": "Skica juaj do të humbë nëse dilni nga Soapbox FE-i.",
|
||||
"ui.beforeunload": "Skica juaj do të humbë nëse dilni nga Soapbox-i.",
|
||||
"unauthorized_modal.text": "You need to be logged in to do that.",
|
||||
"unauthorized_modal.title": "Sign up for {site_title}",
|
||||
"upload_area.title": "Merreni & vëreni që të ngarkohet",
|
||||
|
|
|
@ -1044,7 +1044,7 @@
|
|||
"time_remaining.seconds": "{number, plural, one {# second} other {# seconds}} left",
|
||||
"trends.count_by_accounts": "{count} {rawCount, plural, one {person} other {people}} talking",
|
||||
"trends.title": "Trends",
|
||||
"ui.beforeunload": "Ako napustite Soapbox FE, izgubićete napisani nacrt.",
|
||||
"ui.beforeunload": "Ako napustite Soapbox, izgubićete napisani nacrt.",
|
||||
"unauthorized_modal.text": "You need to be logged in to do that.",
|
||||
"unauthorized_modal.title": "Sign up for {site_title}",
|
||||
"upload_area.title": "Prevucite ovde da otpremite",
|
||||
|
|
|
@ -1044,7 +1044,7 @@
|
|||
"time_remaining.seconds": "{number, plural, one {# second} other {# seconds}} left",
|
||||
"trends.count_by_accounts": "{count} {rawCount, plural, one {човек} other {људи}} прича",
|
||||
"trends.title": "Trends",
|
||||
"ui.beforeunload": "Ако напустите Soapbox FE, изгубићете написани нацрт.",
|
||||
"ui.beforeunload": "Ако напустите Soapbox, изгубићете написани нацрт.",
|
||||
"unauthorized_modal.text": "You need to be logged in to do that.",
|
||||
"unauthorized_modal.title": "Sign up for {site_title}",
|
||||
"upload_area.title": "Превуците овде да отпремите",
|
||||
|
|
|
@ -1044,7 +1044,7 @@
|
|||
"time_remaining.seconds": "{number, plural, one {# sekund} other {# sekunder}} kvar",
|
||||
"trends.count_by_accounts": "{count} {rawCount, plural, en {person} andra {people}} pratar",
|
||||
"trends.title": "Trends",
|
||||
"ui.beforeunload": "Ditt utkast kommer att förloras om du lämnar Soapbox FE.",
|
||||
"ui.beforeunload": "Ditt utkast kommer att förloras om du lämnar Soapbox.",
|
||||
"unauthorized_modal.text": "You need to be logged in to do that.",
|
||||
"unauthorized_modal.title": "Sign up for {site_title}",
|
||||
"upload_area.title": "Dra & släpp för att ladda upp",
|
||||
|
|
|
@ -1044,7 +1044,7 @@
|
|||
"time_remaining.seconds": "เหลืออีก {number, plural, other {# วินาที}}",
|
||||
"trends.count_by_accounts": "{count} {rawCount, plural, other {คน}}กำลังคุย",
|
||||
"trends.title": "Trends",
|
||||
"ui.beforeunload": "แบบร่างของคุณจะหายไปหากคุณออกจาก Soapbox FE",
|
||||
"ui.beforeunload": "แบบร่างของคุณจะหายไปหากคุณออกจาก Soapbox",
|
||||
"unauthorized_modal.text": "You need to be logged in to do that.",
|
||||
"unauthorized_modal.title": "Sign up for {site_title}",
|
||||
"upload_area.title": "ลากแล้วปล่อยเพื่ออัปโหลด",
|
||||
|
|
|
@ -1044,7 +1044,7 @@
|
|||
"time_remaining.seconds": "{number, plural, one {# saniye} other {# saniye}} kaldı",
|
||||
"trends.count_by_accounts": "{count} {rawCount, plural, one {kişi} other {kişi}} konuşuyor",
|
||||
"trends.title": "Trends",
|
||||
"ui.beforeunload": "Soapbox FE'dan ayrılırsanız taslağınız kaybolacak.",
|
||||
"ui.beforeunload": "Soapbox'dan ayrılırsanız taslağınız kaybolacak.",
|
||||
"unauthorized_modal.text": "You need to be logged in to do that.",
|
||||
"unauthorized_modal.title": "Sign up for {site_title}",
|
||||
"upload_area.title": "Karşıya yükleme için sürükle bırak yapınız",
|
||||
|
|
|
@ -1044,7 +1044,7 @@
|
|||
"time_remaining.seconds": "{number, plural, one {# секунда} few {# секунди} other {# секунд}}",
|
||||
"trends.count_by_accounts": "{count} {rawCount, plural, one {людина} few {людини} many {людей} other {людей}} обговорюють це",
|
||||
"trends.title": "Актуальні",
|
||||
"ui.beforeunload": "Вашу чернетку буде втрачено, якщо ви покинете Soapbox FE.",
|
||||
"ui.beforeunload": "Вашу чернетку буде втрачено, якщо ви покинете Soapbox.",
|
||||
"unauthorized_modal.text": "You need to be logged in to do that.",
|
||||
"unauthorized_modal.title": "Sign up for {site_title}",
|
||||
"upload_area.title": "Перетягніть сюди, щоб завантажити",
|
||||
|
|
|
@ -1044,7 +1044,7 @@
|
|||
"time_remaining.seconds": "{number, plural, one {# second} other {# seconds}} left",
|
||||
"trends.count_by_accounts": "{count} 位用戶在討論",
|
||||
"trends.title": "Trends",
|
||||
"ui.beforeunload": "如果你現在離開 Soapbox FE,你的草稿內容將會被丟棄。",
|
||||
"ui.beforeunload": "如果你現在離開 Soapbox,你的草稿內容將會被丟棄。",
|
||||
"unauthorized_modal.text": "You need to be logged in to do that.",
|
||||
"unauthorized_modal.title": "Sign up for {site_title}",
|
||||
"upload_area.title": "將檔案拖放至此上載",
|
||||
|
|
|
@ -1044,7 +1044,7 @@
|
|||
"time_remaining.seconds": "剩餘 {number, plural, one {# 秒} other {# 秒}}",
|
||||
"trends.count_by_accounts": "{count} 位使用者在討論",
|
||||
"trends.title": "Trends",
|
||||
"ui.beforeunload": "如果離開 Soapbox FE,你的草稿將會不見。",
|
||||
"ui.beforeunload": "如果離開 Soapbox,你的草稿將會不見。",
|
||||
"unauthorized_modal.text": "You need to be logged in to do that.",
|
||||
"unauthorized_modal.title": "Sign up for {site_title}",
|
||||
"upload_area.title": "拖放來上傳",
|
||||
|
|
|
@ -21,7 +21,7 @@ export const federationRestrictionsDisclosed = (state: RootState): boolean => {
|
|||
};
|
||||
|
||||
/**
|
||||
* Determine whether Soapbox FE is running in standalone mode.
|
||||
* Determine whether Soapbox is running in standalone mode.
|
||||
* Standalone mode runs separately from any backend and can login anywhere.
|
||||
*/
|
||||
export const isStandalone = (state: RootState): boolean => {
|
||||
|
|
|
@ -1,10 +1,10 @@
|
|||
# Installing Soapbox FE on a subdomain
|
||||
# Installing Soapbox on a subdomain
|
||||
|
||||
If you would like to retain Pleroma FE on your Pleroma server, but install Soapbox FE alongside it on a subdomain, you can do so by following these steps.
|
||||
If you would like to retain Pleroma FE on your Pleroma server, but install Soapbox alongside it on a subdomain, you can do so by following these steps.
|
||||
|
||||
## 1. Download the build
|
||||
|
||||
Create a directory on your system for Soapbox FE.
|
||||
Create a directory on your system for Soapbox.
|
||||
|
||||
```sh
|
||||
mkdir -p /opt/soapbox
|
||||
|
@ -144,7 +144,7 @@ If that passed, reload Nginx:
|
|||
systemctl reload nginx
|
||||
```
|
||||
|
||||
If all is well, you should be able to visit the subdomain in your browser and access Soapbox FE!
|
||||
If all is well, you should be able to visit the subdomain in your browser and access Soapbox!
|
||||
|
||||
---
|
||||
|
||||
|
|
|
@ -1,10 +1,10 @@
|
|||
# Installing Soapbox FE via YunoHost
|
||||
# Installing Soapbox via YunoHost
|
||||
|
||||
If you want to install Soapbox FE to a Pleroma instance installed using [YunoHost](https://yunohost.org), you can do so by following these steps.
|
||||
If you want to install Soapbox to a Pleroma instance installed using [YunoHost](https://yunohost.org), you can do so by following these steps.
|
||||
|
||||
## 1. Download the build
|
||||
|
||||
First, download the latest build of Soapbox FE from GitLab.
|
||||
First, download the latest build of Soapbox from GitLab.
|
||||
|
||||
```sh
|
||||
curl -L https://gitlab.com/soapbox-pub/soapbox-fe/-/jobs/artifacts/v1.3.0/download?job=build-production -o soapbox-fe.zip
|
||||
|
@ -18,7 +18,7 @@ Then, unzip the build to the Pleroma directory under YunoHost's directory:
|
|||
busybox unzip soapbox-fe.zip -o -d /home/yunohost.app/pleroma/
|
||||
```
|
||||
|
||||
**That's it! 🎉 Soapbox FE is installed.** The change will take effect immediately, just refresh your browser tab. It's not necessary to restart the Pleroma service.
|
||||
**That's it! 🎉 Soapbox is installed.** The change will take effect immediately, just refresh your browser tab. It's not necessary to restart the Pleroma service.
|
||||
|
||||
---
|
||||
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
# Removing Soapbox
|
||||
|
||||
Removing Soapbox FE and reverting to Pleroma FE is really easy. Just run the following:
|
||||
Removing Soapbox and reverting to Pleroma FE is really easy. Just run the following:
|
||||
```
|
||||
rm /opt/pleroma/instance/static/index.html
|
||||
rm -R /opt/pleroma/instance/static/packs
|
||||
|
|
|
@ -2,17 +2,17 @@
|
|||
|
||||
You should always check the [release notes/changelog](https://gitlab.com/soapbox-pub/soapbox-fe/-/blob/develop/CHANGELOG.md) in case there are deprecations, special update changes, etc.
|
||||
|
||||
Besides that, it's relatively pretty easy to update Soapbox FE. There's two ways to go about it: with the command line or with an unofficial script.
|
||||
Besides that, it's relatively pretty easy to update Soapbox. There's two ways to go about it: with the command line or with an unofficial script.
|
||||
|
||||
## Updating with the command line
|
||||
|
||||
To update Soapbox FE via the command line, do the following:
|
||||
To update Soapbox via the command line, do the following:
|
||||
|
||||
```
|
||||
# Download the build.
|
||||
curl -L https://gitlab.com/soapbox-pub/soapbox-fe/-/jobs/artifacts/v(latest.version.here)/download?job=build-production -o soapbox-fe.zip
|
||||
curl -L https://gitlab.com/soapbox-pub/soapbox-fe/-/jobs/artifacts/develop/download?job=build-production -o soapbox-fe.zip
|
||||
|
||||
# Remove all the current Soapbox FE build in Pleroma's instance directory.
|
||||
# Remove all the current Soapbox build in Pleroma's instance directory.
|
||||
rm -R /opt/pleroma/instance/static/packs
|
||||
rm /opt/pleroma/instance/static/index.html
|
||||
rm -R /opt/pleroma/instance/static/sounds
|
||||
|
@ -21,16 +21,6 @@ rm -R /opt/pleroma/instance/static/sounds
|
|||
busybox unzip soapbox-fe.zip -o -d /opt/pleroma/instance
|
||||
```
|
||||
|
||||
## Updating with an unofficial script
|
||||
|
||||
You can also update Soapbox using [Sandia Mesa's updater bash script for Soapbox FE](https://code.sandiamesa.com/traboone/soapbox-update).
|
||||
|
||||
First, download the updater script if you haven't yet: ``sudo -Hu pleroma wget -P /var/lib/pleroma https://code.sandiamesa.com/traboone/soapbox-update/raw/branch/master/soapbox-update.sh -N``
|
||||
|
||||
Then, set the permissions of the updater script so that it can be executed: ``chmod u+x /var/lib/pleroma/soapbox-update.sh``
|
||||
|
||||
Finally, go to the Pleroma user's directory ``cd /var/lib/pleroma`` and then run ``sudo -Hu pleroma ./soapbox-update.sh``.
|
||||
|
||||
## After updating Soapbox
|
||||
|
||||
The changes take effect immediately, just refresh your browser tab. It's not necessary to restart the Pleroma service.
|
||||
|
|
|
@ -87,7 +87,7 @@ The full app entity must be provided, for example:
|
|||
"client_id": "cf5yI6ffXH1UcDkEApEIrtHpwCi5Tv9xmju8IKdMAkE",
|
||||
"client_secret": "vHmSDpm6BJGUvR4_qWzmqWjfHcSYlZumxpFfohRwNNQ",
|
||||
"id": "7132",
|
||||
"name": "Soapbox FE",
|
||||
"name": "Soapbox",
|
||||
"redirect_uri": "urn:ietf:wg:oauth:2.0:oob",
|
||||
"website": "https://soapbox.pub/",
|
||||
"vapid_key": "BLElLQVJVmY_e4F5JoYxI5jXiVOYNsJ9p-amkykc9NcI-jwa9T1Y2GIbDqbY-HqC6ayPkfW4K4o9vgBFKYmkuS4"
|
||||
|
@ -98,7 +98,7 @@ It is crucial that the app has the expected scopes.
|
|||
You can obtain one with the following curl command (replace `MY_DOMAIN`):
|
||||
|
||||
```sh
|
||||
curl -X POST -H "Content-Type: application/json" -d '{"client_name": "Soapbox FE", "redirect_uris": "urn:ietf:wg:oauth:2.0:oob", "scopes": "read write follow push admin", "website": "https://soapbox.pub/"}' "https://MY_DOMAIN.com/api/v1/apps"
|
||||
curl -X POST -H "Content-Type: application/json" -d '{"client_name": "Soapbox", "redirect_uris": "urn:ietf:wg:oauth:2.0:oob", "scopes": "read write follow push admin", "website": "https://soapbox.pub/"}' "https://MY_DOMAIN.com/api/v1/apps"
|
||||
```
|
||||
|
||||
### Custom files (`custom/instance/*`)
|
||||
|
@ -114,7 +114,7 @@ Some use cases:
|
|||
|
||||
## Environment variables
|
||||
|
||||
When compiling Soapbox FE, environment variables may be passed to change the build itself.
|
||||
When compiling Soapbox, environment variables may be passed to change the build itself.
|
||||
For example:
|
||||
|
||||
```sh
|
||||
|
@ -123,7 +123,7 @@ NODE_ENV="production" FE_BUILD_DIR="public" FE_SUBDIRECTORY="/soapbox" yarn buil
|
|||
|
||||
### `NODE_ENV`
|
||||
|
||||
The environment to build Soapbox FE for.
|
||||
The environment to build Soapbox for.
|
||||
|
||||
Options:
|
||||
|
||||
|
@ -138,7 +138,7 @@ It's recommended to always build in `"production"` mode for live sites.
|
|||
### `BACKEND_URL`
|
||||
|
||||
The base URL for API calls.
|
||||
You only need to set this if Soapbox FE is hosted in a different place than the backend.
|
||||
You only need to set this if Soapbox is hosted in a different place than the backend.
|
||||
|
||||
Options:
|
||||
|
||||
|
@ -159,7 +159,7 @@ Default: `"static"`
|
|||
|
||||
### `FE_SUBDIRECTORY`
|
||||
|
||||
Subdirectory to host Soapbox FE out of.
|
||||
Subdirectory to host Soapbox out of.
|
||||
When hosting on a subdirectory, you must create a custom build for it.
|
||||
This option will set the imports in `index.html`, and the basename for routes in React.
|
||||
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
# How it works
|
||||
|
||||
Soapbox FE is a [single-page application (SPA)](https://en.wikipedia.org/wiki/Single-page_application) that runs entirely in the browser with JavaScript.
|
||||
Soapbox is a [single-page application (SPA)](https://en.wikipedia.org/wiki/Single-page_application) that runs entirely in the browser with JavaScript.
|
||||
|
||||
It has a single HTML file, `index.html`, responsible only for loading the required JavaScript and CSS.
|
||||
It interacts with the backend through [XMLHttpRequest (XHR)](https://developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequest).
|
||||
|
|
|
@ -8,9 +8,9 @@ All configuration is optional, except `NODE_ENV`.
|
|||
## `NODE_ENV`
|
||||
|
||||
The Node environment.
|
||||
Soapbox FE checks for the following options:
|
||||
Soapbox checks for the following options:
|
||||
|
||||
- `development` - What you should use while developing Soapbox FE.
|
||||
- `development` - What you should use while developing Soapbox.
|
||||
- `production` - Use when compiling to deploy to a live server.
|
||||
- `test` - Use when running automated tests.
|
||||
|
||||
|
|
|
@ -8,12 +8,12 @@ First, follow the instructions to [install Pleroma](https://docs-develop.pleroma
|
|||
|
||||
## Install Soapbox
|
||||
|
||||
The Soapbox frontend is the main component of Soapbox. Once you've installed Pleroma, installing Soapbox FE is a breeze.
|
||||
The Soapbox frontend is the main component of Soapbox. Once you've installed Pleroma, installing Soapbox is a breeze.
|
||||
|
||||
First, ssh into the server and download a .zip of the latest build: ``curl -L https://gitlab.com/soapbox-pub/soapbox-fe/-/jobs/artifacts/v1.3.0/download?job=build-production -o soapbox-fe.zip``
|
||||
First, ssh into the server and download a .zip of the latest build: ``curl -L https://gitlab.com/soapbox-pub/soapbox-fe/-/jobs/artifacts/develop/download?job=build-production -o soapbox-fe.zip``
|
||||
|
||||
Then unpack it into Pleroma's ``instance`` directory: ``busybox unzip soapbox-fe.zip -o -d /opt/pleroma/instance``
|
||||
|
||||
**That's it! 🎉 Soapbox FE is installed.** The change will take effect immediately, just refresh your browser tab. It's not necessary to restart the Pleroma service.
|
||||
**That's it! 🎉 Soapbox is installed.** The change will take effect immediately, just refresh your browser tab. It's not necessary to restart the Pleroma service.
|
||||
|
||||
***For OTP releases,*** *unpack to /var/lib/pleroma instead.*
|
||||
|
|
|
@ -1,8 +1,8 @@
|
|||
{
|
||||
"name": "soapbox-fe",
|
||||
"displayName": "Soapbox FE",
|
||||
"displayName": "Soapbox",
|
||||
"version": "3.0.0",
|
||||
"description": "Soapbox frontend for Pleroma.",
|
||||
"description": "Soapbox frontend for the Fediverse.",
|
||||
"homepage": "https://soapbox.pub/",
|
||||
"repository": {
|
||||
"type": "git",
|
||||
|
|
|
@ -52,7 +52,7 @@ Use yarn "manage:translations -- --help" for usage information
|
|||
|
||||
const usage = `Usage: yarn manage:translations [OPTIONS] [LANGUAGES]
|
||||
|
||||
Manage JavaScript translation files in Soapbox FE. Generates and update translations in translationsDirectory: ${translationsDirectory}
|
||||
Manage JavaScript translation files in Soapbox. Generates and update translations in translationsDirectory: ${translationsDirectory}
|
||||
|
||||
LANGUAGES
|
||||
The RFC5646 language tag for the language you want to test or fix. If you want to input multiple languages, separate them with space.
|
||||
|
|
Loading…
Reference in a new issue