From cd252b794e4fc473b1ecece79a51f1f2dc1f0812 Mon Sep 17 00:00:00 2001 From: Konrad Pozniak Date: Sun, 11 Mar 2018 14:55:38 +0100 Subject: [PATCH 01/15] add new avatar placeholder missing.png (#6728) --- public/avatars/original/missing.png | Bin 2977 -> 3292 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/public/avatars/original/missing.png b/public/avatars/original/missing.png index 53cffc3122a5066e95d2e92d0afe42dcaea425d3..34c8e45e61ce1e1ddeb6a9f69dc1979816a7286e 100644 GIT binary patch literal 3292 zcmZ{ncRUo1|HseFopoFnopm^?Q1+H_#uX=CCK*I6ZT0c(@POLQb zPF1vx4^6G&2j|*}GySAx?8k}94pKG#YXNR3=3Qrac56oE=RE9Sa&fm%*Xk?)z@&yk zYMS}aQV8MyP6EOT{#I~QQ2&SjGtS@bQn~5EZvy<9g_dd9M*S~xJ>A?y+Er8_W3qL1 zf6%F4`Od;ol5YmTdAHuIP`PD5a{406j5mdW3MW1%C^(<_AIPQG91D+k<_0a z5R}g>W$iTU0wJ3sO-C>*GM>u-dauX-4Cf{B7lBs0T&|G$_Ibust&kMXm-oO+A%3U8 z&alY)Fi$QjAF@MJ^0a!^26WwRUqo}uk=3#m+J9$N#@Ay2dCqKIMqBRSnU8 zA{KEMvH@+Z5v8G-1A3BK1vi|TUn-kEtd;mS`XEH+k%RkmaU@2E8Q+tno?qsAbZFyn zbj@8rjay{Ywjuy7nXVni3?h>if=eUSS64*SehvLXUX7#G7w(Gq^2>tx+ok#PXipEWi~w*;lj75IrrCr4_=Jz08m~?EpLQKxnZaNWAPt&|R+PHPNrNVk~91 z$1x#N?dqHjgz>J{`tX;1FsbZ6g(dK)FJ9*qMfi`De!!juTLXP_YRKMPxAKgH6G3py zcE+$+xRAu1%B@!%eX@mqp&^}!=c!^}AaTv34~5nM+qAV&jJxo*1WqfV)2&Xzj+0*+ zV0)d#T81}e7lgO>L6%vKH&k!4EZ%;%8-}gj#-b^PnUOTz>Zg;~+ms&gWe0?XS`}M6 zM|`;z#iKJq#Oabikt4sPB^*)i_^k2h2aQt5oeNp}@c!xXTMIQB2y^kbIT@U>%XOCM zPg)3F&?H0W;4A5eQd8oLC|Y$BJxyIlQ^K`u*7D*fQS)-{VYKWw8azdb2KO%`(oVL; zl(cWS55=eI&&%AuT*5C5se)KHI5mRt!iDg-jbrT;E_ms&Ee@4xUQt* zORgWuZ3?XYTH?y%vrY278em3W!`%n=n!HjfVv}!!wwsQkyvR%^PD;n=_<#J?l3yaA zmX>n8|KnC!?|JbT7%a^^qo}!vE5Ea64vtUyCSpNrYA@oL=4_`C3*eq-o8MiIEYK zc?P8WyjNk9js1!mybm7kROoJPh5IIFcLcmSD7M3+zvB0%3WH*{ z$N#Hv)9?Bvy^EOIk?IE$k>$0wa!aexzH)@`w1i!a!*fito@Hb#s&aUH5On)|D5^~3sz=fm z7d^U$u3r?%q^$kShEOMv)SNyz+iaAR5Ld~Q&zKq&@w}|!GRctKo5XG*ldKg0^0}cA ztu=^cTQO~on^JgxnH*A{5tqP(kfbY3kJlXESNaXay6IX*i0pq!-s*TU zK03iw)Anehad0*jUGsV0cH^z*sd_C1r}QL31S(#D@K@AeZ6myf94giy)TqOFKRpv^ z7GON8id)RQ5l<7oocLU)Huw&+Py1B%Vg9yw zq%buAJ!#eB@VvzU5zQ-78rp{dOyBDPeKfvv3$j5rSSM;>RbSWKi5y1ev4FLxqs3j! zMTnF*G$6wS}Tdv2DMI$)<3Gl(%v= zaYe!?$A^U|wi55k0}JZdJlQtaZgy4E4n|_9$sT8P{6^ZXhOfo zZ*g7psann+53viw*Fjn#!NhMVrg@dFa^a3vG9|eh*AFyo_#ST#XRCVuM;@EGOkEoh zDvSGx7LqPkbdhiQ^wTPUtFr4=e5}R&Pcct8(^g^s$Q8rzAybuCKP`>Ty**ZT${((y z%c8}-NAemx!CuM6>Yub}ss7}%s_{drQjpt9`vC5mrCwmlubbO%Sqoi(jG3lTcgYcB z9Q`9z&51KuZJXV%wC{53s;B|n*MkF-te14m3n;-1Ih;Xhq0j6m-}z~g5S=*u-)68x z;lz3@MPASQZSmw*-xY*qIb%LtU^QfSdRoY=?vTHt#o6b$#(K%HG{k)Ho%W3Y_V)H5 zUT>7zh`xA!z>1UoqdQaed~TX1zUPg8vL1%EFMV#G#ufkgjqJf4iK0tx84L3laVvN@ zJao6fAX>LRpvdz9)I15t);~RSjzUe;o&K7aGW4%Azs4oL3w{;pHo<1ox7ptuh){7n zip)GYBxr8in41-M22dq#!N&Jb{EsT!n+LrR(!ko%-`;@79@ZOUyT?$D za+Fibkqei&DkGIqGNSIcP0*jmr~>n4Mij-FWWo)k`I16?&fzl1jh*GxsjF_s8=L5eXnCE`?8% zcD1mg#`ScFTnpV!fqYWis6he T1m@pU{u3x2G_pqP0p|YzWF96{ literal 2977 zcmdT`c~lZu7pFPpzO*>0XzG;ZjymF!>sT4;l%$hFic6N^Qm!B-Dy1_M456iCjS5=! zxs95dlBlU!CS#%=MR5tGG$L2R1s4Q9ocVuFe}3P2=ic{wclq6O-Z}5yN4VevQB?ve z0RRA1FV8c60KgveT~UyeS#G9hqh*_1_>Yh?0O{^})LxM%vna-UUP=N0ln?F79zY>k zOJX2^A}*Z z)ih-Uie6{jFQ!Z`O~w4A11o;{0jG@GcboPud-g7!U^HP!otWfH_XwvLBMz6Ka&!l~ z9=7`}L)2XQcbA%e>OFVeS=qt`>i?&KrE!8`#xj$K!mOZTj8t#w8f$&?Lp@-x@_utb z*Ejpk|Hd-4i)CuB@>e>)I`Cgh{C}|A+OUmLp!KUkK{FyG_P*M%Kq^`cIi|D+ZJKY0KLIG7u=Cb6Z-D*t#vj0hKC0iVmHuw&90x(;K6sZaE~)J7NaL- z(yM64o(tg8vq=WX6dO6J2>75jsZHr zEIeux(ZvhzKkmHFBr66VJYYto5^hSPNBz>ok;ihcI+)xPY)3jTE3mq?pMGEVPFSI&i5L)SuJY5xHJEI@hr==-|-NN_;hZ%Jv!(d1BrLQ3IQ4 z#P-b^O2u35Yuf`zMb^&~PR=>ApS~Q-omo8RoKe5xi<2D6kRYVN^l+EX^$>;fx2kA-8KJoa_HZHL7@b!BX@=9^PZoUwXlx%k(dmca3r zMUT}N6h+QXcW2!Ot8TzOmS2)SQvK~F`nj95i0U-ukd77Q84}j>TY|)?yqL1efZv9I z6k=*a5|G|6>{JVAb~8t)G{@9{Pv9D(pM;R2TeNC@?6<}4y7uq%BStm5TCMLG!63$@ ztwd0{S2Zbc$Jy~ddmhEXQtPchFuQ8FZ@gbjE@hWXG&3W-|A>S1pQ}$yBrwphjev*c zyd1kW(-`Q3V>RqH8ci41e!+q}V>>wZ*4L!}EVgNddclm|Gam%K!ut34|J0YGKKTkkCS+X56pLS3Y%`7-_G#Y2dlg zhB+Omfvn(N@h4LV69tB;VsNe@ftYN6_|v|=->vR|Y#M$uBqUb-Q8ZReVWB~yga;@6 zcFJBeY`z(LP{G&rsYRqBYxdV5<|AU={TLJe;?*Q>t23aW5I7f5|#*~LO_H70h+UQ%3h39-ye&yZrU$WeR^orMci{h^L(MSxiVfc@MRoGMr&iVK` zCOA63RJ|jN3#(10LU>K+fK005txSpj~aRT1*aLV&$8jBEXiF10qkd$wnll>@= z65Hf7B{(|_F2|s)j?P#$s^6HP0QZ{lO}XKWoMq{eC}5jBuVu&O8N}BKiyWF)8Km2O z>hmoeuJG2k51I|)GY%^aRl?HV?=zDwBSE^;(=pj4g+e6_W*iAlkFV1U;C&AGkN#prN;B&v!0A3^VS zrh04G`M(S_l>}e%dNxHRAx9vVcX-bN9!|Sdu`8iGl+}6Wc-l>?X)qR-Zk^--kox>H zh<2o#eax|hL_36BXwcI)F!eE2Z?*RElLTH}wyen@OuKPXdOFh`0?*?Kkk!^UljV(= zlmm4eMRLcHK7~u;lNqABz2J_NdeeYR+k!vy!(}bZP9o8_6mmp!Z`tHkR)q6J+My^% zvXU#UQLB&m{Cfq~-k_jjqCDnTqev#0uscj=%kOBilb3w#CBoSvL4<=D$=jLMb~S8o z%!>F!9+%c^m!`lAyVt|XV3X1zfz8{0%@0B`Jy3q^NS}cFdOb+|1EOo@N$T3%N{UI^ zz4C^3EHElsJZm>O5!b^t4){?ye{*~2EQ3a3km?U(Ps`pUqyz+^I_p6CiJL3x3$qc4 zvG3eKX7>%f*5tEf-SVVTI64Vu|J)W({xcwRpTgl=VS5w~8^C4Q0RA_Ysa^b4&aV#q h*AoBpEH6Kb+$hOA>?Mw*RrYfRczO7od3q`=^S>HZP}l$f From 1aaec701bb505b83cea1838e785235a7364d6641 Mon Sep 17 00:00:00 2001 From: Eugen Rochko Date: Sun, 11 Mar 2018 14:55:49 +0100 Subject: [PATCH 02/15] Fix #6715: Make catalan words with the L geminate letter work in hashtags (#6741) --- .../mastodon/features/compose/containers/warning_container.js | 2 +- app/models/tag.rb | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/app/javascript/mastodon/features/compose/containers/warning_container.js b/app/javascript/mastodon/features/compose/containers/warning_container.js index dbb80dfb0..8ee8ea190 100644 --- a/app/javascript/mastodon/features/compose/containers/warning_container.js +++ b/app/javascript/mastodon/features/compose/containers/warning_container.js @@ -5,7 +5,7 @@ import PropTypes from 'prop-types'; import { FormattedMessage } from 'react-intl'; import { me } from '../../../initial_state'; -const APPROX_HASHTAG_RE = /(?:^|[^\/\)\w])#(\w*[a-zA-Z]\w*)/i; +const APPROX_HASHTAG_RE = /(?:^|[^\/\)\w])#(\w*[a-zA-Z·]\w*)/i; const mapStateToProps = state => ({ needsLockWarning: state.getIn(['compose', 'privacy']) === 'private' && !state.getIn(['accounts', me, 'locked']), diff --git a/app/models/tag.rb b/app/models/tag.rb index dc2c8d129..9fa9405d7 100644 --- a/app/models/tag.rb +++ b/app/models/tag.rb @@ -12,7 +12,7 @@ class Tag < ApplicationRecord has_and_belongs_to_many :statuses - HASHTAG_NAME_RE = '[[:word:]_]*[[:alpha:]_][[:word:]_]*' + HASHTAG_NAME_RE = '[[:word:]_]*[[:alpha:]_·][[:word:]_]*' HASHTAG_RE = /(?:^|[^\/\)\w])#(#{HASHTAG_NAME_RE})/i validates :name, presence: true, uniqueness: true, format: { with: /\A#{HASHTAG_NAME_RE}\z/i } From 56333cca88325b492861fe218d993d8a56acf575 Mon Sep 17 00:00:00 2001 From: TrashMacNugget <35081257+TrashMacNugget@users.noreply.github.com> Date: Sun, 11 Mar 2018 07:12:23 -0700 Subject: [PATCH 03/15] Add license info to README (#6583) * Add license info to README * Reference AUTHORS file --- README.md | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/README.md b/README.md index e9fb685c4..7b85b165b 100644 --- a/README.md +++ b/README.md @@ -79,6 +79,16 @@ You can open issues for bugs you've found or features you think are missing. You **IRC channel**: #mastodon on irc.freenode.net +## License + +Copyright (C) 2016-2018 Eugen Rochko & other Mastodon contributors (see AUTHORS.md) + +This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. + +This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero General Public License for more details. + +You should have received a copy of the GNU Affero General Public License along with this program. If not, see . + --- ## Extra credits From 56eb5c3f344f0342ac6f26a05748bc21c585a729 Mon Sep 17 00:00:00 2001 From: Eugen Rochko Date: Sun, 11 Mar 2018 15:12:33 +0100 Subject: [PATCH 04/15] Fix focal point cropping in MediaGallery, fix focal point modal (#6740) * Use object-position with object-fit instead of JS top/left * Fix focal point modal --- .../mastodon/components/media_gallery.js | 65 ++----------------- .../ui/components/focal_point_modal.js | 2 +- .../styles/mastodon/components.scss | 18 ++++- 3 files changed, 23 insertions(+), 62 deletions(-) diff --git a/app/javascript/mastodon/components/media_gallery.js b/app/javascript/mastodon/components/media_gallery.js index 9310e7c96..1cef029d8 100644 --- a/app/javascript/mastodon/components/media_gallery.js +++ b/app/javascript/mastodon/components/media_gallery.js @@ -12,26 +12,6 @@ const messages = defineMessages({ toggle_visible: { id: 'media_gallery.toggle_visible', defaultMessage: 'Toggle visibility' }, }); -const shiftToPoint = (containerToImageRatio, containerSize, imageSize, focusSize, toMinus) => { - const containerCenter = Math.floor(containerSize / 2); - const focusFactor = (focusSize + 1) / 2; - const scaledImage = Math.floor(imageSize / containerToImageRatio); - - let focus = Math.floor(focusFactor * scaledImage); - - if (toMinus) focus = scaledImage - focus; - - let focusOffset = focus - containerCenter; - - const remainder = scaledImage - focus; - const containerRemainder = containerSize - containerCenter; - - if (remainder < containerRemainder) focusOffset -= containerRemainder - remainder; - if (focusOffset < 0) focusOffset = 0; - - return (focusOffset * -100 / containerSize) + '%'; -}; - class Item extends React.PureComponent { static contextTypes = { @@ -44,8 +24,6 @@ class Item extends React.PureComponent { index: PropTypes.number.isRequired, size: PropTypes.number.isRequired, onClick: PropTypes.func.isRequired, - containerWidth: PropTypes.number, - containerHeight: PropTypes.number, }; static defaultProps = { @@ -84,7 +62,7 @@ class Item extends React.PureComponent { } render () { - const { attachment, index, size, standalone, containerWidth, containerHeight } = this.props; + const { attachment, index, size, standalone } = this.props; let width = 50; let height = 100; @@ -143,45 +121,16 @@ class Item extends React.PureComponent { const originalUrl = attachment.get('url'); const originalWidth = attachment.getIn(['meta', 'original', 'width']); - const originalHeight = attachment.getIn(['meta', 'original', 'height']); const hasSize = typeof originalWidth === 'number' && typeof previewWidth === 'number'; const srcSet = hasSize ? `${originalUrl} ${originalWidth}w, ${previewUrl} ${previewWidth}w` : null; const sizes = hasSize ? `(min-width: 1025px) ${320 * (width / 100)}px, ${width}vw` : null; - const focusX = attachment.getIn(['meta', 'focus', 'x']); - const focusY = attachment.getIn(['meta', 'focus', 'y']); - const imageStyle = {}; - - if (originalWidth && originalHeight && containerWidth && containerHeight && focusX && focusY) { - const widthRatio = originalWidth / (containerWidth * (width / 100)); - const heightRatio = originalHeight / (containerHeight * (height / 100)); - - let hShift = 0; - let vShift = 0; - - if (widthRatio > heightRatio) { - hShift = shiftToPoint(heightRatio, (containerWidth * (width / 100)), originalWidth, focusX); - } else if(widthRatio < heightRatio) { - vShift = shiftToPoint(widthRatio, (containerHeight * (height / 100)), originalHeight, focusY, true); - } - - if (originalWidth > originalHeight) { - imageStyle.height = '100%'; - imageStyle.width = 'auto'; - imageStyle.minWidth = '100%'; - } else { - imageStyle.height = 'auto'; - imageStyle.width = '100%'; - imageStyle.minHeight = '100%'; - } - - imageStyle.top = vShift; - imageStyle.left = hShift; - } else { - imageStyle.height = '100%'; - } + const focusX = attachment.getIn(['meta', 'focus', 'x']) || 0; + const focusY = attachment.getIn(['meta', 'focus', 'y']) || 0; + const x = ((focusX / 2) + .5) * 100; + const y = ((focusY / -2) + .5) * 100; thumbnail = ( ); @@ -320,7 +269,7 @@ export default class MediaGallery extends React.PureComponent { if (this.isStandaloneEligible()) { children = ; } else { - children = media.take(4).map((attachment, i) => ); + children = media.take(4).map((attachment, i) => ); } } diff --git a/app/javascript/mastodon/features/ui/components/focal_point_modal.js b/app/javascript/mastodon/features/ui/components/focal_point_modal.js index 1038e1864..21bf6d81b 100644 --- a/app/javascript/mastodon/features/ui/components/focal_point_modal.js +++ b/app/javascript/mastodon/features/ui/components/focal_point_modal.js @@ -103,7 +103,7 @@ export default class FocalPointModal extends ImmutablePureComponent { const height = media.getIn(['meta', 'original', 'height']) || null; return ( -
+
Date: Sun, 11 Mar 2018 15:13:13 +0100 Subject: [PATCH 05/15] Bump version to 2.3.1rc1 --- lib/mastodon/version.rb | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/lib/mastodon/version.rb b/lib/mastodon/version.rb index 3ba96731d..50498be1d 100644 --- a/lib/mastodon/version.rb +++ b/lib/mastodon/version.rb @@ -13,7 +13,7 @@ module Mastodon end def patch - 0 + 1 end def pre @@ -21,7 +21,7 @@ module Mastodon end def flags - '' + 'rc1' end def to_a From 9090b6383148d71bb0f1ca61a4b1eeeda99ad378 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marcin=20Miko=C5=82ajczak?= Date: Sun, 11 Mar 2018 16:21:16 +0100 Subject: [PATCH 06/15] =?UTF-8?q?i18n:=20Update=20Polish=20translation=20a?= =?UTF-8?q?nd=20=E2=80=9Cyarn=20manage:translations=E2=80=9D=20(#6743)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Marcin Mikołajczak --- app/javascript/mastodon/locales/ar.json | 2 ++ app/javascript/mastodon/locales/bg.json | 2 ++ app/javascript/mastodon/locales/ca.json | 2 ++ app/javascript/mastodon/locales/de.json | 2 ++ app/javascript/mastodon/locales/defaultMessages.json | 8 ++++++++ app/javascript/mastodon/locales/en.json | 2 ++ app/javascript/mastodon/locales/eo.json | 2 ++ app/javascript/mastodon/locales/es.json | 2 ++ app/javascript/mastodon/locales/fa.json | 2 ++ app/javascript/mastodon/locales/fi.json | 2 ++ app/javascript/mastodon/locales/fr.json | 2 ++ app/javascript/mastodon/locales/gl.json | 2 ++ app/javascript/mastodon/locales/he.json | 2 ++ app/javascript/mastodon/locales/hr.json | 2 ++ app/javascript/mastodon/locales/hu.json | 2 ++ app/javascript/mastodon/locales/hy.json | 2 ++ app/javascript/mastodon/locales/id.json | 2 ++ app/javascript/mastodon/locales/io.json | 2 ++ app/javascript/mastodon/locales/it.json | 2 ++ app/javascript/mastodon/locales/ja.json | 2 ++ app/javascript/mastodon/locales/ko.json | 2 ++ app/javascript/mastodon/locales/nl.json | 2 ++ app/javascript/mastodon/locales/no.json | 2 ++ app/javascript/mastodon/locales/oc.json | 2 ++ app/javascript/mastodon/locales/pl.json | 6 ++++-- app/javascript/mastodon/locales/pt-BR.json | 2 ++ app/javascript/mastodon/locales/pt.json | 2 ++ app/javascript/mastodon/locales/ru.json | 2 ++ app/javascript/mastodon/locales/sk.json | 2 ++ app/javascript/mastodon/locales/sr-Latn.json | 2 ++ app/javascript/mastodon/locales/sr.json | 2 ++ app/javascript/mastodon/locales/sv.json | 2 ++ app/javascript/mastodon/locales/th.json | 2 ++ app/javascript/mastodon/locales/tr.json | 2 ++ app/javascript/mastodon/locales/uk.json | 2 ++ app/javascript/mastodon/locales/zh-CN.json | 2 ++ app/javascript/mastodon/locales/zh-HK.json | 2 ++ app/javascript/mastodon/locales/zh-TW.json | 2 ++ 38 files changed, 84 insertions(+), 2 deletions(-) diff --git a/app/javascript/mastodon/locales/ar.json b/app/javascript/mastodon/locales/ar.json index 33e223b2a..bf0ab3144 100644 --- a/app/javascript/mastodon/locales/ar.json +++ b/app/javascript/mastodon/locales/ar.json @@ -252,7 +252,9 @@ "status.sensitive_warning": "محتوى حساس", "status.share": "مشاركة", "status.show_less": "إعرض أقلّ", + "status.show_less_all": "Show less for all", "status.show_more": "أظهر المزيد", + "status.show_more_all": "Show more for all", "status.unmute_conversation": "فك الكتم عن المحادثة", "status.unpin": "فك التدبيس من الملف الشخصي", "tabs_bar.federated_timeline": "الموحَّد", diff --git a/app/javascript/mastodon/locales/bg.json b/app/javascript/mastodon/locales/bg.json index a84e6e9d1..673ce0bc3 100644 --- a/app/javascript/mastodon/locales/bg.json +++ b/app/javascript/mastodon/locales/bg.json @@ -252,7 +252,9 @@ "status.sensitive_warning": "Деликатно съдържание", "status.share": "Share", "status.show_less": "Show less", + "status.show_less_all": "Show less for all", "status.show_more": "Show more", + "status.show_more_all": "Show more for all", "status.unmute_conversation": "Unmute conversation", "status.unpin": "Unpin from profile", "tabs_bar.federated_timeline": "Federated", diff --git a/app/javascript/mastodon/locales/ca.json b/app/javascript/mastodon/locales/ca.json index bac807dbb..318b36c96 100644 --- a/app/javascript/mastodon/locales/ca.json +++ b/app/javascript/mastodon/locales/ca.json @@ -252,7 +252,9 @@ "status.sensitive_warning": "Contingut sensible", "status.share": "Compartir", "status.show_less": "Mostra menys", + "status.show_less_all": "Show less for all", "status.show_more": "Mostra més", + "status.show_more_all": "Show more for all", "status.unmute_conversation": "Activar conversació", "status.unpin": "Deslliga del perfil", "tabs_bar.federated_timeline": "Federada", diff --git a/app/javascript/mastodon/locales/de.json b/app/javascript/mastodon/locales/de.json index 6267b1d71..92dc51be0 100644 --- a/app/javascript/mastodon/locales/de.json +++ b/app/javascript/mastodon/locales/de.json @@ -252,7 +252,9 @@ "status.sensitive_warning": "Heikle Inhalte", "status.share": "Teilen", "status.show_less": "Weniger anzeigen", + "status.show_less_all": "Show less for all", "status.show_more": "Mehr anzeigen", + "status.show_more_all": "Show more for all", "status.unmute_conversation": "Stummschaltung von Thread aufheben", "status.unpin": "Vom Profil lösen", "tabs_bar.federated_timeline": "Föderation", diff --git a/app/javascript/mastodon/locales/defaultMessages.json b/app/javascript/mastodon/locales/defaultMessages.json index c10afce5c..cd64ae26e 100644 --- a/app/javascript/mastodon/locales/defaultMessages.json +++ b/app/javascript/mastodon/locales/defaultMessages.json @@ -1375,6 +1375,14 @@ "defaultMessage": "Block", "id": "confirmations.block.confirm" }, + { + "defaultMessage": "Show more for all", + "id": "status.show_more_all" + }, + { + "defaultMessage": "Show less for all", + "id": "status.show_less_all" + }, { "defaultMessage": "Are you sure you want to block {name}?", "id": "confirmations.block.message" diff --git a/app/javascript/mastodon/locales/en.json b/app/javascript/mastodon/locales/en.json index b23332df4..3a5daee21 100644 --- a/app/javascript/mastodon/locales/en.json +++ b/app/javascript/mastodon/locales/en.json @@ -252,7 +252,9 @@ "status.sensitive_warning": "Sensitive content", "status.share": "Share", "status.show_less": "Show less", + "status.show_less_all": "Show less for all", "status.show_more": "Show more", + "status.show_more_all": "Show more for all", "status.unmute_conversation": "Unmute conversation", "status.unpin": "Unpin from profile", "tabs_bar.federated_timeline": "Federated", diff --git a/app/javascript/mastodon/locales/eo.json b/app/javascript/mastodon/locales/eo.json index 4f465bf40..03719963f 100644 --- a/app/javascript/mastodon/locales/eo.json +++ b/app/javascript/mastodon/locales/eo.json @@ -252,7 +252,9 @@ "status.sensitive_warning": "Tikla enhavo", "status.share": "Diskonigi", "status.show_less": "Malgrandigi", + "status.show_less_all": "Show less for all", "status.show_more": "Grandigi", + "status.show_more_all": "Show more for all", "status.unmute_conversation": "Malsilentigi konversacion", "status.unpin": "Depingli de profilo", "tabs_bar.federated_timeline": "Fratara tempolinio", diff --git a/app/javascript/mastodon/locales/es.json b/app/javascript/mastodon/locales/es.json index d172dff1c..8ecb81ddf 100644 --- a/app/javascript/mastodon/locales/es.json +++ b/app/javascript/mastodon/locales/es.json @@ -252,7 +252,9 @@ "status.sensitive_warning": "Contenido sensible", "status.share": "Compartir", "status.show_less": "Mostrar menos", + "status.show_less_all": "Show less for all", "status.show_more": "Mostrar más", + "status.show_more_all": "Show more for all", "status.unmute_conversation": "Dejar de silenciar conversación", "status.unpin": "Dejar de fijar", "tabs_bar.federated_timeline": "Federado", diff --git a/app/javascript/mastodon/locales/fa.json b/app/javascript/mastodon/locales/fa.json index b5b81bff9..50aa12a05 100644 --- a/app/javascript/mastodon/locales/fa.json +++ b/app/javascript/mastodon/locales/fa.json @@ -252,7 +252,9 @@ "status.sensitive_warning": "محتوای حساس", "status.share": "هم‌رسانی", "status.show_less": "نهفتن", + "status.show_less_all": "Show less for all", "status.show_more": "نمایش", + "status.show_more_all": "Show more for all", "status.unmute_conversation": "باصداکردن گفتگو", "status.unpin": "برداشتن نوشتهٔ ثابت نمایه", "tabs_bar.federated_timeline": "همگانی", diff --git a/app/javascript/mastodon/locales/fi.json b/app/javascript/mastodon/locales/fi.json index aa97aae84..a2385772f 100644 --- a/app/javascript/mastodon/locales/fi.json +++ b/app/javascript/mastodon/locales/fi.json @@ -252,7 +252,9 @@ "status.sensitive_warning": "Arkaluontoista sisältöä", "status.share": "Jaa", "status.show_less": "Näytä vähemmän", + "status.show_less_all": "Show less for all", "status.show_more": "Näytä lisää", + "status.show_more_all": "Show more for all", "status.unmute_conversation": "Poista mykistys keskustelulta", "status.unpin": "Irrota profiilista", "tabs_bar.federated_timeline": "Federated", diff --git a/app/javascript/mastodon/locales/fr.json b/app/javascript/mastodon/locales/fr.json index 4df1ef30f..2140ee506 100644 --- a/app/javascript/mastodon/locales/fr.json +++ b/app/javascript/mastodon/locales/fr.json @@ -252,7 +252,9 @@ "status.sensitive_warning": "Contenu sensible", "status.share": "Partager", "status.show_less": "Replier", + "status.show_less_all": "Show less for all", "status.show_more": "Déplier", + "status.show_more_all": "Show more for all", "status.unmute_conversation": "Ne plus masquer la conversation", "status.unpin": "Retirer du profil", "tabs_bar.federated_timeline": "Fil public global", diff --git a/app/javascript/mastodon/locales/gl.json b/app/javascript/mastodon/locales/gl.json index e222ddaea..3c74ba400 100644 --- a/app/javascript/mastodon/locales/gl.json +++ b/app/javascript/mastodon/locales/gl.json @@ -252,7 +252,9 @@ "status.sensitive_warning": "Contido sensible", "status.share": "Compartir", "status.show_less": "Mostrar menos", + "status.show_less_all": "Show less for all", "status.show_more": "Mostrar máis", + "status.show_more_all": "Show more for all", "status.unmute_conversation": "Non acalar a conversa", "status.unpin": "Despegar do perfil", "tabs_bar.federated_timeline": "Federado", diff --git a/app/javascript/mastodon/locales/he.json b/app/javascript/mastodon/locales/he.json index b31976c42..8e784b171 100644 --- a/app/javascript/mastodon/locales/he.json +++ b/app/javascript/mastodon/locales/he.json @@ -252,7 +252,9 @@ "status.sensitive_warning": "תוכן רגיש", "status.share": "שיתוף", "status.show_less": "הראה פחות", + "status.show_less_all": "Show less for all", "status.show_more": "הראה יותר", + "status.show_more_all": "Show more for all", "status.unmute_conversation": "הסרת השתקת שיחה", "status.unpin": "לשחרר מקיבוע באודות", "tabs_bar.federated_timeline": "ציר זמן בין-קהילתי", diff --git a/app/javascript/mastodon/locales/hr.json b/app/javascript/mastodon/locales/hr.json index d176a5df6..70d89091e 100644 --- a/app/javascript/mastodon/locales/hr.json +++ b/app/javascript/mastodon/locales/hr.json @@ -252,7 +252,9 @@ "status.sensitive_warning": "Osjetljiv sadržaj", "status.share": "Share", "status.show_less": "Pokaži manje", + "status.show_less_all": "Show less for all", "status.show_more": "Pokaži više", + "status.show_more_all": "Show more for all", "status.unmute_conversation": "Poništi utišavanje razgovora", "status.unpin": "Unpin from profile", "tabs_bar.federated_timeline": "Federalni", diff --git a/app/javascript/mastodon/locales/hu.json b/app/javascript/mastodon/locales/hu.json index a4d2091ef..087305a9a 100644 --- a/app/javascript/mastodon/locales/hu.json +++ b/app/javascript/mastodon/locales/hu.json @@ -252,7 +252,9 @@ "status.sensitive_warning": "Érzékeny tartalom", "status.share": "Megosztás", "status.show_less": "Kevesebb", + "status.show_less_all": "Show less for all", "status.show_more": "Többet", + "status.show_more_all": "Show more for all", "status.unmute_conversation": "Beszélgetés némításának elvonása", "status.unpin": "Kitűzés eltávolítása a profilról", "tabs_bar.federated_timeline": "Federált", diff --git a/app/javascript/mastodon/locales/hy.json b/app/javascript/mastodon/locales/hy.json index b5e9a2b5a..7849d6941 100644 --- a/app/javascript/mastodon/locales/hy.json +++ b/app/javascript/mastodon/locales/hy.json @@ -252,7 +252,9 @@ "status.sensitive_warning": "Կասկածելի բովանդակություն", "status.share": "Կիսվել", "status.show_less": "Պակաս", + "status.show_less_all": "Show less for all", "status.show_more": "Ավելին", + "status.show_more_all": "Show more for all", "status.unmute_conversation": "Ապալռեցնել խոսակցությունը", "status.unpin": "Հանել անձնական էջից", "tabs_bar.federated_timeline": "Դաշնային", diff --git a/app/javascript/mastodon/locales/id.json b/app/javascript/mastodon/locales/id.json index 596415cde..6b00d79b6 100644 --- a/app/javascript/mastodon/locales/id.json +++ b/app/javascript/mastodon/locales/id.json @@ -252,7 +252,9 @@ "status.sensitive_warning": "Konten sensitif", "status.share": "Share", "status.show_less": "Tampilkan lebih sedikit", + "status.show_less_all": "Show less for all", "status.show_more": "Tampilkan semua", + "status.show_more_all": "Show more for all", "status.unmute_conversation": "Unmute conversation", "status.unpin": "Unpin from profile", "tabs_bar.federated_timeline": "Gabungan", diff --git a/app/javascript/mastodon/locales/io.json b/app/javascript/mastodon/locales/io.json index 4f554b08f..d51b24090 100644 --- a/app/javascript/mastodon/locales/io.json +++ b/app/javascript/mastodon/locales/io.json @@ -252,7 +252,9 @@ "status.sensitive_warning": "Trubliva kontenajo", "status.share": "Share", "status.show_less": "Montrar mine", + "status.show_less_all": "Show less for all", "status.show_more": "Montrar plue", + "status.show_more_all": "Show more for all", "status.unmute_conversation": "Unmute conversation", "status.unpin": "Unpin from profile", "tabs_bar.federated_timeline": "Federata", diff --git a/app/javascript/mastodon/locales/it.json b/app/javascript/mastodon/locales/it.json index 6b2532512..0babc7c02 100644 --- a/app/javascript/mastodon/locales/it.json +++ b/app/javascript/mastodon/locales/it.json @@ -252,7 +252,9 @@ "status.sensitive_warning": "Materiale sensibile", "status.share": "Share", "status.show_less": "Mostra meno", + "status.show_less_all": "Show less for all", "status.show_more": "Mostra di più", + "status.show_more_all": "Show more for all", "status.unmute_conversation": "Unmute conversation", "status.unpin": "Unpin from profile", "tabs_bar.federated_timeline": "Federazione", diff --git a/app/javascript/mastodon/locales/ja.json b/app/javascript/mastodon/locales/ja.json index 8db3f7cab..09335e2c2 100644 --- a/app/javascript/mastodon/locales/ja.json +++ b/app/javascript/mastodon/locales/ja.json @@ -252,7 +252,9 @@ "status.sensitive_warning": "閲覧注意", "status.share": "共有", "status.show_less": "隠す", + "status.show_less_all": "Show less for all", "status.show_more": "もっと見る", + "status.show_more_all": "Show more for all", "status.unmute_conversation": "会話のミュートを解除", "status.unpin": "プロフィールの固定表示を解除", "tabs_bar.federated_timeline": "連合", diff --git a/app/javascript/mastodon/locales/ko.json b/app/javascript/mastodon/locales/ko.json index 05c84fd37..4c56d2a45 100644 --- a/app/javascript/mastodon/locales/ko.json +++ b/app/javascript/mastodon/locales/ko.json @@ -252,7 +252,9 @@ "status.sensitive_warning": "민감한 미디어", "status.share": "공유", "status.show_less": "숨기기", + "status.show_less_all": "Show less for all", "status.show_more": "더 보기", + "status.show_more_all": "Show more for all", "status.unmute_conversation": "이 대화의 뮤트 해제하기", "status.unpin": "고정 해제", "tabs_bar.federated_timeline": "연합", diff --git a/app/javascript/mastodon/locales/nl.json b/app/javascript/mastodon/locales/nl.json index 509382670..8906f7351 100644 --- a/app/javascript/mastodon/locales/nl.json +++ b/app/javascript/mastodon/locales/nl.json @@ -252,7 +252,9 @@ "status.sensitive_warning": "Gevoelige inhoud", "status.share": "Delen", "status.show_less": "Minder tonen", + "status.show_less_all": "Show less for all", "status.show_more": "Meer tonen", + "status.show_more_all": "Show more for all", "status.unmute_conversation": "Conversatie niet meer negeren", "status.unpin": "Van profielpagina losmaken", "tabs_bar.federated_timeline": "Globaal", diff --git a/app/javascript/mastodon/locales/no.json b/app/javascript/mastodon/locales/no.json index b7ceb9f73..b14ecaedd 100644 --- a/app/javascript/mastodon/locales/no.json +++ b/app/javascript/mastodon/locales/no.json @@ -252,7 +252,9 @@ "status.sensitive_warning": "Følsomt innhold", "status.share": "Del", "status.show_less": "Vis mindre", + "status.show_less_all": "Show less for all", "status.show_more": "Vis mer", + "status.show_more_all": "Show more for all", "status.unmute_conversation": "Ikke demp samtale", "status.unpin": "Angre festing på profilen", "tabs_bar.federated_timeline": "Felles", diff --git a/app/javascript/mastodon/locales/oc.json b/app/javascript/mastodon/locales/oc.json index c9a15c751..c3d8bcf37 100644 --- a/app/javascript/mastodon/locales/oc.json +++ b/app/javascript/mastodon/locales/oc.json @@ -252,7 +252,9 @@ "status.sensitive_warning": "Contengut sensible", "status.share": "Partejar", "status.show_less": "Tornar plegar", + "status.show_less_all": "Show less for all", "status.show_more": "Desplegar", + "status.show_more_all": "Show more for all", "status.unmute_conversation": "Tornar mostrar la conversacion", "status.unpin": "Tirar del perfil", "tabs_bar.federated_timeline": "Flux public global", diff --git a/app/javascript/mastodon/locales/pl.json b/app/javascript/mastodon/locales/pl.json index ba9d64e4c..2f39bd850 100644 --- a/app/javascript/mastodon/locales/pl.json +++ b/app/javascript/mastodon/locales/pl.json @@ -251,8 +251,10 @@ "status.sensitive_toggle": "Naciśnij aby wyświetlić", "status.sensitive_warning": "Wrażliwa zawartość", "status.share": "Udostępnij", - "status.show_less": "Pokaż mniej", - "status.show_more": "Pokaż więcej", + "status.show_less": "Zwiń", + "status.show_less_all": "Zwiń wszystkie", + "status.show_more": "Rozwiń", + "status.show_more_all": "Rozwiń wszystkie", "status.unmute_conversation": "Cofnij wyciszenie konwersacji", "status.unpin": "Odepnij z profilu", "tabs_bar.federated_timeline": "Globalne", diff --git a/app/javascript/mastodon/locales/pt-BR.json b/app/javascript/mastodon/locales/pt-BR.json index 6406dbea6..67b36fdf2 100644 --- a/app/javascript/mastodon/locales/pt-BR.json +++ b/app/javascript/mastodon/locales/pt-BR.json @@ -252,7 +252,9 @@ "status.sensitive_warning": "Conteúdo sensível", "status.share": "Compartilhar", "status.show_less": "Mostrar menos", + "status.show_less_all": "Show less for all", "status.show_more": "Mostrar mais", + "status.show_more_all": "Show more for all", "status.unmute_conversation": "Desativar silêncio desta conversa", "status.unpin": "Desafixar do perfil", "tabs_bar.federated_timeline": "Global", diff --git a/app/javascript/mastodon/locales/pt.json b/app/javascript/mastodon/locales/pt.json index f059e7c20..014884637 100644 --- a/app/javascript/mastodon/locales/pt.json +++ b/app/javascript/mastodon/locales/pt.json @@ -252,7 +252,9 @@ "status.sensitive_warning": "Conteúdo sensível", "status.share": "Compartilhar", "status.show_less": "Mostrar menos", + "status.show_less_all": "Show less for all", "status.show_more": "Mostrar mais", + "status.show_more_all": "Show more for all", "status.unmute_conversation": "Deixar de silenciar esta conversa", "status.unpin": "Não fixar no perfil", "tabs_bar.federated_timeline": "Global", diff --git a/app/javascript/mastodon/locales/ru.json b/app/javascript/mastodon/locales/ru.json index 06a7d732b..88152a885 100644 --- a/app/javascript/mastodon/locales/ru.json +++ b/app/javascript/mastodon/locales/ru.json @@ -252,7 +252,9 @@ "status.sensitive_warning": "Чувствительный контент", "status.share": "Поделиться", "status.show_less": "Свернуть", + "status.show_less_all": "Show less for all", "status.show_more": "Развернуть", + "status.show_more_all": "Show more for all", "status.unmute_conversation": "Снять глушение с треда", "status.unpin": "Открепить от профиля", "tabs_bar.federated_timeline": "Глобальная", diff --git a/app/javascript/mastodon/locales/sk.json b/app/javascript/mastodon/locales/sk.json index bb86165ad..abef3500f 100644 --- a/app/javascript/mastodon/locales/sk.json +++ b/app/javascript/mastodon/locales/sk.json @@ -252,7 +252,9 @@ "status.sensitive_warning": "Chúlostivý obsah", "status.share": "Zdieľať", "status.show_less": "Zobraz menej", + "status.show_less_all": "Show less for all", "status.show_more": "Zobraz viac", + "status.show_more_all": "Show more for all", "status.unmute_conversation": "Prestať ignorovať konverzáciu", "status.unpin": "Odopnúť z profilu", "tabs_bar.federated_timeline": "Federovaná", diff --git a/app/javascript/mastodon/locales/sr-Latn.json b/app/javascript/mastodon/locales/sr-Latn.json index a672ae6ca..fc4d0cdc9 100644 --- a/app/javascript/mastodon/locales/sr-Latn.json +++ b/app/javascript/mastodon/locales/sr-Latn.json @@ -252,7 +252,9 @@ "status.sensitive_warning": "Osetljiv sadržaj", "status.share": "Podeli", "status.show_less": "Prikaži manje", + "status.show_less_all": "Show less for all", "status.show_more": "Prikaži više", + "status.show_more_all": "Show more for all", "status.unmute_conversation": "Uključi prepisku", "status.unpin": "Otkači sa profila", "tabs_bar.federated_timeline": "Federisano", diff --git a/app/javascript/mastodon/locales/sr.json b/app/javascript/mastodon/locales/sr.json index 1e3a3ce2b..ae496d7cc 100644 --- a/app/javascript/mastodon/locales/sr.json +++ b/app/javascript/mastodon/locales/sr.json @@ -252,7 +252,9 @@ "status.sensitive_warning": "Осетљив садржај", "status.share": "Подели", "status.show_less": "Прикажи мање", + "status.show_less_all": "Show less for all", "status.show_more": "Прикажи више", + "status.show_more_all": "Show more for all", "status.unmute_conversation": "Укључи преписку", "status.unpin": "Откачи са профила", "tabs_bar.federated_timeline": "Федерисано", diff --git a/app/javascript/mastodon/locales/sv.json b/app/javascript/mastodon/locales/sv.json index 9c51d5b36..42b6239e8 100644 --- a/app/javascript/mastodon/locales/sv.json +++ b/app/javascript/mastodon/locales/sv.json @@ -252,7 +252,9 @@ "status.sensitive_warning": "Känsligt innehåll", "status.share": "Dela", "status.show_less": "Visa mindre", + "status.show_less_all": "Show less for all", "status.show_more": "Visa mer", + "status.show_more_all": "Show more for all", "status.unmute_conversation": "Öppna konversation", "status.unpin": "Ångra fäst i profil", "tabs_bar.federated_timeline": "Förenad", diff --git a/app/javascript/mastodon/locales/th.json b/app/javascript/mastodon/locales/th.json index cab2ce089..617f4fb78 100644 --- a/app/javascript/mastodon/locales/th.json +++ b/app/javascript/mastodon/locales/th.json @@ -252,7 +252,9 @@ "status.sensitive_warning": "Sensitive content", "status.share": "Share", "status.show_less": "Show less", + "status.show_less_all": "Show less for all", "status.show_more": "Show more", + "status.show_more_all": "Show more for all", "status.unmute_conversation": "Unmute conversation", "status.unpin": "Unpin from profile", "tabs_bar.federated_timeline": "Federated", diff --git a/app/javascript/mastodon/locales/tr.json b/app/javascript/mastodon/locales/tr.json index 83c10de34..499281ae5 100644 --- a/app/javascript/mastodon/locales/tr.json +++ b/app/javascript/mastodon/locales/tr.json @@ -252,7 +252,9 @@ "status.sensitive_warning": "Hassas içerik", "status.share": "Share", "status.show_less": "Daha azı", + "status.show_less_all": "Show less for all", "status.show_more": "Daha fazlası", + "status.show_more_all": "Show more for all", "status.unmute_conversation": "Unmute conversation", "status.unpin": "Unpin from profile", "tabs_bar.federated_timeline": "Federe", diff --git a/app/javascript/mastodon/locales/uk.json b/app/javascript/mastodon/locales/uk.json index b49f707e1..ff458eb4b 100644 --- a/app/javascript/mastodon/locales/uk.json +++ b/app/javascript/mastodon/locales/uk.json @@ -252,7 +252,9 @@ "status.sensitive_warning": "Непристойний зміст", "status.share": "Share", "status.show_less": "Згорнути", + "status.show_less_all": "Show less for all", "status.show_more": "Розгорнути", + "status.show_more_all": "Show more for all", "status.unmute_conversation": "Зняти глушення з діалогу", "status.unpin": "Unpin from profile", "tabs_bar.federated_timeline": "Глобальна", diff --git a/app/javascript/mastodon/locales/zh-CN.json b/app/javascript/mastodon/locales/zh-CN.json index 5ccfbc4f4..d7a08bd17 100644 --- a/app/javascript/mastodon/locales/zh-CN.json +++ b/app/javascript/mastodon/locales/zh-CN.json @@ -252,7 +252,9 @@ "status.sensitive_warning": "敏感内容", "status.share": "分享", "status.show_less": "隐藏内容", + "status.show_less_all": "Show less for all", "status.show_more": "显示内容", + "status.show_more_all": "Show more for all", "status.unmute_conversation": "不再隐藏此对话", "status.unpin": "在个人资料页面取消置顶", "tabs_bar.federated_timeline": "跨站", diff --git a/app/javascript/mastodon/locales/zh-HK.json b/app/javascript/mastodon/locales/zh-HK.json index b105fe426..a02edc2fa 100644 --- a/app/javascript/mastodon/locales/zh-HK.json +++ b/app/javascript/mastodon/locales/zh-HK.json @@ -252,7 +252,9 @@ "status.sensitive_warning": "敏感內容", "status.share": "Share", "status.show_less": "減少顯示", + "status.show_less_all": "Show less for all", "status.show_more": "顯示更多", + "status.show_more_all": "Show more for all", "status.unmute_conversation": "解禁對話", "status.unpin": "解除置頂", "tabs_bar.federated_timeline": "跨站", diff --git a/app/javascript/mastodon/locales/zh-TW.json b/app/javascript/mastodon/locales/zh-TW.json index b0a94f67b..7e61ff32c 100644 --- a/app/javascript/mastodon/locales/zh-TW.json +++ b/app/javascript/mastodon/locales/zh-TW.json @@ -252,7 +252,9 @@ "status.sensitive_warning": "敏感內容", "status.share": "Share", "status.show_less": "看少點", + "status.show_less_all": "Show less for all", "status.show_more": "看更多", + "status.show_more_all": "Show more for all", "status.unmute_conversation": "不消音對話", "status.unpin": "解除置頂", "tabs_bar.federated_timeline": "聯盟", From 8b14726f5b84a9634c5cbc1ef8c33ce4f6eeced6 Mon Sep 17 00:00:00 2001 From: Yamagishi Kazutoshi Date: Mon, 12 Mar 2018 00:21:26 +0900 Subject: [PATCH 07/15] Weblate translations (2018-03-11) (#6742) * Translated using Weblate (Japanese) Currently translated at 100.0% (276 of 276 strings) Translation: Mastodon/React Translate-URL: https://weblate.joinmastodon.org/projects/mastodon/frontend/ja/ * Translated using Weblate (Finnish) Currently translated at 100.0% (276 of 276 strings) Translation: Mastodon/React Translate-URL: https://weblate.joinmastodon.org/projects/mastodon/frontend/fi/ * Translated using Weblate (Finnish) Currently translated at 25.1% (146 of 581 strings) Translation: Mastodon/Backend Translate-URL: https://weblate.joinmastodon.org/projects/mastodon/backend/fi/ * Translated using Weblate (Slovak) Currently translated at 91.2% (530 of 581 strings) Translation: Mastodon/Backend Translate-URL: https://weblate.joinmastodon.org/projects/mastodon/backend/sk/ * Translated using Weblate (Arabic) Currently translated at 67.6% (393 of 581 strings) Translation: Mastodon/Backend Translate-URL: https://weblate.joinmastodon.org/projects/mastodon/backend/ar/ * Translated using Weblate (Swedish) Currently translated at 100.0% (58 of 58 strings) Translation: Mastodon/Preferences Translate-URL: https://weblate.joinmastodon.org/projects/mastodon/simple_form/sv/ * Translated using Weblate (Swedish) Currently translated at 100.0% (581 of 581 strings) Translation: Mastodon/Backend Translate-URL: https://weblate.joinmastodon.org/projects/mastodon/backend/sv/ * Translated using Weblate (Finnish) Currently translated at 100.0% (276 of 276 strings) Translation: Mastodon/React Translate-URL: https://weblate.joinmastodon.org/projects/mastodon/frontend/fi/ * Translated using Weblate (Finnish) Currently translated at 92.0% (69 of 75 strings) Translation: Mastodon/Doorkeeper Translate-URL: https://weblate.joinmastodon.org/projects/mastodon/doorkeeper/fi/ * Translated using Weblate (Finnish) Currently translated at 60.3% (35 of 58 strings) Translation: Mastodon/Preferences Translate-URL: https://weblate.joinmastodon.org/projects/mastodon/simple_form/fi/ * Translated using Weblate (Swedish) Currently translated at 100.0% (75 of 75 strings) Translation: Mastodon/Doorkeeper Translate-URL: https://weblate.joinmastodon.org/projects/mastodon/doorkeeper/sv/ * Translated using Weblate (Swedish) Currently translated at 100.0% (276 of 276 strings) Translation: Mastodon/React Translate-URL: https://weblate.joinmastodon.org/projects/mastodon/frontend/sv/ * Translated using Weblate (Arabic) Currently translated at 68.3% (397 of 581 strings) Translation: Mastodon/Backend Translate-URL: https://weblate.joinmastodon.org/projects/mastodon/backend/ar/ * Translated using Weblate (Arabic) Currently translated at 99.2% (274 of 276 strings) Translation: Mastodon/React Translate-URL: https://weblate.joinmastodon.org/projects/mastodon/frontend/ar/ * Translated using Weblate (Slovak) Currently translated at 100.0% (276 of 276 strings) Translation: Mastodon/React Translate-URL: https://weblate.joinmastodon.org/projects/mastodon/frontend/sk/ * Translated using Weblate (Arabic) Currently translated at 73.8% (429 of 581 strings) Translation: Mastodon/Backend Translate-URL: https://weblate.joinmastodon.org/projects/mastodon/backend/ar/ * Translated using Weblate (Slovak) Currently translated at 91.2% (530 of 581 strings) Translation: Mastodon/Backend Translate-URL: https://weblate.joinmastodon.org/projects/mastodon/backend/sk/ * bundle exec i18n-tasks normalize && yarn manage:translations --- app/javascript/mastodon/locales/ar.json | 2 +- app/javascript/mastodon/locales/fi.json | 24 ++++++------ app/javascript/mastodon/locales/ja.json | 2 +- app/javascript/mastodon/locales/sk.json | 4 +- app/javascript/mastodon/locales/sv.json | 22 +++++------ config/locales/ar.yml | 49 ++++++++++++++++++++++++- config/locales/doorkeeper.fi.yml | 4 +- config/locales/doorkeeper.sv.yml | 6 +-- config/locales/fi.yml | 4 +- config/locales/simple_form.fi.yml | 22 ++++++----- config/locales/simple_form.sv.yml | 7 ++-- config/locales/sk.yml | 9 ++++- config/locales/sv.yml | 44 ++++++++++++++++------ 13 files changed, 137 insertions(+), 62 deletions(-) diff --git a/app/javascript/mastodon/locales/ar.json b/app/javascript/mastodon/locales/ar.json index bf0ab3144..397927abb 100644 --- a/app/javascript/mastodon/locales/ar.json +++ b/app/javascript/mastodon/locales/ar.json @@ -3,7 +3,7 @@ "account.block_domain": "إخفاء كل شيئ قادم من إسم النطاق {domain}", "account.blocked": "محظور", "account.disclaimer_full": "قد لا تعكس المعلومات أدناه الملف الشخصي الكامل للمستخدم.", - "account.domain_blocked": "Domain hidden", + "account.domain_blocked": "النطاق مخفي", "account.edit_profile": "تعديل الملف الشخصي", "account.follow": "تابِع", "account.followers": "المتابعون", diff --git a/app/javascript/mastodon/locales/fi.json b/app/javascript/mastodon/locales/fi.json index a2385772f..f4d730c0c 100644 --- a/app/javascript/mastodon/locales/fi.json +++ b/app/javascript/mastodon/locales/fi.json @@ -1,7 +1,7 @@ { "account.block": "Estä @{name}", "account.block_domain": "Piilota kaikki sisältö verkkotunnuksesta {domain}", - "account.blocked": "Blocked", + "account.blocked": "Estetty", "account.disclaimer_full": "Alla olevat käyttäjän profiilitiedot saattavat olla epätäydellisiä.", "account.domain_blocked": "Domain hidden", "account.edit_profile": "Muokkaa", @@ -15,9 +15,9 @@ "account.moved_to": "{name} on muuttanut instanssiin:", "account.mute": "Mykistä @{name}", "account.mute_notifications": "Mykistä ilmoitukset käyttäjältä @{name}", - "account.muted": "Muted", + "account.muted": "Mykistetty", "account.posts": "Töötit", - "account.posts_with_replies": "Toots with replies", + "account.posts_with_replies": "Töötit ja vastaukset", "account.report": "Report @{name}", "account.requested": "Odottaa hyväksyntää. Klikkaa peruuttaaksesi seurauspyynnön", "account.share": "Jaa käyttäjän @{name} profiili", @@ -211,22 +211,22 @@ "relative_time.minutes": "{number}m", "relative_time.seconds": "{number}s", "reply_indicator.cancel": "Peruuta", - "report.forward": "Forward to {target}", - "report.forward_hint": "The account is from another server. Send an anonymized copy of the report there as well?", - "report.hint": "The report will be sent to your instance moderators. You can provide an explanation of why you are reporting this account below:", + "report.forward": "Uudelleenohjaa kohteeseen {target}", + "report.forward_hint": "Tämä tili on toiselta serveriltä. Haluatko, että myös sinne lähetetään anonymisoitu kopio ilmiantoraportista?", + "report.hint": "Ilmianto lähetetään instanssisi moderaattoreille. Voit antaa kuvauksen käyttäjän ilmiantamisen syystä alle:", "report.placeholder": "Lisäkommentit", "report.submit": "Submit", "report.target": "Reporting", "search.placeholder": "Hae", "search_popout.search_format": "Tarkennettu haku", - "search_popout.tips.full_text": "Simple text returns statuses you have written, favourited, boosted, or have been mentioned in, as well as matching usernames, display names, and hashtags.", + "search_popout.tips.full_text": "Tekstihaku palauttaa statuspäivitykset jotka olet kirjoittanut, lisännyt suosikkeihisi, boostannut tai joissa sinut mainitaan, sekä käyttäjänimet, nimimerkit ja hastagit jotka sisältävät tekstin.", "search_popout.tips.hashtag": "hashtagi", "search_popout.tips.status": "status", "search_popout.tips.text": "Pelkkä tekstihaku palauttaa hakua vastaavat nimimerkit, käyttäjänimet ja hastagit", "search_popout.tips.user": "käyttäjä", - "search_results.accounts": "People", - "search_results.hashtags": "Hashtags", - "search_results.statuses": "Toots", + "search_results.accounts": "Ihmiset", + "search_results.hashtags": "Hashtagit", + "search_results.statuses": "Töötit", "search_results.total": "{count, number} {count, plural, one {result} other {results}}", "standalone.public_title": "Kurkistus sisälle...", "status.block": "Block @{name}", @@ -242,7 +242,7 @@ "status.mute_conversation": "Mykistä keskustelu", "status.open": "Laajenna statuspäivitys", "status.pin": "Kiinnitä profiiliin", - "status.pinned": "Pinned toot", + "status.pinned": "Kiinnitetty töötti", "status.reblog": "Buustaa", "status.reblogged_by": "{name} buustasi", "status.reply": "Vastaa", @@ -265,7 +265,7 @@ "upload_area.title": "Raahaa ja pudota tähän ladataksesi", "upload_button.label": "Lisää mediaa", "upload_form.description": "Anna kuvaus näkörajoitteisia varten", - "upload_form.focus": "Crop", + "upload_form.focus": "Rajaa", "upload_form.undo": "Peru", "upload_progress.label": "Ladataan...", "video.close": "Sulje video", diff --git a/app/javascript/mastodon/locales/ja.json b/app/javascript/mastodon/locales/ja.json index 09335e2c2..254848f59 100644 --- a/app/javascript/mastodon/locales/ja.json +++ b/app/javascript/mastodon/locales/ja.json @@ -3,7 +3,7 @@ "account.block_domain": "{domain}全体を非表示", "account.blocked": "ブロック済み", "account.disclaimer_full": "以下の情報は不正確な可能性があります。", - "account.domain_blocked": "Domain hidden", + "account.domain_blocked": "ドメイン非表示中", "account.edit_profile": "プロフィールを編集", "account.follow": "フォロー", "account.followers": "フォロワー", diff --git a/app/javascript/mastodon/locales/sk.json b/app/javascript/mastodon/locales/sk.json index abef3500f..4ff34012e 100644 --- a/app/javascript/mastodon/locales/sk.json +++ b/app/javascript/mastodon/locales/sk.json @@ -217,8 +217,8 @@ "report.placeholder": "Ďalšie komentáre", "report.submit": "Poslať", "report.target": "Nahlásenie {target}", - "search.placeholder": "Hľadať", - "search_popout.search_format": "Pokročilý formát vyhľadávania", + "search.placeholder": "Hľadaj", + "search_popout.search_format": "Pokročilé vyhľadávanie", "search_popout.tips.full_text": "Simple text returns statuses you have written, favourited, boosted, or have been mentioned in, as well as matching usernames, display names, and hashtags.", "search_popout.tips.hashtag": "haštag", "search_popout.tips.status": "status", diff --git a/app/javascript/mastodon/locales/sv.json b/app/javascript/mastodon/locales/sv.json index 42b6239e8..e72280136 100644 --- a/app/javascript/mastodon/locales/sv.json +++ b/app/javascript/mastodon/locales/sv.json @@ -1,9 +1,9 @@ { "account.block": "Blockera @{name}", "account.block_domain": "Dölj allt från {domain}", - "account.blocked": "Blocked", + "account.blocked": "Blockerad", "account.disclaimer_full": "Informationen nedan kan spegla användarens profil ofullständigt.", - "account.domain_blocked": "Domain hidden", + "account.domain_blocked": "Domän gömd", "account.edit_profile": "Redigera profil", "account.follow": "Följ", "account.followers": "Följare", @@ -15,9 +15,9 @@ "account.moved_to": "{name} har flyttat till:", "account.mute": "Tysta @{name}", "account.mute_notifications": "Stäng av notifieringar från @{name}", - "account.muted": "Muted", + "account.muted": "Nertystad", "account.posts": "Inlägg", - "account.posts_with_replies": "Toots with replies", + "account.posts_with_replies": "Toots med svar", "account.report": "Rapportera @{name}", "account.requested": "Inväntar godkännande. Klicka för att avbryta följförfrågan", "account.share": "Dela @{name}'s profil", @@ -211,20 +211,20 @@ "relative_time.minutes": "{number}m", "relative_time.seconds": "{number}s", "reply_indicator.cancel": "Ångra", - "report.forward": "Forward to {target}", - "report.forward_hint": "The account is from another server. Send an anonymized copy of the report there as well?", - "report.hint": "The report will be sent to your instance moderators. You can provide an explanation of why you are reporting this account below:", + "report.forward": "Vidarebefordra till {target}", + "report.forward_hint": "Kontot är från en annan server. Skicka även en anonymiserad kopia av anmälan dit?", + "report.hint": "Anmälan skickas till din instans moderatorer. Du kan ge en förklaring till varför du har anmält detta konto nedan:", "report.placeholder": "Ytterligare kommentarer", "report.submit": "Skicka", "report.target": "Rapporterar {target}", "search.placeholder": "Sök", "search_popout.search_format": "Avancerat sökformat", - "search_popout.tips.full_text": "Simple text returns statuses you have written, favourited, boosted, or have been mentioned in, as well as matching usernames, display names, and hashtags.", + "search_popout.tips.full_text": "Enkel text returnerar statusar där du har skrivit, favoriserat, knuffat eller nämnts samt med matchande användarnamn, visningsnamn och hashtags.", "search_popout.tips.hashtag": "hashtag", "search_popout.tips.status": "status", "search_popout.tips.text": "Enkel text returnerar matchande visningsnamn, användarnamn och hashtags", "search_popout.tips.user": "användare", - "search_results.accounts": "People", + "search_results.accounts": "Människor", "search_results.hashtags": "Hashtags", "search_results.statuses": "Toots", "search_results.total": "{count, number} {count, plural, ett {result} andra {results}}", @@ -242,7 +242,7 @@ "status.mute_conversation": "Tysta konversation", "status.open": "Utvidga denna status", "status.pin": "Fäst i profil", - "status.pinned": "Pinned toot", + "status.pinned": "Fäst toot", "status.reblog": "Knuff", "status.reblogged_by": "{name} knuffade", "status.reply": "Svara", @@ -265,7 +265,7 @@ "upload_area.title": "Dra & släpp för att ladda upp", "upload_button.label": "Lägg till media", "upload_form.description": "Beskriv för synskadade", - "upload_form.focus": "Crop", + "upload_form.focus": "Beskär", "upload_form.undo": "Ångra", "upload_progress.label": "Laddar upp...", "video.close": "Stäng video", diff --git a/config/locales/ar.yml b/config/locales/ar.yml index 41d83e4ad..45390cef8 100644 --- a/config/locales/ar.yml +++ b/config/locales/ar.yml @@ -11,10 +11,14 @@ ar: domain_count_after: خوادم أخرى domain_count_before: متصل بـ features: + humane_approach_body: تعلُّمًا مِن فشل الشبكات الأخرى، غاية ماستدون هي بلوغ الخيارات الأخلاقية في التصميم لمُحارَبة إسائة إستعمال شبكات التواصل الإجتماعية. humane_approach_title: أسلوب يعيد الإعتبار للإنسان not_a_product_body: ماستدون ليس شبكة تجارية. لا يحتوي على إعلانات و لا يقوم باستغلال البيانات و لا هو بِبُستان مُسيَّج. لا تحكم فيه وليس له أية هيئةٍ مركزيةٍ. not_a_product_title: إنك إنسان و لست سلعة + real_conversation_body: يُمكنكم التعبير عن آرائكم بكل حرية بفضل 500 حرف و انتقاء دقيق للمحتوى و الوسائط بفضل أدوات التحذير التي هي بين أيديكم. real_conversation_title: مبني لتحقيق تواصل حقيقي + within_reach_body: إبقوا على اتصال دائم بأصدقائكم حيثما كانوا عبر عدة تطبيقات لنظام آي أواس و أندرويد و عدة منصات أخرى بفضل واجهة برمجية للتطبيقات و بيئة صديقة للتطوير. + within_reach_title: في مُتناوَل يدك دائمًا generic_description: "%{domain} هو سيرفر من بين سيرفرات الشبكة" hosted_on: ماستدون مُستضاف على %{domain} learn_more: تعلم المزيد @@ -49,11 +53,13 @@ ar: created_at: التاريخ created_msg: تم إنشاء ملاحظة الإشراف بنجاح ! delete: حذف + destroyed_msg: تم تدمير ملاحظة الإشراف بنجاح ! accounts: are_you_sure: متأكد ؟ by_domain: النطاق confirm: تأكيد confirmed: مؤكَّد + demote: إنزال الرُتبة الوظيفية disable: تعطيل disable_two_factor_authentication: تعطيل 2FA disabled: معطَّل @@ -87,6 +93,7 @@ ar: most_recent: الأحدث title: الترتيب profile_url: رابط الملف الشخصي + promote: ترقية protocol: البروتوكول public: عمومي redownload: تحديث الصورة الرمزية @@ -100,31 +107,53 @@ ar: user: مستخدِم salmon_url: عنوان رابط سالمون Salmon search: البحث + show: + created_reports: البلاغات التي أنشأها هذا الحساب + report: التقرير + targeted_reports: التقريرات التي أُنشِأت ضد هذا الحساب statuses: المنشورات title: الحسابات + undo_suspension: إلغاء تعليق الحساب username: إسم المستخدم web: الويب action_logs: actions: + confirm_user: "%{name} قد قام بتأكيد عنوان البريد الإلكتروني لـ %{target}" create_custom_emoji: "%{name} قام برفع إيموجي جديد %{target}" create_domain_block: "%{name} قام بحجب نطاق %{target}" + create_email_domain_block: "%{name} قد قام بحظر نطاق البريد الإلكتروني %{target}" + demote_user: "%{name} قد قام بإنزال الرتبة الوظيفية لـ %{target}" destroy_domain_block: "%{name} قام بإلغاء الحجب عن النطاق %{target}" + disable_2fa_user: "%{name} لقد قام بتعطيل ميزة المصادقة بخطوتين للمستخدم %{target}" disable_custom_emoji: "%{name} قام بتعطيل الإيموجي %{target}" + disable_user: "%{name} لقد قام بتعطيل تسجيل الدخول للمستخدِم %{target}" enable_custom_emoji: "%{name} قام بتنشيط الإيموجي %{target}" + enable_user: "%{name} لقد قام بتنشيط تسجيل الدخول للمستخدِم %{target}" promote_user: "%{name} قام بترقية المستخدم %{target}" + reset_password_user: "%{name} لقد قام بإعادة تعيين الكلمة السرية الخاصة بـ %{target}" update_custom_emoji: "%{name} قام بتحديث الإيموجي %{target}" title: سِجلّ التفتيش و المعاينة custom_emojis: by_domain: النطاق + copied_msg: تم إنشاء نسخة محلية للإيموجي بنجاح copy: نسخ + copy_failed_msg: فشلت عملية إنشاء نسخة محلية لهذا الإيموجي created_msg: تم إنشاء الإيموجي بنجاح ! delete: حذف + destroyed_msg: تمت عملية تدمير الإيموجي بنجاح ! disable: تعطيل + disabled_msg: تمت عملية تعطيل ذلك الإيموجي بنجاح emoji: إيموجي enable: تفعيل + enabled_msg: تم تنشيط ذاك الإيموجي بنجاح image_hint: ملف PNG إلى غاية حجم 50 ك.ب + new: + title: إضافة إيموجي خاص جديد + shortcode: الترميز المُصَغّر shortcode_hint: على الأقل حرفين، و فقط رموز أبجدية عددية و أسطر سفلية title: الإيموجي الخاصة + update_failed_msg: تعذرت عملية تحذيث ذاك الإيموجي + updated_msg: تم تحديث الإيموجي بنجاح ! upload: رفع domain_blocks: add_new: إضافة نطاق جديد @@ -135,9 +164,11 @@ ar: noop: لا شيء silence: كتم title: حجب نطاق جديد + reject_media: رفض ملفات الوسائط severities: noop: لا شيء show: + title: رفع حظر النطاق عن %{domain} undo: إلغاء undo: إلغاء email_domain_blocks: @@ -145,6 +176,7 @@ ar: domain: النطاق new: create: إضافة نطاق + title: القائمة السوداء للبريد الإلكتروني instances: account_count: الحسابات المعروفة domain_name: النطاق @@ -156,8 +188,10 @@ ar: all: الكل available: المتوفرة expired: المنتهي صلاحيتها + title: التصفية title: الدعوات reports: + action_taken_by: تم اتخاذ الإجراء مِن طرف are_you_sure: هل أنت متأكد ؟ comment: label: تعليق @@ -174,6 +208,7 @@ ar: settings: contact_information: email: البريد الإلكتروني المهني + username: الإتصال بالمستخدِم registrations: closed_message: title: رسالة التسجيلات المقفلة @@ -221,6 +256,7 @@ ar: regenerate_token: إعادة توليد رمز النفاذ your_token: رمز نفاذك auth: + agreement_html: بقبولك التسجيل فإنك تُصرِّح قبول قواعد مثيل الخادوم و شروط الخدمة التي نوفرها لك. confirm_email: تأكيد عنوان البريد الإلكتروني delete_account: حذف حساب delete_account_html: إن كنت ترغب في حذف حسابك يُمكنك المواصلة هنا. سوف يُطلَبُ منك التأكيد قبل الحذف. @@ -275,6 +311,11 @@ ar: content: نحن متأسفون، لقد حدث خطأ ما مِن جانبنا. title: هذه الصفحة خاطئة exports: + archive_takeout: + download: تنزيل نسخة لحسابك + hint_html: بإمكانك طلب نسخة كاملة لـ كافة تبويقاتك و الوسائط التي قمت بنشرها. البيانات المُصدَّرة ستكون محفوظة على شكل نسق ActivityPub و باستطاعتك قراءتها بأي برنامج يدعم هذا النسق. + in_progress: عملية جمع نسخة لبيانات حسابك جارية … + request: طلب نسخة لحسابك blocks: قمت بحظر csv: CSV follows: أنت تتبع @@ -314,7 +355,7 @@ ar: table: expires_at: تنتهي مدة صلاحيتها في title: دعوة أشخاص - landing_strip_html: "%{name} is a user on %{link_to_root_path}. You can follow them or interact with them if you have an account anywhere in the fediverse.." + landing_strip_html: "%{name} هو أحد مُستخدِمي %{link_to_root_path}. بإمكانك متابعته أو التواصل معه إن كنت تملك حسابًا أيا كان على البيئة الموحَّدة فيديفرس." landing_strip_signup_html: إن كنت لا تملك واحدا، يمكنك التسجيل مِن هنا. lists: errors: @@ -371,7 +412,9 @@ ar: trillion: T unit: '' pagination: + newer: الأحدَث next: التالي + older: الأقدَم prev: السابق truncate: "…" preferences: @@ -488,6 +531,10 @@ ar: recovery_codes_regenerated: تم إعادة توليد رموز الإسترجاع الإحتياطية بنجاح setup: تنشيط wrong_code: الرمز الذي أدخلته غير صالح ! تحقق من صحة الوقت على الخادم و الجهاز ؟ + user_mailer: + backup_ready: + subject: نسخة بيانات حسابك جاهزة للتنزيل + title: المغادرة بأرشيف الحساب users: invalid_email: عنوان البريد الإلكتروني غير صالح invalid_otp_token: الرمز الثنائي غير صالح diff --git a/config/locales/doorkeeper.fi.yml b/config/locales/doorkeeper.fi.yml index 44aceec4c..8c1baf909 100644 --- a/config/locales/doorkeeper.fi.yml +++ b/config/locales/doorkeeper.fi.yml @@ -57,7 +57,7 @@ fi: prompt: Applikaatio %{client_name} pyytää lupaa tilillesi title: Valtuutus vaaditaan show: - title: Copy this authorization code and paste it to the application. + title: Kopioi tämä valtuutuskoodi ja liitä se applikaatioon. authorized_applications: buttons: revoke: Evää @@ -73,7 +73,7 @@ fi: messages: access_denied: Resurssin omistaja tai valtuutus palvelin hylkäsi pyynnönr. credential_flow_not_configured: Resurssin omistajan salasana epäonnistui koska Doorkeeper.configure.resource_owner_from_credentials ei ole konfiguroitu. - invalid_client: Asiakkaan valtuutus epäonnistui koska tuntematon asiakas, asiakas ei sisältänyt valtuutusta, tai tukematon valtuutus tapa + invalid_client: Asiakkaan valtuutus epäonnistui koska tuntematon asiakas, asiakas ei sisältänyt valtuutusta, tai tukematon valtuutus tapa. invalid_grant: Antamasi valtuutus lupa on joko väärä, erääntynyt, peruttu, ei vastaa uudelleenohjaus URI jota käytetään valtuutus pyynnössä, tai se myönnettin toiselle asiakkaalle. invalid_redirect_uri: Uudelleenohjaus uri ei ole oikein. invalid_request: Pyynnöstä puutti parametri, sisältää tukemattoman parametri arvonn, tai on korruptoitunut. diff --git a/config/locales/doorkeeper.sv.yml b/config/locales/doorkeeper.sv.yml index 342198bd3..96a343c92 100644 --- a/config/locales/doorkeeper.sv.yml +++ b/config/locales/doorkeeper.sv.yml @@ -114,6 +114,6 @@ sv: application: title: OAuth-behörighet krävs scopes: - follow: följ, blockera, ta bort blockering och sluta följa konton - read: läs dina kontodata - write: posta på dina vägnar + follow: följa, blockera, ta bort blockerade och sluta följa konton + read: läsa dina kontodata + write: posta åt dig diff --git a/config/locales/fi.yml b/config/locales/fi.yml index 71e019e54..939ebd10a 100644 --- a/config/locales/fi.yml +++ b/config/locales/fi.yml @@ -120,8 +120,8 @@ fi: body: 'Tässä on pieni yhteenveto palvelimelta %{instance} viimeksi kun olit paikalla %{since}:' mention: "%{name} mainitsi sinut:" new_followers_summary: - one: Olet saanut yhden uuden seuraajan! Jee! - other: Olet saanut %{count} uutta seuraajaa! Loistavaa! + one: Olet myös saanut yhden uuden seuraajan poissaollessasi! Jee! + other: Olet saanut %{count} uutta seuraajaa poissaollessasi! Loistavaa! subject: one: "1 uusi ilmoitus viimeisen käyntisi jälkeen \U0001F418" other: "%{count} uutta ilmoitusta viimeisen käyntisi jälkeen \U0001F418" diff --git a/config/locales/simple_form.fi.yml b/config/locales/simple_form.fi.yml index f692cd780..a5cded1ce 100644 --- a/config/locales/simple_form.fi.yml +++ b/config/locales/simple_form.fi.yml @@ -4,41 +4,43 @@ fi: hints: defaults: avatar: PNG, GIF tai JPG. Korkeintaan 2MB. Skaalataan kokoon 400x400px + digest: Lähetetään vain pitkän poissaolon jälkeen, ja vain jos olet vastaanottanut yksityisviestejä poissaolosi aikana. display_name: Korkeintaan 30 merkkiä header: PNG, GIF tai JPG. Korkeintaan 2MB. Skaalataan kokoon 700x335px - locked: Vaatii sinun manuaalisesti hyväksymään seuraajat ja asettaa julkaisujen yksityisyyden vain seuraajille + locked: Vaatii sinun manuaalisesti hyväksymään seuraajat, ja asettaa julkaisujen yksityisyyden vain seuraajille note: Korkeintaan 160 merkkiä imports: data: CSV tiedosto tuotu toiselta Mastodon palvelimelta labels: defaults: - avatar: Avatar + avatar: Profiilikuva confirm_new_password: Varmista uusi salasana confirm_password: Varmista salasana current_password: Nykyinen salasana data: Data display_name: Näykyvä nimi email: Sähköpostiosoite - header: Header + header: Otsake locale: Kieli locked: Tee tilistä yksityinen + max_uses: Max käyttökerrat new_password: Uusi salasana note: Bio otp_attempt: Kaksivaiheinen koodi password: Salasana setting_default_privacy: Julkaisun yksityisyys - type: Tuonti tyyppi + type: Tuontityyppi username: Käyttäjänimi interactions: must_be_follower: Estä ilmoitukset käyttäjiltä jotka eivät seuraa sinua must_be_following: Estä ilmoitukset käyttäjiltä joita et seuraa notification_emails: - digest: Send digest e-mails - favourite: Lähetä s-posti kun joku tykkää statuksestasi - follow: Lähetä s-posti kun joku seuraa sinua - follow_request: Lähetä s-posti kun joku pyytää seurata sinua - mention: Lähetä s-posti kun joku mainitsee sinut - reblog: Lähetä s-posti kun joku buustaa julkaisusi + digest: Lähetä koosteviestejä sähköpostilla + favourite: Lähetä sähköposti, kun joku tykkää statuksestasi + follow: Lähetä sähköposti, kun joku seuraa sinua + follow_request: Lähetä sähköposti, kun joku pyytää seurata sinua + mention: Lähetä sähköposti, kun joku mainitsee sinut + reblog: Lähetä sähköposti, kun joku buustaa julkaisusi 'no': Ei required: mark: "*" diff --git a/config/locales/simple_form.sv.yml b/config/locales/simple_form.sv.yml index 8ef7bb064..52ff32753 100644 --- a/config/locales/simple_form.sv.yml +++ b/config/locales/simple_form.sv.yml @@ -13,8 +13,8 @@ sv: note: one: 1 tecken kvar other: %{count} tecken kvar - setting_noindex: Påverkar din offentliga profil och status sidor - setting_theme: Påverkar hur Mastodon ser ut när du är inloggad från vilken enhet som helst. + setting_noindex: Påverkar din offentliga profil och statussidor + setting_theme: Påverkar hur Mastodon ser ut oavsett från vilken enhet du är inloggad. imports: data: CSV-fil som exporteras från en annan Mastodon-instans sessions: @@ -32,7 +32,7 @@ sv: email: E-postadress expires_in: Förfaller efter filtered_languages: Filtrerade språk - header: Rubrik + header: Bakgrundsbild locale: Språk locked: Lås konto max_uses: Högst antal användningar @@ -45,6 +45,7 @@ sv: setting_default_privacy: Postintegritet setting_default_sensitive: Markera alltid media som känsligt setting_delete_modal: Visa bekräftelsedialog innan du raderar en toot + setting_display_sensitive_media: Visa alltid media märkt som känsligt setting_noindex: Uteslutning av sökmotorindexering setting_reduce_motion: Minska rörelser i animationer setting_system_font_ui: Använd systemets standardfont diff --git a/config/locales/sk.yml b/config/locales/sk.yml index 860431f1d..dd8120193 100644 --- a/config/locales/sk.yml +++ b/config/locales/sk.yml @@ -397,8 +397,8 @@ sk: about_x_months: "%{count}mesiace" about_x_years: "%{count}rok" almost_x_years: "%{count}rok" - half_a_minute: Len teraz - less_than_x_seconds: Len teraz + half_a_minute: Práve teraz + less_than_x_seconds: Práve teraz over_x_years: "%{count}rok" x_days: "%{count}dni" x_minutes: '' @@ -629,6 +629,8 @@ sk: terms: title: Podmienky užívania, a pravidlá o súkromí pre %{instance} two_factor_authentication: + enable: Povoliť + generate_recovery_codes: Vygeneruj zálohové kódy setup: Nastavenie user_mailer: backup_ready: @@ -640,12 +642,15 @@ sk: explanation: Tu nájdeš nejaké tipy do začiatku final_action: Začni prispievať final_step: 'Začnite písať! Aj bez následovníkov budú vaše verejné správy videné ostatnými, napríklad na lokálnej osi a pod haštagmi. Môžete sa ostatným predstaviť pod haštagom #introductions.' + full_handle: Adresa tvojho profilu v celom formáte review_preferences_action: Zmeniť nastavenia subject: Vitaj na Mastodone tip_local_timeline: Lokálna os je celkový pohľad na aktivitu užívateľov %{instance}. Toto sú tvoji najbližší susedia! tip_mobile_webapp: Pokiaľ ti prehliadač ponúkne možnosť pridať Mastodon na tvoju obrazovku, môžeš potom dostávať notifikácie skoro ako z natívnej aplikácie! + tips: Tipy title: Vitaj na palube, %{name}! users: invalid_email: Emailová adresa je neplatná invalid_otp_token: Neplatný kód pre dvojfaktorovú autentikáciu + seamless_external_login: Si prihlásená/ý cez externú službu, takže nastavenia hesla a emailu ti niesú prístupné. signed_in_as: 'Prihlásený ako:' diff --git a/config/locales/sv.yml b/config/locales/sv.yml index 8d9c6d5df..8ce6b3100 100644 --- a/config/locales/sv.yml +++ b/config/locales/sv.yml @@ -273,6 +273,9 @@ sv: contact_information: email: Företag E-post username: Användarnamn för kontakt + hero: + desc_html: Visas på framsidan. Minst 600x100px rekommenderas. Om inte angiven faller den tillbaka på instansens miniatyrbild + title: Hjältebild peers_api_enabled: desc_html: Domännamn denna instans har påträffat i fediverse title: Publicera lista över upptäckta instanser @@ -356,6 +359,7 @@ sv: your_token: Din access token auth: agreement_html: Genom att registrera dig godkänner du att följa instansens regler och våra användarvillkor. + change_password: Lösenord confirm_email: Bekräfta e-postadress delete_account: Ta bort konto delete_account_html: Om du vill radera ditt konto kan du fortsätta här. Du kommer att bli ombedd att bekräfta. @@ -366,11 +370,13 @@ sv: logout: Logga ut migrate_account: Flytta till ett annat konto migrate_account_html: Om du vill omdirigera detta konto till ett annat, kan du konfigurera det här. + or: eller or_log_in_with: Eller logga in med providers: cas: CAS saml: SAML register: Registrera + register_elsewhere: Registrera dig på en annan server resend_confirmation: Skicka instruktionerna om bekräftelse igen reset_password: Återställ lösenord security: Säkerhet @@ -420,14 +426,21 @@ sv: title: Den här sidan är inte korrekt noscript_html: För att använda Mastodon webbapplikationen, vänligen aktivera JavaScript. Alternativt kan du prova en av inhemska appar för Mastodon för din plattform. exports: + archive_takeout: + date: Datum + download: Ladda ner ditt arkiv + hint_html: Du kan begära ett arkiv av dina toots och uppladdad media. Den exporterade datan kommer att vara i ActivityPub-format och läsbar av kompatibel programvara. + in_progress: Kompilerar ditt arkiv... + request: Efterfråga ditt arkiv + size: Storlek blocks: Du blockerar csv: CSV follows: Du följer mutes: Du tystar - storage: Media lagring + storage: Medialagring followers: domain: Domän - explanation_html: Om du vill se integriteten för dina statusar måste du vara medveten om vem som följer dig. Dina privata statusar levereras till alla instanser där du har följare. Du kanske vill granska dem och ta bort följare om du inte litar på att din integritet respekteras av staff eller programvaran i instanserna. + explanation_html: Om du vill försäkra integriteten av dina statusar måste du vara medveten om vem som följer dig. Dina privata statusar levereras till alla instanser där du har följare. Du kanske vill granska och eventuellt ta bort följare om du inte litar på att din integritet respekteras hos medarbetarna eller programvara i dessa instanser. followers_count: Antal följare lock_link: Lås ditt konto purge: Ta bort från följare @@ -435,7 +448,7 @@ sv: one: I processen med soft-blocking följare från en domän ... other: I processen med soft-blocking följare från %{count} domäner... true_privacy_html: Kom ihåg att sann integritet kan bara uppnås med end-to-end kryptering. - unlocked_warning_html: Vem som helst kan följa dig omedelbart se dina privata statusar. %{lock_link} för att kunna granska och avvisa följare. + unlocked_warning_html: Vem som helst kan följa dig för att omedelbart se dina privata statusar. %{lock_link} för att kunna granska och avvisa följare. unlocked_warning_title: Ditt konto är inte låst generic: changes_saved_msg: Ändringar sparades framgångsrikt! @@ -448,9 +461,9 @@ sv: preface: Du kan importera data som du exporterat från en annan instans, till exempel en lista över personer du följer eller blockerar. success: Dina uppgifter har laddats upp och kommer nu att behandlas snarast types: - blocking: Blockering lista - following: Följare lista - muting: Tystade lista + blocking: Lista av blockerade + following: Lista av följare + muting: Lista av nertystade upload: Ladda upp in_memoriam_html: Till minne av. invites: @@ -535,7 +548,9 @@ sv: trillion: T unit: enhet pagination: + newer: Nyare next: Nästa + older: Äldre prev: Tidigare truncate: "…" preferences: @@ -551,7 +566,7 @@ sv: group: title: "%{count} meddelanden" mention: - action_boost: Boosta + action_boost: Knuffa action_expand: Visa mer action_favourite: Favoriter title: "%{name} nämnde dig" @@ -609,7 +624,7 @@ sv: delete: Konto radering development: Utveckling edit_profile: Redigera profil - export: Data export + export: Exportera data followers: Auktoriserade följare import: Import migrate: Kontoflytt @@ -625,7 +640,7 @@ sv: limit: Du har redan fäst det maximala antalet toots ownership: Någon annans toot kan inte fästas private: Icke-offentliga toot kan inte fästas - reblog: En boost kan inte fästas + reblog: Knuffar kan inte fästas show_more: Visa mer title: '%{name}: "%{quote}"' visibilities: @@ -634,7 +649,7 @@ sv: public: Offentlig public_long: Alla kan se unlisted: Olistade - unlisted_long: Alla kan se, men inte listade på offentliga tidslinjer + unlisted_long: Alla kan se, men listas inte på offentliga tidslinjer stream_entries: click_to_show: Klicka för att visa pinned: Fäst toot @@ -717,7 +732,7 @@ sv: default: "%b %d, %Y, %H:%M" two_factor_authentication: code_hint: Ange koden som genererats av din autentiseringsapp för att bekräfta - description_html: Om du aktiverar tvåfaktors autentisering, loggar in kommer att kräva att du är i besittning av din telefon, vilket kommer att generera tokens för dig att uppge. + description_html: Om du aktiverar tvåstegsautentisering kommer inloggningen kräva att du har din telefon tillgänglig, vilket kommer att generera tokens för dig att uppge. disable: Avaktivera enable: Aktivera enabled: Tvåfaktorsautentisering är aktiverad @@ -732,9 +747,13 @@ sv: setup: Ställ in wrong_code: Den angivna koden var ogiltig! Är servertid och enhetstid korrekt? user_mailer: + backup_ready: + explanation: Du begärde en fullständig säkerhetskopiering av ditt Mastodon-konto. Det är nu klart för nedladdning! + subject: Ditt arkiv är klart för nedladdning + title: Arkivuttagning welcome: edit_profile_action: Profilinställning - edit_profile_step: Du kan anpassa din profil genom att ladda upp en avatar, rubrik, ändra ditt visningsnamn och mer. Om du vill granska nya följare innan de får följa dig kan du låsa ditt konto. + edit_profile_step: Du kan anpassa din profil genom att ladda upp en avatar, bakgrundsbild, ändra ditt visningsnamn och mer. Om du vill granska nya följare innan de får följa dig kan du låsa ditt konto. explanation: Här är några tips för att komma igång final_action: Börja posta final_step: 'Börja posta! Även utan anhängare kan dina offentliga meddelanden ses av andra, till exempel på den lokala tidslinjen och i hashtags. Du får gärna presentera dig via hashtaggen #introductions.' @@ -753,4 +772,5 @@ sv: users: invalid_email: E-postadressen är ogiltig invalid_otp_token: Ogiltig tvåfaktorkod + seamless_external_login: Du är inloggad via en extern tjänst, så lösenord och e-postinställningar är inte tillgängliga. signed_in_as: 'Inloggad som:' From 4f7f6b3922436e7fad352e5835f2ecdc44568d7b Mon Sep 17 00:00:00 2001 From: Eugen Rochko Date: Mon, 12 Mar 2018 03:20:56 +0100 Subject: [PATCH 08/15] Fix follow relationships not loading after notifications fetch (#6746) --- app/javascript/mastodon/actions/notifications.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/javascript/mastodon/actions/notifications.js b/app/javascript/mastodon/actions/notifications.js index 502690045..cf9242d0f 100644 --- a/app/javascript/mastodon/actions/notifications.js +++ b/app/javascript/mastodon/actions/notifications.js @@ -24,7 +24,7 @@ defineMessages({ const fetchRelatedRelationships = (dispatch, notifications) => { const accountIds = notifications.filter(item => item.type === 'follow').map(item => item.account.id); - if (accountIds > 0) { + if (accountIds.length > 0) { dispatch(fetchRelationships(accountIds)); } }; From 641abe2db7ac482dceffc8307af411e01c540951 Mon Sep 17 00:00:00 2001 From: nightpool Date: Sun, 11 Mar 2018 22:50:40 -0400 Subject: [PATCH 09/15] Fix Procfile on OS X (#6748) --- Procfile.dev | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/Procfile.dev b/Procfile.dev index e75a491c7..e589bbf63 100644 --- a/Procfile.dev +++ b/Procfile.dev @@ -1,4 +1,4 @@ -web: PORT=3000 bundle exec puma -C config/puma.rb -sidekiq: PORT=3000 bundle exec sidekiq -stream: PORT=4000 yarn run start +web: env PORT=3000 bundle exec puma -C config/puma.rb +sidekiq: env PORT=3000 bundle exec sidekiq +stream: env PORT=4000 yarn run start webpack: ./bin/webpack-dev-server --listen-host 0.0.0.0 From fa5c867e0ec426fc01653e9022ba29783b2a826f Mon Sep 17 00:00:00 2001 From: Yuto Tokunaga Date: Mon, 12 Mar 2018 11:52:05 +0900 Subject: [PATCH 10/15] Avoid using JS to set height in MediaModal (#6750) avoid using JS to set height of ReactSwipeableViews component reduce max-height of to 80% to avoid the screen covered by image --- .../features/ui/components/media_modal.js | 35 ++++++++++--------- .../styles/mastodon/components.scss | 13 ++++--- 2 files changed, 24 insertions(+), 24 deletions(-) diff --git a/app/javascript/mastodon/features/ui/components/media_modal.js b/app/javascript/mastodon/features/ui/components/media_modal.js index 72ef32256..fb76270fa 100644 --- a/app/javascript/mastodon/features/ui/components/media_modal.js +++ b/app/javascript/mastodon/features/ui/components/media_modal.js @@ -130,6 +130,15 @@ export default class MediaModal extends ImmutablePureComponent { return null; }).toArray(); + // you can't use 100vh, because the viewport height is taller + // than the visible part of the document in some mobile + // browsers when it's address bar is visible. + // https://developers.google.com/web/updates/2016/12/url-bar-resizing + const swipeableViewsStyle = { + width: '100%', + height: '100%', + }; + const containerStyle = { alignItems: 'center', // center vertically }; @@ -145,23 +154,15 @@ export default class MediaModal extends ImmutablePureComponent { role='presentation' onClick={onClose} > -
- - {content} - -
+ + {content} +
diff --git a/app/javascript/styles/mastodon/components.scss b/app/javascript/styles/mastodon/components.scss index 93faff8b6..587fe62da 100644 --- a/app/javascript/styles/mastodon/components.scss +++ b/app/javascript/styles/mastodon/components.scss @@ -3422,8 +3422,12 @@ a.status-card { img, canvas, video { - max-width: 100vw; - max-height: 100vh; + max-width: 100%; + /* + put margins on top and bottom of image to avoid the screen coverd by + image. + */ + max-height: 80%; width: auto; height: auto; margin: auto; @@ -3435,11 +3439,6 @@ a.status-card { background: url('../images/void.png') repeat; object-fit: contain; } - - .react-swipeable-view-container { - width: 100vw; - height: 100%; - } } .media-modal__closer { From 6ae70a92c91233d4c299e679b3e04ba8e2a7002f Mon Sep 17 00:00:00 2001 From: Yamagishi Kazutoshi Date: Mon, 12 Mar 2018 20:47:18 +0900 Subject: [PATCH 11/15] Hide pinned toots on with replies (#6753) --- .../mastodon/features/account_timeline/index.js | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/app/javascript/mastodon/features/account_timeline/index.js b/app/javascript/mastodon/features/account_timeline/index.js index f5f2475ea..5e21cf7c6 100644 --- a/app/javascript/mastodon/features/account_timeline/index.js +++ b/app/javascript/mastodon/features/account_timeline/index.js @@ -17,7 +17,7 @@ const mapStateToProps = (state, { params: { accountId }, withReplies = false }) return { statusIds: state.getIn(['timelines', `account:${path}`, 'items'], ImmutableList()), - featuredStatusIds: state.getIn(['timelines', `account:${accountId}:pinned`, 'items'], ImmutableList()), + featuredStatusIds: withReplies ? ImmutableList() : state.getIn(['timelines', `account:${accountId}:pinned`, 'items'], ImmutableList()), isLoading: state.getIn(['timelines', `account:${path}`, 'isLoading']), hasMore: !!state.getIn(['timelines', `account:${path}`, 'next']), }; @@ -40,14 +40,18 @@ export default class AccountTimeline extends ImmutablePureComponent { const { params: { accountId }, withReplies } = this.props; this.props.dispatch(fetchAccount(accountId)); - this.props.dispatch(refreshAccountFeaturedTimeline(accountId)); + if (!withReplies) { + this.props.dispatch(refreshAccountFeaturedTimeline(accountId)); + } this.props.dispatch(refreshAccountTimeline(accountId, withReplies)); } componentWillReceiveProps (nextProps) { if ((nextProps.params.accountId !== this.props.params.accountId && nextProps.params.accountId) || nextProps.withReplies !== this.props.withReplies) { this.props.dispatch(fetchAccount(nextProps.params.accountId)); - this.props.dispatch(refreshAccountFeaturedTimeline(nextProps.params.accountId)); + if (!nextProps.withReplies) { + this.props.dispatch(refreshAccountFeaturedTimeline(nextProps.params.accountId)); + } this.props.dispatch(refreshAccountTimeline(nextProps.params.accountId, nextProps.params.withReplies)); } } From 48b940d5c6353aab71fdba2c518b4b74d4f51c4f Mon Sep 17 00:00:00 2001 From: Akihiko Odaki Date: Mon, 12 Mar 2018 20:47:51 +0900 Subject: [PATCH 12/15] Insert space before shortcode if necessary (#6751) --- app/javascript/mastodon/reducers/compose.js | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/app/javascript/mastodon/reducers/compose.js b/app/javascript/mastodon/reducers/compose.js index 532f4b2a7..5eadebb81 100644 --- a/app/javascript/mastodon/reducers/compose.js +++ b/app/javascript/mastodon/reducers/compose.js @@ -35,6 +35,8 @@ import { Map as ImmutableMap, List as ImmutableList, OrderedSet as ImmutableOrde import uuid from '../uuid'; import { me } from '../initial_state'; +const allowedAroundShortCode = '><\u0085\u0020\u00a0\u1680\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200a\u202f\u205f\u3000\u2028\u2029\u0009\u000a\u000b\u000c\u000d'; + const initialState = ImmutableMap({ mounted: 0, sensitive: false, @@ -135,12 +137,14 @@ const updateSuggestionTags = (state, token) => { }; const insertEmoji = (state, position, emojiData) => { - const emoji = emojiData.native; + const oldText = state.get('text'); + const needsSpace = emojiData.custom && position > 0 && !allowedAroundShortCode.includes(oldText[position - 1]); + const emoji = needsSpace ? ' ' + emojiData.native : emojiData.native; - return state.withMutations(map => { - map.update('text', oldText => `${oldText.slice(0, position)}${emoji} ${oldText.slice(position)}`); - map.set('focusDate', new Date()); - map.set('idempotencyKey', uuid()); + return state.merge({ + text: `${oldText.slice(0, position)}${emoji} ${oldText.slice(position)}`, + focusDate: new Date(), + idempotencyKey: uuid(), }); }; From f89ff65ec72d28723c09b71a1635b7fb66ff021a Mon Sep 17 00:00:00 2001 From: Eugen Rochko Date: Mon, 12 Mar 2018 12:48:49 +0100 Subject: [PATCH 13/15] Bump version to 2.3.1rc2 --- lib/mastodon/version.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/mastodon/version.rb b/lib/mastodon/version.rb index 50498be1d..4241ffe32 100644 --- a/lib/mastodon/version.rb +++ b/lib/mastodon/version.rb @@ -21,7 +21,7 @@ module Mastodon end def flags - 'rc1' + 'rc2' end def to_a From f5f165a5ebad5493a0d127c89b92876ffb75b0ef Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=89=AE=20=E9=AE=9F=E9=B1=87?= Date: Tue, 13 Mar 2018 00:21:48 +0900 Subject: [PATCH 14/15] set SAFETY_ASSURED=1 of db:setup in mastodon:setup (#6758) --- lib/tasks/mastodon.rake | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/tasks/mastodon.rake b/lib/tasks/mastodon.rake index d6c9e2d01..6ea76d738 100644 --- a/lib/tasks/mastodon.rake +++ b/lib/tasks/mastodon.rake @@ -302,7 +302,7 @@ namespace :mastodon do prompt.say 'Running `RAILS_ENV=production rails db:setup` ...' prompt.say "\n" - if cmd.run!({ RAILS_ENV: 'production' }, :rails, 'db:setup').failure? + if cmd.run!({ RAILS_ENV: 'production', SAFETY_ASSURED: 1 }, :rails, 'db:setup').failure? prompt.say "\n" prompt.error 'That failed! Perhaps your configuration is not right' else From 051b649628d8039ff15f0c035c6f8fe5dbf045d6 Mon Sep 17 00:00:00 2001 From: Ushitora Anqou Date: Tue, 13 Mar 2018 05:41:26 +0900 Subject: [PATCH 15/15] Detailed SMTP setup (#6759) * add detailed SMTP settings setup in mastodon:setup * add localhost SMTP settings setup in mastodon:setup * SMTP settings setup should exit after successful delivery of test mail --- lib/tasks/mastodon.rake | 53 ++++++++++++++++++++++++++++------------- 1 file changed, 37 insertions(+), 16 deletions(-) diff --git a/lib/tasks/mastodon.rake b/lib/tasks/mastodon.rake index 6ea76d738..13df76f91 100644 --- a/lib/tasks/mastodon.rake +++ b/lib/tasks/mastodon.rake @@ -224,24 +224,43 @@ namespace :mastodon do prompt.say "\n" loop do - env['SMTP_SERVER'] = prompt.ask('SMTP server:') do |q| - q.required true - q.default 'smtp.mailgun.org' - q.modify :strip - end + if prompt.yes?('Do you want to send e-mails from localhost?', default: false) + env['SMTP_SERVER'] = 'localhost' + env['SMTP_PORT'] = 25 + env['SMTP_AUTH_METHOD'] = 'none' + env['SMTP_OPENSSL_VERIFY_MODE'] = 'none' + else + env['SMTP_SERVER'] = prompt.ask('SMTP server:') do |q| + q.required true + q.default 'smtp.mailgun.org' + q.modify :strip + end - env['SMTP_PORT'] = prompt.ask('SMTP port:') do |q| - q.required true - q.default 587 - q.convert :int - end + env['SMTP_PORT'] = prompt.ask('SMTP port:') do |q| + q.required true + q.default 587 + q.convert :int + end - env['SMTP_LOGIN'] = prompt.ask('SMTP username:') do |q| - q.modify :strip - end + env['SMTP_LOGIN'] = prompt.ask('SMTP username:') do |q| + q.modify :strip + end - env['SMTP_PASSWORD'] = prompt.ask('SMTP password:') do |q| - q.echo false + env['SMTP_PASSWORD'] = prompt.ask('SMTP password:') do |q| + q.echo false + end + + env['SMTP_AUTH_METHOD'] = prompt.ask('SMTP authentication:') do |q| + q.required + q.default 'plain' + q.modify :strip + end + + env['SMTP_OPENSSL_VERIFY_MODE'] = prompt.ask('SMTP OpenSSL verify mode:') do |q| + q.required + q.default 'peer' + q.modify :strip + end end env['SMTP_FROM_ADDRESS'] = prompt.ask('E-mail address to send e-mails "from":') do |q| @@ -261,7 +280,8 @@ namespace :mastodon do :user_name => env['SMTP_LOGIN'].presence, :password => env['SMTP_PASSWORD'].presence, :domain => env['LOCAL_DOMAIN'], - :authentication => :plain, + :authentication => env['SMTP_AUTH_METHOD'] == 'none' ? nil : env['SMTP_AUTH_METHOD'] || :plain, + :openssl_verify_mode => env['SMTP_OPENSSL_VERIFY_MODE'], :enable_starttls_auto => true, } @@ -271,6 +291,7 @@ namespace :mastodon do mail = ActionMailer::Base.new.mail to: send_to, subject: 'Test', body: 'Mastodon SMTP configuration works!' mail.deliver + break rescue StandardError => e prompt.error 'E-mail could not be sent with this configuration, try again.' prompt.error e.message