diff --git a/AUTHORS.md b/AUTHORS.md index 8d3aaf480..5f5985fba 100644 --- a/AUTHORS.md +++ b/AUTHORS.md @@ -5,89 +5,100 @@ Mastodon is available on [GitHub](https://github.com/tootsuite/mastodon) and provided thanks to the work of the following contributors: * [Gargron](https://github.com/Gargron) -* [ykzts](https://github.com/ykzts) * [ThibG](https://github.com/ThibG) -* [akihikodaki](https://github.com/akihikodaki) -* [mjankowski](https://github.com/mjankowski) +* [ykzts](https://github.com/ykzts) * [dependabot[bot]](https://github.com/apps/dependabot) +* [akihikodaki](https://github.com/akihikodaki) +* [dependabot-preview[bot]](https://github.com/apps/dependabot-preview) +* [mjankowski](https://github.com/mjankowski) * [unarist](https://github.com/unarist) -* [m4sk1n](https://github.com/m4sk1n) * [yiskah](https://github.com/yiskah) * [nolanlawson](https://github.com/nolanlawson) * [ysksn](https://github.com/ysksn) -* [sorin-davidoi](https://github.com/sorin-davidoi) * [abcang](https://github.com/abcang) +* [sorin-davidoi](https://github.com/sorin-davidoi) * [lynlynlynx](https://github.com/lynlynlynx) * [mayaeh](https://github.com/mayaeh) +* [m4sk1n](mailto:me@m4sk.in) +* [Marcin Mikołajczak](mailto:me@m4sk.in) +* [Kjwon15](https://github.com/Kjwon15) * [renatolond](https://github.com/renatolond) * [alpaca-tc](https://github.com/alpaca-tc) +* [jeroenpraat](https://github.com/jeroenpraat) * [nclm](https://github.com/nclm) * [ineffyble](https://github.com/ineffyble) -* [jeroenpraat](https://github.com/jeroenpraat) +* [mabkenar](https://github.com/mabkenar) * [blackle](https://github.com/blackle) * [Quent-in](https://github.com/Quent-in) * [JantsoP](https://github.com/JantsoP) -* [Kjwon15](https://github.com/Kjwon15) -* [mabkenar](https://github.com/mabkenar) +* [zunda](https://github.com/zunda) * [nullkal](https://github.com/nullkal) * [yookoala](https://github.com/yookoala) +* [Aditoo17](https://github.com/Aditoo17) +* [Quenty31](https://github.com/Quenty31) +* [marek-lach](https://github.com/marek-lach) * [shuheiktgw](https://github.com/shuheiktgw) * [ashfurrow](https://github.com/ashfurrow) -* [zunda](https://github.com/zunda) -* [Quenty31](https://github.com/Quenty31) * [eramdam](https://github.com/eramdam) +* [noellabo](https://github.com/noellabo) * [takayamaki](https://github.com/takayamaki) +* [danhunsaker](https://github.com/danhunsaker) * [masarakki](https://github.com/masarakki) * [ticky](https://github.com/ticky) -* [danhunsaker](https://github.com/danhunsaker) * [ThisIsMissEm](https://github.com/ThisIsMissEm) * [hcmiya](https://github.com/hcmiya) * [stephenburgess8](https://github.com/stephenburgess8) * [Wonderfall](https://github.com/Wonderfall) * [matteoaquila](https://github.com/matteoaquila) * [yukimochi](https://github.com/yukimochi) +* [palindromordnilap](https://github.com/palindromordnilap) * [rkarabut](https://github.com/rkarabut) * [Artoria2e5](https://github.com/Artoria2e5) * [nightpool](https://github.com/nightpool) * [marrus-sh](https://github.com/marrus-sh) +* [hinaloe](https://github.com/hinaloe) * [krainboltgreene](https://github.com/krainboltgreene) * [pfigel](https://github.com/pfigel) * [Aldarone](https://github.com/Aldarone) * [BoFFire](https://github.com/BoFFire) * [clworld](https://github.com/clworld) +* [MasterGroosha](https://github.com/MasterGroosha) * [dracos](https://github.com/dracos) +* [MaciekBaron](https://github.com/MaciekBaron) * [SerCom_KC](mailto:sercom-kc@users.noreply.github.com) * [Sylvhem](https://github.com/Sylvhem) -* [MasterGroosha](https://github.com/MasterGroosha) +* [MitarashiDango](https://github.com/MitarashiDango) * [JeanGauthier](https://github.com/JeanGauthier) * [kschaper](https://github.com/kschaper) -* [MaciekBaron](https://github.com/MaciekBaron) -* [MitarashiDango](mailto:mitarashidango@users.noreply.github.com) * [beatrix-bitrot](https://github.com/beatrix-bitrot) -* [Aditoo17](https://github.com/Aditoo17) +* [angristan](https://github.com/angristan) * [adbelle](https://github.com/adbelle) * [evanminto](https://github.com/evanminto) * [MightyPork](https://github.com/MightyPork) +* [ashleyhull-versent](mailto:ashley.hull@versent.com.au) * [yhirano55](https://github.com/yhirano55) * [rinsuki](https://github.com/rinsuki) * [camponez](https://github.com/camponez) -* [hinaloe](https://github.com/hinaloe) -* [SerCom-KC](https://github.com/SerCom-KC) +* [SerCom_KC](mailto:szescxz@gmail.com) * [aschmitz](https://github.com/aschmitz) +* [trwnh](https://github.com/trwnh) * [devkral](https://github.com/devkral) * [fpiesche](https://github.com/fpiesche) +* [hugogameiro](https://github.com/hugogameiro) * [gandaro](https://github.com/gandaro) * [johnsudaar](https://github.com/johnsudaar) +* [ariasuni](https://github.com/ariasuni) * [trebmuh](https://github.com/trebmuh) -* [Rakib Hasan](mailto:rmhasan@gmail.com) -* [ashleyhull-versent](https://github.com/ashleyhull-versent) +* [rmhasan](https://github.com/rmhasan) +* [kedamaDQ](https://github.com/kedamaDQ) * [lindwurm](https://github.com/lindwurm) * [victorhck](mailto:victorhck@geeko.site) * [voidsatisfaction](https://github.com/voidsatisfaction) +* [BenLubar](https://github.com/BenLubar) * [hikari-no-yume](https://github.com/hikari-no-yume) -* [angristan](https://github.com/angristan) * [seefood](https://github.com/seefood) * [jackjennings](https://github.com/jackjennings) +* [koyuawsmbrtn](https://github.com/koyuawsmbrtn) * [spla](mailto:spla@mastodont.cat) * [expenses](https://github.com/expenses) * [walf443](https://github.com/walf443) @@ -95,18 +106,17 @@ and provided thanks to the work of the following contributors: * [mistydemeo](https://github.com/mistydemeo) * [dunn](https://github.com/dunn) * [xqus](https://github.com/xqus) -* [hugogameiro](https://github.com/hugogameiro) -* [ariasuni](https://github.com/ariasuni) * [pfm-eyesightjp](https://github.com/pfm-eyesightjp) * [fakenine](https://github.com/fakenine) +* [Shleeble](https://github.com/Shleeble) * [tsuwatch](https://github.com/tsuwatch) * [victorhck](https://github.com/victorhck) -* [kedamaDQ](https://github.com/kedamaDQ) +* [mkljczk](https://github.com/mkljczk) +* [manuelviens](https://github.com/manuelviens) * [puckipedia](https://github.com/puckipedia) -* [trwnh](https://github.com/trwnh) * [fvh-P](https://github.com/fvh-P) +* [rtucker](https://github.com/rtucker) * [Anna e só](mailto:contraexemplos@gmail.com) -* [BenLubar](https://github.com/BenLubar) * [kazu9su](https://github.com/kazu9su) * [Komic](https://github.com/Komic) * [lmorchard](https://github.com/lmorchard) @@ -119,6 +129,7 @@ and provided thanks to the work of the following contributors: * [goofy-bz](mailto:goofy@babelzilla.org) * [kadiix](https://github.com/kadiix) * [kodacs](https://github.com/kodacs) +* [marcin mikołajczak](mailto:me@m4sk.in) * [JMendyk](https://github.com/JMendyk) * [KScl](https://github.com/KScl) * [sterdev](https://github.com/sterdev) @@ -129,30 +140,31 @@ and provided thanks to the work of the following contributors: * [northerner](https://github.com/northerner) * [fhemberger](https://github.com/fhemberger) * [greysteil](https://github.com/greysteil) -* [hensmith](https://github.com/hensmith) +* [hencatsmith](https://github.com/hencatsmith) * [d6rkaiz](https://github.com/d6rkaiz) * [Reverite](https://github.com/Reverite) * [JohnD28](https://github.com/JohnD28) * [znz](https://github.com/znz) -* [marek-lach](https://github.com/marek-lach) * [Naouak](https://github.com/Naouak) * [pawelngei](https://github.com/pawelngei) -* [rtucker](https://github.com/rtucker) * [reneklacan](https://github.com/reneklacan) * [ekiru](https://github.com/ekiru) -* [noellabo](https://github.com/noellabo) * [tcitworld](https://github.com/tcitworld) * [geta6](https://github.com/geta6) * [happycoloredbanana](https://github.com/happycoloredbanana) * [leopku](https://github.com/leopku) * [SansPseudoFix](https://github.com/SansPseudoFix) +* [salvadorpla](https://github.com/salvadorpla) * [tomfhowe](https://github.com/tomfhowe) * [noraworld](https://github.com/noraworld) * [theboss](https://github.com/theboss) +* [nzws](https://github.com/nzws) * [178inaba](https://github.com/178inaba) +* [xgess](https://github.com/xgess) * [alyssais](https://github.com/alyssais) -* [hiphref](https://github.com/hiphref) +* [aablinov](https://github.com/aablinov) * [stalker314314](https://github.com/stalker314314) +* [cutls](https://github.com/cutls) * [huertanix](https://github.com/huertanix) * [genesixx](https://github.com/genesixx) * [halkeye](https://github.com/halkeye) @@ -162,21 +174,24 @@ and provided thanks to the work of the following contributors: * [kmichl](https://github.com/kmichl) * [Kurtis Rainbolt-Greene](mailto:me@kurtisrainboltgreene.name) * [saper](https://github.com/saper) +* [Dar13](https://github.com/Dar13) * [nevillepark](https://github.com/nevillepark) * [ornithocoder](https://github.com/ornithocoder) +* [pwoolcoc](https://github.com/pwoolcoc) * [pierreozoux](https://github.com/pierreozoux) * [qguv](https://github.com/qguv) * [Ram Lmn](mailto:ramlmn@users.noreply.github.com) -* [sascha-sl](https://github.com/sascha-sl) +* [aurelia-sl](https://github.com/aurelia-sl) * [harukasan](https://github.com/harukasan) * [stamak](https://github.com/stamak) -* [Technowix](mailto:technowix@users.noreply.github.com) +* [Technowix](https://github.com/Technowix) * [Zoeille](https://github.com/Zoeille) * [Thor Harald Johansen](mailto:thj@thj.no) * [0x70b1a5](https://github.com/0x70b1a5) * [gled-rs](https://github.com/gled-rs) * [Valentin_NC](mailto:valentin.ouvrard@nautile.sarl) * [R0ckweb](https://github.com/R0ckweb) +* [unasuke](https://github.com/unasuke) * [caasi](https://github.com/caasi) * [chr-1x](https://github.com/chr-1x) * [esetomo](https://github.com/esetomo) @@ -184,8 +199,9 @@ and provided thanks to the work of the following contributors: * [hoodie](mailto:hoodiekitten@outlook.com) * [luzi82](https://github.com/luzi82) * [duxovni](https://github.com/duxovni) +* [slice](https://github.com/slice) * [tmm576](https://github.com/tmm576) -* [unsmell](https://github.com/unsmell) +* [unsmell](mailto:unsmell@users.noreply.github.com) * [valerauko](https://github.com/valerauko) * [chriswmartin](https://github.com/chriswmartin) * [vahnj](https://github.com/vahnj) @@ -193,21 +209,25 @@ and provided thanks to the work of the following contributors: * [AndreLewin](https://github.com/AndreLewin) * [0xflotus](https://github.com/0xflotus) * [redtachyons](https://github.com/redtachyons) +* [acid-chicken](https://github.com/acid-chicken) * [thurloat](https://github.com/thurloat) * [aaribaud](https://github.com/aaribaud) * [pointlessone](https://github.com/pointlessone) * [Andrew](mailto:andrewlchronister@gmail.com) +* [aurelien-reeves](https://github.com/aurelien-reeves) +* [AnaGelez](https://github.com/AnaGelez) * [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) -* [foxsan48](https://github.com/foxsan48) +* [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) +* [dariusk](https://github.com/dariusk) * [DavidLibeau](https://github.com/DavidLibeau) * [ddevault](https://github.com/ddevault) * [Fjoerfoks](https://github.com/Fjoerfoks) @@ -216,6 +236,7 @@ and provided thanks to the work of the following contributors: * [Gomasy](https://github.com/Gomasy) * [unstabler](https://github.com/unstabler) * [potato4d](https://github.com/potato4d) +* [Hanage999](https://github.com/Hanage999) * [h-izumi](https://github.com/h-izumi) * [ErikXXon](https://github.com/ErikXXon) * [ian-kelling](https://github.com/ian-kelling) @@ -231,21 +252,23 @@ and provided thanks to the work of the following contributors: * [Kaylee](mailto:kaylee@codethat.sucks) * [Kazhnuz](https://github.com/Kazhnuz) * [connyduck](https://github.com/connyduck) -* [Lindsey Bieda](mailto:lindseyb@users.noreply.github.com) +* [LindseyB](https://github.com/LindseyB) * [Lorenz Diener](mailto:halcyon@icosahedron.website) * [alimony](https://github.com/alimony) * [mig5](https://github.com/mig5) * [moritzheiber](https://github.com/moritzheiber) * [ndarville](https://github.com/ndarville) * [Abzol](https://github.com/Abzol) -* [pwoolcoc](https://github.com/pwoolcoc) +* [PatOnTheBack](https://github.com/PatOnTheBack) * [xPaw](https://github.com/xPaw) * [petzah](https://github.com/petzah) * [ignisf](https://github.com/ignisf) * [raymestalez](https://github.com/raymestalez) * [remram44](https://github.com/remram44) * [sts10](https://github.com/sts10) +* [SuperSandro2000](https://github.com/SuperSandro2000) * [u1-liquid](https://github.com/u1-liquid) +* [rosylilly](https://github.com/rosylilly) * [sim6](https://github.com/sim6) * [Sir-Boops](https://github.com/Sir-Boops) * [stemid](https://github.com/stemid) @@ -270,6 +293,7 @@ and provided thanks to the work of the following contributors: * [cpsdqs](https://github.com/cpsdqs) * [barzamin](https://github.com/barzamin) * [fhalna](https://github.com/fhalna) +* [highemerly](https://github.com/highemerly) * [haoyayoi](https://github.com/haoyayoi) * [ik11235](https://github.com/ik11235) * [kawax](https://github.com/kawax) @@ -279,6 +303,7 @@ and provided thanks to the work of the following contributors: * [mecab](https://github.com/mecab) * [nicobz25](https://github.com/nicobz25) * [oliverkeeble](https://github.com/oliverkeeble) +* [partev](https://github.com/partev) * [pinfort](https://github.com/pinfort) * [rbaumert](https://github.com/rbaumert) * [rhoio](https://github.com/rhoio) @@ -287,19 +312,17 @@ and provided thanks to the work of the following contributors: * [vjackson725](https://github.com/vjackson725) * [wxcafe](https://github.com/wxcafe) * [新都心(Neet Shin)](mailto:nucx@dio-vox.com) +* [clarfon](https://github.com/clarfon) * [cygnan](https://github.com/cygnan) * [Awea](https://github.com/Awea) * [halcy](https://github.com/halcy) -* [naaaaaaaaaaaf](https://github.com/naaaaaaaaaaaf) * [8398a7](https://github.com/8398a7) * [857b](https://github.com/857b) * [insom](https://github.com/insom) * [tachyons](https://github.com/tachyons) -* [acid-chicken](https://github.com/acid-chicken) * [Esteth](https://github.com/Esteth) * [unascribed](https://github.com/unascribed) * [Aguay-val](https://github.com/Aguay-val) -* [Akihiko Odaki](mailto:nekomanma@pixiv.co.jp) * [knu](https://github.com/knu) * [h3poteto](https://github.com/h3poteto) * [unleashed](https://github.com/unleashed) @@ -307,8 +330,8 @@ and provided thanks to the work of the following contributors: * [console-cowboy](https://github.com/console-cowboy) * [Alkarex](https://github.com/Alkarex) * [a2](https://github.com/a2) +* [alfiedotwtf](https://github.com/alfiedotwtf) * [0xa](https://github.com/0xa) -* [palindromordnilap](https://github.com/palindromordnilap) * [virtualpain](https://github.com/virtualpain) * [sapphirus](https://github.com/sapphirus) * [amandavisconti](https://github.com/amandavisconti) @@ -320,10 +343,9 @@ and provided thanks to the work of the following contributors: * [contraexemplo](https://github.com/contraexemplo) * [abackstrom](https://github.com/abackstrom) * [armandfardeau](https://github.com/armandfardeau) +* [raboof](https://github.com/raboof) * [jumbosushi](https://github.com/jumbosushi) -* [aurelien-reeves](https://github.com/aurelien-reeves) * [ayumin](https://github.com/ayumin) -* [BaptisteGelez](https://github.com/BaptisteGelez) * [bzg](https://github.com/bzg) * [benediktg](https://github.com/benediktg) * [blakebarnett](https://github.com/blakebarnett) @@ -337,15 +359,15 @@ and provided thanks to the work of the following contributors: * [DoubleMalt](https://github.com/DoubleMalt) * [Moosh-be](https://github.com/Moosh-be) * [Motoma](https://github.com/Motoma) -* [chriswk](https://github.com/chriswk) +* [Christopher Kolstad](mailto:christopher.kolstad@finn.no) * [csu](https://github.com/csu) -* [clarfon](https://github.com/clarfon) * [kklleemm](https://github.com/kklleemm) * [colindean](https://github.com/colindean) * [dachinat](https://github.com/dachinat) * [multiple-creatures](https://github.com/multiple-creatures) * [watilde](https://github.com/watilde) * [daprice](https://github.com/daprice) +* [da2x](https://github.com/da2x) * [dar5hak](https://github.com/dar5hak) * [kant](https://github.com/kant) * [maxolasersquad](https://github.com/maxolasersquad) @@ -354,7 +376,7 @@ and provided thanks to the work of the following contributors: * [davefp](https://github.com/davefp) * [yipdw](https://github.com/yipdw) * [debanshuk](https://github.com/debanshuk) -* [Derek Lewis](mailto:derekcecillewis@gmail.com) +* [DerekNonGeneric](https://github.com/DerekNonGeneric) * [dblandin](https://github.com/dblandin) * [Drew Gates](mailto:aranaur@users.noreply.github.com) * [dtschust](https://github.com/dtschust) @@ -366,11 +388,13 @@ and provided thanks to the work of the following contributors: * [ericblade](https://github.com/ericblade) * [mikoim](https://github.com/mikoim) * [espenronnevik](https://github.com/espenronnevik) +* [fabianonline](https://github.com/fabianonline) * [Finariel](https://github.com/Finariel) * [siuying](https://github.com/siuying) * [zoc](https://github.com/zoc) * [fwenzel](https://github.com/fwenzel) * [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) @@ -386,17 +410,19 @@ and provided thanks to the work of the following contributors: * [suzukaze](https://github.com/suzukaze) * [Hiromi-Kai](https://github.com/Hiromi-Kai) * [hishamhm](https://github.com/hishamhm) +* [Slaynash](https://github.com/Slaynash) * [musashino205](https://github.com/musashino205) * [iwaim](https://github.com/iwaim) * [valrus](https://github.com/valrus) * [IMcD23](https://github.com/IMcD23) * [yi0713](https://github.com/yi0713) * [iblech](https://github.com/iblech) -* [usbsnowcrash](https://github.com/usbsnowcrash) +* [J Yeary](mailto:usbsnowcrash@users.noreply.github.com) * [jack-michaud](https://github.com/jack-michaud) * [Floppy](https://github.com/Floppy) * [loomchild](https://github.com/loomchild) * [jenkr55](https://github.com/jenkr55) +* [hyenagirl64](https://github.com/hyenagirl64) * [press5](https://github.com/press5) * [TrollDecker](https://github.com/TrollDecker) * [jmontane](https://github.com/jmontane) @@ -406,17 +432,17 @@ and provided thanks to the work of the following contributors: * [joshuap](https://github.com/joshuap) * [Tiwy57](https://github.com/Tiwy57) * [xuv](https://github.com/xuv) -* [June Sallou](mailto:jnsll@users.noreply.github.com) +* [Jnsll](https://github.com/Jnsll) * [j0k3r](https://github.com/j0k3r) * [KEINOS](https://github.com/KEINOS) * [futoase](https://github.com/futoase) -* [Pneumaticat](https://github.com/Pneumaticat) +* [pot8to](https://github.com/pot8to) * [Kit Redgrave](mailto:qwertyitis@gmail.com) * [Knut Erik](mailto:abjectio@users.noreply.github.com) * [mkody](https://github.com/mkody) * [k0ta0uchi](https://github.com/k0ta0uchi) * [KrzysiekJ](https://github.com/KrzysiekJ) -* [leowzukw](https://github.com/leowzukw) +* [Leo Wzukw](mailto:leowzukw@users.noreply.github.com) * [Tak](https://github.com/Tak) * [cacheflow](https://github.com/cacheflow) * [ldidry](https://github.com/ldidry) @@ -424,6 +450,7 @@ and provided thanks to the work of the following contributors: * [lfuelling](https://github.com/lfuelling) * [Grabacr07](https://github.com/Grabacr07) * [mistermantas](https://github.com/mistermantas) +* [MareenaKunjachan](https://github.com/MareenaKunjachan) * [mareklach](https://github.com/mareklach) * [wirehack7](https://github.com/wirehack7) * [martymcguire](https://github.com/martymcguire) @@ -431,50 +458,53 @@ and provided thanks to the work of the following contributors: * [otsune](https://github.com/otsune) * [mbugowski](https://github.com/mbugowski) * [Mathias B](mailto:10813340+mathias-b@users.noreply.github.com) +* [madmath03](https://github.com/madmath03) * [matt-auckland](https://github.com/matt-auckland) * [webroo](https://github.com/webroo) -* [matthiasbeyer](https://github.com/matthiasbeyer) -* [mattjmattj](https://github.com/mattjmattj) -* [mtparet](https://github.com/mtparet) -* [maximeborges](https://github.com/maximeborges) -* [minacle](https://github.com/minacle) -* [michaeljdeeb](https://github.com/michaeljdeeb) -* [Themimitoof](https://github.com/Themimitoof) -* [cyweo](https://github.com/cyweo) +* [Matthias Beyer](mailto:mail@beyermatthias.de) +* [Matthias Jouan](mailto:matthias.jouan@gmail.com) +* [Matthieu Paret](mailto:matthieuparet69@gmail.com) +* [Maxime BORGES](mailto:maxime.borges@gmail.com) +* [Mayu Laierlence](mailto:minacle@live.com) +* [Michael Deeb](mailto:michaeldeeb@me.com) +* [Michael Vieira](mailto:dtox94@gmail.com) +* [Michel](mailto:michel@cyweo.com) * [Midgard](mailto:m1dgard@users.noreply.github.com) -* [mike-burns](https://github.com/mike-burns) -* [verymilan](https://github.com/verymilan) -* [milmazz](https://github.com/milmazz) -* [premist](https://github.com/premist) -* [Mnkai](https://github.com/Mnkai) -* [mitchhentges](https://github.com/mitchhentges) -* [mouse-reeve](https://github.com/mouse-reeve) -* [Mozinet-fr](https://github.com/Mozinet-fr) -* [lae](https://github.com/lae) -* [nosada](https://github.com/nosada) -* [Nanamachi](https://github.com/Nanamachi) -* [orinthe](https://github.com/orinthe) -* [NecroTechno](https://github.com/NecroTechno) -* [Dar13](https://github.com/Dar13) -* [ngerakines](https://github.com/ngerakines) -* [vonneudeck](https://github.com/vonneudeck) -* [Ninetailed](https://github.com/Ninetailed) -* [k24](https://github.com/k24) -* [noiob](https://github.com/noiob) -* [kwaio](https://github.com/kwaio) -* [norayr](https://github.com/norayr) -* [joyeusenoelle](https://github.com/joyeusenoelle) -* [OlivierNicole](https://github.com/OlivierNicole) -* [noppa](https://github.com/noppa) -* [Otakan951](https://github.com/Otakan951) -* [fahy](https://github.com/fahy) +* [Mike Burns](mailto:mburns@thoughtbot.com) +* [Milan](mailto:me@petabyteboy.de) +* [Milan*](mailto:tchncs@vivaldi.net) +* [Milton Mazzarri](mailto:milmazz@gmail.com) +* [Minku Lee](mailto:premist@me.com) +* [Minori Hiraoka](mailto:mnkai@users.noreply.github.com) +* [Mitchell Hentges](mailto:mitch9654@gmail.com) +* [Mostafa Ahangarha](mailto:ahangarha@users.noreply.github.com) +* [Mouse Reeve](mailto:mousereeve@riseup.net) +* [Mozinet](mailto:mozinet-fr@users.noreply.github.com) +* [Musee U](mailto:lae@users.noreply.github.com) +* [NOGISAKA Sadata](mailto:ngsksdt@gmail.com) +* [Naf](mailto:uenok.htc@gmail.com) +* [Nanamachi](mailto:town7.haruki@gmail.com) +* [Nathaniel Ekoniak](mailto:nekoniak@ennate.tech) +* [NecroTechno](mailto:necrotechno@riseup.net) +* [Nick Gerakines](mailto:nick@gerakines.net) +* [Nicolai von Neudeck](mailto:nicolai@vonneudeck.com) +* [Ninetailed](mailto:ninetailed@gmail.com) +* [Nishi, Keisuke](mailto:k24@users.noreply.github.com) +* [Noiob](mailto:noiob@users.noreply.github.com) +* [Nope Nope](mailto:hireme@kwaio.ninja) +* [Norayr Chilingarian](mailto:norayr@arnet.am) +* [Noëlle Anthony](mailto:noelle.d.anthony@gmail.com) +* [N氏](mailto:uenok.htc@gmail.com) +* [Olivier Nicole](mailto:olivierthnicole@gmail.com) +* [Oskari Noppa](mailto:noppa@users.noreply.github.com) +* [Otakan](mailto:otakan951@gmail.com) +* [Padraig Fahy](mailto:tech@padraigfahy.com) * [PatrickRWells](mailto:32802366+patrickrwells@users.noreply.github.com) * [Paul](mailto:naydex.mc+github@gmail.com) * [Pete Keen](mailto:pete@petekeen.net) * [Pierre-Morgan Gate](mailto:pgate@users.noreply.github.com) * [Ratmir Karabut](mailto:rkarabut@sfmodern.ru) * [Reto Kromer](mailto:retokromer@users.noreply.github.com) -* [Rey Tucker](mailto:git@reytucker.us) * [Rob Watson](mailto:rfwatson@users.noreply.github.com) * [Ryan Freebern](mailto:ryan@freebern.org) * [Ryan Wade](mailto:ryan.wade@protonmail.com) @@ -482,6 +512,7 @@ and provided thanks to the work of the following contributors: * [S.H](mailto:gamelinks007@gmail.com) * [Sadiq Saif](mailto:staticsafe@users.noreply.github.com) * [Sam Hewitt](mailto:hewittsamuel@gmail.com) +* [Sasha Sorokin](mailto:dafri.nochiterov8@gmail.com) * [Satoshi KOJIMA](mailto:skoji@mac.com) * [ScienJus](mailto:i@scienjus.com) * [Scott Larkin](mailto:scott@codeclimate.com) @@ -492,12 +523,10 @@ and provided thanks to the work of the following contributors: * [Shaun Gillies](mailto:me@shaungillies.net) * [Shin Adachi](mailto:shn@glucose.jp) * [Shin Kojima](mailto:shin@kojima.org) -* [Sho Kusano](mailto:rosylilly@aduca.org) * [Shouko Yu](mailto:imshouko@gmail.com) * [Sina Mashek](mailto:sina@mashek.xyz) * [Soshi Kato](mailto:mail@sossii.com) * [Spanky](mailto:2788886+spankyworks@users.noreply.github.com) -* [Stanislas](mailto:angristan@pm.me) * [StefOfficiel](mailto:pichard.stephane@free.fr) * [Steven Tappert](mailto:admin@dark-it.net) * [Svetlozar Todorov](mailto:svetlik@users.noreply.github.com) @@ -506,6 +535,7 @@ and provided thanks to the work of the following contributors: * [Takayoshi Nishida](mailto:takayoshi.nishida@gmail.com) * [Takayuki KUSANO](mailto:github@tkusano.jp) * [TakesxiSximada](mailto:takesxi.sximada@gmail.com) +* [Tao Bror Bojlén](mailto:brortao@users.noreply.github.com) * [TheInventrix](mailto:theinventrix@users.noreply.github.com) * [Thomas Alberola](mailto:thomas@needacoffee.fr) * [Toby Deshane](mailto:fortyseven@users.noreply.github.com) @@ -515,10 +545,12 @@ and provided thanks to the work of the following contributors: * [Treyssat-Vincent Nino](mailto:treyssatvincent@users.noreply.github.com) * [Udo Kramer](mailto:optik@fluffel.io) * [Una](mailto:una@unascribed.com) +* [Ushitora Anqou](mailto:ushitora@anqou.net) * [Ushitora Anqou](mailto:ushitora_anqou@yahoo.co.jp) * [Valentin Lorentz](mailto:progval+git@progval.net) * [Vladimir Mincev](mailto:vladimir@canicinteractive.com) * [Waldir Pimenta](mailto:waldyrious@gmail.com) +* [Wenceslao Páez Chávez](mailto:wcpaez@gmail.com) * [Wesley Ellis](mailto:tahnok@gmail.com) * [Wiktor](mailto:wiktor@metacode.biz) * [Wonderfall](mailto:wonderfall@schrodinger.io) @@ -529,6 +561,7 @@ and provided thanks to the work of the following contributors: * [YaQ](mailto:i_k_o_m_a_7@yahoo.co.jp) * [Yanaken](mailto:yanakend@gmail.com) * [Yann Klis](mailto:yann.klis@gmail.com) +* [Yağızhan](mailto:35808275+yagizhan49@users.noreply.github.com) * [Yeechan Lu](mailto:wz.bluesnow@gmail.com) * [Yusuke Abe](mailto:moonset20@gmail.com) * [Zachary Spector](mailto:logicaldash@gmail.com) @@ -542,6 +575,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) +* [dxwc](mailto:dxwc@users.noreply.github.com) * [evilny0](mailto:evilny0@moomoocamp.net) * [febrezo](mailto:felixbrezo@gmail.com) * [fsubal](mailto:fsubal@users.noreply.github.com) @@ -550,6 +584,7 @@ and provided thanks to the work of the following contributors: * [gol-cha](mailto:info@mevo.xyz) * [hakoai](mailto:hk--76@qa2.so-net.ne.jp) * [haosbvnker](mailto:github@chaosbunker.com) +* [ichi_i](mailto:51489410+ichi-i@users.noreply.github.com) * [isati](mailto:phil@juchnowi.cz) * [jacob](mailto:jacobherringtondeveloper@gmail.com) * [jenn kaplan](mailto:me@jkap.io) @@ -561,7 +596,6 @@ and provided thanks to the work of the following contributors: * [karlyeurl](mailto:karl.yeurl@gmail.com) * [kedama](mailto:32974885+kedamadq@users.noreply.github.com) * [kodai](mailto:shirafuta.kodai@gmail.com) -* [koyu](mailto:me@koyu.space) * [kuro5hin](mailto:rusty@kuro5hin.org) * [luzpaz](mailto:luzpaz@users.noreply.github.com) * [maxypy](mailto:maxime@mpigou.fr) @@ -573,6 +607,7 @@ 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) +* [nzws](mailto:git-yuzu@svk.jp) * [rch850](mailto:rich850@gmail.com) * [roikale](mailto:roikale@users.noreply.github.com) * [rysiekpl](mailto:rysiek@hackerspace.pl) @@ -585,6 +620,8 @@ and provided thanks to the work of the following contributors: * [tateisu](mailto:tateisu@gmail.com) * [tmyt](mailto:shigure@refy.net) * [trevDev()](mailto:trev@trevdev.ca) +* [tsia](mailto:github@tsia.de) +* [umonaca](mailto:53662960+umonaca@users.noreply.github.com) * [utam0k](mailto:k0ma@utam0k.jp) * [vpzomtrrfrt](mailto:vpzomtrrfrt@gmail.com) * [walfie](mailto:walfington@gmail.com) @@ -593,9 +630,10 @@ and provided thanks to the work of the following contributors: * [yoshipc](mailto:yoooo@yoshipc.net) * [Özcan Zafer AYAN](mailto:ozcanzaferayan@gmail.com) * [ばん](mailto:detteiu0321@gmail.com) -* [みたらしだんご](mailto:mitarashidango@users.noreply.github.com) +* [ふるふる](mailto:frfs@users.noreply.github.com) * [りんすき](mailto:6533808+rinsuki@users.noreply.github.com) * [ヨイツの賢狼ホロ | 3rd style](mailto:horo@yoitsu.moe) +* [唐宗勛](mailto:tangzongxun@hotmail.com) * [猫吸血鬼ディフリス / 猫ロキP](mailto:deflis@gmail.com) * [艮 鮟鱇](mailto:ushitora_anqou@yahoo.co.jp) * [西小倉宏信](mailto:nishiko@mindia.jp) @@ -607,338 +645,122 @@ This document is provided for informational purposes only. Since it is only upda Following people have contributed to translation of Mastodon: -- **Albanian** - - Besnik Bleta - - Aditoo -- **Arabic** - - ButterflyOfFire - - Aditoo - - Amrz0 -- **Asturian** - - ButterflyOfFire - - Enol P. - - Aditoo -- **Basque** - - Osoitz - - Aditoo - - Aitzol - - ButterflyOfFire - - Peru Iparragirre - - Gorka Azkarate -- **Bengali** - - dxwc -- **Bulgarian** - - ButterflyOfFire - - Aditoo -- **Catalan** - - spla - - Aditoo - - ButterflyOfFire - - Joan Montané - - Jose Luis -- **Chinese (Hong Kong)** - - ButterflyOfFire - - Luzi Leung - - Aditoo -- **Chinese (Simplified)** - - Allen Zhong - - ButterflyOfFire - - SerCom_KC - - martialarts - - Kaitian Xie - - Aditoo - - pan93412 -- **Chinese (Traditional)** - - Aditoo - - ButterflyOfFire - - James58899 - - pan93412 - - S1ttidoe477 - - SHA265 - - Jeff Huang -- **Corsican** - - Alix D. R. - - Aditoo - - ButterflyOfFire -- **Croatian** - - ButterflyOfFire - - Aditoo -- **Czech** - - Aditoo - - Marek Ľach - - ButterflyOfFire -- **Danish** - - Einhjeriar - - Rasmus Sæderup - - Aditoo - - ButterflyOfFire -- **Dutch** - - Albakham - - ButterflyOfFire - - jeroenpraat - - rscmbbng - - Aditoo - - Jelv -- **English** - - ButterflyOfFire - - Renato "Lond" Cerqueira -- **English (United Kingdom)** - - Albakham -- **Esperanto** - - Aditoo - - ButterflyOfFire - - Becci Cat - - Jeong Arm - - Mélanie Chauvel - - Vanege - - Martin Bodin - - tuxayo/Victor Grousset -- **Finnish** - - ButterflyOfFire - - Mikko Poussu - - Taru Luojola - - S Heija - - Aditoo - - Jonne Arjoranta -- **French** - - Albakham - - Alix D. R. - - ButterflyOfFire - - codl - - Leia - - Alda Marteau-Hardi - - Mélanie Chauvel - - Paul Marques Mota - - azenet - - Olivier Humbert - - Aditoo - - Jonathan Chan - - Letiteuf55 - - Baptiste Jonglez - - goofy-mdn - - Jean-Baptiste Holcroft - - Technowix - - Martin Bodin - - Théodore - - Thibaut Girka - - Franck Paul - - Sylvhem -- **Galician** - - ButterflyOfFire - - Xose M. - - Aditoo - - manequim -- **Georgian** - - ButterflyOfFire - - Aditoo -- **German** - - Aditoo - - ButterflyOfFire - - Daniel - - averageunicorn - - Koyu Berteon - - larsreineke - - koyu - - Austin Jones - - lilo - - Benedikt Geißler - - ePirat - - Eugen Rochko - - Weblate Admin - - Patrick Figel -- **Greek** - - Dimitris Maroulidis - - Antonis - - Aditoo - - ButterflyOfFire - - Konstantinos Grevenitis -- **Hebrew** - - ButterflyOfFire - - Aditoo - - Ira - - Yaron Shahrabani -- **Hungarian** - - ButterflyOfFire - - Adam Paszternak - - Aditoo - - Tibike Miklós -- **Ido** - - ButterflyOfFire - - Aditoo -- **Indonesian** - - afachri - - ButterflyOfFire - - Dito Kurnia Pratama - - Eirworks - - Aditoo - - Alfiana Sibuea - - se7entime -- **Irish** - - Albakham - - Kevin Houlihan -- **Italian** - - Alessandro Levati - - Albakham - - ButterflyOfFire - - Marcin Mikołajczak - - Aditoo - - Giuseppe Pignataro - - Stefano -- **Japanese** - - Hinaloe - - 小鳥遊まりあ - - mayaeh - - osapon - - 森の子リスのミーコの大冒険 - - Kumasun Morino - - Yamagishi Kazutoshi - - Aditoo - - ButterflyOfFire - - Jeong Arm - - unarist -- **Kazakh** - - arshat - - Aditoo -- **Korean** - - Aditoo - - Jeong Arm - - ButterflyOfFire - - Minori Hiraoka - - Yamagishi Kazutoshi -- **Lithuanian** - - Sarunas Medeikis -- **Malay** - - Muhammad Nur Hidayat (MNH48) - - Aditoo - - ButterflyOfFire -- **Norwegian (old code)** - - ButterflyOfFire - - Espen Rønnevik - - Aditoo - - Tale -- **Occitan** - - Aditoo - - ButterflyOfFire - - Quenti2 - - Quentí - - Maxenç -- **Persian** - - Masoud Abkenar - - Aditoo - - ButterflyOfFire -- **Polish** - - Aditoo - - Albakham - - ButterflyOfFire - - Stasiek Michalski - - Marcin Mikołajczak - - Jakub Mendyk - - Marek Ľach - - krkk -- **Portuguese** - - Albakham - - João Pinheiro - - manequim - - Aditoo - - ButterflyOfFire - - Hugo Gameiro -- **Portuguese (Brazil)** - - Aditoo - - Albakham - - Anna e só - - Renato "Lond" Cerqueira - - André Andrade - - ButterflyOfFire -- **Romanian** - - adrianbblk - - ButterflyOfFire - - Aditoo -- **Russian** - - Albakham - - ButterflyOfFire - - Evgeny Petrov - - Aditoo - - Павел Гастелло - - Andrew Zyabin - - Yaron Shahrabani -- **Serbian** - - Branko Kokanovic - - Burekz Finezt - - Aditoo - - ButterflyOfFire -- **Serbian (latin)** - - ButterflyOfFire - - Aditoo -- **Slovak** - - Aditoo - - ButterflyOfFire - - Ivan Pleva - - Marek Ľach - - Peter -- **Slovenian** - - Kristijan Tkalec - - Aditoo - - ButterflyOfFire -- **Spanish** - - Albakham - - ButterflyOfFire - - Carlos Mondragon - - Antón López - - Max Winkler - - Pablo de la Concepción Sanz - - Sergio Soriano - - Angeles Broullón - - Lothar Wolf - - Aditoo - - David Charte - - Emmanuel -- **Swedish** - - ButterflyOfFire - - Isak Holmström - - Shellkr - - Aditoo - - Elias Mårtenson - - Stefan Midjich - - Tim Stahel - - Jonas Hultén -- **Telugu** - - avndp - - Ranjith Tellakula - - Aditoo - - ButterflyOfFire - - Joseph Nuthalapati -- **Thai** - - ButterflyOfFire - - parnikkapore - - Thai Localization - - Aditoo -- **Turkish** - - Ali Demirtas - - ButterflyOfFire - - Aditoo -- **Ukrainian** - - alexcleac - - ButterflyOfFire - - Aditoo - - Ivan Verchenko -- **Welsh** - - carl morris - - Jaz-Michael King - - Owain Rhys Lewis - - Rhoslyn Prys - - Aditoo - - ButterflyOfFire - - Renato "Lond" Cerqueira - - Albakham - - Kevin Beynon -- **Armenian** - - Aditoo - - ButterflyOfFire -- **Latvian** - - Aditoo - - ButterflyOfFire - - Maigonis -- **Tamil** - - Aditoo - - ButterflyOfFire - - Prasanna Venkadesh +- Zoltán Gera (*Hungarian*) +- Kristijan Tkalec (*Slovenian*) +- Evert Prants (*Estonian*) +- borys_sh (*Ukrainian*) +- ButterflyOfFire (*Arabic; French*) +- Osoitz (*Basque*) +- oɹʇuʞ (*Spanish, Argentina*) +- koyu (*German*) +- Jeroen (*Dutch*) +- Muha Aliss (*Turkish*) +- 唐宗勛 (*Chinese Simplified*) +- Jeong Arm (*Korean; Esperanto; Japanese*) +- Oguz Ersen (*Turkish*) +- spla (*Catalan*) +- Ramdziana F Y (*Indonesian*) +- Aditoo17 (*Czech*) +- Xosé M. (*Galician*) +- Roboron (*Spanish*) +- Alix Rossi (*Corsican; French*) +- Maya Minatsuki (*Japanese*) +- Masoud Abkenar (*Persian*) +- Thai Localization (*Thai*) +- Marek Ľach (*Slovak; Polish*) +- d5Ziif3K (*Ukrainian*) +- lamnatos (*Greek*) +- Emyn Nant Nefydd (*Welsh*) +- Diluns (*Occitan*) +- atarashiako (*Chinese Simplified*) +- 101010 (*Polish*) +- Yi-Jyun Pan (*Chinese Traditional*) +- silkevicious (*Italian*) +- FédiQuébec (*French*) +- Jaz-Michael King (*Welsh*) +- christalleras (*Norwegian Nynorsk*) +- tykayn (*French*) +- Alessandro Levati (*Italian*) +- carolinagiorno (*Portuguese, Brazilian*) +- taoxvx (*Danish*) +- sabri (*Spanish*) +- Sasha Sorokin (*Russian*) +- shioko (*Chinese Simplified*) +- Evgeny Petrov (*Russian*) +- ariasuni (*French; Esperanto*) +- Tiago Epifânio (*Portuguese*) +- dxwc (*Bengali*) +- liffon (*Swedish*) +- Vanege (*Esperanto*) +- Johan Schiff (*Swedish*) +- kat (*Ukrainian; Russian*) +- oti4500 (*Hungarian; Ukrainian*) +- Juan José Salvador Piedra (*Spanish*) +- diazepan (*Spanish*) +- SHeija (*Finnish*) +- Jack R (*Spanish*) +- Saederup92 (*Danish*) +- Stasiek Michalski (*Polish*) +- Dewi (*Breton; French*) +- cybergene (*Japanese*) +- AW Unad (*Indonesian*) +- Andrea Lo Iacono (*Italian*) +- Ray (*Spanish*) +- Unmual (*Spanish*) +- Ryo (*Korean*) +- juanda097 (*Spanish*) +- Anunnakey (*Macedonian*) +- Cutls (*Japanese*) +- erikstl (*Esperanto*) +- ruine (*Japanese*) +- MadeInSteak (*Finnish*) +- Sokratis Alichanidis (*Greek*) +- dragnucs2 (*Arabic*) +- frumble (*German*) +- Rikard Linde (*Swedish*) +- PPNplus (*Thai*) +- arethsu (*Swedish*) +- EPEMA YT (*German*) +- Rhys Harrison (*Esperanto*) +- KEINOS (*Japanese*) +- filippodb (*Italian*) +- JzshAC (*Chinese Simplified*) +- Rintan1 (*Japanese*) +- Antillion (*Spanish*) +- hiphipvargas (*Portuguese*) +- Ch. (*Korean*) +- tctovsli (*Norwegian Nynorsk*) +- vjasiegd (*Polish*) +- SamitiMed (*Thai*) +- umelard (*Hebrew*) +- 硫酸鶏 (*Japanese*) +- Adrián Lattes (*Spanish*) +- Hinaloe (*Japanese*) +- Renato "Lond" Cerqueira (*Portuguese, Brazilian*) +- parnikkapore (*Thai*) +- Marcin Mikołajczak (*Polish*) +- 森の子リスのミーコの大冒険 (*Japanese*) +- Marcepanek_ (*Polish*) +- Sahak Petrosyan (*Armenian*) +- Daniel Dimitrov (*Bulgarian*) +- Hugh Liu (*Chinese Simplified*) +- Rakino (*Chinese Simplified*) +- hussama (*Portuguese, Brazilian*) +- ThibG (*French*) +- SnDer (*Dutch*) +- PifyZ (*French*) +- eichkat3r (*German*) +- Karol Kosek (*Polish*) +- Akarshan Biswas (*Bengali*) +- Tradjincal (*French*) +- Steven Tappert (*German*) +- sergioaraujo1 (*Portuguese, Brazilian*) +- mmokhi (*Persian*) +- fedot (*Russian*) +- skaaarrr (*German*) +- JackXu (*Chinese Simplified*) +- Lukas Fülling (*German*) +- Zoé Bőle (*German*) +- Dremski (*Bulgarian*) +- tamaina (*Japanese*) +- OpenAlgeria (*Arabic*) diff --git a/CHANGELOG.md b/CHANGELOG.md index 6b0d23a22..b200747b1 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -3,6 +3,39 @@ Changelog All notable changes to this project will be documented in this file. +## [3.0.1] - 2019-10-10 +### Added + +- Add `tootctl media usage` command ([Gargron](https://github.com/tootsuite/mastodon/pull/12115)) +- Add admin setting to auto-approve trending hashtags ([Gargron](https://github.com/tootsuite/mastodon/pull/12122), [Gargron](https://github.com/tootsuite/mastodon/pull/12130)) + +### Changed + +- Change `tootctl media refresh` to skip already downloaded attachments ([Gargron](https://github.com/tootsuite/mastodon/pull/12118)) + +### Removed + +- Remove auto-silence behaviour from spam check ([Gargron](https://github.com/tootsuite/mastodon/pull/12117)) +- Remove HTML `lang` attribute from individual statuses in web UI ([Gargron](https://github.com/tootsuite/mastodon/pull/12124)) +- Remove fallback to long description on sidebar and meta description ([Gargron](https://github.com/tootsuite/mastodon/pull/12119)) + +### Fixed + +- Fix preloaded JSON-LD context for identity not being used ([Gargron](https://github.com/tootsuite/mastodon/pull/12138)) +- Fix media editing modal changing dimensions once the image loads ([Gargron](https://github.com/tootsuite/mastodon/pull/12131)) +- Fix not showing whether a custom emoji has a local counterpart in admin UI ([Gargron](https://github.com/tootsuite/mastodon/pull/12135)) +- Fix attachment not being re-downloaded even if file is not stored ([Gargron](https://github.com/tootsuite/mastodon/pull/12125)) +- Fix old migration trying to use new column due to default status scope ([Gargron](https://github.com/tootsuite/mastodon/pull/12095)) +- Fix column back button missing for not found accounts ([trwnh](https://github.com/tootsuite/mastodon/pull/12094)) +- Fix issues with tootctl's parallelization and progress reporting ([Gargron](https://github.com/tootsuite/mastodon/pull/12093), [Gargron](https://github.com/tootsuite/mastodon/pull/12097)) +- Fix existing user records with now-renamed `pt` locale ([Gargron](https://github.com/tootsuite/mastodon/pull/12092)) +- Fix hashtag timeline REST API accepting too many hashtags ([Gargron](https://github.com/tootsuite/mastodon/pull/12091)) +- Fix `GET /api/v1/instance` REST APIs being unavailable in secure mode ([Gargron](https://github.com/tootsuite/mastodon/pull/12089)) +- Fix performance of home feed regeneration and merging ([Gargron](https://github.com/tootsuite/mastodon/pull/12084)) +- Fix ffmpeg performance issues due to stdout buffer overflow ([hugogameiro](https://github.com/tootsuite/mastodon/pull/12088)) +- Fix S3 adapter retrying failing uploads with exponential backoff ([Gargron](https://github.com/tootsuite/mastodon/pull/12085)) +- Fix `tootctl accounts cull` advertising unused option flag ([Kjwon15](https://github.com/tootsuite/mastodon/pull/12074)) + ## [3.0.0] - 2019-10-03 ### Added diff --git a/Gemfile b/Gemfile index f6ee3b52e..6f1fcb6f1 100644 --- a/Gemfile +++ b/Gemfile @@ -89,7 +89,7 @@ gem 'simple_form', '~> 4.1' gem 'sprockets-rails', '~> 3.2', require: 'sprockets/railtie' gem 'stoplight', '~> 2.1.3' gem 'strong_migrations', '~> 0.4' -gem 'tty-command', '~> 0.8', require: false +gem 'tty-command', '~> 0.9', require: false gem 'tty-prompt', '~> 0.19', require: false gem 'twitter-text', '~> 1.14' gem 'tzinfo-data', '~> 1.2019' @@ -116,7 +116,7 @@ end group :test do gem 'capybara', '~> 3.29' gem 'climate_control', '~> 0.2' - gem 'faker', '~> 2.4' + gem 'faker', '~> 2.5' gem 'microformats', '~> 4.1' gem 'rails-controller-testing', '~> 1.0' gem 'rspec-sidekiq', '~> 3.0' diff --git a/Gemfile.lock b/Gemfile.lock index 0478c6e61..3c52f378f 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -93,7 +93,7 @@ GEM tzinfo (~> 1.1) addressable (2.7.0) public_suffix (>= 2.0.2, < 5.0) - airbrussh (1.3.3) + airbrussh (1.3.4) sshkit (>= 1.6.1, != 1.7.0) annotate (2.7.5) activerecord (>= 3.2, < 7.0) @@ -142,7 +142,7 @@ GEM bundler (>= 1.2.0, < 3) thor (~> 0.18) byebug (11.0.0) - capistrano (3.11.1) + capistrano (3.11.2) airbrussh (>= 1.0.0) i18n rake (>= 10.0.0) @@ -188,13 +188,14 @@ GEM css_parser (1.7.0) addressable debug_inspector (0.0.3) - derailed_benchmarks (1.3.6) + derailed_benchmarks (1.4.0) benchmark-ips (~> 2) get_process_mem (~> 0) heapy (~> 0) memory_profiler (~> 0) rack (>= 1) rake (> 10, < 13) + ruby-statistics (>= 2.1) thor (~> 0.19) devise (4.7.1) bcrypt (~> 3.0) @@ -233,13 +234,13 @@ GEM faraday multi_json encryptor (3.0.0) - equatable (0.5.0) + equatable (0.6.1) erubi (1.8.0) et-orbi (1.1.6) tzinfo excon (0.62.0) fabrication (2.20.2) - faker (2.4.0) + faker (2.5.0) i18n (~> 1.6.0) faraday (0.15.4) multipart-post (>= 1.2, < 3) @@ -265,7 +266,8 @@ GEM fuubar (2.4.1) rspec-core (~> 3.0) ruby-progressbar (~> 1.4) - get_process_mem (0.2.3) + get_process_mem (0.2.4) + ffi (~> 1.0) globalid (0.4.2) activesupport (>= 4.2.0) goldfinger (2.1.0) @@ -427,13 +429,13 @@ GEM parser (2.6.4.0) ast (~> 2.4.0) parslet (1.8.2) - pastel (0.7.2) - equatable (~> 0.5.0) - tty-color (~> 0.4.0) + pastel (0.7.3) + equatable (~> 0.6) + tty-color (~> 0.5) pg (1.1.4) pghero (2.3.0) activerecord (>= 5) - pkg-config (1.3.8) + pkg-config (1.3.9) premailer (1.11.1) addressable css_parser (>= 1.6.0) @@ -568,6 +570,7 @@ GEM ruby-progressbar (1.10.1) ruby-saml (1.9.0) nokogiri (>= 1.5.10) + ruby-statistics (2.1.1) rufus-scheduler (3.5.2) fugit (~> 1.1, >= 1.1.5) safe_yaml (1.0.5) @@ -626,8 +629,8 @@ GEM thor (0.20.3) thread_safe (0.3.6) tilt (2.0.9) - tty-color (0.4.3) - tty-command (0.8.2) + tty-color (0.5.0) + tty-command (0.9.0) pastel (~> 0.7.0) tty-cursor (0.7.0) tty-prompt (0.19.0) @@ -652,7 +655,7 @@ GEM uniform_notifier (1.12.1) warden (1.2.8) rack (>= 2.0.6) - webmock (3.7.5) + webmock (3.7.6) addressable (>= 2.3.6) crack (>= 0.3.2) hashdiff (>= 0.4.0, < 2.0.0) @@ -706,7 +709,7 @@ DEPENDENCIES doorkeeper (~> 5.2) dotenv-rails (~> 2.7) fabrication (~> 2.20) - faker (~> 2.4) + faker (~> 2.5) fast_blank (~> 1.0) fastimage fog-core (<= 2.1.0) @@ -791,7 +794,7 @@ DEPENDENCIES streamio-ffmpeg (~> 3.0) strong_migrations (~> 0.4) thor (~> 0.20) - tty-command (~> 0.8) + tty-command (~> 0.9) tty-prompt (~> 0.19) twitter-text (~> 1.14) tzinfo-data (~> 1.2019) diff --git a/app/controllers/api/v1/instances/activity_controller.rb b/app/controllers/api/v1/instances/activity_controller.rb index 4fb5a69d8..b30e8464c 100644 --- a/app/controllers/api/v1/instances/activity_controller.rb +++ b/app/controllers/api/v1/instances/activity_controller.rb @@ -4,6 +4,7 @@ class Api::V1::Instances::ActivityController < Api::BaseController before_action :require_enabled_api! skip_before_action :set_cache_headers + skip_before_action :require_authenticated_user!, unless: :whitelist_mode? respond_to :json diff --git a/app/controllers/api/v1/instances/peers_controller.rb b/app/controllers/api/v1/instances/peers_controller.rb index 75c3cb4ba..cc00d8a6b 100644 --- a/app/controllers/api/v1/instances/peers_controller.rb +++ b/app/controllers/api/v1/instances/peers_controller.rb @@ -4,6 +4,7 @@ class Api::V1::Instances::PeersController < Api::BaseController before_action :require_enabled_api! skip_before_action :set_cache_headers + skip_before_action :require_authenticated_user!, unless: :whitelist_mode? respond_to :json diff --git a/app/controllers/api/v1/instances_controller.rb b/app/controllers/api/v1/instances_controller.rb index 8d8231423..c323b60b4 100644 --- a/app/controllers/api/v1/instances_controller.rb +++ b/app/controllers/api/v1/instances_controller.rb @@ -4,6 +4,7 @@ class Api::V1::InstancesController < Api::BaseController respond_to :json skip_before_action :set_cache_headers + skip_before_action :require_authenticated_user!, unless: :whitelist_mode? def show expires_in 3.minutes, public: true diff --git a/app/controllers/api/v1/streaming_controller.rb b/app/controllers/api/v1/streaming_controller.rb index 66b812e76..ebb17608c 100644 --- a/app/controllers/api/v1/streaming_controller.rb +++ b/app/controllers/api/v1/streaming_controller.rb @@ -5,11 +5,17 @@ class Api::V1::StreamingController < Api::BaseController def index if Rails.configuration.x.streaming_api_base_url != request.host - uri = URI.parse(request.url) - uri.host = URI.parse(Rails.configuration.x.streaming_api_base_url).host - redirect_to uri.to_s, status: 301 + redirect_to streaming_api_url, status: 301 else - raise ActiveRecord::RecordNotFound + not_found end end + + private + + def streaming_api_url + Addressable::URI.parse(request.url).tap do |uri| + uri.host = Addressable::URI.parse(Rails.configuration.x.streaming_api_base_url).host + end.to_s + end end diff --git a/app/controllers/api/v1/timelines/home_controller.rb b/app/controllers/api/v1/timelines/home_controller.rb index fcd0757f1..ff5ede138 100644 --- a/app/controllers/api/v1/timelines/home_controller.rb +++ b/app/controllers/api/v1/timelines/home_controller.rb @@ -13,7 +13,7 @@ class Api::V1::Timelines::HomeController < Api::BaseController render json: @statuses, each_serializer: REST::StatusSerializer, relationships: StatusRelationshipsPresenter.new(@statuses, current_user&.account_id), - status: regeneration_in_progress? ? 206 : 200 + status: account_home_feed.regenerating? ? 206 : 200 end private @@ -62,8 +62,4 @@ class Api::V1::Timelines::HomeController < Api::BaseController def pagination_since_id @statuses.first.id end - - def regeneration_in_progress? - Redis.current.exists("account:#{current_account.id}:regeneration") - end end diff --git a/app/javascript/mastodon/actions/timelines.js b/app/javascript/mastodon/actions/timelines.js index 7eeba2aa7..bc2ac5e82 100644 --- a/app/javascript/mastodon/actions/timelines.js +++ b/app/javascript/mastodon/actions/timelines.js @@ -97,7 +97,7 @@ export function expandTimeline(timelineId, path, params = {}, done = noOp) { api(getState).get(path, { params }).then(response => { const next = getLinks(response).refs.find(link => link.rel === 'next'); dispatch(importFetchedStatuses(response.data)); - dispatch(expandTimelineSuccess(timelineId, response.data, next ? next.uri : null, response.code === 206, isLoadingRecent, isLoadingMore, isLoadingRecent && preferPendingItems)); + dispatch(expandTimelineSuccess(timelineId, response.data, next ? next.uri : null, response.status === 206, isLoadingRecent, isLoadingMore, isLoadingRecent && preferPendingItems)); done(); }).catch(error => { dispatch(expandTimelineFail(timelineId, error, isLoadingMore)); diff --git a/app/javascript/mastodon/components/extended_video_player.js b/app/javascript/mastodon/components/extended_video_player.js deleted file mode 100644 index 009c0d559..000000000 --- a/app/javascript/mastodon/components/extended_video_player.js +++ /dev/null @@ -1,63 +0,0 @@ -import React from 'react'; -import PropTypes from 'prop-types'; - -export default class ExtendedVideoPlayer extends React.PureComponent { - - static propTypes = { - src: PropTypes.string.isRequired, - alt: PropTypes.string, - width: PropTypes.number, - height: PropTypes.number, - time: PropTypes.number, - controls: PropTypes.bool.isRequired, - muted: PropTypes.bool.isRequired, - onClick: PropTypes.func, - }; - - handleLoadedData = () => { - if (this.props.time) { - this.video.currentTime = this.props.time; - } - } - - componentDidMount () { - this.video.addEventListener('loadeddata', this.handleLoadedData); - } - - componentWillUnmount () { - this.video.removeEventListener('loadeddata', this.handleLoadedData); - } - - setRef = (c) => { - this.video = c; - } - - handleClick = e => { - e.stopPropagation(); - const handler = this.props.onClick; - if (handler) handler(); - } - - render () { - const { src, muted, controls, alt } = this.props; - - return ( -
- + {' '} {status.get('activity_pub_type') === 'Article' ? '' : }
{mentionsPlaceholder} - + + {!hidden && !!status.get('poll') &&Du kannst ein Archiv deines Inhalts anfordern und herunterladen, inkludierend deiner Beiträge, Medienanhänge, Profilbilder und Headerbilder.
diff --git a/config/locales/devise.ar.yml b/config/locales/devise.ar.yml index 90f026e10..4662cd030 100644 --- a/config/locales/devise.ar.yml +++ b/config/locales/devise.ar.yml @@ -46,8 +46,10 @@ ar: subject: 'ماستدون: تعليمات استعادة كلمة المرور' title: إعادة تعيين كلمة السر two_factor_disabled: + subject: 'ماستدون: نظام المصادقة بخطوتين مُعطّل' title: إنّ 2FA معطّل two_factor_enabled: + subject: 'ماستدون: تم تفعيل نظام المصادقة بخطوتين' title: إنّ 2FA نشِط unlock_instructions: subject: 'ماستدون: تعليمات فك القفل' diff --git a/config/locales/devise.cs.yml b/config/locales/devise.cs.yml index d1b9fc09c..25be731d0 100644 --- a/config/locales/devise.cs.yml +++ b/config/locales/devise.cs.yml @@ -8,7 +8,7 @@ cs: failure: already_authenticated: Již jste přihlášen/a. inactive: Váš účet ještě není aktivován. - invalid: Neplatný %{authentication_keys} nebo heslo. + invalid: Neplatné %{authentication_keys} nebo heslo. last_attempt: Máte ještě jeden pokus, než bude váš účet uzamčen. locked: Váš účet je uzamčen. not_found_in_database: Neplatné %{authentication_keys} nebo heslo. @@ -21,7 +21,7 @@ cs: action: Potvrdit e-mailovou adresu action_with_app: Potvrdit a navrátit se do %{app} explanation: S touto e-mailovou adresou jste si vytvořil/a účet na %{host}. K jeho aktivaci vám zbývá jedno kliknutí. Pokud jste to nebyl/a vy, prosím ignorujte tento e-mail. - explanation_when_pending: S touto e-mailovou adresou jste si vyžádal/a pozvánku na %{host}. Jakmile svou e-mailovou adresu potvrdíte, posoudíme váš poadavek. Do té doby se nemůžete přihlásit. Pokud bude váš požadavek zamítnut, budou vaše data odstraněna, takže od vás nebude vyžadována žádná další akce. Pokud jste to nebyl/a vy, prosím ignorujte tento e-mail. + explanation_when_pending: S touto e-mailovou adresou jste si vyžádal/a pozvánku na %{host}. Jakmile svou e-mailovou adresu potvrdíte, posoudíme váš poadavek. Můžete se přihlásit, změnit si své detaily či smazat svůj účet, ale do schválení účtu nemáte přístup ke většině funkcí. Pokud bude váš požadavek zamítnut, budou vaše data odstraněna, takže od vás nebude vyžadována žádná další akce. Pokud jste to nebyl/a vy, prosím ignorujte tento e-mail. extra_html: Prosím podívejte se také na pravidla tohoto serveru a naše podmínky používání. subject: 'Mastodon: Potvrzovací instrukce pro %{instance}' title: Potvrďte e-mailovou adresu diff --git a/config/locales/devise.el.yml b/config/locales/devise.el.yml index f064cbe83..5dc7658c2 100644 --- a/config/locales/devise.el.yml +++ b/config/locales/devise.el.yml @@ -51,7 +51,13 @@ el: subject: 'Mastodon: Απενεργοποιήθηκε ο έλεγχος ταυτότητας δύο παραγόντων' title: Απενεργοποιημένο 2FA two_factor_enabled: + explanation: Έχει ενεργοποιηθεί η πιστοποίηση 2 παραγόντων για το λογαριασμό σου (2FA). Για να συνδεθείς θα απαιτηθεί πιστοποιημένο τεκμήριο από κάποια ζευγαρωμένη εφαρμογή. + subject: 'Mastodon: Ενεργοποιήθηκε η πιστοποίηση 2 παραγόντων (2FA)' title: Επαλήθευση δύο βημάτων ενεργή + two_factor_recovery_codes_changed: + explanation: Οι προηγούμενοι κωδικοί ανάκτησης ακυρώθηκαν και δημιουργήθηκαν νέοι. + subject: 'Mastodon: Δημιουργήθηκαν νέοι κωδικοί ανάκτησης' + title: Οι κωδικοί ανάκτησης 2FA άλλαξαν unlock_instructions: subject: 'Mastodon: Οδηγίες ξεκλειδώματος' omniauth_callbacks: diff --git a/config/locales/devise.eo.yml b/config/locales/devise.eo.yml index d7b7b2d6c..7c67ac8fa 100644 --- a/config/locales/devise.eo.yml +++ b/config/locales/devise.eo.yml @@ -46,6 +46,10 @@ eo: extra: Se vi ne petis ĉi tion, bonvolu ignori ĉi tiun retmesaĝon. Via pasvorto ne ŝanĝiĝos se vi ne aliras la supran ligilon kaj kreas novan. subject: 'Mastodon: Instrukcioj por ŝanĝi pasvorton' title: Pasvorto restarigita + two_factor_disabled: + title: la du-etapa aŭtentigo estas malŝaltita + two_factor_enabled: + title: la du-etapa aŭtentigo estas ŝaltita unlock_instructions: subject: 'Mastodon: Instrukcioj por malŝlosi' omniauth_callbacks: diff --git a/config/locales/devise.es.yml b/config/locales/devise.es.yml index 515d5c1ed..80d438092 100644 --- a/config/locales/devise.es.yml +++ b/config/locales/devise.es.yml @@ -1 +1,98 @@ -es-AR: +--- +es: + devise: + confirmations: + confirmed: Su direccion de email ha sido confirmada con exito. + send_instructions: Recibirá un correo electrónico con instrucciones sobre cómo confirmar su dirección de correo en pocos minutos. + send_paranoid_instructions: Si su dirección de correo electrónico existe en nuestra base de datos, recibirá un correo electrónico con instrucciones sobre cómo confirmar su dirección de correo en pocos minutos. + failure: + already_authenticated: Usted ya está registrado. + inactive: Su cuenta todavía no está activa. + invalid: Inválido %{authentication_keys} o contraseña. + last_attempt: Tiene un intento más antes de que su cuenta sea bloqueada. + locked: Su cuenta está bloqueada. + not_found_in_database: Inválido %{authentication_keys} o contraseña. + pending: Su cuenta aun se encuentra bajo revisión. + timeout: Su sesión ha expirado. Por favor inicie sesión de nuevo para continuar. + unauthenticated: Necesita iniciar sesión o registrarse antes de continuar. + unconfirmed: Tiene que confirmar su dirección de correo electrónico antes de continuar. + mailer: + confirmation_instructions: + action: Verificar dirección de correo electrónico + action_with_app: Confirmar y regresar a %{app} + explanation: Has creado una cuenta en %{host} con esta dirección de correo electrónico. Estas a un clic de activarla. Si no fue usted, por favor ignore este correo electrónico. + explanation_when_pending: Usted ha solicitado una invitación a %{host} con esta dirección de correo electrónico. Una vez que confirme su dirección de correo electrónico, revisaremos su aplicación. No puede iniciar sesión hasta que su aplicación sea revisada. Si su solicitud está rechazada, sus datos serán eliminados, así que no será necesaria ninguna acción adicional por ti. Si no fuera usted, por favor ignore este correo electrónico. + extra_html: Por favor revise las reglas de la instancia y nuestros términos de servicio. + subject: 'Mastodon: Instrucciones de confirmación para %{instance}' + title: Verificar dirección de correo electrónico + email_changed: + explanation: 'El correo electrónico para su cuenta esta siendo cambiada a:' + extra: Si usted no ha cambiado su correo electrónico, es probable que alguien haya conseguido acceso a su cuenta. Por favor cambie su contraseña inmediatamente o contacte al administrador de la instancia si usted no puede iniciar sesión. + subject: 'Mastodon: Correo electrónico cambiado' + title: Nueva dirección de correo electrónico + password_change: + explanation: La contraseña de su cuenta a sido cambiada. + extra: Si usted no a cambiado su contraseña. es probable que alguien a conseguido acceso a su cuenta. Por favor cambie su contraseña inmediatamente o contacte a el administrador de la instancia si usted esta bloqueado de su cuenta. + subject: 'Mastodon: Contraseña cambiada' + title: Contraseña cambiada + reconfirmation_instructions: + explanation: Confirme la nueva dirección para cambiar su coreo electrónico. + extra: Si no iniciaste este cambio, por favor ignora este correo. Esta dirección de correo para la cuenta de Mastodon no cambiará hasta que accedas al vinculo arriba. + subject: 'Mastodon: Confirme correo electrónico para %{instance}' + title: Verifique dirección de correo electrónico + reset_password_instructions: + action: Cambiar contraseña + explanation: Solicitaste una nueva contraseña para tu cuenta. + extra: Si no solicitaste esto, por favor ignora este correo. Tu contraseña no cambiará hasta que tu accedas al vinculo arriba y crees una nueva. + subject: 'Mastodon: Instrucciones para reiniciar contraseña' + title: Reiniciar contraseña + two_factor_disabled: + explanation: La autenticación de dos factores para tu cuenta ha sido deshabilitada. Ahora puedes conectarte solamente usando la dirección de correo electrónico y la contraseña. + subject: 'Mastodon: La autenticación de dos factores está deshabilitada' + title: 2FA desactivada + two_factor_enabled: + explanation: La autenticación de dos factores para tu cuenta ha sido habilitada. Se requiere un token generado por la aplicación TOTP emparejada para ingresar. + subject: 'Mastodon: La autenticación de dos factores está habilitada' + title: 2FA activada + two_factor_recovery_codes_changed: + explanation: Los códigos de recuperación previos han sido invalidados y se generaron códigos nuevos. + subject: 'Mastodon: Los códigos de recuperación de dos factores fueron regenerados' + title: Códigos de recuperación 2FA cambiados + unlock_instructions: + subject: 'Mastodon: Instrucciones para desbloquear' + omniauth_callbacks: + failure: No podemos autentificarle desde %{kind} debido a "%{reason}". + success: Autentificado con éxito desde la cuenta %{kind} . + passwords: + no_token: No puede acceder a esta página sin provenir desde el correo de reinicio de contraseña. Si viene desde el correo de reinicio de contraseña, por favor asegúrese que está utilizando la dirección completa proporcionada. + send_instructions: Recibirá un correo electrónico con instrucciones sobre cómo reiniciar su contraseña en pocos minutos. + send_paranoid_instructions: Si su correo electrónico existe en nuestra base de datos, recibirá un enlace de recuperación de contraseña en su dirección de correo en pocos minutos. + updated: Su contraseña ha sido cambiada con éxito. Ahora ya está registrado. + updated_not_active: Su contraseña ha sido cambiada con éxito. + registrations: + destroyed: "¡Adios! Su cuenta ha sido cancelada con éxito. Esperamos verle pronto de nuevo." + signed_up: "¡Bienvenido! Se ha registrado con éxito." + signed_up_but_inactive: Se ha registrado con éxito. Sin embargo, no podemos identificarle porque su cuenta no ha sido activada todavía. + signed_up_but_locked: Se ha registrado con éxito. Sin embargo, no podemos identificarle porque su cuenta está bloqueada. + signed_up_but_pending: Un mensaje con un enlace de confirmacion ha sido enviado a su direccion de email. Luego de clickear el link revisaremos su aplicacion. Seras notificado si es aprovada. + signed_up_but_unconfirmed: Un mensaje con un enlace de confirmación ha sido enviado a su correo electrónico. Por favor siga el enlace para activar su cuenta. + update_needs_confirmation: Ha actualizado su cuenta con éxito, pero necesitamos verificar su nueva dirección de correo. Por favor compruebe su correo y siga el enlace para confirmar su nueva dirección de correo. + updated: su cuenta ha sido actualizada con éxito. + sessions: + already_signed_out: Cerró sesión con éxito. + signed_in: Se registró con éxito. + signed_out: Cerró sesión con éxito. + unlocks: + send_instructions: Recibirá un correo electrónico con instrucciones sobre cómo desbloquear su cuenta en pocos minutos. + send_paranoid_instructions: Si su cuenta existe, recibirá un correo electrónico con instrucciones sobre cómo desbloquearla en pocos minutos. + unlocked: Su cuenta ha sido desbloqueada con éxito. Por favor inicie sesión para continuar. + errors: + messages: + already_confirmed: ya fue confirmado, por favor intente iniciar sesión + confirmation_period_expired: necesita ser confirmado dentro de %{period}, por favor pida una nueva + expired: ha expirado, por favor pida una nueva + not_found: no encontrado + not_locked: no fue bloqueada + not_saved: + one: '1 error prohibió este %{resource} de ser guardado:' + other: "%{count} errores prohibieron este %{resource} de ser guardado:" diff --git a/config/locales/devise.eu.yml b/config/locales/devise.eu.yml index 3526f2ab5..2160f2243 100644 --- a/config/locales/devise.eu.yml +++ b/config/locales/devise.eu.yml @@ -46,6 +46,10 @@ eu: extra: Ez baduzu hau eskatu, mesedez ezikusi e-mail hau. Zure pasahitza ez da aldatuko goiko estekara sartu eta berri bat sortzen ez baduzu. subject: 'Mastodon: Pasahitza berrezartzeko argibideak' title: Pasahitza berrezartzea + two_factor_disabled: + title: 2FA desgaituta + two_factor_enabled: + title: 2FA gaituta unlock_instructions: subject: 'Mastodon: Desblokeatzeko argibideak' omniauth_callbacks: diff --git a/config/locales/devise.fr.yml b/config/locales/devise.fr.yml index dc89b478b..37ebdaa07 100644 --- a/config/locales/devise.fr.yml +++ b/config/locales/devise.fr.yml @@ -9,7 +9,7 @@ fr: already_authenticated: Vous êtes déjà connecté⋅e. inactive: Votre compte n’est pas encore activé. invalid: "%{authentication_keys} ou mot de passe invalide." - last_attempt: Vous avez droit à une tentative avant que votre compte ne soit verrouillé. + last_attempt: Vous avez droit à une dernière tentative avant que votre compte ne soit verrouillé. locked: Votre compte est verrouillé. not_found_in_database: "%{authentication_keys} ou mot de passe invalide." pending: Votre compte est toujours en cours d'approbation. diff --git a/config/locales/devise.ja.yml b/config/locales/devise.ja.yml index ffdbd1b60..5f32b2381 100644 --- a/config/locales/devise.ja.yml +++ b/config/locales/devise.ja.yml @@ -21,7 +21,7 @@ ja: action: メールアドレスの確認 action_with_app: 確認し %{app} に戻る explanation: このメールアドレスで%{host}にアカウントを作成しました。有効にするまであと一歩です。もし心当たりがない場合、申し訳ありませんがこのメールを無視してください。 - explanation_when_pending: このメールアドレスで%{host}への登録を申請しました。あなたがメールアドレスを確認したら、サーバー管理者が申請を審査します。それまでログインできません。申請が却下された場合、あなたのデータは削除されますので以降の操作は必要ありません。もし心当たりがない場合、申し訳ありませんがこのメールを無視してください。 + explanation_when_pending: このメールアドレスで %{host} への登録を申請しました。あなたがメールアドレスを確認したら、サーバー管理者が申請を審査します。ログインして一部設定を変更したりアカウントを削除できますが、ほとんどの機能は申請が承認されるまで利用できません。申請が却下された場合、あなたのデータは削除されますので以降の操作は必要ありません。もし心当たりがない場合、申し訳ありませんがこのメールを無視してください。 extra_html: また サーバーのルール と 利用規約 もお読みください。 subject: 'Mastodon: メールアドレスの確認 %{instance}' title: メールアドレスの確認 diff --git a/config/locales/devise.th.yml b/config/locales/devise.th.yml index dd18229df..383c51513 100644 --- a/config/locales/devise.th.yml +++ b/config/locales/devise.th.yml @@ -21,6 +21,10 @@ th: title: เปลี่ยนรหัสผ่านแล้ว reset_password_instructions: action: เปลี่ยนรหัสผ่าน + two_factor_disabled: + title: ปิดใช้งาน 2FA แล้ว + two_factor_enabled: + title: เปิดใช้งาน 2FA แล้ว passwords: send_instructions: If your email address exists in our database, you will receive a password recovery link at your email address in a few minutes. send_paranoid_instructions: If your email address exists in our database, you will receive a password recovery link at your email address in a few minutes. diff --git a/config/locales/devise.uk.yml b/config/locales/devise.uk.yml index c44bda5ea..e1eb2d1ae 100644 --- a/config/locales/devise.uk.yml +++ b/config/locales/devise.uk.yml @@ -45,6 +45,10 @@ uk: extra: Якщо ви не запитували зміну пароля, ігноруйте цей лист. Ваш пароль не буде змінено, допоки ви не перейдете за посиланням та не створите новий. subject: 'Mastodon: Інструкції для скидання паролю' title: Скидання пароля + two_factor_disabled: + title: Двофакторна автентифікація вимкнена + two_factor_enabled: + title: Двофакторна автентифікація увімкнена unlock_instructions: subject: 'Mastodon: Інструкції для розблокування' omniauth_callbacks: diff --git a/config/locales/el.yml b/config/locales/el.yml index 7756dc0e0..caaab41f8 100644 --- a/config/locales/el.yml +++ b/config/locales/el.yml @@ -18,7 +18,6 @@ el: discover_users: Ανακάλυψε χρήστες documentation: Τεκμηρίωση federation_hint_html: Με ένα λογαριασμό στο %{instance} θα μπορείς να ακολουθείς ανθρώπους σε οποιοδήποτε κόμβο στο Mastodon αλλά και αλλού. - generic_description: "%{domain} είναι ένας εξυπηρετητής στο δίκτυο" get_apps: Δοκίμασε μια εφαρμογή κινητού hosted_on: Το Mastodon φιλοξενείται στο %{domain} instance_actor_flash: | @@ -39,6 +38,10 @@ el: unavailable_content_description: domain: Διακομιστής reason: 'Αιτία:' + rejecting_media: 'Τα αρχεία πολυμέσων αυτών των διακομιστών δεν θα επεξεργάζονται, δεν θα αποθηκεύονται και δεν θα εμφανίζεται η προεπισκόπησή τους, απαιτώντας χειροκίνητη επιλογή μέχρι το αρχικό αρχείο:' + silenced: 'Οι δημοσιεύσεις αυτών των διακομιστών θα είναι κρυμμένες από τις δημόσιες ροές και συζητήσεις, ενώ δεν θα δημιουργούνται ειδοποιήσεις για τις ενέργειες των χρηστών τους, εκτός κι αν τους ακολουθείς:' + suspended: 'Κανένα δεδομένο δε θα επεξεργάζεται, δε θα αποθηκεύεται και δε θα ανταλλάσσεται για αυτούς τους διακομιστές, καθιστώντας οποιαδήποτε αλληλεπίδραση ή επικοινωνία με χρήστες από αυτούς τους διακομιστές αδύνατη:' + unavailable_content_html: Το Mastodon γενικά επιτρέπει να δεις περιεχόμενο και να αλληλεπιδράσεις με χρήστες από οποιονδήποτε διακομιστή στο fediverse. Εδώ είναι οι εξαιρέσεις που ισχύουν σε αυτόν τον συγκεκριμένο διακομιστή. user_count_after: one: χρήστης other: χρήστες @@ -236,12 +239,14 @@ el: delete: Διαγραφή destroyed_msg: Επιτυχής καταστροφή του emojo! disable: Απενεργοποίηση + disabled: Απενεργοποιημένα disabled_msg: Επιτυχής απενεργοποίηση αυτού του emoji emoji: Emoji enable: Ενεργοποίηση enabled: Ενεργοποιημένα enabled_msg: Επιτυχής ενεργοποίηση αυτού του emoji image_hint: PNG έως 50KB + list: Εμφάνιση listed: Αναφερθέντα new: title: Προσθήκη νέου προσαρμοσμένου emoji @@ -250,6 +255,7 @@ el: shortcode_hint: Τουλάχιστον 2 χαρακτήρες, μόνο αλφαριθμητικοί και κάτω παύλες title: Προσαρμοσμένα emoji uncategorized: Χωρίς κατηγορία + unlist: Απόκρυψη unlisted: Μη καταχωρημένα update_failed_msg: Αδυναμία ενημέρωσης του emoji updated_msg: Επιτυχής ενημέρωση του emoji! @@ -381,6 +387,7 @@ el: pending: Περιμένοντας την έγκριση του ανταποκριτή save_and_enable: Αποθήκευση και ενεργοποίηση setup: Όρισε μια σύνδεση ανταπόκρισης + signatures_not_enabled: Οι ανταποκριτές δεν θα λειτουργούν σωστά όσο είναι ενεργοποιημένες οι επιλογές ασφαλούς λειτουργίας ή επιτρεπόμενων συνδέσεων status: Κατάσταση title: Ανταποκριτές report_notes: @@ -499,6 +506,9 @@ el: desc_html: Εμφάνισε τη δημόσια ροή στην αρχική σελίδα title: Προεπισκόπιση ροής title: Ρυθμίσεις ιστότοπου + trendable_by_default: + desc_html: Επηρεάζει τις ταμπέλες που δεν είχαν απαγορευτεί νωρίτερα + title: Επέτρεψε στις ταμπέλες να εμφανιστούν στις τάσεις χωρίς προηγούμενη έγκριση trends: desc_html: Δημόσια εμφάνιση ταμπελών που έχουν ήδη εγκριθεί και είναι δημοφιλείς title: Δημοφιλείς ταμπέλες @@ -552,6 +562,11 @@ el: new_trending_tag: body: 'Η ταμπέλα #%{name} είναι δημοφιλής σήμερα, αλλά δεν έχει εγκριθεί μέχρι τώρα. Δεν θα εμφανίζεται δημοσίως μέχρι να δοθεί έγκρισή, αλλιώς αποθηκεύστε τη φόρμα ως έχει για να μην την δείτε ξανά.' subject: Νέα ταμπέλα προς έγκριση στο %{instance} (#%{name}) + aliases: + add_new: Δημιουργία ψευδώνυμου + created_msg: Δημιουργήθηκε νέο ψευδώνυμο. Τώρα μπορείς να ξεκινήσεις τη μεταφορά από τον παλιό λογαριασμό. + deleted_msg: Αφαιρέθηκε το ψευδώνυμο. Η μεταφορά από εκείνον τον λογαριασμό σε αυτόν εδώ δε θα είναι πλέον δυνατή. + remove: Αφαίρεση ψευδώνυμου appearance: advanced_web_interface: Προηγμένη λειτουργία χρήσης advanced_web_interface_hint: 'Αν θέλεις να χρησιμοποιήσεις ολόκληρο το πλάτος της οθόνης σου, η προηγμένη λειτουργία χρήσης σου επιτρέπει να ορίσεις πολλαπλές κολώνες ώστε να βλέπεις ταυτόχρονα όση πληροφορία θέλεις: Την αρχική ροή, τις ειδοποιήσεις, την ομοσπονδιακή ροή και όσες λίστες και ταμπέλες θέλεις.' @@ -801,8 +816,24 @@ el: acct: ΌνομαΧρήστη@Τομέας του νέου λογαριασμού cancel: Ακύρωση ανακατεύθυνσης errors: + move_to_self: δεν επιτρέπεται να είναι ο τρέχων λογαριασμός not_found: δεν βρέθηκε + on_cooldown: Είσαι σε περίοδο προσαρμογής + followers_count: Ακόλουθοι τη στιγμή της μεταφοράς + incoming_migrations: Μεταφορά από διαφορετικό λογαριασμό + past_migrations: Προηγούμενες μετακινήσεις proceed_with_move: Μετακίνηση ακολούθων + redirecting_to: Ο λογαριασμός σου ανακατευθύνει στο %{acct}. + set_redirect: Όρισε ανακατεύθυνση + warning: + backreference_required: Θα πρέπει πρώτα να ρυθμιστεί μια αναφορά από τον νέο λογαριασμό προς αυτόν + before: 'Πριν συνεχίσεις, παρακαλούμε διάβασε αυτές τις σημειώσεις προσεκτικά:' + cooldown: Άπαξ και μεταφερθείς υπάρχει μια περίοδος προσαρμογής κατά την οποία δε θα μπορείς να μετακινηθείς ξανά + disabled_account: Ο τρέχων λογαριασμός σου δε θα είναι πλήρως ενεργός μετά. Πάντως θα έχεις πρόσβαση στην εξαγωγή δεδομένων καθώς και στην επανενεργοποίηση. + followers: Αυτή η ενέργεια θα μεταφέρει όλους τους ακόλουθούς σου από τον τρέχοντα λογαριασμός στον νέο λογαριασμό + only_redirect_html: Εναλλακτικά, μπορείς απλά να προσθέσεις μια ανακατατεύθυνση στο προφίλ σου. + other_data: Κανένα άλλο δεδομένο δε θα μεταφερθεί αυτόματα + redirect: Το προφίλ του τρέχοντος λογαριασμό σου θα ενημερωθεί με μια σημείωση ανακατεύθυνσης και θα εξαιρεθεί από τα αποτελέσματα αναζητήσεων moderation: title: Συντονισμός notification_mailer: @@ -947,6 +978,7 @@ el: settings: account: Λογαριασμός account_settings: Ρυθμίσεις λογαριασμού + aliases: Ψευδώνυμα λογαριασμών appearance: Εμφάνιση authorized_apps: Εγκεκριμένες εφαρμογές back: Πίσω στο Mastodon @@ -964,8 +996,6 @@ el: profile: Προφίλ relationships: Ακολουθεί και ακολουθείται two_factor_authentication: Πιστοποίηση 2 παραγόντων (2FA) - spam_check: - spam_detected_and_silenced: 'Αυτόματο μήνυμα: Ανιχνεύθηκε ανεπιθύμητο περιεχόμενο (σπαμ) και ο αποστολέας αποσιωπήθηκε αυτόματα. Αν έγινε λάθος, παρακαλώ διακόψτε την αποσιώπηση του λογαριασμού.' statuses: attached: description: 'Συνημμένα: %{attached}' @@ -989,6 +1019,9 @@ el: private: Τα μη δημόσια τουτ δεν καρφιτσώνονται reblog: Οι προωθήσεις δεν καρφιτσώνονται poll: + total_people: + one: "%{count} άτομο" + other: "%{count} άτομα" total_votes: one: "%{count} ψήφος" other: "%{count} ψήφοι" diff --git a/config/locales/en.yml b/config/locales/en.yml index f9a6c2521..29a4c5554 100644 --- a/config/locales/en.yml +++ b/config/locales/en.yml @@ -1,8 +1,8 @@ --- en: about: - about_hashtag_html: These are public posts tagged with #%{hashtag}. You can interact with them if you have an account anywhere in the fediverse. - about_mastodon_html: Hometown is adapted from Mastodon, a social network based on open web protocols and free, open-source software. It is decentralized like e-mail. + about_hashtag_html: These are public toots tagged with #%{hashtag}. You can interact with them if you have an account anywhere in the fediverse. + about_mastodon_html: 'Hometown is adapted from Mastodon, a decentralized social network with no ads, no corporate surveillance, and ethical design.' about_this: About active_count_after: active active_footnote: Monthly Active Users (MAU) @@ -18,7 +18,6 @@ en: discover_users: Discover users documentation: Documentation federation_hint_html: With an account on %{instance} you'll be able to follow people on any Hometown or Mastodon server and beyond. - generic_description: "%{domain} is one server in the network" get_apps: Try a mobile app hosted_on: Hometown hosted on %{domain} instance_actor_flash: | @@ -479,8 +478,8 @@ en: open: Anyone can sign up title: Registrations mode show_known_fediverse_at_about_page: - desc_html: When toggled, it will show posts from all the known fediverse on preview. Otherwise it will only show local posts. - title: Show known fediverse on timeline preview + desc_html: When disabled, restricts the public timeline linked from the landing page to showing only local content + title: Include federated content on unauthenticated public timeline page show_staff_badge: desc_html: Show a staff badge on a user page title: Show staff badge @@ -498,15 +497,18 @@ en: title: Custom terms of service site_title: Server name spam_check_enabled: - desc_html: Mastodon can auto-silence and auto-report accounts that send repeated unsolicited messages. There may be false positives. + desc_html: Mastodon can auto-report accounts that send repeated unsolicited messages. There may be false positives. title: Anti-spam automation thumbnail: desc_html: Used for previews via OpenGraph and API. 1200x630px recommended title: Server thumbnail timeline_preview: - desc_html: Display public timeline on landing page - title: Timeline preview + desc_html: Display link to public timeline on landing page and allow API access to the public timeline without authentication + title: Allow unauthenticated access to public timeline title: Site settings + trendable_by_default: + desc_html: Affects hashtags that have not been previously disallowed + title: Allow hashtags to trend without prior review trends: desc_html: Publicly display previously reviewed hashtags that are currently trending title: Trending hashtags @@ -1008,7 +1010,7 @@ en: relationships: Follows and followers two_factor_authentication: Two-factor Auth spam_check: - spam_detected_and_silenced: This is an automated report. Spam has been detected and the sender has been silenced automatically. If this is a mistake, please unsilence the account. + spam_detected: This is an automated report. Spam has been detected. statuses: attached: description: 'Attached: %{attached}' diff --git a/config/locales/eo.yml b/config/locales/eo.yml index f33c094fc..dd3ca1079 100644 --- a/config/locales/eo.yml +++ b/config/locales/eo.yml @@ -18,7 +18,6 @@ eo: discover_users: Malkovri uzantojn documentation: Dokumentado federation_hint_html: Per konto ĉe %{instance}, vi povos sekvi homojn ĉe iu ajn Mastodon nodo kaj preter. - generic_description: "%{domain} estas unu servilo en la reto" get_apps: Provu telefonan aplikaĵon hosted_on: "%{domain} estas nodo de Mastodon" instance_actor_flash: | @@ -508,13 +507,16 @@ eo: directory: En la adresaro in_directory: "%{count} en adresaro" last_active: Lasta aktiva + most_popular: La plej populara most_recent: Plej lasta name: Kradvorto review: La statuso de la recenzo reviewed: Recenzis title: Kradvortoj trending_right_now: Nunaj furoraĵoj + unique_uses_today: "%{count} uzas hodiaŭ" unreviewed: Ne recenzis + updated_msg: Kradvorto agordoj ĝisdatigis sukcese title: Administrado warning_presets: add_new: Aldoni novan @@ -533,6 +535,11 @@ eo: new_trending_tag: body: 'La kradvorto #%{name} furoras hodiaŭ, sed ankoraŭ ne estis kontrolita. Ĝi ne aperos publike sen via aprobo. Se vi ne volas tion, simple konservu la formularon tiel kiel.' subject: Nova kradvorto kontrolebla en %{instance} (#%{name}) + aliases: + add_new: Krei alinomon + created_msg: Kreis novan alinomon sukcese. Vi povas inici la transloki el la malnovan konton nun. + deleted_msg: Forigis la alinomon sukcese. Transloki el tiu konto al ĉi tiu ne plu eblos. + remove: Malligili alinomon appearance: advanced_web_interface: Altnivela retpaĝa interfaco advanced_web_interface_hint: 'Se vi volas uzi la tutan larĝecon de via ekrano, la kompleksa reta interfaco permesas al vi agordi multajn malsamajn kolumnojn por vidi tiom da informoj kiom vi volas samtempe: Hejmo, sciigoj, fratara tempolinio, kaj ajna kvanto de listoj kaj kradvortoj.' @@ -559,9 +566,11 @@ eo: apply_for_account: Peti inviton change_password: Pasvorto checkbox_agreement_html: Mi samopinii al la Servo reguloj kaj kondiĉo al servadon + checkbox_agreement_without_rules_html: Mi konsenti la reguloj de servado delete_account: Forigi konton delete_account_html: Se vi deziras forigi vian konton, vi povas fari tion ĉi tie. Vi bezonos konfirmi vian peton. description: + prefix_invited_by_user: "@%{name} invitigi vin aligiĝi ĉi tiu servilo de Mastodon!" prefix_sign_up: Registriĝi ĉe Mastodon hodiaŭ! didnt_get_confirmation: Ĉu vi ne ricevis la instrukciojn por konfirmi? forgot_password: Pasvorto forgesita? @@ -617,6 +626,7 @@ eo: x_seconds: "%{count}s" deletes: confirm_password: Enmetu vian nunan pasvorton por konfirmi vian identecon + confirm_username: Enigi vian uzantnomon por konfirmi la procedo proceed: Forigi konton success_msg: Via konto estis sukcese forigita directories: @@ -761,6 +771,7 @@ eo: too_many: Aldoni pli ol 4 dosierojn ne eblas migrations: acct: uzantnomo@domajno de la nova konto + proceed_with_move: Translokigi sekvantoj moderation: title: Kontrolado notification_mailer: @@ -905,6 +916,7 @@ eo: settings: account: Konto account_settings: Agordoj de konto + aliases: Kontoj alinomoj appearance: Apero authorized_apps: Rajtigitaj aplikaĵoj back: Reveni al Mastodon diff --git a/config/locales/es-AR.yml b/config/locales/es-AR.yml index fe61b69c4..d70007d27 100644 --- a/config/locales/es-AR.yml +++ b/config/locales/es-AR.yml @@ -1,5 +1,387 @@ --- es-AR: + about: + about_hashtag_html: Estos son toots públicos etiquetados con #%{hashtag}. Si tenés una cuenta en cualquier parte del fediverso, podés interactuar con ellos. + about_mastodon_html: Mastodon es una red social basada en protocolos abiertos de la web y es software libre y de código abierto. Es descentralizada, como el correo electrónico. + about_this: Acerca de Mastodon + active_count_after: activo + active_footnote: Usuarios activos mensualmente (MAU) + administered_by: 'Administrado por:' + api: API + apps: Aplicaciones móviles + apps_platforms: Usá Mastodon desde iOS, Android y otras plataformas + browse_directory: Explorá el directorio de perfiles y filtrá por intereses + browse_public_posts: Explorá un flujo en tiempo real de toots públicos en Mastodon + contact: Contacto + contact_missing: No establecido + contact_unavailable: No disponible + discover_users: Descubrir usuarios + documentation: Documentación + federation_hint_html: Con una cuenta en %{instance} vas a poder seguir a gente de cualquier servidor de Mastodon y más allá. + get_apps: Probá una aplicación móvil + hosted_on: Mastodon alojado en %{domain} + instance_actor_flash: | + Esta cuenta es un actor virtual usado para representar al propio servidor y no a ningún usuario individual. + Se usa para fines federativos y no debe ser bloqueado a menos que quieras bloquear toda la instancia, en cuyo caso deberías usar un bloqueo de dominio. + learn_more: Aprendé más + privacy_policy: Política de privacidad + see_whats_happening: Esto es lo que está pasando ahora + server_stats: 'Estadísticas del servidor:' + source_code: Código fuente + status_count_after: + one: estado + other: estados + status_count_before: Que enviaron + tagline: Seguí a tus amigos y descubrí nueva gente + terms: Términos del servicio + unavailable_content: Contenido no disponible + unavailable_content_description: + domain: Servidor + reason: Razón + rejecting_media: 'Los archivos de medios de este servidor no van a ser procesados y no se mostrarán miniaturas, lo que requiere un clic manual hacia el archivo original:' + silenced: 'Los toots de estos servidores se ocultarán en las líneas temporales y conversaciones públicas, y no se generarán notificaciones de las interacciones de sus usuarios, a menos que los estés siguiendo:' + suspended: 'No se procesarán, almacenarán o intercambiarán datos de estos servidores, haciendo imposible cualquier interacción o comunicación con los usuarios de estos servidores:' + unavailable_content_html: Mastodon generalmente te permite ver contenido e interactuar con usuarios de cualquier otro servidor en el fediverso. Estas son las excepciones que se hicieron en este servidor en particular. + user_count_after: + one: usuario + other: usuarios + user_count_before: Hogar de + what_is_mastodon: "¿Qué es Mastodon?" + accounts: + choices_html: 'Recomendados de %{name}:' + endorsements_hint: Podés recomendar a gente que seguís desde la interface web, y van a aparecerán acá. + featured_tags_hint: Pdés destacar etiquetas específicas que se mostrarán acá. + follow: Seguir + followers: + one: Seguidor + other: Seguidores + following: Siguiendo + joined: Se unió en %{date} + last_active: última vez activo + link_verified_on: La propiedad de este enlace fue verificada el %{date} + media: Medios + moved_html: "%{name} se mudó a %{new_profile_link}:" + network_hidden: Esta información no está disponible + never_active: Nunca + nothing_here: "¡No hay nada acá!" + people_followed_by: "%{name} sigue a estas personas" + people_who_follow: Estas personas siguen a %{name} + pin_errors: + following: Ya tenés que estar siguiendo a la persona que querés recomendar + posts: + one: Toot + other: Toots + posts_tab_heading: Toots + posts_with_replies: Toots con respuestas + reserved_username: El nombre de usuario está reservado + roles: + admin: Administrador + bot: Bot + moderator: Moderador + unavailable: Perfil no disponible + unfollow: Dejar de seguir + admin: + account_actions: + action: Ejecutar acción + title: Ejecutar acción de moderación en %{acct} + account_moderation_notes: + create: Dejar nota + created_msg: "¡Nota de moderación creada exitosamente!" + delete: Eliminar + destroyed_msg: "¡Nota de moderación destruída exitosamente!" + accounts: + approve: Aprobar + approve_all: Aprobar todas + are_you_sure: "¿Estás seguro?" + avatar: Avatar + by_domain: Dominio + change_email: + changed_msg: "¡Correo electrónico de cuenta cambiado exitosamente!" + current_email: Correo electrónico actual + label: Cambiar correo electrónico + new_email: Nuevo correo electrónico + submit: Cambiar correo electrónico + title: Cambiar correo electrónico para %{username} + confirm: Confirmar + confirmed: Confirmado + confirming: Confirmando + deleted: Eliminado + demote: Bajar de nivel + disable: Deshabilitar + disable_two_factor_authentication: Deshabilitar 2FA + disabled: Deshabilitada + display_name: Nombre para mostrar + domain: Dominio + edit: Editar + email: Correo electrónico + email_status: Estado del correo + enable: Habilitar + enabled: Habilitada + feed_url: Dirección de la fuente web + followers: Seguidores + followers_url: Dirección web de los seguidores + header: Cabecera + inbox_url: Dirección web de la bandeja de entrada + invited_by: Invitado por + ip: Dirección IP + joined: Se unió en + location: + all: Todas + local: Local + remote: Remota + title: Ubicación + login_status: Estado del inicio de sesión + media_attachments: Adjuntos + memorialize: Convertir en recordatorio + moderation: + active: Activa + all: Todas + pending: Pendiente + silenced: Silenciados + suspended: Suspendidos + title: Moderación + moderation_notes: Notas de moderación + most_recent_activity: Actividad más reciente + most_recent_ip: Direcciones IP más recientes + no_account_selected: No se cambió ninguna cuenta ya que ninguna fue seleccionada + no_limits_imposed: Sin límites impuestos + not_subscribed: No suscripto + outbox_url: Dirección web de la bandeja de salida + pending: Revisión pendiente + perform_full_suspension: Suspender + profile_url: Dirección web del perfil + promote: Promocionar + protocol: Protocolo + public: Pública + push_subscription_expires: La suscripción PuSH vence + redownload: Recargar perfil + reject: Rechazar + reject_all: Rechazar todas + remove_avatar: Quitar avatar + remove_header: Quitar cabecera + resend_confirmation: + already_confirmed: Este usuario ya está confirmado + send: Reenviar correo electrónico de confirmación + success: "¡Correo electrónico de confirmación enviado exitosamente!" + reset: Restablecer + reset_password: Cambiar contraseña + resubscribe: Resuscribir + role: Permisos + roles: + admin: Administrador + moderator: Moderador + staff: Equipo + user: Usuario + search: Buscar + shared_inbox_url: Dirección web de la bandeja de entrada compartida + show: + created_reports: Informes hechos + targeted_reports: Denunciado por otros + silence: Silenciar + silenced: Silenciadas + statuses: Estados + subscribe: Suscribirse + suspended: Suspendidas + title: Cuentas + unconfirmed_email: Correo electrónico sin confirmar + undo_silenced: Deshacer silenciado + undo_suspension: Deshacer suspensión + unsubscribe: Desuscribirse + username: Nombre de usuario + warn: Advertir + web: Web + whitelisted: Aprobadas + action_logs: + actions: + assigned_to_self_report: "%{name} se asignó la denuncia %{target} a sí" + change_email_user: "%{name} cambió la dirección de correo electrónico del usuario %{target}" + confirm_user: "%{name} confirmó la dirección de correo del usuario %{target}" + create_account_warning: "%{name} envió una advertencia a %{target}" + create_custom_emoji: "%{name} subió nuevo emoji %{target}" + create_domain_block: "%{name} bloqueó el dominio %{target}" + create_email_domain_block: "%{name} desaprobó el dominio de correo electrónico %{target}" + demote_user: "%{name} bajó de nivel al usuario %{target}" + destroy_custom_emoji: "%{name} destruyó el emoji %{target}" + destroy_domain_block: "%{name} desbloqueó el dominio %{target}" + destroy_email_domain_block: "%{name} aprobó el dominio de correo electrónico %{target}" + destroy_status: "%{name} eliminó el estado de %{target}" + disable_2fa_user: "%{name} deshabilitó el requerimiento de dos factores para el usuario %{target}" + disable_custom_emoji: "%{name} deshabilitó el emoji %{target}" + disable_user: "%{name} deshabilitó el inicio de sesión para el usuario %{target}" + enable_custom_emoji: "%{name} habilitó el emoji %{target}" + enable_user: "%{name} habilitó el inicio de sesión para el usuario %{target}" + memorialize_account: "%{name} convirtió la cuenta de %{target} en una página de recordatorio" + remove_avatar_user: "%{name} quitó el avatar de %{target}" + reopen_report: "%{name} reabrió la denuncia %{target}" + reset_password_user: "%{name} cambió la contraseña del usuario %{target}" + resolve_report: "%{name} resolvió la denuncia %{target}" + silence_account: "%{name} silenció la cuenta de %{target}" + suspend_account: "%{name} suspendió la cuenta de %{target}" + unassigned_report: "%{name} desasignó la denuncia %{target}" + unsilence_account: "%{name} quitó el silenciado de la cuenta de %{target}" + unsuspend_account: "%{name} quitó la suspensión de la cuenta de %{target}" + update_custom_emoji: "%{name} actualizó el emoji %{target}" + update_status: "%{name} actualizó el estado de %{target}" + deleted_status: "(estado borrado)" + title: Registro de auditoría + custom_emojis: + assign_category: Asignar categoría + by_domain: Dominio + copied_msg: Copia local del emoji creada exitosamente + copy: Copiar + copy_failed_msg: No se pudo realizar una copia local de ese emoji + create_new_category: Crear nueva categoría + created_msg: "¡Emoji creado exitosamente!" + delete: Eliminar + destroyed_msg: "¡Emoji destruido exitosamente!" + disable: Deshabilitar + disabled: Deshabilitado + disabled_msg: Se deshabilitó ese emoji exitosamente + emoji: Emoji + enable: Habilitar + enabled: Habilitado + enabled_msg: Se habilitó ese emoji exitosamente + image_hint: PNG de hasta 50KB + list: Lista + listed: Listados + new: + title: Agregar nuevo emoji personalizado + overwrite: Sobreescribir + shortcode: Código corto + shortcode_hint: Al menos 2 caracteres, sólo caracteres alfanuméricos y subguiones ("_") + title: Emojis personalizados + uncategorized: Sin categoría + unlist: No agregar a lista + unlisted: No listado + update_failed_msg: No se pudo actualizar ese emoji + updated_msg: "¡Emoji actualizado exitosamente!" + upload: Subir + dashboard: + authorized_fetch_mode: Modo seguro + backlog: trabajos registrados + config: Configuración + feature_deletions: Eliminaciones de cuenta + feature_invites: Enlaces de invitación + feature_profile_directory: Directorio de perfiles + feature_registrations: Registros + feature_relay: Relé de federación + feature_spam_check: Anti-spam + feature_timeline_preview: Previsualización de la línea temporal + features: Funciones + hidden_service: Federación con servicios ocultos + open_reports: abrir denuncias + pending_tags: etiquetas esperando revisión + pending_users: usuarios esperando revisión + recent_users: Usuarios recientes + search: Búsqueda de texto completo + single_user_mode: Modo de usuario único + software: Software + space: Uso del espacio + title: Panel + total_users: usuarios en total + trends: Tendencias + week_interactions: interacciones esta semana + week_users_active: activos esta semana + week_users_new: usuarios esta semana + whitelist_mode: Modo de aprobación + domain_allows: + add_new: Aprobar dominio + created_msg: El dominio se aprobó exitosamente + destroyed_msg: El dominio no se aprobó + undo: No aprobado + domain_blocks: + add_new: Agregar nuevo bloquedo de dominio + created_msg: Ahora se está procesando el bloquedo de dominio + destroyed_msg: Se deshizo el bloqueo de dominio + domain: Dominio + edit: Editar bloqueo de dominio + existing_domain_block_html: Ya le aplicaste límites más estrictos a %{name}, por lo que primero necesitás desbloquearlo. + new: + create: Crear bloqueo + hint: El bloqueo de dominio no va a prevenir la creación de toots de cuenta en la base de datos, pero se aplicarán métodos específicos de moderación en esas cuentas, retroactiva y automáticamente. + severity: + desc_html: "Silenciar hará que los toots de la cuenta sean invisibles a quienes no estén siguiendo esa cuenta. Suspender quitará todo el contenido, archivos de medio y datos de perfil de la cuenta. Usá Ninguno si simplemente querés rechazar archivos de medios." + noop: Ninguno + silence: Silenciar + suspend: Suspender + title: Nuevo bloquedo de dominio + private_comment: Comentario privado + private_comment_hint: Comentario sobre la limitación de este dominio, para uso interno de los moderadores. + public_comment: Comentario público + public_comment_hint: Comentario sobre la limitación de este dominio para el público en general, si está habilitada la publicación de lista de limitaciones de dominio. + reject_media: Rechazar archivos de medio + reject_media_hint: Quita los archivos de medio almacenados e impide la descarga en el futuro. Irrelevante para suspensiones. + reject_reports: Rechazar denuncias + reject_reports_hint: Ignora todas las denuncias que vengan de este dominio. Irrelevante para suspensiones. + rejecting_media: rechazando archivos de medio + rejecting_reports: rechazando denuncias + severity: + silence: silenciado + suspend: suspendido + show: + affected_accounts: + one: Una cuenta afectada en la base de datos + other: "%{count} cuentas afectadas en la base de datos" + retroactive: + silence: Quitar silenciado de las cuentas existentes afectadas de este dominio + suspend: Quitar suspensión de las cuentas existentes afectadas de este dominio + title: Deshacer el bloqueo de dominio para %{domain} + undo: Deshacer + undo: Deshacer bloqueo de dominio + view: Ver bloqueo de dominio + email_domain_blocks: + add_new: Agregar nuevo + created_msg: Se desaprobó dominio de correo electrónico exitosamente + delete: Eliminar + destroyed_msg: Se aprobó dominio de correo electrónico exitosamente + domain: Dominio + new: + create: Agregar dominio + title: Nueva desaprobación de correo electrónico + title: Desaprobación de correo electrónico + followers: + back_to_account: Volver a la cuenta + title: Seguidores de %{acct} + instances: + by_domain: Dominio + delivery_available: La entrega está disponible + known_accounts: + one: "%{count} cuenta conocida" + other: "%{count} cuentas conocidas" + moderation: + all: Todas + limited: Limitadas + title: Moderación + private_comment: Comentario privado + public_comment: Comentario público + title: Federación + total_blocked_by_us: Bloqueada por nosotros + total_followed_by_them: Seguidos por ellos + total_followed_by_us: Seguidos por nosotros + total_reported: Denuncias sobre ellos + total_storage: Adjuntos + invites: + deactivate_all: Desactivar todas + filter: + all: Todas + available: Disponibles + expired: Vencidas + title: Filtrar + title: Invitaciones + pending_accounts: + title: Cuentas pendientes (%{count}) + relays: + add_new: Agregar nuevo relé + delete: Eliminar + description_html: Un relé de federación es un servidor intermedio que intercambia grandes volúmenes de toots públicos entre servidores que se suscriben y publican en él. Puede ayudar a servidores chicos y medianos a descubrir contenido del fediverso, que de otra manera requeriría que los usuarios locales siguiesen manualmente a personas de servidores remotos. + disable: Deshabilitar + disabled: Deshabilitado + enable: Habilitar + enable_hint: Una vez habilitado, tu servidor se suscribirá a todos los toots públicos desde este relé, y comenzará a enviar los toots públicos de este servidor al relé. + enabled: Habilitado + inbox_url: Dirección web del relé + pending: Esperando aprobación del relé + save_and_enable: Guardar y habilitar errors: '400': The request you submitted was invalid or malformed. '403': You don't have permission to view this page. diff --git a/config/locales/es.yml b/config/locales/es.yml index 0a6341217..8a194fdc1 100644 --- a/config/locales/es.yml +++ b/config/locales/es.yml @@ -18,7 +18,6 @@ es: discover_users: Descubrir usuarios documentation: Documentación federation_hint_html: Con una cuenta en %{instance} usted podrá seguir a las personas en cualquier servidor de Mastodon y más allá. - generic_description: "%{domain} es un servidor en la red" get_apps: Probar una aplicación móvil hosted_on: Mastodon hosteado en %{domain} instance_actor_flash: | @@ -247,6 +246,7 @@ es: enabled: Activado enabled_msg: Se habilitó con éxito ese emoji image_hint: PNG de hasta 50KB + list: Lista listed: Listados new: title: Añadir nuevo emoji personalizado @@ -255,6 +255,7 @@ es: shortcode_hint: Al menos 2 caracteres, solo caracteres alfanuméricos y guiones bajos title: Emojis personalizados uncategorized: Sin clasificar + unlist: No listado unlisted: Sin listar update_failed_msg: No se pudo actualizar ese emoji updated_msg: "¡Emoji actualizado con éxito!" @@ -386,6 +387,7 @@ es: pending: Esperando la aprobación del relés save_and_enable: Guardar y conectar setup: Preparar una conexión de relés + signatures_not_enabled: Los relés no funcionarán correctamente mientras el modo seguro o el modo de lista blanca estén habilitados status: Estado title: Releses report_notes: @@ -434,10 +436,16 @@ es: custom_css: desc_html: Modificar el aspecto con CSS cargado en cada página title: CSS personalizado + default_noindex: + desc_html: Afecta a todos los usuarios que no han cambiado esta configuración por sí mismos + title: Optar por los usuarios fuera de la indexación en los motores de búsqueda por defecto domain_blocks: all: A todos disabled: A nadie + title: Mostrar dominios bloqueados users: Para los usuarios locales que han iniciado sesión + domain_blocks_rationale: + title: Mostrar la razón de ser hero: desc_html: Mostrado en la página principal. Recomendable al menos 600x100px. Por defecto se establece a la miniatura de la instancia title: Imagen de portada @@ -498,6 +506,9 @@ es: desc_html: Mostrar línea de tiempo pública en la portada title: Previsualización title: Ajustes del sitio + trendable_by_default: + desc_html: Afecta a etiquetas que no han sido previamente rechazadas + title: Permitir que las etiquetas sean tendencia sin revisión previa trends: desc_html: Mostrar públicamente hashtags previamente revisados que son tendencia title: Hashtags de tendencia @@ -518,6 +529,7 @@ es: tags: accounts_today: Usos únicos de hoy accounts_week: Usos únicos esta semana + breakdown: Desglose del consumo actual por fuentes context: Contexto directory: En el directorio in_directory: "%{count} en el directorio" @@ -554,6 +566,7 @@ es: add_new: Crear alias created_msg: El nuevo alias se ha creado correctamente. Ahora puedes empezar el traslado desde la cuenta antigua. deleted_msg: Elimina el alias correctamente. El traslado de esa cuenta a esta ya no será posible. + hint_html: Si quieres migrar de otra cuenta a esta, aquí puedes crear un alias, es necesario proceder antes de empezar a mover seguidores de la cuenta anterior a esta. Esta acción por sí misma es inofensiva y reversible. La migración de la cuenta se inicia desde la cuenta antigua. remove: Desvincular alias appearance: advanced_web_interface: Interfaz web avanzada @@ -654,6 +667,7 @@ es: success_msg: Tu cuenta se eliminó con éxito warning: before: 'Antes de continuar, por favor lee con atención las siguientes notas:' + caches: El contenido que ha sido almacenado en caché por otros servidores puede persistir data_removal: Tus publicaciones y el resto de datos se eliminarán definitivamente email_change_html: Puedes cambiar tu dirección de correo electrónico sin eliminar tu cuenta email_contact_html: Si aún no te ha llegado, puedes escribir a %{email} para pedir ayuda @@ -669,7 +683,7 @@ es: domain_validator: invalid_domain: no es un nombre de dominio válido errors: - '400': The request you submitted was invalid or malformed. + '400': La solicitud que has enviado no es valida o estaba malformada. '403': No tienes permiso para acceder a esta página. '404': La página que estabas buscando no existe. '406': Esta página no está disponible en el formato solicitado. @@ -705,6 +719,7 @@ es: add_new: Añadir nuevo errors: limit: Ya has alcanzado la cantidad máxima de hashtags + hint_html: "¿Qué son las etiquetas destacadas? Se muestran de forma prominente en tu perfil público y permiten a los usuarios navegar por tus publicaciones públicas específicamente bajo esas etiquetas. Son una gran herramienta para hacer un seguimiento de trabajos creativos o proyectos a largo plazo." filters: contexts: home: Timeline propio @@ -730,6 +745,7 @@ es: all: Todos changes_saved_msg: "¡Cambios guardados con éxito!" copy: Copiar + no_batch_actions_available: No hay acciones por lotes disponibles en esta página order_by: Ordenar por save_changes: Guardar cambios validation_errors: @@ -805,7 +821,30 @@ es: cancel_explanation: Al cancelar el redireccionamiento se reactivará tu cuenta actual, pero no recuperarás los seguidores que hayan sido trasladados a la otra cuenta. cancelled_msg: El redireccionamiento se ha cancelado correctamente. errors: + already_moved: es la misma cuenta a la que ya has migrado + missing_also_known_as: no está haciendo referencia a esta cuenta + move_to_self: no puede ser la cuenta actual not_found: no se pudo encontrar + on_cooldown: Estás en tiempo de reutilización + followers_count: Seguidores al momento de migrar + incoming_migrations: Migrar de una cuenta diferente + incoming_migrations_html: Para migrar de otra cuenta a esta, primero necesitas crear un alias de la cuenta. + moved_msg: Tu cuenta ahora se está redirigiendo a %{acct} y tus seguidores se están migrando. + not_redirecting: Tu cuenta no se está redirigiendo a ninguna otra cuenta actualmente. + on_cooldown: Has migrado tu cuenta recientemente. Esta función estará disponible de nuevo en %{count} días. + past_migrations: Migraciones pasadas + proceed_with_move: Migrar seguidores + redirecting_to: Tu cuenta se está redirigiendo a %{acct}. + set_redirect: Establecer redirección + warning: + backreference_required: La nueva cuenta debe ser configurada primero para hacer referencia a esta + before: 'Antes de continuar, por favor lee con atención las siguientes notas:' + cooldown: Después de migrar hay un período de espera durante el cual no podrás volver a migrar + disabled_account: Tu cuenta actual no será completamente utilizable después. Sin embargo, tendrás acceso a la exportación de datos así como a la reactivación. + followers: Esta acción migrará a todos los seguidores de la cuenta actual a la nueva cuenta + only_redirect_html: Alternativamente, solo puedes poner una redirección en tu perfil. + other_data: No se moverán otros datos automáticamente + redirect: El perfil de tu cuenta actual se actualizará con un aviso de redirección y será excluido de las búsquedas moderation: title: Moderación notification_mailer: @@ -950,6 +989,7 @@ es: settings: account: Cuenta account_settings: Ajustes de la cuenta + aliases: Alias de la cuenta appearance: Apariencia authorized_apps: Aplicaciones autorizadas back: Volver al inicio @@ -968,7 +1008,7 @@ es: relationships: Siguiendo y seguidores two_factor_authentication: Autenticación de dos factores spam_check: - spam_detected_and_silenced: Este es un informe automatizado. Se ha detectado spam y el remitente ha sido silenciado automáticamente. Si esto es un error, por favor, deja de silenciar la cuenta. + spam_detected: Este es un informe automatizado. Se ha detectado Spam. statuses: attached: description: 'Adjunto: %{attached}' @@ -992,6 +1032,9 @@ es: private: Los toots no-públicos no pueden fijarse reblog: Un boost no puede fijarse poll: + total_people: + one: persona %{count} + other: "%{count} gente" total_votes: one: "%{count} voto" other: "%{count} votos" @@ -1129,7 +1172,9 @@ es: disable: Mientras su cuenta esté congelada, la información de su cuenta permanecerá intacta, pero no puede realizar ninguna acción hasta que se desbloquee. silence: Mientras su cuenta está limitada, sólo las personas que ya le están siguiendo verán sus toots en este servidor, y puede que se le excluya de varios listados públicos. Sin embargo, otros pueden seguirle manualmente. suspend: Su cuenta ha sido suspendida, y todos tus toots y tus archivos multimedia subidos han sido irreversiblemente eliminados de este servidor, y de los servidores donde tenías seguidores. + get_in_touch: Puede responder a esta dirección de correo electrónico para ponerse en contacto con el personal de %{instance}. review_server_policies: Revisar las políticas del servidor + statuses: 'Específicamente, para:' subject: disable: Su cuenta %{acct} ha sido congelada none: Advertencia para %{acct} diff --git a/config/locales/et.yml b/config/locales/et.yml index 0a66d49f4..6b814a23c 100644 --- a/config/locales/et.yml +++ b/config/locales/et.yml @@ -18,7 +18,6 @@ et: discover_users: Avasta kasutajaid documentation: Dokumentatsioon federation_hint_html: Kui Teil on kasutaja %{instance}-is, saate Te jälgida inimesi üks kõik millisel Mastodoni serveril ja kaugemalgi. - generic_description: "%{domain} on ainult üks server terves võrgus" get_apps: Proovi mobiilirakendusi hosted_on: Mastodon majutatud %{domain}-is instance_actor_flash: | @@ -884,8 +883,6 @@ et: profile: Profiil relationships: Jälgitud ja jälgijad two_factor_authentication: Kahesammuline autentimine - spam_check: - spam_detected_and_silenced: See on automatiseeritud teavitus. Rämpspost on tuvastatud ja nende autor on automaatselt vaigistatud. Kui see on viga, palun eemaldage vaigistus. statuses: attached: description: 'Manused: %{attached}' diff --git a/config/locales/eu.yml b/config/locales/eu.yml index a3061b99e..1f2ac6644 100644 --- a/config/locales/eu.yml +++ b/config/locales/eu.yml @@ -4,7 +4,7 @@ eu: about_hashtag_html: Hauek #%{hashtag} traola duten toot publikoak dira. Fedibertsoko edozein kontu baduzu harremanetan jarri zaitezke. about_mastodon_html: Mastodon web protokolo ireki eta libreak darabiltzan gizarte sare bat da. E-mail sarea bezala deszentralizatua da. about_this: Honi buruz - active_count_after: aktiboa + active_count_after: aktibo active_footnote: Hilabeteko erabiltzaile aktiboak (HEA) administered_by: 'Administratzailea(k):' api: APIa @@ -18,7 +18,6 @@ eu: discover_users: Aurkitu erabiltzaileak documentation: Dokumentazioa federation_hint_html: "%{instance} instantzian kontu bat izanda edozein Mastodon zerbitzariko jendea jarraitu ahal izango duzu, eta harago ere." - generic_description: "%{domain} sareko zerbitzari bat da" get_apps: Probatu mugikorrerako aplikazio bat hosted_on: Mastodon %{domain} domeinuan ostatatua instance_actor_flash: 'Kontu hau zerbitzaria bera adierazten duen aktore birtual bat da, ez norbanako bat. Federaziorako erabiltzen da eta ez zenuke blokeatu behar instantzia osoa blokeatu nahi ez baduzu, kasu horretan domeinua blokeatzea egokia litzateke. @@ -35,6 +34,14 @@ eu: status_count_before: Hauek tagline: Jarraitu lagunak eta egin berriak terms: Erabilera baldintzak + unavailable_content: Eduki eskuraezina + unavailable_content_description: + domain: Zerbitzaria + reason: Arrazoia + rejecting_media: 'Zerbitzari hauetako multimedia fitxategiak ez dira prozesatuko ez gordeko, eta ez dira iruditxoak bistaratuko, jatorrizko irudira joan behar izango da klik eginez:' + silenced: 'Zerbitzari hauetako mezuak denbora-lerro eta elkarrizketa publikoetan ezkutatuko dira, eta bere erabiltzaileen interakzioek ez dute jakinarazpenik sortuko ez badituzu jarraitzen:' + suspended: 'Ez da zerbitzari hauetako daturik prozesatuko, gordeko, edo partekatuko, zerbitzari hauetako erabiltzaileekin komunikatzea ezinezkoa eginez:' + unavailable_content_html: Mastodonek orokorrean fedibertsoko beste zerbitzarietako erabiltzaileen edukia ikustea eta beraiekin aritzea ahalbidetzen dizu. Salbuespena egin da zerbitzari zehatz honekin. user_count_after: one: erabiltzaile other: erabiltzaile @@ -42,6 +49,8 @@ eu: what_is_mastodon: Zer da Mastodon? accounts: choices_html: "%{name}(r)en aukerak:" + endorsements_hint: Jarraitzen duzun jendea sustatu dezakezu web interfazearen bidez, eta hemen agertuko da. + featured_tags_hint: Hemen agertuko diren traolak nabarmendu ditzakezu. follow: Jarraitu followers: one: Jarraitzaile @@ -51,7 +60,7 @@ eu: last_active: azkenekoz aktiboa link_verified_on: 'Esteka honen jabetzaren egiaztaketa data: %{date}' media: Multimedia - moved_html: "%{name} hona lekualdatu da %{new_profile_link}:" + moved_html: "%{name} hona migratu da %{new_profile_link}:" network_hidden: Informazio hau ez dago eskuragarri never_active: Inoiz ez nothing_here: Ez dago ezer hemen! @@ -220,19 +229,24 @@ eu: deleted_status: "(ezabatutako mezua)" title: Auditoria-egunkaria custom_emojis: + assign_category: Esleitu kategoria by_domain: Domeinua copied_msg: Ongi sortu da emoji-aren kopia lokala copy: Kopiatu copy_failed_msg: Ezin izan da emoji-aren kopia lokal bat sortu + create_new_category: Sortu kategoria berria created_msg: Emoji-a ongi sortu da! delete: Ezabatu destroyed_msg: Emoji-a ongi suntsitu da! disable: Desgaitu + disabled: Desgaituta disabled_msg: Emoji-a ongi desgaitu da emoji: Emojia enable: Gaitu + enabled: Gaituta enabled_msg: Emoji hori ongi gaitu da image_hint: PNG gehienez 50KB + list: Zerrendatu listed: Zerrendatua new: title: Gehitu emoji pertsonal berria @@ -240,6 +254,8 @@ eu: shortcode: Laster-kodea shortcode_hint: Gutxienez 2 karaktere, alfanumerikoak eta azpimarra besterik ez title: Emoji pertsonalak + uncategorized: Kategoriarik gabe + unlist: Kendu zerrendatik unlisted: Zerrendatu gabea update_failed_msg: Ezin izan da emoji hori eguneratu updated_msg: Emoji-a ongi eguneratu da! @@ -422,6 +438,10 @@ eu: domain_blocks: all: Guztiei disabled: Inori ez + title: Erakutsi domeinu-blokeoak + users: Saioa hasita duten erabiltzaile lokalei + domain_blocks_rationale: + title: Erakutsi arrazoia hero: desc_html: Azaleko orrian bistaratua. Gutxienez 600x100px aholkatzen da. Ezartzen ez bada, zerbitzariaren irudia hartuko du title: Azaleko irudia @@ -483,6 +503,7 @@ eu: title: Denbora-lerroaren aurrebista title: Gunearen ezarpenak trends: + desc_html: Erakutsi publikoki orain joeran dauden aurretik errebisatutako traolak title: Traolak joeran statuses: back_to_account: Atzera kontuaren orrira @@ -504,6 +525,10 @@ eu: context: Testuingurua directory: Direktorioan in_directory: "%{count} direktorioan" + last_active: Azkenekoz aktiboa + most_popular: Erabilienak + most_recent: Azkenak + name: Traola review: Berrikusketaren egoera reviewed: Berrikusita title: Traolak @@ -526,6 +551,14 @@ eu: body: "%{reporter}(e)k %{target} salatu du" body_remote: "%{domain} domeinuko norbaitek %{target} salatu du" subject: Salaketa berria %{instance} instantzian (#%{id}) + new_trending_tag: + subject: Traola berria errebisatzeko %{instance} instantzian (#%{name}) + aliases: + add_new: Sortu ezizena + created_msg: Ongi sortu da ezizena. Orain kontu zaharretik migratzen hasi zaitezke. + deleted_msg: Ongi kendu da ezizena. Orain ezin izango da aurreko kontutik hona migratu. + hint_html: Beste kontu batetik hona migratu nahi baduzu, hemen ezizen bat sortu dezakezu, hau beharrezkoa da kontu zaharreko jarraitzaileak hona ekartzeko. Ekintza hau berez kaltegabea eta desegingarria da. Kontuaren migrazioa kontu zaharretik abiatzen da. + remove: Deslotu ezizena appearance: advanced_web_interface: Web interfaze aurreratua advanced_web_interface_hint: 'Pantaila bere zabalera osoan erabili nahi baduzu, web interfaze aurreratuak hainbat zutabe desberdin konfiguratzea ahalbidetzen dizu, aldi berean nahi beste informazio ikusteko: Hasiera, jakinarazpenak, federatutako denbora-lerroa, edo nahi beste zerrenda eta traola.' @@ -555,12 +588,16 @@ eu: checkbox_agreement_without_rules_html: Erabilera baldintzak onartzen ditut delete_account: Ezabatu kontua delete_account_html: Kontua ezabatu nahi baduzu, jarraitu hemen. Berrestea eskatuko zaizu. + description: + prefix_invited_by_user: "@%{name} erabiltzaileak Mastodon zerbitzari honetara elkartzera gonbidatzen zaitu!" + prefix_sign_up: Eman izena Mastodon-en! + suffix: Kontu bat baduzu, jendea jarraitu ahal izango duzu, mezuak bidali eta Mastodon zein kanpoko zerbitzarietako erabiltzaileekin elkarrizketan aritu! didnt_get_confirmation: Ez dituzu berresteko argibideak jaso? forgot_password: Pasahitza ahaztu duzu? invalid_reset_password_token: Pasahitza berrezartzeko token-a baliogabea da edo iraungitu du. Eskatu beste bat. login: Hasi saioa logout: Amaitu saioa - migrate_account: Lekualdatu beste kontu batera + migrate_account: Migratu beste kontu batera migrate_account_html: Kontu hau beste batera birbideratu nahi baduzu, hemen konfiguratu dezakezu. or_log_in_with: Edo hasi saioa honekin providers: @@ -581,6 +618,7 @@ eu: confirming: E-mail baieztapena osatu bitartean zain. functional: Zure kontua guztiz erabilgarri dago. pending: Zure eskaera gainbegiratzeko dago oraindik. Honek denbora behar lezake. Zure eskaera onartzen bada e-mail bat jasoko duzu. + redirecting_to: Zure kontua ez dago aktibo orain %{acct} kontura birbideratzen duelako. trouble_logging_in: Arazoak saioa hasteko? authorize_follow: already_following: Kontu hau aurretik jarraitzen duzu @@ -593,6 +631,11 @@ eu: return: Erakutsi erabiltzailearen profila web: Joan webera title: Jarraitu %{acct} + challenge: + confirm: Jarraitu + hint_html: "Oharra: Ez dizugu pasahitza berriro eskatuko ordu batez." + invalid_password: Pasahitz baliogabea + prompt: Berretsi pasahitza jarraitzeko datetime: distance_in_words: about_x_hours: "%{count}o" @@ -608,9 +651,18 @@ eu: x_months: "%{count} hilabete" x_seconds: "%{count}s" deletes: + challenge_not_passed: Sartu duzun informazioa ez da zuzena confirm_password: Sartu zure oraingo pasahitza zure identitatea baieztatzeko + confirm_username: Sartu zure erabiltzaile-izena prozedura berresteko proceed: Ezabatu kontua success_msg: Zure kontua ongi ezabatu da + warning: + before: 'Jarraitu aurretik, irakurri adi ohar hauek:' + caches: Beste zerbitzariek cachean duten edukia mantentzea gerta daiteke + data_removal: Zure mezuak eta beste datuak behin betiko ezabatuko dira + more_details_html: Xehetasun gehiagorako, ikusi pribatutasun politika. + username_available: Zure erabiltzaile-izena berriro eskuragarri egongo da + username_unavailable: Zure erabiltzaile-izena ez da eskuragarri egongo directories: directory: Profilen direktorioa explanation: Deskubritu erabiltzaileak interesen arabera @@ -618,10 +670,10 @@ eu: domain_validator: invalid_domain: ez da domeinu izen baliogarria errors: - '400': The request you submitted was invalid or malformed. + '400': Bidali duzun eskaria baliogabea da edo gaizki osatua dago. '403': Ez duzu orri hau ikusteko baimenik. '404': Bilatu duzun orria ez dago hemen. - '406': This page is not available in the requested format. + '406': Orri hau ez dago eskatutako formatuan eskuragarri. '410': Bilatu duzun orria ez dago hemen jada. '422': content: Segurtasun egiaztaketak huts egin du. Cookie-ak blokeatzen dituzu? @@ -750,6 +802,33 @@ eu: too_many: Ezin dira 4 fitxategi baino gehiago erantsi migrations: acct: Kontu berriaren erabiltzaile@domeinua + cancel: Ezeztatu birbideratzea + cancel_explanation: Birbideratzea ezezteak zure kontu hau berriro aktibatuko du, baina ez ditu atzera ekarriko bestera aldatu diren jarraitzaileak. + cancelled_msg: Ongi ezeztatu da birbideratzea. + errors: + already_moved: kontu honetara migratu duzu dagoeneko + missing_also_known_as: ez dio kontu honi erreferentzia egiten + move_to_self: ezin da oraingo kontua izan + not_found: ezin izan da aurkitu + on_cooldown: Egonaldian zaude + followers_count: Jarraitzaileak migrazioaren unean + incoming_migrations: Beste kontu batetik migratuz + incoming_migrations_html: Beste kontu batetik hona migratzeko, aurretik kontuaren ezizen bat sortu behar duzu. + moved_msg: Zure kontuak orain %{acct} kontura birbideratzen du, eta zure jarraitzaileak hara migratuak izaten ari dira. + not_redirecting: Zure kontuak ez du orain beste konturen batera birbideratzen. + on_cooldown: Duela gutxi migratu duzu. Funtzio hau %{count} egun barru egongo da berriro eskuragarri. + past_migrations: Aurreko migrazioak + proceed_with_move: Mugitu jarraitzaileak + redirecting_to: 'Zure kontuak hona birbideratzen du: %{acct}.' + set_redirect: Ezarri birbideratzea + warning: + backreference_required: Kontu berria honi erreferentzia egiteko konfiguratu behar da + before: 'Jarraitu aurretik, irakurri adi ohar hauek:' + cooldown: Migratu eta gero egonaldi tarte bat egongo da eta bitartean ezin izango duzu berriro migratu + followers: Ekintza honek jarraitzaile guztiak eramango ditu uneko kontutik kontu berrira + only_redirect_html: Bestela, zure profilean birbideratze soil bat jarri dezakezu. + other_data: Ez da beste daturik migratuko automatikoki + redirect: Zure uneko kontuaren profila eguneratuko da birbideratze ohar batekin eta bilaketetatik kenduko da moderation: title: Moderazioa notification_mailer: @@ -894,6 +973,7 @@ eu: settings: account: Kontua account_settings: Kontuaren ezarpenak + aliases: Kontuaren ezizenak appearance: Itxura authorized_apps: Baimendutako aplikazioak back: Itzuli Mastodon-era @@ -911,8 +991,6 @@ eu: profile: Profila relationships: Jarraitutakoak eta jarraitzaileak two_factor_authentication: Bi faktoreetako autentifikazioa - spam_check: - spam_detected_and_silenced: Hau salaketa automatiko bat da. Spam-a antzeman da eta igorlea automatikoki isilarazi da. Hau akats bat bada, utzi kontua isilarazteari. statuses: attached: description: 'Erantsita: %{attached}' @@ -936,6 +1014,9 @@ eu: private: Ezin dira publikoak ez diren toot-ak finkatu reblog: Bultzada bat ezin da finkatu poll: + total_people: + one: pertsona %{count} + other: "%{count} pertsona" total_votes: one: Boto %{count} other: "%{count} boto" @@ -1074,6 +1155,7 @@ eu: silence: Zure kontua murriztua dagoen bitartean, jada zu jarraitzen zaituztenak besterik ez dituzte zure Toot-ak ikusiko zerbitzari honetan, eta agian zerrenda publikoetatik kenduko zaizu. Hala ere besteek oraindik zu jarraitu zaitzakete. suspend: Zure kontua kanporatua izan da, zure toot guztiak eta multimedia fitxategiak behin betiko ezabatu dira zerbitzari honetatik, eta zure jarraitzaileen zerbitzarietatik. review_server_policies: Berrikusi zerbitzariko politikak + statuses: 'Zehazki, honentzat:' subject: disable: Zure %{acct} kontua izoztu da none: "%{acct} konturako abisua" diff --git a/config/locales/fa.yml b/config/locales/fa.yml index 8b64c131d..ebac705d8 100644 --- a/config/locales/fa.yml +++ b/config/locales/fa.yml @@ -2,7 +2,7 @@ fa: about: about_hashtag_html: اینها نوشتههای عمومی هستند که برچسب (هشتگ) #%{hashtag} را دارند. اگر شما روی هر سروری حساب داشته باشید میتوانید به این نوشتهها واکنش نشان دهید. - about_mastodon_html: ماستدون (Mastodon) یک شبکهٔ اجتماعی است که بر اساس پروتکلهای آزاد وب و نرمافزارهای آزاد و کدباز ساخته شده است. این شبکه مانند ایمیل غیرمتمرکز است. + about_mastodon_html: 'شبکهٔ اجتماعی آینده: بدون تبلیغات، بدون شنود از طرف شرکتها، طراحی اخلاقمدار، و معماری غیرمتمرکز! با ماستدون صاحب دادههای خودتان باشید!' about_this: درباره active_count_after: فعال active_footnote: کاربران فعال در ماه گذشته @@ -18,7 +18,6 @@ fa: discover_users: یافتن کاربران documentation: مستندات federation_hint_html: با داشتن حساب روی %{instance} میتوانید کاربران همهٔ سرورهای دیگر ماستدون (و سایر شبکههای سازگار با آن) را پی بگیرید. - generic_description: "%{domain} یک سرور روی شبکه است" get_apps: یک اپ موبایل را امتحان کنید hosted_on: ماستدون، میزبانیشده روی %{domain} instance_actor_flash: | @@ -507,6 +506,9 @@ fa: desc_html: نوشتههای عمومی این سرور را در صفحهٔ آغازین نشان دهید title: پیشنمایش نوشتهها title: تنظیمات سایت + trendable_by_default: + desc_html: روی برچسبهایی که پیش از این ممنوع نشدهاند تأثیر میگذارد + title: بگذارید که برچسبهای پرطرفدار بدون بازبینی قبلی نمایش داده شوند trends: desc_html: برچسبهای عمومی که پیشتر بازبینی شدهاند و هماینک پرطرفدارند title: برچسبهای پرطرفدار @@ -1006,7 +1008,7 @@ fa: relationships: پیگیریها و پیگیران two_factor_authentication: ورود دومرحلهای spam_check: - spam_detected_and_silenced: این یک گزارش خودکار است. هرزنامه به طور خودکار تشخیص داده شده و کاربر بیصدا شده است. اگر اشتباهی رخ داده لطفاً حساب را باصدا کنید. + spam_detected: این یک گزارش خودکار برای تشخیص هرزنامه است. statuses: attached: description: 'پیوستشده: %{attached}' diff --git a/config/locales/fi.yml b/config/locales/fi.yml index 2f8fd3497..500c2408f 100644 --- a/config/locales/fi.yml +++ b/config/locales/fi.yml @@ -10,7 +10,6 @@ fi: contact_missing: Ei asetettu contact_unavailable: Ei saatavilla documentation: Dokumentaatio - generic_description: "%{domain} on yksi verkostoon kuuluvista palvelimista" hosted_on: Mastodon palvelimella %{domain} learn_more: Lisätietoja privacy_policy: Tietosuojaseloste diff --git a/config/locales/fr.yml b/config/locales/fr.yml index fbe1c0872..f44a0893f 100644 --- a/config/locales/fr.yml +++ b/config/locales/fr.yml @@ -18,7 +18,6 @@ fr: discover_users: Découvrez des utilisateur·rice·s documentation: Documentation federation_hint_html: Avec un compte sur %{instance}, vous pourrez suivre les gens sur n’importe quel serveur Mastodon et au-delà. - generic_description: "%{domain} est seulement un serveur du réseau" get_apps: Essayez une application mobile hosted_on: Serveur Mastodon hébergée par %{domain} instance_actor_flash: | @@ -51,7 +50,7 @@ fr: accounts: choices_html: "%{name} recommande :" endorsements_hint: Vous pouvez soutenir les personnes que vous suivez depuis l’interface web, et elles apparaîtront ici. - featured_tags_hint: Vous pouvez mettre en avant des hashtags spécifiques qui seront affichés ici. + featured_tags_hint: Vous pouvez recommander des hashtags spécifiques qui seront affichés ici. follow: Suivre followers: one: Abonné·e @@ -378,7 +377,7 @@ fr: relays: add_new: Ajouter un nouveau relais delete: Effacer - description_html: Un relai de fédération est un serveur intermédiaire qui échange de grandes quantités de pouets entre les serveurs qui publient dessus et ceux qui y sont abonnés. Il peut aider les petits et moyen serveurs à découvrir du contenu sur le fediverse, ce qui normalement nécessiterait que les membres locaux suivent des gens inscrits sur des serveurs distants. + description_html: Un relai de fédération est un serveur intermédiaire qui échange de grandes quantités de pouets publics entre les serveurs qui publient dessus et ceux qui y sont abonnés. Il peut aider les petits et moyen serveurs à découvrir du contenu sur le fediverse, ce qui normalement nécessiterait que les membres locaux suivent des gens inscrits sur des serveurs distants. disable: Désactiver disabled: Désactivé enable: Activé @@ -507,6 +506,9 @@ fr: desc_html: Afficher le fil public sur la page d’accueil title: Prévisualisation du fil global title: Paramètres du serveur + trendable_by_default: + desc_html: Affecte les hashtags qui n'ont pas été précédemment non autorisés + title: Autoriser les hashtags à apparaître dans les tendances sans examen préalable trends: desc_html: Afficher publiquement les hashtags approuvés qui sont populaires en ce moment title: Hashtags populaires @@ -558,13 +560,13 @@ fr: body_remote: Quelqu’un de %{domain} a signalé %{target} subject: Nouveau signalement sur %{instance} (#%{id}) new_trending_tag: - body: 'Le hashtag #%{name} est populaire aujourd’hui, mais il n’a pas été approuvé. Il ne sera pas affiché publiquement à moins que l’autorisiez, ou sauvegardez simplement ce formulaire tel quel pour ne plus jamais en entendre parler.' + body: 'Le hashtag #%{name} est populaire aujourd’hui, mais il n’a pas été approuvé. Il ne sera pas affiché publiquement à moins que vous l’autorisiez, ou sauvegardiez simplement ce formulaire tel quel pour ne plus jamais en entendre parler.' subject: Nouveau hashtag en attente de traitement sur %{instance} (#%{name}) aliases: add_new: Créer un alias created_msg: Un nouvel alias a été créé avec succès. Vous pouvez maintenant lancer le déplacement depuis l'ancien compte. - deleted_msg: Suppression réussie de l'alias. Déplacer de ce compte vers celui-ci ne sera plus possible. - hint_html: Si vous voulez passer d'un autre compte à celui-ci, vous pouvez créer ici un alias, qui est nécessaire avant de pouvoir déplacer les abonné·e·s de l'ancien compte à celui-ci. Cette action en soi est inoffensive et réversible. La migration du compte est initiée à partir de l'ancien compte. + deleted_msg: Suppression réussie de l'alias. Le déménagement de ce compte vers celui-ci ne sera plus possible. + hint_html: Si vous voulez déménager d’un autre compte vers celui-ci, vous pouvez créer ici un alias, qui est nécessaire avant de pouvoir migrer les abonné·e·s de l’ancien compte vers celui-ci. Cette action en soi est inoffensive et réversible. La migration du compte est initiée à partir de l’ancien compte. remove: Détacher l'alias appearance: advanced_web_interface: Interface web avancée @@ -604,7 +606,7 @@ fr: invalid_reset_password_token: Le lien de réinitialisation du mot de passe est invalide ou a expiré. Merci de réessayer. login: Se connecter logout: Se déconnecter - migrate_account: Déplacer vers un compte différent + migrate_account: Déménager vers un compte différent migrate_account_html: Si vous voulez rediriger ce compte vers un autre, vous pouvez le configurer ici. or_log_in_with: Ou authentifiez-vous avec providers: @@ -716,7 +718,7 @@ fr: featured_tags: add_new: Ajouter un nouvel hashtag errors: - limit: Vous avez déjà mis en avant le nombre maximum de hashtags + limit: Vous avez déjà recommandé le nombre maximum de hashtags hint_html: "Que sont les hashtags vedettes ? Ils sont affichés avec emphase sur votre flux d'actualités publique et permettent aux gens de parcourir vos messages publics spécifiquement sous ces hashtags. Ils sont un excellent outil pour garder trace des œuvres créatives ou des projets à long terme." filters: contexts: @@ -816,7 +818,7 @@ fr: migrations: acct: profil@domaine du nouveau compte cancel: Annuler la redirection - cancel_explanation: Annuler la redirection réactivera votre compte courant, mais ne rapportera pas les abonnés qui ont été déplacés sur ce compte. + cancel_explanation: Annuler la redirection réactivera votre compte courant, mais ne rapportera pas les abonné·e·s qui ont été déplacé·e·s sur ce compte. cancelled_msg: Suppression de la redirection réussie. errors: already_moved: est le même compte que vous avez déjà déplacé vers @@ -831,15 +833,15 @@ fr: not_redirecting: Votre compte n'est pas redirigé vers un autre compte actuellement. on_cooldown: Vous avez récemment migré votre compte. Cette fonction sera à nouveau disponible dans %{count} jours. past_migrations: Migrations passées - proceed_with_move: Déplacer les abonnés + proceed_with_move: Migrer les abonné·e·s redirecting_to: Votre compte est redirigé vers %{acct}. set_redirect: Définir redirection warning: backreference_required: Le nouveau compte doit d'abord être configuré pour faire référence à celui-ci before: 'Avant de procéder, veuillez lire attentivement ces notes :' - cooldown: Après le déménagement, il y a une période de refroidissement pendant laquelle vous ne pourrez plus bouger + cooldown: Après le déménagement, il y a une période de gel pendant laquelle vous ne pourrez plus re-déménager disabled_account: Votre compte actuel ne sera pas entièrement utilisable par la suite. Cependant, vous aurez accès à l'exportation de données et à la ré-activation. - followers: Cette action va déplacer tous les abonnés du compte courant vers le nouveau compte + followers: Cette action va déménager tou·te·s les abonné·e·s du compte actuel vers le nouveau compte only_redirect_html: Alternativement, vous pouvez seulement appliquer une redirection sur votre profil. other_data: Aucune autre donnée ne sera déplacée automatiquement redirect: Le profil de votre compte actuel sera mis à jour avec un avis de redirection et sera exclu des recherches @@ -995,7 +997,7 @@ fr: development: Développement edit_profile: Modifier le profil export: Export de données - featured_tags: Hashtags mis en avant + featured_tags: Hashtags recommandés identity_proofs: Preuves d’identité import: Import de données import_and_export: Import et export @@ -1006,7 +1008,7 @@ fr: relationships: Abonnements et abonné·e·s two_factor_authentication: Identification à deux facteurs spam_check: - spam_detected_and_silenced: Ceci est un rapport automatisé. Du spam a été détecté et l’expéditeur a été silencié automatiquement. Si c’est une erreur, veuillez désactiver la sourdine du compte. + spam_detected: Ceci est un rapport automatisé. Du spam a été détecté. statuses: attached: description: 'Attaché : %{attached}' diff --git a/config/locales/gl.yml b/config/locales/gl.yml index 3924eeedc..f32575752 100644 --- a/config/locales/gl.yml +++ b/config/locales/gl.yml @@ -1,9 +1,9 @@ --- gl: about: - about_hashtag_html: Estas son mensaxes públicas etiquetadas con #%{hashtag}. Pode interactuar con elas si ten unha conta nalgures do fediverso. + about_hashtag_html: Estas son mensaxes públicas etiquetadas con #%{hashtag}. Podes interactuar con elas se tes unha conta nalgures do fediverso. about_mastodon_html: Mastodon é unha rede social que se basea en protocolos web abertos e libres, software de código aberto. É descentralizada como o correo electrónico. - about_this: Sobre + about_this: Acerca de active_count_after: activo active_footnote: Usuarias Activas no Mes (UAM) administered_by: 'Administrada por:' @@ -18,7 +18,6 @@ gl: discover_users: Descubra usuarias documentation: Documentación federation_hint_html: Con unha conta en %{instance} poderá seguir a outras persoas en calquera dos servidores Mastodon e incluso máis. - generic_description: "%{domain} é un servidor na rede" get_apps: Probe cunha app móbil hosted_on: Mastodon aloxado en %{domain} instance_actor_flash: 'Esta conta é un actor virtual utilizado para representar ao servidor e non a unha usuaria individual. Utilízase para propósitos de federación e non debería estar bloqueada a menos que queira bloquear a toda a instancia, en tal caso debería utilizar o bloqueo do dominio. @@ -37,6 +36,7 @@ gl: terms: Termos do servizo unavailable_content: Contido non dispoñible unavailable_content_description: + domain: Servidor reason: 'Razón:' rejecting_media: Os ficheiros de medios de este servidor non se procesarán e non se mostrarán miniaturas, precisando solicitarse manualmente ao outro servidor. silenced: As publicacións desde este servidor non se mostrarán en ningún lugar excepto no Inicio se segues ao autor. @@ -239,11 +239,14 @@ gl: delete: Eliminar destroyed_msg: Emojo destruído satisfactoriamente! disable: Deshabilitar + disabled: Desactivado disabled_msg: Deshabilitouse correctamente ese emoji emoji: Emoji enable: Habilitar + enabled: Activado enabled_msg: Habilitouse correctamente ese emoji image_hint: PNG ate 50KB + list: A lista listed: Listado new: title: Engadir novo emoji persoalizado @@ -252,6 +255,7 @@ gl: shortcode_hint: Cando menos 2 caracteres, só caracteres alfanuméricos e subliñados title: Emojis persoalizados uncategorized: Sen categorizar + unlist: Sacar da lista unlisted: Non listado update_failed_msg: Non se puido actualizar ese emoji updated_msg: Actualizouse correctamente o emoji! @@ -383,6 +387,7 @@ gl: pending: Agardando polo permiso do repetidor save_and_enable: Gardar e activar setup: Configurar a conexión ao repetidor + signatures_not_enabled: Os repetidores non funcionarán correctamente se o modo seguro ou lista branca están activados status: Estado title: Repetidores report_notes: @@ -501,6 +506,9 @@ gl: desc_html: Mostrar liña de tempo pública na páxina de inicio title: vista previa da liña temporal title: Axustes do sitio + trendable_by_default: + desc_html: Afecta a etiquetas que non foron rexeitadas previamente + title: Permite as etiquetas ser tendencia sen revisión previa trends: desc_html: Mostrar públicamente etiquetas previamente revisadas que actualmente son tendencia title: Etiquetas Tendencia @@ -827,13 +835,16 @@ gl: past_migrations: Migracións pasadas proceed_with_move: Mover seguidoras redirecting_to: A conta está redirixindo cara a %{acct}. + set_redirect: Establecer redirección warning: backreference_required: Tes que configurar primeiro a nova conta para referenciar hacia esta before: 'Antes de seguir, por favor lé estas notas con atención:' cooldown: Tras a migración existe un período de calma durante o cal non poderás voltar a migrar de novo disabled_account: Tras o cambio a túa conta actual non será totalmente usable, pero terás acceso a exportar os datos e tamén a reactivación. followers: Esta acción moverá todas as túas seguidoras desde a conta actual a nova conta + only_redirect_html: De xeito alternativo, podes simplemente por unha redirección no perfil. other_data: Non se moverán outros datos de xeito automático + redirect: O perfil da túa conta actualizarase cun aviso de redirección e será excluído das buscas moderation: title: Moderación notification_mailer: @@ -996,8 +1007,6 @@ gl: profile: Perfil relationships: Seguindo e seguidoras two_factor_authentication: Validar Dobre Factor - spam_check: - spam_detected_and_silenced: Esto é un informe automático. Detectouse spam e o remitente foi bloqueado automáticamente. Se o considera un fallo, por favor desbloquee a conta. statuses: attached: description: 'Axenado: %{attached}' @@ -1021,6 +1030,9 @@ gl: private: As mensaxes non-públicas non poden ser fixadas reblog: Non se poden fixar as mensaxes promovidas poll: + total_people: + one: "%{count} persoa" + other: "%{count} persoas" total_votes: one: "%{count} voto" other: "%{count} votos" diff --git a/config/locales/he.yml b/config/locales/he.yml index f7b121777..50db571dc 100644 --- a/config/locales/he.yml +++ b/config/locales/he.yml @@ -9,7 +9,6 @@ he: contact_missing: ללא הגדרה contact_unavailable: לא רלוונטי/חסר documentation: תיעוד - generic_description: "%{domain} הוא שרת אחד בתוך הרשת" hosted_on: מסטודון שיושב בכתובת %{domain} learn_more: מידע נוסף source_code: קוד מקור diff --git a/config/locales/hu.yml b/config/locales/hu.yml index c1222018d..af7048ebb 100644 --- a/config/locales/hu.yml +++ b/config/locales/hu.yml @@ -18,7 +18,6 @@ hu: discover_users: Találj meg másokat documentation: Dokumentáció federation_hint_html: Egy %{instance} fiókkal bármely más Mastodon szerveren vagy a föderációban lévő felhasználót követni tudsz. - generic_description: "%{domain} csak egy a számtalan szerver közül a föderációban" get_apps: Próbálj ki egy mobil appot hosted_on: "%{domain} Mastodon szerver" instance_actor_flash: 'Ez a fiók egy virtuális szereplő, mely magát a szervert reprezentálja, nem egy felhasználót. Ez a föderáció támogatására készült, ezért nem szabad blokkolni, hacsak egy teljes szervert nem akarsz kitiltani, amire persze a domain blokkolása jobb megoldás. @@ -37,6 +36,7 @@ hu: terms: Felhasználási feltételek unavailable_content: A tartalom nem elérhető unavailable_content_description: + domain: Szerver reason: 'Indok:' rejecting_media: A szerverről származó médiafájlok nem kerülnek feldolgozásra, és nem jelennek meg miniatűrök, amelyek kézi átkattintást igényelnek a másik szerverre. silenced: A szerver hozzászólásai csak a saját hírvonalon jelennek meg, ha követik a szerzőt. @@ -239,11 +239,14 @@ hu: delete: Törlés destroyed_msg: Emoji törlése sikeres! disable: Letiltás + disabled: Letiltva disabled_msg: Emoji letiltva emoji: Emoji enable: Engedélyezés + enabled: Engedélyezve enabled_msg: Emoji engedélyezve image_hint: PNG (maximális méret 50KB) + list: Listázás listed: Listázva new: title: Új egyedi emoji hozzáadása @@ -252,6 +255,7 @@ hu: shortcode_hint: Legalább két karakter, csak betűk, számok és alsóvonás title: Egyedi emojik uncategorized: Nem kategorizált + unlist: Elrejtés a listáról unlisted: Nincs listázva update_failed_msg: Nem sikerült frissíteni az emojit updated_msg: Emoji sikeresen frissítve! @@ -383,6 +387,7 @@ hu: pending: Várakozás a relé jóváhagyására save_and_enable: Mentés és engedélyezés setup: Relé kapcsolat felállítása + signatures_not_enabled: A relék nem fognak jól működni, amíg a biztonságos mód vagy az engedélyező listás mód aktív status: Állapot title: Relék report_notes: @@ -827,13 +832,16 @@ hu: past_migrations: Eddigi költözések proceed_with_move: Követők átköltöztetése redirecting_to: A fiókod át van irányítva ide %{acct}. + set_redirect: Átirányítás beállítása warning: backreference_required: Az új fiókot először be kell úgy állítani, hogy ezt visszahivatkozza before: 'Mielőtt továbbmész, olvasd el ezeket kérlek figyelmesen:' cooldown: A költözés után van egy türelmi idő, mely alatt nem tudsz majd újra költözni disabled_account: A jelenlegi fiókod nem lesz teljesen használható ezután. Viszont elérhető lesz majd az adatexport funkció, valamint a reaktiválás is. followers: Ez a művelet az összes követődet a jelenlegi fiókról az újra fogja költöztetni + only_redirect_html: Az is lehetséges, hogy csak átirányítást raksz a profilodra. other_data: Más adatot nem fogunk automatikusan mozgatni + redirect: A jelenlegi fiókod profiljára átirányításról szóló figyelmeztetést rakunk, valamint már nem fogjuk mutatni a keresésekben moderation: title: Moderáció notification_mailer: @@ -996,8 +1004,6 @@ hu: profile: Profil relationships: Követések és követők two_factor_authentication: Kétlépcsős azonosítás - spam_check: - spam_detected_and_silenced: Ez egy automatikus bejelentés. Spamet érzékeltünk, így a küldőt automatikusan elnémítottuk. Ha ez hiba, oldd fel a némítást. statuses: attached: description: 'Csatolva: %{attached}' @@ -1021,6 +1027,9 @@ hu: private: Csak nyilvános tülköt tűzhetsz ki reblog: Megtolt tülköt nem tudsz kitűzni poll: + total_people: + one: "%{count} személy" + other: "%{count} személy" total_votes: one: "%{count} szavazat" other: "%{count} szavazat" diff --git a/config/locales/id.yml b/config/locales/id.yml index 38cb4e95d..572769a5a 100644 --- a/config/locales/id.yml +++ b/config/locales/id.yml @@ -18,7 +18,6 @@ id: discover_users: Temukan pengguna documentation: Dokumentasi federation_hint_html: Dengan akun di %{instance} Anda dapat mengikuti orang di server Mastodon mana pun dan di luarnya. - generic_description: "%{domain} adalah satu server dalam jaringan" get_apps: Coba aplikasi mobile hosted_on: Mastodon dihosting di %{domain} instance_actor_flash: 'Akun ini adalah aktor virtual yang dipakai untuk merepresentasikan server, bukan pengguna individu. Ini dipakai untuk tujuan federasi dan jangan diblokir kecuali Anda ingin memblokir seluruh instansi, yang seharusnya Anda pakai blokir domain. @@ -145,6 +144,7 @@ id: no_limits_imposed: Tidak ada batasan not_subscribed: Tidak berlangganan outbox_url: URL Kotak keluar + pending: Tinjauan tertunda perform_full_suspension: Lakukan suspen penuh profile_url: URL profil promote: Promosikan @@ -193,7 +193,54 @@ id: action_logs: actions: assigned_to_self_report: "%{name} menugaskan laporan %{target} kpd dirinya sendiri" + change_email_user: "%{name} mengubah alamat surel pengguna %{target}" + confirm_user: "%{name} mengonfirmasi alamat surel pengguna %{target}" + create_account_warning: "%{name} mengirim peringatan untuk %{target}" + create_custom_emoji: "%{name} mengunggah emoji baru %{target}" + create_domain_block: "%{name} memblokir domain %{target}" + create_email_domain_block: "%{name} memasukkan ke daftar hitam domain surel %{target}" + demote_user: "%{name} menurunkan pengguna %{target}" + destroy_custom_emoji: "%{name} menghapus emoji %{target}" + destroy_domain_block: "%{name} membuka blokir domain %{target}" + destroy_email_domain_block: "%{name} memasukkan ke daftar putih surel domain %{target}" + disable_2fa_user: "%{name} mematikan syarat dua faktor utk pengguna %{target}" + disable_custom_emoji: "%{name} mematikan emoji %{target}" + disable_user: "%{name} mematikan login untuk pengguna %{target}" + enable_custom_emoji: "%{name} mengaktifkan emoji %{target}" + enable_user: "%{name} mengaktifkan login untuk pengguna %{target}" + memorialize_account: "%{name} mengubah akun %{target} jadi halaman memorial" + promote_user: "%{name} mempromosikan pengguna %{target}" + remove_avatar_user: "%{name} menghapus avatar %{target}" + reopen_report: "%{name} membuka ulang laporan %{target}" + reset_password_user: "%{name} mereset kata sandi pengguna %{target}" + resolve_report: "%{name} menyelesaikan laporan %{target}" + silence_account: "%{name} membungkam akun %{target}" + suspend_account: "%{name} menangguhkan akun %{target}" + unassigned_report: "%{name} tidak menugaskan laporan %{target}" + unsilence_account: "%{name} menghapus bungkaman akun %{target}" + unsuspend_account: "%{name} menghapus penangguhan akun %{target}" + update_custom_emoji: "%{name} memperbarui emoji %{target}" + deleted_status: "(status dihapus)" + title: Log audit custom_emojis: + assign_category: Beri kategori + by_domain: Domain + copied_msg: Pembuatan salinan lokal emoji berhasil + copy: Salin + copy_failed_msg: Tidak dapat membuat salinan lokal emoji + create_new_category: Buat kategori baru + created_msg: Emoji berhasil dibuat! + delete: Hapus + destroyed_msg: Emoji berhasil dihapus! + disable: Matikan + disabled: Dinonaktifkan + disabled_msg: Emoji berhasil dinonaktifkan + emoji: Emoji + enable: Aktifkan + enabled: Diaktifkan + enabled_msg: Emoji berhasil diaktifkan + image_hint: PNG hingga 50KB + list: Daftar listed: Terdaftar new: title: Tambah emoji kustom baru @@ -209,6 +256,7 @@ id: upload: Unggah dashboard: authorized_fetch_mode: Mode aman + backlog: pekerjaan di-backlog config: Konfigurasi feature_deletions: Penghapusan akun feature_invites: Tautan undangan @@ -222,20 +270,49 @@ id: open_reports: buka laporan pending_tags: tagar menunggu ditinjau pending_users: pengguna menunggu ditinjau + recent_users: Pengguna terbaru + search: Pencarian teks lengkap + single_user_mode: Mode pengguna tunggal + software: Perangkat lunak + space: Penggunaan ruang + title: Dasbor + total_users: total pengguna + trends: Tren + week_interactions: interaksi minggu ini + week_users_active: aktif minggu ini + week_users_new: pengguna minggu ini + whitelist_mode: Mode daftar putih + domain_allows: + add_new: Daftar putihkan domain + created_msg: Domain berhasil masuk daftar putih + destroyed_msg: Domain dihapus dari daftar putih + undo: Hapus dari daftar putih domain_blocks: add_new: Tambah created_msg: Pemblokiran domain sedang diproses destroyed_msg: Pemblokiran domain telah dibatalkan + domain: Domain + edit: Edit blok domain + existing_domain_block_html: Anda telah menerapkan batasan yang lebih ketat pada %{name}, Anda harus membuka blokirnya lebih dulu. new: create: Buat pemblokiran hint: Pemblokiran domain tidak akan menghentikan pembuatan akun dalam database, tapi kami akan memberikan moderasi otomatis pada akun-akun tersebut. severity: desc_html: "Pendiaman akan membuat semua postingan tidak dapat dilihat oleh semua orang yang tidak mengikutinya. Suspen akan menghapus semua konten, media, dan profil dari akun yang bersangkutan." + noop: Tidak ada silence: Pendiaman suspend: Suspen title: Pemblokiran domain baru + private_comment: Komentar pribadi + public_comment: Komentar publik reject_media: Tolak berkas media reject_media_hint: Hapus file media yang tersimpan dan menolak semua unduhan nantinya. Tidak terpengaruh dengan suspen + reject_reports: Tolak laporan + reject_reports_hint: Abaikan semua laporan dari domain ini. Tidak relevan untuk penangguhan + rejecting_media: tolak berkas media + severity: + silence: dibungkam + suspend: ditangguhkan show: affected_accounts: other: "%{count} akun dalam database terpengaruh" @@ -243,22 +320,111 @@ id: silence: Hapus pendiaman terhadap akun pada domain ini suspend: Hapus suspen terhadap akun pada domain ini title: Hapus pemblokiran domain %{domain} + undo: Urungkan + undo: Urungkan blokir domain + view: Lihat blokir domain + email_domain_blocks: + add_new: Tambah baru + created_msg: Berhasil menambahkan domain surel ke daftar hitam + delete: Hapus + destroyed_msg: Berhasil menghapus domain surel dari daftar hitam + domain: Domain + new: + create: Tambah domain + title: Entri daftar hitam surel baru + title: Daftar hitam surel + followers: + back_to_account: Kembali Ke Akun + title: Pengikut %{acct} instances: + by_domain: Domain + delivery_available: Pengiriman tersedia + moderation: + all: Semua + limited: Terbatas + title: Moderasi + private_comment: Komentar pribadi + public_comment: Komentar publik title: Server yang diketahui + total_blocked_by_us: Yang kita blokir + total_followed_by_them: Diikuti mereka + total_followed_by_us: Diikuti kita + total_storage: Lampiran media + invites: + deactivate_all: Nonaktifkan semua + filter: + all: Semua + available: Tersedia + expired: Kedaluwarsa + title: Saring + title: Undang + pending_accounts: + title: Akun tertunda (%{count}) + relays: + add_new: Tambah relai baru + delete: Hapus + disable: Matikan + disabled: Dimatikan + enable: Aktifkan + enable_hint: Saat diaktifkan, server Anda akan melanggan semua toot publik dari relai ini, dan akan mengirim toot publik server ini ke sana. + enabled: Diaktifkan + inbox_url: URL Relai + pending: Menunggu persetujuan relai + save_and_enable: Simpan dan aktifkan + setup: Atur koneksi relai + signatures_not_enabled: Relai tak akan bekerja dengan benar saat mode aman atau mode daftar putih diaktifkan + status: Status + title: Relai + report_notes: + created_msg: Catatan laporan berhasil dibuat! + destroyed_msg: Catatan laporan berhasil dihapus! reports: + account: + note: catatan + report: lapor + action_taken_by: Aksi dilakukan oleh + are_you_sure: Apakah Anda yakin? + assign_to_self: Tugaskan kpd saya + assigned: Moderator tertugas comment: none: Tidak ada + created_at: Dilaporkan mark_as_resolved: Tandai telah diseleseikan + mark_as_unresolved: Tandai belum terselesaikan + notes: + create: Tambah catatan + create_and_resolve: Diselesaikan dengan catatan + create_and_unresolve: Dibuka kembali dengan catatan + delete: Hapus + placeholder: Jelaskan aksi yang telah dilakukan, atau pembaruan lain yang berhubungan... + reopen: Buka lagi laporan report: 'Laporkan #%{id}' reported_account: Akun yang dilaporkan reported_by: Dilaporkan oleh resolved: Terseleseikan + resolved_msg: Laporan berhasil diselesaikan! + status: Status title: Laporan unresolved: Belum Terseleseikan + updated_at: Diperbarui settings: + activity_api_enabled: + desc_html: Hitung status yang dipos scr lokal, pengguna aktif, dan registrasi baru dlm keranjang bulanan + title: Terbitkan statistik keseluruhan tentang aktivitas pengguna + bootstrap_timeline_accounts: + desc_html: Pisahkan nama pengguna dengan koma. Hanya akun lokal dan tak terkunci yang akan bekerja. Isi bawaan jika kosong adalah semua admin lokal. + title: Ikuti scr bawaan untuk pengguna baru contact_information: email: Masukkan alamat email username: Masukkan nama pengguna + custom_css: + desc_html: Ubah tampilan dengan CSS yang dimuat di setiap halaman + title: CSS Kustom + default_noindex: + title: Singkirkan pengguna dari pengindeksan mesin pencari scr bawaan + domain_blocks: + all: Kepada semua orang + title: Lihat blokir domain registrations: closed_message: desc_html: Ditampilkan pada halaman depan saat pendaftaran ditutup%{instance}
kayıtlı olduğunuz sunucu olmayabilir, bu yüzden önce sizi kendi sunucunuza yönlendirmemiz gerekmektedir."
remote_interaction:
favourite:
proceed: Favorilere eklemek için ilerle
@@ -872,6 +941,10 @@ tr:
reply:
proceed: Cevap vermek için ilerle
prompt: 'Bu gönderiye cevap vermek istiyorsunuz:'
+ scheduled_statuses:
+ over_daily_limit: O gün için %{limit} zamanlanmış gönderi sınırını aştınız
+ over_total_limit: "%{limit} zamanlanmış gönderi sınırını aştınız"
+ too_soon: Programlanan tarih bugünden ileri bir tarihte olmalıdır
sessions:
activity: Son aktivite
browser: Tarayıcı
@@ -916,6 +989,7 @@ tr:
settings:
account: Hesap
account_settings: Hesap ayarları
+ aliases: Hesap takma adları
appearance: Görünüm
authorized_apps: Yetkilendirilen uygulamalar
back: Mastodon'a geri dön
@@ -933,6 +1007,8 @@ tr:
profile: Profil
relationships: Takip edilenler ve takipçiler
two_factor_authentication: İki-faktörlü doğrulama
+ spam_check:
+ spam_detected: Bu otomatik bir şikayettir. Spam tespit edildi.
statuses:
attached:
description: 'Ekli: %{attached}'
@@ -951,10 +1027,14 @@ tr:
open_in_web: Web sayfasında aç
over_character_limit: "%{max} karakter limiti aşıldı"
pin_errors:
+ limit: Hali hazırda maksimum sayıda gönderiyi sabitlediniz
ownership: Başkasının gönderisi sabitlenemez
private: Halka açık olmayan gönderi sabitlenemez
reblog: Bir yineleme sabitlenemez
poll:
+ total_people:
+ one: "%{count} kişi"
+ other: "%{count} kişi"
total_votes:
one: "%{count} oy"
other: "%{count} oy"
@@ -980,20 +1060,47 @@ tr:
themes:
contrast: Mastodon (Yüksek karşıtlık)
default: Mastodon (Karanlık)
+ mastodon-light: Mastodon (Açık)
+ time:
+ formats:
+ default: "%b %d, %Y, %H:%M"
+ month: "%b %Y"
two_factor_authentication:
code_hint: Onaylamak için kimlik doğrulama uygulamanızın oluşturduğu kodu giriniz
description_html: Eğer iki-faktörlü kimlik doğrulamayı aktif ederseniz, giriş yaparken sizin için giriş kodu üreten telefonunuza ihtiyaç duyacaksınız.
disable: Devre dışı bırak
enable: Aktifleştir
+ enabled: İki adımlı kimlik doğrulama etkin
enabled_success: İki-faktörlü kimlik doğrulama başarıyla aktif edildi
generate_recovery_codes: Kurtarma Kodlarını Oluştur
instructions_html: Bu QR kodunu, telefonunuzdaki Google Authenticator veya benzer bir TOTP uygulamasıyla taratınız. Bundan sonra giriş yaparken uygulamanın ürettiği kodu kullanarak giriş yapacaksınız.
lost_recovery_codes: Kurtarma kodları telefonunuzu kaybettiğiniz durumlarda hesabınıza erişim yapabilmenize olanak tanır. Eğer kurtarma kodlarınızı kaybettiyseniz burada tekrar oluşturabilirsiniz. Eski kurtarma kodlarınız geçersiz hale gelecektir.
manual_instructions: 'Eğer QR kodunu taratamıyorsanız ve elle giriş yapmanız gerekiyorsa buradaki gizli düz metni girebilirsiniz:'
+ recovery_codes: Kurtarma kodlarını yedekle
recovery_codes_regenerated: Kurtarma kodları başarıyla oluşturuldu
recovery_instructions_html: 'Eğer telefonunuza erişiminizi kaybederseniz, aşağıdaki kurtarma kodlarından birini kullanarak hesabınıza giriş yapabilirsiniz. Kurtarma kodlarınızı güvenli halde tutunuz. Örneğin: kodların çıktısını alıp diğer önemli belgeleriniz ile birlikte saklayabilirsiniz.'
setup: Kuruluma başla
wrong_code: Girdiğiniz kod geçersiz! Telefonunuzun saati geri/ileri kalmış olabilir.
+ user_mailer:
+ backup_ready:
+ explanation: Mastodon hesabınızın tam bir yedeğini istediniz. Şimdi indirmeye hazır!
+ subject: Arşiviniz indirilmeye hazır
+ title: Arşiv paketlemesi
+ warning:
+ explanation:
+ disable: Hesabınız donmuşken, hesap verileriniz bozulmadan kalır, ancak kilidi açılıncaya kadar herhangi bir işlem gerçekleştiremezsiniz.
+ silence: Hesabınız sınırlı iken, yalnızca sizi takip eden kişiler bu sunucuda gönderilerinizi görecek ve çeşitli halka açık listelerin dışında tutulabilirsiniz. Ancak, diğerleri hala sizi manuel olarak takip edebilir.
+ suspend: Hesabınız askıya alındı ve tüm gönderileriniz ve yüklediğiniz medya dosyalarınız bu sunucudan ve takipçilerinizin bulunduğu sunuculardan geri alınamaz şekilde kaldırıldı.
+ get_in_touch: "%{instance} çalışanlarıyla iletişim kurmak için bu e-postayı yanıtlayabilirsiniz."
+ review_server_policies: Sunucu politikalarını inceleyin
+ subject:
+ disable: "%{acct} hesabınız donduruldu"
+ none: "%{acct} için uyarı"
+ silence: "%{acct} hesabınız sınırlandırıldı"
+ suspend: "%{acct} hesabınız askıya alındı"
+ title:
+ disable: Hesap donduruldu
+ none: Uyarı
users:
invalid_email: E-posta adresiniz geçersiz
invalid_otp_token: İki-faktörlü kodunuz geçersiz
diff --git a/config/locales/uk.yml b/config/locales/uk.yml
index ade86d604..1d3459a0f 100644
--- a/config/locales/uk.yml
+++ b/config/locales/uk.yml
@@ -18,7 +18,6 @@ uk:
discover_users: Знайдіть цікавих користувачів
documentation: Документація
federation_hint_html: З обліковим записом на %{instance} ви зможете слідкувати за людьми на будь-якому сервері Mastodon та поза ним.
- generic_description: "%{domain} є одним сервером у мережі"
get_apps: Спробуйте мобільний додаток
hosted_on: Mastodon розміщено на %{domain}
instance_actor_flash: 'Цей обліковий запис є віртуальною особою, яка використовується для представлення самого сервера, а не певного користувача. Він використовується для потреб федерації і не повинен бути заблокований, якщо тільки ви не хочете заблокувати весь сервер, у цьому випадку ви повинні скористатися блокуванням домену.
@@ -37,6 +36,10 @@ uk:
status_count_before: Опубліковано
tagline: Слідкуйте за друзями та знаходьте нових
terms: Правила використання
+ unavailable_content: Недоступний вміст
+ unavailable_content_description:
+ domain: Сервер
+ reason: Причина
user_count_after:
few: користувача
many: користувачів
@@ -236,11 +239,14 @@ uk:
delete: Видалити
destroyed_msg: Емодзі усіпішно видалене!
disable: Вимкнути
+ disabled: Вимкнено
disabled_msg: Емодзі успішно вимкнено
emoji: Емодзі
enable: Увімкнути
+ enabled: Увімкнено
enabled_msg: Емодзі успішно увімкнене
image_hint: PNG розміром до 50 КБ
+ list: Список
listed: У списку
new:
title: Додати новий емодзі
@@ -248,6 +254,7 @@ uk:
shortcode: Шорткод
shortcode_hint: Мінімум два символи, тільки цифрові й латинські символи або підкреслення
title: Особливі емодзі
+ uncategorized: Без категорії
unlisted: Не у списку
update_failed_msg: Не вийшло оновити емозді
updated_msg: Емодзі успішно оновлене!
@@ -382,6 +389,7 @@ uk:
pending: Очікуємо на підтвердження ретранслятором
save_and_enable: Зберегти та увімкнути
setup: Налаштування з'єднання з ретранслятором
+ signatures_not_enabled: Ретранслятори не будуть добре працювати поки ввімкнений безопасний режим або режим білого списка
status: Статус
title: Ретранслятори
report_notes:
@@ -430,6 +438,8 @@ uk:
custom_css:
desc_html: Відобразити вигляд, коли CSS завантажено для кожної сторінки
title: Користувацький CSS
+ default_noindex:
+ desc_html: Впливає на усіх користувачів, які не змінили це настроювання самостійно
domain_blocks:
all: Всi
disabled: Нікого
@@ -520,6 +530,7 @@ uk:
context: Контекст
directory: У каталозі
in_directory: "%{count} у каталозі"
+ name: Хештеґ
review: Переглянути статус
reviewed: Переглянуто
title: Хештеґи
@@ -544,6 +555,10 @@ uk:
subject: Нова скарга до %{instance} (#%{id})
new_trending_tag:
subject: Новий хештеґ надіслано на розгляд до %{instance} (#%{name})
+ aliases:
+ add_new: Створити псевдонім
+ created_msg: Новий псевдонім успішно створено. Тепер ви можете починати переміщення зі старого облікового запису.
+ deleted_msg: Псевдонім успішно видалено. Переміщення з того облікового запису до цього більше не можливе.
appearance:
advanced_web_interface: Розширений web-інтерфейс
advanced_web_interface_hint: 'Розширений веб-інтерфейс дає змогу бачити багато стовпчиків одночасно: основна сторінка, сповіщення, глобальна стрічка, будь-які списки та хештеґи. Потребує широкого екрана.'
@@ -783,6 +798,7 @@ uk:
too_many: Не можна додати більше 4 файлів
migrations:
acct: username@domain нового облікового запису
+ cancel: Скасувати перенаправлення
moderation:
title: Модерація
notification_mailer:
@@ -948,8 +964,6 @@ uk:
profile: Профіль
relationships: Підписки та підписники
two_factor_authentication: Двофакторна авторизація
- spam_check:
- spam_detected_and_silenced: Це автоматично згенерована скарга. Було виявлено розсилку спаму, відправник був автоматично заглушений. Якщо це помилка, зніміть заглушування з облікового запису.
statuses:
attached:
description: 'Прикріплено: %{attached}'
diff --git a/config/locales/zh-CN.yml b/config/locales/zh-CN.yml
index 89506e223..55685c82e 100644
--- a/config/locales/zh-CN.yml
+++ b/config/locales/zh-CN.yml
@@ -18,7 +18,6 @@ zh-CN:
discover_users: 发现用户
documentation: 文档
federation_hint_html: 在%{instance} 上拥有账户后,你可以关注任何 Mastodon 服务器或其他服务器上的人。
- generic_description: "%{domain} 是这个庞大网络中的一台服务器"
get_apps: 尝试移动应用
hosted_on: 一个在 %{domain} 上运行的 Mastodon 实例
learn_more: 了解详情
diff --git a/config/locales/zh-HK.yml b/config/locales/zh-HK.yml
index 6f77f52c3..338cf810e 100644
--- a/config/locales/zh-HK.yml
+++ b/config/locales/zh-HK.yml
@@ -8,7 +8,6 @@ zh-HK:
contact: 聯絡
contact_missing: 未設定
contact_unavailable: 未公開
- generic_description: "%{domain} 是 Mastodon 網絡中其中一個服務站"
hosted_on: 在 %{domain} 運作的 Mastodon 服務站
learn_more: 了解更多
source_code: 源代碼
diff --git a/config/locales/zh-TW.yml b/config/locales/zh-TW.yml
index 7750d596b..bb6e761c7 100644
--- a/config/locales/zh-TW.yml
+++ b/config/locales/zh-TW.yml
@@ -16,7 +16,6 @@ zh-TW:
contact_unavailable: 未公開
discover_users: 探索使用者
documentation: 文件
- generic_description: "%{domain} 是 Mastodon 網路中其中一個站點"
get_apps: 嘗試行動應用程式
hosted_on: 在 %{domain} 運作的 Mastodon 站點
learn_more: 了解詳細
diff --git a/config/settings.yml b/config/settings.yml
index 49c134a25..cfd1e0e24 100644
--- a/config/settings.yml
+++ b/config/settings.yml
@@ -36,6 +36,7 @@ defaults: &defaults
use_blurhash: true
use_pending_items: false
trends: true
+ trendable_by_default: false
notification_emails:
follow: false
reblog: false
diff --git a/db/migrate/20181024224956_migrate_account_conversations.rb b/db/migrate/20181024224956_migrate_account_conversations.rb
index b718f9e1d..d4bc3b91d 100644
--- a/db/migrate/20181024224956_migrate_account_conversations.rb
+++ b/db/migrate/20181024224956_migrate_account_conversations.rb
@@ -52,6 +52,6 @@ class MigrateAccountConversations < ActiveRecord::Migration[5.2]
end
def notifications_about_direct_statuses
- Notification.joins(mention: :status).where(activity_type: 'Mention', statuses: { visibility: :direct })
+ Notification.joins('INNER JOIN mentions ON mentions.id = notifications.activity_id INNER JOIN statuses ON statuses.id = mentions.status_id').where(activity_type: 'Mention', statuses: { visibility: :direct })
end
end
diff --git a/db/migrate/20191007013357_update_pt_locales.rb b/db/migrate/20191007013357_update_pt_locales.rb
new file mode 100644
index 000000000..b7288d38a
--- /dev/null
+++ b/db/migrate/20191007013357_update_pt_locales.rb
@@ -0,0 +1,11 @@
+class UpdatePtLocales < ActiveRecord::Migration[5.2]
+ disable_ddl_transaction!
+
+ def up
+ User.where(locale: 'pt').in_batches.update_all(locale: 'pt-PT')
+ end
+
+ def down
+ User.where(locale: 'pt-PT').in_batches.update_all(locale: 'pt')
+ end
+end
diff --git a/db/schema.rb b/db/schema.rb
index 1d6af852d..a98f4b4d1 100644
--- a/db/schema.rb
+++ b/db/schema.rb
@@ -10,7 +10,7 @@
#
# It's strongly recommended that you check this file into your version control system.
-ActiveRecord::Schema.define(version: 2019_10_01_213028) do
+ActiveRecord::Schema.define(version: 2019_10_07_013357) do
# These are extensions that must be enabled in order to support this database
enable_extension "plpgsql"
@@ -696,6 +696,30 @@ ActiveRecord::Schema.define(version: 2019_10_01_213028) do
t.index ["tag_id", "status_id"], name: "index_statuses_tags_on_tag_id_and_status_id", unique: true
end
+ create_table "stream_entries", force: :cascade do |t|
+ t.bigint "activity_id"
+ t.string "activity_type"
+ t.datetime "created_at", null: false
+ t.datetime "updated_at", null: false
+ t.boolean "hidden", default: false, null: false
+ t.bigint "account_id"
+ t.index ["account_id", "activity_type", "id"], name: "index_stream_entries_on_account_id_and_activity_type_and_id"
+ t.index ["activity_id", "activity_type"], name: "index_stream_entries_on_activity_id_and_activity_type"
+ end
+
+ create_table "subscriptions", force: :cascade do |t|
+ t.string "callback_url", default: "", null: false
+ t.string "secret"
+ t.datetime "expires_at"
+ t.boolean "confirmed", default: false, null: false
+ t.datetime "created_at", null: false
+ t.datetime "updated_at", null: false
+ t.datetime "last_successful_delivery_at"
+ t.string "domain"
+ t.bigint "account_id", null: false
+ t.index ["account_id", "callback_url"], name: "index_subscriptions_on_account_id_and_callback_url", unique: true
+ end
+
create_table "tags", force: :cascade do |t|
t.string "name", default: "", null: false
t.datetime "created_at", null: false
diff --git a/lib/json_ld/identity.rb b/lib/json_ld/identity.rb
new file mode 100644
index 000000000..4fb3f8e9d
--- /dev/null
+++ b/lib/json_ld/identity.rb
@@ -0,0 +1,87 @@
+# -*- encoding: utf-8 -*-
+# frozen_string_literal: true
+# This file generated automatically from http://w3id.org/identity/v1
+require 'json/ld'
+class JSON::LD::Context
+ add_preloaded("http://w3id.org/identity/v1") do
+ new(term_definitions: {
+ "Credential" => TermDefinition.new("Credential", id: "https://w3id.org/credentials#Credential", simple: true),
+ "CryptographicKey" => TermDefinition.new("CryptographicKey", id: "https://w3id.org/security#Key", simple: true),
+ "CryptographicKeyCredential" => TermDefinition.new("CryptographicKeyCredential", id: "https://w3id.org/credentials#CryptographicKeyCredential", simple: true),
+ "EncryptedMessage" => TermDefinition.new("EncryptedMessage", id: "https://w3id.org/security#EncryptedMessage", simple: true),
+ "GraphSignature2012" => TermDefinition.new("GraphSignature2012", id: "https://w3id.org/security#GraphSignature2012", simple: true),
+ "Group" => TermDefinition.new("Group", id: "https://www.w3.org/ns/activitystreams#Group", simple: true),
+ "Identity" => TermDefinition.new("Identity", id: "https://w3id.org/identity#Identity", simple: true),
+ "LinkedDataSignature2015" => TermDefinition.new("LinkedDataSignature2015", id: "https://w3id.org/security#LinkedDataSignature2015", simple: true),
+ "Organization" => TermDefinition.new("Organization", id: "http://schema.org/Organization", simple: true),
+ "Person" => TermDefinition.new("Person", id: "http://schema.org/Person", simple: true),
+ "PostalAddress" => TermDefinition.new("PostalAddress", id: "http://schema.org/PostalAddress", simple: true),
+ "about" => TermDefinition.new("about", id: "http://schema.org/about", type_mapping: "@id"),
+ "accessControl" => TermDefinition.new("accessControl", id: "https://w3id.org/permissions#accessControl", type_mapping: "@id"),
+ "address" => TermDefinition.new("address", id: "http://schema.org/address", type_mapping: "@id"),
+ "addressCountry" => TermDefinition.new("addressCountry", id: "http://schema.org/addressCountry", simple: true),
+ "addressLocality" => TermDefinition.new("addressLocality", id: "http://schema.org/addressLocality", simple: true),
+ "addressRegion" => TermDefinition.new("addressRegion", id: "http://schema.org/addressRegion", simple: true),
+ "cipherAlgorithm" => TermDefinition.new("cipherAlgorithm", id: "https://w3id.org/security#cipherAlgorithm", simple: true),
+ "cipherData" => TermDefinition.new("cipherData", id: "https://w3id.org/security#cipherData", simple: true),
+ "cipherKey" => TermDefinition.new("cipherKey", id: "https://w3id.org/security#cipherKey", simple: true),
+ "claim" => TermDefinition.new("claim", id: "https://w3id.org/credentials#claim", type_mapping: "@id"),
+ "comment" => TermDefinition.new("comment", id: "http://www.w3.org/2000/01/rdf-schema#comment", simple: true),
+ "created" => TermDefinition.new("created", id: "http://purl.org/dc/terms/created", type_mapping: "http://www.w3.org/2001/XMLSchema#dateTime"),
+ "creator" => TermDefinition.new("creator", id: "http://purl.org/dc/terms/creator", type_mapping: "@id"),
+ "cred" => TermDefinition.new("cred", id: "https://w3id.org/credentials#", simple: true, prefix: true),
+ "credential" => TermDefinition.new("credential", id: "https://w3id.org/credentials#credential", type_mapping: "@id"),
+ "dc" => TermDefinition.new("dc", id: "http://purl.org/dc/terms/", simple: true, prefix: true),
+ "description" => TermDefinition.new("description", id: "http://schema.org/description", simple: true),
+ "digestAlgorithm" => TermDefinition.new("digestAlgorithm", id: "https://w3id.org/security#digestAlgorithm", simple: true),
+ "digestValue" => TermDefinition.new("digestValue", id: "https://w3id.org/security#digestValue", simple: true),
+ "domain" => TermDefinition.new("domain", id: "https://w3id.org/security#domain", simple: true),
+ "email" => TermDefinition.new("email", id: "http://schema.org/email", simple: true),
+ "expires" => TermDefinition.new("expires", id: "https://w3id.org/security#expiration", type_mapping: "http://www.w3.org/2001/XMLSchema#dateTime"),
+ "familyName" => TermDefinition.new("familyName", id: "http://schema.org/familyName", simple: true),
+ "givenName" => TermDefinition.new("givenName", id: "http://schema.org/givenName", simple: true),
+ "id" => TermDefinition.new("id", id: "@id", simple: true),
+ "identity" => TermDefinition.new("identity", id: "https://w3id.org/identity#", simple: true, prefix: true),
+ "identityService" => TermDefinition.new("identityService", id: "https://w3id.org/identity#identityService", type_mapping: "@id"),
+ "idp" => TermDefinition.new("idp", id: "https://w3id.org/identity#idp", type_mapping: "@id"),
+ "image" => TermDefinition.new("image", id: "http://schema.org/image", type_mapping: "@id"),
+ "initializationVector" => TermDefinition.new("initializationVector", id: "https://w3id.org/security#initializationVector", simple: true),
+ "issued" => TermDefinition.new("issued", id: "https://w3id.org/credentials#issued", type_mapping: "http://www.w3.org/2001/XMLSchema#dateTime"),
+ "issuer" => TermDefinition.new("issuer", id: "https://w3id.org/credentials#issuer", type_mapping: "@id"),
+ "label" => TermDefinition.new("label", id: "http://www.w3.org/2000/01/rdf-schema#label", simple: true),
+ "member" => TermDefinition.new("member", id: "http://schema.org/member", type_mapping: "@id"),
+ "memberOf" => TermDefinition.new("memberOf", id: "http://schema.org/memberOf", type_mapping: "@id"),
+ "name" => TermDefinition.new("name", id: "http://schema.org/name", simple: true),
+ "nonce" => TermDefinition.new("nonce", id: "https://w3id.org/security#nonce", simple: true),
+ "normalizationAlgorithm" => TermDefinition.new("normalizationAlgorithm", id: "https://w3id.org/security#normalizationAlgorithm", simple: true),
+ "owner" => TermDefinition.new("owner", id: "https://w3id.org/security#owner", type_mapping: "@id"),
+ "password" => TermDefinition.new("password", id: "https://w3id.org/security#password", simple: true),
+ "paymentProcessor" => TermDefinition.new("paymentProcessor", id: "https://w3id.org/payswarm#processor", simple: true),
+ "perm" => TermDefinition.new("perm", id: "https://w3id.org/permissions#", simple: true, prefix: true),
+ "postalCode" => TermDefinition.new("postalCode", id: "http://schema.org/postalCode", simple: true),
+ "preferences" => TermDefinition.new("preferences", id: "https://w3id.org/payswarm#preferences", type_mapping: "@vocab"),
+ "privateKey" => TermDefinition.new("privateKey", id: "https://w3id.org/security#privateKey", type_mapping: "@id"),
+ "privateKeyPem" => TermDefinition.new("privateKeyPem", id: "https://w3id.org/security#privateKeyPem", simple: true),
+ "ps" => TermDefinition.new("ps", id: "https://w3id.org/payswarm#", simple: true, prefix: true),
+ "publicKey" => TermDefinition.new("publicKey", id: "https://w3id.org/security#publicKey", type_mapping: "@id"),
+ "publicKeyPem" => TermDefinition.new("publicKeyPem", id: "https://w3id.org/security#publicKeyPem", simple: true),
+ "publicKeyService" => TermDefinition.new("publicKeyService", id: "https://w3id.org/security#publicKeyService", type_mapping: "@id"),
+ "rdf" => TermDefinition.new("rdf", id: "http://www.w3.org/1999/02/22-rdf-syntax-ns#", simple: true, prefix: true),
+ "rdfs" => TermDefinition.new("rdfs", id: "http://www.w3.org/2000/01/rdf-schema#", simple: true, prefix: true),
+ "recipient" => TermDefinition.new("recipient", id: "https://w3id.org/credentials#recipient", type_mapping: "@id"),
+ "revoked" => TermDefinition.new("revoked", id: "https://w3id.org/security#revoked", type_mapping: "http://www.w3.org/2001/XMLSchema#dateTime"),
+ "schema" => TermDefinition.new("schema", id: "http://schema.org/", simple: true, prefix: true),
+ "sec" => TermDefinition.new("sec", id: "https://w3id.org/security#", simple: true, prefix: true),
+ "signature" => TermDefinition.new("signature", id: "https://w3id.org/security#signature", simple: true),
+ "signatureAlgorithm" => TermDefinition.new("signatureAlgorithm", id: "https://w3id.org/security#signatureAlgorithm", simple: true),
+ "signatureValue" => TermDefinition.new("signatureValue", id: "https://w3id.org/security#signatureValue", simple: true),
+ "streetAddress" => TermDefinition.new("streetAddress", id: "http://schema.org/streetAddress", simple: true),
+ "title" => TermDefinition.new("title", id: "http://purl.org/dc/terms/title", simple: true),
+ "type" => TermDefinition.new("type", id: "@type", simple: true),
+ "url" => TermDefinition.new("url", id: "http://schema.org/url", type_mapping: "@id"),
+ "writePermission" => TermDefinition.new("writePermission", id: "https://w3id.org/permissions#writePermission", type_mapping: "@id"),
+ "xsd" => TermDefinition.new("xsd", id: "http://www.w3.org/2001/XMLSchema#", simple: true, prefix: true)
+ })
+ end
+ alias_preloaded("https://w3id.org/identity/v1", "http://w3id.org/identity/v1")
+end
diff --git a/lib/mastodon/accounts_cli.rb b/lib/mastodon/accounts_cli.rb
index a09a6ab04..6dbb75689 100644
--- a/lib/mastodon/accounts_cli.rb
+++ b/lib/mastodon/accounts_cli.rb
@@ -211,7 +211,6 @@ module Mastodon
end
option :concurrency, type: :numeric, default: 5, aliases: [:c]
- option :verbose, type: :boolean, aliases: [:v]
option :dry_run, type: :boolean
desc 'cull', 'Remove remote accounts that no longer exist'
long_desc <<-LONG_DESC
diff --git a/lib/mastodon/cli_helper.rb b/lib/mastodon/cli_helper.rb
index da7348349..ec4d9a81e 100644
--- a/lib/mastodon/cli_helper.rb
+++ b/lib/mastodon/cli_helper.rb
@@ -15,7 +15,12 @@ module Mastodon
end
def parallelize_with_progress(scope)
- ActiveRecord::Base.configurations[Rails.env]['pool'] = options[:concurrency]
+ if options[:concurrency] < 1
+ say('Cannot run with this concurrency setting, must be at least 1', :red)
+ exit(1)
+ end
+
+ ActiveRecord::Base.configurations[Rails.env]['pool'] = options[:concurrency] + 1
progress = create_progress_bar(scope.count)
pool = Concurrent::FixedThreadPool.new(options[:concurrency])
@@ -27,17 +32,26 @@ module Mastodon
items.each do |item|
futures << Concurrent::Future.execute(executor: pool) do
- ActiveRecord::Base.connection_pool.with_connection do
- begin
- progress.log("Processing #{item.id}") if options[:verbose]
+ begin
+ if !progress.total.nil? && progress.progress + 1 > progress.total
+ # The number of items has changed between start and now,
+ # since there is no good way to predict the final count from
+ # here, just change the progress bar to an indeterminate one
- result = yield(item)
- aggregate.increment(result) if result.is_a?(Integer)
- rescue => e
- progress.log pastel.red("Error processing #{item.id}: #{e}")
- ensure
- progress.increment
+ progress.total = nil
end
+
+ progress.log("Processing #{item.id}") if options[:verbose]
+
+ result = ActiveRecord::Base.connection_pool.with_connection do
+ yield(item)
+ end
+
+ aggregate.increment(result) if result.is_a?(Integer)
+ rescue => e
+ progress.log pastel.red("Error processing #{item.id}: #{e}")
+ ensure
+ progress.increment
end
end
end
@@ -46,7 +60,7 @@ module Mastodon
futures.map(&:value)
end
- progress.finish
+ progress.stop
[total.value, aggregate.value]
end
diff --git a/lib/mastodon/feeds_cli.rb b/lib/mastodon/feeds_cli.rb
index ea7c90dff..578ea15c5 100644
--- a/lib/mastodon/feeds_cli.rb
+++ b/lib/mastodon/feeds_cli.rb
@@ -27,7 +27,6 @@ module Mastodon
dry_run = options[:dry_run] ? '(DRY RUN)' : ''
if options[:all] || username.nil?
-
processed, = parallelize_with_progress(Account.joins(:user).merge(User.active)) do |account|
PrecomputeFeedService.new.call(account) unless options[:dry_run]
end
diff --git a/lib/mastodon/media_cli.rb b/lib/mastodon/media_cli.rb
index ec2f36c30..e48175134 100644
--- a/lib/mastodon/media_cli.rb
+++ b/lib/mastodon/media_cli.rb
@@ -50,6 +50,7 @@ module Mastodon
option :concurrency, type: :numeric, default: 5, aliases: [:c]
option :verbose, type: :boolean, default: false, aliases: [:v]
option :dry_run, type: :boolean, default: false
+ option :force, type: :boolean, default: false
desc 'refresh', 'Fetch remote media files'
long_desc <<-DESC
Re-downloads media attachments from other servers. You must specify the
@@ -62,6 +63,9 @@ module Mastodon
using username@domain handle of the account.
Use the --domain option to download attachments from a specific domain.
+
+ By default, attachments that are believed to be already downloaded will
+ not be re-downloaded. To force re-download of every URL, use --force.
DESC
def refresh
dry_run = options[:dry_run] ? ' (DRY RUN)' : ''
@@ -85,7 +89,7 @@ module Mastodon
end
processed, aggregate = parallelize_with_progress(scope) do |media_attachment|
- next if media_attachment.remote_url.blank?
+ next if media_attachment.remote_url.blank? || (!options[:force] && media_attachment.file_file_name.present?)
unless options[:dry_run]
media_attachment.reset_file!
@@ -97,5 +101,17 @@ module Mastodon
say("Downloaded #{processed} media attachments (approx. #{number_to_human_size(aggregate)})#{dry_run}", :green, true)
end
+
+ desc 'usage', 'Calculate disk space consumed by Mastodon'
+ def usage
+ say("Attachments:\t#{number_to_human_size(MediaAttachment.sum(:file_file_size))} (#{number_to_human_size(MediaAttachment.where(account: Account.local).sum(:file_file_size))} local)")
+ say("Custom emoji:\t#{number_to_human_size(CustomEmoji.sum(:image_file_size))} (#{number_to_human_size(CustomEmoji.local.sum(:image_file_size))} local)")
+ say("Preview cards:\t#{number_to_human_size(PreviewCard.sum(:image_file_size))}")
+ say("Avatars:\t#{number_to_human_size(Account.sum(:avatar_file_size))} (#{number_to_human_size(Account.local.sum(:avatar_file_size))} local)")
+ say("Headers:\t#{number_to_human_size(Account.sum(:header_file_size))} (#{number_to_human_size(Account.local.sum(:header_file_size))} local)")
+ say("Backups:\t#{number_to_human_size(Backup.sum(:dump_file_size))}")
+ say("Imports:\t#{number_to_human_size(Import.sum(:data_file_size))}")
+ say("Settings:\t#{number_to_human_size(SiteUpload.sum(:file_file_size))}")
+ end
end
end
diff --git a/lib/mastodon/version.rb b/lib/mastodon/version.rb
index a0f4678ec..f3ead6d8d 100644
--- a/lib/mastodon/version.rb
+++ b/lib/mastodon/version.rb
@@ -13,7 +13,7 @@ module Mastodon
end
def patch
- 0
+ 1
end
def flags
diff --git a/package.json b/package.json
index 382e0b8d3..433496b84 100644
--- a/package.json
+++ b/package.json
@@ -157,7 +157,7 @@
"stringz": "^2.0.0",
"substring-trie": "^1.0.2",
"terser-webpack-plugin": "^1.4.1",
- "tesseract.js": "^2.0.0-alpha.15",
+ "tesseract.js": "^2.0.0-alpha.16",
"throng": "^4.0.0",
"tiny-queue": "^0.2.1",
"uuid": "^3.1.0",
@@ -174,7 +174,7 @@
"babel-jest": "^24.9.0",
"enzyme": "^3.10.0",
"enzyme-adapter-react-16": "^1.14.0",
- "eslint": "^6.4.0",
+ "eslint": "^6.5.0",
"eslint-plugin-import": "~2.18.2",
"eslint-plugin-jsx-a11y": "~6.2.3",
"eslint-plugin-promise": "~4.2.1",
diff --git a/spec/lib/spam_check_spec.rb b/spec/lib/spam_check_spec.rb
index 4cae46111..d4d66a499 100644
--- a/spec/lib/spam_check_spec.rb
+++ b/spec/lib/spam_check_spec.rb
@@ -181,10 +181,6 @@ RSpec.describe SpamCheck do
described_class.new(status2).flag!
end
- it 'silences the account' do
- expect(sender.silenced?).to be true
- end
-
it 'creates a report about the account' do
expect(sender.targeted_reports.unresolved.count).to eq 1
end
diff --git a/spec/models/account_spec.rb b/spec/models/account_spec.rb
index 3eec464bd..b2f6234cb 100644
--- a/spec/models/account_spec.rb
+++ b/spec/models/account_spec.rb
@@ -126,8 +126,8 @@ RSpec.describe Account, type: :model do
end
it 'sets default avatar, header, avatar_remote_url, and header_remote_url' do
- expect(account.avatar_remote_url).to eq ''
- expect(account.header_remote_url).to eq ''
+ expect(account.avatar_remote_url).to eq 'https://remote.test/invalid_avatar'
+ expect(account.header_remote_url).to eq expectation.header_remote_url
expect(account.avatar_file_name).to eq nil
expect(account.header_file_name).to eq nil
end
diff --git a/spec/models/concerns/remotable_spec.rb b/spec/models/concerns/remotable_spec.rb
index a4289cc45..99a60cbf6 100644
--- a/spec/models/concerns/remotable_spec.rb
+++ b/spec/models/concerns/remotable_spec.rb
@@ -18,6 +18,8 @@ RSpec.describe Remotable do
def hoge=(arg); end
+ def hoge_file_name; end
+
def hoge_file_name=(arg); end
def has_attribute?(arg); end
@@ -109,12 +111,21 @@ RSpec.describe Remotable do
end
context 'foo[attribute_name] == url' do
- it 'makes no request' do
+ it 'makes no request if file is saved' do
allow(foo).to receive(:[]).with(attribute_name).and_return(url)
+ allow(foo).to receive(:hoge_file_name).and_return('foo.jpg')
foo.hoge_remote_url = url
expect(request).not_to have_been_requested
end
+
+ it 'makes request if file is not saved' do
+ allow(foo).to receive(:[]).with(attribute_name).and_return(url)
+ allow(foo).to receive(:hoge_file_name).and_return(nil)
+
+ foo.hoge_remote_url = url
+ expect(request).to have_been_requested
+ end
end
context "scheme is https, parsed_url.host isn't empty, and foo[attribute_name] != url" do
diff --git a/spec/models/home_feed_spec.rb b/spec/models/home_feed_spec.rb
index 3acb997f1..ee7a83960 100644
--- a/spec/models/home_feed_spec.rb
+++ b/spec/models/home_feed_spec.rb
@@ -34,11 +34,10 @@ RSpec.describe HomeFeed, type: :model do
Redis.current.set("account:#{account.id}:regeneration", true)
end
- it 'gets statuses with ids in the range from database' do
+ it 'returns nothing' do
results = subject.get(3)
- expect(results.map(&:id)).to eq [10, 3, 2]
- expect(results.first.attributes.keys).to include('id', 'updated_at')
+ expect(results.map(&:id)).to eq []
end
end
end
diff --git a/spec/models/status_spec.rb b/spec/models/status_spec.rb
index e2aaea53c..0b6086978 100644
--- a/spec/models/status_spec.rb
+++ b/spec/models/status_spec.rb
@@ -296,49 +296,6 @@ RSpec.describe Status, type: :model do
end
end
- describe '.as_home_timeline' do
- let(:account) { Fabricate(:account) }
- let(:followed) { Fabricate(:account) }
- let(:not_followed) { Fabricate(:account) }
-
- before do
- Fabricate(:follow, account: account, target_account: followed)
-
- @self_status = Fabricate(:status, account: account, visibility: :public)
- @self_direct_status = Fabricate(:status, account: account, visibility: :direct)
- @followed_status = Fabricate(:status, account: followed, visibility: :public)
- @followed_direct_status = Fabricate(:status, account: followed, visibility: :direct)
- @not_followed_status = Fabricate(:status, account: not_followed, visibility: :public)
-
- @results = Status.as_home_timeline(account)
- end
-
- it 'includes statuses from self' do
- expect(@results).to include(@self_status)
- end
-
- it 'does not include direct statuses from self' do
- expect(@results).to_not include(@self_direct_status)
- end
-
- it 'includes statuses from followed' do
- expect(@results).to include(@followed_status)
- end
-
- it 'does not include direct statuses mentioning recipient from followed' do
- Fabricate(:mention, account: account, status: @followed_direct_status)
- expect(@results).to_not include(@followed_direct_status)
- end
-
- it 'does not include direct statuses not mentioning recipient from followed' do
- expect(@results).not_to include(@followed_direct_status)
- end
-
- it 'does not include statuses from non-followed' do
- expect(@results).not_to include(@not_followed_status)
- end
- end
-
describe '.as_public_timeline' do
it 'only includes statuses with public visibility' do
public_status = Fabricate(:status, visibility: :public)
diff --git a/yarn.lock b/yarn.lock
index d2b31036f..74323bf5b 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -3917,10 +3917,10 @@ eslint@^2.7.0:
text-table "~0.2.0"
user-home "^2.0.0"
-eslint@^6.4.0:
- version "6.4.0"
- resolved "https://registry.yarnpkg.com/eslint/-/eslint-6.4.0.tgz#5aa9227c3fbe921982b2eda94ba0d7fae858611a"
- integrity sha512-WTVEzK3lSFoXUovDHEbkJqCVPEPwbhCq4trDktNI6ygs7aO41d4cDT0JFAT5MivzZeVLWlg7vHL+bgrQv/t3vA==
+eslint@^6.5.0:
+ version "6.5.0"
+ resolved "https://registry.yarnpkg.com/eslint/-/eslint-6.5.0.tgz#304623eec903969dd5c9f2d61c6ce3d6ecec8750"
+ integrity sha512-IIbSW+vKOqMatPmS9ayyku4tvWxHY2iricSRtOz6+ZA5IPRlgXzEL0u/j6dr4eha0ugmhMwDTqxtmNu3kj9O4w==
dependencies:
"@babel/code-frame" "^7.0.0"
ajv "^6.10.0"
@@ -4001,12 +4001,7 @@ esrecurse@^4.1.0:
dependencies:
estraverse "^4.1.0"
-estraverse@^4.0.0, estraverse@^4.2.0:
- version "4.2.0"
- resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-4.2.0.tgz#0dee3fed31fcd469618ce7342099fc1afa0bdb13"
- integrity sha1-De4/7TH81GlhjOc0IJn8GvoL2xM=
-
-estraverse@^4.1.0, estraverse@^4.1.1:
+estraverse@^4.0.0, estraverse@^4.1.0, estraverse@^4.1.1, estraverse@^4.2.0:
version "4.3.0"
resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-4.3.0.tgz#398ad3f3c5a24948be7725e83d11a7de28cdbd1d"
integrity sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==
@@ -7001,11 +6996,6 @@ node-fetch@^1.0.1:
encoding "^0.1.11"
is-stream "^1.0.1"
-node-fetch@^2.3.0:
- version "2.6.0"
- resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.6.0.tgz#e633456386d4aa55863f676a7ab0daa8fdecb0fd"
- integrity sha512-8dG4H5ujfvFiqDmVu9fQ5bOHUC15JMjMY/Zumv26oOvvVJjM67KF8koCWIabKQ1GJIa9r2mMZscBq/TbdOcmNA==
-
node-forge@0.8.2:
version "0.8.2"
resolved "https://registry.yarnpkg.com/node-forge/-/node-forge-0.8.2.tgz#b4bcc59fb12ce77a8825fc6a783dfe3182499c5a"
@@ -9390,21 +9380,16 @@ selfsigned@^1.10.6:
dependencies:
node-forge "0.8.2"
-"semver@2 || 3 || 4 || 5", semver@^5.4.1, semver@^5.5.1, semver@^5.7.0:
- version "5.7.0"
- resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.0.tgz#790a7cf6fea5459bac96110b29b60412dc8ff96b"
- integrity sha512-Ya52jSX2u7QKghxeoFGpLwCtGlt7j0oY9DYb5apt9nPlJ42ID+ulTXESnt/qAQcoSERyZ5sl3LDIOw0nAn/5DA==
+"semver@2 || 3 || 4 || 5", semver@^5.3.0, semver@^5.4.1, semver@^5.5.0, semver@^5.5.1, semver@^5.6.0, semver@^5.7.0:
+ version "5.7.1"
+ resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.1.tgz#a954f931aeba508d307bbf069eff0c01c96116f7"
+ integrity sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==
semver@4.3.2:
version "4.3.2"
resolved "https://registry.yarnpkg.com/semver/-/semver-4.3.2.tgz#c7a07158a80bedd052355b770d82d6640f803be7"
integrity sha1-x6BxWKgL7dBSNVt3DYLWZA+AO+c=
-semver@^5.3.0, semver@^5.5.0, semver@^5.6.0:
- version "5.7.1"
- resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.1.tgz#a954f931aeba508d307bbf069eff0c01c96116f7"
- integrity sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==
-
semver@^6.0.0, semver@^6.1.0, semver@^6.1.2, semver@^6.2.0, semver@^6.3.0:
version "6.3.0"
resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.0.tgz#ee0a64c8af5e8ceea67687b133761e1becbd1d3d"
@@ -10095,10 +10080,10 @@ terser@^4.1.2:
source-map "~0.6.1"
source-map-support "~0.5.12"
-tesseract.js-core@^2.0.0-beta.11:
- version "2.0.0-beta.11"
- resolved "https://registry.yarnpkg.com/tesseract.js-core/-/tesseract.js-core-2.0.0-beta.11.tgz#c35e3e689efad30138603977ad7eaaac44c7fd37"
- integrity sha512-07haKH2JYYo0OfIJoioMS9dDiI5Hrl7+r1MqjeNAAT5WpKO0ATe4cpncC8s1kz0e3s1kaC5WOwL3YJcjbJE+hg==
+tesseract.js-core@^2.0.0-beta.12:
+ version "2.0.0-beta.13"
+ resolved "https://registry.yarnpkg.com/tesseract.js-core/-/tesseract.js-core-2.0.0-beta.13.tgz#a21d798e88098898a9bdd935d0553215e03274f8"
+ integrity sha512-GboWV/aV5h+Whito6L6Q3WCFZ2+lgxZGgjY84wSpWbTLEkkZgHsU+dz1or+3rWSABH/nuzHDco1bZRk5+f94mw==
tesseract.js-utils@^1.0.0-beta.8:
version "1.0.0-beta.8"
@@ -10112,18 +10097,17 @@ tesseract.js-utils@^1.0.0-beta.8:
is-url "^1.2.4"
zlibjs "^0.3.1"
-tesseract.js@^2.0.0-alpha.15:
- version "2.0.0-alpha.15"
- resolved "https://registry.yarnpkg.com/tesseract.js/-/tesseract.js-2.0.0-alpha.15.tgz#9887f4d1c10e25bb098fde7a10580c865c362fad"
- integrity sha512-qM1XUFVlTO+tx6oVRpd9QQ8PwQLxo3qhbfIHByUlUVIqWx6y/U9xlHIaG033/Tjfs2EQ0NAehPTOJ+eNElsXEg==
+tesseract.js@^2.0.0-alpha.16:
+ version "2.0.0-alpha.16"
+ resolved "https://registry.yarnpkg.com/tesseract.js/-/tesseract.js-2.0.0-alpha.16.tgz#1e17717234a1464481abe12283f2c3ac79603d2e"
+ integrity sha512-8g3je2Kl8rkAFtpmwilGGj+8rCiPClNQaCjW6IafOPNn7hzFnVdL6fU6rG1Xsrc4Twv0HOa75kbpx5u70/WbTA==
dependencies:
axios "^0.18.0"
check-types "^7.4.0"
is-url "1.2.2"
- node-fetch "^2.3.0"
opencollective-postinstall "^2.0.2"
resolve-url "^0.2.1"
- tesseract.js-core "^2.0.0-beta.11"
+ tesseract.js-core "^2.0.0-beta.12"
tesseract.js-utils "^1.0.0-beta.8"
test-exclude@^5.0.0: