diff --git a/.circleci/config.yml b/.circleci/config.yml index 6d89e670a2e..4fcc8c618a8 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -1,8 +1,8 @@ version: 2.1 orbs: - ruby: circleci/ruby@1.2.0 - node: circleci/node@4.7.0 + ruby: circleci/ruby@1.4.0 + node: circleci/node@5.0.1 executors: default: @@ -23,7 +23,7 @@ executors: environment: POSTGRES_USER: root POSTGRES_HOST_AUTH_METHOD: trust - - image: circleci/redis:6-alpine + - image: cimg/redis:6.2 commands: install-system-dependencies: diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS deleted file mode 100644 index fd6f74689e7..00000000000 --- a/.github/CODEOWNERS +++ /dev/null @@ -1,32 +0,0 @@ -# CODEOWNERS for mastodon/mastodon - -# Translators -# To add translator, copy these lines, replace `fr` with appropriate language code and replace `@żelipapą` with user's GitHub nickname preceded by `@` sign or e-mail address. -# /app/javascript/mastodon/locales/fr.json @żelipapą -# /app/views/user_mailer/*.fr.html.erb @żelipapą -# /app/views/user_mailer/*.fr.text.erb @żelipapą -# /config/locales/*.fr.yml @żelipapą -# /config/locales/fr.yml @żelipapą - -# Polish -/app/javascript/mastodon/locales/pl.json @m4sk1n -/app/views/user_mailer/*.pl.html.erb @m4sk1n -/app/views/user_mailer/*.pl.text.erb @m4sk1n -/config/locales/*.pl.yml @m4sk1n -/config/locales/pl.yml @m4sk1n - -# French -/app/javascript/mastodon/locales/fr.json @aldarone -/app/javascript/mastodon/locales/whitelist_fr.json @aldarone -/app/views/user_mailer/*.fr.html.erb @aldarone -/app/views/user_mailer/*.fr.text.erb @aldarone -/config/locales/*.fr.yml @aldarone -/config/locales/fr.yml @aldarone - -# Dutch -/app/javascript/mastodon/locales/nl.json @jeroenpraat -/app/javascript/mastodon/locales/whitelist_nl.json @jeroenpraat -/app/views/user_mailer/*.nl.html.erb @jeroenpraat -/app/views/user_mailer/*.nl.text.erb @jeroenpraat -/config/locales/*.nl.yml @jeroenpraat -/config/locales/nl.yml @jeroenpraat diff --git a/.github/FUNDING.yml b/.github/FUNDING.yml index 9526e17db73..be750a5e410 100644 --- a/.github/FUNDING.yml +++ b/.github/FUNDING.yml @@ -1,3 +1,3 @@ patreon: mastodon open_collective: mastodon -github: [Gargron] +custom: https://sponsor.joinmastodon.org diff --git a/.github/ISSUE_TEMPLATE/2.feature_request.yml b/.github/ISSUE_TEMPLATE/2.feature_request.yml index 00aad134172..6626c2876f3 100644 --- a/.github/ISSUE_TEMPLATE/2.feature_request.yml +++ b/.github/ISSUE_TEMPLATE/2.feature_request.yml @@ -1,5 +1,6 @@ name: Feature Request description: I have a suggestion +labels: suggestion body: - type: markdown attributes: diff --git a/.github/ISSUE_TEMPLATE/3.support.md b/.github/ISSUE_TEMPLATE/3.support.md deleted file mode 100644 index e2217da8bcc..00000000000 --- a/.github/ISSUE_TEMPLATE/3.support.md +++ /dev/null @@ -1,10 +0,0 @@ ---- -name: Support -about: Ask for help with your deployment -title: DO NOT CREATE THIS ISSUE ---- - -We primarily use GitHub as a bug and feature tracker. For usage questions, troubleshooting of deployments and other individual technical assistance, please use one of the resources below: - -- https://discourse.joinmastodon.org -- #mastodon on irc.freenode.net diff --git a/.github/ISSUE_TEMPLATE/config.yml b/.github/ISSUE_TEMPLATE/config.yml index 768868516e7..7c0dbaf6702 100644 --- a/.github/ISSUE_TEMPLATE/config.yml +++ b/.github/ISSUE_TEMPLATE/config.yml @@ -1,5 +1,8 @@ blank_issues_enabled: false contact_links: - - name: Mastodon Meta Discussion Board - url: https://discourse.joinmastodon.org/ + - name: GitHub Discussions + url: https://github.com/mastodon/mastodon/discussions about: Please ask and answer questions here. + - name: Bug Bounty Program + url: https://app.intigriti.com/programs/mastodon/mastodonio/detail + about: Please report security vulnerabilities here. diff --git a/.github/workflows/build-image.yml b/.github/workflows/build-image.yml index 281fa33b739..eccef8700e1 100644 --- a/.github/workflows/build-image.yml +++ b/.github/workflows/build-image.yml @@ -31,7 +31,7 @@ jobs: latest=true tags: | type=edge,branch=main - type=semver,pattern={{ raw }} + type=match,pattern=v(.*),group=0 type=ref,event=pr - uses: docker/build-push-action@v2 with: diff --git a/AUTHORS.md b/AUTHORS.md index 596451737e9..9fc5f44f18f 100644 --- a/AUTHORS.md +++ b/AUTHORS.md @@ -12,31 +12,32 @@ and provided thanks to the work of the following contributors: * [akihikodaki](https://github.com/akihikodaki) * [mjankowski](https://github.com/mjankowski) * [unarist](https://github.com/unarist) +* [noellabo](https://github.com/noellabo) * [abcang](https://github.com/abcang) * [yiskah](https://github.com/yiskah) -* [noellabo](https://github.com/noellabo) -* [nolanlawson](https://github.com/nolanlawson) * [mayaeh](https://github.com/mayaeh) +* [nolanlawson](https://github.com/nolanlawson) * [ysksn](https://github.com/ysksn) +* [tribela](https://github.com/tribela) * [sorin-davidoi](https://github.com/sorin-davidoi) * [lynlynlynx](https://github.com/lynlynlynx) * [m4sk1n](mailto:me@m4sk.in) * [Marcin Mikołajczak](mailto:me@m4sk.in) -* [tribela](https://github.com/tribela) * [renatolond](https://github.com/renatolond) +* [shleeable](https://github.com/shleeable) * [alpaca-tc](https://github.com/alpaca-tc) * [zunda](https://github.com/zunda) * [nclm](https://github.com/nclm) * [ineffyble](https://github.com/ineffyble) -* [shleeable](https://github.com/shleeable) +* [ariasuni](https://github.com/ariasuni) * [Masoud Abkenar](mailto:ampbox@gmail.com) * [blackle](https://github.com/blackle) * [Quent-in](https://github.com/Quent-in) * [JantsoP](https://github.com/JantsoP) -* [ariasuni](https://github.com/ariasuni) +* [Brawaru](https://github.com/Brawaru) * [nullkal](https://github.com/nullkal) * [yookoala](https://github.com/yookoala) -* [Brawaru](https://github.com/Brawaru) +* [dunn](https://github.com/dunn) * [Aditoo17](https://github.com/Aditoo17) * [Quenty31](https://github.com/Quenty31) * [marek-lach](https://github.com/marek-lach) @@ -46,10 +47,9 @@ and provided thanks to the work of the following contributors: * [eramdam](https://github.com/eramdam) * [Jeroen](mailto:jeroenpraat@users.noreply.github.com) * [takayamaki](https://github.com/takayamaki) -* [dunn](https://github.com/dunn) * [masarakki](https://github.com/masarakki) -* [ticky](https://github.com/ticky) * [trwnh](https://github.com/trwnh) +* [ticky](https://github.com/ticky) * [ThisIsMissEm](https://github.com/ThisIsMissEm) * [hinaloe](https://github.com/hinaloe) * [hcmiya](https://github.com/hcmiya) @@ -73,13 +73,13 @@ and provided thanks to the work of the following contributors: * [MaciekBaron](https://github.com/MaciekBaron) * [SerCom_KC](mailto:sercom-kc@users.noreply.github.com) * [Sylvhem](https://github.com/Sylvhem) +* [koyuawsmbrtn](https://github.com/koyuawsmbrtn) * [MitarashiDango](https://github.com/MitarashiDango) * [rinsuki](https://github.com/rinsuki) * [angristan](https://github.com/angristan) * [JeanGauthier](https://github.com/JeanGauthier) * [kschaper](https://github.com/kschaper) * [beatrix-bitrot](https://github.com/beatrix-bitrot) -* [koyuawsmbrtn](https://github.com/koyuawsmbrtn) * [BenLubar](https://github.com/BenLubar) * [mkljczk](https://github.com/mkljczk) * [adbelle](https://github.com/adbelle) @@ -89,11 +89,12 @@ and provided thanks to the work of the following contributors: * [yhirano55](https://github.com/yhirano55) * [devkral](https://github.com/devkral) * [camponez](https://github.com/camponez) -* [hugogameiro](https://github.com/hugogameiro) +* [Hugo Gameiro](mailto:hmgameiro@gmail.com) * [SerCom_KC](mailto:szescxz@gmail.com) * [aschmitz](https://github.com/aschmitz) * [mfmfuyu](https://github.com/mfmfuyu) * [kedamaDQ](https://github.com/kedamaDQ) +* [mashirozx](https://github.com/mashirozx) * [fpiesche](https://github.com/fpiesche) * [gandaro](https://github.com/gandaro) * [johnsudaar](https://github.com/johnsudaar) @@ -115,41 +116,41 @@ and provided thanks to the work of the following contributors: * [pfm-eyesightjp](https://github.com/pfm-eyesightjp) * [fakenine](https://github.com/fakenine) * [tsuwatch](https://github.com/tsuwatch) +* [progval](https://github.com/progval) * [victorhck](https://github.com/victorhck) -* [manuelviens](https://github.com/manuelviens) +* [manuelviens](mailto:manuelviens@users.noreply.github.com) * [tateisu](https://github.com/tateisu) * [fvh-P](https://github.com/fvh-P) +* [lfuelling](https://github.com/lfuelling) * [rtucker](https://github.com/rtucker) * [Anna e só](mailto:contraexemplos@gmail.com) * [dariusk](https://github.com/dariusk) * [kazu9su](https://github.com/kazu9su) -* [Komic](https://github.com/Komic) +* [komic](https://github.com/komic) * [lmorchard](https://github.com/lmorchard) * [diomed](https://github.com/diomed) * [Neetshin](mailto:neetshin@neetsh.in) * [rainyday](https://github.com/rainyday) * [tcitworld](https://github.com/tcitworld) -* [ProgVal](https://github.com/ProgVal) * [valentin2105](https://github.com/valentin2105) * [yuntan](https://github.com/yuntan) * [goofy-bz](mailto:goofy@babelzilla.org) * [kadiix](https://github.com/kadiix) * [kodacs](https://github.com/kodacs) * [marcin mikołajczak](mailto:me@m4sk.in) +* [berkes](https://github.com/berkes) * [KScl](https://github.com/KScl) * [sterdev](https://github.com/sterdev) -* [mashirozx](https://github.com/mashirozx) * [TheKinrar](https://github.com/TheKinrar) -* [007lva](https://github.com/007lva) * [AA4ch1](https://github.com/AA4ch1) * [alexgleason](https://github.com/alexgleason) -* [Bèr Kessels](mailto:ber@berk.es) * [cpytel](https://github.com/cpytel) * [northerner](https://github.com/northerner) +* [weex](https://github.com/weex) * [fhemberger](https://github.com/fhemberger) * [Gomasy](https://github.com/Gomasy) * [greysteil](https://github.com/greysteil) -* [hendotcat](https://github.com/hendotcat) +* [henrycatalinismith](https://github.com/henrycatalinismith) * [d6rkaiz](https://github.com/d6rkaiz) * [ladyisatis](https://github.com/ladyisatis) * [JMendyk](https://github.com/JMendyk) @@ -160,6 +161,8 @@ and provided thanks to the work of the following contributors: * [pawelngei](https://github.com/pawelngei) * [reneklacan](https://github.com/reneklacan) * [ekiru](https://github.com/ekiru) +* [Izorkin](https://github.com/Izorkin) +* [unasuke](https://github.com/unasuke) * [geta6](https://github.com/geta6) * [happycoloredbanana](https://github.com/happycoloredbanana) * [joenepraat](https://github.com/joenepraat) @@ -168,11 +171,11 @@ and provided thanks to the work of the following contributors: * [spla](mailto:sp@mastodont.cat) * [tomfhowe](https://github.com/tomfhowe) * [noraworld](https://github.com/noraworld) -* [lfuelling](https://github.com/lfuelling) * [aji-su](https://github.com/aji-su) +* [ikuradon](https://github.com/ikuradon) * [nzws](https://github.com/nzws) * [duxovni](https://github.com/duxovni) -* [smorimoto](https://github.com/smorimoto) +* [SuperSandro2000](https://github.com/SuperSandro2000) * [178inaba](https://github.com/178inaba) * [acid-chicken](https://github.com/acid-chicken) * [xgess](https://github.com/xgess) @@ -194,37 +197,37 @@ and provided thanks to the work of the following contributors: * [Dar13](https://github.com/Dar13) * [nevillepark](https://github.com/nevillepark) * [ornithocoder](https://github.com/ornithocoder) -* [pwoolcoc](https://github.com/pwoolcoc) +* [Paul Woolcock](mailto:paul@woolcock.us) * [pierreozoux](https://github.com/pierreozoux) * [qguv](https://github.com/qguv) * [Ram Lmn](mailto:ramlmn@users.noreply.github.com) +* [rgroothuijsen](https://github.com/rgroothuijsen) * [Sascha](mailto:sascha@serenitylabs.cloud) * [harukasan](https://github.com/harukasan) * [stamak](https://github.com/stamak) * [Technowix](https://github.com/Technowix) * [Zoeille](https://github.com/Zoeille) -* [Thor Harald Johansen](mailto:thj@thj.no) +* [Thorwegian](https://github.com/Thorwegian) * [0x70b1a5](https://github.com/0x70b1a5) * [gled-rs](https://github.com/gled-rs) * [Valentin_NC](mailto:valentin.ouvrard@nautile.sarl) * [R0ckweb](https://github.com/R0ckweb) -* [Izorkin](https://github.com/Izorkin) -* [unasuke](https://github.com/unasuke) * [caasi](https://github.com/caasi) +* [chandrn7](https://github.com/chandrn7) * [chr-1x](https://github.com/chr-1x) * [esetomo](https://github.com/esetomo) * [foxiehkins](https://github.com/foxiehkins) * [highemerly](https://github.com/highemerly) * [hoodie](mailto:hoodiekitten@outlook.com) * [kaiyou](https://github.com/kaiyou) +* [007lva](https://github.com/007lva) * [luzi82](https://github.com/luzi82) * [slice](https://github.com/slice) * [tmm576](https://github.com/tmm576) * [unsmell](mailto:unsmell@users.noreply.github.com) * [valerauko](https://github.com/valerauko) +* [Grawl](https://github.com/Grawl) * [chriswmartin](https://github.com/chriswmartin) -* [SuperSandro2000](https://github.com/SuperSandro2000) -* [ikuradon](https://github.com/ikuradon) * [AndreLewin](https://github.com/AndreLewin) * [0xflotus](https://github.com/0xflotus) * [redtachyons](https://github.com/redtachyons) @@ -234,18 +237,21 @@ and provided thanks to the work of the following contributors: * [Andrew](mailto:andrewlchronister@gmail.com) * [arielrodrigues](https://github.com/arielrodrigues) * [aurelien-reeves](https://github.com/aurelien-reeves) +* [BSKY](mailto:git@bsky.moe) * [elegaanz](https://github.com/elegaanz) * [estuans](https://github.com/estuans) * [dissolve](https://github.com/dissolve) * [PurpleBooth](https://github.com/PurpleBooth) * [bradurani](https://github.com/bradurani) * [wavebeem](https://github.com/wavebeem) -* [bruwalfas](https://github.com/bruwalfas) +* [thermosflasche](https://github.com/thermosflasche) * [LottieVixen](https://github.com/LottieVixen) * [wchristian](https://github.com/wchristian) * [muffinista](https://github.com/muffinista) * [cdutson](https://github.com/cdutson) * [farlistener](https://github.com/farlistener) +* [baby-gnu](https://github.com/baby-gnu) +* [danieljakots](https://github.com/danieljakots) * [divergentdave](https://github.com/divergentdave) * [DavidLibeau](https://github.com/DavidLibeau) * [dmerejkowsky](https://github.com/dmerejkowsky) @@ -256,8 +262,10 @@ and provided thanks to the work of the following contributors: * [unstabler](https://github.com/unstabler) * [potato4d](https://github.com/potato4d) * [h-izumi](https://github.com/h-izumi) +* [HolgerHuo](https://github.com/HolgerHuo) * [ErikXXon](https://github.com/ErikXXon) * [ian-kelling](https://github.com/ian-kelling) +* [eltociear](https://github.com/eltociear) * [immae](https://github.com/immae) * [J0WI](https://github.com/J0WI) * [vahnj](https://github.com/vahnj) @@ -283,10 +291,12 @@ and provided thanks to the work of the following contributors: * [Nathaniel Suchy](mailto:me@lunorian.is) * [ndarville](https://github.com/ndarville) * [NimaBoscarino](https://github.com/NimaBoscarino) +* [aquarla](https://github.com/aquarla) * [Abzol](https://github.com/Abzol) * [PatOnTheBack](https://github.com/PatOnTheBack) * [xPaw](https://github.com/xPaw) * [petzah](https://github.com/petzah) +* [PeterDaveHello](https://github.com/PeterDaveHello) * [ignisf](https://github.com/ignisf) * [lumenwrites](https://github.com/lumenwrites) * [remram44](https://github.com/remram44) @@ -310,25 +320,30 @@ and provided thanks to the work of the following contributors: * [yannicka](https://github.com/yannicka) * [ikasoumen](https://github.com/ikasoumen) * [zacanger](https://github.com/zacanger) +* [l2dy](https://github.com/l2dy) * [amazedkoumei](https://github.com/amazedkoumei) * [anon5r](https://github.com/anon5r) * [aus-social](https://github.com/aus-social) +* [bsky](mailto:git@bsky.moe) * [bsky](mailto:me@imbsky.net) -* [chandrn7](https://github.com/chandrn7) * [codl](https://github.com/codl) * [cpsdqs](https://github.com/cpsdqs) * [barzamin](https://github.com/barzamin) * [gol-cha](https://github.com/gol-cha) +* [gunchleoc](https://github.com/gunchleoc) * [fhalna](https://github.com/fhalna) * [haoyayoi](https://github.com/haoyayoi) * [ik11235](https://github.com/ik11235) * [kawax](https://github.com/kawax) * [shrft](https://github.com/shrft) +* [luigi](mailto:lvargas@rankia.com) +* [luzpaz](https://github.com/luzpaz) * [mbajur](https://github.com/mbajur) * [matsurai25](https://github.com/matsurai25) * [mecab](https://github.com/mecab) * [nicobz25](https://github.com/nicobz25) * [niwatori24](https://github.com/niwatori24) +* [noiob](https://github.com/noiob) * [oliverkeeble](https://github.com/oliverkeeble) * [partev](https://github.com/partev) * [pinfort](https://github.com/pinfort) @@ -341,7 +356,6 @@ and provided thanks to the work of the following contributors: * [vidarlee](https://github.com/vidarlee) * [vjackson725](https://github.com/vjackson725) * [wxcafe](https://github.com/wxcafe) -* [Grawl](https://github.com/Grawl) * [新都心(Neet Shin)](mailto:nucx@dio-vox.com) * [clarfonthey](https://github.com/clarfonthey) * [cygnan](https://github.com/cygnan) @@ -390,7 +404,6 @@ and provided thanks to the work of the following contributors: * [Brad Janke](mailto:brad.janke@gmail.com) * [bclindner](https://github.com/bclindner) * [brycied00d](https://github.com/brycied00d) -* [berkes](https://github.com/berkes) * [carlosjs23](https://github.com/carlosjs23) * [cgxxx](https://github.com/cgxxx) * [kibitan](https://github.com/kibitan) @@ -411,7 +424,6 @@ and provided thanks to the work of the following contributors: * [dalehenries](https://github.com/dalehenries) * [daprice](https://github.com/daprice) * [da2x](https://github.com/da2x) -* [danieljakots](https://github.com/danieljakots) * [codesections](https://github.com/codesections) * [dar5hak](https://github.com/dar5hak) * [kant](https://github.com/kant) @@ -420,7 +432,7 @@ and provided thanks to the work of the following contributors: * [caldwell](https://github.com/caldwell) * [davidcelis](https://github.com/davidcelis) * [davefp](https://github.com/davefp) -* [yipdw](https://github.com/yipdw) +* [hannahwhy](https://github.com/hannahwhy) * [debanshuk](https://github.com/debanshuk) * [mascali33](https://github.com/mascali33) * [DerekNonGeneric](https://github.com/DerekNonGeneric) @@ -445,20 +457,20 @@ and provided thanks to the work of the following contributors: * [GenbuHase](https://github.com/GenbuHase) * [nilsding](https://github.com/nilsding) * [hattori6789](https://github.com/hattori6789) -* [algernon](https://github.com/algernon) -* [Fastbyte01](https://github.com/Fastbyte01) -* [unrelentingtech](https://github.com/unrelentingtech) -* [gfaivre](https://github.com/gfaivre) -* [Fiaxhs](https://github.com/Fiaxhs) -* [rasjonell](https://github.com/rasjonell) -* [reedcourty](https://github.com/reedcourty) -* [anneau](https://github.com/anneau) -* [lanodan](https://github.com/lanodan) -* [Harmon758](https://github.com/Harmon758) -* [HellPie](https://github.com/HellPie) -* [Habu-Kagumba](https://github.com/Habu-Kagumba) -* [suzukaze](https://github.com/suzukaze) -* [Hiromi-Kai](https://github.com/Hiromi-Kai) +* [Gergely Nagy](mailto:algernon@users.noreply.github.com) +* [Giuseppe Pignataro](mailto:rogepix@gmail.com) +* [Greg V](mailto:greg@unrelenting.technology) +* [Guewen FAIVRE](mailto:guewen.faivre@elao.com) +* [Guillaume Lo Re](mailto:lowreg@gmail.com) +* [Gurgen Hayrapetyan](mailto:info.gurgen@gmail.com) +* [György Nádudvari](mailto:reedcourty@users.noreply.github.com) +* [HIKARU KOBORI](mailto:hk.uec.univ@gmail.com) +* [Haelwenn Monnier](mailto:lanodan@users.noreply.github.com) +* [Harmon](mailto:harmon758@gmail.com) +* [HellPie](mailto:hellpie@users.noreply.github.com) +* [Herbert Kagumba](mailto:habukagumba@gmail.com) +* [Hiroe Jun](mailto:jun.hiroe@gmail.com) +* [Hiromi Kai](mailto:pie05041008@gmail.com) * [Hisham Muhammad](mailto:hisham@gobolinux.org) * [Hugo "Slaynash" Flores](mailto:hugoflores@hotmail.fr) * [INAGAKI Hiroshi](mailto:musashino205@users.noreply.github.com) @@ -466,7 +478,6 @@ and provided thanks to the work of the following contributors: * [Ian McCowan](mailto:imccowan@gmail.com) * [Ian McDowell](mailto:me@ianmcdowell.net) * [Iijima Yasushi](mailto:kurage.cc@gmail.com) -* [Ikko Ashimine](mailto:eltociear@gmail.com) * [Ingo Blechschmidt](mailto:iblech@web.de) * [J Yeary](mailto:usbsnowcrash@users.noreply.github.com) * [Jack Michaud](mailto:jack-michaud@users.noreply.github.com) @@ -486,6 +497,7 @@ and provided thanks to the work of the following contributors: * [Jordan Guerder](mailto:jguerder@fr.pulseheberg.net) * [Joseph Mingrone](mailto:jehops@users.noreply.github.com) * [Josh Leeb-du Toit](mailto:mail@joshleeb.com) +* [Josh Soref](mailto:2119212+jsoref@users.noreply.github.com) * [Joshua Wood](mailto:josh@joshuawood.net) * [Julien](mailto:tiwy57@users.noreply.github.com) * [Julien Deswaef](mailto:juego@requiem4tv.com) @@ -502,6 +514,7 @@ and provided thanks to the work of the following contributors: * [Leo Wzukw](mailto:leowzukw@users.noreply.github.com) * [Leonie](mailto:62470640+bubblineyuri@users.noreply.github.com) * [Lex Alexander](mailto:l.alexander10@gmail.com) +* [LinAGKar](mailto:linus.kardell@gmail.com) * [Lorenz Diener](mailto:lorenzd@gmail.com) * [Luc Didry](mailto:ldidry@users.noreply.github.com) * [Lukas Burk](mailto:jemus42@users.noreply.github.com) @@ -534,6 +547,7 @@ and provided thanks to the work of the following contributors: * [Milton Mazzarri](mailto:milmazz@gmail.com) * [Minku Lee](mailto:premist@me.com) * [Minori Hiraoka](mailto:mnkai@users.noreply.github.com) +* [MitarashiDango](mailto:mitarashi_dango@mail.matcha-soft.com) * [Mitchell Hentges](mailto:mitch9654@gmail.com) * [Mostafa Ahangarha](mailto:ahangarha@users.noreply.github.com) * [Mouse Reeve](mailto:mousereeve@riseup.net) @@ -553,7 +567,6 @@ and provided thanks to the work of the following contributors: * [Norayr Chilingarian](mailto:norayr@arnet.am) * [Noëlle Anthony](mailto:noelle.d.anthony@gmail.com) * [N氏](mailto:uenok.htc@gmail.com) -* [OSAMU SATO](mailto:satosamu@gmail.com) * [Olivier Nicole](mailto:olivierthnicole@gmail.com) * [Oskari Noppa](mailto:noppa@users.noreply.github.com) * [Otakan](mailto:otakan951@gmail.com) @@ -566,6 +579,7 @@ and provided thanks to the work of the following contributors: * [Ratmir Karabut](mailto:rkarabut@sfmodern.ru) * [Reto Kromer](mailto:retokromer@users.noreply.github.com) * [Rob Watson](mailto:rfwatson@users.noreply.github.com) +* [Rohan Sharma](mailto:i.am.lone.survivor@protonmail.com) * [Ryan Freebern](mailto:ryan@freebern.org) * [Ryan Wade](mailto:ryan.wade@protonmail.com) * [Ryo Kajiwara](mailto:kfe-fecn6.prussian@s01.info) @@ -595,6 +609,8 @@ and provided thanks to the work of the following contributors: * [StefOfficiel](mailto:pichard.stephane@free.fr) * [Steven Tappert](mailto:admin@dark-it.net) * [Stéphane Guillou](mailto:stephane.guillou@member.fsf.org) +* [Su Yang](mailto:soulteary@users.noreply.github.com) +* [Sumak](mailto:44816995+kawsay@users.noreply.github.com) * [Svetlozar Todorov](mailto:svetlik@users.noreply.github.com) * [Sébastien Santoro](mailto:dereckson@espace-win.org) * [Tad Thorley](mailto:phaedryx@users.noreply.github.com) @@ -611,6 +627,7 @@ and provided thanks to the work of the following contributors: * [Tomonori Murakami](mailto:crosslife777@gmail.com) * [TomoyaShibata](mailto:wind.of.hometown@gmail.com) * [Treyssat-Vincent Nino](mailto:treyssatvincent@users.noreply.github.com) +* [Truong Nguyen](mailto:truongnmt.dev@gmail.com) * [Udo Kramer](mailto:optik@fluffel.io) * [Una](mailto:una@unascribed.com) * [Ushitora Anqou](mailto:ushitora@anqou.net) @@ -621,6 +638,7 @@ and provided thanks to the work of the following contributors: * [Wenceslao Páez Chávez](mailto:wcpaez@gmail.com) * [Wesley Ellis](mailto:tahnok@gmail.com) * [Wiktor](mailto:wiktor@metacode.biz) +* [Wonderfall](mailto:wonderfall@protonmail.com) * [Wonderfall](mailto:wonderfall@schrodinger.io) * [Y.Yamashiro](mailto:shukukei@mojizuri.jp) * [YDrogen](mailto:ydrogen45@gmail.com) @@ -634,11 +652,13 @@ and provided thanks to the work of the following contributors: * [Yeechan Lu](mailto:wz.bluesnow@gmail.com) * [Your Name](mailto:lorenzd@gmail.com) * [Yusuke Abe](mailto:moonset20@gmail.com) +* [Zach Neill](mailto:neillz@berea.edu) * [Zachary Spector](mailto:logicaldash@gmail.com) * [ZiiX](mailto:ziix@users.noreply.github.com) * [asria-jp](mailto:is@alicematic.com) * [ava](mailto:vladooku@users.noreply.github.com) * [benklop](mailto:benklop@gmail.com) +* [bobbyd0g](mailto:93697464+bobbyd0g@users.noreply.github.com) * [bsky](mailto:git@imbsky.net) * [caesarologia](mailto:lopesgemelli.1@gmail.com) * [cbayerlein](mailto:c.bayerlein@gmail.com) @@ -646,6 +666,7 @@ and provided thanks to the work of the following contributors: * [chrolis](mailto:chrolis@users.noreply.github.com) * [cormo](mailto:cormorant2+github@gmail.com) * [d0p1](mailto:dopi-sama@hush.com) +* [dogelover911](mailto:84288771+dogelover911@users.noreply.github.com) * [dxwc](mailto:dxwc@users.noreply.github.com) * [evilny0](mailto:evilny0@moomoocamp.net) * [febrezo](mailto:felixbrezo@gmail.com) @@ -656,6 +677,8 @@ and provided thanks to the work of the following contributors: * [guigeekz](mailto:pattusg@gmail.com) * [hakoai](mailto:hk--76@qa2.so-net.ne.jp) * [haosbvnker](mailto:github@chaosbunker.com) +* [heguro](mailto:65112898+heguro@users.noreply.github.com) +* [helloworldstack](mailto:66512512+helloworldstack@users.noreply.github.com) * [ichi_i](mailto:51489410+ichi-i@users.noreply.github.com) * [isati](mailto:phil@juchnowi.cz) * [jacob](mailto:jacobherringtondeveloper@gmail.com) @@ -671,7 +694,7 @@ and provided thanks to the work of the following contributors: * [kedama](mailto:32974885+kedamadq@users.noreply.github.com) * [kuro5hin](mailto:rusty@kuro5hin.org) * [leo60228](mailto:leo@60228.dev) -* [luzpaz](mailto:luzpaz@users.noreply.github.com) +* [matildepark](mailto:matilde.park@pm.me) * [maxypy](mailto:maxime@mpigou.fr) * [mhe](mailto:mail@marcus-herrmann.com) * [mike castleman](mailto:m@mlcastle.net) @@ -681,14 +704,15 @@ and provided thanks to the work of the following contributors: * [muan](mailto:muan@github.com) * [namelessGonbai](mailto:43787036+namelessgonbai@users.noreply.github.com) * [neetshin](mailto:neetshin@neetsh.in) -* [noiob](mailto:8197071+noiob@users.noreply.github.com) * [notozeki](mailto:notozeki@users.noreply.github.com) * [ntl-purism](mailto:57806346+ntl-purism@users.noreply.github.com) * [nzws](mailto:git-yuzu@svk.jp) +* [potpro](mailto:pptppctt@gmail.com) * [proxy](mailto:51172302+3n-k1@users.noreply.github.com) * [rch850](mailto:rich850@gmail.com) * [roikale](mailto:roikale@users.noreply.github.com) * [rysiekpl](mailto:rysiek@hackerspace.pl) +* [sasanquaneuf](mailto:sasanquaneuf@gmail.com) * [saturday06](mailto:dyob@lunaport.net) * [scd31](mailto:57571338+scd31@users.noreply.github.com) * [scriptjunkie](mailto:scriptjunkie@scriptjunkie.us) @@ -698,6 +722,7 @@ and provided thanks to the work of the following contributors: * [syui](mailto:syui@users.noreply.github.com) * [tackeyy](mailto:mailto.takita.yusuke@gmail.com) * [taicv](mailto:chuvantai@gmail.com) +* [tkr](mailto:account@kgtkr.net) * [tmyt](mailto:shigure@refy.net) * [trevDev()](mailto:trev@trevdev.ca) * [tsia](mailto:github@tsia.de) @@ -707,6 +732,7 @@ and provided thanks to the work of the following contributors: * [y-temp4](mailto:y.temp4@gmail.com) * [ymmtmdk](mailto:ymmtmdk@gmail.com) * [yoshipc](mailto:yoooo@yoshipc.net) +* [zunda](mailto:zundan@gmail.com) * [Özcan Zafer AYAN](mailto:ozcanzaferayan@gmail.com) * [ばん](mailto:detteiu0321@gmail.com) * [ふるふる](mailto:frfs@users.noreply.github.com) @@ -726,107 +752,126 @@ This document is provided for informational purposes only. Since it is only upda Following people have contributed to translation of Mastodon: - GunChleoc (*Scottish Gaelic*) -- ᛤᚤᛠᛥⴲ 👽 (KNTRO) (*Spanish, Argentina*) -- adrmzz (*Sardinian*) -- Hồ Nhất Duy (kantcer) (*Vietnamese*) -- Zoltán Gera (gerazo) (*Hungarian*) +- ケインツロ 👾 (KNTRO) (*Spanish, Argentina*) - Sveinn í Felli (sveinki) (*Icelandic*) -- qezwan (*Persian, Sorani (Kurdish)*) -- NCAA (*Danish*) -- Ramdziana F Y (rafeyu) (*Indonesian*) -- taicv (*Vietnamese*) -- ButterflyOfFire (BoFFire) (*French, Arabic, Kabyle*) +- Hồ Nhất Duy (honhatduy) (*Vietnamese*) +- Zoltán Gera (gerazo) (*Hungarian*) +- Kristaps_M (*Latvian*) +- NCAA (*French, Danish*) +- adrmzz (*Sardinian*) - Xosé M. (XoseM) (*Spanish, Galician*) -- Evert Prants (IcyDiamond) (*Estonian*) -- Besnik_b (*Albanian*) +- Ramdziana F Y (rafeyu) (*Indonesian*) +- Jeong Arm (Kjwon15) (*Spanish, Japanese, Korean, Esperanto*) - Emanuel Pina (emanuelpina) (*Portuguese*) -- Jeong Arm (Kjwon15) (*Japanese, Korean, Esperanto*) -- Alix Rossi (palindromordnilap) (*French, Esperanto, Corsican*) +- qezwan (*Persian, Sorani (Kurdish)*) +- Besnik_b (*Albanian*) +- ButterflyOfFire (BoFFire) (*French, Arabic, Kabyle*) - Thai Localization (thl10n) (*Thai*) +- Cyax (Cyaxares) (*Kurmanji (Kurdish)*) +- taicv (*Vietnamese*) - Daniele Lira Mereb (danilmereb) (*Portuguese, Brazilian*) -- Joene (joenepraat) (*Dutch*) -- Kristijan Tkalec (lapor) (*Slovenian*) -- stan ionut (stanionut12) (*Romanian*) - spla (*Spanish, Catalan*) -- мачко (ma4ko) (*Bulgarian*) -- 奈卜拉 (nebula_moe) (*Chinese Simplified*) -- kamee (*Armenian*) -- AJ-عجائب البرمجة (Esmail_Hazem) (*Arabic*) -- Michal Stanke (mstanke) (*Czech*) -- Danial Behzadi (danialbehzadi) (*Persian*) -- borys_sh (*Ukrainian*) -- Asier Iturralde Sarasola (aldatsa) (*Basque*) -- Imre Kristoffer Eilertsen (DandelionSprout) (*Norwegian*) +- Evert Prants (IcyDiamond) (*Estonian*) - koyu (*German*) +- Alix Rossi (palindromordnilap) (*French, Esperanto, Corsican*) +- Joene (joenepraat) (*Dutch*) +- stan ionut (stanionut12) (*Romanian*) +- Mastodon 中文译者 (mastodon-linguist) (*Chinese Simplified*) +- Kristijan Tkalec (lapor) (*Slovenian*) +- Danial Behzadi (danialbehzadi) (*Persian*) +- Asier Iturralde Sarasola (aldatsa) (*Basque*) +- ManeraKai (*Arabic*) +- мачко (ma4ko) (*Bulgarian*) +- Roboron (*Spanish*) +- Alessandro Levati (Oct326) (*Italian*) +- xatier (*Chinese Traditional, Chinese Traditional, Hong Kong*) +- Ondřej Pokorný (unextro) (*Czech*) +- Alexander Sorokin (Brawaru) (*French, Catalan, Danish, German, Greek, Hungarian, Armenian, Korean, Portuguese, Russian, Albanian, Swedish, Ukrainian, Vietnamese, Galician*) +- kamee (*Armenian*) +- Michal Stanke (mstanke) (*Czech*) +- borys_sh (*Ukrainian*) +- Imre Kristoffer Eilertsen (DandelionSprout) (*Norwegian*) - yeft (*Chinese Traditional, Chinese Traditional, Hong Kong*) - Miguel Mayol (mitcoes) (*Spanish, Catalan*) -- Sasha Sorokin (Brawaru) (*French, Catalan, Danish, German, Greek, Hungarian, Armenian, Korean, Russian, Albanian, Swedish, Ukrainian, Vietnamese, Galician*) -- Roboron (*Spanish*) +- Marek Ľach (mareklach) (*Polish, Slovak*) +- Manuel Viens (manuelviens) (*French*) +- Kimmo Kujansuu (mrkujansuu) (*Finnish*) - Koala Yeung (yookoala) (*Chinese Traditional, Hong Kong*) -- Ondřej Pokorný (unextro) (*Czech*) +- enolp (*Asturian*) - Osoitz (*Basque*) - Peterandre (*Norwegian, Norwegian Nynorsk*) - tzium (*Sardinian*) -- Mélanie Chauvel (ariasuni) (*French, Arabic, Czech, German, Greek, Hungarian, Slovenian, Ukrainian, Chinese Simplified, Portuguese, Brazilian, Persian, Norwegian Nynorsk, Esperanto, Breton, Corsican, Sardinian, Kabyle*) -- Iváns (Ivans_translator) (*Galician*) - Maya Minatsuki (mayaeh) (*Japanese*) -- Manuel Viens (manuelviens) (*French*) -- Alessandro Levati (Oct326) (*Italian*) +- Mélanie Chauvel (ariasuni) (*French, Arabic, Czech, German, Greek, Hungarian, Slovenian, Ukrainian, Chinese Simplified, Portuguese, Brazilian, Persian, Norwegian Nynorsk, Esperanto, Breton, Corsican, Sardinian, Kabyle*) +- T. E. Kalaycı (tekrei) (*Turkish*) +- Takeçi (polygoat) (*French, Italian*) +- Galician Translator (Galician_translator) (*Galician*) - lamnatos (*Greek*) - Sean Young (assanges) (*Chinese Traditional*) - tolstoevsky (*Russian*) -- enolp (*Asturian*) +- Ihor Hordiichuk (ihor_ck) (*Ukrainian*) +- Ali Demirtaş (alidemirtas) (*Turkish*) - Jasmine Cam Andrever (gourmas) (*Cornish*) +- coxde (*Chinese Simplified*) - gagik_ (*Armenian*) - Masoud Abkenar (mabkenar) (*Persian*) - arshat (*Kazakh*) - Marcin Mikołajczak (mkljczkk) (*Czech, Polish, Russian*) -- Marek Ľach (mareklach) (*Polish, Slovak*) -- Ali Demirtaş (alidemirtas) (*Turkish*) +- Jeff Huang (s8321414) (*Chinese Traditional*) - Blak Ouille (BlakOuille16) (*French*) +- e (diveedd) (*Kurmanji (Kurdish)*) - Em St Cenydd (cancennau) (*Welsh*) - Diluns (*Occitan*) -- Muha Aliss (muhaaliss) (*Turkish*) +- Nurul Azeera Hidayah @ Muhammad Nur Hidayat Yasuyoshi (MNH48.moe) (mnh48) (*Malay*) +- Tagomago (tagomago) (*French, Spanish*) - Jurica (ahjk) (*Croatian*) - Aditoo17 (*Czech*) +- Tigran (tigransimonyan) (*Armenian*) - vishnuvaratharajan (*Tamil*) - pulmonarycosignerkindness (*Swedish*) +- calypsoopenmail (*French*) - cybergene (cyber-gene) (*Japanese*) -- Takeçi (polygoat) (*French, Italian*) -- xatier (*Chinese Traditional*) -- Ihor Hordiichuk (ihor_ck) (*Ukrainian*) +- Bran_Ruz (*Breton*) +- Gearguy (*Finnish*) +- GiorgioHerbie (*Italian*) +- Balázs Meskó (mesko.balazs) (*Czech, Hungarian*) +- Martin (miles) (*Slovenian*) - regulartranslator (*Portuguese, Brazilian*) +- Saederup92 (*Danish*) - ozzii (*French, Serbian (Cyrillic)*) - Irfan (Irfan_Radz) (*Malay*) -- Saederup92 (*Danish*) -- Akarshan Biswas (biswasab) (*Bengali, Sanskrit*) - Yi-Jyun Pan (pan93412) (*Chinese Traditional*) +- ClearlyClaire (*French, Icelandic*) +- Akarshan Biswas (biswasab) (*Bengali, Sanskrit*) +- Kristoffer Grundström (Umeaboy) (*Swedish*) - Rafael H L Moretti (Moretti) (*Portuguese, Brazilian*) - d5Ziif3K (*Ukrainian*) -- GiorgioHerbie (*Italian*) +- හෙළබස (HelaBasa) (*Sinhala*) +- xpil (*Polish*) +- Rojdayek (*Kurmanji (Kurdish)*) - christalleras (*Norwegian Nynorsk*) +- Allen Zhong (AstroProfundis) (*Chinese Simplified*) - Taloran (*Norwegian Nynorsk*) -- ThibG (*French, Icelandic*) +- Sokratis Alichanidis (alichani) (*Greek*) +- Catalina (catalina.st) (*Romanian*) - otrapersona (*Spanish, Spanish, Mexico*) -- Store (HelaBasa) (*Sinhala*) +- Ryo (DrRyo) (*Korean*) - Mauzi (*German, Swedish*) - atarashiako (*Chinese Simplified*) -- 101010 (101010pl) (*Polish*) - erictapen (*German*) -- Tagomago (tagomago) (*French, Spanish*) +- 101010 (101010pl) (*Polish*) - Jaz-Michael King (jazmichaelking) (*Welsh*) -- coxde (*Chinese Simplified*) -- T. E. Kalaycı (tekrei) (*Turkish*) +- axi (*Finnish*) - silkevicious (*Italian*) - Floxu (fredrikdim1) (*Norwegian Nynorsk*) -- Ryo (DrRyo) (*Korean*) +- NadieAishi (*Spanish, Spanish, Mexico*) - Bertil Hedkvist (Berrahed) (*Swedish*) - William(ѕ)ⁿ (wmlgr) (*Spanish*) +- Eshagh (eshagh79) (*Persian*) +- LNDDYL (*Chinese Traditional*) - norayr (*Armenian*) - Satnam S Virdi (pika10singh) (*Punjabi*) - Tiago Epifânio (tfve) (*Portuguese*) -- Balázs Meskó (mesko.balazs) (*Hungarian*) -- Sokratis Alichanidis (alichani) (*Greek*) - Mentor Gashi (mentorgashi.com) (*Albanian*) - carolinagiorno (*Portuguese, Brazilian*) - Hayk Khachatryan (brutusromanus123) (*Armenian*) @@ -834,394 +879,472 @@ Following people have contributed to translation of Mastodon: - Bharat Kumar (Marwari) (*Hindi*) - Austra Muizniece (aus_m) (*Latvian*) - ThonyVezbe (*Breton*) +- Just Spanish (7_7) (*Spanish, Mexico*) - v4vachan (*Malayalam*) +- bilfri (*Danish*) - dkdarshan760 (*Sanskrit*) -- tykayn (*French*) -- axi (*Finnish*) -- Selyan Slimane AMIRI (SelyanKab) (*Kabyle*) - Timur Seber (seber) (*Tatar*) +- Slimane Selyan AMIRI (SelyanKab) (*Kabyle*) +- VaiTon (*Italian*) +- Vik (ViktorOn) (*Danish, Russian*) +- tykayn (*French*) +- GCardo (*Portuguese, Brazilian*) - taoxvx (*Danish*) - Hrach Mkrtchyan (mhrach87) (*Armenian*) - sabri (thetomatoisavegetable) (*Spanish, Spanish, Argentina*) - Dewi (Unkorneg) (*French, Breton*) - CoelacanthusHex (*Chinese Simplified*) -- syncopams (*Chinese Simplified, Chinese Traditional, Chinese Traditional, Hong Kong*) - Rhys Harrison (rhedders) (*Esperanto*) -- Hakim Oubouali (zenata1) (*Standard Moroccan Tamazight*) +- syncopams (*Chinese Simplified, Chinese Traditional, Chinese Traditional, Hong Kong*) - SteinarK (*Norwegian Nynorsk*) +- Maxine B. Vågnes (vagnes) (*Norwegian, Norwegian Nynorsk*) +- Hakim Oubouali (zenata1) (*Standard Moroccan Tamazight*) +- ahangarha (*Persian*) - Lalo Tafolla (lalotafo) (*Spanish, Spanish, Mexico*) -- Mathias B. Vagnes (vagnes) (*Norwegian*) - dashersyed (*Urdu (Pakistan)*) -- Acolyte (666noob404) (*Ukrainian*) - Conight Wang (xfddwhh) (*Chinese Simplified*) - liffon (*Swedish*) - Damjan Dimitrioski (gnud) (*Macedonian*) +- Rikard Linde (rikardlinde) (*Swedish*) +- rondnunes (*Portuguese, Brazilian*) +- strubbl (*German*) - PPNplus (*Thai*) +- Frontier Translation Ltd. (frontier-translation) (*Chinese Simplified*) - shioko (*Chinese Simplified*) +- Kahina Mess (K_hina) (*Kabyle*) - ZiriSut (*Kabyle*) -- Evgeny Petrov (kondra007) (*Russian*) +- Groosha (groosha) (*Russian*) +- Hexandcube (hexandcube) (*Polish*) - Gwenn (Belvar) (*Breton*) +- 游荡 (MamaShip) (*Chinese Simplified*) - StanleyFrew (*French*) +- mynameismonkey (*Welsh*) +- Edward Navarro (EdwardNavarro) (*Spanish*) - Nikita Epifanov (Nikets) (*Russian*) - jaranta (*Finnish*) - Slobodan Simić (Слободан Симић) (slsimic) (*Serbian (Cyrillic)*) +- retiolus (*Catalan*) +- iVampireSP (*Chinese Simplified, Chinese Traditional*) - Felicia Jongleur (midsommar) (*Swedish*) - Denys (dector) (*Ukrainian*) -- iVampireSP (*Chinese Simplified, Chinese Traditional*) -- Pukima (pukimaaa) (*German*) -- 游荡 (MamaShip) (*Chinese Simplified*) +- Mo_der Steven (SakuraPuare) (*Chinese Simplified*) - Vanege (*Esperanto*) -- Rikard Linde (rikardlinde) (*Swedish*) - Jess Rafn (therealyez) (*Danish*) -- strubbl (*German*) - Stasiek Michalski (hellcp) (*Polish*) - dxwc (*Bengali*) -- jmontane (*Catalan*) +- Filbert Salim (gamesbert6) (*Indonesian*) - Liboide (*Spanish*) -- Hexandcube (hexandcube) (*Polish*) +- jmontane (*Catalan*) - Chris Kay (chriskarasoulis) (*Greek*) - Johan Schiff (schyffel) (*Swedish*) +- Rex_sa (rex07) (*Arabic*) - Arunmozhi (tecoholic) (*Tamil*) - zer0-x (ZER0-X) (*Arabic*) - kat (katktv) (*Russian, Ukrainian*) - Lauren Liberda (selfisekai) (*Polish*) -- mynameismonkey (*Welsh*) - oti4500 (*Hungarian, Ukrainian*) +- Delta (Delta-Time) (*Japanese*) +- Michael Zeevi (maze88) (*Hebrew*) +- SarfarazAhmed (*Urdu (Pakistan)*) - Mats Gunnar Ahlqvist (goqbi) (*Swedish*) - diazepan (*Spanish, Spanish, Argentina*) - marzuquccen (*Kabyle*) +- atriix (*Swedish*) - VictorCorreia (victorcorreia1984) (*Afrikaans*) -- Tigran (tigransimonyan) (*Armenian*) +- Remito (remitocat) (*Japanese*) +- AlexKoala (alexkoala) (*Korean*) - Juan José Salvador Piedra (JuanjoSalvador) (*Spanish*) - BurekzFinezt (*Serbian (Cyrillic)*) +- 森の子リスのミーコの大冒険 (Phroneris) (*Japanese*) +- asnomgtu (*Hungarian*) - SHeija (*Finnish*) -- Gearguy (*Finnish*) -- atriix (*Swedish*) +- Врабац (Slovorad) (*Serbian (Cyrillic)*) +- Dženan (Dzenan) (*Swedish*) - Jack R (isaac.97_WT) (*Spanish*) - antonyho (*Chinese Traditional, Hong Kong*) -- asnomgtu (*Hungarian*) -- ahangarha (*Persian*) +- FreddyG (*Esperanto*) - andruhov (*Russian, Ukrainian*) - phena109 (*Chinese Traditional, Hong Kong*) - Aryamik Sharma (Aryamik) (*Swedish, Hindi*) - Unmual (*Spanish*) -- 森の子リスのミーコの大冒険 (Phroneris) (*Japanese*) +- Adrián Graña (alaris83) (*Spanish*) +- cruz2020 (*Portuguese*) +- vpei (*Chinese Simplified*) - るいーね (ruine) (*Japanese*) - Sam Tux (imahbub) (*Bengali*) -- Kristoffer Grundström (Umeaboy) (*Swedish*) - igordrozniak (*Polish*) +- Michał Sidor (michcioperz) (*Polish*) - Isaac Huang (caasih) (*Chinese Traditional*) - AW Unad (awcodify) (*Indonesian*) -- Allen Zhong (AstroProfundis) (*Chinese Simplified*) +- 1Alino (*Slovak*) - Cutls (cutls) (*Japanese*) -- Falling Snowdin (tghgg) (*Vietnamese*) -- Ray (Ipsumry) (*Spanish*) -- Gianfranco Fronteddu (gianfro.gianfro) (*Sardinian*) -- Rasmus Lindroth (RasmusLindroth) (*Swedish*) -- Andrea Lo Iacono (niels0n) (*Italian*) +- Goudarz Jafari (Goudarz) (*Persian*) - Parodper (*Galician*) +- 1 (Ipsumry) (*Spanish*) +- Falling Snowdin (tghgg) (*Vietnamese*) +- Rasmus Lindroth (RasmusLindroth) (*Swedish*) +- Gianfranco Fronteddu (gianfro.gianfro) (*Sardinian*) +- Andrea Lo Iacono (niels0n) (*Italian*) - fucsia (*Italian*) -- NadieAishi (*Spanish, Spanish, Mexico*) +- Vedran Serbu (SerenoXGen) (*Croatian*) - Kinshuk Sunil (kinshuksunil) (*Hindi*) - Ullas Joseph (ullasjoseph) (*Malayalam*) -- Goudarz Jafari (Goudarz) (*Persian*) +- al_._ (*German, Russian*) +- Matthías Páll Gissurarson (icetritlo) (*Icelandic*) +- Percy (kecrily) (*Chinese Simplified*) - Yu-Pai Liu (tedliou) (*Chinese Traditional*) +- KcKcZi (*Chinese Simplified*) - Amarin Cemthong (acitmaster) (*Thai*) - Johannes Nilsson (nlssn) (*Swedish*) - juanda097 (juanda-097) (*Spanish*) +- xsml (*Chinese Simplified*) - Anunnakey (*Macedonian*) - erikkemp (*Dutch*) - erikstl (*Esperanto*) -- bobchao (*Chinese Traditional*) - twpenguin (*Chinese Traditional*) -- MadeInSteak (*Finnish*) +- Po-chiang Chao (bobchao) (*Chinese Traditional*) +- Marcus Myge (mygg-priv) (*Norwegian*) - Esther (esthermations) (*Portuguese*) +- MadeInSteak (*Finnish*) - t_aus_m (*German*) +- serapolis (*Japanese, Chinese Simplified, Chinese Traditional, Chinese Traditional, Hong Kong*) - Heimen Stoffels (Vistaus) (*Dutch*) - Rajarshi Guha (rajarshiguha) (*Bengali*) -- Mo_der Steven (SakuraPuare) (*Chinese Simplified*) - Gopal Sharma (gopalvirat) (*Hindi*) -- arethsu (*Swedish*) -- Carlos Solís (csolisr) (*Esperanto*) +- Linnéa (lesbian_subnet) (*Swedish*) +- 北䑓如法 (Nyoho) (*Japanese*) +- abidin toumi (Zet24) (*Arabic*) - Tofiq Abdula (Xwla) (*Sorani (Kurdish)*) +- Carlos Solís (csolisr) (*Esperanto*) +- Yamagishi Kazutoshi (ykzts) (*Japanese, Vietnamese, Icelandic, Sorani (Kurdish)*) - Parthan S Ramanujam (parthan) (*Tamil*) - Kasper Nymand (KasperNymand) (*Danish*) -- Jeff Huang (s8321414) (*Chinese Traditional*) -- TS (morte) (*Finnish*) - subram (*Turkish*) +- TS (morte) (*Finnish*) - SensDeViata (*Ukrainian*) - Ptrcmd (ptrcmd) (*Chinese Traditional*) +- megaleo (*Portuguese, Brazilian*) - SergioFMiranda (*Portuguese, Brazilian*) -- Percy (scvoet) (*Chinese Simplified*) -- Vivek K J (Vivekkj) (*Malayalam*) - hiroTS (*Chinese Traditional*) +- Vivek K J (Vivekkj) (*Malayalam*) +- arielcostas3 (*Galician*) - johne32rus23 (*Russian*) - AzureNya (*Chinese Simplified*) - OctolinGamer (octolingamer) (*Portuguese, Brazilian*) +- filippodb (*Italian*) - Ram varma (ram4varma) (*Tamil*) -- 北䑓如法 (Nyoho) (*Japanese*) +- sanser (*Russian*) +- Y.Yamashiro (uist1idrju3i) (*Japanese*) - Pukima (Pukimaa) (*German*) - diorama (*Italian*) -- Daniel Dimitrov (daniel.dimitrov) (*Bulgarian*) - frumble (*German*) +- Daniel Dimitrov (daniel.dimitrov) (*Bulgarian*) - kekkepikkuni (*Tamil*) +- MODcraft (*Chinese Simplified*) - oorsutri (*Tamil*) - Neo_Chen (NeoChen1024) (*Chinese Traditional*) - Nithin V (Nithin896) (*Tamil*) -- Marcus Myge (mygg-priv) (*Norwegian*) - Miro Rauhala (mirorauhala) (*Finnish*) -- AlexKoala (alexkoala) (*Korean*) +- Oymate (*Bengali*) - ಚಿರಾಗ್ ನಟರಾಜ್ (chiraag-nataraj) (*Kannada*) -- Aswin C (officialcjunior) (*Malayalam*) - Guillaume Turchini (orion78fr) (*French*) +- Aswin C (officialcjunior) (*Malayalam*) - Ganesh D (auntgd) (*Marathi*) +- Yuval Nehemia (yuvalne) (*Hebrew*) - mawoka-myblock (mawoka) (*German*) - dragnucs2 (*Arabic*) - Ryan Ho (koungho) (*Chinese Traditional*) -- Pedro Henrique (exploronauta) (*Portuguese, Brazilian*) - Tejas Harad (h_tejas) (*Marathi*) +- Pedro Henrique (exploronauta) (*Portuguese, Brazilian*) +- Amir Reza (ElAmir) (*Persian*) +- Tatsuto "Laminne" Yamamoto (laminne) (*Japanese*) - Vasanthan (vasanthan) (*Tamil*) - 硫酸鶏 (acid_chicken) (*Japanese*) -- clarmin b8 (clarminb8) (*Sorani (Kurdish)*) - programizer (*German*) +- clarmin b8 (clarminb8) (*Sorani (Kurdish)*) - manukp (*Malayalam*) -- earth dweller (sanethoughtyt) (*Marathi*) - psymyn (*Hebrew*) +- earth dweller (sanethoughtyt) (*Marathi*) +- Marek Ľach (marek-lach) (*Slovak*) - meijerivoi (toilet) (*Finnish*) - essaar (*Tamil*) +- Nemuj (Dentrado) (*Japanese, Esperanto*) - serubeena (*Swedish*) - Rintan (*Japanese*) - Karol Kosek (krkkPL) (*Polish*) -- Khó͘ Tiat-lêng (khotiatleng) (*Chinese Traditional, Taigi*) -- Hernik (hernik27) (*Czech*) +- Khó͘ Tiatlêng (khotiatleng) (*Chinese Traditional, Taigi*) - valarivan (*Tamil*) -- kuchengrab (*German*) +- Hernik (hernik27) (*Czech*) +- revarioba (*Spanish*) - friedbeans (*Croatian*) +- kuchengrab (*German*) - Abi Turi (abi123) (*Georgian*) - Hinaloe (hinaloe) (*Japanese*) - Sebastián Andil (Selrond) (*Slovak*) -- KEINOS (*Japanese*) -- filippodb (*Italian*) +- Ifnuth (*German*) - Asbjørn Olling (a2) (*Danish*) +- KEINOS (*Japanese*) - Balázs Meskó (meskobalazs) (*Hungarian*) +- Artem Mikhalitsin (artemmikhalitsin) (*Russian*) +- Algustionesa Yoshi (algustionesa) (*Indonesian*) - Bottle (suryasalem2010) (*Tamil*) - Wrya ali (John12) (*Sorani (Kurdish)*) - JzshAC (*Chinese Simplified*) +- siamano (*Thai, Esperanto*) +- gnu-ewm (*Polish*) - Antillion (antillion99) (*Spanish*) - Steven Tappert (sammy8806) (*German*) - Reg3xp (*Persian*) - Wassim EL BOUHAMIDI (elbouhamidiw) (*Arabic*) +- Maciej Błędkowski (mble) (*Polish*) - gowthamanb (*Tamil*) - hiphipvargas (*Portuguese*) -- Ch. (sftblw) (*Korean*) +- tunisiano187 (*French*) - Arttu Ylhävuori (arttu.ylhavuori) (*Finnish*) -- tctovsli (*Norwegian Nynorsk*) -- Timo Tijhof (Krinkle) (*Dutch*) +- Ch. (sftblw) (*Korean*) +- eorn (*Breton*) +- Jona (88wcJoWl) (*Spanish*) - Mikkel B. Goldschmidt (mikkelbjoern) (*Danish*) +- Timo Tijhof (Krinkle) (*Dutch*) +- Ka2n (kaanmetu) (*Turkish*) +- tctovsli (*Norwegian Nynorsk*) - mecqor labi (mecqorlabi) (*Persian*) - Odyssey346 (alexader612) (*Norwegian*) -- Yamagishi Kazutoshi (ykzts) (*Japanese, Icelandic, Sorani (Kurdish)*) -- Eban (ebanDev) (*French, Esperanto*) - vjasiegd (*Polish*) +- Eban (ebanDev) (*French, Esperanto*) - SamitiMed (samiti3d) (*Thai*) - Nícolas Lavinicki (nclavinicki) (*Portuguese, Brazilian*) -- snatcher (*Portuguese, Brazilian*) - Rekan Adl (rekan-adl1) (*Sorani (Kurdish)*) +- Antara2Cinta (Se7enTime) (*Indonesian*) +- Yassine Aït-El-Mouden (yaitelmouden) (*Standard Moroccan Tamazight*) - VSx86 (*Russian*) - umelard (*Hebrew*) -- Antara2Cinta (Se7enTime) (*Indonesian*) - parnikkapore (*Thai*) +- Lagash (lagash) (*Esperanto*) - Sherwan Othman (sherwanothman11) (*Sorani (Kurdish)*) -- Yassine Aït-El-Mouden (yaitelmouden) (*Standard Moroccan Tamazight*) - SKELET (*Danish*) +- Exbu (*Dutch*) +- Chine Sebastien (chine.sebastien) (*French*) - Fei Yang (Fei1Yang) (*Chinese Traditional*) +- A A (sebastien.chine) (*French*) - Ğani (freegnu) (*Tatar*) -- Renato "Lond" Cerqueira (renatolond) (*Portuguese, Brazilian*) - enipra (*Armenian*) -- ALEM FARID (faridatcemlulaqbayli) (*Kabyle*) +- Renato "Lond" Cerqueira (renatolond) (*Portuguese, Brazilian*) - musix (*Persian*) - ギャラ (gyara) (*Japanese, Chinese Simplified*) +- ALEM FARID (faridatcemlulaqbayli) (*Kabyle*) - Hougo (hougo) (*French*) -- ybardapurkar (*Marathi*) -- 亜緯丹穂 (ayiniho) (*Japanese*) -- Adrián Lattes (haztecaso) (*Spanish*) - Mordi Sacks (MordiSacks) (*Hebrew*) - Trinsec (*Dutch*) +- Adrián Lattes (haztecaso) (*Spanish*) - Tigran's Tips (tigrank08) (*Armenian*) -- TracyJacks (*Chinese Simplified*) +- 亜緯丹穂 (ayiniho) (*Japanese*) +- ybardapurkar (*Marathi*) - Szabolcs Gál (galszabolcs810624) (*Hungarian*) - Vladislav Săcrieriu (vladislavs14) (*Romanian*) -- danreznik (*Hebrew*) +- TracyJacks (*Chinese Simplified*) - rasheedgm (*Kannada*) -- omquylzu (*Latvian*) -- c6ristian (*German*) -- Belkacem Mohammed (belkacem77) (*Kabyle*) +- danreznik (*Hebrew*) +- Cirelli (cirelli94) (*Italian*) +- Siddharastro Doraku (sidharastro) (*Spanish, Mexico*) - lexxai (*Ukrainian*) +- omquylzu (*Latvian*) - Navjot Singh (nspeaks) (*Hindi*) +- mkljczk (*Polish*) +- Belkacem Mohammed (belkacem77) (*Kabyle*) +- c6ristian (*German*) +- damascene (*Arabic*) - Ozai (*German*) - Sahak Petrosyan (petrosyan) (*Armenian*) -- Oymate (*Bengali*) - Viorel-Cătălin Răpițeanu (rapiteanu) (*Romanian*) -- siamano (*Thai, Esperanto*) - Siddhartha Sarathi Basu (quinoa_biryani) (*Bengali*) - Pachara Chantawong (pachara2202) (*Thai*) -- Zijian Zhao (jobs2512821228) (*Chinese Simplified*) - Skew (noan.perrot) (*French*) -- mkljczk (*Polish*) +- Zijian Zhao (jobs2512821228) (*Chinese Simplified*) +- Overflow Cat (OverflowCat) (*Chinese Simplified, Chinese Traditional*) +- dbeaver (*German*) +- zordsdavini (*Lithuanian*) - Guru Prasath Anandapadmanaban (guruprasath) (*Tamil*) - turtle836 (*German*) - Marcepanek_ (thekingmarcepan) (*Polish*) -- Lamin (laminne) (*Japanese*) -- Yann Aguettaz (yann-a) (*French*) - Feruz Oripov (FeruzOripov) (*Russian*) -- serapolis (*Chinese Simplified, Chinese Traditional*) +- Yann Aguettaz (yann-a) (*French*) - Mick Onio (xgc.redes) (*Asturian*) - Malik Mann (dermalikmann) (*German*) +- padulafacundo (*Spanish*) - dadosch (*German*) -- r3dsp1 (*Chinese Traditional, Hong Kong*) - hg6 (*Hindi*) - Tianqi Zhang (tina.zhang040609) (*Chinese Simplified*) -- padulafacundo (*Spanish*) +- r3dsp1 (*Chinese Traditional, Hong Kong*) - johannes hove-henriksen (J0hsHH) (*Norwegian*) - Orlando Murcio (Atos20) (*Spanish, Mexico*) -- Padraic Calpin (padraic-padraic) (*Slovenian*) - cenegd (*Chinese Simplified*) -- piupiupiudiu (*Chinese Simplified*) +- Youngeon Lee (YoungeonLee) (*Korean*) - shdy (*German*) +- Umi (mtrumi) (*Chinese Simplified, Chinese Traditional, Hong Kong*) +- Padraic Calpin (padraic-padraic) (*Slovenian*) - Ильзира Рахматуллина (rahmatullinailzira53) (*Tatar*) -- Hugh Liu (youloveonlymeh) (*Chinese Simplified*) +- piupiupiudiu (*Chinese Simplified*) - Pixelcode (realpixelcode) (*German*) +- Dennis Reimund (reimunddennis7) (*German*) - Yogesh K S (yogi) (*Kannada*) - Adithya K (adithyak04) (*Malayalam*) -- Dennis Reimund (reimunddennis7) (*German*) +- DAI JIE (daijie) (*Chinese Simplified*) +- Hugh Liu (youloveonlymeh) (*Chinese Simplified*) - Rakino (rakino) (*Chinese Simplified*) -- Michał Sidor (michcioperz) (*Polish*) -- AmazighNM (*Kabyle*) -- Miquel Sabaté Solà (mssola) (*Catalan*) +- ZQYD (*Chinese Simplified*) +- X.M (kimonoki) (*Chinese Simplified*) +- boni777 (*Chinese Simplified*) - Jothipazhani Nagarajan (jothipazhani.n) (*Tamil*) -- hallomaurits (*Dutch*) +- Miquel Sabaté Solà (mssola) (*Catalan*) +- Stanisław Jelnicki (JelNiSlaw) (*Polish*) +- AmazighNM (*Kabyle*) - alnd hezh (alndhezh) (*Sorani (Kurdish)*) +- CloudSet (*Chinese Simplified*) - Clash Clans (KURD12345) (*Sorani (Kurdish)*) -- Solid Rhino (SolidRhino) (*Dutch*) - Metehan Özyürek (MetehanOzyurek) (*Turkish*) +- Paula SIMON (EncoreEutIlFalluQueJeLeSusse) (*French*) +- Solid Rhino (SolidRhino) (*Dutch*) +- nua_kr (*Korean*) +- hallomaurits (*Dutch*) - 林水溶 (shuiRong) (*Chinese Simplified*) -- Sébastien Feugère (smonff) (*French*) -- Y.Yamashiro (uist1idrju3i) (*Japanese*) +- rikrise (*Swedish*) - Takeshi Umeda (noellabo) (*Japanese*) - k_taka (peaceroad) (*Japanese*) -- hussama (*Portuguese, Brazilian*) +- Sébastien Feugère (smonff) (*French*) - Hallo Abdullah (hallo_hamza12) (*Sorani (Kurdish)*) -- Ashok314 (ashok314) (*Hindi*) -- PifyZ (*French*) -- OminousCry (*Russian*) +- hussama (*Portuguese, Brazilian*) +- EzigboOmenana (*Cornish*) - Robert Yano (throwcalmbobaway) (*Spanish, Mexico*) -- Tom_ (*Czech*) -- Tagada (Tagadda) (*French*) -- shafouz (*Portuguese, Brazilian*) - Yasin İsa YILDIRIM (redsfyre) (*Turkish*) +- PifyZ (*French*) +- Tagada (Tagadda) (*French*) - eichkat3r (*German*) +- Ashok314 (ashok314) (*Hindi*) +- Zlr- (cZeler) (*French*) - SnDer (*Dutch*) -- Kahina Mess (K_hina) (*Kabyle*) -- Swati Sani (swatisani) (*Urdu (Pakistan)*) -- Kk (kishorkumara3) (*Kannada*) -- Daniel M. (daniconil) (*Catalan*) +- OminousCry (*Russian*) +- Adam Sapiński (Adamos9898) (*Polish*) +- Tom_ (*Czech*) +- shafouz (*Portuguese, Brazilian*) - Shrinivasan T (tshrinivasan) (*Tamil*) -- 夜楓Yoka (Yoka2627) (*Chinese Simplified*) -- Nathaël Noguès (NatNgs) (*French*) +- Kk (kishorkumara3) (*Kannada*) +- Swati Sani (swatisani) (*Urdu (Pakistan)*) +- papayaisnotafood (*Chinese Traditional*) - さっかりんにーさん (saccharin23) (*Japanese*) -- Rex_sa (rex07) (*Arabic*) +- Daniel M. (daniconil) (*Catalan*) +- César Daniel Cavanzo Quintero (LeinadCQ) (*Esperanto*) +- Nathaël Noguès (NatNgs) (*French*) +- 夜楓Yoka (Yoka2627) (*Chinese Simplified*) +- Mt Front (mtfront) (*Chinese Simplified*) +- Artem (Artem4ik) (*Russian*) - Robin van der Vliet (RobinvanderVliet) (*Esperanto*) -- Vikatakavi (*Kannada*) - Tradjincal (tradjincal) (*French*) -- pullopen (*Chinese Simplified*) - SusVersiva (*Catalan*) -- Marvin (magicmarvman) (*German*) - Zinkokooo (*Basque*) -- Livingston Samuel (livingston) (*Tamil*) -- CyberAmoeba (pseudoobscura) (*Chinese Simplified*) -- tsundoker (*Malayalam*) -- eorn (*Breton*) -- prabhjot (*Hindi*) -- mmokhi (*Persian*) +- Marvin (magicmarvman) (*German*) +- Vikatakavi (*Kannada*) +- pullopen (*Chinese Simplified*) - sergioaraujo1 (*Portuguese, Brazilian*) +- prabhjot (*Hindi*) +- CyberAmoeba (pseudoobscura) (*Chinese Simplified*) +- mmokhi (*Persian*) - Entelekheia-ousia (*Chinese Simplified*) -- Pierre Morvan (Iriep) (*Breton*) -- oscfd (*Spanish*) +- Livingston Samuel (livingston) (*Tamil*) +- tsundoker (*Malayalam*) - skaaarrr (*German*) -- mkljczk (mykylyjczyk) (*Polish*) -- fedot (*Russian*) +- Pierre Morvan (Iriep) (*Breton*) - Paz Galindo (paz.almendra.g) (*Spanish*) +- fedot (*Russian*) +- mkljczk (mykylyjczyk) (*Polish*) - Ricardo Colin (rysard) (*Spanish*) - Philipp Fischbeck (PFischbeck) (*German*) +- oscfd (*Spanish*) - Zoé Bőle (zoe1337) (*German*) -- EzigboOmenana (*Cornish*) - GaggiX (*Italian*) -- Lukas Fülling (lfuelling) (*German*) - JackXu (Merman-Jack) (*Chinese Simplified*) +- Lukas Fülling (lfuelling) (*German*) - ralozkolya (*Georgian*) -- Apple (blackteaovo) (*Chinese Simplified*) -- asala4544 (*Basque*) -- Xurxo Guerra (xguerrap) (*Galician*) -- qwerty287 (*German*) -- Anoop (anoopp) (*Malayalam*) -- pezcurrel (*Italian*) -- Samir Tighzert (samir_t7) (*Kabyle*) +- Jason Gibson (barberpike606) (*Slovenian, Chinese Simplified*) - Dremski (*Bulgarian*) -- Dennis Reimund (reimund_dennis) (*German*) -- ru_mactunnag (*Scottish Gaelic*) -- Nocta (*French*) +- Kaede (kaedech) (*Japanese*) - Aymeric (AymBroussier) (*French*) - mashirozx (*Chinese Simplified*) +- María José Vera (mjverap) (*Spanish*) +- asala4544 (*Basque*) +- ronee (*Kurmanji (Kurdish)*) +- qwerty287 (*German*) +- pezcurrel (*Italian*) +- Anoop (anoopp) (*Malayalam*) +- Apple (blackteaovo) (*Chinese Simplified*) +- Lilian Nabati (Lilounab49) (*French*) +- ru_mactunnag (*Scottish Gaelic*) +- Nocta (*French*) +- Tangcuyu (*Chinese Simplified*) +- Dennis Reimund (reimund_dennis) (*German*) - Albatroz Jeremias (albjeremias) (*Portuguese*) -- Matias Lavik (matiaslavik) (*Norwegian Nynorsk*) -- Amith Raj Shetty (amithraj1989) (*Kannada*) -- abidin toumi (Zet24) (*Arabic*) -- mikel (mikelalas) (*Spanish*) -- OpenAlgeria (*Arabic*) -- random_person (*Spanish*) -- Sais Lakshmanan (Saislakshmanan) (*Tamil*) -- Trond Boksasp (boksasp) (*Norwegian*) -- xpac1985 (xpac) (*German*) -- Zlr- (cZeler) (*French*) -- Mohammad Adnan Mahmood (adnanmig) (*Arabic*) -- mimikun (*Japanese*) -- smedvedev (*Russian*) -- asretro (*Chinese Traditional, Hong Kong*) +- Xurxo Guerra (xguerrap) (*Galician*) +- Samir Tighzert (samir_t7) (*Kabyle*) +- lokalisoija (*Finnish*) +- codl (*French*) +- thisdudeisvegan (braydofficial) (*German*) - tamaina (*Japanese*) +- Matias Lavik (matiaslavik) (*Norwegian Nynorsk*) - Aman Alam (aalam) (*Punjabi*) +- Holger Huo (holgerhuo) (*Chinese Simplified*) +- Amith Raj Shetty (amithraj1989) (*Kannada*) +- mimikun (*Japanese*) +- Ragnars Eggerts (rmegg1933) (*Latvian*) - ÀŘǾŚ PÀŚĦÀÍ (arospashai) (*Sorani (Kurdish)*) -- Kaede (kaedech) (*Japanese*) +- smedvedev (*Russian*) +- Sais Lakshmanan (Saislakshmanan) (*Tamil*) +- Mohammad Adnan Mahmood (adnanmig) (*Arabic*) +- OpenAlgeria (*Arabic*) +- Trond Boksasp (boksasp) (*Norwegian*) - Doug (douglasalvespe) (*Portuguese, Brazilian*) +- Mohd Bilal (mdb571) (*Malayalam*) - Fleva (*Sardinian*) -- Abijeet Patro (Abijeet) (*Basque*) -- SamOak (*Portuguese, Brazilian*) -- Aries (orlea) (*Japanese*) -- Bartek Fijałkowski (brateq) (*Polish*) -- NeverMine17 (*Russian*) -- Brodi (brodi1) (*Dutch*) -- Ács Zoltán (zoli111) (*Hungarian*) -- capiscuas (*Spanish*) -- Benjamin Cobb (benjamincobb) (*German*) -- djoerd (*Dutch*) -- waweic (*German*) -- Amir Kurdo (kuraking202) (*Sorani (Kurdish)*) -- dobrado (*Portuguese, Brazilian*) -- Baban Abdulrahman (baban.abdulrehman) (*Sorani (Kurdish)*) -- dcapillae (*Spanish*) -- Azad ahmad (dashty) (*Sorani (Kurdish)*) -- Salh_haji6 (*Sorani (Kurdish)*) -- Ranj A Abdulqadir (RanjAhmed) (*Sorani (Kurdish)*) -- tateisu (*Japanese*) -- Savarín Electrográfico Marmota Intergalactica (herrero.maty) (*Spanish*) -- ebrezhoneg (*Breton*) -- 于晚霞 (xissshawww) (*Chinese Simplified*) -- silverscat_3 (SilversCat) (*Japanese*) -- centumix (*Japanese*) -- umonaca (*Chinese Simplified*) -- Ni Futchi (futchitwo) (*Japanese*) -- おさ (osapon) (*Japanese*) -- kavitha129 (*Tamil*) -- Hannah (Aniqueper1) (*Chinese Simplified*) -- Jiniux (*Italian*) -- Jari Ronkainen (ronchaine) (*Finnish*) +- xpac1985 (xpac) (*German*) +- mikel (mikelalas) (*Spanish*) +- random_person (*Spanish*) +- asretro (*Chinese Traditional, Hong Kong*) +- Arĝentakato (argxentakato) (*Japanese*) - Nithya Mary (nithyamary25) (*Tamil*) +- Azad ahmad (dashty) (*Sorani (Kurdish)*) +- Bartek Fijałkowski (brateq) (*Polish*) +- ebrezhoneg (*Breton*) +- maksutheam (*Finnish*) +- majorblazr (*Danish*) +- Jill H. (kokakiwi) (*French*) +- Patrice Boivin (patriceboivin58) (*French*) +- centumix (*Japanese*) +- 江尚寒 (jiangshanghan) (*Chinese Simplified*) +- hud5634j (*Spanish*) +- おさ (osapon) (*Japanese*) +- Jiniux (*Italian*) +- Hannah (Aniqueper1) (*Chinese Simplified*) +- Ni Futchi (futchitwo) (*Japanese*) +- dobrado (*Portuguese, Brazilian*) +- dcapillae (*Spanish*) +- Ranj A Abdulqadir (RanjAhmed) (*Sorani (Kurdish)*) +- Kurdish Translator (Kurdish.boy) (*Sorani (Kurdish)*) +- Amir Kurdo (kuraking202) (*Sorani (Kurdish)*) +- umonaca (*Chinese Simplified*) +- Jari Ronkainen (ronchaine) (*Finnish*) +- djoerd (*Dutch*) +- Savarín Electrográfico Marmota Intergalactica (herrero.maty) (*Spanish*) +- 于晚霞 (xissshawww) (*Chinese Simplified*) +- tateisu (*Japanese*) +- NeverMine17 (*Russian*) +- soheilkhanalipur (*Persian*) +- SamOak (*Portuguese, Brazilian*) +- kavitha129 (*Tamil*) +- Salh_haji6 (*Sorani (Kurdish)*) +- Brodi (brodi1) (*Dutch*) +- capiscuas (*Spanish*) +- HSD Channel (kvdbve34) (*Russian*) +- Abijeet Patro (Abijeet) (*Basque*) +- Ács Zoltán (zoli111) (*Hungarian*) +- Benjamin Cobb (benjamincobb) (*German*) +- waweic (*German*) +- Aries (orlea) (*Japanese*) diff --git a/CHANGELOG.md b/CHANGELOG.md index d8fde27fe30..519c561a6a5 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -3,6 +3,194 @@ Changelog All notable changes to this project will be documented in this file. +## Unreleased +### Added + +- **Add support for post editing** ([Gargron](https://github.com/mastodon/mastodon/pull/16697), [Gargron](https://github.com/mastodon/mastodon/pull/17727), [Gargron](https://github.com/mastodon/mastodon/pull/17728), [Gargron](https://github.com/mastodon/mastodon/pull/17320), [Gargron](https://github.com/mastodon/mastodon/pull/17404), [Gargron](https://github.com/mastodon/mastodon/pull/17390), [ClearlyClaire](https://github.com/mastodon/mastodon/pull/17335), [Gargron](https://github.com/mastodon/mastodon/pull/17696), [Gargron](https://github.com/mastodon/mastodon/pull/17745), [ClearlyClaire](https://github.com/mastodon/mastodon/pull/17740), [Gargron](https://github.com/mastodon/mastodon/pull/17697), [Gargron](https://github.com/mastodon/mastodon/pull/17648), [ClearlyClaire](https://github.com/mastodon/mastodon/pull/17531), [ClearlyClaire](https://github.com/mastodon/mastodon/pull/17499), [ClearlyClaire](https://github.com/mastodon/mastodon/pull/17498), [ClearlyClaire](https://github.com/mastodon/mastodon/pull/17380), [Gargron](https://github.com/mastodon/mastodon/pull/17373), [Gargron](https://github.com/mastodon/mastodon/pull/17334), [Gargron](https://github.com/mastodon/mastodon/pull/17333), [ClearlyClaire](https://github.com/mastodon/mastodon/pull/17699), [ClearlyClaire](https://github.com/mastodon/mastodon/pull/17748)) + - Previous versions remain available for perusal and comparison + - People who reblogged a post are notified when it's edited + - New REST APIs: + - `PUT /api/v1/statuses/:id` + - `GET /api/v1/statuses/:id/history` + - `GET /api/v1/statuses/:id/source` + - New streaming API event: + - `update` +- **Add appeals for moderator decisions** ([Gargron](https://github.com/mastodon/mastodon/pull/17364), [ClearlyClaire](https://github.com/mastodon/mastodon/pull/17725), [ClearlyClaire](https://github.com/mastodon/mastodon/pull/17566), [ClearlyClaire](https://github.com/mastodon/mastodon/pull/17652), [Gargron](https://github.com/mastodon/mastodon/pull/17616), [Gargron](https://github.com/mastodon/mastodon/pull/17615), [ClearlyClaire](https://github.com/mastodon/mastodon/pull/17554), [Gargron](https://github.com/mastodon/mastodon/pull/17523)) + - All default moderator decisions now notify the affected user by e-mail + - They now link to an appeal page instead of suggesting replying to the e-mail + - They can now be found in account settings and not just e-mail + - Users can submit one appeal within 20 days of the decision + - Moderators can approve or reject the appeal +- **Add notifications for posts deleted by moderators** ([Gargron](https://github.com/mastodon/mastodon/pull/17204), [Gargron](https://github.com/mastodon/mastodon/pull/17668), [Gargron](https://github.com/mastodon/mastodon/pull/17746), [Gargron](https://github.com/mastodon/mastodon/pull/17679), [Gargron](https://github.com/mastodon/mastodon/pull/17487)) + - New, redesigned report view in admin UI + - Common report actions now only take one click to complete + - Deleting posts or marking as sensitive from report now notifies user + - Reports can be categorized by reason and specific rules violated + - The reasons are automatically cited in the notifications, except for spam + - Marking posts as sensitive now federates using post editing +- **Add explore page with trending posts and links** ([Gargron](https://github.com/mastodon/mastodon/pull/17123), [Gargron](https://github.com/mastodon/mastodon/pull/17431), [Gargron](https://github.com/mastodon/mastodon/pull/16917), [Gargron](https://github.com/mastodon/mastodon/pull/17677), [Gargron](https://github.com/mastodon/mastodon/pull/16938), [Gargron](https://github.com/mastodon/mastodon/pull/17044), [ClearlyClaire](https://github.com/mastodon/mastodon/pull/16978), [Gargron](https://github.com/mastodon/mastodon/pull/16979), [tribela](https://github.com/mastodon/mastodon/pull/17066), [Gargron](https://github.com/mastodon/mastodon/pull/17072), [Gargron](https://github.com/mastodon/mastodon/pull/17403), [noiob](https://github.com/mastodon/mastodon/pull/17624), [mayaeh](https://github.com/mastodon/mastodon/pull/17755), [mayaeh](https://github.com/mastodon/mastodon/pull/17757), [Gargron](https://github.com/mastodon/mastodon/pull/17760), [mayaeh](https://github.com/mastodon/mastodon/pull/17762)) + - Hashtag trends algorithm is extended to work for posts and links + - Links are only considered if they have an adequate preview card + - Preview card generation has been improved to support structured data + - Links can only trend if the publisher (domain) has been approved + - Posts can only trend if the author has been approved + - Individual approval and rejection for posts and links is also available + - Moderators are notified about pending trends at most once every 2 hours + - Posts and link trends are language-specific + - Search page is redesigned into explore page in web UI + - Discovery tab is coming soon in official iOS and Android apps + - New REST APIs: + - `GET /api/v1/trends/links` + - `GET /api/v1/trends/statuses` + - `GET /api/v1/trends/tags` (alias of `GET /api/v1/trends`) + - `GET /api/v1/admin/trends/links` + - `GET /api/v1/admin/trends/statuses` + - `GET /api/v1/admin/trends/tags` +- **Add graphs and retention metrics to admin dashboard** ([Gargron](https://github.com/mastodon/mastodon/pull/16829), [Gargron](https://github.com/mastodon/mastodon/pull/17617), [ClearlyClaire](https://github.com/mastodon/mastodon/pull/17570), [ClearlyClaire](https://github.com/mastodon/mastodon/pull/16910), [ClearlyClaire](https://github.com/mastodon/mastodon/pull/16909), [mashirozx](https://github.com/mastodon/mastodon/pull/16884), [ClearlyClaire](https://github.com/mastodon/mastodon/pull/16854)) + - Dashboard shows more numbers with development over time + - Other data such as most used interface languages and sign-up sources + - User retention graph shows how many new users stick around + - New REST APIs: + - `POST /api/v1/admin/measures` + - `POST /api/v1/admin/dimensions` + - `POST /api/v1/admin/retention` +- Add `GET /api/v1/accounts/familiar_followers` to REST API ([Gargron](https://github.com/mastodon/mastodon/pull/17700)) +- Add `POST /api/v1/accounts/:id/remove_from_followers` to REST API ([noellabo](https://github.com/mastodon/mastodon/pull/16864)) +- Add `category` and `rule_ids` params to `POST /api/v1/reports` IN REST API ([Gargron](https://github.com/mastodon/mastodon/pull/17492), [Gargron](https://github.com/mastodon/mastodon/pull/17682), [Gargron](https://github.com/mastodon/mastodon/pull/17713)) + - `category` can be one of: `spam`, `violation`, `other` (default) + - `rule_ids` must reference `rules` returned in `GET /api/v1/instance` +- Add global `lang` param to REST API ([Gargron](https://github.com/mastodon/mastodon/pull/17464), [Gargron](https://github.com/mastodon/mastodon/pull/17592)) +- Add `types` param to `GET /api/v1/notifications` in REST API ([Gargron](https://github.com/mastodon/mastodon/pull/17767)) +- **Add notifications for moderators about new sign-ups** ([Gargron](https://github.com/mastodon/mastodon/pull/16953), [ClearlyClaire](https://github.com/mastodon/mastodon/pull/17629)) + - When a new user confirms e-mail, moderators receive a notification + - New streaming API event: + - `admin.sign_up` +- Add authentication history ([Gargron](https://github.com/mastodon/mastodon/pull/16408), [ClearlyClaire](https://github.com/mastodon/mastodon/pull/16428), [baby-gnu](https://github.com/mastodon/mastodon/pull/16654)) +- Add ability to automatically delete old posts ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/16529), [ClearlyClaire](https://github.com/mastodon/mastodon/pull/17691), [tribela](https://github.com/mastodon/mastodon/pull/16653)) +- Add ability to pin private posts ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/16954), [tribela](https://github.com/mastodon/mastodon/pull/17326), [ClearlyClaire](https://github.com/mastodon/mastodon/pull/17304), [MitarashiDango](https://github.com/mastodon/mastodon/pull/17647)) +- Add ability to filter search results by author using `from:` syntax ([tribela](https://github.com/mastodon/mastodon/pull/16526)) +- Add ability to delete canonical email blocks in admin UI ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/16644)) +- Add ability to purge undeliverable domains in admin UI ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/16686), [tribela](https://github.com/mastodon/mastodon/pull/17210), [tribela](https://github.com/mastodon/mastodon/pull/17741), [tribela](https://github.com/mastodon/mastodon/pull/17209)) +- Add ability to disable e-mail token authentication for specific users in admin UI ([Gargron](https://github.com/mastodon/mastodon/pull/16427)) +- **Add ability to suspend accounts in batches in admin UI** ([Gargron](https://github.com/mastodon/mastodon/pull/17009), [ClearlyClaire](https://github.com/mastodon/mastodon/pull/17301), [Gargron](https://github.com/mastodon/mastodon/pull/17444)) + - New, redesigned accounts list in admin UI + - Batch suspensions are meant to help clean up spam and bot accounts + - They do not generate notifications +- Add ability to filter reports by origin of target account in admin UI ([Gargron](https://github.com/mastodon/mastodon/pull/16487)) +- Add support for login through OpenID Connect ([chandrn7](https://github.com/mastodon/mastodon/pull/16221)) +- Add lazy loading for emoji picker in web UI ([mashirozx](https://github.com/mastodon/mastodon/pull/16907), [ClearlyClaire](https://github.com/mastodon/mastodon/pull/17011)) +- Add single option votes tooltip in polls in web UI ([Brawaru](https://github.com/mastodon/mastodon/pull/16849)) +- Add confirmation modal when closing media edit modal with unsaved changes in web UI ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/16518)) +- Add support for fetching Create and Announce activities by URI in ActivityPub ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/16383)) +- Add `S3_FORCE_SINGLE_REQUEST` environment variable ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/16866)) +- Add `OMNIAUTH_ONLY` environment variable ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/17288), [ClearlyClaire](https://github.com/mastodon/mastodon/pull/17345)) +- Add `ES_USER` and `ES_PASS` environment variables for Elasticsearch authentication ([tribela](https://github.com/mastodon/mastodon/pull/16890)) +- Add `CAS_SECURITY_ASSUME_EMAIL_IS_VERIFIED` environment variable ([baby-gnu](https://github.com/mastodon/mastodon/pull/16655)) +- Add ability to pass specific domains to `tootctl accounts cull` ([tribela](https://github.com/mastodon/mastodon/pull/16511)) +- Add `--by-uri` option to `tootctl domains purge` ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/16434)) +- Add `--batch-size` option to `tootctl search deploy` ([aquarla](https://github.com/mastodon/mastodon/pull/17049)) +- Add `--remove-orphans` option to `tootctl statuses remove` ([noellabo](https://github.com/mastodon/mastodon/pull/17067)) + +### Changed + +- Change design of federation pages in admin UI ([Gargron](https://github.com/mastodon/mastodon/pull/17704), [noellabo](https://github.com/mastodon/mastodon/pull/17735), [Gargron](https://github.com/mastodon/mastodon/pull/17765)) +- Change design of account cards in web UI ([Gargron](https://github.com/mastodon/mastodon/pull/17689)) +- Change `follow` scope to be covered by `read` and `write` scopes in REST API ([Gargron](https://github.com/mastodon/mastodon/pull/17678)) +- Change design of authorized applications page ([Gargron](https://github.com/mastodon/mastodon/pull/17656), [ClearlyClaire](https://github.com/mastodon/mastodon/pull/17686)) +- Change e-mail domain blocks to block IPs dynamically ([Gargron](https://github.com/mastodon/mastodon/pull/17635), [ClearlyClaire](https://github.com/mastodon/mastodon/pull/17650), [ClearlyClaire](https://github.com/mastodon/mastodon/pull/17649)) +- Change report modal to include category selection in web UI ([Gargron](https://github.com/mastodon/mastodon/pull/17565), [ClearlyClaire](https://github.com/mastodon/mastodon/pull/17734), [Gargron](https://github.com/mastodon/mastodon/pull/17654), [ClearlyClaire](https://github.com/mastodon/mastodon/pull/17632)) +- Change reblogs to not count towards hashtag trends anymore ([Gargron](https://github.com/mastodon/mastodon/pull/17501)) +- Change languages to be listed under standard instead of native name in admin UI ([Gargron](https://github.com/mastodon/mastodon/pull/17485)) +- Change routing paths to use usernames in web UI ([Gargron](https://github.com/mastodon/mastodon/pull/16171), [ClearlyClaire](https://github.com/mastodon/mastodon/pull/16772), [ClearlyClaire](https://github.com/mastodon/mastodon/pull/16773), [mashirozx](https://github.com/mastodon/mastodon/pull/16793), [ClearlyClaire](https://github.com/mastodon/mastodon/pull/17060)) +- Change list title input design in web UI ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/17092)) +- Change "Opt-in to profile directory" preference to be general discoverability preference ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/16637)) +- Change API rate limits to use /64 masking on IPv6 addresses ([tribela](https://github.com/mastodon/mastodon/pull/17588), [ClearlyClaire](https://github.com/mastodon/mastodon/pull/17600), [zunda](https://github.com/mastodon/mastodon/pull/17590)) +- Change allowed formats for locally uploaded custom emojis to include GIF ([rgroothuijsen](https://github.com/mastodon/mastodon/pull/17706), [Gargron](https://github.com/mastodon/mastodon/pull/17759)) +- Change error message when chosen password is too long ([rgroothuijsen](https://github.com/mastodon/mastodon/pull/17082)) +- Change minimum required Elasticsearch version from 6 to 7 ([noellabo](https://github.com/mastodon/mastodon/pull/16915)) + +### Removed + +- Remove profile directory link from main navigation panel in web UI ([Gargron](https://github.com/mastodon/mastodon/pull/17688)) +- **Remove language detection through cld3** ([Gargron](https://github.com/mastodon/mastodon/pull/17478), [ykzts](https://github.com/mastodon/mastodon/pull/17539), [Gargron](https://github.com/mastodon/mastodon/pull/17496), [Gargron](https://github.com/mastodon/mastodon/pull/17722)) + - cld3 is very inaccurate on short-form content even with unique alphabets + - Post language can be overriden individually using `language` param + - Otherwise, it defaults to the user's interface language +- Remove support for `OAUTH_REDIRECT_AT_SIGN_IN` ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/17287)) + - Use `OMNIAUTH_ONLY` instead +- Remove Keybase integration ([Gargron](https://github.com/mastodon/mastodon/pull/17045)) +- Remove old columns and indexes ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/17245), [Gargron](https://github.com/mastodon/mastodon/pull/16409), [ClearlyClaire](https://github.com/mastodon/mastodon/pull/17191)) +- Remove shortcodes from newly-created media attachments ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/16730), [ClearlyClaire](https://github.com/mastodon/mastodon/pull/16763)) + +### Deprecated + +- `GET /api/v1/trends` → `GET /api/v1/trends/tags` +- OAuth `follow` scope → `read` and/or `write` +- `text` attribute on `DELETE /api/v1/statuses/:id` → `GET /api/v1/statuses/:id/source` + +### Fixed + +- Fix web manifest not permitting PWA usage from alternate domains ([HolgerHuo](https://github.com/mastodon/mastodon/pull/16714)) +- Fix not being able to edit media attachments for scheduled posts ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/17690)) +- Fix subscribed relay activities being recorded as boosts ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/17571)) +- Fix streaming API server error messages when JSON parsing fails not specifying the source ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/17559)) +- Fix browsers autofilling new password field with old password ([mashirozx](https://github.com/mastodon/mastodon/pull/17702)) +- Fix text being invisible before fonts load in web UI ([tribela](https://github.com/mastodon/mastodon/pull/16330)) +- Fix public profile pages of unconfirmed users being accessible ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/17385), [ClearlyClaire](https://github.com/mastodon/mastodon/pull/17457)) +- Fix nil error when trying to fetch key for signature verification ([Gargron](https://github.com/mastodon/mastodon/pull/17747)) +- Fix null values being included in some indexes ([Gargron](https://github.com/mastodon/mastodon/pull/17711)) +- Fix `POST /api/v1/emails/confirmations` not being available after sign-up ([Gargron](https://github.com/mastodon/mastodon/pull/17743)) +- Fix rare race condition when reblogged post is deleted ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/17693), [ClearlyClaire](https://github.com/mastodon/mastodon/pull/17730)) +- Fix being able to add more than 4 hashtags to hashtag column in web UI ([Gargron](https://github.com/mastodon/mastodon/pull/17729)) +- Fix data integrity of featured tags ([Gargron](https://github.com/mastodon/mastodon/pull/17712)) +- Fix performance of account timelines ([Gargron](https://github.com/mastodon/mastodon/pull/17709)) +- Fix returning empty `
` tag for blank account `note` in REST API ([Gargron](https://github.com/mastodon/mastodon/pull/17687))
+- Fix leak of existence of otherwise inaccessible posts in REST API ([Gargron](https://github.com/mastodon/mastodon/pull/17684))
+- Fix not showing loading indicator when searching in web UI ([Gargron](https://github.com/mastodon/mastodon/pull/17655))
+- Fix media modal footer's “external link” not being a link ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/17561))
+- Fix reply button on media modal not giving focus to compose form ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/17626))
+- Fix some media attachments being converted with too high framerates ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/17619))
+- Fix sign in token and warning emails failing to send when contact e-mail address is malformed ([helloworldstack](https://github.com/mastodon/mastodon/pull/17589))
+- Fix opening the emoji picker scrolling the single-column view to the top ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/17579))
+- Fix edge case where settings/admin page sidebar would be incorrectly hidden ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/17580))
+- Fix performance of server-side filtering ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/17575))
+- Fix privacy policy link not being visible on small screens ([Gargron](https://github.com/mastodon/mastodon/pull/17533))
+- Fix duplicate accounts when searching by IP range in admin UI ([Gargron](https://github.com/mastodon/mastodon/pull/17524), [tribela](https://github.com/mastodon/mastodon/pull/17150))
+- Fix error when performing a batch action on posts in admin UI ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/17532))
+- Fix deletes not being signed in authorized fetch mode ([Gargron](https://github.com/mastodon/mastodon/pull/17484))
+- Fix Undo Announce sometimes inlining the originally Announced status ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/17516))
+- Fix localization of cold-start follow recommendations ([Gargron](https://github.com/mastodon/mastodon/pull/17479), [Gargron](https://github.com/mastodon/mastodon/pull/17486))
+- Fix replies collection incorrectly looping ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/17462))
+- Fix errors when multiple Delete are received for a given actor ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/17460))
+- Fixed prototype pollution bug and only allow trusted origin ([r0hanSH](https://github.com/mastodon/mastodon/pull/17420))
+- Fix text being incorrectly pre-selected in composer textarea on /share ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/17339))
+- Fix SMTP_ENABLE_STARTTLS_AUTO/SMTP_TLS/SMTP_SSL environment variables don't work ([kgtkr](https://github.com/mastodon/mastodon/pull/17216))
+- Fix media upload specific rate limits only being applied to v1 endpoint in REST API ([tribela](https://github.com/mastodon/mastodon/pull/17272))
+- Fix media descriptions not being used for client-side filtering ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/17206))
+- Fix cold-start follow recommendation favouring older accounts due to wrong sorting ([noellabo](https://github.com/mastodon/mastodon/pull/17126))
+- Fix not redirect to the right page after authenticating with WebAuthn ([heguro](https://github.com/mastodon/mastodon/pull/17098))
+- Fix searching for additional hashtags in hashtag column ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/17054))
+- Fix color of hashtag column settings inputs ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/17058))
+- Fix performance of `tootctl statuses remove` ([noellabo](https://github.com/mastodon/mastodon/pull/17052))
+- Fix `tootctl accounts cull` not excluding domains on timeouts and certificate issues ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/16433))
+- Fix 404 error when filtering admin action logs by non-existent target account ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/16643))
+- Fix error when accessing streaming API without any OAuth scopes ([Brawaru](https://github.com/mastodon/mastodon/pull/16823))
+- Fix follow request count not updating when new follow requests arrive over streaming API in web UI ([matildepark](https://github.com/mastodon/mastodon/pull/16652))
+- Fix error when unsuspending a local account ([HolgerHuo](https://github.com/mastodon/mastodon/pull/16605))
+- Fix crash when a notification contains a not yet processed media attachment in web UI ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/16573))
+- Fix wrong color of download button in audio player in web UI ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/16572))
+- Fix notes for others accounts not being deleted when an account is deleted ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/16579))
+- Fix error when logging occurrence of unsupported video file ([noellabo](https://github.com/mastodon/mastodon/pull/16581))
+- Fix wrong elements in trends widget being hidden on smaller screens in web UI ([tribela](https://github.com/mastodon/mastodon/pull/16570))
+- Fix link to about page being displayed in limited federation mode ([weex](https://github.com/mastodon/mastodon/pull/16432))
+- Fix styling of boost button in media modal not reflecting ability to boost ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/16387))
+- Fix OCR failure when erroneous lang data is in cache ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/16386))
+- Fix downloading media from blocked domains in `tootctl media refresh` ([tribela](https://github.com/mastodon/mastodon/pull/16914))
+- Fix login form being displayed on landing page when already logged in ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/17348))
+- Fix polling for media processing status too frequently in web UI ([tribela](https://github.com/mastodon/mastodon/pull/17271))
+- Fix hashtag autocomplete overriding user-typed case ([weex](https://github.com/mastodon/mastodon/pull/16460))
+- Fix WebAuthn authentication setup to not prompt for PIN ([truongnmt](https://github.com/mastodon/mastodon/pull/16545))
+
## [3.4.6] - 2022-02-03
### Fixed
@@ -572,7 +760,7 @@ All notable changes to this project will be documented in this file.
- `EMAIL_DOMAIN_WHITELIST` → `EMAIL_DOMAIN_ALLOWLIST`
- CLI option changed:
- `tootctl domains purge --whitelist-mode` → `tootctl domains purge --limited-federation-mode`
-- Remove some unnecessary database indices ([lfuelling](https://github.com/mastodon/mastodon/pull/13695), [noellabo](https://github.com/mastodon/mastodon/pull/14259))
+- Remove some unnecessary database indexes ([lfuelling](https://github.com/mastodon/mastodon/pull/13695), [noellabo](https://github.com/mastodon/mastodon/pull/14259))
- Remove unnecessary Node.js version upper bound ([ykzts](https://github.com/mastodon/mastodon/pull/14139))
### Fixed
@@ -591,7 +779,7 @@ All notable changes to this project will be documented in this file.
- Fix new posts pushing down origin of opened dropdown in web UI ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/14271), [ClearlyClaire](https://github.com/mastodon/mastodon/pull/14348))
- Fix timeline markers not being saved sometimes ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/13887), [ClearlyClaire](https://github.com/mastodon/mastodon/pull/13889), [ClearlyClaire](https://github.com/mastodon/mastodon/pull/14155))
- Fix CSV uploads being rejected ([noellabo](https://github.com/mastodon/mastodon/pull/13835))
-- Fix incompatibility with ElasticSearch 7.x ([noellabo](https://github.com/mastodon/mastodon/pull/13828))
+- Fix incompatibility with Elasticsearch 7.x ([noellabo](https://github.com/mastodon/mastodon/pull/13828))
- Fix being able to search posts where you're in the target audience but not actively mentioned ([noellabo](https://github.com/mastodon/mastodon/pull/13829))
- Fix non-local posts appearing on local-only hashtag timelines in web UI ([noellabo](https://github.com/mastodon/mastodon/pull/13827))
- Fix `tootctl media remove-orphans` choking on unknown files in storage ([Gargron](https://github.com/mastodon/mastodon/pull/13765))
@@ -1195,7 +1383,7 @@ All notable changes to this project will be documented in this file.
- Fix URLs appearing twice in errors of ActivityPub::DeliveryWorker ([Gargron](https://github.com/mastodon/mastodon/pull/11231))
- Fix support for HTTP proxies ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/11245))
- Fix HTTP requests to IPv6 hosts ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/11240))
-- Fix error in ElasticSearch index import ([mayaeh](https://github.com/mastodon/mastodon/pull/11192))
+- Fix error in Elasticsearch index import ([mayaeh](https://github.com/mastodon/mastodon/pull/11192))
- Fix duplicate account error when seeding development database ([ysksn](https://github.com/mastodon/mastodon/pull/11366))
- Fix performance of session clean-up scheduler ([abcang](https://github.com/mastodon/mastodon/pull/11871))
- Fix older migrations not running ([zunda](https://github.com/mastodon/mastodon/pull/11377))
@@ -1205,8 +1393,8 @@ All notable changes to this project will be documented in this file.
- Fix muted text color not applying to all text ([trwnh](https://github.com/mastodon/mastodon/pull/11996))
- Fix follower/following lists resetting on back-navigation in web UI ([Gargron](https://github.com/mastodon/mastodon/pull/11986))
- Fix n+1 query when approving multiple follow requests ([abcang](https://github.com/mastodon/mastodon/pull/12004))
-- Fix records not being indexed into ElasticSearch sometimes ([Gargron](https://github.com/mastodon/mastodon/pull/12024))
-- Fix needlessly indexing unsearchable statuses into ElasticSearch ([Gargron](https://github.com/mastodon/mastodon/pull/12041))
+- Fix records not being indexed into Elasticsearch sometimes ([Gargron](https://github.com/mastodon/mastodon/pull/12024))
+- Fix needlessly indexing unsearchable statuses into Elasticsearch ([Gargron](https://github.com/mastodon/mastodon/pull/12041))
- Fix new user bootstrapping crashing when to-be-followed accounts are invalid ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/12037))
- Fix featured hashtag URL being interpreted as media or replies tab ([Gargron](https://github.com/mastodon/mastodon/pull/12048))
- Fix account counters being overwritten by parallel writes ([Gargron](https://github.com/mastodon/mastodon/pull/12045))
diff --git a/Gemfile b/Gemfile
index 234aa464ee5..2621b77a582 100644
--- a/Gemfile
+++ b/Gemfile
@@ -7,7 +7,7 @@ gem 'pkg-config', '~> 1.4'
gem 'rexml', '~> 3.2'
gem 'puma', '~> 5.6'
-gem 'rails', '~> 6.1.4'
+gem 'rails', '~> 6.1.5'
gem 'sprockets', '~> 3.7.2'
gem 'thor', '~> 1.2'
gem 'rack', '~> 2.2.3'
diff --git a/Gemfile.lock b/Gemfile.lock
index a88e56f3683..2275d94530f 100644
--- a/Gemfile.lock
+++ b/Gemfile.lock
@@ -1,40 +1,40 @@
GEM
remote: https://rubygems.org/
specs:
- actioncable (6.1.4.6)
- actionpack (= 6.1.4.6)
- activesupport (= 6.1.4.6)
+ actioncable (6.1.5)
+ actionpack (= 6.1.5)
+ activesupport (= 6.1.5)
nio4r (~> 2.0)
websocket-driver (>= 0.6.1)
- actionmailbox (6.1.4.6)
- actionpack (= 6.1.4.6)
- activejob (= 6.1.4.6)
- activerecord (= 6.1.4.6)
- activestorage (= 6.1.4.6)
- activesupport (= 6.1.4.6)
+ actionmailbox (6.1.5)
+ actionpack (= 6.1.5)
+ activejob (= 6.1.5)
+ activerecord (= 6.1.5)
+ activestorage (= 6.1.5)
+ activesupport (= 6.1.5)
mail (>= 2.7.1)
- actionmailer (6.1.4.6)
- actionpack (= 6.1.4.6)
- actionview (= 6.1.4.6)
- activejob (= 6.1.4.6)
- activesupport (= 6.1.4.6)
+ actionmailer (6.1.5)
+ actionpack (= 6.1.5)
+ actionview (= 6.1.5)
+ activejob (= 6.1.5)
+ activesupport (= 6.1.5)
mail (~> 2.5, >= 2.5.4)
rails-dom-testing (~> 2.0)
- actionpack (6.1.4.6)
- actionview (= 6.1.4.6)
- activesupport (= 6.1.4.6)
+ actionpack (6.1.5)
+ actionview (= 6.1.5)
+ activesupport (= 6.1.5)
rack (~> 2.0, >= 2.0.9)
rack-test (>= 0.6.3)
rails-dom-testing (~> 2.0)
rails-html-sanitizer (~> 1.0, >= 1.2.0)
- actiontext (6.1.4.6)
- actionpack (= 6.1.4.6)
- activerecord (= 6.1.4.6)
- activestorage (= 6.1.4.6)
- activesupport (= 6.1.4.6)
+ actiontext (6.1.5)
+ actionpack (= 6.1.5)
+ activerecord (= 6.1.5)
+ activestorage (= 6.1.5)
+ activesupport (= 6.1.5)
nokogiri (>= 1.8.5)
- actionview (6.1.4.6)
- activesupport (= 6.1.4.6)
+ actionview (6.1.5)
+ activesupport (= 6.1.5)
builder (~> 3.1)
erubi (~> 1.4)
rails-dom-testing (~> 2.0)
@@ -45,22 +45,22 @@ GEM
case_transform (>= 0.2)
jsonapi-renderer (>= 0.1.1.beta1, < 0.3)
active_record_query_trace (1.8)
- activejob (6.1.4.6)
- activesupport (= 6.1.4.6)
+ activejob (6.1.5)
+ activesupport (= 6.1.5)
globalid (>= 0.3.6)
- activemodel (6.1.4.6)
- activesupport (= 6.1.4.6)
- activerecord (6.1.4.6)
- activemodel (= 6.1.4.6)
- activesupport (= 6.1.4.6)
- activestorage (6.1.4.6)
- actionpack (= 6.1.4.6)
- activejob (= 6.1.4.6)
- activerecord (= 6.1.4.6)
- activesupport (= 6.1.4.6)
- marcel (~> 1.0.0)
+ activemodel (6.1.5)
+ activesupport (= 6.1.5)
+ activerecord (6.1.5)
+ activemodel (= 6.1.5)
+ activesupport (= 6.1.5)
+ activestorage (6.1.5)
+ actionpack (= 6.1.5)
+ activejob (= 6.1.5)
+ activerecord (= 6.1.5)
+ activesupport (= 6.1.5)
+ marcel (~> 1.0)
mini_mime (>= 1.1.0)
- activesupport (6.1.4.6)
+ activesupport (6.1.5)
concurrent-ruby (~> 1.0, >= 1.0.2)
i18n (>= 1.6, < 2)
minitest (>= 5.1)
@@ -367,7 +367,7 @@ GEM
activesupport (>= 4)
railties (>= 4)
request_store (~> 1.0)
- loofah (2.14.0)
+ loofah (2.15.0)
crass (~> 1.0.2)
nokogiri (>= 1.5.9)
mail (2.7.1)
@@ -432,14 +432,14 @@ GEM
openssl (2.2.0)
openssl-signature_algorithm (0.4.0)
orm_adapter (0.5.0)
- ox (2.14.9)
+ ox (2.14.10)
parallel (1.21.0)
parser (3.1.0.0)
ast (~> 2.4.1)
parslet (2.0.0)
pastel (0.8.0)
tty-color (~> 0.5)
- pg (1.3.3)
+ pg (1.3.4)
pghero (2.8.2)
activerecord (>= 5)
pkg-config (1.4.7)
@@ -482,20 +482,20 @@ GEM
rack
rack-test (1.1.0)
rack (>= 1.0, < 3)
- rails (6.1.4.6)
- actioncable (= 6.1.4.6)
- actionmailbox (= 6.1.4.6)
- actionmailer (= 6.1.4.6)
- actionpack (= 6.1.4.6)
- actiontext (= 6.1.4.6)
- actionview (= 6.1.4.6)
- activejob (= 6.1.4.6)
- activemodel (= 6.1.4.6)
- activerecord (= 6.1.4.6)
- activestorage (= 6.1.4.6)
- activesupport (= 6.1.4.6)
+ rails (6.1.5)
+ actioncable (= 6.1.5)
+ actionmailbox (= 6.1.5)
+ actionmailer (= 6.1.5)
+ actionpack (= 6.1.5)
+ actiontext (= 6.1.5)
+ actionview (= 6.1.5)
+ activejob (= 6.1.5)
+ activemodel (= 6.1.5)
+ activerecord (= 6.1.5)
+ activestorage (= 6.1.5)
+ activesupport (= 6.1.5)
bundler (>= 1.15.0)
- railties (= 6.1.4.6)
+ railties (= 6.1.5)
sprockets-rails (>= 2.0.0)
rails-controller-testing (1.0.5)
actionpack (>= 5.0.1.rc1)
@@ -511,11 +511,11 @@ GEM
railties (>= 6.0.0, < 7)
rails-settings-cached (0.6.6)
rails (>= 4.2.0)
- railties (6.1.4.6)
- actionpack (= 6.1.4.6)
- activesupport (= 6.1.4.6)
+ railties (6.1.5)
+ actionpack (= 6.1.5)
+ activesupport (= 6.1.5)
method_source
- rake (>= 0.13)
+ rake (>= 12.2)
thor (~> 1.0)
rainbow (3.1.1)
rake (13.0.6)
@@ -548,7 +548,7 @@ GEM
rspec-mocks (3.11.0)
diff-lcs (>= 1.2.0, < 2.0)
rspec-support (~> 3.11.0)
- rspec-rails (5.1.0)
+ rspec-rails (5.1.1)
actionpack (>= 5.2)
activesupport (>= 5.2)
railties (>= 5.2)
@@ -806,7 +806,7 @@ DEPENDENCIES
rack (~> 2.2.3)
rack-attack (~> 6.6)
rack-cors (~> 1.1)
- rails (~> 6.1.4)
+ rails (~> 6.1.5)
rails-controller-testing (~> 1.0)
rails-i18n (~> 6.0)
rails-settings-cached (~> 0.6)
diff --git a/SECURITY.md b/SECURITY.md
index 9d351fce618..5531a306e6f 100644
--- a/SECURITY.md
+++ b/SECURITY.md
@@ -1,13 +1,19 @@
# Security Policy
+If you believe you've identified a security vulnerability in Mastodon (a bug that allows something to happen that shouldn't be possible), you should submit the report through our [Bug Bounty Program][bug-bounty]. Alternatively, you can reach us at Enhver oplysning, vi indsamler fra dig, kan blive brugt på flg. måder: Vi implementerer en række sikkerhedsforanstaltninger for at sikre dine personlige oplysninger, når du angiver, indsender eller tilgår dine personlige oplysninger. Bl.a. sikres din browsersession samt trafikken mellem dine applikationer og API'en med SSL, og din adgangskode er hashed vha. en stærk envejsalgoritme. Du kan aktivere tofaktorgodkendelse for yderligere at adgangssikre din konto. Vi vil efter bedste oprigtige evne gøre en indsats for at: Du kan anmode om og downloade et arkiv af dit indhold, herunder dine indlæg, medievedhæftninger samt profil- og headerbilleder Du kan til enhver tid slette din konto permanent. Ja. Cookies er små filer, som et websted eller dets tjenesteudbyder overfører til din computers lagerplads via din webbrowser (hvis du tillader det). Disse cookies gør det muligt for webstedet at genkende din browser og, hvis du har en registreret konto, associerer den med din registrerede konto. Vi bruger cookies til at forstå og gemme dine præferencer for fremtidige besøg. Vi hverken sælger, handler/bytter eller på anden måde overfører dine personlige identificerbare oplysninger til eksterne parter. Herfra undtaget er dog betroede tredjeparter, som hjælper os med at drive vores websted, drive vores forretning eller servicere dig, så længe parterne accepterer at holde disse oplysninger fortrolige. Vi kan også vælge at frigive dine oplysninger, såfremt vi mener, at frigivelsen er hensigtsmæssig ift. at overholde loven, håndhæve vores webstedspolitikker eller beskytte vores/andres rettigheder, ejendom eller sikkerhed. Dit offentlige indhold kan blive downloades af andre servere i netværket. Dine offentlige og kun-følgere indlæg leveres til de servere, hvor dine tilhængere er hjemhørende, og direkte beskeder leveres til modtagerens servere, for så vidt som disse følgere/modtagere ikke er hjemhørende på denne server. Når du godkender en applikation til at bruge din konto, afhængt af tilladelsesomfanget, godkender du, at det kan tilgå dine offentlige profiloplysninger, din liste over dem, du følger, dine følgere, dine lister, alle dine indlæg og dine favoritter. Applikationer kan aldrig tilgå din e-mailadresse eller adgangskode. Hvis denne server er i EU eller EØS: Vores websted, produkter og tjenester er alle er alle beregnet på personer, som er fyldt 16 år. Er du ike fyldt 16 år, så benyt ikke dette websted jf. kravene i GDPR, (Generel Databeskyttelsesforordning). Hvis denne server er i USA: Vores websted, produkter og tjenester er alle rettet mod personer, som er fyldt 13 år. Er du ikke fyldt 13 år, så benyt ikke dette websted jf. kravene i COPPA, (Børns online fortrolighedsbeskyttelsesslov). Lovkrav kan afvige, hvis denne server befinder sig i et andet retsområde. Beslutter vi os for at ændre vores fortrolighedspolitik, vil disse ændringer fremgå på denne side. Dette dokument er CC-BY-SA, og det blev senest opdateret 7. marts 2018. Oprindelig tilpasset fra Discourse' Fortrolighedspolitik. Enhver oplysning indsamlet fra/om dig, kan blive brugt på flg. måder: Vi implementerer en vifte af sikkerhedsforanstaltninger for at sikre dine personlige oplysninger, når du angiver, indsender eller tilgår personlige oplysninger. Bl.a. sikres din browsersession samt trafikken mellem dine applikationer og API'en med SSL, og din adgangskode hashes vha. en stærk envejsalgoritme. Tofaktorgodkendelse kan endvidere aktiveres til yderligere adgangssikring af kontoen. Vi vil efter bedste evne bestræbe os på at: Du kan anmode om, og downloade, et arkiv af dit indhold, herunder indlæg, medievedhæftninger samt profil- og overskriftsbilleder Du kan til enhver tid slette din konto permanent. Ja. Cookies er små filer, som et websted eller dets tjenesteudbyder gemmer til din computers harddisk via din webbrowser (hvis du tillader det). Disse cookies gør det muligt for webstedet at genkende din browser og, hvis du har en registreret konto, associerer den med din registrerede konto. Vi bruger cookies til at forstå og gemme dine præferencer for fremtidige besøg. Vi hverken sælger, handler/bytter eller overfører på anden vis dine personlige identificerbare oplysninger til eksterne parter. Herfra undtaget er dog betroede tredjeparter, som hjælper os med at drive vores websted, drive vores forretning eller servicere dig, så længe parterne accepterer at holde disse oplysninger fortrolige. Vi kan også vælge at frigive dine oplysninger, såfremt vi mener, at frigivelsen er hensigtsmæssig ift. at overholde loven, håndhæve vores webstedspolitikker eller beskytte vores/andres rettigheder, ejendom eller sikkerhed. Dit offentlige indhold kan blive downloadet af andre servere i netværket. Dine offentlige og kun-følgere indlæg leveres til de servere, hvor dine tilhængere er hjemhørende, og direkte beskeder leveres til modtagerens servere, for så vidt som disse følgere/modtagere ikke er hjemhørende på denne server. Når du godkender en applikation til at bruge din konto, godkender du, afhængt af tilladelsesomfanget, at denne kan tilgå dine offentlige profiloplysninger, listen over dem, du følger, følgere, lister, alle indlæg og favoritter. Applikationer kan aldrig tilgå din e-mailadresse eller adgangskode. Hvis denne server er i EU eller EØS: Vores websted, produkter og tjenester er alle er alle beregnet på personer, som er fyldt 16 år. Er man ikke fyldt 16 år, så benyt ikke, jf. kravene i GDPR, (Generel Databeskyttelsesforordning), dette websted. Hvis denne server er i USA: Vores websted, produkter og tjenester er alle rettet mod personer, som er fyldt 13 år. Er man ikke fyldt 13 år, så benyt ikke, jf. kravene i COPPA, (Børns online fortrolighedsbeskyttelsesslov), dette websted. Lovkrav kan afvige, hvis denne server befinder sig i et andet retsområde. Beslutter vi os for at ændre vores Fortrolighedspolitik, vil disse ændringer fremgå på denne side. Dette dokument er CC-BY-SA, og det blev senest opdateret 7. marts 2018. Oprindelig tilpasset fra Discourse privacy policy.<a>
og <em>
.
+ desc_html: Introduktionsafsnit på API'en. Beskriv, hvad der gør denne Mastodonserver speciel samt alt andet vigtigt. HTML-tags kan bruges, især <a>
og <em>
.
title: Serverbeskrivelse
site_description_extended:
- desc_html: Et god placering til dit adfærdskodes, regler, retningslinjer mv., som gør din server unik. HTML-tags kan bruges
+ desc_html: Et god placering til adfærdskodes, regler, retningslinjer mv., som gør denne server unik. HTML-tags kan bruges
title: Tilpasset udvidet information
site_short_description:
desc_html: Vises på sidebjælke og metatags. Beskriv i et enkelt afsnit, hvad Mastodon er, og hvad der gør denne server speciel.
title: Kort serverbeskrivelse
site_terms:
- desc_html: Du kan skrive din egen fortrolighedspolitik, tjenestevilkår el.lign. HTML-tags kan bruges
- title: Tilpasset tjenestevilkår
+ desc_html: Der kan angives egen fortrolighedspolitik, tjenestevilkår el.lign. HTML-tags kan bruges
+ title: Tilpassede tjenestevilkår
site_title: Servernavn
thumbnail:
desc_html: Bruges til forhåndsvisninger via OpenGraph og API. 1200x630px anbefales
@@ -735,30 +739,31 @@ da:
title: Tillad ikke-godkendt tilgang til offentlig tidslinje
title: Webstedsindstillinger
trendable_by_default:
- desc_html: Påvirker hashtags, som ikke blevet nægtet tidligere
- title: Tillad hashtags at forme tendens uden forudgående gennemsyn
+ desc_html: Påvirker hashtags, som ikke tidligere er blevet nægtet
+ title: Tillad hashtags at forme tendens uden forudgående revision
trends:
- desc_html: Vis tidligere gennemgåede hashtags, som pt. trender
- title: Populære hashtags
+ desc_html: Vis offentligt tidligere reviderede hashtags, som pt. trender
+ title: Populært
site_uploads:
delete: Slet uploadet fil
destroyed_msg: Websteds-upload blev slettet!
statuses:
- back_to_account: Tilbage til kontosiden
- back_to_report: Retur til anmeldelsessiden
+ back_to_account: Retur til kontoside
+ back_to_report: Retur til anmeldelsesside
batch:
remove_from_report: Fjern fra anmeldelse
report: Anmeldelse
deleted: Slettet
media:
title: Medier
- no_status_selected: Ingen indlæg ændret, da ingen var valgt
+ no_status_selected: Ingen indlæg ændret (ingen valgt)
title: Kontoindlæg
with_media: Med medier
strikes:
actions:
delete_statuses: "%{name} slettede %{target}s indlæg"
disable: "%{name} frøs %{target}s konto"
+ mark_statuses_as_sensitive: "%{name} markerede %{target}s indlæg som sensitive"
none: "%{name} sendte en advarsel til %{target}"
sensitive: "%{name} markerede %{target}s konto som sensitiv"
silence: "%{name} begrænsede %{target}s konto"
@@ -774,7 +779,7 @@ da:
sidekiq_process_check:
message_html: Ingen Sidekiq-proces kører for %{value}-kø(er). Gennemgå Sidekiq-opsætningen
tags:
- review: Gennemsynsstatus
+ review: Revisionsstatus
updated_msg: Hashtag-indstillinger opdateret
title: Administration
trends:
@@ -784,7 +789,7 @@ da:
links:
allow: Tillad link
allow_provider: Tillad udgiver
- description_html: Disse er links, som pt. deles meget af konti, som dine server ser indlæg fra. Det kan hjælpe dine brugere med at finde ud af, hvad der sker i verden. Ingen links vises offentligt, før du godkender udgiveren. Du kan også tillade/afvise individuelle links.
+ description_html: Disse er links, som pt. deles meget af konti, som serveren ser indlæg fra. Det kan hjælpe ens brugere med at finde ud af, hvad der sker i verden. Ingen links vises offentligt, før man godkender udgiveren. Man kan også tillade/afvise individuelle links.
disallow: Tillad ikke link
disallow_provider: Tillad ikke udgiver
shared_by_over_week:
@@ -793,47 +798,47 @@ da:
zero: Ikke delt af nogen i løbet af den seneste uge
title: Populære links
usage_comparison: Delt %{today} gange i dag, sammenlignet med %{yesterday} i går
- pending_review: Afventende vurdering
+ pending_review: Afventer revision
preview_card_providers:
allowed: Links fra denne udgiver kan trende
- description_html: Disse er domæner, hvorfra links ofte deles på din server. Links vil ikke trende offentligt, medmindre domænet for linket er godkendt. Din godkendelse/afvisning indbefatter underdomæner.
+ description_html: Disse er domæner, hvorfra links ofte deles på serveren. Links vil ikke trende offentligt, medmindre man har godkendt domænet for linket. Godkendelse/afvisning indbefatter underdomæner.
rejected: Links fra denne udgiver vil ikke trende
title: Udgivere
rejected: Afvist
statuses:
allow: Tillad indlæg
allow_account: Tillad forfatter
- description_html: Disse er indlæg, kendt af din server nu, som pt. deles og favoriseres meget. Det kan hjælpe dine nye og tilbagevendende brugere til at finde flere personer at følge. Ingen indlæg vises offentligt, før du godkender forfatteren, og denne tillader sin konto at blive foreslået til andre. Du kan også tillade/afvise individuelle indlæg.
- disallow: Forbyd indlæg
- disallow_account: Forbyd forfatter
+ description_html: Disse er indlæg, serveren kender til, som pt. deles og favoritmarkeres meget. Det kan hjælpe nye og tilbagevendende brugere til at finde flere personer at følge. Ingen indlæg vises offentligt, før man godkender forfatteren, samt denne tillader sin konto at blive foreslået andre. Man kan også tillade/afvise individuelle indlæg.
+ disallow: Tillad ikke indlæg
+ disallow_account: Tillad ikke forfatter
not_discoverable: Forfatteren har ikke valgt at kunne findes
shared_by:
- one: Delt eller favoriseret én gang
- other: Delt eller favoriseret %{friendly_count} gange
+ one: Delt eller favoritmarkeret én gang
+ other: Delt eller favoritmarkeret %{friendly_count} gange
title: Populære opslag
tags:
current_score: Aktuel score %{score}
dashboard:
- tag_accounts_measure: unikke brugere
+ tag_accounts_measure: unikke anvendelser
tag_languages_dimension: Topsprog
tag_servers_dimension: Topservere
tag_servers_measure: forskellige servere
- tag_uses_measure: brugere i alt
- description_html: Disse er hashtags, som pt. vises i en masse indlæg, som din server ser. Det kan hjælpe dine brugere til at finde ud af, hvad folk taler mest om pt. Ingen hashtags vises offentligt, før du godkender dem.
+ tag_uses_measure: anvendelser i alt
+ description_html: Disse er hashtags, som pt. vises i en masse indlæg, som serveren ser. Det kan hjælpe brugerne til at finde ud af, hvad folk taler mest om pt. Ingen hashtags vises offentligt, før man godkender dem.
listable: Kan foreslås
not_listable: Foreslås ikke
not_trendable: Vises ikke under tendenser
- not_usable: Kan ikke bruges
- peaked_on_and_decaying: Toppede d. %{date}, nu nedadgående
+ not_usable: Kan ikke anvendes
+ peaked_on_and_decaying: Toppede pr. %{date}, nu for nedadgående
title: Populære hashtags
trendable: Kan vises under tendenser
trending_rank: 'Populær #%{rank}'
- usable: Kan bruges
- usage_comparison: Brugt %{today} gange i dag, sammenlignet med %{yesterday} i går
+ usable: Kan anvendes
+ usage_comparison: Anvendt %{today} gange i dag, sammenlignet med %{yesterday} i går
used_by_over_week:
- one: Brugt af én person i løbet af den seneste uge
- other: Brugt af %{count} personer i løbet af den seneste uge
- zero: Ikke brugt af nogen i løbet af den seneste uge
+ one: Anvendt af én person i løbet af den seneste uge
+ other: Anvendt af %{count} personer i løbet af den seneste uge
+ zero: Ikke anvendt af nogen i løbet af den seneste uge
title: Trends
warning_presets:
add_new: Tilføj ny
@@ -1212,25 +1217,25 @@ da:
move_handler:
carry_blocks_over_text: Denne bruger er flyttet fra %{acct}, som du har haft blokeret.
carry_mutes_over_text: Denne bruger er flyttet fra %{acct}, som du har haft tavsgjort.
- copy_account_note_text: 'Denne bruger er flyttet fra %{acct}, her er dine tidligere noter om dem:'
+ copy_account_note_text: 'Denne bruger er flyttet fra %{acct}, hvor dine tidligere noter om dem var:'
notification_mailer:
admin:
sign_up:
subject: "%{name} tilmeldte sig"
digest:
action: Se alle notifikationer
- body: Her er et kort resumé af de beskeder, du er gået glip af siden dit seneste besøg d. %{since}
+ body: Her er en kort oversigt over de beskeder, som er misset siden dit seneste besøg %{since}
mention: "%{name} nævnte dig i:"
new_followers_summary:
- one: Du har også fået en ny følger, mens du var væk! Sådan!
- other: Du har også fået %{count} nye følgere, mens du var væk! Sådan!
+ one: Under dit fravær har du har også fået en ny følger! Sådan!
+ other: Under dit fravær har du har også fået %{count} nye følgere! Sådan!
subject:
- one: "1 ny notifikation siden dit senest besøg \U0001F418"
- other: "%{count} nye notifikationer siden dit senest besøg \U0001F418"
- title: Mens du var væk...
+ one: "1 ny notifikation siden senest besøg \U0001F418"
+ other: "%{count} nye notifikationer siden senest besøg \U0001F418"
+ title: I dit fravær...
favourite:
- body: 'Dit indlæg blev favoriseret af %{name}:'
- subject: "%{name} favoriserede dit indlæg"
+ body: "%{name} favoritmarkerede dit indlæg:"
+ subject: "%{name} favoritmarkerede dit indlæg"
title: Ny favorit
follow:
body: "%{name} følger dig nu!"
@@ -1258,7 +1263,7 @@ da:
subject: "%{name} redigerede et indlæg"
notifications:
email_events: Begivenheder for e-mailnotifikationer
- email_events_hint: 'Vælg begivenheder, som notifikationer skal modtages for:'
+ email_events_hint: 'Vælg begivenheder, for hvilke notifikationer skal modtages:'
other_settings: Andre notifikationsindstillinger
number:
human:
@@ -1271,12 +1276,12 @@ da:
thousand: T
trillion: tri.
otp_authentication:
- code_hint: Angiv koden genereret af din godkendelses-app for at bekræfte
- description_html: Aktiverer du tofaktorgodkendelse vha. af en godkendelses-app, vil du skulle benytte din mobil, der genererer det token, der skal angives ved indlogning.
+ code_hint: Angiv koden genereret af godkendelses-appen for at bekræfte
+ description_html: Aktiveres tofaktorgodkendelse vha. af en godkendelses-app, vil man skulle benytte sin mobil, der genererer det token, der skal angives ved indlogning.
enable: Aktivér
- instructions_html: "Skan denne QR-kode i Google Autehnticator eller en lign. TOTP-app på din mobil. Fra nu af, vil appen generere tokens, som vil skulle angives ifm. indlogning."
- manual_instructions: 'Kan QR-koden ikke skannes, så du er nødt til manuelt at angive den, er her en simplel tekst-hemmelighed:'
- setup: Sæt op
+ instructions_html: "Skan denne QR-kode i Google Autehnticator eller en lign. TOTP-app på mobilen. Fremadrettet vil appen generere de tokens, som vil skulle angives ifm. indlogning."
+ manual_instructions: 'Kan QR-koden ikke skannes, så man er nødt til manuelt at angive den, er her en simplel tekst-hemmelighed:'
+ setup: Opsæt
wrong_code: Den angivne kode er ugyldig! Er server- og enhedsklokkeslæt korrekte?
pagination:
newer: Nyere
@@ -1287,17 +1292,17 @@ da:
polls:
errors:
already_voted: Du har allerede stemt i denne afstemning
- duplicate_options: indeholder dubletelementer
- duration_too_long: er for langt ude i fremtiden
- duration_too_short: er for tidligt
- expired: Denne afstemning er allerede afsluttet
- invalid_choice: Den valgte afstemningsmulighed findes ikke
+ duplicate_options: indeholder dubletvalg
+ duration_too_long: er for lang en varighed
+ duration_too_short: er for kort en varighed
+ expired: Afstemningen er allerede afsluttet
+ invalid_choice: Den valgte stemmemulighed findes ikke
over_character_limit: må maks. udgøre %{max} tegn hver
- too_few_options: skal have flere end ét element
- too_many_options: må maks. indeholde %{max} elementer
+ too_few_options: skal have flere end ét valg
+ too_many_options: for mange svar (maks. %{max})
preferences:
other: Andet
- posting_defaults: Indlægsstandarder
+ posting_defaults: Standarder for indlæg
public_timelines: Offentlige tidslinjer
reactions:
errors:
@@ -1321,28 +1326,28 @@ da:
remove_selected_follows: Følg ikke længere valgte brugere
status: Kontostatus
remote_follow:
- acct: Angiv dit brugernavn@domæne du vil agere fra
- missing_resource: Nødvendige omdirigerings-URL til din konto ikke fundet
- no_account_html: Har ingen konto? Du kan oprette en hér
+ acct: Angiv det brugernavn@domæne, hvorfra du vil ageres
+ missing_resource: Nødvendige omdirigerings-URL til kontoen ikke fundet
+ no_account_html: Har ingen konto? Der kan oprettes én hér
proceed: Fortsæt for at følge
prompt: 'Du er ved at følge:'
- reason_html: "Hvorfor er dette skridt nødvendigt? %{instance}
er måske ikke den server, hvor du er registreret, så du skal først omdirigeres til din hjemmeserver."
+ reason_html: "Hvorfor er dette trin nødvendigt? %{instance}
er måske ikke den server, hvorpå man er registreret, så man skal først omdirigeres til sin hjemmeserver."
remote_interaction:
favourite:
- proceed: Fortsæt for at føje til favorit
- prompt: 'Gør dette indlæg til favorit:'
+ proceed: Fortsæt for at favoritmarkere
+ prompt: 'Favoritmarkere dette indlæg:'
reblog:
proceed: Fortsæt for at booste
- prompt: 'Du ønsker at booste dette indlæg:'
+ prompt: 'Booste dette indlæg:'
reply:
proceed: Fortsæt for at besvare
- prompt: 'Du ønsker at besvare dette indlæg:'
+ prompt: 'Besvare dette indlæg:'
reports:
errors:
invalid_rules: refererer ikke til gyldige regler
scheduled_statuses:
- over_daily_limit: Du har nået dagsgrænsen på %{limit} planlagte indlæg
- over_total_limit: Du har nået grænsen på %{limit} planlagte indlæg
+ over_daily_limit: Den daglige grænse på %{limit} planlagte indlæg er nået
+ over_total_limit: Grænsen på %{limit} planlagte indlæg er nået
too_soon: Den planlagte dato skal være i fremtiden
sessions:
activity: Seneste aktivitet
@@ -1360,20 +1365,20 @@ da:
nokia: Nokia S40 Ovi Browser
opera: Opera
otter: Otter
- phantom_js: FantomJS
+ phantom_js: PhantomJS
qq: QQ Browser
safari: Safari
uc_browser: UCbrowser
weibo: Weibo
current_session: Aktuelle session
description: "%{browser} på %{platform}"
- explanation: Disse er de webbrowsere, som pt. er pålogget din Mastodon-konto.
+ explanation: Disse webbrowsere er pt. logget ind på din Mastodon-konto.
ip: IP
platforms:
adobe_air: Adobe Air
android: Android
blackberry: Blackberry
- chrome_os: ChromeOS
+ chrome_os: Chrome OS
firefox_os: Firefox OS
ios: iOS
linux: Linux
@@ -1385,27 +1390,27 @@ da:
revoke: Tilbagekald
revoke_success: Session tilbagekaldt
title: Sessioner
- view_authentication_history: Vis godkendelseshistorik for din konto
+ view_authentication_history: Vis godkendelseshistorik for kontoen
settings:
account: Konto
account_settings: Kontoindstillinger
aliases: Kontoaliaser
appearance: Udseende
authorized_apps: Godkendte apps
- back: Tilbage til Mastodon
+ back: Retur til Mastodon
delete: Kontosletning
development: Udvikling
edit_profile: Redigér profil
export: Dataeksport
- featured_tags: Fremhævede hashtags
+ featured_tags: Udvalgte hashtags
import: Import
- import_and_export: Importér og eksportér
+ import_and_export: Import og eksport
migrate: Kontomigrering
notifications: Notifikationer
preferences: Præferencer
profile: Profil
relationships: Følger og følgere
- statuses_cleanup: Automatiseret indlægssletning
+ statuses_cleanup: Auto-indlægssletning
strikes: Moderationsadvarsler
two_factor_authentication: Tofaktorgodkendelse
webauthn_authentication: Sikkerhedsnøgler
@@ -1423,18 +1428,18 @@ da:
other: "%{count} videoer"
boosted_from_html: Boostet fra %{acct_link}
content_warning: 'Indholdsadvarsel: %{warning}'
- default_language: Det samme som UI-sproget
+ default_language: Samme som UI-sproget
disallowed_hashtags:
one: 'indeholdte et ikke tilladt hashtag: %{tags}'
other: 'indeholdte de ikke tilladte hashtags: %{tags}'
edited_at: Redigeret %{date}
errors:
- in_reply_not_found: Indlægget, du forsøger at besvare, ser ikke ud til at findes.
- open_in_web: Åbn i browser
- over_character_limit: grænsen på %{max} tegn er nået
+ in_reply_not_found: Indlægget, der forsøges besvaret, ser ikke ud til at eksistere.
+ open_in_web: Åbn i webbrowser
+ over_character_limit: grænsen på %{max} tegn overskredet
pin_errors:
direct: Indlæg, som kun kan ses af nævnte brugere, kan ikke fastgøres
- limit: Du har allerede fastgjort det maksimale antal indlæg
+ limit: Maksimalt antal indlæg allerede fastgjort
ownership: Andres indlæg kan ikke fastgøres
reblog: Et boost kan ikke fastgøres
poll:
@@ -1456,44 +1461,44 @@ da:
private: Kun følgere
private_long: Vis kun til følgere
public: Offentlig
- public_long: Alle kan se
+ public_long: Kan ses af alle
unlisted: Ulistet
- unlisted_long: Alle kan se, men er ikke listet på offentlige tidslinjer
+ unlisted_long: Kan ses af alle, men listes på offentlige tidslinjer
statuses_cleanup:
enabled: Slet automatisk gamle indlæg
enabled_hint: Sletter automatisk dine indlæg, når disse når en bestemt alder, medmindre de matcher en af undtagelserne nedenfor
exceptions: Undtagelser
- explanation: Sletning af indlæg er en ressourcekrævende operation, hvorfor dette sker gradvist over tid, når serveren ellers ikke er optaget. Dine indlæg kan derfor blive slettet nogen tid efter, at de har passeret aldersgrænsen.
+ explanation: Sletning af indlæg er en ressourcekrævende operation, hvorfor dette sker gradvist over tid, når serveren ellers ikke er optaget. Indlæg kan derfor blive slettet efter, at de reelt har passeret aldersgrænsen.
ignore_favs: Ignorér favoritter
ignore_reblogs: Ignorér boosts
interaction_exceptions: Undtagelser baseret på interaktioner
- interaction_exceptions_explanation: Bemærk, at der ikke er nogen garanti for at indlæg slettes, hvis de går under favorit- eller boost-tærsklerne efter at have været gået over dem.
+ interaction_exceptions_explanation: Bemærk, at det ikke garanteres, at indlæg slettes, hvis de når under favorit- eller boost-tærsklerne efter én gang at været nået over dem.
keep_direct: Behold direkte besked
- keep_direct_hint: Slet ingen af dine direkte beskeder
+ keep_direct_hint: Sletter ingen af dine direkte beskeder
keep_media: Behold indlæg med medievedhæftninger
keep_media_hint: Sletter ingen af dine indlæg med medievedhæftninger
keep_pinned: Behold fastgjorte indlæg
keep_pinned_hint: Sletter ingen af dine fastgjorte indlæg
keep_polls: Behold afstemninger
keep_polls_hint: Sletter ingen af dine afstemninger
- keep_self_bookmark: Behold dine bogmærker
+ keep_self_bookmark: Behold bogmærkede indlæg
keep_self_bookmark_hint: Sletter ikke egne indlæg, såfremt de er bogmærket
- keep_self_fav: Behold indlæg du har foretrukket
- keep_self_fav_hint: Sletter ikke egne indlæg, såfremt de er foretrukket
+ keep_self_fav: Behold favoritmarkerede indlæg
+ keep_self_fav_hint: Sletter ikke egne indlæg, såfremt de er favoritmarkeret
min_age:
'1209600': 2 uger
'15778476': 6 måneder
'2629746': 1 måned
'31556952': 1 år
'5259492': 2 måneder
- '604800': 1 week
+ '604800': 1 uge
'63113904': 2 år
'7889238': 3 måneder
min_age_label: Alderstærskel
- min_favs: Behold indlæg foretrukket mere end
- min_favs_hint: Sletter ingen af dine indlæg, som har modtaget flere end dette antal favoriseringer. Lad stå tomt for at slette indlæg uanset favoriseringsantal
- min_reblogs: Behold indlæg boostet flere end
- min_reblogs_hint: Sletter ingen af dine indlæg, som er blevet boostet flere end dette antal gange. Lad stå tomt for at slette indlæg uanset deres boosts-antal
+ min_favs: Behold indlæg favoritmarkeret mindst
+ min_favs_hint: Sletter ingen egne indlæg, som har modtaget minimum dette antal favoritmarkeringer. Lad stå tomt for at ignorere denne tærskel under sletning
+ min_reblogs: Behold indlæg boostet mindst
+ min_reblogs_hint: Sletter ingen egne indlæg, som er boostet flere end dette antal gange. Lad stå tomt for at ignorere denne tærskel under sletning
stream_entries:
pinned: Fastgjort indlæg
reblogged: boostet
@@ -1501,7 +1506,7 @@ da:
tags:
does_not_match_previous_name: matcher ikke det foregående navn
terms:
- body_html: "Fortrolighedspolitik
\nHvilke oplysninger indsamler vi?
\n\n\n
\n\n
\n\nHvad bruger vi dine oplysninger til?
\n\n\n
\n\n
\n\nHvordan beskytter vi dine oplysninger?
\n\n
\n\nHvad er vores datalagringspolitik?
\n\n\n
\n\n
\n\nBruger vi cookies?
\n\n
\n\nAfslører vi nogle oplysninger til eksterne parter?
\n\n
\n\nBørns brug af webstedet
\n\n
\n\nÆndringer i vores fortrolighedspolitik
\n\nFortrolighedspolitik
\nHvilke oplysninger indsamler vi?
\n\n\n
\n\n
\n\nHvad bruger vi dine oplysninger til?
\n\n\n
\n\n
\n\nHvordan beskytter vi dine oplysninger?
\n\n
\n\nHvad er vores datalagringspolitik?
\n\n\n
\n\n
\n\nBruger vi cookies?
\n\n
\n\nVideregiver vi oplysninger til eksterne parter?
\n\n
\n\nBørns brug af webstedet
\n\n
\n\nÆndringer i vores Fortrolighedspolitik
\n\n%{instance}
rajekerên ku tu tomarkiriyî dibe ku tunebe, ji bona vê divê pêşî te beralîyê rajekera te bi xwe bikin."
remote_interaction:
favourite:
- proceed: Ber bi bijarê ve biçe
+ proceed: Ber bi bijarteyê ve biçe
prompt: 'Tu dixwazî vê şandiyê bibijêrî:'
reblog:
proceed: Bo bilindkirinê bidomîne
@@ -1384,7 +1384,7 @@ kmr:
preferences: Hilbijarte
profile: Profîl
relationships: Yên tê şopandin û şopîner
- statuses_cleanup: Bi xweberî va jê birina şandiya
+ statuses_cleanup: Bi xweberî ve jêbirina şandiya
strikes: Binpêkirinên çavdêriyê
two_factor_authentication: Piştrastkirinê du-faktorî
webauthn_authentication: Kilîdên ewlehiyê
diff --git a/config/locales/lv.yml b/config/locales/lv.yml
index 13f7544cac7..f095dc589df 100644
--- a/config/locales/lv.yml
+++ b/config/locales/lv.yml
@@ -377,6 +377,7 @@ lv:
enable: Iespējot
enabled: Iespējots
enabled_msg: Šī emocijzīme ir veiksmīgi iespējota
+ image_hint: PNG vai GIF līdz %{size}
list: Saraksts
listed: Uzrakstītas
new:
diff --git a/config/locales/ru.yml b/config/locales/ru.yml
index 54c73413b0a..193bb39ff8d 100644
--- a/config/locales/ru.yml
+++ b/config/locales/ru.yml
@@ -378,6 +378,7 @@ ru:
enable: Включить
enabled: Включено
enabled_msg: Эмодзи успешно включено
+ image_hint: PNG или GIF до %{size}
list: Список
listed: В списке
new:
diff --git a/config/locales/simple_form.da.yml b/config/locales/simple_form.da.yml
index beadb32fd06..6bf2f1ebc49 100644
--- a/config/locales/simple_form.da.yml
+++ b/config/locales/simple_form.da.yml
@@ -200,7 +200,7 @@ da:
notification_emails:
appeal: En moderatorafgørelse er appelleret
digest: Send resumé e-mails
- favourite: Nogen gav dig favoritstatus
+ favourite: Nogen favoritmarkerede dit indlæg
follow: Nogen begyndte at følge dig
follow_request: Nogen anmodede om at følge dig
mention: Nogen nævnte dig
diff --git a/config/locales/simple_form.eo.yml b/config/locales/simple_form.eo.yml
index db191a09124..11eeac74e09 100644
--- a/config/locales/simple_form.eo.yml
+++ b/config/locales/simple_form.eo.yml
@@ -156,7 +156,7 @@ eo:
setting_expand_spoilers: Ĉiam malfoldas mesaĝojn markitajn per averto pri enhavo
setting_hide_network: Kaŝi viajn sekvantojn kaj sekvatojn
setting_noindex: Ellistiĝi de retserĉila indeksado
- setting_reduce_motion: Redukti moviĝon en la animacioj
+ setting_reduce_motion: Redukti movecon en la animacioj
setting_show_application: Publikigi la aplikaĵon uzatan por sendi mesaĝojn
setting_system_font_ui: Uzi la dekomencan tiparon de la sistemo
setting_theme: Reteja etoso
diff --git a/config/locales/simple_form.sl.yml b/config/locales/simple_form.sl.yml
index 68822288794..7c8cdeadc80 100644
--- a/config/locales/simple_form.sl.yml
+++ b/config/locales/simple_form.sl.yml
@@ -74,6 +74,7 @@ sl:
text: Prednastavljeno besedilo
title: Naslov
admin_account_action:
+ include_statuses: Vključi omenjene objave v e-sporočilo
send_email_notification: Obvesti uporabnika po e-pošti
text: Opozorilo po meri
type: Dejanje
@@ -90,6 +91,8 @@ sl:
scheduled_at: Načrtuj čas objave
starts_at: Začetek dogodka
text: Objava
+ appeal:
+ text: Razložite, zakaj bi morali to odločitev spremeniti
defaults:
autofollow: Povabite, da sledi vašemu računu
avatar: Podoba
diff --git a/config/locales/simple_form.th.yml b/config/locales/simple_form.th.yml
index 303a684e23b..a504685439d 100644
--- a/config/locales/simple_form.th.yml
+++ b/config/locales/simple_form.th.yml
@@ -199,9 +199,10 @@ th:
follow: ใครสักคนได้ติดตามคุณ
follow_request: ใครสักคนได้ขอติดตามคุณ
mention: ใครสักคนได้กล่าวถึงคุณ
- pending_account: บัญชีใหม่ต้องมีการตรวจทาน
+ pending_account: บัญชีใหม่จำเป็นต้องมีการตรวจทาน
reblog: ใครสักคนได้ดันโพสต์ของคุณ
report: มีการส่งรายงานใหม่
+ trending_tag: แนวโน้มใหม่ต้องการการตรวจทาน
rule:
text: กฎ
tag:
diff --git a/config/locales/simple_form.tt.yml b/config/locales/simple_form.tt.yml
index 1b1d034b341..d4e44c0db26 100644
--- a/config/locales/simple_form.tt.yml
+++ b/config/locales/simple_form.tt.yml
@@ -17,6 +17,8 @@ tt:
password: Парол
setting_display_media_default: Töpcay
username: Кулланучы исеме
+ featured_tag:
+ name: Хэштег
invite:
comment: Аңлатма
ip_block:
diff --git a/config/locales/simple_form.vi.yml b/config/locales/simple_form.vi.yml
index 75c0c8338c2..29f19a844cb 100644
--- a/config/locales/simple_form.vi.yml
+++ b/config/locales/simple_form.vi.yml
@@ -48,7 +48,7 @@ vi:
password: Dùng ít nhất 8 ký tự
phrase: Sẽ được hiện thị trong văn bản hoặc cảnh báo nội dung của một tút
scopes: API nào ứng dụng sẽ được phép truy cập. Nếu bạn chọn quyền hạn cấp cao nhất, bạn không cần chọn từng phạm vi.
- setting_aggregate_reblogs: Nếu một tút đã được chia sẻ thì những lượt chia sẻ sau sẽ không hiển thị trên bảng tin nữa
+ setting_aggregate_reblogs: Nếu một tút đã được đăng lại thì những lượt đăng lại sau sẽ không hiển thị trên bảng tin nữa
setting_default_sensitive: Mặc định là nội dung nhạy cảm và chỉ hiển thị nếu nhấn vào
setting_display_media_default: Làm mờ những thứ được đánh dấu là nhạy cảm
setting_display_media_hide_all: Không hiển thị
@@ -150,9 +150,9 @@ vi:
password: Mật khẩu
phrase: Từ khóa hoặc cụm từ
setting_advanced_layout: Bật giao diện nhiều cột
- setting_aggregate_reblogs: Không hiện lượt chia sẻ trùng lặp
+ setting_aggregate_reblogs: Không hiện lượt đăng lại trùng lặp
setting_auto_play_gif: Tự động phát ảnh GIF
- setting_boost_modal: Yêu cầu xác nhận trước khi chia sẻ tút
+ setting_boost_modal: Yêu cầu xác nhận trước khi đăng lại tút
setting_crop_images: Hiển thị ảnh theo tỉ lệ 16x9
setting_default_language: Ngôn ngữ đăng
setting_default_privacy: Kiểu đăng
@@ -207,7 +207,7 @@ vi:
follow_request: Ai đó yêu cầu theo dõi bạn
mention: Ai đó nhắc đến bạn
pending_account: Tài khoản mới cần phê duyệt
- reblog: Ai đó chia sẻ tút của bạn
+ reblog: Ai đó đăng lại tút của bạn
report: Đã gửi báo cáo mới
trending_tag: Một xu hướng cần được xem xét
rule:
diff --git a/config/locales/sl.yml b/config/locales/sl.yml
index 902d8fdf951..b498ffd303e 100644
--- a/config/locales/sl.yml
+++ b/config/locales/sl.yml
@@ -16,6 +16,7 @@ sl:
contact: Kontakt
contact_missing: Ni nastavljeno
contact_unavailable: Ni na voljo
+ continue_to_web: Nadaljuj v spletno aplikacijo
discover_users: Odkrijte uporabnike
documentation: Dokumentacija
federation_hint_html: Z računom na %{instance} boste lahko spremljali ljudi na kateremkoli Mastodon strežniku.
@@ -25,6 +26,8 @@ sl:
Ta račun je navidezni igralec, ki predstavlja strežnik in ne posameznega uporabnika.
Uporablja se za namene federacije in se ne blokira, če ne želite blokirati celotne instance. V tem primeru blokirajte domeno.
learn_more: Nauči se več
+ logged_in_as_html: Trenutno ste prijavljeni kot %{username}.
+ logout_before_registering: Ste že prijavljeni.
privacy_policy: Pravilnik o zasebnosti
rules: Pravila strežnika
rules_html: 'Spodaj je povzetek pravil, ki jim morate slediti, če želite imeti račun na tem strežniku Mastodon:'
@@ -208,6 +211,8 @@ sl:
create_ip_block: Ustvari pravilo IP
create_unavailable_domain: Ustvari domeno, ki ni na voljo
destroy_announcement: Izbriši obvestilo
+ destroy_domain_allow: Izbriši odobritev domene
+ destroy_domain_block: Izbriši blokado domene
destroy_ip_block: Izbriši pravilo IP
destroy_status: Izbriši objavo
disable_user: Onemogoči uporabnika
@@ -252,6 +257,7 @@ sl:
enable: Omogoči
enabled: Omogočeno
enabled_msg: Ta emotikon je uspešno omogočen
+ image_hint: PNG ali GIF do %{size}
list: Seznam
listed: Navedeno
new:
diff --git a/config/locales/th.yml b/config/locales/th.yml
index 39146559ae8..c78be217bf2 100644
--- a/config/locales/th.yml
+++ b/config/locales/th.yml
@@ -23,7 +23,7 @@ th:
get_apps: ลองแอปมือถือ
hosted_on: Mastodon ที่โฮสต์ที่ %{domain}
learn_more: เรียนรู้เพิ่มเติม
- logged_in_as_html: คุณกำลังเข้าสู่ระบบเป็น %{username}
+ logged_in_as_html: คุณกำลังเข้าสู่ระบบเป็น %{username} ในปัจจุบัน
logout_before_registering: คุณได้เข้าสู่ระบบอยู่แล้ว
privacy_policy: นโยบายความเป็นส่วนตัว
rules: กฎของเซิร์ฟเวอร์
@@ -447,11 +447,33 @@ th:
title: คำแนะนำการติดตาม
unsuppress: คืนค่าคำแนะนำการติดตาม
instances:
+ availability:
+ title: ความพร้อมใช้งาน
back_to_all: ทั้งหมด
back_to_limited: จำกัดอยู่
back_to_warning: คำเตือน
by_domain: โดเมน
confirm_purge: คุณแน่ใจหรือไม่ว่าต้องการลบข้อมูลจากโดเมนนี้อย่างถาวร?
+ content_policies:
+ comment: หมายเหตุภายใน
+ description_html: คุณสามารถกำหนดนโยบายเนื้อหาที่จะนำไปใช้กับบัญชีทั้งหมดจากโดเมนนี้และโดเมนย่อยใดก็ตามของโดเมน
+ policies:
+ reject_media: ปฏิเสธสื่อ
+ reject_reports: ปฏิเสธรายงาน
+ silence: จำกัด
+ suspend: ระงับ
+ policy: นโยบาย
+ reason: เหตุผลสาธารณะ
+ title: นโยบายเนื้อหา
+ dashboard:
+ instance_accounts_dimension: บัญชีที่ติดตามมากที่สุด
+ instance_accounts_measure: บัญชีที่จัดเก็บไว้
+ instance_followers_measure: ผู้ติดตามของเราที่นั่น
+ instance_follows_measure: ผู้ติดตามของเขาที่นี่
+ instance_languages_dimension: ภาษายอดนิยม
+ instance_media_attachments_measure: ไฟล์แนบสื่อที่จัดเก็บไว้
+ instance_reports_measure: รายงานเกี่ยวกับเขา
+ instance_statuses_measure: โพสต์ที่จัดเก็บไว้
delivery:
all: ทั้งหมด
clear: ล้างข้อผิดพลาดการจัดส่ง
@@ -657,7 +679,7 @@ th:
desc_html: มีผลต่อแฮชแท็กที่ไม่ได้ไม่อนุญาตก่อนหน้านี้
title: อนุญาตให้แฮชแท็กขึ้นแนวโน้มโดยไม่มีการตรวจทานล่วงหน้า
trends:
- desc_html: แสดงเนื้อหาที่ตรวจทานแล้วก่อนหน้านี้ที่กำลังนิยมเป็นสาธารณะ
+ desc_html: แสดงเนื้อหาที่ตรวจทานแล้วก่อนหน้านี้ที่กำลังนิยมในปัจจุบันเป็นสาธารณะ
title: แนวโน้ม
site_uploads:
delete: ลบไฟล์ที่อัปโหลด
@@ -767,13 +789,13 @@ th:
subject: รายงานใหม่สำหรับ %{instance} (#%{id})
new_trends:
new_trending_links:
- no_approved_links: ไม่มีลิงก์ที่กำลังนิยมที่ได้รับอนุมัติ
+ no_approved_links: ไม่มีลิงก์ที่กำลังนิยมที่ได้รับอนุมัติในปัจจุบัน
title: ลิงก์ที่กำลังนิยม
new_trending_statuses:
- no_approved_statuses: ไม่มีโพสต์ที่กำลังนิยมที่ได้รับอนุมัติ
+ no_approved_statuses: ไม่มีโพสต์ที่กำลังนิยมที่ได้รับอนุมัติในปัจจุบัน
title: โพสต์ที่กำลังนิยม
new_trending_tags:
- no_approved_tags: ไม่มีแฮชแท็กที่กำลังนิยมที่ได้รับอนุมัติ
+ no_approved_tags: ไม่มีแฮชแท็กที่กำลังนิยมที่ได้รับอนุมัติในปัจจุบัน
title: แฮชแท็กที่กำลังนิยม
subject: แนวโน้มใหม่สำหรับตรวจทานใน %{instance}
aliases:
diff --git a/config/locales/tr.yml b/config/locales/tr.yml
index bbc4a6db75c..3414313637d 100644
--- a/config/locales/tr.yml
+++ b/config/locales/tr.yml
@@ -373,6 +373,7 @@ tr:
enable: Etkinleştir
enabled: Etkin
enabled_msg: Bu emojiyi başarıyla etkinleştirdi
+ image_hint: En fazla %{size} boyutunda PNG veya GIF
list: Liste
listed: Listelenen
new:
diff --git a/config/locales/tt.yml b/config/locales/tt.yml
index 3e80dfcaf24..e23533828fc 100644
--- a/config/locales/tt.yml
+++ b/config/locales/tt.yml
@@ -37,16 +37,21 @@ tt:
local: Җирле
title: Урын
moderation:
+ active: Актив
all: Бөтенесе
perform_full_suspension: Искә алмау
reset: Ташлату
role: Рөхсәтләр
roles:
+ moderator: Модератор
user: Кулланучы
search: Эзләү
sensitive: Sizmäle
username: Кулланучы исеме
web: Веб
+ action_logs:
+ action_types:
+ disable_2fa_user: 2FA cүндерү
custom_emojis:
by_domain: Домен
copy: Күчереп алу
@@ -65,6 +70,8 @@ tt:
email_domain_blocks:
delete: Бетерү
domain: Домен
+ follow_recommendations:
+ status: Халәт
instances:
by_domain: Домен
moderation:
@@ -78,11 +85,12 @@ tt:
delete: Бетерү
expires_in:
'1209600': 2 атна
- '15778476': 6 months
+ '15778476': 6 ай
'2629746': 1 ай
'31556952': 1 ел
'86400': 1 көн
'94670856': 3 ел
+ title: IP кагыйдәләре
relays:
delete: Бетерү
disable: Cүндерү
@@ -97,10 +105,14 @@ tt:
delete: Бетерү
status: Халәт
updated_at: Яңартылды
+ rules:
+ delete: Бетерү
statuses:
deleted: Бетерелде
media:
title: Медиа
+ trends:
+ allow: Рөхсәт итү
warning_presets:
delete: Бетерү
application_mailer:
@@ -125,9 +137,12 @@ tt:
distance_in_words:
about_x_hours: "%{count}сәг"
about_x_months: "%{count}ай"
+ about_x_years: "%{count}ел"
+ almost_x_years: "%{count}ел"
half_a_minute: Хәзер генә
less_than_x_minutes: "%{count}м"
less_than_x_seconds: Хәзер генә
+ over_x_years: "%{count}ел"
x_days: "%{count}к"
x_minutes: "%{count}м"
x_months: "%{count}ай"
@@ -160,6 +175,7 @@ tt:
all: Бөтенесе
copy: Күчереп алу
delete: Бетерү
+ today: бүген
imports:
types:
bookmarks: Кыстыргычлар
@@ -212,6 +228,7 @@ tt:
platforms:
adobe_air: Adobе Air
android: Andrоid
+ blackberry: Blаckberry
chrome_os: ChromеOS
firefox_os: Firеfox OS
ios: iОS
@@ -233,15 +250,28 @@ tt:
video:
other: "%{count} видео"
title: '%{name}: "%{quote}"'
+ statuses_cleanup:
+ min_age:
+ '1209600': 2 атна
+ '15778476': 6 months
+ '2629746': 1 ай
+ '31556952': 1 ел
+ '5259492': 2 ай
+ '604800': 1 атна
+ '63113904': 2 ел
+ '7889238': 3 ай
time:
formats:
default: "%d %b %Y, %H:%M"
month: "%b %Y"
+ time: "%H:%M"
two_factor_authentication:
add: Өстәү
+ disable: 2FA cүндерү
edit: Үзгәртү
user_mailer:
warning:
+ reason: 'Сәбаб:'
title:
none: Игътибар
webauthn_credentials:
diff --git a/config/locales/vi.yml b/config/locales/vi.yml
index d9b58115eb8..c420f21763c 100644
--- a/config/locales/vi.yml
+++ b/config/locales/vi.yml
@@ -794,7 +794,7 @@ vi:
statuses:
allow: Cho phép tút
allow_account: Cho phép người đăng
- description_html: Đây là những tút hiện đang được chia sẻ và yêu thích rất nhiều trên máy chủ của bạn ở thời điểm hiện tại. Nó có thể giúp người dùng mới và người dùng cũ của bạn tìm thấy nhiều người hơn để theo dõi. Không có bài viết nào được hiển thị công khai cho đến khi bạn cho phép tác giả và tác giả cho phép đề xuất tài khoản của họ cho người khác. Bạn cũng có thể cho phép hoặc từ chối các tút riêng lẻ.
+ description_html: Đây là những tút hiện đang được đăng lại và yêu thích rất nhiều trên máy chủ của bạn ở thời điểm hiện tại. Nó có thể giúp người dùng mới và người dùng cũ của bạn tìm thấy nhiều người hơn để theo dõi. Không có bài viết nào được hiển thị công khai cho đến khi bạn cho phép tác giả và tác giả cho phép đề xuất tài khoản của họ cho người khác. Bạn cũng có thể cho phép hoặc từ chối các tút riêng lẻ.
disallow: Không cho phép tút
disallow_account: Không cho phép người đăng
not_discoverable: Tác giả đã chọn không tham gia mục khám phá
@@ -1239,9 +1239,9 @@ vi:
poll:
subject: Cuộc bình chọn của %{name} kết thúc
reblog:
- body: Tút của bạn vừa được chia sẻ bởi %{name}
- subject: "%{name} vừa chia sẻ tút của bạn"
- title: Lượt chia sẻ mới
+ body: Tút của bạn vừa được %{name} đăng lại
+ subject: "%{name} vừa đăng lại tút của bạn"
+ title: Lượt đăng lại mới
status:
subject: Bài đăng mới từ %{name}
update:
@@ -1322,8 +1322,8 @@ vi:
proceed: Thích tút
prompt: 'Bạn muốn thích tút này:'
reblog:
- proceed: Tiếp tục chia sẻ
- prompt: Bạn có muốn chia sẻ tút này?
+ proceed: Tiếp tục đăng lại
+ prompt: Bạn có muốn đăng lại tút này?
reply:
proceed: Tiếp tục trả lời
prompt: Bạn có muốn trả lời tút này?
@@ -1408,7 +1408,7 @@ vi:
other: "%{count} hình ảnh"
video:
other: "%{count} video"
- boosted_from_html: Đã chia sẻ từ %{acct_link}
+ boosted_from_html: Đã đăng lại từ %{acct_link}
content_warning: 'Cảnh báo nội dung: %{warning}'
default_language: Giống ngôn ngữ giao diện
disallowed_hashtags:
@@ -1422,7 +1422,7 @@ vi:
direct: Không thể ghim những tút nhắn riêng
limit: Bạn đã ghim quá số lượng tút cho phép
ownership: Không thể ghim tút của người khác
- reblog: Không thể ghim chia sẻ
+ reblog: Không thể ghim tút đăng lại
poll:
total_people:
other: "%{count} người bình chọn"
@@ -1449,9 +1449,9 @@ vi:
exceptions: Ngoại trừ
explanation: Việc xóa tút rất tốn thời gian vì tút của bạn sẽ tăng dần theo năm tháng. Bởi lý do này, bạn nên xóa những tút cũ khi chúng đã đạt tới thời điểm nhất định.
ignore_favs: Bỏ qua số luợt thích
- ignore_reblogs: Bỏ qua số lượt chia sẻ
+ ignore_reblogs: Bỏ qua lượt đăng lại
interaction_exceptions: Ngoại lệ dựa trên tương tác
- interaction_exceptions_explanation: Lưu ý rằng không có gì đảm bảo rằng các bài đăng sẽ bị xóa nếu chúng xuống dưới ngưỡng mức yêu thích hoặc chia sẻ sau khi đã từng vượt qua.
+ interaction_exceptions_explanation: Lưu ý rằng không có gì đảm bảo rằng các tút sẽ bị xóa nếu chúng xuống dưới ngưỡng mức yêu thích hoặc đăng lại sau khi đã từng vượt qua.
keep_direct: Giữ lại tin nhắn
keep_direct_hint: Không xóa tin nhắn của bạn
keep_media: Giữ lại những tút có đính kèm media
@@ -1476,11 +1476,11 @@ vi:
min_age_label: Thời điểm
min_favs: Giữ những tút yêu thích lâu hơn
min_favs_hint: Những tút có lượt thích nhiều hơn số này sẽ không bị xóa. Để trống nếu bạn muốn xóa hết
- min_reblogs: Giữ những tút đã chia sẻ lâu hơn
- min_reblogs_hint: Những tút có lượt chia sẻ nhiều hơn số này sẽ không bị xóa. Để trống nếu bạn muốn xóa hết
+ min_reblogs: Giữ những tút đã đăng lại lâu hơn
+ min_reblogs_hint: Những tút có lượt đăng lại nhiều hơn số này sẽ không bị xóa. Để trống nếu bạn muốn xóa hết
stream_entries:
pinned: Tút được ghim
- reblogged: chia sẻ
+ reblogged: đăng lại
sensitive_content: NSFW
tags:
does_not_match_previous_name: không khớp với tên trước
diff --git a/config/locales/zh-CN.yml b/config/locales/zh-CN.yml
index 02d18d41b9b..c8f7175f596 100644
--- a/config/locales/zh-CN.yml
+++ b/config/locales/zh-CN.yml
@@ -23,6 +23,7 @@ zh-CN:
hosted_on: 运行在 %{domain} 上的 Mastodon 实例
instance_actor_flash: "这个账号是个虚拟帐号,不代表任何用户,只用来代表服务器本身。它用于和其它服务器互通,所以不应该被封禁,除非你想封禁整个实例。但是想封禁整个实例的时候,你应该用域名封禁。 \n"
learn_more: 了解详情
+ logout_before_registering: 您已登录。
privacy_policy: 隐私政策
rules: 服务器规则
rules_html: 如果你想要在此Mastodon服务器上拥有一个账户,你必须遵守相应的规则,摘要如下:
@@ -470,6 +471,8 @@ zh-CN:
back_to_warning: 警告
by_domain: 域名
confirm_purge: 你确认要从这个实例中永久地删除数据吗?
+ content_policies:
+ title: 本站点内容发布规则
delivery:
all: 全部
clear: 清理投递错误
diff --git a/config/locales/zh-TW.yml b/config/locales/zh-TW.yml
index d11b15ab42b..f1e0ea44686 100644
--- a/config/locales/zh-TW.yml
+++ b/config/locales/zh-TW.yml
@@ -367,6 +367,7 @@ zh-TW:
enable: 啟用
enabled: 已啟用
enabled_msg: 已啟用表情符號
+ image_hint: 檔案大小最大至 %{size} 之PNG 或 GIF
list: 列表
listed: 已顯示
new:
diff --git a/lib/mastodon/version.rb b/lib/mastodon/version.rb
index 7c2e7161ab8..4ba47b4ee55 100644
--- a/lib/mastodon/version.rb
+++ b/lib/mastodon/version.rb
@@ -9,15 +9,15 @@ module Mastodon
end
def minor
- 4
+ 5
end
def patch
- 6
+ 0
end
def flags
- ''
+ 'rc1'
end
def suffix
diff --git a/package.json b/package.json
index 463d47a8a20..11be90e44e2 100644
--- a/package.json
+++ b/package.json
@@ -61,21 +61,21 @@
},
"private": true,
"dependencies": {
- "@babel/core": "^7.17.5",
+ "@babel/core": "^7.17.7",
"@babel/plugin-proposal-decorators": "^7.17.2",
"@babel/plugin-transform-react-inline-elements": "^7.16.7",
"@babel/plugin-transform-runtime": "^7.17.0",
"@babel/preset-env": "^7.16.11",
"@babel/preset-react": "^7.16.7",
- "@babel/runtime": "^7.17.2",
+ "@babel/runtime": "^7.17.7",
"@gamestdio/websocket": "^0.3.2",
"@github/webauthn-json": "^0.5.7",
- "@rails/ujs": "^6.1.4",
+ "@rails/ujs": "^6.1.5",
"array-includes": "^3.1.4",
"atrament": "0.2.4",
"arrow-key-navigation": "^1.2.0",
"autoprefixer": "^9.8.8",
- "axios": "^0.26.0",
+ "axios": "^0.26.1",
"babel-loader": "^8.2.3",
"babel-plugin-lodash": "^3.3.4",
"babel-plugin-preval": "^5.1.0",
@@ -176,7 +176,7 @@
},
"devDependencies": {
"@testing-library/jest-dom": "^5.16.2",
- "@testing-library/react": "^12.1.3",
+ "@testing-library/react": "^12.1.4",
"babel-eslint": "^10.1.0",
"babel-jest": "^27.5.1",
"eslint": "^7.32.0",
@@ -197,6 +197,6 @@
},
"optionalDependencies": {
"bufferutil": "^4.0.6",
- "utf-8-validate": "^5.0.8"
+ "utf-8-validate": "^5.0.9"
}
}
diff --git a/spec/controllers/api/v1/notifications_controller_spec.rb b/spec/controllers/api/v1/notifications_controller_spec.rb
index f8df6589f1f..46e177c0ece 100644
--- a/spec/controllers/api/v1/notifications_controller_spec.rb
+++ b/spec/controllers/api/v1/notifications_controller_spec.rb
@@ -70,23 +70,23 @@ RSpec.describe Api::V1::NotificationsController, type: :controller do
end
it 'includes reblog' do
- expect(assigns(:notifications).map(&:activity)).to include(@reblog_of_first_status)
+ expect(body_as_json.map { |x| x[:type] }).to include 'reblog'
end
it 'includes mention' do
- expect(assigns(:notifications).map(&:activity)).to include(@mention_from_status)
+ expect(body_as_json.map { |x| x[:type] }).to include 'mention'
end
it 'includes favourite' do
- expect(assigns(:notifications).map(&:activity)).to include(@favourite)
+ expect(body_as_json.map { |x| x[:type] }).to include 'favourite'
end
it 'includes follow' do
- expect(assigns(:notifications).map(&:activity)).to include(@follow)
+ expect(body_as_json.map { |x| x[:type] }).to include 'follow'
end
end
- describe 'from specified user' do
+ describe 'with account_id param' do
before do
get :index, params: { account_id: third.account.id }
end
@@ -95,28 +95,12 @@ RSpec.describe Api::V1::NotificationsController, type: :controller do
expect(response).to have_http_status(200)
end
- it 'includes favourite' do
- expect(assigns(:notifications).map(&:activity)).to include(@second_favourite)
- end
-
- it 'excludes favourite' do
- expect(assigns(:notifications).map(&:activity)).to_not include(@favourite)
- end
-
- it 'excludes mention' do
- expect(assigns(:notifications).map(&:activity)).to_not include(@mention_from_status)
- end
-
- it 'excludes reblog' do
- expect(assigns(:notifications).map(&:activity)).to_not include(@reblog_of_first_status)
- end
-
- it 'excludes follow' do
- expect(assigns(:notifications).map(&:activity)).to_not include(@follow)
+ it 'returns only notifications from specified user' do
+ expect(body_as_json.map { |x| x[:account][:id] }.uniq).to eq [third.account.id.to_s]
end
end
- describe 'from nonexistent user' do
+ describe 'with invalid account_id param' do
before do
get :index, params: { account_id: 'foo' }
end
@@ -125,54 +109,37 @@ RSpec.describe Api::V1::NotificationsController, type: :controller do
expect(response).to have_http_status(200)
end
- it 'excludes favourite' do
- expect(assigns(:notifications).map(&:activity)).to_not include(@favourite)
- end
-
- it 'excludes second favourite' do
- expect(assigns(:notifications).map(&:activity)).to_not include(@second_favourite)
- end
-
- it 'excludes mention' do
- expect(assigns(:notifications).map(&:activity)).to_not include(@mention_from_status)
- end
-
- it 'excludes reblog' do
- expect(assigns(:notifications).map(&:activity)).to_not include(@reblog_of_first_status)
- end
-
- it 'excludes follow' do
- expect(assigns(:notifications).map(&:activity)).to_not include(@follow)
+ it 'returns nothing' do
+ expect(body_as_json.size).to eq 0
end
end
- describe 'with excluded mentions' do
+ describe 'with excluded_types param' do
before do
- get :index, params: { exclude_types: ['mention'] }
+ get :index, params: { exclude_types: %w(mention) }
end
it 'returns http success' do
expect(response).to have_http_status(200)
end
- it 'includes reblog' do
- expect(assigns(:notifications).map(&:activity)).to include(@reblog_of_first_status)
+ it 'returns everything but excluded type' do
+ expect(body_as_json.size).to_not eq 0
+ expect(body_as_json.map { |x| x[:type] }.uniq).to_not include 'mention'
+ end
+ end
+
+ describe 'with types param' do
+ before do
+ get :index, params: { types: %w(mention) }
end
- it 'excludes mention' do
- expect(assigns(:notifications).map(&:activity)).to_not include(@mention_from_status)
+ it 'returns http success' do
+ expect(response).to have_http_status(200)
end
- it 'includes favourite' do
- expect(assigns(:notifications).map(&:activity)).to include(@favourite)
- end
-
- it 'includes third favourite' do
- expect(assigns(:notifications).map(&:activity)).to include(@second_favourite)
- end
-
- it 'includes follow' do
- expect(assigns(:notifications).map(&:activity)).to include(@follow)
+ it 'returns only requested type' do
+ expect(body_as_json.map { |x| x[:type] }.uniq).to eq ['mention']
end
end
end
diff --git a/yarn.lock b/yarn.lock
index 4847200be2a..f6a00188396 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -28,18 +28,23 @@
resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.16.8.tgz#31560f9f29fdf1868de8cb55049538a1b9732a60"
integrity sha512-m7OkX0IdKLKPpBlJtF561YJal5y/jyI5fNfWbPxh2D/nbzzGI4qRyrD8xO2jB24u7l+5I2a43scCG2IrfjC50Q==
-"@babel/core@^7.1.0", "@babel/core@^7.12.3", "@babel/core@^7.17.5", "@babel/core@^7.7.2", "@babel/core@^7.8.0":
- version "7.17.5"
- resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.17.5.tgz#6cd2e836058c28f06a4ca8ee7ed955bbf37c8225"
- integrity sha512-/BBMw4EvjmyquN5O+t5eh0+YqB3XXJkYD2cjKpYtWOfFy4lQ4UozNSmxAcWT8r2XtZs0ewG+zrfsqeR15i1ajA==
+"@babel/compat-data@^7.17.7":
+ version "7.17.7"
+ resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.17.7.tgz#078d8b833fbbcc95286613be8c716cef2b519fa2"
+ integrity sha512-p8pdE6j0a29TNGebNm7NzYZWB3xVZJBZ7XGs42uAKzQo8VQ3F0By/cQCtUEABwIqw5zo6WA4NbmxsfzADzMKnQ==
+
+"@babel/core@^7.1.0", "@babel/core@^7.12.3", "@babel/core@^7.17.7", "@babel/core@^7.7.2", "@babel/core@^7.8.0":
+ version "7.17.7"
+ resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.17.7.tgz#f7c28228c83cdf2dbd1b9baa06eaf9df07f0c2f9"
+ integrity sha512-djHlEfFHnSnTAcPb7dATbiM5HxGOP98+3JLBZtjRb5I7RXrw7kFRoG2dXM8cm3H+o11A8IFH/uprmJpwFynRNQ==
dependencies:
"@ampproject/remapping" "^2.1.0"
"@babel/code-frame" "^7.16.7"
- "@babel/generator" "^7.17.3"
- "@babel/helper-compilation-targets" "^7.16.7"
- "@babel/helper-module-transforms" "^7.16.7"
- "@babel/helpers" "^7.17.2"
- "@babel/parser" "^7.17.3"
+ "@babel/generator" "^7.17.7"
+ "@babel/helper-compilation-targets" "^7.17.7"
+ "@babel/helper-module-transforms" "^7.17.7"
+ "@babel/helpers" "^7.17.7"
+ "@babel/parser" "^7.17.7"
"@babel/template" "^7.16.7"
"@babel/traverse" "^7.17.3"
"@babel/types" "^7.17.0"
@@ -49,10 +54,10 @@
json5 "^2.1.2"
semver "^6.3.0"
-"@babel/generator@^7.17.3", "@babel/generator@^7.7.2":
- version "7.17.3"
- resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.17.3.tgz#a2c30b0c4f89858cb87050c3ffdfd36bdf443200"
- integrity sha512-+R6Dctil/MgUsZsZAkYgK+ADNSZzJRRy0TvY65T71z/CR854xHQ1EweBYXdfT+HNeN7w0cSJJEzgxZMv40pxsg==
+"@babel/generator@^7.17.3", "@babel/generator@^7.17.7", "@babel/generator@^7.7.2":
+ version "7.17.7"
+ resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.17.7.tgz#8da2599beb4a86194a3b24df6c085931d9ee45ad"
+ integrity sha512-oLcVCTeIFadUoArDTwpluncplrYBmTCCZZgXCbgNGvOBBiSDDK3eWO4b/+eOTli5tKv1lg+a5/NAXg+nTcei1w==
dependencies:
"@babel/types" "^7.17.0"
jsesc "^2.5.1"
@@ -81,12 +86,12 @@
"@babel/helper-annotate-as-pure" "^7.16.7"
"@babel/types" "^7.16.7"
-"@babel/helper-compilation-targets@^7.13.0", "@babel/helper-compilation-targets@^7.16.7":
- version "7.16.7"
- resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.16.7.tgz#06e66c5f299601e6c7da350049315e83209d551b"
- integrity sha512-mGojBwIWcwGD6rfqgRXVlVYmPAv7eOpIemUG3dGnDdCY4Pae70ROij3XmfrH6Fa1h1aiDylpglbZyktfzyo/hA==
+"@babel/helper-compilation-targets@^7.13.0", "@babel/helper-compilation-targets@^7.16.7", "@babel/helper-compilation-targets@^7.17.7":
+ version "7.17.7"
+ resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.17.7.tgz#a3c2924f5e5f0379b356d4cfb313d1414dc30e46"
+ integrity sha512-UFzlz2jjd8kroj0hmCFV5zr+tQPi1dpC2cRsDV/3IEW8bJfCPrPpmcSN6ZS8RqIq4LXcmpipCQFPddyFA5Yc7w==
dependencies:
- "@babel/compat-data" "^7.16.4"
+ "@babel/compat-data" "^7.17.7"
"@babel/helper-validator-option" "^7.16.7"
browserslist "^4.17.5"
semver "^6.3.0"
@@ -191,19 +196,19 @@
dependencies:
"@babel/types" "^7.16.7"
-"@babel/helper-module-transforms@^7.16.7":
- version "7.16.7"
- resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.16.7.tgz#7665faeb721a01ca5327ddc6bba15a5cb34b6a41"
- integrity sha512-gaqtLDxJEFCeQbYp9aLAefjhkKdjKcdh6DB7jniIGU3Pz52WAmP268zK0VgPz9hUNkMSYeH976K2/Y6yPadpng==
+"@babel/helper-module-transforms@^7.16.7", "@babel/helper-module-transforms@^7.17.7":
+ version "7.17.7"
+ resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.17.7.tgz#3943c7f777139e7954a5355c815263741a9c1cbd"
+ integrity sha512-VmZD99F3gNTYB7fJRDTi+u6l/zxY0BE6OIxPSU7a50s6ZUQkHwSDmV92FfM+oCG0pZRVojGYhkR8I0OGeCVREw==
dependencies:
"@babel/helper-environment-visitor" "^7.16.7"
"@babel/helper-module-imports" "^7.16.7"
- "@babel/helper-simple-access" "^7.16.7"
+ "@babel/helper-simple-access" "^7.17.7"
"@babel/helper-split-export-declaration" "^7.16.7"
"@babel/helper-validator-identifier" "^7.16.7"
"@babel/template" "^7.16.7"
- "@babel/traverse" "^7.16.7"
- "@babel/types" "^7.16.7"
+ "@babel/traverse" "^7.17.3"
+ "@babel/types" "^7.17.0"
"@babel/helper-optimise-call-expression@^7.16.7":
version "7.16.7"
@@ -244,6 +249,13 @@
dependencies:
"@babel/types" "^7.16.7"
+"@babel/helper-simple-access@^7.17.7":
+ version "7.17.7"
+ resolved "https://registry.yarnpkg.com/@babel/helper-simple-access/-/helper-simple-access-7.17.7.tgz#aaa473de92b7987c6dfa7ce9a7d9674724823367"
+ integrity sha512-txyMCGroZ96i+Pxr3Je3lzEJjqwaRC9buMUgtomcrLe5Nd0+fk1h0LLA+ixUF5OW7AhHuQ7Es1WcQJZmZsz2XA==
+ dependencies:
+ "@babel/types" "^7.17.0"
+
"@babel/helper-skip-transparent-expression-wrappers@^7.16.0":
version "7.16.0"
resolved "https://registry.yarnpkg.com/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.16.0.tgz#0ee3388070147c3ae051e487eca3ebb0e2e8bb09"
@@ -283,13 +295,13 @@
"@babel/traverse" "^7.16.8"
"@babel/types" "^7.16.8"
-"@babel/helpers@^7.17.2":
- version "7.17.2"
- resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.17.2.tgz#23f0a0746c8e287773ccd27c14be428891f63417"
- integrity sha512-0Qu7RLR1dILozr/6M0xgj+DFPmi6Bnulgm9M8BVa9ZCWxDqlSnqt3cf8IDPB5m45sVXUZ0kuQAgUrdSFFH79fQ==
+"@babel/helpers@^7.17.7":
+ version "7.17.7"
+ resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.17.7.tgz#6fc0a24280fd00026e85424bbfed4650e76d7127"
+ integrity sha512-TKsj9NkjJfTBxM7Phfy7kv6yYc4ZcOo+AaWGqQOKTPDOmcGkIFb5xNA746eKisQkm4yavUYh4InYM9S+VnO01w==
dependencies:
"@babel/template" "^7.16.7"
- "@babel/traverse" "^7.17.0"
+ "@babel/traverse" "^7.17.3"
"@babel/types" "^7.17.0"
"@babel/highlight@^7.10.4":
@@ -310,10 +322,10 @@
chalk "^2.0.0"
js-tokens "^4.0.0"
-"@babel/parser@^7.1.0", "@babel/parser@^7.14.7", "@babel/parser@^7.16.7", "@babel/parser@^7.17.3", "@babel/parser@^7.7.0":
- version "7.17.3"
- resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.17.3.tgz#b07702b982990bf6fdc1da5049a23fece4c5c3d0"
- integrity sha512-7yJPvPV+ESz2IUTPbOL+YkIGyCqOyNIzdguKQuJGnH7bg1WTIifuM21YqokFt/THWh1AkCRn9IgoykTRCBVpzA==
+"@babel/parser@^7.1.0", "@babel/parser@^7.14.7", "@babel/parser@^7.16.7", "@babel/parser@^7.17.3", "@babel/parser@^7.17.7", "@babel/parser@^7.7.0":
+ version "7.17.7"
+ resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.17.7.tgz#fc19b645a5456c8d6fdb6cecd3c66c0173902800"
+ integrity sha512-bm3AQf45vR4gKggRfvJdYJ0gFLoCbsPxiFLSH6hTVYABptNHY6l9NrhnucVjQ/X+SPtLANT9lc0fFhikj+VBRA==
"@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@^7.16.7":
version "7.16.7"
@@ -1024,10 +1036,10 @@
dependencies:
regenerator-runtime "^0.12.0"
-"@babel/runtime@^7.0.0", "@babel/runtime@^7.1.2", "@babel/runtime@^7.10.2", "@babel/runtime@^7.12.0", "@babel/runtime@^7.12.5", "@babel/runtime@^7.15.4", "@babel/runtime@^7.16.3", "@babel/runtime@^7.17.2", "@babel/runtime@^7.2.0", "@babel/runtime@^7.3.1", "@babel/runtime@^7.5.5", "@babel/runtime@^7.6.3", "@babel/runtime@^7.7.2", "@babel/runtime@^7.8.4", "@babel/runtime@^7.9.2":
- version "7.17.2"
- resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.17.2.tgz#66f68591605e59da47523c631416b18508779941"
- integrity sha512-hzeyJyMA1YGdJTuWU0e/j4wKXrU4OMFvY2MSlaI9B7VQb0r5cxTE3EAIS2Q7Tn2RIcDkRvTA/v2JsAEhxe99uw==
+"@babel/runtime@^7.0.0", "@babel/runtime@^7.1.2", "@babel/runtime@^7.10.2", "@babel/runtime@^7.12.0", "@babel/runtime@^7.12.5", "@babel/runtime@^7.15.4", "@babel/runtime@^7.16.3", "@babel/runtime@^7.17.7", "@babel/runtime@^7.2.0", "@babel/runtime@^7.3.1", "@babel/runtime@^7.5.5", "@babel/runtime@^7.6.3", "@babel/runtime@^7.7.2", "@babel/runtime@^7.8.4", "@babel/runtime@^7.9.2":
+ version "7.17.7"
+ resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.17.7.tgz#a5f3328dc41ff39d803f311cfe17703418cf9825"
+ integrity sha512-L6rvG9GDxaLgFjg41K+5Yv9OMrU98sWe+Ykmc6FDJW/+vYZMhdOMKkISgzptMaERHvS2Y2lw9MDRm2gHhlQQoA==
dependencies:
regenerator-runtime "^0.13.4"
@@ -1040,7 +1052,7 @@
"@babel/parser" "^7.16.7"
"@babel/types" "^7.16.7"
-"@babel/traverse@^7.13.0", "@babel/traverse@^7.16.7", "@babel/traverse@^7.16.8", "@babel/traverse@^7.17.0", "@babel/traverse@^7.17.3", "@babel/traverse@^7.7.0", "@babel/traverse@^7.7.2":
+"@babel/traverse@^7.13.0", "@babel/traverse@^7.16.7", "@babel/traverse@^7.16.8", "@babel/traverse@^7.17.3", "@babel/traverse@^7.7.0", "@babel/traverse@^7.7.2":
version "7.17.3"
resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.17.3.tgz#0ae0f15b27d9a92ba1f2263358ea7c4e7db47b57"
integrity sha512-5irClVky7TxRWIRtxlh2WPUUOLhcPN06AGgaQSB8AEwuyEBgJVuJ5imdHm5zxk8w0QS5T+tDfnDxAlhWjpb7cw==
@@ -1445,10 +1457,10 @@
resolved "https://registry.yarnpkg.com/@polka/url/-/url-1.0.0-next.11.tgz#aeb16f50649a91af79dbe36574b66d0f9e4d9f71"
integrity sha512-3NsZsJIA/22P3QUyrEDNA2D133H4j224twJrdipXN38dpnIOzAbUDtOwkcJ5pXmn75w7LSQDjA4tO9dm1XlqlA==
-"@rails/ujs@^6.1.4":
- version "6.1.4"
- resolved "https://registry.yarnpkg.com/@rails/ujs/-/ujs-6.1.4.tgz#093d5341595a02089ed309dec40f3c37da7b1b10"
- integrity sha512-O3lEzL5DYbxppMdsFSw36e4BHIlfz/xusynwXGv3l2lhSlvah41qviRpsoAlKXxl37nZAqK+UUF5cnGGK45Mfw==
+"@rails/ujs@^6.1.5":
+ version "6.1.5"
+ resolved "https://registry.yarnpkg.com/@rails/ujs/-/ujs-6.1.5.tgz#bb1afddd0d771f00924f44b21634969e329532e1"
+ integrity sha512-Ir4yd2fdDldWIghavPr874copVKf6OOoecKHZiFRlPtm38tFvhyxr+ywzNieXGwolF9JQe3D5GrM8ejkzUgh5Q==
"@sinonjs/commons@^1.7.0":
version "1.8.1"
@@ -1493,10 +1505,10 @@
lodash "^4.17.15"
redent "^3.0.0"
-"@testing-library/react@^12.1.3":
- version "12.1.3"
- resolved "https://registry.yarnpkg.com/@testing-library/react/-/react-12.1.3.tgz#ef26c5f122661ea9b6f672b23dc6b328cadbbf26"
- integrity sha512-oCULRXWRrBtC9m6G/WohPo1GLcLesH7T4fuKzRAKn1CWVu9BzXtqLXDDTA6KhFNNtRwLtfSMr20HFl+Qrdrvmg==
+"@testing-library/react@^12.1.4":
+ version "12.1.4"
+ resolved "https://registry.yarnpkg.com/@testing-library/react/-/react-12.1.4.tgz#09674b117e550af713db3f4ec4c0942aa8bbf2c0"
+ integrity sha512-jiPKOm7vyUw311Hn/HlNQ9P8/lHNtArAx0PisXyFixDDvfl8DbD6EUdbshK5eqauvBSvzZd19itqQ9j3nferJA==
dependencies:
"@babel/runtime" "^7.12.5"
"@testing-library/dom" "^8.0.0"
@@ -2316,10 +2328,10 @@ axe-core@^4.3.5:
resolved "https://registry.yarnpkg.com/axe-core/-/axe-core-4.3.5.tgz#78d6911ba317a8262bfee292aeafcc1e04b49cc5"
integrity sha512-WKTW1+xAzhMS5dJsxWkliixlO/PqC4VhmO9T4juNYcaTg9jzWiJsou6m5pxWYGfigWbwzJWeFY6z47a+4neRXA==
-axios@^0.26.0:
- version "0.26.0"
- resolved "https://registry.yarnpkg.com/axios/-/axios-0.26.0.tgz#9a318f1c69ec108f8cd5f3c3d390366635e13928"
- integrity sha512-lKoGLMYtHvFrPVt3r+RBMp9nh34N0M8zEfCWqdWZx6phynIEhQqAdydpyBAAG211zlhX9Rgu08cOamy6XjE5Og==
+axios@^0.26.1:
+ version "0.26.1"
+ resolved "https://registry.yarnpkg.com/axios/-/axios-0.26.1.tgz#1ede41c51fcf51bbbd6fd43669caaa4f0495aaa9"
+ integrity sha512-fPwcX4EvnSHuInCMItEhAGnaSEXRBjtzh9fOtsE6E1G6p7vl7edEeZe11QHf18+6+9gR5PbKV/sGKNaD8YaMeA==
dependencies:
follow-redirects "^1.14.8"
@@ -10952,10 +10964,10 @@ user-home@^2.0.0:
dependencies:
os-homedir "^1.0.0"
-utf-8-validate@^5.0.8:
- version "5.0.8"
- resolved "https://registry.yarnpkg.com/utf-8-validate/-/utf-8-validate-5.0.8.tgz#4a735a61661dbb1c59a0868c397d2fe263f14e58"
- integrity sha512-k4dW/Qja1BYDl2qD4tOMB9PFVha/UJtxTc1cXYOe3WwA/2m0Yn4qB7wLMpJyLJ/7DR0XnTut3HsCSzDT4ZvKgA==
+utf-8-validate@^5.0.9:
+ version "5.0.9"
+ resolved "https://registry.yarnpkg.com/utf-8-validate/-/utf-8-validate-5.0.9.tgz#ba16a822fbeedff1a58918f2a6a6b36387493ea3"
+ integrity sha512-Yek7dAy0v3Kl0orwMlvi7TPtiCNrdfHNd7Gcc/pLq4BLXqfAmd0J7OWMizUQnTTJsyjKn02mU7anqwfmUP4J8Q==
dependencies:
node-gyp-build "^4.3.0"